#1117833 dde-store: Build-Depends on removed libpackagekitqt5-dev

Package:
src:dde-store
Source:
src:dde-store
Submitter:
Sebastian Ramacher
Date:
2026-09-13 20:51:02 UTC
Severity:
normal
Tags:
#1117833#5
Date:
2025-10-11 08:54:03 UTC
From:
To:
Source: dde-store
Version: 1.2.5-2
Severity: serious
Tags: ftbfs
Justification: fails to build from source (but built successfully in the past)
X-Debbugs-Cc: sramacher@debian.org

Dear maintainer,

packagekit-qt in unstable removed libpackagekitqt5-dev. Since dde-store
has a Build-Depends on this package, please update the package
accordingly.

Cheers

#1117833#12
Date:
2026-09-10 20:16:34 UTC
From:
To:
Dear maintainer,

I've prepared an NMU for dde-store (versioned as 1.2.5-2.1) and
uploaded it to DELAYED/3. Please feel free to tell me if I
should cancel it.

Regards.

diffstat for dde-store-1.2.5 dde-store-1.2.5

  changelog                     |   14 ++
  control                       |   14 +-
  patches/002-port-to-qt6.patch |  200 ++++++++++++++++++++++++++++++++++++++++++
  patches/series                |    1
  4 files changed, 222 insertions(+), 7 deletions(-)

