top-level: Remove cycles: stdenv calls in top-level but not vice versa

This commit changes the dependencies of stdenv, and clean-up the stdenv
story by removing the `defaultStdenv` attribute as well as the `bootStdenv`
parameter.

Before, the final bootstrapping stage's stdenv was provided by
all-packages, which was iterating multiple times over the
top-level/default.nix expression, and non-final bootstrapping stages'
stdenvs were explicitly specified with the `bootStdenv` parameter.

Now, all stages' stdenvs are specified with the `stdenv` parameter.
For non-final bootstrapping stages, this is a small change---basically just
rename the parameter.
For the final stage, top-level/default.nix takes the chosen stdenv and
makes the final stage with it.

`allPackages` is used to make all bootstrapping stages, final and
non-final alike. It's basically the expression of `stage.nix` (along with a
few partially-applied default arguments)

Note, the make-bootstrap-tools scripts are temporarily broken
This commit is contained in:
John Ericson
2016-11-30 19:10:59 -05:00
committed by John Ericson
parent 07a2b17cbf
commit d240a0da1a
10 changed files with 55 additions and 44 deletions
+2 -1
View File
@@ -127,7 +127,8 @@ rec {
stdenvBoot1Pkgs = allPackages {
inherit system;
bootStdenv = stdenvBoot1;
allowCustomOverrides = false;
stdenv = stdenvBoot1;
};