Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package dtkcore for openSUSE:Factory checked 
in at 2022-09-01 22:10:28
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/dtkcore (Old)
 and      /work/SRC/openSUSE:Factory/.dtkcore.new.2083 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "dtkcore"

Thu Sep  1 22:10:28 2022 rev:16 rq:1000262 version:5.5.33

Changes:
--------
--- /work/SRC/openSUSE:Factory/dtkcore/dtkcore.changes  2022-04-22 
21:54:53.118849140 +0200
+++ /work/SRC/openSUSE:Factory/.dtkcore.new.2083/dtkcore.changes        
2022-09-01 22:11:28.604294307 +0200
@@ -1,0 +2,15 @@
+Fri Aug 26 12:13:00 UTC 2022 - Hillwood Yang <[email protected]>
+
+- Update version to 5.5.33
+  * Support abc field for os-version
+  * Check value field while loading dconfigfile
+
+-------------------------------------------------------------------
+Sat Jun 25 08:32:26 UTC 2022 - Hillwood Yang <[email protected]>
+
+- Update version to 5.5.32
+  * Fix dtkcore_config.h miss include some Class
+  * Fix DConfig can't find resource
+  * Fix application crash when dconfig is invalid
+
+-------------------------------------------------------------------

Old:
----
  dtkcore-5.5.30.tar.gz

New:
----
  dtkcore-5.5.33.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ dtkcore.spec ++++++
--- /var/tmp/diff_new_pack.MyhTK4/_old  2022-09-01 22:11:29.796297567 +0200
+++ /var/tmp/diff_new_pack.MyhTK4/_new  2022-09-01 22:11:29.800297578 +0200
@@ -22,17 +22,15 @@
 %define pkg_ver 5.5
 
 Name:           dtkcore
-Version:        5.5.30
+Version:        5.5.33
 Release:        0
 Summary:        Deepin Tool Kit Core
-License:        LGPL-3.0-only
+License:        LGPL-3.0-or-later
 Group:          System/GUI/Other
 URL:            https://github.com/linuxdeepin/dtkcore
 Source0:        
https://github.com/linuxdeepin/dtkcore/archive/%{version}/%{name}-%{version}.tar.gz
 # PATCH-FIX-UPSTEAM Fix-library-link.patch [email protected] - Need link 
to dl
 Patch0:         Fix-library-link.patch
-# PATCH-FIX-UPSTEAM fix-return-type.patch [email protected] - fix return 
type error
-# Patch1:         fix-return-type.patch
 BuildRequires:  dtkcommon
 BuildRequires:  fdupes
 BuildRequires:  gtest
@@ -88,6 +86,7 @@
 
 %install
 %qmake5_install
