From 1014620bcec75f07ee8836f517cf6aa7dd66b4c3 Mon Sep 17 00:00:00 2001 From: Eelco Dolstra Date: Thu, 6 Nov 2014 12:10:28 +0100 Subject: [PATCH] stdenv: Statically include the default build inputs Otherwise, stdenv won't have a reference to e.g. patchelf on Linux (because it was passed in by mkDerivation). This causes the installer tests to fail, because having "stdenv" in the installation CD closure is not enough to pull in all stdenv packages. http://hydra.nixos.org/build/16546643 --- pkgs/stdenv/generic/builder.sh | 1 + pkgs/stdenv/generic/default.nix | 10 +++++----- pkgs/stdenv/generic/setup.sh | 4 ++-- 3 files changed, 8 insertions(+), 7 deletions(-) diff --git a/pkgs/stdenv/generic/builder.sh b/pkgs/stdenv/generic/builder.sh index 4fa722a73dd..a46c46c2db5 100644 --- a/pkgs/stdenv/generic/builder.sh +++ b/pkgs/stdenv/generic/builder.sh @@ -8,6 +8,7 @@ mkdir $out echo "export SHELL=$shell" > $out/setup echo "initialPath=\"$initialPath\"" >> $out/setup +echo "defaultNativeBuildInputs=\"$defaultNativeBuildInputs\"" >> $out/setup echo "$preHook" >> $out/setup cat "$setup" >> $out/setup diff --git a/pkgs/stdenv/generic/default.nix b/pkgs/stdenv/generic/default.nix index ce78475f5fa..20ce303307d 100644 --- a/pkgs/stdenv/generic/default.nix +++ b/pkgs/stdenv/generic/default.nix @@ -41,7 +41,7 @@ let isUnfree = licenses: lib.lists.any (l: !l.free or true || l == "unfree" || l == "unfree-redistributable") licenses; - extraBuildInputs' = extraBuildInputs ++ + defaultNativeBuildInputs = extraBuildInputs ++ [ ../../build-support/setup-hooks/move-docs.sh ../../build-support/setup-hooks/compress-man-pages.sh ../../build-support/setup-hooks/strip.sh @@ -93,10 +93,10 @@ let __ignoreNulls = true; # Inputs built by the cross compiler. - buildInputs = if crossConfig != null then buildInputs ++ extraBuildInputs' else []; + buildInputs = if crossConfig != null then buildInputs else []; propagatedBuildInputs = if crossConfig != null then propagatedBuildInputs else []; # Inputs built by the usual native compiler. - nativeBuildInputs = nativeBuildInputs ++ (if crossConfig == null then buildInputs ++ extraBuildInputs' else []); + nativeBuildInputs = nativeBuildInputs ++ (if crossConfig == null then buildInputs else []); propagatedNativeBuildInputs = propagatedNativeBuildInputs ++ (if crossConfig == null then propagatedBuildInputs else []); }))) ( @@ -130,9 +130,9 @@ let setup = setupScript; - inherit preHook initialPath shell; + inherit preHook initialPath shell defaultNativeBuildInputs; - propagatedUserEnvPkgs = [gcc] ++ + propagatedUserEnvPkgs = [ gcc ] ++ lib.filter lib.isDerivation initialPath; }) diff --git a/pkgs/stdenv/generic/setup.sh b/pkgs/stdenv/generic/setup.sh index 864a519157c..904cc13e06c 100644 --- a/pkgs/stdenv/generic/setup.sh +++ b/pkgs/stdenv/generic/setup.sh @@ -220,12 +220,12 @@ findInputs() { } crossPkgs="" -for i in $buildInputs $propagatedBuildInputs; do +for i in $buildInputs $defaultBuildInputs $propagatedBuildInputs; do findInputs $i crossPkgs propagated-build-inputs done nativePkgs="" -for i in $nativeBuildInputs $propagatedNativeBuildInputs; do +for i in $nativeBuildInputs $defaultNativeBuildInputs $propagatedNativeBuildInputs; do findInputs $i nativePkgs propagated-native-build-inputs done