about summary refs log tree commit diff
path: root/pkgs/stdenv
diff options
context:
space:
mode:
authorEelco Dolstra <eelco.dolstra@logicblox.com>2004-03-29 17:23:01 +0000
committerEelco Dolstra <eelco.dolstra@logicblox.com>2004-03-29 17:23:01 +0000
commit12ae5363ea658d399bdb008f6ded3cde355f9310 (patch)
treee2a2ab3210854bfaad01f955c32b1cda724a8790 /pkgs/stdenv
parentbc71554fc80a760c3a8e01f9e9e97500aa9ccde1 (diff)
downloadnixlib-12ae5363ea658d399bdb008f6ded3cde355f9310.tar
nixlib-12ae5363ea658d399bdb008f6ded3cde355f9310.tar.gz
nixlib-12ae5363ea658d399bdb008f6ded3cde355f9310.tar.bz2
nixlib-12ae5363ea658d399bdb008f6ded3cde355f9310.tar.lz
nixlib-12ae5363ea658d399bdb008f6ded3cde355f9310.tar.xz
nixlib-12ae5363ea658d399bdb008f6ded3cde355f9310.tar.zst
nixlib-12ae5363ea658d399bdb008f6ded3cde355f9310.zip
* Remove trivial builders.
* Make builders unexecutable by removing the hash-bang line and
  execute permission.
* Convert calls to `derivation' to `mkDerivation'.
* Remove `system' and `stdenv' attributes from calls to
  `mkDerivation'.  These transformations were all done automatically,
  so it is quite possible I broke stuff.
* Put the `mkDerivation' function in stdenv/generic.

svn path=/nixpkgs/trunk/; revision=874
Diffstat (limited to 'pkgs/stdenv')
-rw-r--r--[-rwxr-xr-x]pkgs/stdenv/generic/builder.sh2
-rw-r--r--pkgs/stdenv/generic/default-builder.sh (renamed from pkgs/stdenv/nix-linux/default-builder.sh)0
-rw-r--r--pkgs/stdenv/generic/default.nix34
-rw-r--r--[-rwxr-xr-x]pkgs/stdenv/initial/builder.sh2
-rw-r--r--pkgs/stdenv/initial/default.nix24
-rw-r--r--pkgs/stdenv/native/default.nix8
-rw-r--r--pkgs/stdenv/nix-linux/boot.nix2
-rw-r--r--pkgs/stdenv/nix-linux/default.nix43
-rw-r--r--pkgs/stdenv/nix/default.nix8
9 files changed, 71 insertions, 52 deletions
diff --git a/pkgs/stdenv/generic/builder.sh b/pkgs/stdenv/generic/builder.sh
index 20145df08ab5..b3d464322499 100755..100644
--- a/pkgs/stdenv/generic/builder.sh
+++ b/pkgs/stdenv/generic/builder.sh
@@ -1,5 +1,3 @@
-#! /bin/sh
-
 p1=$param1
 p2=$param2
 p3=$param3
diff --git a/pkgs/stdenv/nix-linux/default-builder.sh b/pkgs/stdenv/generic/default-builder.sh
index 9a297c67f6e8..9a297c67f6e8 100644
--- a/pkgs/stdenv/nix-linux/default-builder.sh
+++ b/pkgs/stdenv/generic/default-builder.sh
diff --git a/pkgs/stdenv/generic/default.nix b/pkgs/stdenv/generic/default.nix
index 9c877252e2be..d7b953ffb056 100644
--- a/pkgs/stdenv/generic/default.nix
+++ b/pkgs/stdenv/generic/default.nix
@@ -1,17 +1,33 @@
-{ stdenv, name, preHook ? null, postHook ? null, initialPath, gcc
+{ stdenv, name, preHook ? null, postHook ? null, initialPath, gcc, bash
 , param1 ? "", param2 ? "", param3 ? "", param4 ? "", param5 ? ""
 }:
 
-derivation {
-  inherit stdenv name;
-  system = stdenv.system;
+let {
 
-  builder = ./builder.sh;
+  body =
 
-  setup = ./setup.sh;
+    stdenv.mkDerivation {
+      inherit name;
 
-  inherit preHook postHook initialPath gcc;
+      builder = ./builder.sh;
+
+      setup = ./setup.sh;
+
+      inherit preHook postHook initialPath gcc;
+
+      # TODO: make this more elegant.
+      inherit param1 param2 param3 param4 param5;
+    }
+
+    # Add a utility function to produce derivations that use this
+    # stdenv and its the bash shell.
+    // {
+      mkDerivation = attrs: derivation (attrs // {
+        builder = bash;
+        args = ["-e" (if attrs ? builder then attrs.builder else ./default-builder.sh)];
+        stdenv = body;
+        system = body.system;
+      });
+    };
 
-  # TODO: make this more elegant.
-  inherit param1 param2 param3 param4 param5;
 }
diff --git a/pkgs/stdenv/initial/builder.sh b/pkgs/stdenv/initial/builder.sh
index 8a9f7ab49188..9aa5aa6ae18d 100755..100644
--- a/pkgs/stdenv/initial/builder.sh
+++ b/pkgs/stdenv/initial/builder.sh
@@ -1,5 +1,3 @@
-#! /bin/sh -e
-
 export PATH=/usr/bin:/bin
 
 mkdir $out