+
 # Remove useless files
 rm -rf %{buildroot}/usr/tests
 chmod +x %{buildroot}%{_libdir}/libdtk-5.5.0/DCore/bin/*.py

++++++ Fix-library-link.patch ++++++
--- /var/tmp/diff_new_pack.MyhTK4/_old  2022-09-01 22:11:29.832297665 +0200
+++ /var/tmp/diff_new_pack.MyhTK4/_new  2022-09-01 22:11:29.836297676 +0200
@@ -1,13 +1,12 @@
-diff -Nur dtkcore-5.4.13/src/src.pro dtkcore-5.4.13-new/src/src.pro
---- dtkcore-5.4.13/src/src.pro 2021-03-22 11:30:44.000000000 +0800
-+++ dtkcore-5.4.13-new/src/src.pro     2021-05-05 16:26:36.431155423 +0800
-@@ -24,6 +24,8 @@
- include($$PWD/filesystem/filesystem.pri)
- include($$PWD/settings/settings.pri)
+diff -Nur dtkcore-5.5.32/src/src.pro dtkcore-5.5.32-new/src/src.pro
+--- dtkcore-5.5.32/src/src.pro 2022-05-25 15:33:48.000000000 +0800
++++ dtkcore-5.5.32-new/src/src.pro     2022-06-25 16:38:52.055431074 +0800
+@@ -71,6 +71,7 @@
  
-+LIBS += -ldl
-+
  DTK_MODULE_NAME = $$TARGET
  load(dtk_build)
++LIBS += -ldl
+ 
+ INSTALLS += includes target
  
 

++++++ dtkcore-5.5.30.tar.gz -> dtkcore-5.5.33.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/dtkcore-5.5.30/.github/workflows/call-build-deb.yml 
new/dtkcore-5.5.33/.github/workflows/call-build-deb.yml
--- old/dtkcore-5.5.30/.github/workflows/call-build-deb.yml     2022-03-23 
04:17:45.000000000 +0100
+++ new/dtkcore-5.5.33/.github/workflows/call-build-deb.yml     2022-07-19 
11:10:28.000000000 +0200
@@ -1,7 +1,6 @@
 name: Call build-deb
 on:
   pull_request_target:
-    types: [opened, synchronize]
     paths-ignore:
       - ".github/workflows/**"
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/dtkcore-5.5.30/.github/workflows/call-build-distribution.yml 
new/dtkcore-5.5.33/.github/workflows/call-build-distribution.yml
--- old/dtkcore-5.5.30/.github/workflows/call-build-distribution.yml    
1970-01-01 01:00:00.000000000 +0100
+++ new/dtkcore-5.5.33/.github/workflows/call-build-distribution.yml    
2022-07-19 11:10:28.000000000 +0200
@@ -0,0 +1,17 @@
+name: Call build-distribution
+on:
+  push:
+    paths-ignore:
+      - ".github/workflows/**"
+  pull_request_target:
+    paths-ignore:
+      - ".github/workflows/**"
+
+jobs:
+  check_job:
+    uses: linuxdeepin/.github/.github/workflows/build-distribution.yml@master
+    secrets:
+      BUILD_GPG_PRIVATE_KEY: ${{ secrets.BUILD_GPG_PRIVATE_KEY }}
+      BUILD_SSH_PRIVATE_KEY: ${{ secrets.BUILD_SSH_PRIVATE_KEY }}
+      WEBDAV_PASSWD: ${{ secrets.WEBDAV_PASSWD }}
+      WEBDAV_USER: ${{ secrets.WEBDAV_USER }}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/dtkcore-5.5.30/.github/workflows/call-chatOps.yml 
new/dtkcore-5.5.33/.github/workflows/call-chatOps.yml
--- old/dtkcore-5.5.30/.github/workflows/call-chatOps.yml       2022-03-23 
04:17:45.000000000 +0100
+++ new/dtkcore-5.5.33/.github/workflows/call-chatOps.yml       2022-07-19 
11:10:28.000000000 +0200
@@ -6,3 +6,5 @@
 jobs:
   chatopt:
     uses: linuxdeepin/.github/.github/workflows/chatOps.yml@master
+    secrets:
+      APP_PRIVATE_KEY: ${{ secrets.APP_PRIVATE_KEY }}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/dtkcore-5.5.30/.github/workflows/call-clacheck.yml 
new/dtkcore-5.5.33/.github/workflows/call-clacheck.yml
--- old/dtkcore-5.5.30/.github/workflows/call-clacheck.yml      1970-01-01 
01:00:00.000000000 +0100
+++ new/dtkcore-5.5.33/.github/workflows/call-clacheck.yml      2022-07-19 
11:10:28.000000000 +0200
@@ -0,0 +1,16 @@
+name: Call CLA check
+on:
+  issue_comment:
+    types: [created]
+  pull_request_target:
+    types: [opened, closed, synchronize]
+
+concurrency:
+  group: ${{ github.workflow }}-pull/${{ github.event.number }}
+  cancel-in-progress: true
+
+jobs:
+  clacheck:
+    uses: linuxdeepin/.github/.github/workflows/cla-check.yml@master
+    secrets:
+      APP_PRIVATE_KEY: ${{ secrets.APP_PRIVATE_KEY }}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/dtkcore-5.5.30/.github/workflows/cppcheck.yml 
new/dtkcore-5.5.33/.github/workflows/cppcheck.yml
--- old/dtkcore-5.5.30/.github/workflows/cppcheck.yml   2022-03-23 
04:17:45.000000000 +0100
+++ new/dtkcore-5.5.33/.github/workflows/cppcheck.yml   2022-07-19 
11:10:28.000000000 +0200
@@ -1,6 +1,8 @@
 name: cppcheck
 on:
   pull_request_target:
+    paths-ignore:
+      - ".github/workflows/**"
 
 concurrency:
   group: ${{ github.workflow }}-pull/${{ github.event.number }}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/dtkcore-5.5.30/CMakeLists.txt 
new/dtkcore-5.5.33/CMakeLists.txt
--- old/dtkcore-5.5.30/CMakeLists.txt   1970-01-01 01:00:00.000000000 +0100
+++ new/dtkcore-5.5.33/CMakeLists.txt   2022-07-19 11:10:28.000000000 +0200
@@ -0,0 +1,16 @@
+cmake_minimum_required (VERSION 3.10)
+
+project (DtkCore
+       VERSION "${DTK_REPO_MODULE_VERSION}"
+       DESCRIPTION "DTK Core module"
+       HOMEPAGE_URL ""
+       LANGUAGES CXX C
+)
+
+find_package (Qt5 CONFIG REQUIRED COMPONENTS DBus Xml)
+
+set (BUILD_DOCS ON CACHE BOOL "Generate doxygen-based documentation")
+
+if (BUILD_DOCS)
+       add_subdirectory(doc)
+endif ()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/dtkcore-5.5.30/README.md new/dtkcore-5.5.33/README.md
--- old/dtkcore-5.5.30/README.md        2022-03-23 04:17:45.000000000 +0100
+++ new/dtkcore-5.5.33/README.md        2022-07-19 11:10:28.000000000 +0200
@@ -8,7 +8,7 @@
 
 ### Build dependencies
 
-* Qt >= 5.6
+* Qt >= 5.10
 
 ## Installation
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/dtkcore-5.5.30/archlinux/PKGBUILD 
new/dtkcore-5.5.33/archlinux/PKGBUILD
--- old/dtkcore-5.5.30/archlinux/PKGBUILD       1970-01-01 01:00:00.000000000 
+0100
+++ new/dtkcore-5.5.33/archlinux/PKGBUILD       2022-07-19 11:10:28.000000000 
+0200
@@ -0,0 +1,30 @@
+# Maintainer: justforlxz <[email protected]>
+pkgname=dtkcore-git
+pkgver=5.5.23.r5.g74f86b0
+pkgrel=1
+pkgdesc='DTK core modules'
+arch=('x86_64' 'aarch64')
+url="https://github.com/linuxdeepin/dtkcore";
+license=('LGPL3')
+depends=('dconf' 'deepin-desktop-base-git' 'python' 'gsettings-qt' 'lshw')
+makedepends=('git' 'qt5-tools' 'gtest' 'dtkcommon-git')
+conflicts=('dtkcore')
+provides=('dtkcore')
+groups=('deepin-git')
+source=('source.tar.gz')
+sha512sums=('SKIP')
+
+prepare() {
+    cd $deepin_source_name
+}
+
+build() {
+  cd $deepin_source_name
+  qmake-qt5 PREFIX=/usr DTK_VERSION=$pkgver LIB_INSTALL_DIR=/usr/lib
+  make
+}
+
+package() {
+  cd $deepin_source_name
+  make INSTALL_ROOT="$pkgdir" install
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/dtkcore-5.5.30/debian/rules 
new/dtkcore-5.5.33/debian/rules
--- old/dtkcore-5.5.30/debian/rules     2022-03-23 04:17:45.000000000 +0100
+++ new/dtkcore-5.5.33/debian/rules     2022-07-19 11:10:28.000000000 +0200
@@ -15,7 +15,7 @@
 endif
 
 %:
-       dh $@ --parallel
+       dh $@ --buildsystem=qmake --parallel
 
 override_dh_auto_configure:
        dh_auto_configure -- LIB_INSTALL_DIR=/usr/lib/$(DEB_HOST_MULTIARCH) 
VERSION=$(CONFIG_VERSION)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/dtkcore-5.5.30/doc/CMakeLists.txt 
new/dtkcore-5.5.33/doc/CMakeLists.txt
--- old/dtkcore-5.5.30/doc/CMakeLists.txt       1970-01-01 01:00:00.000000000 
+0100
+++ new/dtkcore-5.5.33/doc/CMakeLists.txt       2022-07-19 11:10:28.000000000 
+0200
@@ -0,0 +1,38 @@
+cmake_minimum_required (VERSION 3.10)
+
+find_package (Doxygen REQUIRED)
+
+set (QCH_INSTALL_DESTINATION ${CMAKE_INSTALLL_PREFIX}/share/DDE/dtk CACHE 
STRING "QCH install location")
+
+set (DOXYGEN_GENERATE_HTML "NO" CACHE STRING "Doxygen HTML output")
+set (DOXYGEN_GENERATE_XML "NO" CACHE STRING "Doxygen XML output")
+set (DOXYGEN_GENERATE_QHP "YES" CACHE STRING "Doxygen QHP output")
+set (DOXYGEN_FILE_PATTERNS *.cpp *.h *.md *.zh_CN.dox CACHE STRING "Doxygen 
File Patterns")
+set (DOXYGEN_PROJECT_NUMBER ${CMAKE_PROJECT_VERSION} CACHE STRING "") # Should 
be the same as this project is using.
+set (DOXYGEN_EXTRACT_STATIC YES)
+set (DOXYGEN_OUTPUT_LANGUAGE "Chinese")
+set (DOXYGEN_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/docs/)
+set (DOXYGEN_QHG_LOCATION "qhelpgenerator")
+set (DOXYGEN_QHP_NAMESPACE "org.deepin.dtk.core")
+set (DOXYGEN_QCH_FILE "dtkcore.qch")
+set (DOXYGEN_QHP_VIRTUAL_FOLDER "dtkcore")
+set (DOXYGEN_HTML_EXTRA_STYLESHEET "" CACHE STRING "Doxygen custom stylesheet 
for HTML output")
+set (DOXYGEN_TAGFILES "qtcore.tags=qthelp://org.qt-project.qtcore/qtcore/" 
CACHE STRING "Doxygen tag files")
+
+set (DOXYGEN_PREDEFINED
+    "\"DCORE_BEGIN_NAMESPACE=namespace Dtk { namespace Core {\""
+    "\"DCORE_END_NAMESPACE=}}\""
+    "\"DCORE_USE_NAMESPACE=using Dtk::Core\""
+)
+set (DOXYGEN_MACRO_EXPANSION "YES")
+set (DOXYGEN_EXPAND_ONLY_PREDEF "YES")
+
+doxygen_add_docs (doxygen
+    ${PROJECT_SOURCE_DIR}/src
+    ${PROJECT_SOURCE_DIR}/doc
+    ALL
+    WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}
+    COMMENT "Generate documentation via Doxygen"
+)
+
+install (FILES ${PROJECT_BINARY_DIR}/docs/html/dtkcore.qch DESTINATION 
${QCH_INSTALL_DESTINATION})
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/dtkcore-5.5.30/src/dconfig.cpp 
new/dtkcore-5.5.33/src/dconfig.cpp
--- old/dtkcore-5.5.30/src/dconfig.cpp  2022-03-23 04:17:45.000000000 +0100
+++ new/dtkcore-5.5.33/src/dconfig.cpp  2022-07-19 11:10:28.000000000 +0200
@@ -121,6 +121,16 @@
 
     virtual ~DConfigPrivate() override;
 
+    inline bool invalid() const
+    {
+        const bool valid = backend && backend->isValid();
+        if (!valid)
+            qCWarning(cfLog, "DConfig is invalid of appid=%s name=%s, 
subpath=%s",
+                      qPrintable(appId), qPrintable(name), 
qPrintable(subpath));
+
+        return !valid;
+    }
+
     DConfigBackend *getOrCreateBackend();
     DConfigBackend *createBackendByEnv();
 
@@ -331,9 +341,13 @@
 
     virtual QVariant value(const QString &key, const QVariant &fallback) const 
override
     {
-        const QDBusVariant &dv = config->value(key);
-        const QVariant &v = dv.variant();
-        return v.isValid() ? decodeQDBusArgument(v) : fallback;
+        auto reply = config->value(key);
+        reply.waitForFinished();
+        if (reply.isError()) {
+            qWarning() << "value error key:" << key << ", error message:" << 
reply.error().message();
+            return fallback;
+        }
+        return decodeQDBusArgument(reply.value().variant());
     }
 
     virtual void setValue(const QString &key, const QVariant &value) override
@@ -451,7 +465,8 @@
     if (DBusBackend::isServiceRegistered() || 
DBusBackend::isServiceActivatable()) {
         qCDebug(cfLog, "Fallback to DBus mode");
         backend.reset(new DBusBackend(this));
-    } else {
+    }
+    if (!backend) {
         qCDebug(cfLog, "Can't use DBus config service, fallback to DConfigFile 
mode");
         backend.reset(new FileBackend(this));
     }
@@ -586,6 +601,9 @@
 QString DConfig::backendName() const
 {
     D_DC(DConfig);
+    if (d->invalid())
+        return QString();
+
     return d->backend->name();
 }
 
@@ -596,6 +614,9 @@
 QStringList DConfig::keyList() const
 {
     D_DC(DConfig);
+    if (d->invalid())
+        return QStringList();
+
     return d->backend->keyList();
 }
 
@@ -606,7 +627,7 @@
 bool DConfig::isValid() const
 {
     D_DC(DConfig);
-    return d->backend->isValid();
+    return !d->invalid();
 }
 
 /*!
@@ -618,6 +639,9 @@
 QVariant DConfig::value(const QString &key, const QVariant &fallback) const
 {
     D_DC(DConfig);
+    if (d->invalid())
+        return fallback;
+
     return d->backend->value(key, fallback);
 }
 
@@ -629,6 +653,9 @@
 void DConfig::setValue(const QString &key, const QVariant &value)
 {
     D_D(DConfig);
+    if (d->invalid())
+        return;
+
     d->backend->setValue(key, value);
 }
 
@@ -639,6 +666,9 @@
 void DConfig::reset(const QString &key)
 {
     D_D(DConfig);
+    if (d->invalid())
+        return;
+
     d->backend->reset(key);
 }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/dtkcore-5.5.30/src/dconfigfile.cpp 
new/dtkcore-5.5.33/src/dconfigfile.cpp
--- old/dtkcore-5.5.30/src/dconfigfile.cpp      2022-03-23 04:17:45.000000000 
+0100
+++ new/dtkcore-5.5.33/src/dconfigfile.cpp      2022-07-19 11:10:28.000000000 
+0200
@@ -386,14 +386,18 @@
         values.remove(key);
     }
 
-    inline void update(const QString &key, const QVariantHash &value)
+    inline bool update(const QString &key, const QVariantHash &value)
     {
+        if (!value.contains("value")) {
+            return false;
+        }
         values[key] = value;
+        return true;
     }
 
-    inline void updateValue(const QString &key, const QJsonValue &value)
+    inline bool updateValue(const QString &key, const QJsonValue &value)
     {
-        overrideValue(key, "value", value);
+        return overrideValue(key, "value", value);
     }
 
     inline void updateSerial(const QString &key, const QJsonValue &value)
@@ -415,11 +419,15 @@
         return contents;
     }
 private:
-    void overrideValue(const QString &key, const QString &subkey, const 
QJsonValue &from) {
+    bool overrideValue(const QString &key, const QString &subkey, const 
QJsonValue &from) {
         const QJsonValue &v = from[subkey];
 
-        if (!v.isUndefined())
-            values[key][subkey] = v.toVariant();
+        if (v.isUndefined()) {
+            return false;
+        }
+
+        values[key][subkey] = v.toVariant();
+        return true;
     }
 
     QHash<QString, QVariantHash> values;
@@ -698,14 +706,15 @@
 
             // ??????????????????
             for (; i != contents.constEnd(); ++i) {
-                values.update(i.key(), i.value().toObject().toVariantHash());
+                if (!values.update(i.key(), 
i.value().toObject().toVariantHash())) {
+                    qWarning() << "key:" << i.key() << "has no value";
+                    return false;
+                }
             }
         }
-
         // for override
         Q_FOREACH(auto override, overrides) {
             const QJsonDocument &doc = loadJsonFile(override);
-
             if (doc.isObject()) {
                 const QJsonObject &root = doc.object();
                 if (!checkMagic(root, MAGIC_OVERRIDE)) {
@@ -734,7 +743,10 @@
                     if (values.flags(i.key()) & DConfigFile::NoOverride)
                         continue;
 
-                    values.updateValue(i.key(), i.value());
+                    if (!values.updateValue(i.key(), i.value())) {
+                        qWarning() << "key (override):" << i.key() << "has no 
value";
+                        return false;
+                    }
                     values.updateSerial(i.key(), i.value());
                     values.updatePermissions(i.key(), i.value());
                 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/dtkcore-5.5.30/src/dsysinfo.cpp 
new/dtkcore-5.5.33/src/dsysinfo.cpp
--- old/dtkcore-5.5.30/src/dsysinfo.cpp 2022-03-23 04:17:45.000000000 +0100
+++ new/dtkcore-5.5.33/src/dsysinfo.cpp 2022-07-19 11:10:28.000000000 +0200
@@ -250,10 +250,10 @@
     D_ASSET_EXIT(entry.status() == DDesktopEntry::NoError, entry.status());
 
     // ?????????????????????
-    // ABCDE.xyz
+    // ABCDE.xyz.abc
     QString osb = entry.stringValue("OsBuild", "Version");
     QStringList osbs = osb.split(".");
-    ok = (osbs.size() == 2 && osbs.value(0).size() == 5);
+    ok = (osbs.size() >= 2 && osbs.value(0).size() == 5);
     D_ASSET_EXIT(ok, "OsBuild version invalid!");
 
     const QStringList &left = osbs.value(0).split(QString(), 
QString::SkipEmptyParts);
@@ -261,19 +261,19 @@
 
     int idx = 0;
     osBuild.A = left.value(idx++, "0").toUInt(&ok);
-    D_ASSET_EXIT(ok, "OsBuild version(a) invalid!");
+    D_ASSET_EXIT(ok, "OsBuild version(A) invalid!");
     osBuild.B = left.value(idx++, "0").toUInt(&ok);
-    D_ASSET_EXIT(ok, "OsBuild version(b) invalid!");
+    D_ASSET_EXIT(ok, "OsBuild version(B) invalid!");
     osBuild.C = left.value(idx++, "0").toUInt(&ok);
     if (!ok) {
         auto c = left.value(idx-1, "0").toLatin1();
-        D_ASSET_EXIT(c.size()>0, "OsBuild version(c) invalid!");
+        D_ASSET_EXIT(c.size()>0, "OsBuild version(C) invalid!");
         osBuild.C = uint(c.at(0));
     }
     osBuild.D = left.value(idx++, "0").toUInt(&ok);
-    D_ASSET_EXIT(ok, "OsBuild version(d) invalid!");
+    D_ASSET_EXIT(ok, "OsBuild version(D) invalid!");
     osBuild.E = left.value(idx++, "0").toUInt(&ok);
-    D_ASSET_EXIT(ok, "OsBuild version(e) invalid!");
+    D_ASSET_EXIT(ok, "OsBuild version(E) invalid!");
 
     // xyz
     osBuild.xyz = osbs.value(1).trimmed().toUInt(&ok);
@@ -802,8 +802,9 @@
  */
 QString DSysInfo::buildVersion()
 {
-    siGlobal->ensureOsVersion();
-    return QString::number(siGlobal->osBuild.xyz);
+    DDesktopEntry entry(OS_VERSION_FILE);
+    QString osb = entry.stringValue("OsBuild", "Version");
+    return osb.mid(6).trimmed();
 }
 #endif
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/dtkcore-5.5.30/src/filesystem/filesystem.pri 
new/dtkcore-5.5.33/src/filesystem/filesystem.pri
--- old/dtkcore-5.5.30/src/filesystem/filesystem.pri    2022-03-23 
04:17:45.000000000 +0100
+++ new/dtkcore-5.5.33/src/filesystem/filesystem.pri    2022-07-19 
11:10:28.000000000 +0200
@@ -2,7 +2,9 @@
 
 INCLUDEPATH += $$PWD/../base
 
