summary refs log tree commit diff
path: root/pkgs/system/stdenvs.nix
diff options
context:
space:
mode:
authorEelco Dolstra <eelco.dolstra@logicblox.com>2005-02-21 20:42:07 +0000
committerEelco Dolstra <eelco.dolstra@logicblox.com>2005-02-21 20:42:07 +0000
commit3e0253618474df1e5a334d4f84ff49d33c2d13c1 (patch)
tree2eccecf64bfec4eaf8ff6a74d9bb5fc6a3fc35e9 /pkgs/system/stdenvs.nix
parent5f3c1f22ce79d05e4090bb02d5eb8a044a3457f7 (diff)
downloadnixpkgs-3e0253618474df1e5a334d4f84ff49d33c2d13c1.tar
nixpkgs-3e0253618474df1e5a334d4f84ff49d33c2d13c1.tar.gz
nixpkgs-3e0253618474df1e5a334d4f84ff49d33c2d13c1.tar.bz2
nixpkgs-3e0253618474df1e5a334d4f84ff49d33c2d13c1.tar.lz
nixpkgs-3e0253618474df1e5a334d4f84ff49d33c2d13c1.tar.xz
nixpkgs-3e0253618474df1e5a334d4f84ff49d33c2d13c1.tar.zst
nixpkgs-3e0253618474df1e5a334d4f84ff49d33c2d13c1.zip
* Move the stdenv-linux bootstrap from stdenvs.nix to the
  nix-linux-static directory.
* Get rid of the old nix-linux.
* Commented the bootstrap process.

svn path=/nixpkgs/trunk/; revision=2263
Diffstat (limited to 'pkgs/system/stdenvs.nix')
-rw-r--r--pkgs/system/stdenvs.nix98
1 files changed, 2 insertions, 96 deletions
diff --git a/pkgs/system/stdenvs.nix b/pkgs/system/stdenvs.nix
index efbbcb0faad..9127c6793c3 100644
--- a/pkgs/system/stdenvs.nix
+++ b/pkgs/system/stdenvs.nix
@@ -49,102 +49,8 @@
   };
 
 
-  # The Linux build environment is a fully bootstrapped Nix
-  # environment, that is, it should contain no external references.
-
-  # 0) ...
-  stdenvLinuxBoot0 = (import ../stdenv/nix-linux-static).stdenvBootFun {
-    # Use the statically linked, downloaded glibc/gcc/binutils.
-    inherit (import ../stdenv/nix-linux-static) glibc gcc binutils;
-    staticGlibc = true;
-  };
-
-  stdenvLinuxBoot0Pkgs = allPackages {
-    stdenv = stdenvLinuxBoot0;
-    bootCurl = (import ../stdenv/nix-linux-static).curl;
-    noSysDirs = true;
-  };
-
-  # 1) Build glibc in the Nix build environment.  The result is
-  #    pure.
-  stdenvLinuxGlibc = stdenvLinuxBoot0Pkgs.glibc;
-
-  # 2) Construct a stdenv consisting of the Nix build environment, but
-  #    with a gcc-wrapper that causes linking against the glibc from
-  #    step 1.  However, since the gcc wrapper here *does* look in
-  #    native system directories (e.g., `/usr/lib'), it doesn't
-  #    prevent impurity in the things it builds (e.g., through
-  #    `-lncurses').
-  stdenvLinuxBoot1 = (import ../stdenv/nix-linux-static).stdenvBootFun {
-    # Use the statically linked gcc/binutils, but the glibc we just
-    # built.
-    glibc = stdenvLinuxGlibc;
-    staticGlibc = false;
-    inherit (import ../stdenv/nix-linux-static) gcc binutils;
-  };
-
-  # 3) Now we can build packages that will link against the Nix
-  #    glibc.  We are on thin ice here: the compiler used to build
-  #    these packages doesn't prevent impurity, so e.g. bash ends up
-  #    linking against `/lib/libncurses.so', but the glibc from step 1
-  #    *doesn't* search in `/lib' etc.  So these programs won't work.
-  stdenvLinuxBoot1Pkgs = allPackages {
-    stdenv = stdenvLinuxBoot1;
-    bootCurl = (import ../stdenv/nix-linux-static).curl;
-  };
-
-  # 4) Therefore we build a new standard environment which is the same
-  #    as the one in step 2, but with a gcc and binutils from step 3
-  #    merged in.  Since these are pure (they don't search native
-  #    system directories), things built by this stdenv should be pure.
-  stdenvLinuxBoot2 = (import ../stdenv/nix-linux-static).stdenvBootFun {
-    # Use the glibc/gcc/binutils we just built (but all other tools are still downloaded).
-    glibc = stdenvLinuxGlibc;
-    staticGlibc = false;
-    inherit (stdenvLinuxBoot1Pkgs) gcc binutils;
-  };
-
-  # 5) So these packages should be pure.
-  stdenvLinuxBoot2Pkgs = allPackages {
-    stdenv = stdenvLinuxBoot2;
-    bootCurl = (import ../stdenv/nix-linux-static).curl;
-  };
-
-  # 6) Finally we can construct the Nix build environment from the
-  #    packages from step 5.
-  stdenvLinux = (import ../stdenv/nix-linux) {
-    stdenv = stdenvLinuxBoot2;
-    pkgs = stdenvLinuxBoot2Pkgs // {
-      inherit (stdenvLinuxBoot1Pkgs) gcc binutils;
-    };
-    glibc = stdenvLinuxGlibc;
-    inherit genericStdenv gccWrapper;
-  };
-
-  # 7) And we can build all packages against that, but we don't
-  #    rebuild stuff from step 6.
-  stdenvLinuxPkgs =
-    allPackages {
-      stdenv = stdenvLinux;
-      bootCurl = stdenvLinuxBoot2Pkgs.curl;
-    } //
-    {inherit (stdenvLinuxBoot2Pkgs)
-      gzip bzip2 bash binutils coreutils diffutils findutils gawk gcc
-      gnumake gnused gnutar gnugrep curl;
-    } //
-    {glibc = stdenvLinuxGlibc;};
-
-  # In summary, we build gcc (and binutils) three times:
-  #   - in stdenvLinuxBoot1 (from stdenvNativePkgs); impure
-  #   - in stdenvLinuxBoot2 (from stdenvLinuxBoot1Pkgs); pure
-  #   - in stdenvLinux (from stdenvLinuxBoot2Pkgs); pure
-  # The last one may be redundant, but its good for validation (since
-  # the second one may use impure inputs).  To reduce build time, we
-  # could reduce the number of bootstrap stages inside each gcc build.
-  # Right now there are 3 stages, so gcc is built 9 times!
-
-  # On the other hand, a validating build of glibc is a good idea (it
-  # probably won't work right now due to --rpath madness).
+  # Linux standard environment.
+  inherit (import ../stdenv/nix-linux-static) stdenvLinux stdenvLinuxPkgs;
 
 
   # Darwin (Mac OS X) standard environment.  Very simple for now