Control: tags -1 +patch  +pending

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 <[email protected]>  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 <[email protected]>
+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

Attachment: OpenPGP_signature.asc
Description: OpenPGP digital signature

Reply via email to