replace a lot of tools we initially use with statically linked versions.

This reduces the ramdisk installer size with a few megabytes when gzipped,
but with about 40 MB when unpacked in memory.

There are a few improvements possible:

- strip the binaries. This saves another few MBs.
- only copy the binaries we really need to /bin or /sbin. This could reduce
the size of the installer a lot, especially with util-linux, of which we
don't use that many tools at all.
- try to move some packages we link with glibc right now (like util-linux) to
dietlibc. This will not work for bash, already tried that.
- try to use busybox as a replacement for everything.

svn path=/nixu/trunk/; revision=4428
This commit is contained in:
Armijn Hemel 2005-12-24 11:50:42 +00:00
parent f130123af5
commit fe355bba78
5 changed files with 64 additions and 36 deletions

View File

@ -9,9 +9,11 @@ for i in $boot $halt $login $env; do
dst=$out/bin/$(basename $i | cut -c34-) dst=$out/bin/$(basename $i | cut -c34-)
sed \ sed \
-e "s^@bash\@^$bash^g" \ -e "s^@bash\@^$bash^g" \
-e "s^@bashStatic\@^$bashStatic^g" \
-e "s^@coreutils\@^$coreutils^g" \ -e "s^@coreutils\@^$coreutils^g" \
-e "s^@findutilsWrapper\@^$findutilsWrapper^g" \ -e "s^@findutilsWrapper\@^$findutilsWrapper^g" \
-e "s^@utillinux\@^$utillinux^g" \ -e "s^@utillinux\@^$utillinux^g" \
-e "s^@utillinuxStatic\@^$utillinuxStatic^g" \
-e "s^@sysvinit\@^$sysvinit^g" \ -e "s^@sysvinit\@^$sysvinit^g" \
-e "s^@e2fsprogs\@^$e2fsprogs^g" \ -e "s^@e2fsprogs\@^$e2fsprogs^g" \
-e "s^@nettools\@^$nettools^g" \ -e "s^@nettools\@^$nettools^g" \

View File

