diff --git a/pkgs/by-name/cp/cpptrace/findpackage-integration.nix b/pkgs/by-name/cp/cpptrace/findpackage-integration.nix index 72d205acf8d3..9d7f2762ed86 100644 --- a/pkgs/by-name/cp/cpptrace/findpackage-integration.nix +++ b/pkgs/by-name/cp/cpptrace/findpackage-integration.nix @@ -5,6 +5,7 @@ cpptrace, src, checkOutput, + static, }: stdenv.mkDerivation (finalAttrs: { @@ -13,7 +14,9 @@ stdenv.mkDerivation (finalAttrs: { inherit src; nativeBuildInputs = [ cmake ]; - buildInputs = [ cpptrace ]; + buildInputs = [ + (cpptrace.override { inherit static; }) + ]; installPhase = '' runHook preInstall @@ -27,7 +30,7 @@ stdenv.mkDerivation (finalAttrs: { installCheckPhase = lib.strings.concatLines ( [ "$out/bin/main" ] # Check that the backtrace contains the path to the executable. - ++ lib.optionals (checkOutput) [ + ++ lib.optionals checkOutput [ '' if [[ !(`$out/bin/main 2>&1` =~ "${finalAttrs.name}") ]]; then echo "ERROR: $out/bin/main does not output '${finalAttrs.name}'" diff --git a/pkgs/by-name/cp/cpptrace/package.nix b/pkgs/by-name/cp/cpptrace/package.nix index 04d83a1ed03c..ba7981e520a3 100644 --- a/pkgs/by-name/cp/cpptrace/package.nix +++ b/pkgs/by-name/cp/cpptrace/package.nix @@ -36,7 +36,7 @@ stdenv.mkDerivation (finalAttrs: { ]; buildInputs = [ libdwarf ]; - propagatedBuildInputs = [ zstd ]; + propagatedBuildInputs = [ zstd ] ++ (lib.optionals static [ libdwarf ]); cmakeFlags = [ (lib.cmakeBool "CPPTRACE_USE_EXTERNAL_LIBDWARF" true) @@ -51,12 +51,20 @@ stdenv.mkDerivation (finalAttrs: { passthru = { updateScript = nix-update-script { }; - tests = { - findpackage-integration = callPackage ./findpackage-integration.nix { - src = "${finalAttrs.src}/test/findpackage-integration"; - checkOutput = finalAttrs.finalPackage.doCheck; + tests = + let + mkIntegrationTest = + { static }: + callPackage ./findpackage-integration.nix { + src = "${finalAttrs.src}/test/findpackage-integration"; + checkOutput = finalAttrs.finalPackage.doCheck; + inherit static; + }; + in + { + findpackage-integration-shared = mkIntegrationTest { static = false; }; + findpackage-integration-static = mkIntegrationTest { static = true; }; }; - }; }; meta = {