From 12ae5363ea658d399bdb008f6ded3cde355f9310 Mon Sep 17 00:00:00 2001 From: Eelco Dolstra Date: Mon, 29 Mar 2004 17:23:01 +0000 Subject: * 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 --- pkgs/stdenv/generic/builder.sh | 2 -- pkgs/stdenv/generic/default-builder.sh | 2 ++ pkgs/stdenv/generic/default.nix | 34 ++++++++++++++++++------- pkgs/stdenv/initial/builder.sh | 2 -- pkgs/stdenv/initial/default.nix | 24 +++++++++++++++--- pkgs/stdenv/native/default.nix | 8 +++--- pkgs/stdenv/nix-linux/boot.nix | 2 ++ pkgs/stdenv/nix-linux/default-builder.sh | 2 -- pkgs/stdenv/nix-linux/default.nix | 43 +++++++++++--------------------- pkgs/stdenv/nix/default.nix | 8 +++--- 10 files changed, 73 insertions(+), 54 deletions(-) mode change 100755 => 100644 pkgs/stdenv/generic/builder.sh create mode 100644 pkgs/stdenv/generic/default-builder.sh mode change 100755 => 100644 pkgs/stdenv/initial/builder.sh delete mode 100644 pkgs/stdenv/nix-linux/default-builder.sh (limited to 'pkgs/stdenv') diff --git a/pkgs/stdenv/generic/builder.sh b/pkgs/stdenv/generic/builder.sh old mode 100755 new mode 100644 index 20145df08ab5..b3d464322499 --- 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/generic/default-builder.sh b/pkgs/stdenv/generic/default-builder.sh new file mode 100644 index 000000000000..9a297c67f6e8 --- /dev/null +++ b/pkgs/stdenv/generic/default-builder.sh @@ -0,0 +1,2 @@ +. $stdenv/setup +genericBuild 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 old mode 100755 new mode 100644 index 8a9f7ab49188..9aa5aa6ae18d --- 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-builder.sh b/pkgs/stdenv/nix-linux/default-builder.sh deleted file mode 100644 index 9a297c67f6e8..000000000000 --- a/pkgs/stdenv/nix-linux/default-builder.sh +++ /dev/null @@ -1,2 +0,0 @@ -. $stdenv/setup -genericBuild 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; } -- cgit 1.4.1