diff -Nru dde-store-1.2.5/debian/changelog dde-store-1.2.5/debian/changelog
--- dde-store-1.2.5/debian/changelog    2025-05-19 16:11:20.000000000 -0400
+++ dde-store-1.2.5/debian/changelog    2026-09-10 16:07:52.000000000 -0400
@@ -1,3 +1,17 @@
+dde-store (1.2.5-2.1) unstable; urgency=medium
+
+  * Non-maintainer upload.
+  * Port to Qt 6 and DTK 6, dropping Qt 5 support (Closes: #1117833):
+    + debian/patches/002-port-to-qt6.patch: Backport upstream pull request
+      #34 by Gary Wang. It also raises cmake_minimum_required to 3.16, fixing
+      the FTBFS with CMake 4 (Closes: #1112832), and fixes a crash on the
+      home page when AppStream provides fewer than 10 entries.
+    + debian/control: Build-depend on qt6-base-dev, qt6-tools-dev,
+      libdtk6core-dev, libdtk6gui-dev, libdtk6widget-dev, libpackagekitqt6-dev
+      and libappstreamqt-dev instead of their Qt 5 counterparts.
+
+ -- Boyuan Yang <byang@debian.org>  Thu, 10 Sep 2026 16:07:52 -0400
+
  dde-store (1.2.5-2) unstable; urgency=medium

    * Disable snap support. (Closes: #1104833)
diff -Nru dde-store-1.2.5/debian/control dde-store-1.2.5/debian/control
--- dde-store-1.2.5/debian/control    2025-05-19 16:11:20.000000000 -0400
+++ dde-store-1.2.5/debian/control    2026-09-10 16:03:27.000000000 -0400
@@ -5,14 +5,14 @@
  Build-Depends:
   cmake,
   debhelper-compat (=13),
- libappstreamqt5-dev (>= 1.0.0~),
- libdtkcore-dev,
- libdtkgui-dev,
- libdtkwidget-dev,
- libpackagekitqt5-dev,
+ libappstreamqt-dev (>= 1.0.0~),
+ libdtk6core-dev,
+ libdtk6gui-dev,
+ libdtk6widget-dev,
+ libpackagekitqt6-dev,
   pkgconf,
- qtbase5-dev,
- qttools5-dev,
+ qt6-base-dev,
+ qt6-tools-dev,
  Standards-Version: 4.6.2
  Rules-Requires-Root: no
  Homepage: https://github.com/ubuntudde/dde-store
diff -Nru dde-store-1.2.5/debian/patches/002-port-to-qt6.patch dde-store-1.2.5/debian/patches/002-port-to-qt6.patch
--- dde-store-1.2.5/debian/patches/002-port-to-qt6.patch 1969-12-31 19:00:00.000000000 -0500
+++ dde-store-1.2.5/debian/patches/002-port-to-qt6.patch 2026-09-10 16:03:23.000000000 -0400
@@ -0,0 +1,200 @@
+Description: Port to Qt 6 and DTK 6, drop Qt 5 support
+ Taken from the upstream pull request by Gary Wang (BLumia). Besides the
+ Qt 6 / Dtk6 / PackageKitQt6 / AppStreamQt port it raises
+ cmake_minimum_required to 3.16 (fixes the CMake 4 FTBFS) and fixes a
+ crash on the home page when AppStream provides fewer than 10 entries
+ in a category.
+Author: Wang Zichong <wangzichong@deepin.org>
+Origin: upstream, https://github.com/UbuntuDDE/dde-store/pull/34
+Bug-Debian: https://bugs.debian.org/1112832
+Bug-Debian: https://bugs.debian.org/1117833
+Applied-Upstream: no
+Last-Update: 2026-09-10
+---
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index b790511..4a20ac3 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -1,4 +1,4 @@
+-cmake_minimum_required(VERSION 3.0)
++cmake_minimum_required(VERSION 3.16)
+
+ project(dde-store)
+
+@@ -10,21 +10,16 @@ set(CMAKE_AUTOMOC ON)
+ set(CMAKE_AUTORCC ON)
+
+ find_package(PkgConfig REQUIRED)
+-find_package(Qt5 REQUIRED Core Widgets Network DBus Gui LinguistTools)
+-find_package(Dtk REQUIRED Widget Gui)
+-find_package(PackageKitQt5 REQUIRED)
+-find_package(AppStreamQt5 1.0 REQUIRED)
++find_package(Qt6 REQUIRED Core Widgets Network DBus Gui LinguistTools)
++find_package(Dtk6 REQUIRED Widget Gui)
++find_package(PackageKitQt6 REQUIRED)
++find_package(AppStreamQt 1.0 REQUIRED)
+ find_package(PkgConfig REQUIRED)
+ include(FindPkgConfig)
+ include(GNUInstallDirs)
+
+-include_directories(
+-    ${PackageKitQt5_INCLUDE_DIR}
+-    ${AppStreamQt5_INCLUDE_DIRS}
+-)
+-
+ file(GLOB TS_FILES ./translations/*.ts)
+-qt5_create_translation(QM_FILES ${CMAKE_SOURCE_DIR} ${TS_FILES})
++qt_create_translation(QM_FILES ${CMAKE_SOURCE_DIR} ${TS_FILES})
+
+ file(GLOB SRC
+     main.cpp
+@@ -61,19 +56,14 @@ add_executable(${PROJECT_NAME}
+     ${QM_FILES}
+ )
+
+-target_include_directories(${PROJECT_NAME} PUBLIC
+-    ${PackageKitQt5_INCLUDE_DIR}
+-    ${AppStreamQt5_INCLUDE_DIRS}
+-)
+-
+ target_link_libraries(${PROJECT_NAME}
+-    ${DtkWidget_LIBRARIES}
+-    ${DtkCore_LIBRARIES}
+-    ${DtkGui_LIBRARIES}
+-    ${Qt5Widgets_LIBRARIES}
+-    ${Qt5Network_LIBRARIES}
+-    ${PackageKitQt5_LIBRARIES}
+-    AppStreamQt5
++    Dtk6::Widget
++    Dtk6::Core
++    Dtk6::Gui
++    Qt6::Widgets
++    Qt6::Network
++    PK::packagekitqt6
++    AppStreamQt
+ )
+
+ add_subdirectory(backend/sources)
+diff --git a/backend/sources/packagekit/packagekitsource.cpp b/backend/sources/packagekit/packagekitsource.cpp
+index 27b4229..0d312ce 100644
+--- a/backend/sources/packagekit/packagekitsource.cpp
++++ b/backend/sources/packagekit/packagekitsource.cpp
+@@ -2,11 +2,12 @@
+ #include "backend/settings.h"
+ #include "backend/ratingshelper.h"
+ #include <Details>
+-#include <AppStreamQt5/pool.h>
+-#include <AppStreamQt5/icon.h>
+-#include <AppStreamQt5/screenshot.h>
+-#include <AppStreamQt5/image.h>
+-#include <AppStreamQt5/developer.h>
++#include <QRegularExpression>
++#include <AppStreamQt/pool.h>
++#include <AppStreamQt/icon.h>
++#include <AppStreamQt/screenshot.h>
++#include <AppStreamQt/image.h>
++#include <AppStreamQt/developer.h>
+
+ using namespace PackageKit;
+ using namespace AppStream;
+@@ -195,7 +196,7 @@ void PackageKitSource::search(QString query)
+             break;
+         Component component = metadata.value(key);
+         bool noMatch = false;
+-        for (QString item : query.split(QRegExp("\\s"), Qt::SkipEmptyParts)) {
++        for (QString item : query.split(QRegularExpression("\\s+"), Qt::SkipEmptyParts)) {
+             if (!component.name().contains(item, Qt::CaseInsensitive) && !component.description().contains(item,
Qt::CaseInsensitive))
+                 noMatch = true;
+         }
+diff --git a/backend/sources/packagekit/packagekitsource.h b/backend/sources/packagekit/packagekitsource.h
+index d5e77b0..3abb5a1 100644
+--- a/backend/sources/packagekit/packagekitsource.h
++++ b/backend/sources/packagekit/packagekitsource.h
+@@ -3,7 +3,7 @@
+
+ #include "backend/sourcemanager.h"
+ #include <Daemon>
+-#include <AppStreamQt5/component.h>
++#include <AppStreamQt/component.h>
+
+ class PackageKitSource : public Source
+ {
+diff --git a/pages/homepage.cpp b/pages/homepage.cpp
+index 0c9c409..9fbba33 100644
+--- a/pages/homepage.cpp
++++ b/pages/homepage.cpp
+@@ -26,7 +26,7 @@ HomePage::HomePage(MainWindow *parent)
+     layout->setAlignment(Qt::AlignTop);
+     widget->setLayout(layout);
+     QHBoxLayout *mainLayout = new QHBoxLayout;
+-    mainLayout->setMargin(0);
++    mainLayout->setContentsMargins(0, 0, 0, 0);
+     mainLayout->setSpacing(0);
+     setLayout(mainLayout);
+     mainLayout->addWidget(scroll);
+@@ -65,7 +65,7 @@ void HomePage::addCategory(QString name, QString category, MainWindow *parent)
+             for (App *app : map.values()) {
+                 items.insert(0, app);
+             }
+-            for (int i = 0; i < 10; i++) {
++            for (int i = 0; i < qMin(10, items.size()); i++) {
+                 list->addItem(items[i]->name, items[i]->icon, i);
+                 apps->append(items[i]);
+             }
+diff --git a/pages/itempage.cpp b/pages/itempage.cpp
+index eaf6dc8..b014c44 100644
+--- a/pages/itempage.cpp
++++ b/pages/itempage.cpp
+@@ -21,7 +21,7 @@ ItemPage::ItemPage(App *app)
+     this->app = app;
+
+     QHBoxLayout *mainLayout = new QHBoxLayout;
+-    mainLayout->setMargin(0);
++    mainLayout->setContentsMargins(0, 0, 0, 0);
+     mainLayout->setSpacing(0);
+     setLayout(mainLayout);
+     mainLayout->addWidget(scroll);
+@@ -48,7 +48,7 @@ void ItemPage::load()
+     spinner->hide();
+     layout->removeWidget(spinner);
+     QHBoxLayout *header = new QHBoxLayout;
+-    header->setMargin(10);
++    header->setContentsMargins(10, 10, 10, 10);
+     header->setAlignment(Qt::AlignVCenter);
+
+     QLabel *icon = new QLabel;
+@@ -56,7 +56,7 @@ void ItemPage::load()
+     header->addWidget(icon);
+
+     QVBoxLayout *nameSection = new QVBoxLayout;
+-    nameSection->setMargin(0);
++    nameSection->setContentsMargins(0, 0, 0, 0);
+     nameSection->setAlignment(Qt::AlignTop);
+
+     DLabel *name = new DLabel(app->name);
+diff --git a/widgets/list.cpp b/widgets/list.cpp
+index 04ac467..7892978 100644
+--- a/widgets/list.cpp
++++ b/widgets/list.cpp
+@@ -14,7 +14,7 @@ List::List(QString title)
+     headerLayout->addWidget(titleLabel);
+     headerLayout->addStretch();
+     headerLayout->setSpacing(10);
+-    headerLayout->setMargin(10);
++    headerLayout->setContentsMargins(10, 10, 10, 10);
+     layout->addLayout(headerLayout);
+
+     listView = new DListView;
+diff --git a/widgets/stars.cpp b/widgets/stars.cpp
+index a6d0dd3..24e9a5b 100644
+--- a/widgets/stars.cpp
++++ b/widgets/stars.cpp
+@@ -7,7 +7,7 @@ stars::stars(QString app)
+ {
+     QHBoxLayout *layout = new QHBoxLayout;
+     this->setLayout(layout);
+-    layout->setMargin(0);
++    layout->setContentsMargins(0, 0, 0, 0);
+     layout->setAlignment(Qt::AlignLeft);
+     double rating = RatingsHelper::instance()->averageRating(app);
+     for (int i = 0; i < int(rating); i++) {
diff -Nru dde-store-1.2.5/debian/patches/series dde-store-1.2.5/debian/patches/series
--- dde-store-1.2.5/debian/patches/series    2025-05-19 16:11:20.000000000 -0400
+++ dde-store-1.2.5/debian/patches/series    2026-09-10 16:03:23.000000000 -0400
@@ -1 +1,2 @@
  001-fix-updates-nullcheck.patch
+002-port-to-qt6.patch

#1117833#21
Date:
2026-09-13 20:49:00 UTC
From:
To:
We believe that the bug you reported is fixed in the latest version of
dde-store, which is due to be installed in the Debian FTP archive.

A summary of the changes between this version and the previous one is
attached.

Thank you for reporting the bug, which will now be closed.  If you
have further comments please address them to 1117833@bugs.debian.org,
and the maintainer will reopen the bug report if appropriate.

Debian distribution maintenance software
pp.
Boyuan Yang <byang@debian.org> (supplier of updated dde-store package)

(This message was generated automatically at their request; if you
believe that there is a problem with it please contact the archive
administrators by mailing ftpmaster@ftp-master.debian.org)
Format: 1.8
Date: Thu, 10 Sep 2026 16:07:52 -0400
Source: dde-store
Architecture: source
Version: 1.2.5-2.1
Distribution: unstable
Urgency: medium
Maintainer: Arun Kumar Pariyar <arun@debian.org>
Changed-By: Boyuan Yang <byang@debian.org>
Closes: 1112832 1117833
Changes:
 dde-store (1.2.5-2.1) unstable; urgency=medium
 .
   * Non-maintainer upload.
   * Port to Qt 6 and DTK 6, dropping Qt 5 support (Closes: #1117833):
     + debian/patches/002-port-to-qt6.patch: Backport upstream pull request
       #34 by Gary Wang. It also raises cmake_minimum_required to 3.16, fixing
       the FTBFS with CMake 4 (Closes: #1112832), and fixes a crash on the
       home page when AppStream provides fewer than 10 entries.
     + debian/control: Build-depend on qt6-base-dev, qt6-tools-dev,
       libdtk6core-dev, libdtk6gui-dev, libdtk6widget-dev, libpackagekitqt6-dev
       and libappstreamqt-dev instead of their Qt 5 counterparts.
Checksums-Sha1:
 09da598da90ec744ccd2d429124002f9b9c6b012 2000 dde-store_1.2.5-2.1.dsc
 21d89d6a7f7f06e15f1e9e20de36177a0baef64d 81525 dde-store_1.2.5.orig.tar.gz
 b93b1b8384876189e15b7478f697a2aa9f80437f 5796 dde-store_1.2.5-2.1.debian.tar.xz
 f6ac5523760ab706a3f90bd07a944fe4bbf74b00 13481 dde-store_1.2.5-2.1_amd64.buildinfo
Checksums-Sha256:
 4ebca2a83e8d0b4717067c3200607d53755ee02860981c84936c581a65fe3c51 2000 dde-store_1.2.5-2.1.dsc
 13314d7b4711754ea7a7fb7cd4c7c5b760fcfdec89ef62ab751496589170334e 81525 dde-store_1.2.5.orig.tar.gz
 11255b3bc699ecf733e1200670ebaeb9d329a0a5411b6bdcc4bb89a3a299eca8 5796 dde-store_1.2.5-2.1.debian.tar.xz
 f0922062cbc3f384a29cb72a39509d064b3e40e0f2138f4a3b3a3da84d4066b1 13481 dde-store_1.2.5-2.1_amd64.buildinfo
Files:
 b55e74d35cf6e2ebabc1affd72684164 2000 utils optional dde-store_1.2.5-2.1.dsc
 038cff8b62681e17934407a715e71f9f 81525 utils optional dde-store_1.2.5.orig.tar.gz
 0a01e3b6a14e0f01cf84353d3020bad2 5796 utils optional dde-store_1.2.5-2.1.debian.tar.xz
 a215ecdd97ff3d33f1ebaaecb149898f 13481 utils optional dde-store_1.2.5-2.1_amd64.buildinfo
-----BEGIN PGP SIGNATURE-----

iQIzBAEBCgAdFiEEfncpR22H1vEdkazLwpPntGGCWs4FAmqjDrAACgkQwpPntGGC
Ws5pXw//d/IBxEhFmT8j0BaHsQr5tgV/XXb1yxmoMx6GtXPV5oBPKhGaR1o5RXnG
ud/B2Tpx4QenxhX7bz+g2kLhJwA5jX9EvwppIId9P7iOs2954fi/rAHCoIet8ivQ
BPS1EigOD3tBu2/1is55fNL3Zi2nZ449ZmyWoOOH92IFblVEZaxfnk4xS/cw6j57
sL3R4Tf/NiaYq81NeZ0EBl3PBPb9IvCDh6aSAAlpVGBjktHb3U55LqrHj7xYdRoK
b5IdZT0DzBU2Zc8aHYFkNJBmH4ozOU1skkyH6VAWoFgE96rbNYJCsRN/6+RsIgQE
5tc2tJVR7ZRyN7QYBf81fBVP9ky3qI+AhJQulR2ei5s12xyF2jkdrAN+sgPio8/R
en9IDaBZWUllcIH6ySpIeeX1AmEXn4Wo5uzdxnkaYSVh3dsSO8VUeBnU8cKFzcWQ
xYE6PEKcCFP87WgNAXsuH79R//JlUBhJZvlg87t83Axfu7MWCN5NqeAC0zGF9eL9
9SUfs61MuvfZx1hV93Yc/LPqozb+ixXOCE9c/z93BuTRCEQWI+pPu/eIiHhi+czB
OLZhhYZHTGEJAgK9v+xb4dtA/AXIn603RfyiZfve4gcPU44u0tzbmydC32oleyGS
fi3AgzLmg1E2hNJTTX0Pn4XYwoCLLmg38zEAaRBraK0HoFjai8U=
=Mw50
-----END PGP SIGNATURE-----