* Put Nixpkgs and the NixOS expressions on the installation CD (the

installer needs them).

svn path=/nixu/trunk/; revision=7065
This commit is contained in:
Eelco Dolstra 2006-11-17 15:27:31 +00:00
parent 78b2ed263e
commit 6ae45d46ed
3 changed files with 43 additions and 8 deletions

View File

@ -100,15 +100,15 @@ rec {
pkgs.less pkgs.less
pkgs.nano pkgs.nano
pkgs.netcat pkgs.netcat
# pkgs.vim
pkgs.nix pkgs.nix
pkgs.strace
pkgs.sysvinit
pkgs.procps
pkgs.shadowutils
pkgs.sysklogd
pkgs.rsync
pkgs.perl pkgs.perl
pkgs.procps
pkgs.rsync
pkgs.shadowutils
pkgs.strace
pkgs.sysklogd
pkgs.sysvinit
# pkgs.vim
nixosInstaller nixosInstaller
]; ];

View File

@ -79,6 +79,7 @@ echo "syslog 514/udp" > /etc/services # required, even if we don't use it
for i in /sys/bus/pci/devices/*/modalias; do for i in /sys/bus/pci/devices/*/modalias; do
echo "Trying to load a module for $(basename $(dirname $i))..." echo "Trying to load a module for $(basename $(dirname $i))..."
modprobe $(cat $i) modprobe $(cat $i)
echo ""
done done

View File

@ -24,7 +24,7 @@ rec {
name = "mount-points"; name = "mount-points";
builder = builtins.toFile "builder.sh" " builder = builtins.toFile "builder.sh" "
source $stdenv/setup source $stdenv/setup
mkdir $out ensureDir $out
cd $out cd $out
mkdir proc sys tmp etc dev var mnt nix nix/var mkdir proc sys tmp etc dev var mnt nix nix/var
touch $out/${cdromLabel} touch $out/${cdromLabel}
@ -32,6 +32,34 @@ rec {
}; };
# We need a copy of the Nix expressions for Nixpkgs and NixOS on the
# CD. We put them in a tarball because accessing that many small
# files from a slow device like a CD-ROM takes too long.
makeTarball = tarName: input: pkgs.stdenv.mkDerivation {
name = "tarball";
inherit tarName input;
builder = builtins.toFile "builder.sh" "
source $stdenv/setup
ensureDir $out
(cd $input && tar cvfj $out/$tarName . \\
--exclude '*~' --exclude '.svn' \\
--exclude 'pkgs' --exclude 'result')
";
};
# Put the current directory in the tarball. !!! This gives us a lot
# of crap (like .svn if this is a working copy). An "svn export"
# would be better, but that's impure.
nixosTarball = makeTarball "nixos.tar.bz2" ./.;
nixpkgsTarball = pkgs.fetchurl {
url = http://nix.cs.uu.nl/dist/nix/nixpkgs-0.11pre7060/nixpkgs-0.11pre7060.tar.bz2;
md5 = "67163e7a71f7b8cb01461e1d0467a6e1";
};
# Create an ISO image containing the isolinux boot loader, the # Create an ISO image containing the isolinux boot loader, the
# kernel, the initrd produced above, and the closure of the stage 2 # kernel, the initrd produced above, and the closure of the stage 2
# init. # init.
@ -55,6 +83,12 @@ rec {
{ source = cdMountPoints; { source = cdMountPoints;
target = "/"; target = "/";
} }
{ source = nixosTarball + "/" + nixosTarball.tarName;
target = "/" + nixosTarball.tarName;
}
{ source = nixpkgsTarball;
target = "/nixpkgs.tar.bz2";
}
]; ];
init = bootStage2; init = bootStage2;