Control: tags -1 + patch

On Fri, Nov 28, 2025 at 02:03:19PM -0500, Boyuan Yang wrote:
> As the kdeframework 5.x library series are not receiving further updates,
> and that your package supports building with Qt6 and kdeframework 6.x,
> please consider rebuilding your package with Qt6/KF6 instead.

This required a couple of patches backported from git, but was otherwise
straightforward. Patch attached.

Regards,
Faidon
diff --git a/debian/changelog b/debian/changelog
index ccd0cc2..1dd2a8d 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,11 @@
+heaptrack (1.5.0+dfsg1-7) UNRELEASED; urgency=medium
+
+  * Build with Qt6/KF6 (Closes: #1121567)
+    - Backport upstream patch to allow building with KFChart6.
+    - Backport upstream patch to fix a KConfigGroup FTBFS with KF6.
+
+ -- Faidon Liambotis <[email protected]>  Tue, 03 Mar 2026 11:20:06 +0200
+
 heaptrack (1.5.0+dfsg1-6) unstable; urgency=medium
 
   * Team upload.
diff --git a/debian/control b/debian/control
index 893bdd7..2461a35 100644
--- a/debian/control
+++ b/debian/control
@@ -4,13 +4,15 @@ Uploaders: Anton Gladky <[email protected]>
 Section: devel
 Build-Depends: cmake,
                debhelper-compat (= 13),
-               qtbase5-dev,
-               qtbase5-dev-tools,
-               libkf5kio-dev,
-               libkf5configwidgets-dev,
-               libkf5threadweaver-dev,
-               libkf5itemmodels-dev,
-               libkf5i18n-dev,
+               qt6-base-dev,
+               qt6-base-dev-tools,
+               libkf6configwidgets-dev,
+               libkf6i18n-dev,
+               libkf6iconthemes-dev,
+               libkf6itemmodels-dev,
+               libkf6kio-dev,
+               libkf6threadweaver-dev,
+               libkchart-dev,
                libelf-dev,
                extra-cmake-modules,
                libunwind-dev,
diff --git a/debian/patches/40_Support-KChart6-for-KF6.patch b/debian/patches/40_Support-KChart6-for-KF6.patch
new file mode 100644
index 0000000..fd7fd00
--- /dev/null
+++ b/debian/patches/40_Support-KChart6-for-KF6.patch
@@ -0,0 +1,65 @@
+From 2de688e02fbc5ff96fcf29ad3af962e8035824eb Mon Sep 17 00:00:00 2001
+From: Alessandro Astone <[email protected]>
+Date: Wed, 27 Dec 2023 19:21:06 +0100
+Subject: [PATCH] Support KChart6 for KF6
+
+---
+ src/analyze/CMakeLists.txt     | 14 ++++++++++++--
+ src/analyze/gui/CMakeLists.txt |  2 +-
+ 2 files changed, 13 insertions(+), 3 deletions(-)
+
+diff --git a/src/analyze/CMakeLists.txt b/src/analyze/CMakeLists.txt
+index e57d242..e71aee9 100644
+--- a/src/analyze/CMakeLists.txt
++++ b/src/analyze/CMakeLists.txt
+@@ -34,6 +34,12 @@ endif()
+ add_subdirectory(print)
+ 
+ if(HEAPTRACK_BUILD_GUI)
++    if(QT_VERSION_MAJOR EQUAL 6)
++        set(KChartName KChart6)
++    else()
++        set(KChartName KChart)
++    endif()
++
+     find_package(Qt${QT_VERSION_MAJOR} ${QT_MIN_VERSION} ${REQUIRED_IN_APPIMAGE} NO_MODULE OPTIONAL_COMPONENTS Widgets)
+     set_package_properties(Qt${QT_VERSION_MAJOR} PROPERTIES TYPE RECOMMENDED PURPOSE "Required for the heaptrack_gui executable.")
+     find_package(ECM 1.0.0 ${REQUIRED_IN_APPIMAGE} NO_MODULE)
+@@ -41,8 +47,8 @@ if(HEAPTRACK_BUILD_GUI)
+     if(Qt${QT_VERSION_MAJOR}_FOUND AND ECM_FOUND)
+         set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${ECM_MODULE_PATH})
+             find_package(KF${QT_VERSION_MAJOR} ${REQUIRED_IN_APPIMAGE} COMPONENTS CoreAddons I18n ItemModels ThreadWeaver ConfigWidgets KIO IconThemes)
+-            find_package(KChart ${REQUIRED_IN_APPIMAGE} "2.6.0")
+-            set_package_properties(KChart PROPERTIES TYPE RECOMMENDED PURPOSE "Required for the heaptrack_gui executable. Get it from the kdiagram module.")
++            find_package(${KChartName} ${REQUIRED_IN_APPIMAGE} "2.6.0")
++            set_package_properties(${KChartName} PROPERTIES TYPE RECOMMENDED PURPOSE "Required for the heaptrack_gui executable. Get it from the kdiagram module.")
+         if(KF${QT_VERSION_MAJOR}I18n_FOUND)
+             ki18n_install(../../po)
+         endif()
+@@ -51,6 +57,10 @@ if(HEAPTRACK_BUILD_GUI)
+     endif()
+ endif()
+ 
++if(KChart6_FOUND)
++    set(KChart_FOUND TRUE)
++endif()
++
+ if (KF${QT_VERSION_MAJOR}_FOUND)
+     add_subdirectory(gui)
+ endif()
+diff --git a/src/analyze/gui/CMakeLists.txt b/src/analyze/gui/CMakeLists.txt
+index f5803b6..2124683 100644
+--- a/src/analyze/gui/CMakeLists.txt
++++ b/src/analyze/gui/CMakeLists.txt
+@@ -92,7 +92,7 @@ if (KChart_FOUND)
+         histogrammodel.cpp
+     )
+     list(APPEND LIBRARIES
+-        KChart
++        ${KChartName}
+         Qt${QT_VERSION_MAJOR}::Svg
+     )
+ endif()
+-- 
+2.51.0
+
diff --git a/debian/patches/50_Use-QString-for-KConfigGroup-names.patch b/debian/patches/50_Use-QString-for-KConfigGroup-names.patch
new file mode 100644
index 0000000..9c7272d
--- /dev/null
+++ b/debian/patches/50_Use-QString-for-KConfigGroup-names.patch
@@ -0,0 +1,73 @@
+From 38fd1d7b0ff53a35ed7c4ef241c21c8c06e1efb2 Mon Sep 17 00:00:00 2001
+From: Nicolas Fella <[email protected]>
+Date: Tue, 2 Jan 2024 15:47:29 +0100
+Subject: [PATCH] Use QString for KConfigGroup names
+
+Required in KF6
+---
+ src/analyze/gui/mainwindow.cpp | 14 +++++++-------
+ 1 file changed, 7 insertions(+), 7 deletions(-)
+
+diff --git a/src/analyze/gui/mainwindow.cpp b/src/analyze/gui/mainwindow.cpp
+index 1ebd4c9..c3be2fa 100644
+--- a/src/analyze/gui/mainwindow.cpp
++++ b/src/analyze/gui/mainwindow.cpp
+@@ -57,8 +57,8 @@ const int MAINWINDOW_VERSION = 1;
+ 
+ namespace Config {
+ namespace Groups {
+-const char MainWindow[] = "MainWindow";
+-const char CodeNavigation[] = "CodeNavigation";
++const QString MainWindow() { return QStringLiteral("MainWindow"); }
++const QString CodeNavigation() { return QStringLiteral("CodeNavigation"); }
+ }
+ namespace Entries {
+ const char State[] = "State";
+@@ -317,7 +317,7 @@ MainWindow::MainWindow(QWidget* parent)
+ {
+     m_ui->setupUi(this);
+ 
+-    auto group = m_config->group(Config::Groups::MainWindow);
++    auto group = m_config->group(Config::Groups::MainWindow());
+     auto state = group.readEntry(Config::Entries::State, QByteArray());
+     restoreState(state, MAINWINDOW_VERSION);
+ 
+@@ -671,7 +671,7 @@ MainWindow::MainWindow(QWidget* parent)
+ MainWindow::~MainWindow()
+ {
+     auto state = saveState(MAINWINDOW_VERSION);
+-    auto group = m_config->group(Config::Groups::MainWindow);
++    auto group = m_config->group(Config::Groups::MainWindow());
+     group.writeEntry(Config::Entries::State, state);
+ }
+ 
+@@ -788,7 +788,7 @@ void MainWindow::setupCodeNavigationMenu()
+     auto group = new QActionGroup(this);
+     group->setExclusive(true);
+ 
+-    const auto settings = m_config->group(Config::Groups::CodeNavigation);
++    const auto settings = m_config->group(Config::Groups::CodeNavigation());
+     const auto currentIdx = settings.readEntry(Config::Entries::IDE, firstAvailableIde());
+ 
+     for (int i = 0; i < LAST_IDE; ++i) {
+@@ -838,7 +838,7 @@ void MainWindow::setupCodeNavigationMenu()
+ 
+ void MainWindow::setCodeNavigationIDE(QAction* action)
+ {
+-    auto settings = m_config->group(Config::Groups::CodeNavigation);
++    auto settings = m_config->group(Config::Groups::CodeNavigation());
+ 
+     if (action->data() == -1) {
+         const auto customCmd =
+@@ -859,7 +859,7 @@ void MainWindow::setCodeNavigationIDE(QAction* action)
+ 
+ void MainWindow::navigateToCode(const QString& filePath, int lineNumber, int columnNumber)
+ {
+-    const auto settings = m_config->group(Config::Groups::CodeNavigation);
++    const auto settings = m_config->group(Config::Groups::CodeNavigation());
+     const auto ideIdx = settings.readEntry(Config::Entries::IDE, firstAvailableIde());
+ 
+     QString command;
+-- 
+2.51.0
+
diff --git a/debian/patches/series b/debian/patches/series
index 35deeeb..5b154c7 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -2,3 +2,5 @@
 20_disable_some_unreliable_tests.patch
 # backported from upstream
 30_cmake-Fix-C-compatibility-of-libunwind-probes.patch
+40_Support-KChart6-for-KF6.patch
+50_Use-QString-for-KConfigGroup-names.patch
diff --git a/debian/rules b/debian/rules
index 69f4c13..6f07596 100755
--- a/debian/rules
+++ b/debian/rules
@@ -8,7 +8,7 @@ BUILDDIR = $(CURDIR)/debian/build
 	dh $@ --builddirectory=$(BUILDDIR)
 
 override_dh_auto_configure:
-	dh_auto_configure -- -DHEAPTRACK_BUILD_PRINT=ON -DHEAPTRACK_BUILD_GUI=ON
+	dh_auto_configure -- -DHEAPTRACK_BUILD_PRINT=ON -DHEAPTRACK_BUILD_GUI=ON -DHEAPTRACK_USE_QT6=ON
 
 # Unittests are disabled on mips due to build failures
 # It looks like the crash is happening in libunwind,

Reply via email to