# the old nix mercurial repository nix=/mnt/term/home/djc/src/nix-os # the current nix repository at lsub cd $home hget -o nix.tgz http://lsub.org/export/nix.tgz tar xzf nix.tgz nix=$home/nix # fix libc.h pattern='/adec/d /ainc/d /putbe/d' sed -e $pattern < $nix/sys/include/libc.h > $nix/sys/include/libc.h.new && mv $nix/sys/include/libc.h.new $nix/sys/include/libc.h # fix mkfile.proto pattern='s/^OS=.*$/OS=568qv/ s/^CPUS=.*$/CPUS=arm amd64 386 power mips/' sed -e $pattern < $nix/sys/src/mkfile.proto > $nix/sys/src/mkfile.proto.new && mv $nix/sys/src/mkfile.proto.new $nix/sys/src/mkfile.proto # files and directories newdir=(\ /amd64/include/ape\ /sys/src/ape/lib/9/amd64\ /sys/src/ape/lib/ap/amd64\ /sys/src/libc/amd64\ /sys/src/libmp/amd64\ /sys/src/libsec/amd64\ /sys/src/nix\ ) newfile=(\ /sys/lib/acid/amd64\ ) file=(\ /sys/include/libc.h\ /sys/include/tos.h\ /sys/include/trace.h\ /sys/src/cmd/syscall/mkfile\ /sys/src/libc/9syscall/sys.h\ /sys/src/mkfile.proto\ ) emptydir=(\ /acme/bin/amd64\ /amd64/bin/ape\ /amd64/bin/ape\ /amd64/bin/auth\ /amd64/bin/aux\ /amd64/bin/bitsy\ /amd64/bin/dial\ /amd64/bin/disk\ /amd64/bin/fossil\ /amd64/bin/fs\ /amd64/bin/games\ /amd64/bin/ip\ /amd64/bin/ip/httpd\ /amd64/bin/ndb\ /amd64/bin/replica\ /amd64/bin/upas\ /amd64/bin/usb\ /amd64/bin/venti\ /amd64/lib/ape\ ) # prepare for(i in $newdir) { rm -rf $i mkdir $i bind -c $nix^$i $i } for(i in $newfile) { rm -f $i touch $i bind $nix^$i $i } for(i in $file) { bind $nix^$i $i } for(i in $emptydir) { rm -rf $i mkdir $i } # build amd64 for(i in /sys/src/cmd/6?) {cd $i && mk install && mk clean} cd /sys/src && objtype=amd64 {mk nuke && mk install && mk clean} dd -if /dev/zero -of /sys/src/nix/root/nvram -bs 512 -count 1 cd /sys/src/nix/k10 && objtype=amd64 {mk nuke && mk CONF'='k8cpu install && mk nuke} rm -f /sys/src/nix/386/*.i /sys/src/nix/root/nvram # build 386 for(i in /sys/src/cmd/8?) {cd $i && mk install && mk clean} cd /sys/src && objtype=386 {mk nuke && mk install && mk clean} cd /sys/src/9/pc && objtype=386 {mk nuke && mk CONF'='pccpu install && mk nuke} # generate patch (personal use) rm -f /tmp/nix.diff for(i in $newdir $newfile $file) sdiff $i | night >> /tmp/nix.diff mv /tmp/nix.diff /n/web/www.9legacy.org/9legacy/patch # clean for(i in $newdir $newfile $emptydir) { unbind $i rm -rf $i } # bind only for(i in $newdir) { bind -c $nix^$i $i } for(i in $newfile $file) { bind $nix^$i $i }