-DEFINES += PREFIX=\\\"$$PREFIX\\\"
+INSTALL_PREFIX=$$QT_INSTALL_PREFIX
+isEmpty(INSTALL_PREFIX): INSTALL_PREFIX=$$[QT_INSTALL_PREFIX]
+DEFINES += PREFIX=\\\"$$INSTALL_PREFIX\\\"
 
 HEADERS += \
     $$PWD/dbasefilewatcher.h \
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/dtkcore-5.5.30/src/src.pro 
new/dtkcore-5.5.33/src/src.pro
--- old/dtkcore-5.5.30/src/src.pro      2022-03-23 04:17:45.000000000 +0100
+++ new/dtkcore-5.5.33/src/src.pro      2022-07-19 11:10:28.000000000 +0200
@@ -56,11 +56,6 @@
 include($$PWD/filesystem/filesystem.pri)
 include($$PWD/settings/settings.pri)
 
-DTK_MODULE_NAME = $$TARGET
-load(dtk_build)
-
-# ----------------------------------------------
-# install config
 includes.files += \
     $$PWD/*.h \
     $$PWD/dtkcore_config.h \
@@ -71,6 +66,12 @@
     $$PWD/DConfigFile \
     $$PWD/DConfig
 
+# ----------------------------------------------
+# install config
+
+DTK_MODULE_NAME = $$TARGET
+load(dtk_build)
+
 INSTALLS += includes target
 
 isEmpty(DTK_STATIC_LIB){
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/dtkcore-5.5.30/tests/ut_dconfig.cpp 
new/dtkcore-5.5.33/tests/ut_dconfig.cpp
--- old/dtkcore-5.5.30/tests/ut_dconfig.cpp     2022-03-23 04:17:45.000000000 
+0100
+++ new/dtkcore-5.5.33/tests/ut_dconfig.cpp     2022-07-19 11:10:28.000000000 
+0200
@@ -40,7 +40,7 @@
         metaGuard = new FileCopyGuard(":/data/dconf-example.meta.json", 
QString("%1" 
PREFIX"/share/dsg/configs/%2/%3.json").arg(fileBackendLocalPerfix.value(), 
APP_ID, FILE_NAME));
 
         backendType.set("DSG_DCONFIG_BACKEND_TYPE", "FileBackend");
-        dsgDataDir.set("DSG_DATA_DIRS", "/usr/share/dsg");
+        dsgDataDir.set("DSG_DATA_DIRS", PREFIX"/share/dsg");
     }
     static void TearDownTestCase() {
         QDir(fileBackendLocalPerfix.value()).removeRecursively();
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/dtkcore-5.5.30/tests/ut_dconfigfile.cpp 
new/dtkcore-5.5.33/tests/ut_dconfigfile.cpp
--- old/dtkcore-5.5.30/tests/ut_dconfigfile.cpp 2022-03-23 04:17:45.000000000 
+0100
+++ new/dtkcore-5.5.33/tests/ut_dconfigfile.cpp 2022-07-19 11:10:28.000000000 
+0200
@@ -36,6 +36,7 @@
 protected:
     static void SetUpTestCase() {
         home.set("HOME", "/tmp/home");
+        dsgDataDir.set("DSG_DATA_DIRS", PREFIX"/share/dsg");
     }
     static void TearDownTestCase() {
         dsgDataDir.restore();
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/dtkcore-5.5.30/tests/ut_dutil.cpp 
new/dtkcore-5.5.33/tests/ut_dutil.cpp
--- old/dtkcore-5.5.30/tests/ut_dutil.cpp       2022-03-23 04:17:45.000000000 
+0100
+++ new/dtkcore-5.5.33/tests/ut_dutil.cpp       2022-07-19 11:10:28.000000000 
+0200
@@ -309,7 +309,7 @@
     entry.setStringValue("?????????", "EditionName[zh_CN]", "Version");
     entry.setStringValue("20", "MajorVersion", "Version");
     entry.setStringValue("100A", "MinorVersion", "Version");
-    entry.setStringValue("11Z18.107", "OsBuild", "Version");
+    entry.setStringValue("11Z18.107.109", "OsBuild", "Version");
     ASSERT_TRUE(entry.save());
 
     ASSERT_TRUE(DSysInfo::uosSystemName(QLocale("C")) == "UnionTech OS 
Desktop");
@@ -320,7 +320,7 @@
     ASSERT_TRUE(DSysInfo::uosEditionName(QLocale("C")) == "Professional");
     ASSERT_TRUE(DSysInfo::majorVersion() == "20");
     ASSERT_TRUE(DSysInfo::minorVersion() == "100A");
-    ASSERT_TRUE(DSysInfo::buildVersion() == "107");
+    ASSERT_TRUE(DSysInfo::buildVersion() == "107.109");
 
     // test minVersion.BC SP1???.SP99
     for (int i = 0; i < 100; ++i) {

Reply via email to