diff options
author | Frederik Rietdijk <freddyrietdijk@fridh.nl> | 2019-03-01 09:06:20 +0100 |
---|---|---|
committer | Frederik Rietdijk <freddyrietdijk@fridh.nl> | 2019-03-01 09:06:20 +0100 |
commit | 2fcb11a2442b27834db87b2f62511037c31b5e36 (patch) | |
tree | e9d38370aac7632cd35207180dc7c87d2bb6171d /pkgs/build-support | |
parent | 456ff62ff820bbb2debd4568a775d88e61fd8bd1 (diff) | |
parent | fc4a8f63c4e46652d484b127162641be36481363 (diff) | |
download | nixlib-2fcb11a2442b27834db87b2f62511037c31b5e36.tar nixlib-2fcb11a2442b27834db87b2f62511037c31b5e36.tar.gz nixlib-2fcb11a2442b27834db87b2f62511037c31b5e36.tar.bz2 nixlib-2fcb11a2442b27834db87b2f62511037c31b5e36.tar.lz nixlib-2fcb11a2442b27834db87b2f62511037c31b5e36.tar.xz nixlib-2fcb11a2442b27834db87b2f62511037c31b5e36.tar.zst nixlib-2fcb11a2442b27834db87b2f62511037c31b5e36.zip |
Merge staging-next into master
Diffstat (limited to 'pkgs/build-support')
-rw-r--r-- | pkgs/build-support/build-fhs-userenv/env.nix | 1 | ||||
-rwxr-xr-x | pkgs/build-support/buildenv/builder.pl | 12 | ||||
-rw-r--r-- | pkgs/build-support/buildenv/default.nix | 12 | ||||
-rw-r--r-- | pkgs/build-support/substitute-files/substitute-all-files.nix | 1 | ||||
-rw-r--r-- | pkgs/build-support/substitute/substitute-all.nix | 1 |
5 files changed, 25 insertions, 2 deletions
diff --git a/pkgs/build-support/build-fhs-userenv/env.nix b/pkgs/build-support/build-fhs-userenv/env.nix index 23568f51b23e..c0f741b62886 100644 --- a/pkgs/build-support/build-fhs-userenv/env.nix +++ b/pkgs/build-support/build-fhs-userenv/env.nix @@ -196,4 +196,5 @@ in stdenv.mkDerivation { ${if isMultiBuild then extraBuildCommandsMulti else ""} ''; preferLocalBuild = true; + allowSubstitutes = false; } diff --git a/pkgs/build-support/buildenv/builder.pl b/pkgs/build-support/buildenv/builder.pl index 678f5a3fe9e6..b699d762d29c 100755 --- a/pkgs/build-support/buildenv/builder.pl +++ b/pkgs/build-support/buildenv/builder.pl @@ -26,6 +26,13 @@ sub isInPathsToLink { return 0; } +# Similar to `lib.isStorePath` +sub isStorePath { + my $path = shift; + my $storePath = "@storeDir@"; + + return substr($path, 0, 1) eq "/" && dirname($path) eq $storePath; +} # For each activated package, determine what symlinks to create. @@ -84,6 +91,11 @@ sub checkCollision { sub findFiles { my ($relName, $target, $baseName, $ignoreCollisions, $checkCollisionContents, $priority) = @_; + # The store path must not be a file + if (-f $target && isStorePath $target) { + die "The store path $target is a file and can't be merged into an environment using pkgs.buildEnv!"; + } + # Urgh, hacky... return if $relName eq "/propagated-build-inputs" || diff --git a/pkgs/build-support/buildenv/default.nix b/pkgs/build-support/buildenv/default.nix index 41a1e67ef428..7f2427777f92 100644 --- a/pkgs/build-support/buildenv/default.nix +++ b/pkgs/build-support/buildenv/default.nix @@ -2,7 +2,7 @@ # a fork of the buildEnv in the Nix distribution. Most changes should # eventually be merged back into the Nix distribution. -{ buildPackages, runCommand, lib }: +{ buildPackages, runCommand, lib, substituteAll }: lib.makeOverridable ({ name @@ -43,6 +43,13 @@ lib.makeOverridable , meta ? {} }: +let + builder = substituteAll { + src = ./builder.pl; + inherit (builtins) storeDir; + }; +in + runCommand name rec { inherit manifest ignoreCollisions checkCollisionContents passthru @@ -63,10 +70,11 @@ runCommand name priority = drv.meta.priority or 5; }) paths); preferLocalBuild = true; + allowSubstitutes = false; # XXX: The size is somewhat arbitrary passAsFile = if builtins.stringLength pkgs >= 128*1024 then [ "pkgs" ] else null; } '' - ${buildPackages.perl}/bin/perl -w ${./builder.pl} + ${buildPackages.perl}/bin/perl -w ${builder} eval "$postBuild" '') diff --git a/pkgs/build-support/substitute-files/substitute-all-files.nix b/pkgs/build-support/substitute-files/substitute-all-files.nix index aa600a76650c..66feb695c418 100644 --- a/pkgs/build-support/substitute-files/substitute-all-files.nix +++ b/pkgs/build-support/substitute-files/substitute-all-files.nix @@ -22,4 +22,5 @@ stdenv.mkDerivation ({ eval "$postInstall" ''; preferLocalBuild = true; + allowSubstitutes = false; } // args) diff --git a/pkgs/build-support/substitute/substitute-all.nix b/pkgs/build-support/substitute/substitute-all.nix index 7fd46f95f998..57b160bbe901 100644 --- a/pkgs/build-support/substitute/substitute-all.nix +++ b/pkgs/build-support/substitute/substitute-all.nix @@ -8,4 +8,5 @@ stdenvNoCC.mkDerivation ({ builder = ./substitute-all.sh; inherit (args) src; preferLocalBuild = true; + allowSubstitutes = false; } // args) |