about summary refs log tree commit diff
path: root/pkgs/stdenv/generic
diff options
context:
space:
mode:
authorFrederik Rietdijk <fridh@fridh.nl>2018-11-03 12:45:23 +0100
committerFrederik Rietdijk <fridh@fridh.nl>2018-11-03 12:45:23 +0100
commit64e19fdedae3abd589c0429da7e6ec4918d83e8b (patch)
treea8ee900cd9b3e0c6413b414dd60c77fbd066ae36 /pkgs/stdenv/generic
parentea3935a6c418b076ed41dd1d661c2e1e06656bde (diff)
parent7f4b26681ded35a0e6cb6a90d3bf013c7f4c182d (diff)
downloadnixlib-64e19fdedae3abd589c0429da7e6ec4918d83e8b.tar
nixlib-64e19fdedae3abd589c0429da7e6ec4918d83e8b.tar.gz
nixlib-64e19fdedae3abd589c0429da7e6ec4918d83e8b.tar.bz2
nixlib-64e19fdedae3abd589c0429da7e6ec4918d83e8b.tar.lz
nixlib-64e19fdedae3abd589c0429da7e6ec4918d83e8b.tar.xz
nixlib-64e19fdedae3abd589c0429da7e6ec4918d83e8b.tar.zst
nixlib-64e19fdedae3abd589c0429da7e6ec4918d83e8b.zip
Merge staging into staging-next
Merging staging into staging-next even though we haven't merged staging-next into master yet.
The motivation for this merge is that it's been a while since we merged into master causing
the 3 branches to diverge too much.
Diffstat (limited to 'pkgs/stdenv/generic')
-rw-r--r--pkgs/stdenv/generic/make-derivation.nix16
1 files changed, 16 insertions, 0 deletions
diff --git a/pkgs/stdenv/generic/make-derivation.nix b/pkgs/stdenv/generic/make-derivation.nix
index e06faed30a1e..08a914787c35 100644
--- a/pkgs/stdenv/generic/make-derivation.nix
+++ b/pkgs/stdenv/generic/make-derivation.nix
@@ -226,6 +226,22 @@ rec {
           inherit doCheck doInstallCheck;
 
           inherit outputs;
+        } // lib.optionalAttrs strictDeps {
+          # Make sure "build" dependencies don’t leak into outputs. We
+          # want to disallow references to depsBuildBuild,
+          # nativeBuildInputs, and depsBuildTarget. But depsHostHost,
+          # buildInputs, and depsTargetTarget is okay, so we subtract
+          # those from disallowedReferences in case a dependency is
+          # listed in multiple dependency lists. We also include
+          # propagated dependencies here as well.
+          disallowedReferences = (attrs.disallowedReferences or [])
+          ++ (lib.subtractLists
+              (lib.concatLists ( (lib.elemAt propagatedDependencies 1) ++
+                                 (lib.elemAt dependencies 1) ++
+                                 (lib.elemAt propagatedDependencies 2) ++
+                                 (lib.elemAt dependencies 2) ) )
+              (lib.concatLists ( (lib.elemAt propagatedDependencies 0) ++
+                                 (lib.elemAt dependencies 0) ) ) );
         } // lib.optionalAttrs (stdenv.hostPlatform != stdenv.buildPlatform) {
           cmakeFlags =
             (/**/ if lib.isString cmakeFlags then [cmakeFlags]