diff options
author | John Ericson <Ericson2314@Yahoo.com> | 2016-12-03 17:21:07 -0800 |
---|---|---|
committer | John Ericson <Ericson2314@Yahoo.com> | 2016-12-03 17:21:07 -0800 |
commit | 5c6234a7d3f0b430d7dc941dc1ab059c42729611 (patch) | |
tree | 2bfcee5413e6d751274dd57d378a179c0dcb5fd3 | |
parent | 4751d9e5ad124284dbd719d3a58f42d56f1b9514 (diff) | |
download | nixlib-5c6234a7d3f0b430d7dc941dc1ab059c42729611.tar nixlib-5c6234a7d3f0b430d7dc941dc1ab059c42729611.tar.gz nixlib-5c6234a7d3f0b430d7dc941dc1ab059c42729611.tar.bz2 nixlib-5c6234a7d3f0b430d7dc941dc1ab059c42729611.tar.lz nixlib-5c6234a7d3f0b430d7dc941dc1ab059c42729611.tar.xz nixlib-5c6234a7d3f0b430d7dc941dc1ab059c42729611.tar.zst nixlib-5c6234a7d3f0b430d7dc941dc1ab059c42729611.zip |
top-level: Allow manually specifying a stdenv, and fix stdenv tests
- The darwin test can now force the use of the freshly-booted darwin stdenv - The linux test now passes enough dummy arguments This may make debugging harder, if so, check out #20889
-rw-r--r-- | pkgs/stdenv/darwin/make-bootstrap-tools.nix | 8 | ||||
-rw-r--r-- | pkgs/stdenv/linux/make-bootstrap-tools.nix | 7 | ||||
-rw-r--r-- | pkgs/top-level/default.nix | 6 |
3 files changed, 16 insertions, 5 deletions
diff --git a/pkgs/stdenv/darwin/make-bootstrap-tools.nix b/pkgs/stdenv/darwin/make-bootstrap-tools.nix index 10d2b4decddd..bd581f71a436 100644 --- a/pkgs/stdenv/darwin/make-bootstrap-tools.nix +++ b/pkgs/stdenv/darwin/make-bootstrap-tools.nix @@ -332,10 +332,10 @@ in rec { }; # The ultimate test: bootstrap a whole stdenv from the tools specified above and get a package set out of it - test-pkgs = let - stdenv = import (test-pkgspath + "/pkgs/stdenv/darwin") { inherit system bootstrapFiles; }; - in import test-pkgspath { + test-pkgs = import test-pkgspath { inherit system; - bootStdenv = stdenv.stdenvDarwin; + stdenv = args: let + args' = args // { inherit bootstrapFiles; }; + in (import (test-pkgspath + "/pkgs/stdenv/darwin") args').stdenvDarwin; }; } diff --git a/pkgs/stdenv/linux/make-bootstrap-tools.nix b/pkgs/stdenv/linux/make-bootstrap-tools.nix index 1ecb222af3ec..7063d7bfcb6a 100644 --- a/pkgs/stdenv/linux/make-bootstrap-tools.nix +++ b/pkgs/stdenv/linux/make-bootstrap-tools.nix @@ -175,6 +175,13 @@ rec { bootstrapTools = (import ./default.nix { inherit system bootstrapFiles; + + lib = assert false; null; + allPackages = assert false; null; + + platform = assert false; null; + crossSystem = assert false; null; + config = assert false; null; }).bootstrapTools; test = derivation { diff --git a/pkgs/top-level/default.nix b/pkgs/top-level/default.nix index a1f3a1c38c5c..31c51215676b 100644 --- a/pkgs/top-level/default.nix +++ b/pkgs/top-level/default.nix @@ -23,6 +23,10 @@ , # Allow a configuration attribute set to be passed in as an argument. config ? {} +, # The standard environment for building packages, or rather a function + # providing it. See below for the arguments given to that function. + stdenv ? assert false; null + , crossSystem ? null , platform ? assert false; null } @ args: @@ -72,7 +76,7 @@ in let inherit lib nixpkgsFun; } // newArgs); - stdenv = import ../stdenv { + stdenv = (args.stdenv or (import ../stdenv)) { inherit lib allPackages system platform crossSystem config; }; |