diff options
author | Vladimír Čunát <vcunat@gmail.com> | 2015-12-05 11:11:51 +0100 |
---|---|---|
committer | Vladimír Čunát <vcunat@gmail.com> | 2015-12-05 11:11:51 +0100 |
commit | 263fd55d4b2d9c17dac87ee7a7a39c951aee1b86 (patch) | |
tree | 50c30ebb0626be0b3333d90202081e8697a85abf /pkgs/stdenv/generic | |
parent | b1dca6ca881e3e5864c60a2ef206579ce4d718b1 (diff) | |
parent | c20b6846f2ec4b1fe70d62fe99d165476aed65d0 (diff) | |
download | nixlib-263fd55d4b2d9c17dac87ee7a7a39c951aee1b86.tar nixlib-263fd55d4b2d9c17dac87ee7a7a39c951aee1b86.tar.gz nixlib-263fd55d4b2d9c17dac87ee7a7a39c951aee1b86.tar.bz2 nixlib-263fd55d4b2d9c17dac87ee7a7a39c951aee1b86.tar.lz nixlib-263fd55d4b2d9c17dac87ee7a7a39c951aee1b86.tar.xz nixlib-263fd55d4b2d9c17dac87ee7a7a39c951aee1b86.tar.zst nixlib-263fd55d4b2d9c17dac87ee7a7a39c951aee1b86.zip |
Merge recent staging built on Hydra
http://hydra.nixos.org/eval/1231884 Only Darwin jobs seem to be queued now, but we can't afford to wait for that single build slave.
Diffstat (limited to 'pkgs/stdenv/generic')
-rw-r--r-- | pkgs/stdenv/generic/default.nix | 19 |
1 files changed, 17 insertions, 2 deletions
diff --git a/pkgs/stdenv/generic/default.nix b/pkgs/stdenv/generic/default.nix index 1a2ca5038b20..8e6bf2be63f6 100644 --- a/pkgs/stdenv/generic/default.nix +++ b/pkgs/stdenv/generic/default.nix @@ -12,6 +12,8 @@ let lib = import ../../../lib; in lib.makeOverridable ( , extraBuildInputs ? [] , __stdenvImpureHostDeps ? [] , __extraImpureHostDeps ? [] +, stdenvSandboxProfile ? "" +, extraSandboxProfile ? "" }: let @@ -100,6 +102,8 @@ let , outputs ? [ "out" ] , __impureHostDeps ? [] , __propagatedImpureHostDeps ? [] + , sandboxProfile ? "" + , propagatedSandboxProfile ? "" , ... } @ attrs: let pos' = @@ -165,9 +169,13 @@ let lib.addPassthru (derivation ( (removeAttrs attrs ["meta" "passthru" "crossAttrs" "pos" - "__impureHostDeps" "__propagatedImpureHostDeps"]) + "__impureHostDeps" "__propagatedImpureHostDeps" + "sandboxProfile" "propagatedSandboxProfile"]) // (let - # TODO: remove lib.unique once nix has a list canonicalization primitive + computedSandboxProfile = + lib.concatMap (input: input.__propagatedSandboxProfile or []) (extraBuildInputs ++ buildInputs ++ nativeBuildInputs); + computedPropagatedSandboxProfile = + lib.concatMap (input: input.__propagatedSandboxProfile or []) (propagatedBuildInputs ++ propagatedNativeBuildInputs); computedImpureHostDeps = lib.unique (lib.concatMap (input: input.__propagatedImpureHostDeps or []) (extraBuildInputs ++ buildInputs ++ nativeBuildInputs)); computedPropagatedImpureHostDeps = @@ -189,6 +197,12 @@ let propagatedNativeBuildInputs = propagatedNativeBuildInputs ++ (if crossConfig == null then propagatedBuildInputs else []); } // ifDarwin { + # TODO: remove lib.unique once nix has a list canonicalization primitive + __sandboxProfile = + let profiles = [ extraSandboxProfile ] ++ computedSandboxProfile ++ computedPropagatedSandboxProfile ++ [ propagatedSandboxProfile sandboxProfile ]; + final = lib.concatStringsSep "\n" (lib.filter (x: x != "") (lib.unique profiles)); + in final; + __propagatedSandboxProfile = lib.unique (computedPropagatedSandboxProfile ++ [ propagatedSandboxProfile ]); __impureHostDeps = computedImpureHostDeps ++ computedPropagatedImpureHostDeps ++ __propagatedImpureHostDeps ++ __impureHostDeps ++ __extraImpureHostDeps ++ [ "/dev/zero" "/dev/random" @@ -232,6 +246,7 @@ let inherit preHook initialPath shell defaultNativeBuildInputs; } // ifDarwin { + __sandboxProfile = stdenvSandboxProfile; __impureHostDeps = __stdenvImpureHostDeps; }) |