summary refs log tree commit diff
path: root/pkgs/stdenv
diff options
context:
space:
mode:
authorEelco Dolstra <eelco.dolstra@logicblox.com>2009-04-25 14:08:29 +0000
committerEelco Dolstra <eelco.dolstra@logicblox.com>2009-04-25 14:08:29 +0000
commit671d53dd3543bf1e2bbc7b9784f3481a4922aa9f (patch)
tree8230338e021de4e331175a5832e17231c5209e7c /pkgs/stdenv
parent5175cce9a948fbf4f31eaf1c1f630677c5844e1f (diff)
downloadnixpkgs-671d53dd3543bf1e2bbc7b9784f3481a4922aa9f.tar
nixpkgs-671d53dd3543bf1e2bbc7b9784f3481a4922aa9f.tar.gz
nixpkgs-671d53dd3543bf1e2bbc7b9784f3481a4922aa9f.tar.bz2
nixpkgs-671d53dd3543bf1e2bbc7b9784f3481a4922aa9f.tar.lz
nixpkgs-671d53dd3543bf1e2bbc7b9784f3481a4922aa9f.tar.xz
nixpkgs-671d53dd3543bf1e2bbc7b9784f3481a4922aa9f.tar.zst
nixpkgs-671d53dd3543bf1e2bbc7b9784f3481a4922aa9f.zip
* Allow the user to install stdenv (nix-env -i stdenv) and get all the
  packages in the stdenv as propagated user environment packages.

svn path=/nixpkgs/branches/stdenv-updates/; revision=15300
Diffstat (limited to 'pkgs/stdenv')
-rw-r--r--pkgs/stdenv/generic/builder.sh5
-rw-r--r--pkgs/stdenv/generic/default.nix13
-rw-r--r--pkgs/stdenv/linux/default.nix5
3 files changed, 15 insertions, 8 deletions
diff --git a/pkgs/stdenv/generic/builder.sh b/pkgs/stdenv/generic/builder.sh
index 16e232f586c..23cc2a0775f 100644
--- a/pkgs/stdenv/generic/builder.sh
+++ b/pkgs/stdenv/generic/builder.sh
@@ -30,3 +30,8 @@ sed \
     -e "s^@param4@^$p4^g" \
     -e "s^@param5@^$p5^g" \
     < "$setup" > "$out/setup"
+
+# Allow the user to install stdenv using nix-env and get the packages
+# in stdenv.
+mkdir $out/nix-support
+echo $propagatedUserEnvPkgs > $out/nix-support/propagated-user-env-packages
diff --git a/pkgs/stdenv/generic/default.nix b/pkgs/stdenv/generic/default.nix
index cf3bbe7e5f6..1a1f588c16a 100644
--- a/pkgs/stdenv/generic/default.nix
+++ b/pkgs/stdenv/generic/default.nix
@@ -7,7 +7,9 @@
   fetchurlBoot
 }:
 
-let {
+let
+
+  lib = import ../../lib;
 
   stdenvGenerator = setupScript: rec {
 
@@ -27,6 +29,9 @@ let {
 
         # TODO: make this more elegant.
         inherit param1 param2 param3 param4 param5;
+
+        propagatedUserEnvPkgs = [gcc] ++
+          lib.filter lib.isDerivation initialPath;
       }
 
       // {
@@ -79,7 +84,7 @@ let {
 
         # For convenience, bring in the library functions in lib/ so
         # packages don't have to do that themselves.
-        lib = import ../../lib;
+        inherit lib;
 
         inherit fetchurlBoot;
 
@@ -94,6 +99,4 @@ let {
   }.result;
 
   
-  body = stdenvGenerator ./setup.sh;
-
-}
+in stdenvGenerator ./setup.sh
diff --git a/pkgs/stdenv/linux/default.nix b/pkgs/stdenv/linux/default.nix
index 757a475568f..90444a96d76 100644
--- a/pkgs/stdenv/linux/default.nix
+++ b/pkgs/stdenv/linux/default.nix
@@ -205,10 +205,9 @@ rec {
     
     preHook = builtins.toFile "prehook.sh" commonPreHook;
     
-    initialPath = [
+    initialPath = 
       ((import ../common-path.nix) {pkgs = stdenvLinuxBoot3Pkgs;})
-      stdenvLinuxBoot3Pkgs.patchelf
-    ];
+      ++ [stdenvLinuxBoot3Pkgs.patchelf];
 
     gcc = wrapGCC rec {
       inherit (stdenvLinuxBoot2Pkgs) binutils;