summary refs log tree commit diff
diff options
context:
space:
mode:
authorRobert Hensing <roberth@users.noreply.github.com>2023-05-09 20:36:29 +0200
committerGitHub <noreply@github.com>2023-05-09 20:36:29 +0200
commit9524f57dd5b3944c819dd594aed8ed941932ef56 (patch)
tree172b5954d9fe3c3deba679290e1c0a2a7f42fcc5
parentf589521841a406a1c2d5b9b0f88d677e73f5ab7a (diff)
parent2023766e31d99080ae615fc3a9293fd0228703cc (diff)
downloadnixpkgs-9524f57dd5b3944c819dd594aed8ed941932ef56.tar
nixpkgs-9524f57dd5b3944c819dd594aed8ed941932ef56.tar.gz
nixpkgs-9524f57dd5b3944c819dd594aed8ed941932ef56.tar.bz2
nixpkgs-9524f57dd5b3944c819dd594aed8ed941932ef56.tar.lz
nixpkgs-9524f57dd5b3944c819dd594aed8ed941932ef56.tar.xz
nixpkgs-9524f57dd5b3944c819dd594aed8ed941932ef56.tar.zst
nixpkgs-9524f57dd5b3944c819dd594aed8ed941932ef56.zip
Merge pull request #230666 from alyssais/inputDerivation-passAsFile
stdenv: fix inputDerivation with passAsFile
-rw-r--r--pkgs/stdenv/generic/make-derivation.nix8
-rw-r--r--pkgs/test/stdenv/default.nix15
2 files changed, 22 insertions, 1 deletions
diff --git a/pkgs/stdenv/generic/make-derivation.nix b/pkgs/stdenv/generic/make-derivation.nix
index 98bd01d4e3e..40ad357739b 100644
--- a/pkgs/stdenv/generic/make-derivation.nix
+++ b/pkgs/stdenv/generic/make-derivation.nix
@@ -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
diff --git a/pkgs/test/stdenv/default.nix b/pkgs/test/stdenv/default.nix
index 7648b430c5f..0fa87cccc21 100644
--- a/pkgs/test/stdenv/default.nix
+++ b/pkgs/test/stdenv/default.nix
@@ -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;