892b119c9d
store, rather than outside (such as /bin/sh). For instance, the Nix expression for the ATerm library now looks like this: {stdenv, fetchurl}: stdenv.mkDerivation { name = "aterm-2.0.5"; builder = ./builder.sh; ... } where `mkDerivation' is a helper function in `stdenv' that massages the given attribute set into using the bash shell that is part of the standard environment: mkDerivation = attrs: derivation (att s // { builder = pkgs.bash ~ /bin/sh; args = ["-e" attrs.builder]; stdenv = (...); system = (...).system; }); Note that this makes it unnecessary to set the `stdenv' and `system' attributes, since `mkDerivation' already does that. svn path=/nixpkgs/trunk/; revision=866
37 lines
771 B
Nix
37 lines
771 B
Nix
{stdenv, glibc, pkgs, genericStdenv, gccWrapper}:
|
|
|
|
let {
|
|
|
|
body =
|
|
|
|
genericStdenv {
|
|
name = "stdenv-nix-linux";
|
|
preHook = ./prehook.sh;
|
|
initialPath = (import ../nix/path.nix) {pkgs = pkgs;};
|
|
|
|
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" attrs.builder];
|
|
stdenv = body;
|
|
system = body.system;
|
|
});
|
|
};
|
|
|
|
}
|