diff --git a/pkgs/stdenv/initial/default.nix b/pkgs/stdenv/initial/default.nix
index da0771ce7d26..6a62751b0370 100644
--- a/pkgs/stdenv/initial/default.nix
+++ b/pkgs/stdenv/initial/default.nix
@@ -5,7 +5,23 @@
 
 {system, name}:
 
-derivation {
-  inherit system name;
-  builder = ./builder.sh;
-}
\ No newline at end of file
+let {
+
+  body = 
+
+    derivation {
+      inherit system name;
+      builder = "/bin/sh";
+      args = ["-e" ./builder.sh];
+    }
+
+    // {
+      mkDerivation = attrs: derivation (attrs // {
+        builder = "/bin/sh";
+        args = ["-e" attrs.builder];
+        stdenv = body;
+        system = body.system;
+      });
+    };
+
+}
diff --git a/pkgs/stdenv/native/default.nix b/pkgs/stdenv/native/default.nix
index 8a57b10d71b3..143230fbd893 100644
--- a/pkgs/stdenv/native/default.nix
+++ b/pkgs/stdenv/native/default.nix
@@ -1,17 +1,19 @@
-{stdenv}:
+{stdenv, genericStdenv, gccWrapper}:
 
-(import ../generic) {
+genericStdenv {
   name = "stdenv-native";
   preHook = ./prehook.sh;
   initialPath = "/usr/local /usr /";
 
   inherit stdenv;
 
-  gcc = (import ../../build-support/gcc-wrapper) {
+  gcc = gccWrapper {
     name = "gcc-native";
     nativeTools = true;
     nativeGlibc = true;
     nativePrefix = "/usr";
     inherit stdenv;
   };
+
+  bash = "/bin/sh";
 }
diff --git a/pkgs/stdenv/nix-linux/boot.nix b/pkgs/stdenv/nix-linux/boot.nix
index de2d5128e288..b556ba9ba361 100644
--- a/pkgs/stdenv/nix-linux/boot.nix
+++ b/pkgs/stdenv/nix-linux/boot.nix
@@ -14,4 +14,6 @@ genericStdenv {
     nativePrefix = "/usr";
     inherit stdenv glibc;
   };
+
+  bash = "/bin/sh";
 }
diff --git a/pkgs/stdenv/nix-linux/default.nix b/pkgs/stdenv/nix-linux/default.nix
index 9e9602d5e1f6..9b4231962c30 100644
--- a/pkgs/stdenv/nix-linux/default.nix
+++ b/pkgs/stdenv/nix-linux/default.nix
@@ -1,36 +1,21 @@
 {stdenv, glibc, pkgs, genericStdenv, gccWrapper}:
 
-let {
+genericStdenv {
+  name = "stdenv-nix-linux";
+  preHook = ./prehook.sh;
+  initialPath = (import ../nix/path.nix) {pkgs = pkgs;};
 
-  body =
+  inherit stdenv;
 
-    genericStdenv {
-      name = "stdenv-nix-linux";
-      preHook = ./prehook.sh;
-      initialPath = (import ../nix/path.nix) {pkgs = pkgs;};
+  gcc = gccWrapper {
+    name = pkgs.gcc.name;
+    nativeTools = false;
+    nativeGlibc = false;
+    inherit (pkgs) gcc binutils;
+    inherit glibc;
+  };
 
-      inherit stdenv;
-
-      gcc = gccWrapper {
-        name = pkgs.gcc.name;
-        nativeTools = false;
-        nativeGlibc = false;
-        inherit (pkgs) gcc binutils;
-        inherit stdenv glibc;
-      };
-
-      param1 = pkgs.bash;
-    }
-
-    # Add a utility function to produce derivations that use this
-    # stdenv and its the bash shell.
-    // {
-      mkDerivation = attrs: derivation (attrs // {
-        builder = pkgs.bash ~ /bin/sh;
-        args = ["-e" (if attrs ? builder then attrs.builder else ./default-builder.sh)];
-        stdenv = body;
-        system = body.system;
-      });
-    };
+  bash = pkgs.bash ~ /bin/sh;
 
+  param1 = pkgs.bash;
 }
diff --git a/pkgs/stdenv/nix/default.nix b/pkgs/stdenv/nix/default.nix
index 5d454e26ce78..5634553dd500 100644
--- a/pkgs/stdenv/nix/default.nix
+++ b/pkgs/stdenv/nix/default.nix
@@ -1,13 +1,13 @@
-{stdenv, pkgs}:
+{stdenv, pkgs, genericStdenv, gccWrapper}:
 
-(import ../generic) {
+genericStdenv {
   name = "stdenv-nix";
   preHook = ./prehook.sh;
   initialPath = (import ./path.nix) {pkgs = pkgs;};
 
   inherit stdenv;
 
-  gcc = (import ../../build-support/gcc-wrapper) {
+  gcc = gccWrapper {
     name = pkgs.gcc.name;
     nativeTools = false;
     nativeGlibc = true;
@@ -15,5 +15,7 @@
     inherit stdenv;
   };
 
+  bash = pkgs.bash ~ /bin/sh;
+
   param1 = pkgs.bash;
 }