Package: release.debian.org Severity: normal User: release.debian.org@packages.debian.org Usertags: unblock X-Debbugs-CC: pkg-deepin-devel@lists.alioth.debian.org Please unblock package dtkcore [ Reason ] Current version of dtkcore would cause all Deepin applications to crash when clicking the "About" menu. The new dtkcore/5.2.2.5-3 provides a targeted patch coming from Deepin upstream to solve this bug. The bug is documented as https://bugs.debian.org/985480 . [ Impact ] If the bug is not fixed, all deepin applications (deepin-*) will crash when the user clicks the "About" menu. [ Tests ] Click the "About" menu with different versions of libdtkcore5 installed. The new version will not crash. All buildd build in Debian sid on release architectures have succeeded. [ Risks ] The risk of introducing regression should be minimal according to my understanding to the patch. [ Checklist ] [X] all changes are documented in the d/changelog [X] I reviewed all changes and I approve them [X] attach debdiff against the package in testing unblock dtkcore/5.2.2.5-3
diff -Nru dtkcore-5.2.2.5/debian/changelog dtkcore-5.2.2.5/debian/changelog
--- dtkcore-5.2.2.5/debian/changelog 2020-12-21 04:20:28.000000000 -0500
+++ dtkcore-5.2.2.5/debian/changelog 2021-03-18 22:57:38.000000000 -0400
@@ -1,3 +1,11 @@
+dtkcore (5.2.2.5-3) unstable; urgency=high
+
+ * debian/patches/0001-fix-access-null-pointer.patch: Apply upstream
+ patch to avoid program crash when clicking "About" menu in Deepin
+ Applications. (Closes: #985480)
+
+ -- Boyuan Yang <byang@debian.org> Thu, 18 Mar 2021 22:57:38 -0400
+
dtkcore (5.2.2.5-2) unstable; urgency=medium
* debian/libdtkcore5.symbols:
diff -Nru dtkcore-5.2.2.5/debian/libdtkcore5.symbols dtkcore-5.2.2.5/debian/libdtkcore5.symbols
--- dtkcore-5.2.2.5/debian/libdtkcore5.symbols 2020-12-21 04:20:28.000000000 -0500
+++ dtkcore-5.2.2.5/debian/libdtkcore5.symbols 2021-03-18 22:44:46.000000000 -0400
@@ -199,6 +199,7 @@
_ZN3Dtk4Core15DSysInfoPrivate16ensureDeepinInfoEv@Base 5.2.2
_ZN3Dtk4Core15DSysInfoPrivate17ensureReleaseInfoEv@Base 5.2.2
_ZN3Dtk4Core15DSysInfoPrivate18ensureComputerInfoEv@Base 5.2.2
+ _ZN3Dtk4Core15DSysInfoPrivate22ensureDistributionInfoEv@Base 5.2.2
_ZN3Dtk4Core15DSysInfoPrivateC1Ev@Base 5.2.2
_ZN3Dtk4Core15DSysInfoPrivateC2Ev@Base 5.2.2
_ZN3Dtk4Core15QSettingBackend11doSetOptionERK7QStringRK8QVariant@Base 5.2.2
diff -Nru dtkcore-5.2.2.5/debian/patches/0001-fix-access-null-pointer.patch dtkcore-5.2.2.5/debian/patches/0001-fix-access-null-pointer.patch
--- dtkcore-5.2.2.5/debian/patches/0001-fix-access-null-pointer.patch 1969-12-31 19:00:00.000000000 -0500
+++ dtkcore-5.2.2.5/debian/patches/0001-fix-access-null-pointer.patch 2021-03-18 22:57:38.000000000 -0400
@@ -0,0 +1,65 @@
+Description: fix access null pointer
+ TODO: fix access null pointer
+Author: Hu Feng <hufeng@uniontech.com>
+
+Forwarded: not-needed
+Reviewed-By: Boyuan Yang <byang@debian.org>
+Last-Update: 2021-03-02
+
+--- dtkcore-5.4.0.orig/src/dsysinfo.cpp
++++ dtkcore-5.4.0/src/dsysinfo.cpp
+@@ -48,6 +48,7 @@ public:
+ #ifdef Q_OS_LINUX
+ void ensureDeepinInfo();
+ bool ensureOsVersion();
++ void ensureDistributionInfo();
+ #endif
+ void ensureReleaseInfo();
+ void ensureComputerInfo();
+@@ -97,6 +98,16 @@ DSysInfoPrivate::DSysInfoPrivate()
+ }
+
+ #ifdef Q_OS_LINUX
++void DSysInfoPrivate::ensureDistributionInfo()
++{
++ if (distributionInfo)
++ return;
++
++ const QString distributionInfoFile(DSysInfo::distributionInfoPath());
++ // Generic DDE distribution info
++ distributionInfo.reset(new DDesktopEntry(distributionInfoFile));
++}
++
+ void DSysInfoPrivate::ensureDeepinInfo()
+ {
+ if (static_cast<int>(deepinType) >= 0)
+@@ -168,11 +179,6 @@ void DSysInfoPrivate::ensureDeepinInfo()
+ } else {
+ deepinType = DSysInfo::UnknownDeepin;
+ }
+-
+- const QString distributionInfoFile(DSysInfo::distributionInfoPath());
+- // Generic DDE distribution info
+- distributionInfo.reset(new DDesktopEntry(distributionInfoFile));
+- QSettings distributionInfo(distributionInfoFile, QSettings::IniFormat); // TODO: treat as `.desktop` format instead of `.ini`
+ }
+
+ bool DSysInfoPrivate::ensureOsVersion()
+@@ -734,7 +740,7 @@ QString DSysInfo::distributionInfoSectio
+ QString DSysInfo::distributionOrgName(DSysInfo::OrgType type, const QLocale &locale)
+ {
+ #ifdef Q_OS_LINUX
+- siGlobal->ensureDeepinInfo();
++ siGlobal->ensureDistributionInfo();
+ #endif
+
+ QString fallback = type == Distribution ? QStringLiteral("Deepin") : QString();
+@@ -757,7 +763,7 @@ QString DSysInfo::deepinDistributorName(
+ QPair<QString, QString> DSysInfo::distributionOrgWebsite(DSysInfo::OrgType type)
+ {
+ #ifdef Q_OS_LINUX
+- siGlobal->ensureDeepinInfo();
++ siGlobal->ensureDistributionInfo();
+ #endif
+
+ QString fallbackSiteName = type == Distribution ? QStringLiteral("www.deepin.org") : QString();
diff -Nru dtkcore-5.2.2.5/debian/patches/series dtkcore-5.2.2.5/debian/patches/series
--- dtkcore-5.2.2.5/debian/patches/series 1969-12-31 19:00:00.000000000 -0500
+++ dtkcore-5.2.2.5/debian/patches/series 2021-03-18 22:44:25.000000000 -0400
@@ -0,0 +1 @@
+0001-fix-access-null-pointer.patch
Attachment:
signature.asc
Description: This is a digitally signed message part