* Start of a Nix expression that builds and gathers all the statically

linked tools necessary for bootstrapping stdenv-linux.

svn path=/nixpkgs/trunk/; revision=6778
This commit is contained in:
Eelco Dolstra 2006-10-19 18:03:13 +00:00
parent 1ef55666d0
commit fc56793b67
2 changed files with 45 additions and 0 deletions

View File

@ -0,0 +1,24 @@
let
pkgs = import ../../top-level/all-packages.nix {};
pkgsDiet = import ../../top-level/all-packages.nix {
# Have to do removeAttrs to prevent all-packages from copying
# stdenv-linux's dependencies, rather than building new ones with
# dietlibc.
bootStdenv = removeAttrs (pkgs.useDietLibC pkgs.stdenv)
["bash" "bzip2" "coreutils"];
};
generator = pkgs.stdenv.mkDerivation {
name = "bootstrap-tools-generator";
builder = ./make-bootstrap-tools.sh;
inherit (pkgsDiet) bash bzip2 coreutils;
# The result should not contain any references (store paths) so
# that we can safely copy them out of the store and to other
# locations in the store.
allowedReferences = [];
};
in generator

View File

@ -0,0 +1,21 @@
source $stdenv/setup
ensureDir $out/in-nixpkgs
ensureDir $out/on-server
nukeRefs() {
# Dirty, disgusting, but it works ;-)
fileName=$1
cat $fileName | sed "s|/nix/store/[a-z0-9]*-|/nix/store/ffffffffffffffffffffffffffffffff-|g" > $fileName.tmp
if test -x $fileName; then chmod +x $fileName.tmp; fi
mv $fileName.tmp $fileName
}
cp $bash/bin/bash $out/in-nixpkgs
cp $bzip2/bin/bunzip2 $out/in-nixpkgs
cp $coreutils/bin/cp $out/in-nixpkgs
nukeRefs $out/in-nixpkgs/bash
chmod +w $out/in-nixpkgs/*
strip -s $out/in-nixpkgs/*