* Turns out that nested backticks (like $(... $(...))) are evil, since
bash doesn't check the exit status of the inner commands. Replace the $(nix-store -r $(nix-instantiate)) calls with nix-build. * Some of the diet packages are gone now, use the dietlibc stdenv. svn path=/nixu/trunk/; revision=6920
This commit is contained in:
parent
c55460a027
commit
2b995a1150
113
make-disk.sh
113
make-disk.sh
@ -7,22 +7,21 @@ if test -z "$TMPDIR"; then export TMPDIR=/tmp; fi
|
|||||||
# deps is an array
|
# deps is an array
|
||||||
declare -a deps
|
declare -a deps
|
||||||
|
|
||||||
NIXSTORE=`which nix-store`
|
build="nix-build --no-out-link"
|
||||||
NIXINSTANTIATE=`which nix-instantiate`
|
|
||||||
|
|
||||||
coreutils=$(nix-store -r $(nix-instantiate ./pkgs.nix -A coreutils))
|
coreutils=$($build ./pkgs.nix -A coreutils)
|
||||||
|
|
||||||
# determine where we can find the Nix binaries
|
# determine where we can find the Nix binaries
|
||||||
NIX=$($coreutils/bin/dirname $(which nix-store))
|
NIX=$($coreutils/bin/dirname $(which nix-store))
|
||||||
|
|
||||||
# make sure we use many of our own tools, because it is more pure
|
# make sure we use many of our own tools, because it is more pure
|
||||||
mktemp=$($NIX/nix-store -r $(echo '(import ./pkgs.nix).mktemp' | $NIX/nix-instantiate -))
|
mktemp=$($build ./pkgs.nix -A mktemp)
|
||||||
|
|
||||||
gnused=$($NIX/nix-store -r $(echo '(import ./pkgs.nix).gnused' | $NIX/nix-instantiate -))
|
gnused=$($build ./pkgs.nix -A gnused)
|
||||||
gnutar=$($NIX/nix-store -r $(echo '(import ./pkgs.nix).gnutar151' | $NIX/nix-instantiate -))
|
gnutar=$($build ./pkgs.nix -A gnutar151)
|
||||||
cdrtools=$($NIX/nix-store -r $(echo '(import ./pkgs.nix).cdrtools' | $NIX/nix-instantiate -))
|
cdrtools=$($build ./pkgs.nix -A cdrtools)
|
||||||
gzip=$($NIX/nix-store -r $(echo '(import ./pkgs.nix).gzip' | $NIX/nix-instantiate -))
|
gzip=$($build ./pkgs.nix -A gzip)
|
||||||
cpio=$($NIX/nix-store -r $(echo '(import ./pkgs.nix).cpio' | $NIX/nix-instantiate -))
|
cpio=$($build ./pkgs.nix -A cpio)
|
||||||
|
|
||||||
archivesDir=$($mktemp/bin/mktemp -d)
|
archivesDir=$($mktemp/bin/mktemp -d)
|
||||||
archivesDir2=$($mktemp/bin/mktemp -d)
|
archivesDir2=$($mktemp/bin/mktemp -d)
|
||||||
@ -39,52 +38,47 @@ initrd=$TMPDIR/initram.img
|
|||||||
initdir=${archivesDir}/initdir
|
initdir=${archivesDir}/initdir
|
||||||
initscript=$archivesDir/scripts/init.sh
|
initscript=$archivesDir/scripts/init.sh
|
||||||
|
|
||||||
nix=$($NIX/nix-store -r $(echo '(import ./pkgs.nix).nix' | $NIX/nix-instantiate -))
|
nix=$($build ./pkgs.nix -A nix)
|
||||||
busybox=$($NIX/nix-store -r $(echo '(import ./pkgs.nix).busybox' | $NIX/nix-instantiate -))
|
busybox=$($build ./pkgs.nix -A busybox)
|
||||||
nano=$($NIX/nix-store -r $(echo '(import ./pkgs.nix).nano' | $NIX/nix-instantiate -))
|
nano=$($build ./pkgs.nix -A nano)
|
||||||
nanoDiet=$($NIX/nix-store -r $(echo '(import ./pkgs.nix).nanoDiet' | $NIX/nix-instantiate -))
|
nanoDiet=$($build ./pkgs.nix -A nanoDiet)
|
||||||
ncurses=$($NIX/nix-store -r $(echo '(import ./pkgs.nix).ncursesDiet' | $NIX/nix-instantiate -))
|
ncurses=$($build ./pkgs.nix -A ncursesDiet)
|
||||||
|
|
||||||
nixDeps=$($NIX/nix-store -qR $nix)
|
nixDeps=$($NIX/nix-store -qR $nix)
|
||||||
|
|
||||||
#storeExpr=$($NIX/nix-store -qR $($NIX/nix-store -r $(echo '(import ./pkgs.nix).everything' | $NIX/nix-instantiate -)))
|
storeExpr=$($build ./pkgs.nix -A boot)
|
||||||
#storeExpr1=$($NIX/nix-store -r $(echo '(import ./pkgs.nix).boot' | $NIX/nix-instantiate -))
|
|
||||||
storeExpr=$($NIX/nix-store -r $(echo '(import ./pkgs.nix).boot' | $NIX/nix-instantiate -))
|
|
||||||
#storeExpr=$($NIX/nix-store -r $($NIX/nix-store -qR $(echo '(import ./pkgs.nix).everything' | $NIX/nix-instantiate -)))
|
|
||||||
|
|
||||||
kernelscripts=$($NIX/nix-store -r $(echo '(import ./pkgs.nix).kernelscripts' | $NIX/nix-instantiate -))
|
kernelscripts=$($build ./pkgs.nix -A kernelscripts)
|
||||||
|
|
||||||
mkinitrd=$($NIX/nix-store -r $(echo '(import ./pkgs.nix).mkinitrd' | $NIX/nix-instantiate -))
|
mkinitrd=$($build ./pkgs.nix -A mkinitrd)
|
||||||
|
|
||||||
### make NAR files for everything we want to install and some more. Make sure
|
### make NAR files for everything we want to install and some more. Make sure
|
||||||
### the right URL is in there, so specify /cdrom and not cdrom
|
### the right URL is in there, so specify /cdrom and not cdrom
|
||||||
$NIX/nix-push --copy $archivesDir $manifest --target file:///cdrom $storeExpr $($NIX/nix-store -r $(echo '(import ./pkgs.nix).kernel' | $NIX/nix-instantiate -)) $kernelscripts $mkinitrd
|
$NIX/nix-push --copy $archivesDir $manifest --target file:///cdrom $storeExpr $($build ./pkgs.nix -A kernel) $kernelscripts $mkinitrd
|
||||||
#$NIX/nix-push --copy $archivesDir2 $manifest --target http://losser.labs.cs.uu.nl/~armijn/.nix $storeExpr $($NIX/nix-store -r $(echo '(import ./pkgs.nix).kernel' | $NIX/nix-instantiate -)) $kernelscripts
|
#$NIX/nix-push --copy $archivesDir2 $manifest --target http://losser.labs.cs.uu.nl/~armijn/.nix $storeExpr $($build ./pkgs.nix -A kernel) $kernelscripts
|
||||||
|
|
||||||
# Location of sysvinit?
|
# Location of sysvinit?
|
||||||
sysvinitPath=$($NIX/nix-store -r $(echo '(import ./pkgs.nix).sysvinit' | $NIX/nix-instantiate -))
|
sysvinitPath=$($build ./pkgs.nix -A sysvinit)
|
||||||
|
|
||||||
# Location of Nix boot scripts?
|
# Location of Nix boot scripts?
|
||||||
bootPath=$($NIX/nix-store -r $(echo '(import ./pkgs.nix).boot' | $NIX/nix-instantiate -))
|
bootPath=$($build ./pkgs.nix -A boot)
|
||||||
|
|
||||||
syslinux=$($NIX/nix-store -r $(echo '(import ./pkgs.nix).syslinux' | $NIX/nix-instantiate -))
|
syslinux=$($build ./pkgs.nix -A syslinux)
|
||||||
|
|
||||||
kernel=$($NIX/nix-store -r $(echo '(import ./pkgs.nix).kernel' | $NIX/nix-instantiate -))
|
kernel=$($build ./pkgs.nix -A kernel)
|
||||||
kernelscripts=$($NIX/nix-store -r $(echo '(import ./pkgs.nix).kernelscripts' | $NIX/nix-instantiate -))
|
kernelscripts=$($build ./pkgs.nix -A kernelscripts)
|
||||||
|
|
||||||
#nixDeps=$($NIX/nix-store -qR $(echo '(import ./pkgs.nix).nix' | $NIX/nix-instantiate -))
|
utillinux=$($build ./pkgs.nix -A utillinux)
|
||||||
|
|
||||||
utillinux=$($NIX/nix-store -r $(echo '(import ./pkgs.nix).utillinux' | $NIX/nix-instantiate -))
|
gnugrep=$($build ./pkgs.nix -A gnugrep)
|
||||||
|
|
||||||
gnugrep=$($NIX/nix-store -r $(echo '(import ./pkgs.nix).gnugrep' | $NIX/nix-instantiate -))
|
grub=$($build ./pkgs.nix -A grubWrapper)
|
||||||
|
|
||||||
grub=$($NIX/nix-store -r $(echo '(import ./pkgs.nix).grubWrapper' | $NIX/nix-instantiate -))
|
findutils=$($build ./pkgs.nix -A findutilsWrapper)
|
||||||
|
|
||||||
findutils=$($NIX/nix-store -r $(echo '(import ./pkgs.nix).findutilsWrapper' | $NIX/nix-instantiate -))
|
modutils=$($build ./pkgs.nix -A module_init_toolsStatic)
|
||||||
|
|
||||||
modutils=$($NIX/nix-store -r $(echo '(import ./pkgs.nix).module_init_toolsStatic' | $NIX/nix-instantiate -))
|
dhcp=$($build ./pkgs.nix -A dhcpWrapper)
|
||||||
|
|
||||||
dhcp=$($NIX/nix-store -r $(echo '(import ./pkgs.nix).dhcpWrapper' | $NIX/nix-instantiate -))
|
|
||||||
|
|
||||||
#combideps=$($NIX/nix-store -qR $nix $utillinux $gnugrep $grub $gzip $findutils)
|
#combideps=$($NIX/nix-store -qR $nix $utillinux $gnugrep $grub $gzip $findutils)
|
||||||
combideps=$($NIX/nix-store -qR $nix $busybox $grub $findutils $modutils $dhcp $nano)
|
combideps=$($NIX/nix-store -qR $nix $busybox $grub $findutils $modutils $dhcp $nano)
|
||||||
@ -111,35 +105,32 @@ done
|
|||||||
|
|
||||||
tar zcf ${archivesDir}/nixstore.tgz $combideps
|
tar zcf ${archivesDir}/nixstore.tgz $combideps
|
||||||
|
|
||||||
utilLinux=$(nix-store -r $(echo '(import ./pkgs.nix).utillinuxStatic' | $NIX/nix-instantiate -))
|
utilLinux=$($build ./pkgs.nix -A utillinuxStatic)
|
||||||
coreUtilsDiet=$($NIX/nix-store -qR $(nix-store -r $(echo '(import ./pkgs.nix).coreutilsDiet' | $NIX/nix-instantiate -)))
|
coreUtilsDiet=$($NIX/nix-store -qR $($build ./pkgs.nix -A coreutilsDiet))
|
||||||
|
|
||||||
## temporarily normal e2fsprogs until I can get it to build with dietlibc
|
## temporarily normal e2fsprogs until I can get it to build with dietlibc
|
||||||
e2fsProgs=$($NIX/nix-store -qR $(nix-store -r $(echo '(import ./pkgs.nix).e2fsprogsDiet' | $NIX/nix-instantiate -)))
|
e2fsProgs=$($NIX/nix-store -qR $($build ./pkgs.nix -A e2fsprogsDiet))
|
||||||
#e2fsProgs=$($NIX/nix-store -qR $(nix-store -r $(echo '(import ./pkgs.nix).e2fsprogs' | $NIX/nix-instantiate -)))
|
#e2fsProgs=$($NIX/nix-store -qR $($build ./pkgs.nix -A e2fsprogs))
|
||||||
modUtils=$($NIX/nix-store -qR $(nix-store -r $(echo '(import ./pkgs.nix).module_init_toolsStatic' | $NIX/nix-instantiate -)))
|
modUtils=$($NIX/nix-store -qR $($build ./pkgs.nix -A module_init_toolsStatic))
|
||||||
Grub=$($NIX/nix-store -qR $(nix-store -r $(echo '(import ./pkgs.nix).grubWrapper' | $NIX/nix-instantiate -)))
|
Grub=$($NIX/nix-store -qR $($build ./pkgs.nix -A grubWrapper))
|
||||||
Kernel=$($NIX/nix-store -qR $(nix-store -r $(echo '(import ./pkgs.nix).kernel' | $NIX/nix-instantiate -)))
|
Kernel=$($NIX/nix-store -qR $($build ./pkgs.nix -A kernel))
|
||||||
SysVinit=$($NIX/nix-store -qR $(nix-store -r $(echo '(import ./pkgs.nix).sysvinit' | $NIX/nix-instantiate -)))
|
SysVinit=$($NIX/nix-store -qR $($build ./pkgs.nix -A sysvinit))
|
||||||
BootPath=$($NIX/nix-store -qR $(nix-store -r $(echo '(import ./pkgs.nix).boot' | $NIX/nix-instantiate -)))
|
BootPath=$($NIX/nix-store -qR $($build ./pkgs.nix -A boot))
|
||||||
|
|
||||||
bashGlibc=$($NIX/nix-store -r $(echo '(import ./pkgs.nix).bash' | $NIX/nix-instantiate -))
|
bashGlibc=$($build ./pkgs.nix -A bash)
|
||||||
bash=$($NIX/nix-store -r $(echo '(import ./pkgs.nix).bashStatic' | $NIX/nix-instantiate -))
|
bash=$($build ./pkgs.nix -A diet.bash)
|
||||||
coreutilsdiet=$($NIX/nix-store -r $(echo '(import ./pkgs.nix).coreutilsDiet' | $NIX/nix-instantiate -))
|
coreutilsdiet=$($build ./pkgs.nix -A diet.coreutils)
|
||||||
#findutils=$($NIX/nix-store -q $(echo '(import ./pkgs.nix).findutilsWrapper' | $NIX/nix-instantiate -))
|
utillinux=$($build ./pkgs.nix -A utillinux)
|
||||||
utillinux=$($NIX/nix-store -r $(echo '(import ./pkgs.nix).utillinux' | $NIX/nix-instantiate -))
|
e2fsprogs=$($build ./pkgs.nix -A e2fsprogsDiet)
|
||||||
e2fsprogs=$($NIX/nix-store -r $(echo '(import ./pkgs.nix).e2fsprogsDiet' | $NIX/nix-instantiate -))
|
modutils=$($build ./pkgs.nix -A module_init_toolsStatic)
|
||||||
#e2fsprogs=$($NIX/nix-store -q $(echo '(import ./pkgs.nix).e2fsprogs' | $NIX/nix-instantiate -))
|
grub=$($build ./pkgs.nix -A grubWrapper)
|
||||||
#e2fsprogs=$($NIX/nix-store -q $(echo '(import ./pkgs.nix).e2fsprogs' | $NIX/nix-instantiate -))
|
mingettyWrapper=$($build ./pkgs.nix -A mingettyWrapper)
|
||||||
modutils=$($NIX/nix-store -r $(echo '(import ./pkgs.nix).module_init_toolsStatic' | $NIX/nix-instantiate -))
|
dhcp=$($build ./pkgs.nix -A dhcpWrapper)
|
||||||
grub=$($NIX/nix-store -r $(echo '(import ./pkgs.nix).grubWrapper' | $NIX/nix-instantiate -))
|
gnugrep=$($build ./pkgs.nix -A gnugrep)
|
||||||
mingettyWrapper=$($NIX/nix-store -r $(echo '(import ./pkgs.nix).mingettyWrapper' | $NIX/nix-instantiate -))
|
which=$($build ./pkgs.nix -A which)
|
||||||
dhcp=$($NIX/nix-store -r $(echo '(import ./pkgs.nix).dhcpWrapper' | $NIX/nix-instantiate -))
|
eject=$($build ./pkgs.nix -A eject)
|
||||||
gnugrep=$($NIX/nix-store -r $(echo '(import ./pkgs.nix).gnugrep' | $NIX/nix-instantiate -))
|
sysklogd=$($build ./pkgs.nix -A sysklogd)
|
||||||
which=$($NIX/nix-store -r $(echo '(import ./pkgs.nix).which' | $NIX/nix-instantiate -))
|
#kudzu=$($build ./pkgs.nix -A kudzu)
|
||||||
eject=$($NIX/nix-store -r $(echo '(import ./pkgs.nix).eject' | $NIX/nix-instantiate -))
|
|
||||||
sysklogd=$($NIX/nix-store -r $(echo '(import ./pkgs.nix).sysklogd' | $NIX/nix-instantiate -))
|
|
||||||
#kudzu=$($NIX/nix-store -r $(echo '(import ./pkgs.nix).kudzu' | $NIX/nix-instantiate -))
|
|
||||||
|
|
||||||
echo creating directories for bootimage
|
echo creating directories for bootimage
|
||||||
|
|
||||||
|
24
pkgs.nix
24
pkgs.nix
@ -1,6 +1,21 @@
|
|||||||
rec {
|
let
|
||||||
inherit (import ./pkgs/top-level/all-packages.nix {})
|
|
||||||
stdenv kernelscripts kernel bash bashStatic coreutils coreutilsDiet
|
pkgs = import ./pkgs/top-level/all-packages.nix {};
|
||||||
|
|
||||||
|
# !!! copied from stdenv/linux/make-bootstrap-tools.nix.
|
||||||
|
pkgsToRemove =
|
||||||
|
[ "binutils" "gcc" "coreutils" "findutils" "diffutils" "gnused" "gnugrep"
|
||||||
|
"gawk" "gnutar" "gzip" "bzip2" "gnumake" "bash" "patch" "patchelf"
|
||||||
|
];
|
||||||
|
|
||||||
|
pkgsDiet = import ./pkgs/top-level/all-packages.nix {
|
||||||
|
bootStdenv = removeAttrs (pkgs.useDietLibC pkgs.stdenv) pkgsToRemove;
|
||||||
|
};
|
||||||
|
|
||||||
|
in rec {
|
||||||
|
|
||||||
|
inherit (pkgs)
|
||||||
|
stdenv kernelscripts kernel bash coreutils coreutilsDiet
|
||||||
findutilsWrapper utillinux utillinuxStatic sysvinit e2fsprogsDiet
|
findutilsWrapper utillinux utillinuxStatic sysvinit e2fsprogsDiet
|
||||||
e2fsprogs nettools nix subversion gcc wget which vim less screen
|
e2fsprogs nettools nix subversion gcc wget which vim less screen
|
||||||
openssh binutils nixStatic strace shadowutils iputils gnumake curl gnused
|
openssh binutils nixStatic strace shadowutils iputils gnumake curl gnused
|
||||||
@ -8,6 +23,8 @@ rec {
|
|||||||
module_init_tools module_init_toolsStatic dhcpWrapper man nano nanoDiet
|
module_init_tools module_init_toolsStatic dhcpWrapper man nano nanoDiet
|
||||||
eject sysklogd mktemp cdrtools cpio busybox mkinitrd ncursesDiet;
|
eject sysklogd mktemp cdrtools cpio busybox mkinitrd ncursesDiet;
|
||||||
|
|
||||||
|
diet = pkgsDiet;
|
||||||
|
|
||||||
boot = (import ./boot) {
|
boot = (import ./boot) {
|
||||||
inherit stdenv bash coreutils findutilsWrapper utillinux sysvinit
|
inherit stdenv bash coreutils findutilsWrapper utillinux sysvinit
|
||||||
e2fsprogs nettools subversion gcc wget which vim less screen openssh
|
e2fsprogs nettools subversion gcc wget which vim less screen openssh
|
||||||
@ -23,4 +40,5 @@ rec {
|
|||||||
#};
|
#};
|
||||||
|
|
||||||
everything = [boot sysvinit sysklogd kernelscripts kernel mkinitrd];
|
everything = [boot sysvinit sysklogd kernelscripts kernel mkinitrd];
|
||||||
|
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user