stdenv-darwin: Fix dependency on bootstrapTools

Commit 2040a9ac57 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",
overrides ? (pkgs: {}),
extraPreHook ? "",
extraBuildInputs ? with last.pkgs; [ xz darwin.CF libcxx ],
extraInitialPath ? [],
extraBuildInputs,
allowedRequisites ? null}:
let
thisStdenv = import ../generic {
@ -85,7 +84,7 @@ in rec {
${commonPreHook}
${extraPreHook}
'';
initialPath = extraInitialPath ++ [ bootstrapTools ];
initialPath = [ bootstrapTools ];
fetchurlBoot = import ../../build-support/fetchurl {
stdenv = stage0.stdenv;
curl = bootstrapTools;
@ -174,6 +173,8 @@ in rec {
export PATH_LOCALE=${pkgs.darwin.locale}/share/locale
'';
extraBuildInputs = with pkgs; [ xz darwin.CF libcxx ];
allowedRequisites =
[ bootstrapTools ] ++
(with pkgs; [ xz libcxx libcxxabi icu ]) ++
@ -203,9 +204,10 @@ in rec {
# enables patchShebangs above. Unfortunately, patchShebangs ignores our $SHELL setting
# 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.
extraInitialPath = [ pkgs.bash ];
extraBuildInputs = with pkgs; [ xz darwin.CF libcxx pkgs.bash ];
extraPreHook = ''
export PATH=${pkgs.bash}/bin:$PATH
export PATH_LOCALE=${pkgs.darwin.locale}/share/locale
'';
@ -236,7 +238,7 @@ in rec {
stage4 = with stage3; stageFun 4 stage3 {
shell = "${pkgs.bash}/bin/bash";
extraInitialPath = [ pkgs.bash ];
extraBuildInputs = with pkgs; [ xz darwin.CF libcxx pkgs.bash ];
extraPreHook = ''
export PATH_LOCALE=${pkgs.darwin.locale}/share/locale
'';