commit:     a1525e2aa81f8362a283b80b6b659b9d573f797c
Author:     Andreas Sturmlechner <asturm <AT> gentoo <DOT> org>
AuthorDate: Sun Oct 19 19:26:40 2025 +0000
Commit:     Andreas Sturmlechner <asturm <AT> gentoo <DOT> org>
CommitDate: Sun Oct 19 20:40:31 2025 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=a1525e2a

dev-util/heaptrack: Drop IUSE zstd and fix using system boost-zstd

Closes: https://bugs.gentoo.org/964695
Signed-off-by: Andreas Sturmlechner <asturm <AT> gentoo.org>

 ....5.80_pre20251017-fix-zstd-use-boost-1.69.patch | 161 +++++++++++++++++++++
 .../heaptrack/heaptrack-1.5.80_pre20251017.ebuild  |  11 +-
 2 files changed, 167 insertions(+), 5 deletions(-)

diff --git 
a/dev-util/heaptrack/files/heaptrack-1.5.80_pre20251017-fix-zstd-use-boost-1.69.patch
 
b/dev-util/heaptrack/files/heaptrack-1.5.80_pre20251017-fix-zstd-use-boost-1.69.patch
new file mode 100644
index 000000000000..7cd7ca05c073
--- /dev/null
+++ 
b/dev-util/heaptrack/files/heaptrack-1.5.80_pre20251017-fix-zstd-use-boost-1.69.patch
@@ -0,0 +1,161 @@
+Source: https://invent.kde.org/sdk/heaptrack/-/merge_requests/53
+
+From 56b327da62281a126bb0ea1400f4b0be00cfb64d Mon Sep 17 00:00:00 2001
+From: Andreas Sturmlechner <[email protected]>
+Date: Sun, 19 Oct 2025 21:05:39 +0200
+Subject: [PATCH] Raise Boost minimum version to 1.69
+
+Boost 1.69 was released on December 5th, 2018.
+
+This solves multiple issues:
+- Mainly, with <boost-1.89, the second FindBoost call for System reset
+  Boost_IOSTREAMS_FOUND since 99348321819fe8efb3771b2dcd9aaffbc598b271,
+  ending up never checking BOOST_IOSTREAMS_HAS_ZSTD
+- Boost-1.69 introduced zstd compression/decompression filter, so the
+  bundled lib is unnecessary
+- Boost-1.69 made Boost.System header-only, providing a stub library,
+  so we can simply drop all references - see also:
+  
https://www.boost.org/doc/libs/1_69_0/libs/system/doc/html/system.html#changes_in_boost_1_69
+
+Further fixes:
+- Set CMake Policy CMP0167 too OLD if available to silence warnings
+  in CMake >=3.30 (use old CMake provided FindBoost.cmake module)
+- Do not expand variables beforehand - see also:
+  https://invent.kde.org/plasma/libplasma/-/merge_requests/267
+
+Signed-off-by: Andreas Sturmlechner <[email protected]>
+---
+ CMakeLists.txt                    | 15 +++++++--------
+ src/analyze/CMakeLists.txt        |  2 +-
+ src/interpret/CMakeLists.txt      |  2 +-
+ tests/auto/CMakeLists.txt         |  7 ++-----
+ tests/auto/no_asan/CMakeLists.txt |  3 +--
+ 5 files changed, 12 insertions(+), 17 deletions(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index adc08a3..4f896e3 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -1,6 +1,11 @@
+ cmake_minimum_required(VERSION 3.16.0)
+ 
+ project(heaptrack)
++
++if(POLICY CMP0167) # in CMake >=3.30; BoostConfig.cmake is shipped only by 
Boost >=1.82
++  cmake_policy(SET CMP0167 OLD)
++endif()
++
+ enable_testing()
+ 
+ if(NOT CMAKE_BUILD_TYPE)
+@@ -25,18 +30,12 @@ if (APPIMAGE_BUILD)
+ endif()
+ 
+ include(FeatureSummary)
+-find_package(Boost 1.60.0 ${REQUIRED_IN_APPIMAGE} COMPONENTS filesystem 
iostreams container)
+-# boost_system no longer exists in 1.89
+-if (Boost_VERSION VERSION_LESS 1.89.0)
+-    find_package(Boost ${REQUIRED_IN_APPIMAGE} COMPONENTS system)
+-else()
+-    set(Boost_SYSTEM_FOUND TRUE)
+-endif()
++find_package(Boost 1.69.0 ${REQUIRED_IN_APPIMAGE} COMPONENTS filesystem 
iostreams container)
+ set_package_properties(Boost PROPERTIES TYPE RECOMMENDED PURPOSE "Boost 
container libraries can greatly improve performance (via pmr allocators)")
+ find_package(Threads REQUIRED)
+ find_package(ZLIB REQUIRED)
+ 
+-if (${Boost_IOSTREAMS_FOUND})
++if (Boost_IOSTREAMS_FOUND)
+     find_package(ZSTD ${REQUIRED_IN_APPIMAGE})
+ 
+     include(CheckCXXSourceCompiles)
+diff --git a/src/analyze/CMakeLists.txt b/src/analyze/CMakeLists.txt
+index 340eb7f..a37812a 100644
+--- a/src/analyze/CMakeLists.txt
++++ b/src/analyze/CMakeLists.txt
+@@ -2,7 +2,7 @@ if (ECM_FOUND)
+     include(ECMEnableSanitizers)
+ endif()
+ 
+-find_package(Boost 1.41.0 REQUIRED COMPONENTS iostreams program_options 
filesystem)
++find_package(Boost 1.69.0 REQUIRED COMPONENTS iostreams program_options 
filesystem)
+ 
+ configure_file(analyze_config.h.cmake 
${CMAKE_CURRENT_BINARY_DIR}/analyze_config.h)
+ 
+diff --git a/src/interpret/CMakeLists.txt b/src/interpret/CMakeLists.txt
+index ef0d5be..c9fd174 100644
+--- a/src/interpret/CMakeLists.txt
++++ b/src/interpret/CMakeLists.txt
+@@ -3,7 +3,7 @@ if (ECM_FOUND)
+ endif()
+ 
+ find_package(Elfutils 0.158 REQUIRED)
+-find_package(Boost 1.41.0 REQUIRED COMPONENTS program_options)
++find_package(Boost 1.69.0 REQUIRED COMPONENTS program_options)
+ 
+ include_directories(
+     ${PROJECT_SOURCE_DIR}/3rdparty/
+diff --git a/tests/auto/CMakeLists.txt b/tests/auto/CMakeLists.txt
+index c4959cc..be9712c 100644
+--- a/tests/auto/CMakeLists.txt
++++ b/tests/auto/CMakeLists.txt
+@@ -11,7 +11,7 @@ include_directories(
+     ${CMAKE_CURRENT_SOURCE_DIR}/../../src/track
+ )
+ 
+-if ("${Boost_FILESYSTEM_FOUND}" AND "${Boost_SYSTEM_FOUND}")
++if (Boost_FILESYSTEM_FOUND)
+     if (CMAKE_SYSTEM_NAME STREQUAL "FreeBSD")
+         set(LIBUTIL_LIBRARY "util")
+     endif()
+@@ -44,7 +44,7 @@ add_test(NAME tst_trace COMMAND tst_trace)
+ configure_file(tst_heaptrack_interpret.cmake.sh 
${CMAKE_CURRENT_BINARY_DIR}/tst_heaptrack_interpret.sh @ONLY)
+ add_test(NAME tst_heaptrack_interpret COMMAND 
${CMAKE_CURRENT_BINARY_DIR}/tst_heaptrack_interpret.sh)
+ 
+-if ("${Boost_FILESYSTEM_FOUND}" AND "${Boost_SYSTEM_FOUND}")
++if (Boost_FILESYSTEM_FOUND)
+     add_executable(tst_libheaptrack
+         tst_libheaptrack.cpp
+         ../../src/track/libheaptrack.cpp)
+@@ -56,7 +56,6 @@ if ("${Boost_FILESYSTEM_FOUND}" AND "${Boost_SYSTEM_FOUND}")
+             ${LIBUTIL_LIBRARY}
+             heaptrack_unwind
+             rt
+-            ${Boost_SYSTEM_LIBRARY}
+             ${Boost_FILESYSTEM_LIBRARY}
+     )
+     add_test(NAME tst_libheaptrack COMMAND tst_libheaptrack)
+@@ -64,7 +63,6 @@ if ("${Boost_FILESYSTEM_FOUND}" AND "${Boost_SYSTEM_FOUND}")
+     add_executable(tst_io tst_io.cpp)
+     set_target_properties(tst_io PROPERTIES RUNTIME_OUTPUT_DIRECTORY 
"${PROJECT_BINARY_DIR}/${BIN_INSTALL_DIR}")
+     target_link_libraries(tst_io
+-            ${Boost_SYSTEM_LIBRARY}
+             ${Boost_FILESYSTEM_LIBRARY}
+     )
+     add_test(NAME tst_io COMMAND tst_io)
+@@ -75,7 +73,6 @@ if ("${Boost_FILESYSTEM_FOUND}" AND "${Boost_SYSTEM_FOUND}")
+             add_executable(tst_parser tst_parser.cpp)
+             set_target_properties(tst_parser PROPERTIES 
RUNTIME_OUTPUT_DIRECTORY "${PROJECT_BINARY_DIR}/${BIN_INSTALL_DIR}")
+             target_link_libraries(tst_parser
+-                    ${Boost_SYSTEM_LIBRARY}
+                     ${Boost_FILESYSTEM_LIBRARY}
+                     heaptrack_gui_private
+                     Qt6::Test
+diff --git a/tests/auto/no_asan/CMakeLists.txt 
b/tests/auto/no_asan/CMakeLists.txt
+index 1aed05d..927e6ff 100644
+--- a/tests/auto/no_asan/CMakeLists.txt
++++ b/tests/auto/no_asan/CMakeLists.txt
+@@ -1,9 +1,8 @@
+-if ("${Boost_FILESYSTEM_FOUND}" AND "${Boost_SYSTEM_FOUND}")
++if (Boost_FILESYSTEM_FOUND)
+     add_executable(tst_inject tst_inject.cpp)
+     set_target_properties(tst_inject PROPERTIES RUNTIME_OUTPUT_DIRECTORY 
"${PROJECT_BINARY_DIR}/${BIN_INSTALL_DIR}")
+     target_link_libraries(tst_inject
+             ${CMAKE_DL_LIBS}
+-            ${Boost_SYSTEM_LIBRARY}
+             ${Boost_FILESYSTEM_LIBRARY}
+     )
+     add_test(NAME tst_inject COMMAND tst_inject)
+-- 
+2.51.1
+

diff --git a/dev-util/heaptrack/heaptrack-1.5.80_pre20251017.ebuild 
b/dev-util/heaptrack/heaptrack-1.5.80_pre20251017.ebuild
index 6e45568a05a1..cf73eb35a890 100644
--- a/dev-util/heaptrack/heaptrack-1.5.80_pre20251017.ebuild
+++ b/dev-util/heaptrack/heaptrack-1.5.80_pre20251017.ebuild
@@ -13,13 +13,13 @@ 
https://milianw.de/blog/heaptrack-a-heap-memory-profiler-for-linux";
 LICENSE="LGPL-2.1+"
 SLOT="0"
 KEYWORDS="~amd64"
-IUSE="+gui test zstd"
+IUSE="+gui test"
 
 RESTRICT="!test? ( test )"
 
 DEPEND="
        dev-cpp/robin-map
-       dev-libs/boost:=[zstd?,zlib]
+       dev-libs/boost:=[zstd,zlib]
        sys-libs/libunwind:=
        sys-libs/zlib
        gui? (
@@ -34,14 +34,16 @@ DEPEND="
                kde-frameworks/kwidgetsaddons:6
                kde-frameworks/threadweaver:6
        )
-       zstd? ( app-arch/zstd:= )
 "
 RDEPEND="${DEPEND}
        gui? ( >=kde-frameworks/kf-env-4 )
 "
 BDEPEND="gui? ( kde-frameworks/extra-cmake-modules:0 )"
 
-PATCHES=( "${FILESDIR}/${P}-unbundle-robin-map.patch" ) # bug #964521
+PATCHES=(
+       "${FILESDIR}/${P}-unbundle-robin-map.patch" # bug #964521
+       "${FILESDIR}/${P}-fix-zstd-use-boost-1.69.patch" # bug #964695
+)
 
 QA_CONFIG_IMPL_DECL_SKIP=(
        # This doesn't exist in libunwind (bug #898768).
@@ -58,7 +60,6 @@ src_configure() {
                -DHEAPTRACK_USE_SYSTEM_ROBINMAP=ON
                -DHEAPTRACK_BUILD_GUI=$(usex gui)
                -DBUILD_TESTING=$(usex test)
-               $(cmake_use_find_package zstd ZSTD)
        )
        cmake_src_configure
 }

Reply via email to