diff options
Diffstat (limited to 'pkgs/system/stdenvs.nix')
-rw-r--r-- | pkgs/system/stdenvs.nix | 25 |
1 files changed, 13 insertions, 12 deletions
diff --git a/pkgs/system/stdenvs.nix b/pkgs/system/stdenvs.nix index d770d687499..e3381090f03 100644 --- a/pkgs/system/stdenvs.nix +++ b/pkgs/system/stdenvs.nix @@ -22,34 +22,35 @@ # with it (e.g., because they require GNU Make). stdenvNative = (import ../stdenv/native) {stdenv = stdenvInitial;}; - stdenvNativePkgs = allPackages {system = system; stdenv = stdenvNative;}; + stdenvNativePkgs = allPackages {stdenv = stdenvNative; noSysDirs = false;}; # The Nix build environment. stdenvNix = (import ../stdenv/nix) { - bootStdenv = stdenvNative; - pkgs = stdenvNativePkgs; + stdenv = stdenvNative; + pkgs = allPackages {stdenv = stdenvNative; noSysDirs = false;}; }; - stdenvNixPkgs = allPackages {system = system; stdenv = stdenvNix;}; + stdenvNixPkgs = allPackages {stdenv = stdenvNix;}; # The Linux build environment is a fully bootstrapped Nix # environment, that is, it should contain no external references. - # 1) Build glibc in the native build environment. The result is - # pure (I promise!). - stdenvLinuxGlibc = stdenvNativePkgs.glibc; + # 1) Build glibc in the Nix build environment. The result is + # pure. + stdenvLinuxGlibc = stdenvNativePkgs.glibc; # !!! should be NixPkgs, but doesn't work # 2) Construct a stdenv consisting of the native build environment, # plus the pure glibc. stdenvLinuxBoot1 = (import ../stdenv/nix-linux/boot.nix) { - stdenv = stdenvInitial; + stdenv = stdenvNative; + pkgs = allPackages {stdenv = stdenvNative; noSysDirs = false;}; glibc = stdenvLinuxGlibc; }; # 3) Now we can build packages that will have the Nix glibc. - stdenvLinuxBoot1Pkgs = allPackages {system = system; stdenv = stdenvLinuxBoot1;}; + stdenvLinuxBoot1Pkgs = allPackages {stdenv = stdenvLinuxBoot1;}; # 4) However, since these packages are built by an native C compiler # and linker, they may well pick up impure references (e.g., bash @@ -62,11 +63,11 @@ }; # 5) These packages should be pure. - stdenvLinuxBoot2Pkgs = allPackages {system = system; stdenv = stdenvLinuxBoot2;}; + stdenvLinuxBoot2Pkgs = allPackages {stdenv = stdenvLinuxBoot2;}; # 6) So finally we can construct the Nix build environment. stdenvLinux = (import ../stdenv/nix-linux) { - bootStdenv = stdenvLinuxBoot2; + stdenv = stdenvLinuxBoot2; pkgs = stdenvLinuxBoot2Pkgs; glibc = stdenvLinuxGlibc; }; @@ -74,7 +75,7 @@ # 7) And we can build all packages against that, but we don't # rebuild stuff from step 6. stdenvLinuxPkgs = - allPackages {system = system; stdenv = stdenvLinux;} // + allPackages {stdenv = stdenvLinux;} // {inherit (stdenvLinuxBoot2Pkgs) gzip bzip2 bash binutils coreutils diffutils findutils gawk gcc gnumake gnused gnutar gnugrep wget; |