Merge pull request #230666 from alyssais/inputDerivation-passAsFile

stdenv: fix inputDerivation with passAsFile
This commit is contained in:
Robert Hensing 2023-05-09 20:36:29 +02:00 committed by GitHub
commit 9524f57dd5
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 22 additions and 1 deletions

View file

@ -545,7 +545,13 @@ lib.extendDerivation
# binaries). By writing this to $out, Nix can find and register
# them as runtime dependencies (since Nix greps for store paths
# through $out to find them)
args = [ "-c" "export > $out" ];
args = [ "-c" ''
export > $out
for var in $passAsFile; do
pathVar="''${var}Path"
printf "%s" "$(< "''${!pathVar}")" >> $out
done
'' ];
# inputDerivation produces the inputs; not the outputs, so any
# restrictions on what used to be the outputs don't serve a purpose

View file

@ -142,6 +142,21 @@ in
'';
};
test-inputDerivation = let
inherit (stdenv.mkDerivation {
dep1 = derivation { name = "dep1"; builder = "/bin/sh"; args = [ "-c" ": > $out" ]; system = builtins.currentSystem; };
dep2 = derivation { name = "dep2"; builder = "/bin/sh"; args = [ "-c" ": > $out" ]; system = builtins.currentSystem; };
passAsFile = [ "dep2" ];
}) inputDerivation;
in
runCommand "test-inputDerivation" {
exportReferencesGraph = [ "graph" inputDerivation ];
} ''
grep ${inputDerivation.dep1} graph
grep ${inputDerivation.dep2} graph
touch $out
'';
test-prepend-append-to-var = testPrependAndAppendToVar {
name = "test-prepend-append-to-var";
stdenv' = bootStdenv;