stdenv-darwin: Fix dependency on bootstrapTools

Commit 2040a9ac574fffd36fe20130897ccec2d5928827 changed the order of
$PATH elements, causing initialpath to appear after buildInputs. Thus
gnugrep ended up depending on bin/sh from bootstrapTools, rather than
from pkgs.bash. The fix is to provide pkgs.bash via buildInputs rather
than initialPath.

http://hydra.nixos.org/build/33276697
This commit is contained in:
Eelco Dolstra 2016-03-23 18:11:42 +01:00
parent 9ed00ff086
commit 7fc24dfd21

View File

@ -55,8 +55,7 @@ in rec {
stageFun = step: last: {shell ? "${bootstrapTools}/bin/sh", stageFun = step: last: {shell ? "${bootstrapTools}/bin/sh",
overrides ? (pkgs: {}), overrides ? (pkgs: {}),
extraPreHook ? "", extraPreHook ? "",
extraBuildInputs ? with last.pkgs; [ xz darwin.CF libcxx ], extraBuildInputs,
extraInitialPath ? [],
allowedRequisites ? null}: allowedRequisites ? null}:
let let
thisStdenv = import ../generic { thisStdenv = import ../generic {
@ -85,7 +84,7 @@ in rec {
${commonPreHook} ${commonPreHook}
${extraPreHook} ${extraPreHook}
''; '';
initialPath = extraInitialPath ++ [ bootstrapTools ]; initialPath = [ bootstrapTools ];
fetchurlBoot = import ../../build-support/fetchurl { fetchurlBoot = import ../../build-support/fetchurl {
stdenv = stage0.stdenv; stdenv = stage0.stdenv;
curl = bootstrapTools; curl = bootstrapTools;
@ -174,6 +173,8 @@ in rec {
export PATH_LOCALE=${pkgs.darwin.locale}/share/locale export PATH_LOCALE=${pkgs.darwin.locale}/share/locale
''; '';
extraBuildInputs = with pkgs; [ xz darwin.CF libcxx ];
allowedRequisites = allowedRequisites =
[ bootstrapTools ] ++ [ bootstrapTools ] ++
(with pkgs; [ xz libcxx libcxxabi icu ]) ++ (with pkgs; [ xz libcxx libcxxabi icu ]) ++
@ -203,9 +204,10 @@ in rec {
# enables patchShebangs above. Unfortunately, patchShebangs ignores our $SHELL setting # enables patchShebangs above. Unfortunately, patchShebangs ignores our $SHELL setting
# and instead goes by $PATH, which happens to contain bootstrapTools. So it goes and # and instead goes by $PATH, which happens to contain bootstrapTools. So it goes and
# patches our shebangs back to point at bootstrapTools. This makes sure bash comes first. # patches our shebangs back to point at bootstrapTools. This makes sure bash comes first.
extraInitialPath = [ pkgs.bash ]; extraBuildInputs = with pkgs; [ xz darwin.CF libcxx pkgs.bash ];
extraPreHook = '' extraPreHook = ''
export PATH=${pkgs.bash}/bin:$PATH
export PATH_LOCALE=${pkgs.darwin.locale}/share/locale export PATH_LOCALE=${pkgs.darwin.locale}/share/locale
''; '';
@ -236,7 +238,7 @@ in rec {
stage4 = with stage3; stageFun 4 stage3 { stage4 = with stage3; stageFun 4 stage3 {
shell = "${pkgs.bash}/bin/bash"; shell = "${pkgs.bash}/bin/bash";
extraInitialPath = [ pkgs.bash ]; extraBuildInputs = with pkgs; [ xz darwin.CF libcxx pkgs.bash ];
extraPreHook = '' extraPreHook = ''
export PATH_LOCALE=${pkgs.darwin.locale}/share/locale export PATH_LOCALE=${pkgs.darwin.locale}/share/locale
''; '';