forked from mirrors/nixpkgs
* 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:
parent
1ef55666d0
commit
fc56793b67
24
pkgs/stdenv/linux/make-bootstrap-tools.nix
Normal file
24
pkgs/stdenv/linux/make-bootstrap-tools.nix
Normal 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
|
21
pkgs/stdenv/linux/make-bootstrap-tools.sh
Normal file
21
pkgs/stdenv/linux/make-bootstrap-tools.sh
Normal 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/*
|
Loading…
Reference in a new issue