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,

