From 109d6f6f670ebc8748acc1ca558ae25666d360d7 Mon Sep 17 00:00:00 2001 From: Alex James Date: Sat, 30 May 2026 19:47:18 -0500 Subject: [PATCH 1/8] redumper: enable strictDeps --- pkgs/by-name/re/redumper/package.nix | 2 ++ 1 file changed, 2 insertions(+) diff --git a/pkgs/by-name/re/redumper/package.nix b/pkgs/by-name/re/redumper/package.nix index 53c7185fd567..bff9199f9c20 100644 --- a/pkgs/by-name/re/redumper/package.nix +++ b/pkgs/by-name/re/redumper/package.nix @@ -18,6 +18,8 @@ llvmPackages.libcxxStdenv.mkDerivation (finalAttrs: { hash = "sha256-3J+/v8Rhu5yT+MgAxcNBiHLAPAcNWc/YJXxFMgOZnPs="; }; + strictDeps = true; + nativeBuildInputs = [ cmake ninja From 6ff6a5e53014fe001cd77d4afe2a3bea79d301b3 Mon Sep 17 00:00:00 2001 From: Alex James Date: Sat, 30 May 2026 19:48:37 -0500 Subject: [PATCH 2/8] redumer: enable __structuredAttrs --- pkgs/by-name/re/redumper/package.nix | 2 ++ 1 file changed, 2 insertions(+) diff --git a/pkgs/by-name/re/redumper/package.nix b/pkgs/by-name/re/redumper/package.nix index bff9199f9c20..25e9c6801282 100644 --- a/pkgs/by-name/re/redumper/package.nix +++ b/pkgs/by-name/re/redumper/package.nix @@ -18,6 +18,8 @@ llvmPackages.libcxxStdenv.mkDerivation (finalAttrs: { hash = "sha256-3J+/v8Rhu5yT+MgAxcNBiHLAPAcNWc/YJXxFMgOZnPs="; }; + __structuredAttrs = true; + strictDeps = true; nativeBuildInputs = [ From e8a5620f5289b29d5811165029c750d71fa0698e Mon Sep 17 00:00:00 2001 From: Alex James Date: Sat, 30 May 2026 19:55:08 -0500 Subject: [PATCH 3/8] redumper: enable on Darwin CMakeLists.txt contains logic for bundling libcxx and codesigning the binaries on macOS, both of which are unnecessary with Nix. Most of the existing compiler/linker options are no longer needed with recent updates. --- pkgs/by-name/re/redumper/darwin-fixes.patch | 38 +++++++++++++++++++++ pkgs/by-name/re/redumper/package.nix | 10 +++--- 2 files changed, 43 insertions(+), 5 deletions(-) create mode 100644 pkgs/by-name/re/redumper/darwin-fixes.patch diff --git a/pkgs/by-name/re/redumper/darwin-fixes.patch b/pkgs/by-name/re/redumper/darwin-fixes.patch new file mode 100644 index 000000000000..8ba0b0af4513 --- /dev/null +++ b/pkgs/by-name/re/redumper/darwin-fixes.patch @@ -0,0 +1,38 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 2abda97..e5d9760 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -218,33 +218,6 @@ target_link_libraries(redumper ${libs}) + + install(TARGETS redumper DESTINATION "bin") + +-# bundle LLVM libc++ for C++20 support (system libc++ is too old, static linking not allowed on macOS) +-if(REDUMPER_TARGET_MACOS) +- set_target_properties(redumper PROPERTIES INSTALL_RPATH "@executable_path/../lib") +- +- install(FILES +- "${LLVM_LIB_PATH}/c++/libc++.1.0.dylib" +- "${LLVM_LIB_PATH}/c++/libc++.1.dylib" +- "${LLVM_LIB_PATH}/c++/libc++abi.1.0.dylib" +- "${LLVM_LIB_PATH}/c++/libc++abi.1.dylib" +- "${LLVM_LIB_PATH}/libunwind.1.0.dylib" +- "${LLVM_LIB_PATH}/libunwind.1.dylib" +- DESTINATION "lib" +- ) +- +- # fix install names after files are copied & re-sign binaries after modification (install_name_tool invalidates signatures) +- install(CODE " +- execute_process(COMMAND install_name_tool -change ${LLVM_LIB_PATH}/c++/libc++.1.dylib @rpath/libc++.1.dylib \${CMAKE_INSTALL_PREFIX}/bin/redumper) +- execute_process(COMMAND install_name_tool -id @rpath/libc++.1.dylib \${CMAKE_INSTALL_PREFIX}/lib/libc++.1.0.dylib) +- execute_process(COMMAND install_name_tool -id @rpath/libc++abi.1.dylib \${CMAKE_INSTALL_PREFIX}/lib/libc++abi.1.0.dylib) +- execute_process(COMMAND install_name_tool -id @rpath/libunwind.1.dylib \${CMAKE_INSTALL_PREFIX}/lib/libunwind.1.0.dylib) +- execute_process(COMMAND codesign --force --sign - \${CMAKE_INSTALL_PREFIX}/bin/redumper) +- execute_process(COMMAND codesign --force --sign - \${CMAKE_INSTALL_PREFIX}/lib/libc++.1.0.dylib) +- execute_process(COMMAND codesign --force --sign - \${CMAKE_INSTALL_PREFIX}/lib/libc++abi.1.0.dylib) +- execute_process(COMMAND codesign --force --sign - \${CMAKE_INSTALL_PREFIX}/lib/libunwind.1.0.dylib) +- ") +-endif() +- + # Windows 7 requires administrative access in order to access the disc drive + if(MSVC AND CMAKE_SYSTEM_VERSION VERSION_EQUAL "6.1") + set_target_properties(redumper PROPERTIES LINK_FLAGS "/MANIFESTUAC:\"level='requireAdministrator' uiAccess='false'\"") diff --git a/pkgs/by-name/re/redumper/package.nix b/pkgs/by-name/re/redumper/package.nix index 25e9c6801282..4431f6f0ba5f 100644 --- a/pkgs/by-name/re/redumper/package.nix +++ b/pkgs/by-name/re/redumper/package.nix @@ -18,6 +18,10 @@ llvmPackages.libcxxStdenv.mkDerivation (finalAttrs: { hash = "sha256-3J+/v8Rhu5yT+MgAxcNBiHLAPAcNWc/YJXxFMgOZnPs="; }; + patches = [ + ./darwin-fixes.patch + ]; + __structuredAttrs = true; strictDeps = true; @@ -28,13 +32,9 @@ llvmPackages.libcxxStdenv.mkDerivation (finalAttrs: { llvmPackages.clang-tools ]; - env.NIX_CFLAGS_COMPILE = "-isystem ${llvmPackages.libcxx.dev}/include/c++/v1"; - # https://github.com/superg/redumper/blob/main/.github/workflows/cmake.yml cmakeFlags = [ - "-DCMAKE_BUILD_WITH_INSTALL_RPATH=ON" "-DREDUMPER_VERSION_BUILD=${finalAttrs.version}" - "-DREDUMPER_CLANG_LINK_OPTIONS=" # overrides the '-static' default ]; meta = { @@ -42,7 +42,7 @@ llvmPackages.libcxxStdenv.mkDerivation (finalAttrs: { description = "Low level CD dumper utility"; license = lib.licenses.gpl3Plus; maintainers = with lib.maintainers; [ hughobrien ]; - platforms = lib.platforms.linux; + platforms = lib.platforms.unix; mainProgram = "redumper"; }; }) From e2d2948cf4d86c4be61960a3124e39feadcec623 Mon Sep 17 00:00:00 2001 From: Alex James Date: Sat, 30 May 2026 19:46:38 -0500 Subject: [PATCH 4/8] redumper: add update script --- pkgs/by-name/re/redumper/package.nix | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/pkgs/by-name/re/redumper/package.nix b/pkgs/by-name/re/redumper/package.nix index 4431f6f0ba5f..fe41084214c9 100644 --- a/pkgs/by-name/re/redumper/package.nix +++ b/pkgs/by-name/re/redumper/package.nix @@ -4,6 +4,7 @@ cmake, ninja, llvmPackages, + nix-update-script, }: # redumper is using C++ modules, this requires latest C++20 compiler and build tools @@ -37,6 +38,13 @@ llvmPackages.libcxxStdenv.mkDerivation (finalAttrs: { "-DREDUMPER_VERSION_BUILD=${finalAttrs.version}" ]; + passthru.updateScript = nix-update-script { + extraArgs = [ + "--version-regex" + "b(.*)" + ]; + }; + meta = { homepage = "https://github.com/superg/redumper"; description = "Low level CD dumper utility"; From 5fa32392245c98507b9240863c83a76506b8ddfe Mon Sep 17 00:00:00 2001 From: Alex James Date: Sat, 30 May 2026 19:46:13 -0500 Subject: [PATCH 5/8] =?UTF-8?q?redumper:=20709=20=E2=86=92=20720?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Changelog: https://github.com/superg/redumper/releases/tag/b720 Diff: https://github.com/superg/redumper/compare/b709...b720 redumper switched to gtest [1], so configure checkPhase to run the test suite. [1]: https://github.com/superg/redumper/commit/d6ec7f18c6c9c52c371b810bfcb908912be11c79 --- pkgs/by-name/re/redumper/package.nix | 12 +++++++++--- ...arwin-fixes.patch => remove-static-linking.patch} | 10 ++++++++-- 2 files changed, 17 insertions(+), 5 deletions(-) rename pkgs/by-name/re/redumper/{darwin-fixes.patch => remove-static-linking.patch} (91%) diff --git a/pkgs/by-name/re/redumper/package.nix b/pkgs/by-name/re/redumper/package.nix index fe41084214c9..b9e719cab1f2 100644 --- a/pkgs/by-name/re/redumper/package.nix +++ b/pkgs/by-name/re/redumper/package.nix @@ -2,25 +2,27 @@ lib, fetchFromGitHub, cmake, + ctestCheckHook, ninja, llvmPackages, + gtest, nix-update-script, }: # redumper is using C++ modules, this requires latest C++20 compiler and build tools llvmPackages.libcxxStdenv.mkDerivation (finalAttrs: { pname = "redumper"; - version = "709"; + version = "720"; src = fetchFromGitHub { owner = "superg"; repo = "redumper"; tag = "b${finalAttrs.version}"; - hash = "sha256-3J+/v8Rhu5yT+MgAxcNBiHLAPAcNWc/YJXxFMgOZnPs="; + hash = "sha256-Gl+BJV9yWFGHk5HZudre+YUaaqCYcQpT50oeDcc39ds="; }; patches = [ - ./darwin-fixes.patch + ./remove-static-linking.patch ]; __structuredAttrs = true; @@ -29,6 +31,7 @@ llvmPackages.libcxxStdenv.mkDerivation (finalAttrs: { nativeBuildInputs = [ cmake + ctestCheckHook ninja llvmPackages.clang-tools ]; @@ -36,8 +39,11 @@ llvmPackages.libcxxStdenv.mkDerivation (finalAttrs: { # https://github.com/superg/redumper/blob/main/.github/workflows/cmake.yml cmakeFlags = [ "-DREDUMPER_VERSION_BUILD=${finalAttrs.version}" + "-DFETCHCONTENT_SOURCE_DIR_GOOGLETEST=${gtest.src}" ]; + doCheck = true; + passthru.updateScript = nix-update-script { extraArgs = [ "--version-regex" diff --git a/pkgs/by-name/re/redumper/darwin-fixes.patch b/pkgs/by-name/re/redumper/remove-static-linking.patch similarity index 91% rename from pkgs/by-name/re/redumper/darwin-fixes.patch rename to pkgs/by-name/re/redumper/remove-static-linking.patch index 8ba0b0af4513..46e3e58b8809 100644 --- a/pkgs/by-name/re/redumper/darwin-fixes.patch +++ b/pkgs/by-name/re/redumper/remove-static-linking.patch @@ -1,9 +1,15 @@ diff --git a/CMakeLists.txt b/CMakeLists.txt -index 2abda97..e5d9760 100644 +index 2f5d66a..e437573 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt -@@ -218,33 +218,6 @@ target_link_libraries(redumper ${libs}) +@@ -221,39 +221,8 @@ endif() + target_link_libraries(redumper ${libs}) + +-if(REDUMPER_TARGET_LINUX) +- target_link_options(redumper PRIVATE "-static") +-endif() +- install(TARGETS redumper DESTINATION "bin") -# bundle LLVM libc++ for C++20 support (system libc++ is too old, static linking not allowed on macOS) From 1de89b17c894fe917325b0ae87f8d2e01cb9418b Mon Sep 17 00:00:00 2001 From: Alex James Date: Sun, 31 May 2026 13:43:49 -0500 Subject: [PATCH 6/8] redumper: use versionCheckHook --- pkgs/by-name/re/redumper/package.nix | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/pkgs/by-name/re/redumper/package.nix b/pkgs/by-name/re/redumper/package.nix index b9e719cab1f2..58c5eb52a723 100644 --- a/pkgs/by-name/re/redumper/package.nix +++ b/pkgs/by-name/re/redumper/package.nix @@ -6,6 +6,7 @@ ninja, llvmPackages, gtest, + versionCheckHook, nix-update-script, }: @@ -44,6 +45,10 @@ llvmPackages.libcxxStdenv.mkDerivation (finalAttrs: { doCheck = true; + doInstallCheck = true; + + nativeInstallCheckInputs = [ versionCheckHook ]; + passthru.updateScript = nix-update-script { extraArgs = [ "--version-regex" From 98d42d95dd699c224037f8fab809a8b32df80630 Mon Sep 17 00:00:00 2001 From: Alex James Date: Sun, 31 May 2026 15:41:03 -0500 Subject: [PATCH 7/8] redumper: set REDUMPER_VERSION_BUILD to Git tag The upstream CI sets REDUMPER_VERSION_BUILD to match the latest Git tag [1][2][3]. [1]: https://github.com/superg/redumper/blob/c3348e2729952bc42dc6f4bb136d6aaaf0de6692/.github/workflows/cmake.yml#L31-L33 [2]: https://github.com/superg/redumper/blob/c3348e2729952bc42dc6f4bb136d6aaaf0de6692/.github/workflows/cmake.yml#L94 [3]: https://github.com/superg/redumper/blob/c3348e2729952bc42dc6f4bb136d6aaaf0de6692/.github/workflows/cmake.yml#L162 --- pkgs/by-name/re/redumper/package.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/by-name/re/redumper/package.nix b/pkgs/by-name/re/redumper/package.nix index 58c5eb52a723..73fafb01c144 100644 --- a/pkgs/by-name/re/redumper/package.nix +++ b/pkgs/by-name/re/redumper/package.nix @@ -39,7 +39,7 @@ llvmPackages.libcxxStdenv.mkDerivation (finalAttrs: { # https://github.com/superg/redumper/blob/main/.github/workflows/cmake.yml cmakeFlags = [ - "-DREDUMPER_VERSION_BUILD=${finalAttrs.version}" + "-DREDUMPER_VERSION_BUILD=${finalAttrs.src.tag}" "-DFETCHCONTENT_SOURCE_DIR_GOOGLETEST=${gtest.src}" ]; From 88725dae678d92f9fb2bb9ad9d04888661437b66 Mon Sep 17 00:00:00 2001 From: Alex James Date: Sun, 31 May 2026 16:44:00 -0500 Subject: [PATCH 8/8] redumper: use lib.cmakeFeature Co-authored-by: Keenan Weaver --- pkgs/by-name/re/redumper/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/re/redumper/package.nix b/pkgs/by-name/re/redumper/package.nix index 73fafb01c144..9e7eb75f491e 100644 --- a/pkgs/by-name/re/redumper/package.nix +++ b/pkgs/by-name/re/redumper/package.nix @@ -39,8 +39,8 @@ llvmPackages.libcxxStdenv.mkDerivation (finalAttrs: { # https://github.com/superg/redumper/blob/main/.github/workflows/cmake.yml cmakeFlags = [ - "-DREDUMPER_VERSION_BUILD=${finalAttrs.src.tag}" - "-DFETCHCONTENT_SOURCE_DIR_GOOGLETEST=${gtest.src}" + (lib.cmakeFeature "REDUMPER_VERSION_BUILD" "${finalAttrs.src.tag}") + (lib.cmakeFeature "FETCHCONTENT_SOURCE_DIR_GOOGLETEST" "${gtest.src}") ]; doCheck = true;