--- toast-linux 2005/02/06 21:11:34 1.137 +++ toast-linux 2005/02/07 06:10:40 1.138 @@ -9,7 +9,7 @@ set -e : > sbin/setup chmod +x sbin/setup -for i in toast help; do ln -s setup "sbin/$i"; done +for i in toast help; do ln -sf setup "sbin/$i"; done sed -e "s,TOPDIR,$topdir,g" > "sbin/setup" << "---" #!/bin/sh @@ -373,7 +373,6 @@ if [ "TOPDIR" = "." ]; then export TOASTINIT_NO_LILO=1 echo "mkdir mnt mnt/boot mnt/lost+found" > tmp/partition - return 0 else echo "0" > /proc/sys/kernel/printk echo "" @@ -761,6 +760,7 @@ cat > "$namedir/rootfs/download/command" << "EOF" #!/bin/sh -ex +[ -r /media/cdrom/toast-linux/disk.tar.bz2 ] && exit 0 if [ "`cd mnt; echo *`" != "boot lost+found" ]; then echo "unexpected filesystem contents" >&2 exit 1 @@ -870,12 +870,18 @@ mount -t proc proc mnt/proc mount -t sysfs sys mnt/sys -bunzip2 mnt/toast/pkg/rootfs/v0/archive/* -mount -t ext2 -o loop mnt/toast/pkg/rootfs/v0/archive/* mnt/mnt -mkdir -p mnt/toast/pkg/rootfs/v0/1/root -tar -c -C mnt/mnt . | tar -x -C mnt/toast/pkg/rootfs/v0/1/root -umount mnt/mnt -rm -fr mnt/toast/pkg/rootfs/v0/archive +file="/media/cdrom/toast-linux/disk.tar.bz2" +if [ -r "$file" ]; then + cd mnt + tar xjf "$file" +else + bunzip2 mnt/toast/pkg/rootfs/v0/archive/* + mount -t ext2 -o loop mnt/toast/pkg/rootfs/v0/archive/* mnt/mnt + mkdir -p mnt/toast/pkg/rootfs/v0/1/root + tar -c -C mnt/mnt . | tar -x -C mnt/toast/pkg/rootfs/v0/1/root + umount mnt/mnt + rm -fr mnt/toast/pkg/rootfs/v0/archive +fi EOF cat > "$namedir/perl/download/command" << "EOF" @@ -1443,9 +1449,12 @@ sleep 3 [ "$ufile" -nt "$efile" ] || break - while [ "$building_name/$getting_name/$pending/$stored" = "//0/0" ]; do - sleep 9999999 # done! - done + if [ "$building_name/$getting_name/$pending/$stored" = "//0/0" ]; then + # done with everything! + stty "$save" + echo -ne '\33[?25h\33[0m\33[999;1H\12' + return 0 + fi done done @@ -1459,6 +1468,7 @@ fi echo echo "Aborting." + return 1 } abort() @@ -1984,14 +1994,16 @@ mkdir -p $@/tmp cp !CONFIGURE! $@/tmp/configure -cd: $(LARGEK) $(ISOLINUX) rootfs.gz logo.lss moreroot +cd: $(LARGEK) $(ISOLINUX) rootfs.gz logo.lss moreroot chroot rm -fr $@ !CONFIGURE! $@ cp logo.lss $@/isolinux/logo.lss cp $(LARGEK) $@/isolinux/linux cp $(ISOLINUX) $@/isolinux/isolinux.bin cp rootfs.gz $@/isolinux/initrd - tar cjf $@/toast-linux-ram.tar.bz2 --owner=0 --group=0 -C moreroot . + mkdir -p $@/toast-linux + tar cjf $@/toast-linux/ram.tar.bz2 --owner=0 --group=0 -C moreroot . + tar cjf $@/toast-linux/disk.tar.bz2 --owner=0 --group=0 -C mnt toast floppy.img: floppy $(MFORMAT) $(SYSLINUX) $(MCOPY) $(MDIR) rm -f $@ @@ -2021,7 +2033,14 @@ pod2man $< > $@ chroot: sbin/setup + chroot / true + [ ! -S mnt/dev/log ] || umount mnt/dev + [ ! -d mnt/proc/1 ] || umount mnt/proc + [ ! -d mnt/sys/block ] || umount mnt/sys + rm -fr tmp mnt + mkdir tmp TOAST_NICE=5 sbin/setup + touch $@ vmware: vmware-floppy @@ -2485,6 +2504,7 @@ ifconfig lo 127.0.0.1 hostname localhost if cdrom; then + tar xjf /media/cdrom/toast-linux/ram.tar.bz2 network || true else network @@ -2572,18 +2592,16 @@ --- FILE root/sbin/cdrom --- #!/bin/sh umount /media/cdrom 2>/dev/null -file=/media/cdrom/toast-linux-ram.tar.bz2 cd /sys/block for i in *; do case "$i" in dm*|fd*|loop*|ram*|md*) ;; *) mount -r -t iso9660 "/dev/$i" /media/cdrom 2>/dev/null - if [ -r "$file" ]; then + if [ -d /media/cdrom/toast-linux ]; then echo "Found cdrom: $i" ln -s "$i" /dev/cdrom - cd / - exec tar xjf "$file" + exit 0 fi umount /media/cdrom 2>/dev/null ;;