@ -1,4 +1,4 @@
{ stdenv, kernel, bash, coreutils, findutilsWrapper, utillinux, sysvinit, e2fsprogs { stdenv, kernel, bash, bashStatic, coreutils, findutilsWrapper, utillinux, utillinuxStatic, sysvinit, e2fsprogs
, nettools, nix, subversion, gcc, wget, which, vim, less, screen, openssh , nettools, nix, subversion, gcc, wget, which, vim, less, screen, openssh
, binutils, strace, shadowutils, iputils, gnumake, curl, gnused, gnugrep , binutils, strace, shadowutils, iputils, gnumake, curl, gnused, gnugrep
, gnutar, gzip, mingettyWrapper, grubWrapper, parted, module_init_tools, hotplug , gnutar, gzip, mingettyWrapper, grubWrapper, parted, module_init_tools, hotplug
@ -12,7 +12,7 @@ derivation {
halt = ./halt.sh; halt = ./halt.sh;
login = ./login.sh; login = ./login.sh;
env = ./env.sh; env = ./env.sh;
inherit stdenv kernel bash coreutils findutilsWrapper utillinux sysvinit inherit stdenv kernel bash bashStatic coreutils findutilsWrapper utillinux sysvinit
e2fsprogs nettools nix subversion gcc wget which vim less screen e2fsprogs nettools nix subversion gcc wget which vim less screen
openssh binutils strace shadowutils iputils gnumake curl gnused openssh binutils strace shadowutils iputils gnumake curl gnused
gnutar gnugrep gzip mingettyWrapper grubWrapper parted module_init_tools gnutar gnugrep gzip mingettyWrapper grubWrapper parted module_init_tools

View File

@ -1,6 +1,6 @@
#! @bash@/bin/sh -e #! @bash@/bin/sh -e
export PATH=@bash@/bin:@coreutilsdiet@/bin:@coreutils@/bin:@findutils@/bin:@utillinux@/bin:@utillinux@/sbin:@e2fsprogs@/sbin:@grub@/sbin:@sysvinitPath@/sbin:@gnugrep@/bin:@which@/bin:@gnutar@/bin:@eject@/bin export PATH=@bash@/bin:@coreutilsdiet@/bin:@coreutils@/bin:@findutils@/bin:@utillinux@/bin:@utillinux@/sbin:@utilLinux@/bin:@utilLinux@/sbin:@e2fsprogs@/sbin:@grub@/sbin:@sysvinitPath@/sbin:@gnugrep@/bin:@which@/bin:@gnutar@/bin:@eject@/bin:@kudzu@/sbin
## ##
## In the beginning we want to have a minimalistic environment, built with ## In the beginning we want to have a minimalistic environment, built with
@ -194,6 +194,7 @@ mknod -m 0444 $root/dev/urandom c 1 9
rm -f $root/etc/mtab rm -f $root/etc/mtab
ln -s /proc/mounts $root/etc/mtab ln -s /proc/mounts $root/etc/mtab
## Probe for CD device which contains our CD here and mount /nix and ## Probe for CD device which contains our CD here and mount /nix and
## /nixpkgs from it inside the ramdisk. Anaconda uses kudzu for this. ## /nixpkgs from it inside the ramdisk. Anaconda uses kudzu for this.
## Find out how Knoppix and SUSE do this... ## Find out how Knoppix and SUSE do this...
@ -221,6 +222,9 @@ echo switch to /nix and /nixpkgs from CD
ln -s /cdrom/nixpkgs /nixpkgs ln -s /cdrom/nixpkgs /nixpkgs
mount --bind /cdrom/nix /nix mount --bind /cdrom/nix /nix
echo probing for hardware...
kudzu
export NIX_DATA_DIR=$root/nix/share export NIX_DATA_DIR=$root/nix/share
export NIX_LOG_DIR=$root/nix/log/nix export NIX_LOG_DIR=$root/nix/log/nix
@ -228,6 +232,10 @@ export NIX_STATE_DIR=$root/nix/var/nix
export NIX_CONF_DIR=$root/nix/etc export NIX_CONF_DIR=$root/nix/etc
NIX_CMD_PATH=@nix@/bin NIX_CMD_PATH=@nix@/bin
echo bringing up networking...
nic=`kudzu -p | grep eth | sort | uniq | cut -d ' ' -f 2`
echo initialising Nix DB... echo initialising Nix DB...
$NIX_CMD_PATH/nix-store --init $NIX_CMD_PATH/nix-store --init
@ -290,13 +298,15 @@ echo "#2:2345:respawn:$mingetty/sbin/mingetty tty2" >> $root/etc/inittab
#echo "2:2345:respawn:$bootPath/bin/login.sh /dev/ttys/1" >> $root/etc/inittab #echo "2:2345:respawn:$bootPath/bin/login.sh /dev/ttys/1" >> $root/etc/inittab
echo setting up networking information... echo setting up networking information...
make_dir 00755 /etc/networking make_dir 00755 /etc/networking
echo 192.168.150.1 > $root/etc/networking/local-ip
echo 192.168.150.3 > $root/etc/networking/gateway-ip
#cp /etc/resolv.conf $root/etc #cp /etc/resolv.conf $root/etc
rm -f $root/etc/hosts rm -f $root/etc/hosts
echo "127.0.0.1 localhost" >> $root/etc/hosts echo "127.0.0.1 localhost" >> $root/etc/hosts
#echo "192.168.150.1 uml" >> $root/etc/hosts
echo storing hardware information...
kudzu -p > $root/etc/sysconfig/hwconf
echo setting up initial account information... echo setting up initial account information...

View File

@ -53,10 +53,10 @@ do
tar -cf - $i | tar --directory=$archivesDir -xf - tar -cf - $i | tar --directory=$archivesDir -xf -
done done
utilLinux=$($NIX_CMD_PATH/nix-store -qR $(nix-store -r $(echo '(import ./pkgs.nix).utillinux' | $NIX_CMD_PATH/nix-instantiate -))) utilLinux=$(nix-store -r $(echo '(import ./pkgs.nix).utillinuxStatic' | $NIX_CMD_PATH/nix-instantiate -))
coreUtilsDiet=$($NIX_CMD_PATH/nix-store -qR $(nix-store -r $(echo '(import ./pkgs.nix).coreutilsDiet' | $NIX_CMD_PATH/nix-instantiate -))) coreUtilsDiet=$($NIX_CMD_PATH/nix-store -qR $(nix-store -r $(echo '(import ./pkgs.nix).coreutilsDiet' | $NIX_CMD_PATH/nix-instantiate -)))
e2fsProgs=$($NIX_CMD_PATH/nix-store -qR $(nix-store -r $(echo '(import ./pkgs.nix).e2fsprogsDiet' | $NIX_CMD_PATH/nix-instantiate -))) e2fsProgs=$($NIX_CMD_PATH/nix-store -qR $(nix-store -r $(echo '(import ./pkgs.nix).e2fsprogsDiet' | $NIX_CMD_PATH/nix-instantiate -)))
modUtils=$($NIX_CMD_PATH/nix-store -qR $(nix-store -r $(echo '(import ./pkgs.nix).module_init_tools' | $NIX_CMD_PATH/nix-instantiate -))) modUtils=$($NIX_CMD_PATH/nix-store -qR $(nix-store -r $(echo '(import ./pkgs.nix).module_init_toolsStatic' | $NIX_CMD_PATH/nix-instantiate -)))
Grub=$($NIX_CMD_PATH/nix-store -qR $(nix-store -r $(echo '(import ./pkgs.nix).grubWrapper' | $NIX_CMD_PATH/nix-instantiate -))) Grub=$($NIX_CMD_PATH/nix-store -qR $(nix-store -r $(echo '(import ./pkgs.nix).grubWrapper' | $NIX_CMD_PATH/nix-instantiate -)))
#gnuSed=$($NIX_CMD_PATH/nix-store -qR $(nix-store -r $(echo '(import ./pkgs.nix).gnused' | $NIX_CMD_PATH/nix-instantiate -))) #gnuSed=$($NIX_CMD_PATH/nix-store -qR $(nix-store -r $(echo '(import ./pkgs.nix).gnused' | $NIX_CMD_PATH/nix-instantiate -)))
#gnuGrep=$($NIX_CMD_PATH/nix-store -qR $(nix-store -r $(echo '(import ./pkgs.nix).gnugrep' | $NIX_CMD_PATH/nix-instantiate -))) #gnuGrep=$($NIX_CMD_PATH/nix-store -qR $(nix-store -r $(echo '(import ./pkgs.nix).gnugrep' | $NIX_CMD_PATH/nix-instantiate -)))
@ -64,13 +64,14 @@ Kernel=$($NIX_CMD_PATH/nix-store -qR $(nix-store -r $(echo '(import ./pkgs.nix).
SysVinit=$($NIX_CMD_PATH/nix-store -qR $(nix-store -r $(echo '(import ./pkgs.nix).sysvinit' | $NIX_CMD_PATH/nix-instantiate -))) SysVinit=$($NIX_CMD_PATH/nix-store -qR $(nix-store -r $(echo '(import ./pkgs.nix).sysvinit' | $NIX_CMD_PATH/nix-instantiate -)))
BootPath=$($NIX_CMD_PATH/nix-store -qR $(nix-store -r $(echo '(import ./pkgs.nix).boot' | $NIX_CMD_PATH/nix-instantiate -))) BootPath=$($NIX_CMD_PATH/nix-store -qR $(nix-store -r $(echo '(import ./pkgs.nix).boot' | $NIX_CMD_PATH/nix-instantiate -)))
bash=$($NIX_CMD_PATH/nix-store -q $(echo '(import ./pkgs.nix).bash' | $NIX_CMD_PATH/nix-instantiate -)) #bash=$($NIX_CMD_PATH/nix-store -q $(echo '(import ./pkgs.nix).bash' | $NIX_CMD_PATH/nix-instantiate -))
bash=$($NIX_CMD_PATH/nix-store -q $(echo '(import ./pkgs.nix).bashStatic' | $NIX_CMD_PATH/nix-instantiate -))
coreutilsdiet=$($NIX_CMD_PATH/nix-store -q $(echo '(import ./pkgs.nix).coreutilsDiet' | $NIX_CMD_PATH/nix-instantiate -)) coreutilsdiet=$($NIX_CMD_PATH/nix-store -q $(echo '(import ./pkgs.nix).coreutilsDiet' | $NIX_CMD_PATH/nix-instantiate -))
coreutils=$($NIX_CMD_PATH/nix-store -q $(echo '(import ./pkgs.nix).coreutils' | $NIX_CMD_PATH/nix-instantiate -)) coreutils=$($NIX_CMD_PATH/nix-store -q $(echo '(import ./pkgs.nix).coreutils' | $NIX_CMD_PATH/nix-instantiate -))
findutils=$($NIX_CMD_PATH/nix-store -q $(echo '(import ./pkgs.nix).findutilsWrapper' | $NIX_CMD_PATH/nix-instantiate -)) findutils=$($NIX_CMD_PATH/nix-store -q $(echo '(import ./pkgs.nix).findutilsWrapper' | $NIX_CMD_PATH/nix-instantiate -))
utillinux=$($NIX_CMD_PATH/nix-store -q $(echo '(import ./pkgs.nix).utillinux' | $NIX_CMD_PATH/nix-instantiate -)) utillinux=$($NIX_CMD_PATH/nix-store -q $(echo '(import ./pkgs.nix).utillinux' | $NIX_CMD_PATH/nix-instantiate -))
e2fsprogs=$($NIX_CMD_PATH/nix-store -q $(echo '(import ./pkgs.nix).e2fsprogsDiet' | $NIX_CMD_PATH/nix-instantiate -)) e2fsprogs=$($NIX_CMD_PATH/nix-store -q $(echo '(import ./pkgs.nix).e2fsprogsDiet' | $NIX_CMD_PATH/nix-instantiate -))
modutils=$($NIX_CMD_PATH/nix-store -q $(echo '(import ./pkgs.nix).module_init_tools' | $NIX_CMD_PATH/nix-instantiate -)) modutils=$($NIX_CMD_PATH/nix-store -q $(echo '(import ./pkgs.nix).module_init_toolsStatic' | $NIX_CMD_PATH/nix-instantiate -))
grub=$($NIX_CMD_PATH/nix-store -r $(echo '(import ./pkgs.nix).grubWrapper' | $NIX_CMD_PATH/nix-instantiate -)) grub=$($NIX_CMD_PATH/nix-store -r $(echo '(import ./pkgs.nix).grubWrapper' | $NIX_CMD_PATH/nix-instantiate -))
mingettyWrapper=$($NIX_CMD_PATH/nix-store -r $(echo '(import ./pkgs.nix).mingettyWrapper' | $NIX_CMD_PATH/nix-instantiate -)) mingettyWrapper=$($NIX_CMD_PATH/nix-store -r $(echo '(import ./pkgs.nix).mingettyWrapper' | $NIX_CMD_PATH/nix-instantiate -))
hotplug=$($NIX_CMD_PATH/nix-store -r $(echo '(import ./pkgs.nix).hotplug' | $NIX_CMD_PATH/nix-instantiate -)) hotplug=$($NIX_CMD_PATH/nix-store -r $(echo '(import ./pkgs.nix).hotplug' | $NIX_CMD_PATH/nix-instantiate -))
@ -82,22 +83,23 @@ which=$($NIX_CMD_PATH/nix-store -r $(echo '(import ./pkgs.nix).which' | $NIX_CMD
gnutar=$($NIX_CMD_PATH/nix-store -r $(echo '(import ./pkgs.nix).gnutar' | $NIX_CMD_PATH/nix-instantiate -)) gnutar=$($NIX_CMD_PATH/nix-store -r $(echo '(import ./pkgs.nix).gnutar' | $NIX_CMD_PATH/nix-instantiate -))
eject=$($NIX_CMD_PATH/nix-store -r $(echo '(import ./pkgs.nix).eject' | $NIX_CMD_PATH/nix-instantiate -)) eject=$($NIX_CMD_PATH/nix-store -r $(echo '(import ./pkgs.nix).eject' | $NIX_CMD_PATH/nix-instantiate -))
sysklogd=$($NIX_CMD_PATH/nix-store -r $(echo '(import ./pkgs.nix).sysklogd' | $NIX_CMD_PATH/nix-instantiate -)) sysklogd=$($NIX_CMD_PATH/nix-store -r $(echo '(import ./pkgs.nix).sysklogd' | $NIX_CMD_PATH/nix-instantiate -))
kudzu=$($NIX_CMD_PATH/nix-store -r $(echo '(import ./pkgs.nix).kudzu' | $NIX_CMD_PATH/nix-instantiate -))
#(while read storepath; do #(while read storepath; do
#cp -fa --parents ${storepath} ${archivesDir} #cp -fa --parents ${storepath} ${archivesDir}
#done) < $storePaths #done) < $storePaths
echo utillinux $utilLinux #echo utillinux $utilLinux
for i in $utilLinux; do #for i in $utilLinux; do
echo i $i # echo i $i
deps=( $($NIX_CMD_PATH/nix-store -q --references $i) ) # deps=( $($NIX_CMD_PATH/nix-store -q --references $i) )
echo length ${#deps[@]} # echo length ${#deps[@]}
if test "${#deps[@]}" = 0 # if test "${#deps[@]}" = 0
then # then
echo zarro # echo zarro
fi # fi
done #done
echo creating directories for bootimage echo creating directories for bootimage
@ -106,6 +108,7 @@ mkdir ${initdir}/bin
mkdir ${initdir}/cdrom mkdir ${initdir}/cdrom
mkdir ${initdir}/dev mkdir ${initdir}/dev
mkdir ${initdir}/etc mkdir ${initdir}/etc
mkdir ${initdir}/etc/sysconfig
mkdir ${initdir}/installimage mkdir ${initdir}/installimage
mkdir ${initdir}/modules mkdir ${initdir}/modules
mkdir ${initdir}/proc mkdir ${initdir}/proc
@ -138,7 +141,7 @@ cp -fa ${nixpkgs} ${archivesDir}
#cp -fvau --parents ${nano} ${archivesDir} #cp -fvau --parents ${nano} ${archivesDir}
#cp -fvau --parents ${gnutar} ${archivesDir} #cp -fvau --parents ${gnutar} ${archivesDir}
bashdeps=$($NIX_CMD_PATH/nix-store -qR $(nix-store -r $(echo '(import ./pkgs.nix).bash' | $NIX_CMD_PATH/nix-instantiate -))) bashdeps=$($NIX_CMD_PATH/nix-store -qR $(nix-store -r $(echo '(import ./pkgs.nix).bashStatic' | $NIX_CMD_PATH/nix-instantiate -)))
echo copying scripts echo copying scripts
@ -155,6 +158,7 @@ sed -e "s^@sysvinitPath\@^$sysvinitPath^g" \
-e "s^@findutils\@^$findutils^g" \ -e "s^@findutils\@^$findutils^g" \
-e "s^@coreutilsdiet\@^$coreutilsdiet^g" \ -e "s^@coreutilsdiet\@^$coreutilsdiet^g" \
-e "s^@coreutils\@^$coreutils^g" \ -e "s^@coreutils\@^$coreutils^g" \
-e "s^@utilLinux\@^$utilLinux^g" \
-e "s^@utillinux\@^$utillinux^g" \ -e "s^@utillinux\@^$utillinux^g" \
-e "s^@e2fsprogs\@^$e2fsprogs^g" \ -e "s^@e2fsprogs\@^$e2fsprogs^g" \
-e "s^@modutils\@^$modutils^g" \ -e "s^@modutils\@^$modutils^g" \
@ -163,7 +167,7 @@ sed -e "s^@sysvinitPath\@^$sysvinitPath^g" \
-e "s^@hotplug\@^$hotplug^g" \ -e "s^@hotplug\@^$hotplug^g" \
-e "s^@gnugrep\@^$gnugrep^g" \ -e "s^@gnugrep\@^$gnugrep^g" \
-e "s^@which\@^$which^g" \ -e "s^@which\@^$which^g" \
-e "s^@eject\@^$eject^g" \ -e "s^@kudzu\@^$kudzu^g" \
-e "s^@sysklogd\@^$sysklogd^g" \ -e "s^@sysklogd\@^$sysklogd^g" \
-e "s^@gnutar\@^$gnutar^g" \ -e "s^@gnutar\@^$gnutar^g" \
-e "s^@mingetty\@^$mingettyWrapper^g" \ -e "s^@mingetty\@^$mingettyWrapper^g" \
@ -177,7 +181,7 @@ sed -e "s^@sysvinitPath\@^$sysvinitPath^g" \
-e "s^@findutils\@^$findutils^g" \ -e "s^@findutils\@^$findutils^g" \
-e "s^@coreutilsdiet\@^$coreutilsdiet^g" \ -e "s^@coreutilsdiet\@^$coreutilsdiet^g" \
-e "s^@coreutils\@^$coreutils^g" \ -e "s^@coreutils\@^$coreutils^g" \
-e "s^@utillinux\@^$utillinux^g" \ -e "s^@utillinux\@^$utilLinux^g" \
-e "s^@e2fsprogs\@^$e2fsprogs^g" \ -e "s^@e2fsprogs\@^$e2fsprogs^g" \
-e "s^@modutils\@^$modutils^g" \ -e "s^@modutils\@^$modutils^g" \
-e "s^@grub\@^$grub^g" \ -e "s^@grub\@^$grub^g" \
@ -203,6 +207,10 @@ echo copying kernel
# of the kernel here. # of the kernel here.
cp -L $kernel/vmlinuz ${archivesDir}/isolinux cp -L $kernel/vmlinuz ${archivesDir}/isolinux
echo linking kernel modules
ln -s $kernel/lib $archivesDir/lib
echo creating ramdisk echo creating ramdisk
rm -f ${initrd} rm -f ${initrd}
@ -210,16 +218,24 @@ rm -f ${initrd}
cp ${archivesDir}/scripts/fill-disk.sh ${initdir}/ cp ${archivesDir}/scripts/fill-disk.sh ${initdir}/
cp ${archivesDir}/scripts/ramdisk-login.sh ${initdir}/ cp ${archivesDir}/scripts/ramdisk-login.sh ${initdir}/
cp ${archivesDir}/scripts/init.sh ${initdir}/init cp ${archivesDir}/scripts/init.sh ${initdir}/init
ln -s ${bash}/bin/bash ${initdir}/bin/sh #ln -s ${bash}/bin/bash ${initdir}/bin/sh
cp ${bash}/bin/bash ${initdir}/bin/sh
chmod u+x ${initdir}/init chmod u+x ${initdir}/init
chmod u+x ${initdir}/fill-disk.sh chmod u+x ${initdir}/fill-disk.sh
chmod u+x ${initdir}/ramdisk-login.sh chmod u+x ${initdir}/ramdisk-login.sh
cp -fau --parents ${bashdeps} ${initdir} #cp -fau --parents ${bashdeps} ${initdir}
#cp -fau --parents ${utilLinux} ${initdir}
#cp -fau --parents ${coreUtilsDiet} ${initdir}
#cp -fau --parents ${e2fsProgs} ${initdir}
#cp -fau --parents ${modUtils} ${initdir}
#cp -fau --parents ${hotplug} ${initdir}
cp -fau --parents ${bash} ${initdir}
cp -fau --parents ${utilLinux} ${initdir} cp -fau --parents ${utilLinux} ${initdir}
cp -fau --parents ${coreUtilsDiet} ${initdir} cp -fau --parents ${coreutilsdiet} ${initdir}
cp -fau --parents ${e2fsProgs} ${initdir} cp -fau --parents ${e2fsprogs} ${initdir}
cp -fau --parents ${modUtils} ${initdir} cp -fau --parents ${modutils} ${initdir}
cp -fau --parents ${hotplug} ${initdir} cp -fau --parents ${hotplug} ${initdir}
#cp -fau --parents ${kudzu} ${initdir}
#cp -fau --parents ${eject} ${initdir} #cp -fau --parents ${eject} ${initdir}
touch ${archivesDir}/NIXOS touch ${archivesDir}/NIXOS
@ -243,4 +259,4 @@ mkisofs -rJ -o ${bootiso} -b isolinux/isolinux.bin -c isolinux/boot.cat \
echo cleaning up echo cleaning up
chmod -f -R +w ${archivesDir}/* chmod -f -R +w ${archivesDir}/*
rm -rf ${archivesDir}/* #rm -rf ${archivesDir}/*

View File

@ -1,21 +1,21 @@
rec { rec {
inherit (import /nixpkgs/trunk/pkgs/system/i686-linux.nix) inherit (import /nixpkgs/trunk/pkgs/system/i686-linux.nix)
stdenv kernel bash coreutils coreutilsDiet findutilsWrapper utillinux sysvinit stdenv kernel bash bashStatic coreutils coreutilsDiet findutilsWrapper utillinux utillinuxStatic sysvinit
e2fsprogsDiet e2fsprogs e2fsprogsDiet e2fsprogs
nettools nix subversion gcc wget which vim less screen openssh binutils nettools nix subversion gcc wget which vim less screen openssh binutils
strace shadowutils iputils gnumake curl gnused gnutar gnugrep gzip strace shadowutils iputils gnumake curl gnused gnutar gnugrep gzip
mingettyWrapper grubWrapper syslinux parted module_init_tools hotplug udev mingettyWrapper grubWrapper syslinux parted module_init_tools module_init_toolsStatic hotplug udev
dhcpWrapper man nano eject sysklogd; dhcpWrapper man nano eject sysklogd kudzu;
boot = (import ./boot) {inherit stdenv kernel bash coreutils findutilsWrapper boot = (import ./boot) {inherit stdenv kernel bash bashStatic coreutils findutilsWrapper
utillinux sysvinit e2fsprogs nettools nix subversion gcc wget which vim utillinux utillinuxStatic sysvinit e2fsprogs nettools nix subversion gcc wget which vim
less screen openssh binutils strace shadowutils iputils gnumake curl less screen openssh binutils strace shadowutils iputils gnumake curl
gnused gnutar gnugrep gzip mingettyWrapper grubWrapper parted module_init_tools gnused gnutar gnugrep gzip mingettyWrapper grubWrapper parted module_init_tools
hotplug udev dhcpWrapper man nano;}; hotplug udev dhcpWrapper man nano;};
init = (import ./init) {inherit stdenv bash coreutilsDiet utillinux e2fsprogsDiet init = (import ./init) {inherit stdenv bash bashStatic coreutilsDiet utillinux e2fsprogsDiet
nix shadowutils mingettyWrapper grubWrapper parted module_init_tools hotplug nix shadowutils mingettyWrapper grubWrapper parted module_init_tools hotplug
dhcpWrapper man nano eject;}; dhcpWrapper man nano eject;};
everything = [boot sysvinit kernel sysklogd]; everything = [boot sysvinit kernel sysklogd kudzu];
} }