summaryrefslogtreecommitdiff
path: root/distrib/arm32/floppies
diff options
context:
space:
mode:
authorTheo de Raadt <deraadt@cvs.openbsd.org>1996-09-05 21:27:39 +0000
committerTheo de Raadt <deraadt@cvs.openbsd.org>1996-09-05 21:27:39 +0000
commit59436c90b065edbbd368ed8679d5be33153d4fcc (patch)
tree2b6543cda0aa334b4d05e91f21b85211da5ffde5 /distrib/arm32/floppies
parentff0f2a750cbaf08bb2ec918bdabe6ad55177f066 (diff)
sync to netbsd
Diffstat (limited to 'distrib/arm32/floppies')
-rw-r--r--distrib/arm32/floppies/Makefile5
-rw-r--r--distrib/arm32/floppies/Makefile.inc5
-rw-r--r--distrib/arm32/floppies/inst-common/Makefile.inc49
-rw-r--r--distrib/arm32/floppies/inst-common/dot.commonutils133
-rw-r--r--distrib/arm32/floppies/inst-common/inst.sh953
-rw-r--r--distrib/arm32/floppies/inst-common/instbin.conf29
-rw-r--r--distrib/arm32/floppies/inst-common/list90
-rw-r--r--distrib/arm32/floppies/inst-common/mtree.conf95
-rw-r--r--distrib/arm32/floppies/inst-common/termcap.vt10049
-rw-r--r--distrib/arm32/floppies/inst/Makefile8
-rw-r--r--distrib/arm32/floppies/inst/disktab.preinstall29
-rw-r--r--distrib/arm32/floppies/inst/dot.hdprofile63
-rw-r--r--distrib/arm32/floppies/inst/dot.instutils157
-rw-r--r--distrib/arm32/floppies/inst/dot.profile59
-rw-r--r--distrib/arm32/floppies/inst/install.sh497
-rw-r--r--distrib/arm32/floppies/inst/list11
-rw-r--r--distrib/arm32/floppies/list2sh.awk55
-rw-r--r--distrib/arm32/floppies/runlist.sh13
-rw-r--r--distrib/arm32/floppies/upgr/Makefile8
-rw-r--r--distrib/arm32/floppies/upgr/dot.hdprofile62
-rw-r--r--distrib/arm32/floppies/upgr/dot.profile56
-rw-r--r--distrib/arm32/floppies/upgr/dot.upgrutils58
-rw-r--r--distrib/arm32/floppies/upgr/list8
-rw-r--r--distrib/arm32/floppies/upgr/upgrade.sh255
24 files changed, 2747 insertions, 0 deletions
diff --git a/distrib/arm32/floppies/Makefile b/distrib/arm32/floppies/Makefile
new file mode 100644
index 00000000000..59f797e5089
--- /dev/null
+++ b/distrib/arm32/floppies/Makefile
@@ -0,0 +1,5 @@
+# $NetBSD: Makefile,v 1.1 1996/05/16 19:58:49 mark Exp $
+
+SUBDIR= inst upgr
+
+.include <bsd.subdir.mk>
diff --git a/distrib/arm32/floppies/Makefile.inc b/distrib/arm32/floppies/Makefile.inc
new file mode 100644
index 00000000000..8d7cd5bf352
--- /dev/null
+++ b/distrib/arm32/floppies/Makefile.inc
@@ -0,0 +1,5 @@
+# $NetBSD: Makefile.inc,v 1.1 1996/05/16 19:58:50 mark Exp $
+
+# Revision is 1.1
+# all these private copies of the version number really lose.
+REV= 11
diff --git a/distrib/arm32/floppies/inst-common/Makefile.inc b/distrib/arm32/floppies/inst-common/Makefile.inc
new file mode 100644
index 00000000000..cbde1681f24
--- /dev/null
+++ b/distrib/arm32/floppies/inst-common/Makefile.inc
@@ -0,0 +1,49 @@
+# $NetBSD: Makefile.inc,v 1.1 1996/05/16 19:59:03 mark Exp $
+
+# TOP is assumed to be defined by Makefile including this one.
+
+CBIN= instbin
+COMMONDIR= ${TOP}/inst-common
+
+MOUNT_POINT?= /mnt
+VND?= vnd0
+VND_DEV= /dev/${VND}a
+VND_RDEV= /dev/r${VND}a
+IMAGE?= xxx-${REV}.fs
+MDEC= ${DESTDIR}/usr/mdec
+
+LISTS= ${COMMONDIR}/list ${.CURDIR}/list
+CRUNCHCONF= ${COMMONDIR}/${CBIN}.conf
+MTREE= ${COMMONDIR}/mtree.conf
+
+all: ${CBIN}
+ dd if=/dev/zero of=${IMAGE} bs=144k count=10
+ vnconfig -v -c ${VND_DEV} ${IMAGE}
+ newfs -O -m 0 -o space -i 5120 -c 80 ${VND_RDEV} floppy
+ mount ${VND_DEV} ${MOUNT_POINT}
+ mtree -def ${MTREE} -p ${MOUNT_POINT}/ -u
+ TOPDIR=${TOP} CURDIR=${.CURDIR} OBJDIR=${.OBJDIR} \
+ TARGDIR=${MOUNT_POINT} sh ${TOP}/runlist.sh ${LISTS}
+ @echo ""
+ @df -i ${MOUNT_POINT}
+ @echo ""
+ umount ${MOUNT_POINT}
+ vnconfig -u ${VND_DEV}
+ cat /*bin/* > /dev/null
+
+unconfig:
+ -umount -f ${MOUNT_POINT}
+ -vnconfig -u ${VND_DEV}
+ -/bin/rm -f ${IMAGE}
+
+${CBIN}.mk ${CBIN}.cache ${CBIN}.c: ${CRUNCHCONF}
+ crunchgen -D ${TOP}/../../.. -L ${DESTDIR}/usr/lib ${CRUNCHCONF}
+
+${CBIN}: ${CBIN}.mk ${CBIN}.cache ${CBIN}.c
+ make -f ${CBIN}.mk all
+
+clean cleandir:
+ /bin/rm -f core ${IMAGE} ${CBIN} ${CBIN}.mk ${CBIN}.cache *.o *.lo *.c
+
+.include <bsd.obj.mk>
+.include <bsd.subdir.mk>
diff --git a/distrib/arm32/floppies/inst-common/dot.commonutils b/distrib/arm32/floppies/inst-common/dot.commonutils
new file mode 100644
index 00000000000..cec4d110b7e
--- /dev/null
+++ b/distrib/arm32/floppies/inst-common/dot.commonutils
@@ -0,0 +1,133 @@
+# $NetBSD: dot.commonutils,v 1.1 1996/05/16 19:59:04 mark Exp $
+#
+# Copyright (c) 1994 Christopher G. Demetriou
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions
+# are met:
+# 1. Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+# 2. Redistributions in binary form must reproduce the above copyright
+# notice, this list of conditions and the following disclaimer in the
+# documentation and/or other materials provided with the distribution.
+# 3. All advertising materials mentioning features or use of this software
+# must display the following acknowledgement:
+# This product includes software developed by Christopher G. Demetriou.
+# 4. The name of the author may not be used to endorse or promote products
+# derived from this software without specific prior written permission
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+# OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+# IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+# NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+# THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+#
+
+# Installation utilites (functions), to get NetBSD installed on
+# the hard disk. These are meant to be invoked from the shell prompt,
+# by people installing NetBSD.
+
+# we know that /etc/fstab is only generated on the hard drive
+dest_dir=/
+if [ ! -f /etc/fstab ]; then
+ dest_dir=/mnt/
+fi
+
+# counter for possible shared library confusion
+TAR=/usr/bin/tar
+GUNZIP=/usr/bin/gunzip
+
+Set_tmp_dir()
+{
+ def_tmp_dir=`pwd`
+ if [ "$def_tmp_dir" = "/" -o "$def_tmp_dir" = "/mnt" ]; then
+ def_tmp_dir="$dest_dir"usr/distrib
+ fi
+
+ echo -n "What directory should be used to find and/or store "
+ echo "installtion"
+ echo -n "files? [$def_tmp_dir] "
+ read tmp_dir
+ if [ "$tmp_dir" = "" ]; then
+ tmp_dir=$def_tmp_dir
+ fi
+ if [ ! -d "$tmp_dir" ]; then
+ /bin/rm -rf $tmp_dir
+ mkdir -p $tmp_dir
+ fi
+}
+
+Tmp_dir()
+{
+ if [ "$tmp_dir" = "" ]; then
+ Set_tmp_dir
+ fi
+ cd $tmp_dir
+}
+
+Load_fd()
+{
+ Tmp_dir
+ which=
+ echo "Don't forget that you can't load from the drive you booted from."
+ echo "unless you booted with a ramdisk."
+ echo ""
+
+ while [ "$which" != "0" -a "$which" != "1" ]; do
+ echo -n "Read from which floppy drive ('0' or '1')? [0] "
+ read which
+ if [ "X$which" = "X" ]; then
+ which=0
+ fi
+ done
+ echo ""
+ echo "WARNING: during the floppy loading process, you should only"
+ echo "use Control-C at the prompt."
+ echo ""
+ while echo -n \
+ "Insert floppy (hit Control-C to terminate, enter to load): "
+ do
+ read foo
+ mount -t msdos /dev/fd${which}a /mnt2
+ cp -rp /mnt2/* .
+ umount /mnt2
+ done
+}
+
+Load_tape()
+{
+ Tmp_dir
+ echo -n "Which tape drive will you be using? [rst0] "
+ read which
+ if [ "X$which" = "X" ]; then
+ which=rst0
+ fi
+ echo -n "Insert the tape into the tape drive and hit return to "
+ echo -n "continue..."
+ read foo
+ echo "Extracting files from the tape..."
+ $TAR xvpf --unlink /dev/$which
+ echo "Done."
+}
+
+Extract()
+{
+ Tmp_dir
+ echo -n "Would you like to list the files as they're extracted? [n] "
+ read verbose
+ case $verbose in
+ y*|Y*)
+ tarverbose=v
+ ;;
+ *)
+ tarverbose=
+ ;;
+ esac
+ cat "$1"* | $GUNZIP | (cd $dest_dir ; $TAR --unlink -xp"$tarverbose"f - )
+}
diff --git a/distrib/arm32/floppies/inst-common/inst.sh b/distrib/arm32/floppies/inst-common/inst.sh
new file mode 100644
index 00000000000..619dc4d49f7
--- /dev/null
+++ b/distrib/arm32/floppies/inst-common/inst.sh
@@ -0,0 +1,953 @@
+#!/bin/sh
+#
+# $NetBSD: inst.sh,v 1.1 1996/05/16 19:59:05 mark Exp $
+#
+# Copyright (c) 1995-1996 Mark Brinicombe
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions
+# are met:
+# 1. Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+# 2. Redistributions in binary form must reproduce the above copyright
+# notice, this list of conditions and the following disclaimer in the
+# documentation and/or other materials provided with the distribution.
+# 3. All advertising materials mentioning features or use of this software
+# must display the following acknowledgement:
+# This product includes software developed by Mark Brinicombe.
+# 4. The name of the author may not be used to endorse or promote products
+# derived from this software without specific prior written permission
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+# OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+# IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+# NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+# THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+#
+# from inst,v 1.9 1996/04/18 20:56:14 mark Exp $
+#
+
+#
+# Installation utilites (functions), to get NetBSD installed on
+# the hard disk. These are meant to be invoked from the shell prompt,
+# by people installing NetBSD.
+#
+
+VERSION=`echo '$Revision: 1.1 $' | cut '-d ' -f2`
+
+Load_tape()
+{
+ Tmp_dir
+ echo -n "Which tape drive will you be using? [rst0] "
+ read which
+ if [ "X$which" = "X" ]; then
+ which=rst0
+ fi
+ echo -n "Insert the tape into the tape drive and hit return to "
+ echo -n "continue..."
+ read foo
+ echo "Extracting files from the tape..."
+ $TAR xvpf --unlink /dev/$which
+ echo "Done."
+}
+
+
+Get_Dest_Dir()
+{
+ echo -n "Enter new path to dest directory [$dest_dir] "
+ read newdir
+ if [ ! "X$newdir" = "X" ]; then
+ dest_dir=$newdir
+ fi
+}
+
+
+Get_Distrib_Dir()
+{
+ echo -n "Enter new path to distrib directory [$distribdir] "
+ read distribdir
+ if [ "X$distribdir" = "X" ]; then
+ distribdir=$destdir/usr/distrib
+ fi
+ if [ ! -d $distribdir ]; then
+ echo -n "$distribdir does not exist, create it [n] "
+ read yorn
+ if [ "$yorn" = "y" ]; then
+ mkdir $distribdir
+ fi
+ fi
+}
+
+
+Set_Distrib_Dir()
+{
+ while [ ! -d $distribdir ]; do
+ echo "Directory $distribdir does not exist"
+ Get_Distrib_Dir
+ done
+
+ cd $distribdir
+}
+
+
+Load_Msdos_Fd()
+{
+ echo "Loading sets from msdos floppies"
+ Set_Distrib_Dir
+
+ which=
+ while [ "$which" != "0" -a "$which" != "1" ]; do
+ echo -n "Read from which floppy drive ('0' or '1')? [0] "
+ read which
+ if [ "X$which" = "X" ]; then
+ which=0
+ fi
+ done
+
+ foo=
+ while [ "X$foo" = "X" ]; do
+ echo -n "Insert floppy (type s to stop, enter to load): "
+ read foo
+ if [ "X$foo" = "X" ]; then
+ mount -t msdos /dev/fd${which}a /mnt2
+ cp -rp /mnt2/* .
+ umount /mnt2
+ fi
+ done
+}
+
+
+Load_Tar_Fd()
+{
+ echo "Loading sets from tar floppies"
+ Set_Distrib_Dir
+
+ which=
+ while [ "$which" != "0" -a "$which" != "1" ]; do
+ echo -n "Read from which floppy drive ('0' or '1')? [0] "
+ read which
+ if [ "X$which" = "X" ]; then
+ which=0
+ fi
+ done
+
+ foo=
+ while [ "X$foo" = "X" ]; do
+ echo -n "Insert floppy (type s to stop, enter to load): "
+ read foo
+ if [ "X$foo" = "X" ]; then
+ tar xf /dev/fd${which}a
+ fi
+ done
+}
+
+
+Load_Tar_Fd1()
+{
+ echo "Loading sets from multi-volume tar floppies"
+ Set_Distrib_Dir
+
+ which=
+ while [ "$which" != "0" -a "$which" != "1" ]; do
+ echo -n "Read from which floppy drive ('0' or '1')? [0] "
+ read which
+ if [ "X$which" = "X" ]; then
+ which=0
+ fi
+ done
+
+ foo=
+ while [ "X$foo" = "X" ]; do
+ echo -n "Insert floppy (type s to stop, enter to load): "
+ read foo
+ if [ "X$foo" = "X" ]; then
+ tar xfM /dev/fd${which}a
+ fi
+ done
+}
+
+
+Load_Sets()
+{
+ res0=
+ while [ "$res0" != "q" -a "$res0" != "Q" ]; do
+ echo ""
+ echo -n "1. Set distrib directory (Currently $distribdir"
+ if [ ! -d $distribdir ]; then
+ echo " - non-existant)"
+ else
+ echo ")"
+ fi
+ echo "2. Load sets from msdos floppies"
+ echo "3. Load sets from tar floppies"
+ echo "4. Load sets from multi-volume tar floppies"
+ echo "Q. Return to previous menu"
+ echo ""
+ echo -n "Choice : "
+ read res0
+ case "$res0" in
+ 1)
+ Get_Distrib_Dir
+ ;;
+ 2)
+ Load_Msdos_Fd
+ ;;
+ 3)
+ Load_Tar_Fd
+ ;;
+ 4)
+ Load_Tar_Fd1
+ ;;
+ q|Q)
+# echo "Returning to previous menu"
+ ;;
+ esac
+ done
+}
+
+
+Mount_SCSI_CDROM()
+{
+ which=
+ while [ "$which" != "0" -a "$which" != "1" ]; do
+ echo -n "Mount which CDROM drive ('0' or '1')? [0] "
+ read which
+ if [ "X$which" = "X" ]; then
+ which=0
+ fi
+ done
+
+ mount -r -t cd9660 /dev/cd${which}a /cdrom
+ if [ ! $? = 0 ]; then
+ echo "Mount failed"
+ else
+ distribdir="/cdrom/usr/distrib"
+ fi
+
+}
+
+
+Mount_SCSI_Disc()
+{
+ echo -n "Mount which SCSI device as CDROM ? [sd0a] "
+ read which
+
+ mount -r -t cd9660 /dev/${which} /cdrom
+ if [ ! $? = 0 ]; then
+ echo "Mount failed"
+ else
+ distribdir="/cdrom/usr/distrib"
+ fi
+
+}
+
+
+Mount_ATAPI_CDROM()
+{
+ mount -r -t cd9660 /dev/wcd0a /cdrom
+ if [ ! $? = 0 ]; then
+ mount -r -t cd9660 /dev/wcd0a /cdrom
+ if [ ! $? = 0 ]; then
+ echo "Mount failed"
+ else
+ distribdir="/cdrom/usr/distrib"
+ fi
+ else
+ distribdir="/cdrom/usr/distrib"
+ fi
+
+}
+
+
+CDROM_Sets() {
+ res0=
+ while [ "$res0" != "q" -a "$res0" != "Q" ]; do
+ echo ""
+ echo -n "1. Set distrib directory (Currently $distribdir"
+ if [ ! -d $distribdir ]; then
+ echo " - non-existant)"
+ else
+ echo ")"
+ fi
+ echo -n "2. Mount SCSI CDROM "
+ if [ ! -b /dev/cd0a ]; then
+ echo "- Not available"
+ else
+ echo ""
+ fi
+ echo -n "3. Mount ATAPI CDROM "
+ if [ ! -b /dev/wcd0a ]; then
+ echo "- Not available"
+ else
+ echo ""
+ fi
+ if [ -f /var/inst/developer ]; then
+ echo "D. Mount SCSI disc as CDROM"
+ fi
+ echo "Q. Return to previous menu"
+ echo ""
+ echo -n "Choice : "
+ read res0
+ case "$res0" in
+ 1)
+ Get_Distrib_Dir
+ ;;
+ 2)
+ Mount_SCSI_CDROM
+ ;;
+ 3)
+ Mount_ATAPI_CDROM
+ ;;
+ d|D)
+ Mount_SCSI_Disc
+ ;;
+ q|Q)
+ ;;
+ esac
+ done
+}
+
+
+Show_Sets()
+{
+ Set_Distrib_Dir
+ sets=`ls *.[sS][eE][tT] 2>/dev/null | sed -e 's/.[sS][eE][tT]//'`
+
+ echo "Loaded sets in $distribdir :"
+ for set in $sets; do
+ cat "$set".set 2>/dev/null | grep 'desc:' | cut -f2-
+ cat "$set".SET 2>/dev/null | grep 'desc:' | cut -f2-
+ done
+}
+
+
+Show_Installed_Sets()
+{
+ INSTALLDIR=$dest_dir/var/inst/installed
+ cd $INSTALLDIR
+ if [ ! $? = 0 ]; then
+ return
+ fi
+ sets=`ls *.[sS][eE][tT] 2>/dev/null | sed -e 's/.[sS][eE][tT]//'`
+
+ echo "Installed sets:"
+ for set in $sets; do
+ cat "$set".set 2>/dev/null | grep 'desc:' | cut -f2-
+ cat "$set".SET 2>/dev/null | grep 'desc:' | cut -f2-
+ done
+}
+
+
+Validate_Sets()
+{
+ Set_Distrib_Dir
+ sets=`ls *.[sS][eE][tT] 2>/dev/null | sed -e 's/.[sS][eE][tT]//'`
+ list=""
+
+ echo "Loaded sets in $distribdir :"
+ for set in $sets; do
+ printf "$set\t"
+ list="$list $set"
+ done
+ echo ""
+
+ echo -n "Enter set names or 'all' for all sets : "
+ read res2
+ res2=`echo "$res2" | tr "," " " | tr "[A-Z]" "[a-z]"`
+ if [ "$res2" = "all" ]; then
+ res2="$list"
+ fi
+ sets="$res2"
+
+ echo "Validating in $distribdir :"
+ fail=""
+ for set in $sets; do
+ setname="set"
+ if [ ! -f "$set"."$setname" ]; then
+ setname="SET"
+ set=`echo $set | tr [a-z] [A-Z]`
+ fi
+ p1=`cat $set.$setname 2>/dev/null | grep 'parts:' | cut -f2`
+ if [ "$p1" = "" ]; then
+ continue
+ fi
+ p2=`ls "$set".[0-9a-z][0-9a-z] 2>/dev/null | wc | awk '{print $1}'`
+ printf "$set\t:"
+# echo "$p1 , $p2"
+ if [ ! "$p1" = "$p2" ]; then
+ echo -n " Failed parts check (need $p1, got $p2)"
+ else
+ echo -n " Passed parts check"
+ fi
+ loop=0
+ while [ $loop -lt $p1 ]; do
+ if [ $loop -lt 10 ]; then
+ file="0$loop"
+ else
+ file=$loop
+ fi
+ echo -n " [$file]"
+ cksum=`cat $set.$setname | grep "cksum.$file:" | cut -f2`
+ cksum1=`cat "$set".$file 2>&1 | cksum | cut "-d " -f1`
+ #echo "#$cksum, $cksum1#"
+ if [ ! "$cksum" = "$cksum1" ]; then
+ echo -n " part $file failed checksum"
+ fail="yes"
+ fi
+ loop=$(($loop+1))
+ done
+ if [ "$fail" = "" ]; then
+ echo " Passed checksum"
+ else
+ echo ""
+ fi
+ done
+}
+
+
+Verify_Sets()
+{
+ Set_Distrib_Dir
+ sets=`ls *.[sS][eE][tT] 2>/dev/null | sed -e 's/.[sS][eE][tT]//'`
+ list=""
+
+ echo "Loaded sets in $distribdir :"
+ for set in $sets; do
+ printf "$set\t"
+ list="$list $set"
+ done
+ echo ""
+
+ echo -n "Enter set names or 'all' for all sets : "
+ read res2
+ res2=`echo "$res2" | tr "," " " | tr "[A-Z]" "[a-z]"`
+ if [ "$res2" = "all" ]; then
+ res2="$list"
+ fi
+ sets="$res2"
+
+ echo "Verifing sets in $distribdir :"
+ for set in $sets; do
+ setname="set"
+ if [ ! -f "$set"."$setname" ]; then
+ setname="SET"
+ set=`echo $set | tr [a-z] [A-Z]`
+ fi
+ printf "$set\t:"
+ cat "$set".[0-9a-z][0-9a-z] 2>/dev/null | $GUNZIP -t 2>/dev/null 1>/dev/null
+ if [ ! $? = 0 ]; then
+ echo " Failed archive integrity"
+ else
+ echo " Passed"
+ fi
+ done
+}
+
+
+Verify_Checksums()
+{
+ echo -n "Enter name of checksums file : "
+ read checkfile
+ if [ "X$checkfile" = "X" ]; then
+ return
+ fi
+
+ Set_Distrib_Dir
+ sets=`ls *.[sS][eE][tT] 2>/dev/null | sed -e 's/.[sS][eE][tT]//'`
+ list=""
+
+ echo "Available sets in $distribdir :"
+ for set in $sets; do
+ printf "$set\t"
+ list="$list $set"
+ done
+ echo ""
+
+ echo -n "Enter set names or 'all' for all sets : "
+ read res2
+ res2=`echo "$res2" | tr "," " " | tr "[A-Z]" "[a-z]"`
+ if [ "$res2" = "all" ]; then
+ res2="$list"
+ fi
+ sets="$res2"
+
+ TMPFILE1="/tmp/inst.cksum1"
+ TMPFILE2="/tmp/inst.cksum2"
+
+ echo "Verifing checksums for sets in $distribdir :"
+ for set in $sets; do
+ setname="set"
+ if [ ! -f "$set"."$setname" ]; then
+ setname="SET"
+ set=`echo $set | tr [a-z] [A-Z]`
+ fi
+ printf "$set\t:"
+ grep cksum $set.$setname >$TMPFILE1
+ egrep -i "`echo ^$set.$setname | sed -e 's/\+/\\\\+/g'`" $checkfile | cut '-d:' -f2- >$TMPFILE2
+ cmp -s $TMPFILE1 $TMPFILE2
+ if [ $? = 0 ]; then
+ echo "checksums ok"
+ else
+ echo "checksum error"
+ fi
+ done
+ rm -f $TMPFILE1
+ rm -f $TMPFILE2
+}
+
+
+Check_Sets() {
+ res0=
+ while [ "$res0" != "q" -a "$res0" != "Q" ]; do
+ echo ""
+ echo "1. Validate distribution sets (confirm checksums)"
+ echo "2. Verify distribution sets (integrity check)"
+ echo "3. Verify checksums (confirm set checksums)"
+ echo "Q. Return to previous menu"
+ echo ""
+ echo -n "Choice : "
+ read res0
+ case "$res0" in
+ 1)
+ Validate_Sets
+ ;;
+ 2)
+ Verify_Sets
+ ;;
+ 3)
+ Verify_Checksums
+ ;;
+ q|Q)
+ ;;
+ esac
+ done
+}
+
+
+
+
+List_Sets()
+{
+ Set_Distrib_Dir
+ sets=`ls *.[sS][eE][tT] 2>/dev/null | sed -e 's/.[sS][eE][tT]//'`
+ list=""
+
+ echo "Loaded sets in $distribdir :"
+ for set in $sets; do
+ printf "$set\t"
+ list="$list $set"
+ done
+ echo ""
+
+ echo -n "Enter set names or 'all' for all sets : "
+ read res2
+ res2=`echo "$res2" | tr "," " " | tr "[A-Z]" "[a-z]"`
+ if [ "$res2" = "all" ]; then
+ res2="$list"
+ fi
+ sets="$res2"
+
+ echo "Listing contents of sets in $distribdir :"
+ for set in $sets; do
+ setname="set"
+ if [ ! -f "$set"."$setname" ]; then
+ setname="SET"
+ set=`echo $set | tr [a-z] [A-Z]`
+ fi
+ echo "$set:"
+ cat "$set".[0-9a-z][0-9a-z] | $GUNZIP | $TAR -tpvf -
+ done
+}
+
+
+Install_Sets()
+{
+# Make sure all the directories exist for recording the installation
+
+ INSTALLDIR=$dest_dir/var/inst
+ if [ ! -d $dest_dir/var ]; then
+ echo "Creating $dest_dir/var"
+ mkdir $dest_dir/var
+ fi
+ if [ ! -d $INSTALLDIR ]; then
+ echo "Creating $INSTALLDIR"
+ mkdir $INSTALLDIR
+ fi
+ if [ ! -d $INSTALLDIR/installed ]; then
+ echo "Creating $INSTALLDIR/installed"
+ mkdir $INSTALLDIR/installed
+ fi
+ if [ ! -d $INSTALLDIR/sets ]; then
+ echo "Creating $INSTALLDIR/sets"
+ mkdir $INSTALLDIR/sets
+ fi
+
+ if [ ! -d $dest_dir/tmp ]; then
+ echo "Creating $dest_dir/tmp"
+ mkdir $dest_dir/tmp
+ chmod 1777 $dest_dir/tmp
+ fi
+
+# Set the distribution directory and list all the available sets
+
+ Set_Distrib_Dir
+ sets=`ls *.[sS][eE][tT] 2>/dev/null | sed -e 's/.[sS][eE][tT]//'`
+ list=""
+
+ echo "Loaded sets in $distribdir :"
+ for set in $sets; do
+ printf "$set\t"
+ list="$list $set"
+ done
+ echo ""
+
+# Prompt for the sets to install
+
+ echo -n "Enter set names or 'all' for all sets : "
+ read res2
+ res2=`echo "$res2" | tr "," " " | tr "[A-Z]" "[a-z]"`
+
+# Check for any of the special sets
+
+ if [ "$res2" = "all" ]; then
+ res2="$list"
+ fi
+
+ if [ "$res2" = "req" ]; then
+ res2="base etc misc text kern"
+ fi
+
+ if [ "$res2" = "std" ]; then
+ res2="base etc misc text local man kern"
+ fi
+
+# Hack to make sure the base set is the first installed
+
+ echo "$res2" | grep base 2>/dev/null >/dev/null
+ if [ $? = 0 ]; then
+ res2="base "`echo "$res2" | sed 's/base//'`
+ fi
+
+ echo "$res2" | grep BASE 2>/dev/null >/dev/null
+ if [ $? = 0 ]; then
+ res2="BASE "`echo "$res2" | sed 's/BASE//'`
+ fi
+
+ echo -n "Would you like to list the files as they're extracted? [n] "
+ read verbose
+ case $verbose in
+ y*|Y*)
+ tarverbose=v
+ ;;
+ *)
+ tarverbose=
+ ;;
+ esac
+
+ for set in $res2; do
+ setname="set"
+ if [ ! -f "$set"."$setname" ]; then
+ setname="SET"
+ set=`echo $set | tr [a-z] [A-Z]`
+ fi
+
+# Test for conflicts
+
+ ok=""
+ for file in `ls $INSTALLDIR/installed/*.[sS][eE][tT] 2>/dev/null`; do
+ conflict="`grep conflict: $file | cut -d: -f2- 2>/dev/null`"
+ echo $conflict | egrep -i "(^|[[:space:]])$set([[:space:]]|$)" 2>/dev/null > /dev/null
+ if [ $? = 0 ]; then
+ echo "Set $set conflicts with installed set `basename $file`"
+ ok="no"
+ break
+ fi
+ done
+
+ if [ ! "$ok" = "" ]; then
+ continue
+ fi
+
+ conflicts="`grep conflict: $set.$setname | cut -d: -f2-`"
+ installed="`(cd $INSTALLDIR/installed ; ls *.[sS][eE][tT]) 2>/dev/null`"
+
+ for conflict in $conflicts ; do
+ echo $installed | egrep -i "(^|[[:space:]])$conflict.set([[:space:]]|$)" 2>/dev/null > /dev/null
+ if [ $? = 0 ]; then
+ echo "Set $set conflicts with installed set $conflict"
+ ok="no"
+ break;
+ fi
+ done
+
+ if [ ! "$ok" = "" ]; then
+ continue
+ fi
+
+ dependancies="`grep depend: $set.$setname | cut -d: -f2-`"
+ installed="`(cd $INSTALLDIR/installed ; ls *.[sS][eE][tT]) 2>/dev/null`"
+
+ for depend in $dependancies ; do
+ echo $installed | egrep -i "(^|[[:space:]])$depend\.set([[:space:]]|$)" 2> /dev/null >/dev/null
+ if [ ! $? = 0 ]; then
+ echo "Set $depend must be installed before $set"
+ ok="no"
+ break;
+ fi
+ done
+
+ if [ ! "$ok" = "" ]; then
+ continue
+ fi
+
+ if [ -f "$set".00 ]; then
+ if [ -x "$INSTALLDIR/scripts/$set" ]; then
+ echo "Running deinstallation script for $set"
+ (cd $dest_dir ; INSTALLROOT=$dest_dir; export INSTALLROOT ; $INSTALLDIR/scripts/$set deinstall)
+ fi
+
+ filelist="$dest_dir/tmp/$set.files"
+ echo "Installing $set"
+ case $verbose in
+ y*|Y*)
+ cat "$set".[0-9a-z][0-9a-z] | $GUNZIP | (cd $dest_dir ; $TAR --unlink -xpvf - | tee $filelist)
+ ;;
+ *)
+ cat "$set".[0-9a-z][0-9a-z] | $GUNZIP | (cd $dest_dir ; $TAR --unlink -xpvf - >$filelist)
+ ;;
+ esac
+ echo "Generating installation information"
+ cat $filelist | awk '{ print $0 }' > $INSTALLDIR/installed/$set.files
+# cat $filelist | awk '{ print $3 $8 }' > $INSTALLDIR/installed/$set.files
+ rm $filelist
+ cp $set.$setname $INSTALLDIR/installed/
+
+# Run any install script
+
+ if [ -x "$INSTALLDIR/scripts/$set" ]; then
+ echo "Running installation script for $set"
+ (cd $dest_dir ; INSTALLROOT=$dest_dir; export INSTALLROOT ; $INSTALLDIR/scripts/$set install)
+ fi
+ else
+ echo "Set $set not available for installation"
+ fi
+ sync
+ done
+
+# Test for other set requirements
+
+ echo "Checking installed set requirements"
+
+ installed="`(cd $INSTALLDIR/installed ; ls *.[sS][eE][tT]) 2>/dev/null`"
+
+ for set in $installed; do
+ required="`grep req: $INSTALLDIR/installed/$set | cut -d: -f2- 2>/dev/null`"
+ for require in $required; do
+ echo $installed | egrep -i "(^|[[:space:]])$require.set([[:space:]]|$)" 2>/dev/null > /dev/null
+ if [ ! $? = 0 ]; then
+ echo "Set $set requires set $require"
+# break
+ fi
+ done
+ done
+}
+
+
+Deinstall_Sets()
+{
+# Make sure all the directories exist for recording the installation
+
+ INSTALLDIR=$dest_dir/var/inst
+
+# Set the distribution directory and list all the available sets
+
+ cd $INSTALLDIR/installed
+ sets=`ls *.[sS][eE][tT] 2>/dev/null | sed -e 's/.[sS][eE][tT]//'`
+ list=""
+
+ echo "Installed sets :"
+ for set in $sets; do
+ printf "$set\t"
+ list="$list $set"
+ done
+ echo ""
+
+# Prompt for the sets to deinstall
+
+ echo -n "Enter set names : "
+ read res2
+ res2=`echo "$res2" | tr "," " " | tr "[A-Z]" "[a-z]"`
+
+ echo -n "Would you like to list the files as they're removed? [n] "
+ read verbose
+
+ for set in $res2; do
+ setname="set"
+ if [ ! -f "$set"."$setname" ]; then
+ setname="SET"
+ set=`echo $set | tr [a-z] [A-Z]`
+ fi
+
+ if [ -f "$set".set ]; then
+# Test for dependancies
+
+ ok=""
+ for file in `ls $INSTALLDIR/installed/*.[sS][eE][tT] 2>/dev/null`; do
+ depend="`grep depend: $file 2>/dev/null`"
+ echo $depend | egrep -i "(^|[[:space:]])$set([[:space:]]|$)" 2>/dev/null > /dev/null
+ if [ $? = 0 ]; then
+ echo "Installed set $file depends on set $set"
+ ok="no"
+ break
+ fi
+ done
+
+ if [ ! "$ok" = "" ]; then
+ continue
+ fi
+
+ echo "Deinstalling $set"
+ if [ -x "$INSTALLDIR/scripts/$set" ]; then
+ echo "Running deinstallation script for $set"
+ (cd $dest_dir ; INSTALLROOT=$dest_dir; export INSTALLROOT ; $INSTALLDIR/scripts/$set deinstall)
+ fi
+ case $verbose in
+ y*|Y*)
+ for file in `cat $set.files`; do
+ echo $file
+ (cd $dest_dir ; rm $file) 2>/dev/null >/dev/null
+ done
+ ;;
+ *)
+ cat "$set.files" | (cd $dest_dir ; xargs rm 2>/dev/null >/dev/null )
+ ;;
+ esac
+ rm "$set.files"
+ rm "$set.set"
+ else
+ echo "Set $set not available for deinstallation"
+ fi
+ sync
+ done
+
+# Test for other set requirements
+
+ echo "Checking installed set requirements"
+
+ installed="`(cd $INSTALLDIR/installed ; ls *.[sS][eE][tT]) 2>/dev/null`"
+
+ for set in $installed; do
+ required="`grep req: $INSTALLDIR/installed/$set | cut -d: -f2- 2>/dev/null`"
+ for require in $required; do
+ echo $installed | egrep -i "(^|[[:space:]])$require.set([[:space:]]|$)" 2>/dev/null > /dev/null
+ if [ ! $? = 0 ]; then
+ echo "Set $set requires set $require"
+# break
+ fi
+ done
+ done
+}
+
+
+Select_Sets()
+{
+}
+
+
+Main_Menu()
+{
+ res1=
+ while [ "$res1" != "q" -a "$res1" != "Q" ]; do
+ echo ""
+ echo "RiscBSD (NetBSD/arm32) Installer V$VERSION"
+ echo ""
+ echo -n "1. Set distrib directory (Currently $distribdir"
+ if [ ! -d $distribdir ]; then
+ echo " - non-existant)"
+ else
+ echo ")"
+ fi
+ echo "2. Load distribution sets onto harddisc"
+ echo "3. Load distribution sets from CDROM"
+ echo "4. Show distribution sets"
+ echo "5. Show installed sets"
+ echo "6. Check sets (verify/validate)"
+ echo "7. List contents of distribution sets in $distribdir"
+ echo "8. Install distribution sets from $distribdir"
+ echo "D. Deinstall installed sets"
+ echo "R. Set root directory for install (Currently $dest_dir)"
+ echo "Q. Quit"
+ echo ""
+ echo -n "Choice : "
+ read res1
+ case "$res1" in
+ 1)
+ Get_Distrib_Dir
+ ;;
+ 2)
+ Load_Sets
+ ;;
+ 3)
+ CDROM_Sets
+ ;;
+ 4)
+ Show_Sets
+ ;;
+ 5)
+ Show_Installed_Sets
+ ;;
+ 6)
+ Check_Sets
+ ;;
+ 7)
+ List_Sets
+ ;;
+ 8)
+ Install_Sets
+ ;;
+ d|D)
+ Deinstall_Sets
+ ;;
+ r|R)
+ Get_Dest_Dir
+ ;;
+ q|Q)
+# echo "Quitting"
+ ;;
+ esac
+ done
+}
+
+
+# we know that /etc/fstab is only generated on the hard drive
+destdir=
+dest_dir=/
+if [ ! -f /etc/fstab ]; then
+ dest_dir=/mnt/
+fi
+if [ -f /etc/cdrom ]; then
+ dest_dir=/mnt/
+fi
+
+# counter for possible shared library confusion
+TAR=/usr/bin/tar
+GUNZIP=/usr/bin/gunzip
+
+distribdir=$destdir/usr/distrib
+
+#IAM=`whoami`
+#
+#if [ ! "$IAM" = "root" ]; then
+# echo "inst should be run as root"
+# exit
+#fi
+
+Main_Menu
+
+exit
diff --git a/distrib/arm32/floppies/inst-common/instbin.conf b/distrib/arm32/floppies/inst-common/instbin.conf
new file mode 100644
index 00000000000..dbeac1091bd
--- /dev/null
+++ b/distrib/arm32/floppies/inst-common/instbin.conf
@@ -0,0 +1,29 @@
+#
+# $NetBSD: instbin.conf,v 1.1 1996/05/16 19:59:07 mark Exp $
+#
+
+srcdirs bin sbin usr.bin/less usr.bin usr.sbin gnu/usr.bin
+
+progs cat chmod chown chroot cp dd df disklabel ed expr fsck_ffs ftp gawk grep
+progs gzip ifconfig init less ln ls mkdir mknod mount mount_cd9660
+progs mount_ffs mount_msdos mount_nfs mount_kernfs
+progs mv newfs ping printf pwd reboot rm route
+progs sed sh shutdown slattach strings stty sync tar test tip umount
+progs update cksum wc tee tr cut cmp xargs
+
+ln chown chgrp
+ln fsck_ffs fsck
+ln gawk awk
+ln grep egrep
+ln gzip gzcat gunzip
+ln sh -sh # init invokes the shell this way
+ln test [
+ln mount_cd9660 cd9660
+ln mount_ffs ffs
+ln mount_msdos msdos
+ln mount_nfs nfs
+ln mount_kernfs kernfs
+ln less more
+ln reboot halt
+
+libs -ledit -lutil -ltermcap -lcrypt -ll -lm
diff --git a/distrib/arm32/floppies/inst-common/list b/distrib/arm32/floppies/inst-common/list
new file mode 100644
index 00000000000..3075cf8e347
--- /dev/null
+++ b/distrib/arm32/floppies/inst-common/list
@@ -0,0 +1,90 @@
+# $NetBSD: list,v 1.1 1996/05/16 19:59:08 mark Exp $
+
+# copy the crunched binary, link to it, and kill it
+COPY ${OBJDIR}/instbin instbin
+LINK instbin bin/cat
+LINK instbin bin/chmod
+LINK instbin bin/cp
+LINK instbin bin/dd
+LINK instbin bin/df
+LINK instbin bin/ed
+LINK instbin bin/expr
+LINK instbin bin/ln
+LINK instbin bin/ls
+LINK instbin bin/mkdir
+LINK instbin bin/mv
+LINK instbin bin/pwd
+LINK instbin bin/rm
+LINK instbin bin/sh
+LINK instbin bin/stty
+LINK instbin bin/sync
+LINK instbin bin/test
+LINK instbin bin/[
+LINK instbin sbin/disklabel
+LINK instbin sbin/fsck
+LINK instbin sbin/fsck_ffs
+LINK instbin sbin/halt
+LINK instbin sbin/ifconfig
+LINK instbin sbin/init
+LINK instbin sbin/mknod
+LINK instbin sbin/mount
+LINK instbin sbin/mount_cd9660
+LINK instbin sbin/mount_ffs
+LINK instbin sbin/mount_msdos
+LINK instbin sbin/mount_nfs
+LINK instbin sbin/mount_kernfs
+LINK instbin sbin/newfs
+LINK instbin sbin/ping
+LINK instbin sbin/reboot
+LINK instbin sbin/route
+LINK instbin sbin/shutdown
+LINK instbin sbin/slattach
+LINK instbin sbin/umount
+SYMLINK /bin/cat usr/bin/awk
+SYMLINK /bin/cat usr/bin/chgrp
+SYMLINK /bin/cat usr/bin/cksum
+SYMLINK /bin/cat usr/bin/cmp
+SYMLINK /bin/cat usr/bin/cut
+SYMLINK /bin/cat usr/bin/ftp
+SYMLINK /bin/cat usr/bin/gunzip
+SYMLINK /bin/cat usr/bin/gzcat
+SYMLINK /bin/cat usr/bin/gzip
+SYMLINK /bin/cat usr/bin/grep
+SYMLINK /bin/cat usr/bin/more
+SYMLINK /bin/cat usr/bin/printf
+SYMLINK /bin/cat usr/bin/sed
+SYMLINK /bin/cat usr/bin/strings
+SYMLINK /bin/cat usr/bin/tar
+SYMLINK /bin/cat usr/bin/tee
+SYMLINK /bin/cat usr/bin/tip
+SYMLINK /bin/cat usr/bin/tr
+SYMLINK /bin/cat usr/bin/wc
+SYMLINK /bin/cat usr/bin/xargs
+SYMLINK /bin/cat usr/sbin/chown
+SYMLINK /bin/cat usr/sbin/chroot
+SYMLINK /bin/cat usr/sbin/update
+SPECIAL /bin/rm instbin
+
+# copy the MAKEDEV script and make some devices
+COPY ${DESTDIR}/dev/MAKEDEV dev/MAKEDEV
+SPECIAL cd dev; sh MAKEDEV floppy
+SPECIAL /bin/rm dev/MAKEDEV
+
+# we need the contents of /usr/mdec
+#COPYDIR ${DESTDIR}/usr/mdec usr/mdec
+
+# various files that we need in /etc for the install
+COPY ${DESTDIR}/etc/group etc/group
+COPY ${DESTDIR}/etc/master.passwd etc/master.passwd
+COPY ${DESTDIR}/etc/passwd etc/passwd
+COPY ${DESTDIR}/etc/protocols etc/protocols
+COPY ${DESTDIR}/etc/pwd.db etc/pwd.db
+COPY ${DESTDIR}/etc/services etc/services
+COPY ${DESTDIR}/etc/spwd.db etc/spwd.db
+
+# and the common installation tools
+COPY ${TOPDIR}/inst-common/dot.commonutils .commonutils
+COPY ${TOPDIR}/inst-common/termcap.vt100 usr/share/misc/termcap
+
+COPY ${TOPDIR}/inst-common/inst.sh usr/local/sbin/inst
+SPECIAL /bin/chmod 755 usr/local/sbin/inst
diff --git a/distrib/arm32/floppies/inst-common/mtree.conf b/distrib/arm32/floppies/inst-common/mtree.conf
new file mode 100644
index 00000000000..d673b106253
--- /dev/null
+++ b/distrib/arm32/floppies/inst-common/mtree.conf
@@ -0,0 +1,95 @@
+# $NetBSD: mtree.conf,v 1.1 1996/05/16 19:59:09 mark Exp $
+
+/set type=dir uname=root gname=wheel mode=0755
+# .
+.
+
+# ./bin
+bin
+# ./bin
+..
+
+# ./dev
+dev
+# ./dev
+..
+
+# ./etc
+etc
+# ./etc
+..
+
+# ./mnt
+mnt
+# ./mnt
+..
+
+# ./mnt2
+mnt2
+# ./mnt2
+..
+
+# ./kern
+kern
+# ./kern
+..
+
+# ./cdrom
+cdrom
+# ./cdrom
+..
+
+# ./sbin
+sbin
+# ./sbin
+..
+
+# ./tmp
+tmp
+# ./tmp
+..
+
+# ./usr
+usr
+
+# ./usr/bin
+bin
+# ./usr/bin
+..
+
+# ./usr/mdec
+mdec
+# ./usr/mdec
+..
+
+# ./usr/sbin
+sbin
+# ./usr/sbin
+..
+
+# ./usr/local
+local
+
+# ./usr/local/sbin
+sbin
+
+# ./usr/local
+..
+
+# ./usr
+..
+
+# ./usr/share
+share
+
+# ./usr/share/misc
+misc
+# ./usr/share/misc
+..
+
+# ./usr/share
+..
+
+# ./usr
+..
+
diff --git a/distrib/arm32/floppies/inst-common/termcap.vt100 b/distrib/arm32/floppies/inst-common/termcap.vt100
new file mode 100644
index 00000000000..57340c7000a
--- /dev/null
+++ b/distrib/arm32/floppies/inst-common/termcap.vt100
@@ -0,0 +1,49 @@
+# $NetBSD: termcap.vt100,v 1.1 1996/05/16 19:59:11 mark Exp $
+#
+# Copyright (c) 1980, 1985, 1989 The Regents of the University of California.
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions
+# are met:
+# 1. Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+# 2. Redistributions in binary form must reproduce the above copyright
+# notice, this list of conditions and the following disclaimer in the
+# documentation and/or other materials provided with the distribution.
+# 3. All advertising materials mentioning features or use of this software
+# must display the following acknowledgement:
+# This product includes software developed by the University of
+# California, Berkeley and its contributors.
+# 4. Neither the name of the University nor the names of its contributors
+# may be used to endorse or promote products derived from this software
+# without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+# ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+# SUCH DAMAGE.
+#
+# @(#)termcap.src 5.109 (Berkeley) 3/8/93
+#
+vt100|vt100-am|dec vt100 (w/advanced video):\
+ :am:mi:ms:xn:xo:\
+ :co#80:it#8:li#24:vt#3:\
+ :DO=\E[%dB:K1=\EOq:K2=\EOr:K3=\EOs:K4=\EOp:K5=\EOn:\
+ :LE=\E[%dD:RI=\E[%dC:UP=\E[%dA:ae=^O:as=^N:bl=^G:\
+ :cd=\E[J:ce=\E[K:cl=\E[H\E[J:cm=\E[%i%d;%dH:cr=^M:\
+ :cs=\E[%i%d;%dr:ct=\E[3g:do=^J:ho=\E[H:k0=\EOy:\
+ :k1=\EOP:k2=\EOQ:k3=\EOR:k4=\EOS:k5=\EOt:k6=\EOu:\
+ :k7=\EOv:k8=\EOl:k9=\EOw:kb=^H:kd=\EOB:ke=\E[?1l\E>:\
+ :kl=\EOD:kr=\EOC:ks=\E[?1h\E=:ku=\EOA:le=^H:mb=\E[5m:\
+ :md=\E[1m:me=\E[m\017:mr=\E[7m:nd=\E[C:rc=\E8:\
+ :..sa=\E[0%?%p1%p6%|%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;m%?%p9%t\016%e\017%;:\
+ :sc=\E7:se=\E[m:sf=^J:so=\E[7m:sr=\EM:st=\EH:ta=^I:\
+ :ue=\E[m:up=\E[A:us=\E[4m:
diff --git a/distrib/arm32/floppies/inst/Makefile b/distrib/arm32/floppies/inst/Makefile
new file mode 100644
index 00000000000..14f394c6cdd
--- /dev/null
+++ b/distrib/arm32/floppies/inst/Makefile
@@ -0,0 +1,8 @@
+# $NetBSD: Makefile,v 1.1 1996/05/16 19:58:54 mark Exp $
+
+TOP= ${.CURDIR}/..
+
+.include "${TOP}/Makefile.inc"
+IMAGE= inst-${REV}.fs
+
+.include "${TOP}/inst-common/Makefile.inc"
diff --git a/distrib/arm32/floppies/inst/disktab.preinstall b/distrib/arm32/floppies/inst/disktab.preinstall
new file mode 100644
index 00000000000..5fe26a7d81c
--- /dev/null
+++ b/distrib/arm32/floppies/inst/disktab.preinstall
@@ -0,0 +1,29 @@
+# Disk geometry and partition layout tables.
+# Key:
+# dt controller type
+# ty type of disk (fixed, removeable, simulated)
+# d[0-4] drive-type-dependent parameters
+# ns #sectors/track
+# nt #tracks/cylinder
+# nc #cylinders/disk
+# sc #sectors/cylinder, nc*nt default
+# su #sectors/unit, sc*nc default
+# se sector size, DEV_BSIZE default
+# rm rpm, 3600 default
+# sf supports bad144-style bad sector forwarding
+# sk sector skew per track, default 0
+# cs sector skew per cylinder, default 0
+# hs headswitch time, default 0
+# ts one-cylinder seek time, default 0
+# il sector interleave (n:1), 1 default
+# bs boot block size, default BBSIZE
+# sb superblock size, default SBSIZE
+# o[a-h] partition offsets in sectors
+# p[a-h] partition sizes in sectors
+# b[a-h] partition block sizes in bytes
+# f[a-h] partition fragment sizes in bytes
+# t[a-h] partition types (filesystem, swap, etc)
+#
+# All partition sizes reserve space for bad sector tables.
+# (5 cylinders needed for maintenance + replacement sectors)
+#
diff --git a/distrib/arm32/floppies/inst/dot.hdprofile b/distrib/arm32/floppies/inst/dot.hdprofile
new file mode 100644
index 00000000000..b5b68311738
--- /dev/null
+++ b/distrib/arm32/floppies/inst/dot.hdprofile
@@ -0,0 +1,63 @@
+# $NetBSD: dot.hdprofile,v 1.1 1996/05/16 19:58:57 mark Exp $
+#
+# Copyright (c) 1994 Christopher G. Demetriou
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions
+# are met:
+# 1. Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+# 2. Redistributions in binary form must reproduce the above copyright
+# notice, this list of conditions and the following disclaimer in the
+# documentation and/or other materials provided with the distribution.
+# 3. All advertising materials mentioning features or use of this software
+# must display the following acknowledgement:
+# This product includes software developed by Christopher G. Demetriou.
+# 4. The name of the author may not be used to endorse or promote products
+# derived from this software without specific prior written permission
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+# OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+# IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+# NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+# THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+#
+
+PATH=/sbin:/bin:/usr/bin:/usr/sbin:/
+export PATH
+TERM=vt100
+export TERM
+
+umask 022
+
+if [ "X${DONEPROFILE}" = "X" ]; then
+ DONEPROFILE=YES
+
+ echo "Checking filesystems..."
+ fsck -y
+
+ echo "Mounting filesystems..."
+ mount -a
+ mount -t kernfs /kern /kern 2>/dev/null >/dev/null
+
+ # set up some sane defaults
+ echo 'erase ^H, werase ^W, kill ^U, intr ^C'
+ stty newcrt werase ^W intr ^C kill ^U erase ^H 9600
+ echo ''
+
+ # run update, so that installed software is written as it goes.
+ update
+
+ # pull in the functions that people will use from the shell prompt.
+ . /.commonutils
+ . /.instutils
+
+ echo "Follow the installation directions to install the NetBSD"
+ echo "distribution sets."
+fi
diff --git a/distrib/arm32/floppies/inst/dot.instutils b/distrib/arm32/floppies/inst/dot.instutils
new file mode 100644
index 00000000000..46f29916203
--- /dev/null
+++ b/distrib/arm32/floppies/inst/dot.instutils
@@ -0,0 +1,157 @@
+# $NetBSD: dot.instutils,v 1.1 1996/05/16 19:58:58 mark Exp $
+#
+# Copyright (c) 1994 Christopher G. Demetriou
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions
+# are met:
+# 1. Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+# 2. Redistributions in binary form must reproduce the above copyright
+# notice, this list of conditions and the following disclaimer in the
+# documentation and/or other materials provided with the distribution.
+# 3. All advertising materials mentioning features or use of this software
+# must display the following acknowledgement:
+# This product includes software developed by Christopher G. Demetriou.
+# 4. The name of the author may not be used to endorse or promote products
+# derived from this software without specific prior written permission
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+# OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+# IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+# NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+# THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+#
+
+# Installation configuration utilites (functions), to get NetBSD configured
+# reasonably once it is installed on the hard disk. These are meant to be
+# invoked from the shell prompt, by people installing NetBSD.
+
+Configure()
+{
+ DEV=/dev
+ ETC=/etc
+ if [ ! -f /etc/fstab ]; then
+ DEV=/mnt/dev
+ ETC=/mnt/etc
+ fi
+
+ echo "You will now be prompted for information about this"
+ echo "machine. If you hit return, the default answer (in"
+ echo "brackets) will be used."
+
+ echo ""
+ echo -n "What is this machine's hostname? [unknown.host.domain] "
+ read hname
+ if [ "$hname" = "" ]; then
+ hname=unknown.host.domain
+ fi
+ echo $hname > ${ETC}/myname
+ proto_domain=`echo $hname | sed -e 's/[^.]*\.//'`
+
+ echo ""
+ echo "What domain is this machine in (this is NOT its YP"
+ echo -n "domain name)? [$proto_domain] "
+ read dname
+ if [ "$dname" = "" ]; then
+ dname=$proto_domain
+ fi
+
+ echo ""
+ if [ -e $ETC/sendmail.cf ]; then
+ echo "WARNING: A default sendmail.cf exists, and probably"
+ echo "needs to be tuned and/or replaced, to work properly at"
+ echo "your site!"
+ else
+ echo "WARNING: No default sendmail.cf installed. Did you"
+ echo "forget to install the 'etc' distribution?"
+ fi
+
+ echo "127.0.0.1 localhost localhost.$dname" > ${ETC}/hosts
+
+ echo ""
+ echo -n "Does this machine have an ethernet interface? [y] "
+ read resp
+ case "$resp" in
+ n*)
+ ;;
+ *)
+ intf=
+ while [ "$intf" = "" ]; do
+ echo -n "What is the primary interface name "
+ echo -n "(e.g. ed0, ep0, etc)? "
+ read intf
+ done
+ echo -n "What is the hostname for this interface? [$hname] "
+ read ifname
+ if [ "$ifname" = "" ]; then
+ ifname=$hname
+ fi
+ ifaddr=
+ while [ "$ifaddr" = "" ]; do
+ echo -n "What is the IP address associated with "
+ echo -n "interface ${intf}? "
+ read ifaddr
+ done
+ echo "$ifaddr $ifname `echo $ifname | sed -e s/\.$dname//`" \
+ >> ${ETC}/hosts
+
+ echo -n "Does this interface have a special netmask? [n] "
+ read resp
+ case "$resp" in
+ y*)
+ echo -n "What is the netmask? [0xffffff00] "
+ read ifnetmask
+ if [ "$ifnetmask" = "" ]; then
+ ifnetmask=0xffffff00
+ fi
+ ;;
+ *)
+ ifnetmask=
+ ;;
+ esac
+
+ echo -n "Does this interface need additional flags? [n] "
+ read resp
+ case "$resp" in
+ y*)
+ echo -n "What flags? [link0] "
+ read ifflags
+ if [ "$ifflags" = "" ]; then
+ ifflags=link0
+ fi
+ ;;
+ *)
+ ifflags=
+ ;;
+ esac
+ echo "inet $ifname $ifnetmask $ifflags" > ${ETC}/hostname.$intf
+
+ echo ""
+ echo -n "WARNING: if you have any more ethernet interfaces, "
+ echo "you will have to configure"
+ echo -n "them by hand. Read the comments in /etc/netstart to "
+ echo "learn how to do this."
+ ;;
+ esac
+
+ echo ""
+ echo -n "Making device nodes (may take a while)..."
+ cd ${DEV}
+ sh MAKEDEV all
+ echo " done."
+
+ sync
+
+ echo ""
+ echo "If you haven't already installed a kernel on the hard drive"
+ echo "using your kernel-copy floppy, do so now. Kernel"
+ echo "installation instructions can be found in the"
+ echo "installation notes."
+}
diff --git a/distrib/arm32/floppies/inst/dot.profile b/distrib/arm32/floppies/inst/dot.profile
new file mode 100644
index 00000000000..a1944936935
--- /dev/null
+++ b/distrib/arm32/floppies/inst/dot.profile
@@ -0,0 +1,59 @@
+#
+# Copyright (c) 1994 Christopher G. Demetriou
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions
+# are met:
+# 1. Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+# 2. Redistributions in binary form must reproduce the above copyright
+# notice, this list of conditions and the following disclaimer in the
+# documentation and/or other materials provided with the distribution.
+# 3. All advertising materials mentioning features or use of this software
+# must display the following acknowledgement:
+# This product includes software developed by Christopher G. Demetriou.
+# 4. The name of the author may not be used to endorse or promote products
+# derived from this software without specific prior written permission
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+# OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+# IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+# NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+# THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+#
+# $Id: dot.profile,v 1.1 1996/09/05 21:26:18 deraadt Exp $
+
+PATH=/sbin:/bin:/usr/bin:/usr/sbin:/
+export PATH
+TERM=vt100
+export TERM
+
+umask 022
+
+if [ "X${DONEPROFILE}" = "X" ]; then
+ DONEPROFILE=YES
+
+ # set up some sane defaults
+ echo 'erase ^H, werase ^W, kill ^U, intr ^C'
+ stty newcrt werase ^W intr ^C kill ^U erase ^H 9600
+ echo ''
+
+ # run update, so that installed software is written as it goes.
+ update
+
+ # mount the kern_fs so that we can examine the dmesg state
+ mount -t kernfs /kern /kern
+
+ # pull in the functions that people will use from the shell prompt.
+ . /.commonutils
+ . /.instutils
+
+ # run the installation script.
+ install
+fi
diff --git a/distrib/arm32/floppies/inst/install.sh b/distrib/arm32/floppies/inst/install.sh
new file mode 100644
index 00000000000..5d772a421d9
--- /dev/null
+++ b/distrib/arm32/floppies/inst/install.sh
@@ -0,0 +1,497 @@
+#!/bin/sh
+#
+# Copyright (c) 1994 Christopher G. Demetriou
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions
+# are met:
+# 1. Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+# 2. Redistributions in binary form must reproduce the above copyright
+# notice, this list of conditions and the following disclaimer in the
+# documentation and/or other materials provided with the distribution.
+# 3. All advertising materials mentioning features or use of this software
+# must display the following acknowledgement:
+# This product includes software developed by Christopher G. Demetriou.
+# 4. The name of the author may not be used to endorse or promote products
+# derived from this software without specific prior written permission
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+# OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+# IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+# NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+# THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+#
+# $Id: install.sh,v 1.1 1996/09/05 21:26:19 deraadt Exp $
+
+# NetBSD installation script.
+# In a perfect world, this would be a nice C program, with a reasonable
+# user interface.
+
+stty erase ^H
+
+DT=/etc/disktab # /etc/disktab
+FSTABDIR=/mnt/etc # /mnt/etc
+#DONTDOIT=echo
+
+VERSION=1.1
+FSTAB=${FSTABDIR}/fstab
+
+getresp() {
+ read resp
+ if [ "X$resp" = "X" ]; then
+ resp=$1
+ fi
+}
+
+echo "Welcome to the NetBSD ${VERSION} installation program."
+echo ""
+echo "This program is designed to help you put NetBSD on your hard disk,"
+echo "in a simple and rational way. You'll be asked several questions,"
+echo "and it would probably be useful to have your disk's hardware"
+echo "manual, the installation notes, and a calculator handy."
+echo ""
+echo "In particular, you will need to know some reasonably detailed"
+echo "information about your disk's geometry, because there is currently"
+echo "no way this this program can figure that information out."
+echo ""
+echo "As with anything which modifies your hard drive's contents, this"
+echo "program can cause SIGNIFICANT data loss, and you are advised"
+echo "to make sure your hard drive is backed up before beginning the"
+echo "installation process."
+echo ""
+echo "Default answers are displyed in brackets after the questions."
+echo "You can hit Control-C at any time to quit, but if you do so at a"
+echo "prompt, you may have to hit return. Also, quitting in the middle of"
+echo "installation may leave your system in an inconsistent state."
+echo ""
+echo -n "Proceed with installation? [n] "
+getresp "n"
+case "$resp" in
+ y*|Y*)
+ echo "Cool! Let's get to it..."
+ ;;
+ *)
+ echo ""
+ echo "OK, then. Enter 'halt' at the prompt to halt the"
+ echo "machine."
+ exit
+ ;;
+esac
+
+echo ""
+echo "To do the installation, you'll need to provide some information about"
+echo "your disk."
+echo ""
+echo "NetBSD can be installed on ST506, ESDI, IDE, or SCSI disks."
+echo -n "What kind of disk will you be installing on? [IDE] "
+getresp "IDE"
+case "$resp" in
+ esdi|ESDI|st506|ST506)
+ drivetype=wd
+ echo -n "Does it support _automatic_ sector remapping? [y] "
+ getresp "y"
+ case "$resp" in
+ n*|N*)
+ sect_fwd="sf:"
+ ;;
+ *)
+ sect_fwd=""
+ ;;
+ esac
+ ;;
+ ide|IDE)
+ drivetype=wd
+ sect_fwd=""
+ type=ST506
+ ;;
+ scsi|SCSI)
+ drivetype=sd
+ sect_fwd=""
+ type=SCSI
+ ;;
+esac
+
+# find out what units are possible for that disk, and query the user.
+driveunits=`ls /dev/${drivetype}?a | sed -e 's,/dev/\(...\)a,\1,g'`
+if [ "X${driveunits}" = "X" ]; then
+ echo "FATAL ERROR:"
+ echo "No devices for disks of type '${drivetype}'."
+ echo "This is probably a bug in the install disks."
+ echo "Exiting install program."
+ exit
+fi
+prefdrive=${drivetype}0
+
+echo ""
+echo "The following ${drivetype}-type disks are supported by this"
+echo "installation procedure:"
+echo " "${driveunits}
+echo "Note that they may not exist in _your_ machine; the list of"
+echo "disks in your machine was printed when the system was booting."
+echo ""
+while [ "X${drivename}" = "X" ]; do
+ echo -n "Which disk would like to install on? [${prefdrive}] "
+ getresp ${prefdrive}
+ otherdrives=`echo "${driveunits}" | sed -e s,${resp},,`
+ if [ "X${driveunits}" = "X${otherdrives}" ]; then
+ echo ""
+ echo "\"${resp}\" is an invalid drive name. Valid choices"
+ echo "are: "${driveunits}
+ echo ""
+ else
+ drivename=${resp}
+ fi
+done
+
+echo ""
+echo "Using disk ${drivename}."
+echo ""
+echo -n "What kind of disk is it? (one word please) [my${drivetype}] "
+getresp "my${drivetype}"
+labelname=$resp
+
+echo ""
+echo "You will now need to provide some information about your disk's"
+echo "geometry. This should either be in the User's Manual for your disk,"
+echo "or you should have written down what NetBSD printed when booting."
+echo "(Note that he geometry that's printed at boot time is preferred.)"
+echo ""
+echo "You may choose to view the initial boot messages for your system"
+echo "again right now if you like."
+echo -n "View the boot messages again? [n] "
+getresp "n"
+case "$resp" in
+ y*|Y*)
+ more /kern/msgbuf
+ ;;
+ *)
+ echo ""
+ ;;
+esac
+
+echo ""
+echo "You will now enter the disk geometry information"
+echo ""
+
+echo -n "Number of bytes per disk sector? [512] "
+getresp 512
+bytes_per_sect="$resp"
+
+echo -n "Number of disk cylinders? "
+getresp
+cyls_per_disk="$resp"
+
+echo -n "Number of disk tracks (heads) per disk cylinder? "
+getresp
+tracks_per_cyl="$resp"
+
+echo -n "Number of disk sectors per disk track? "
+getresp
+sects_per_track="$resp"
+
+cylindersize=`expr $sects_per_track \* $tracks_per_cyl`
+cylbytes=`expr $cylindersize \* $bytes_per_sect`
+disksize=`expr $cylindersize \* $cyls_per_disk`
+
+echo ""
+echo "Your disk has a total of $disksize $bytes_per_sect byte sectors,"
+echo "arranged as $cyls_per_disk cylinders which contain $cylindersize "
+echo "sectors ($cylbytes bytes) each."
+echo ""
+echo "You can specify partition sizes in cylinders ('c') or sectors ('s')."
+while [ "X${sizemult}" = "X" ]; do
+ echo -n "What units would you like to use? [cylinders] "
+ getresp cylinders
+ case "$resp" in
+ c*|C*)
+ sizemult=$cylindersize
+ sizeunit="cylinders"
+ ;;
+ s*|S*)
+ sizemult=1
+ sizeunit="sectors"
+ ;;
+ *)
+ echo ""
+ echo "Enter cylinders ('c') or sectors ('s')."
+ ;;
+ esac
+done
+
+if [ $sizeunit = "sectors" ]; then
+ echo ""
+ echo "For best disk performance, partitions should begin and end on"
+ echo "cylinder boundaries. Wherever possible, pick sizes that are"
+ echo "multiples of the cylinder size ($cylindersize sectors)."
+fi
+
+echo -n ""
+echo -n "Size of NetBSD portion of disk (in $sizeunit)? "
+getresp
+partition=$resp
+partition_sects=`expr $resp \* $sizemult`
+part_offset=0
+if [ $partition_sects -lt $disksize ]; then
+ echo -n "Offset of NetBSD portion of disk (in $sizeunit)? "
+ getresp
+ part_offset=$resp
+fi
+badspacesec=0
+if [ "$sect_fwd" = "sf:" ]; then
+ badspacecyl=`expr $sects_per_track + 126`
+ badspacecyl=`expr $badspacecyl + $cylindersize - 1`
+ badspacecyl=`expr $badspacecyl / $cylindersize`
+ badspacesec=`expr $badspacecyl \* $cylindersize`
+ echo ""
+ echo -n "Using $badspacesec sectors ($badspacecyl cylinders) for the "
+ echo "bad144 bad block table"
+fi
+
+sects_left=`expr $partition_sects - $badspacesec`
+units_left=`expr $sects_left / $sizemult`
+echo ""
+echo "There are $units_left $sizeunit left to allocate."
+echo ""
+root=0
+while [ $root -eq 0 ]; do
+ echo -n "Root partition size (in $sizeunit)? "
+ getresp
+ case $resp in
+ [1-9]*)
+ total=$resp
+ if [ $total -gt $units_left ]; then
+ echo -n "Root size is greater than remaining "
+ echo "free space on disk."
+ else
+ root=$resp
+ fi
+ ;;
+ esac
+done
+root_offset=$part_offset
+part_used=`expr $root + $badspacesec / $sizemult`
+units_left=`expr $partition - $part_used`
+echo ""
+
+swap=0
+while [ $swap -eq 0 ]; do
+ echo "$units_left $sizeunit remaining in NetBSD portion of disk."
+ echo -n "Swap partition size (in $sizeunit)? "
+ getresp
+ case $resp in
+ [1-9]*)
+ if [ $swap -gt $units_left ]; then
+ echo -n "Swap size is greater than remaining "
+ echo "free space on disk."
+ else
+ swap=$resp
+ fi
+ ;;
+ esac
+done
+swap_offset=`expr $root_offset + $root`
+part_used=`expr $part_used + $swap`
+echo ""
+
+fragsize=1024
+blocksize=8192
+$DONTDOIT mount -u /dev/rd0 /
+cat /etc/disktab.preinstall > $DT
+echo "" >> $DT
+echo "$labelname|NetBSD installation generated:\\" >> $DT
+echo " :dt=${type}:ty=winchester:\\" >> $DT
+echo -n " :nc#${cyls_per_disk}:ns#${sects_per_track}" >> $DT
+echo ":nt#${tracks_per_cyl}:\\" >> $DT
+echo " :se#${bytes_per_sect}:${sect_fwd}\\" >> $DT
+_size=`expr $root \* $sizemult`
+_offset=`expr $root_offset \* $sizemult`
+echo -n " :pa#${_size}:oa#${_offset}" >> $DT
+echo ":ta=4.2BSD:ba#${blocksize}:fa#${fragsize}:\\" >> $DT
+_size=`expr $swap \* $sizemult`
+_offset=`expr $swap_offset \* $sizemult`
+echo " :pb#${_size}:ob#${_offset}:tb=swap:\\" >> $DT
+_size=`expr $partition \* $sizemult`
+echo " :pd#${_size}:od#0:\\" >> $DT
+
+echo "You will now have to enter information about any other partitions"
+echo "to be created in the NetBSD portion of the disk. This process will"
+echo "be complete when you've filled up all remaining space in the NetBSD"
+echo "portion of the disk."
+
+while [ $part_used -lt $partition ]; do
+ part_size=0
+ units_left=`expr $partition - $part_used`
+ while [ $part_size -eq 0 ]; do
+ echo ""
+ echo -n "$units_left $sizeunit remaining in NetBSD portion of "
+ echo "the disk"
+ echo -n "Next partition size (in $sizeunit)? "
+ getresp
+ case $resp in
+ [1-9]*)
+ total=`expr $part_used + $resp`
+ if [ $total -gt $partition ]; then
+ echo -n "That would make the parition"
+ echo "too large to fit!"
+ else
+ part_size=$resp
+ part_used=$total
+ part_name=""
+ while [ "$part_name" = "" ]; do
+ echo -n "Mount point? "
+ getresp
+ part_name=$resp
+ done
+ fi
+ ;;
+ esac
+ done
+ if [ "$ename" = "" ]; then
+ ename=$part_name
+ offset=`expr $part_offset + $root + $swap`
+ _size=`expr $part_size \* $sizemult`
+ _offset=`expr $offset \* $sizemult`
+ echo -n " :pe#${_size}:oe#${_offset}" >> $DT
+ echo ":te=4.2BSD:be#${blocksize}:fe#${fragsize}:\\" >> $DT
+ offset=`expr $offset + $part_size`
+ elif [ "$fname" = "" ]; then
+ fname=$part_name
+ _size=`expr $part_size \* $sizemult`
+ _offset=`expr $offset \* $sizemult`
+ echo -n " :pf#${_size}:of#${_offset}" >> $DT
+ echo ":tf=4.2BSD:bf#${blocksize}:ff#${fragsize}:\\" >> $DT
+ offset=`expr $offset + $part_size`
+ elif [ "$gname" = "" ]; then
+ gname=$part_name
+ _size=`expr $part_size \* $sizemult`
+ _offset=`expr $offset \* $sizemult`
+ echo -n " :pg#${_size}:og#${_offset}" >> $DT
+ echo ":tg=4.2BSD:bg#${blocksize}:fg#${fragsize}:\\" >> $DT
+ offset=`expr $offset + $part_size`
+ elif [ "$hname" = "" ]; then
+ hname=$part_name
+ _size=`expr $part_size \* $sizemult`
+ _offset=`expr $offset \* $sizemult`
+ echo -n " :ph#${_size}:oh#${_offset}" >> $DT
+ echo ":th=4.2BSD:bh#${blocksize}:fh#${fragsize}:\\" >> $DT
+ part_used=$partition
+ fi
+done
+echo " :pc#${disksize}:oc#0:" >> $DT
+sync
+
+echo ""
+echo "THIS IS YOUR LAST CHANCE!!!"
+echo ""
+echo -n "Are you SURE you want NetBSD installed on your hard drive? (yes/no) "
+answer=""
+while [ "$answer" = "" ]; do
+ getresp
+ case $resp in
+ yes|YES)
+ echo ""
+ echo "Here we go..."
+ answer=yes
+ ;;
+ no|NO)
+ echo ""
+ echo -n "OK, then. enter 'halt' to halt the machine. "
+ exit
+ ;;
+ *)
+ echo -n "I want a yes or no answer... well? "
+ ;;
+ esac
+done
+
+echo ""
+echo -n "Labeling disk $drivename..."
+$DONTDOIT disklabel -w -r $drivename $labelname
+echo " done."
+
+if [ "$sect_fwd" = "sf:" ]; then
+ echo -n "Initializing bad144 badblock table..."
+ $DONTDOIT bad144 $drivename 0
+ echo " done."
+fi
+
+echo "Initializing root filesystem, and mounting..."
+$DONTDOIT newfs /dev/r${drivename}a $name
+$DONTDOIT mount -v /dev/${drivename}a /mnt
+if [ "$ename" != "" ]; then
+ echo ""
+ echo "Initializing $ename filesystem, and mounting..."
+ $DONTDOIT newfs /dev/r${drivename}e $name
+ $DONTDOIT mkdir -p /mnt/$ename
+ $DONTDOIT mount -v /dev/${drivename}e /mnt/$ename
+fi
+if [ "$fname" != "" ]; then
+ echo ""
+ echo "Initializing $fname filesystem, and mounting..."
+ $DONTDOIT newfs /dev/r${drivename}f $name
+ $DONTDOIT mkdir -p /mnt/$fname
+ $DONTDOIT mount -v /dev/${drivename}f /mnt/$fname
+fi
+if [ "$gname" != "" ]; then
+ echo ""
+ echo "Initializing $gname filesystem, and mounting..."
+ $DONTDOIT newfs /dev/r${drivename}g $name
+ $DONTDOIT mkdir -p /mnt/$gname
+ $DONTDOIT mount -v /dev/${drivename}g /mnt/$gname
+fi
+if [ "$hname" != "" ]; then
+ echo ""
+ echo "Initializing $hname filesystem, and mounting..."
+ $DONTDOIT newfs /dev/r${drivename}h $name
+ $DONTDOIT mkdir -p /mnt/$hname
+ $DONTDOIT mount -v /dev/${drivename}h /mnt/$hname
+fi
+
+echo ""
+echo "Populating filesystems with bootstrapping binaries and config files"
+$DONTDOIT tar --one-file-system -cf - . | (cd /mnt ; tar --unlink -xpf - )
+$DONTDOIT cp /tmp/.hdprofile /mnt/.profile
+
+echo ""
+echo -n "Creating an fstab..."
+echo /dev/${drivename}a / ffs rw 1 1 | sed -e s,//,/, > $FSTAB
+if [ "$ename" != "" ]; then
+ echo /dev/${drivename}e /$ename ffs rw 1 2 | sed -e s,//,/, >> $FSTAB
+fi
+if [ "$fname" != "" ]; then
+ echo /dev/${drivename}f /$fname ffs rw 1 3 | sed -e s,//,/, >> $FSTAB
+fi
+if [ "$gname" != "" ]; then
+ echo /dev/${drivename}g /$gname ffs rw 1 4 | sed -e s,//,/, >> $FSTAB
+fi
+if [ "$hname" != "" ]; then
+ echo /dev/${drivename}h /$hname ffs rw 1 5 | sed -e s,//,/, >> $FSTAB
+fi
+sync
+echo " done."
+
+echo ""
+echo ""
+echo "OK! The preliminary work of setting up your disk is now complete."
+echo ""
+echo "The remaining tasks are:"
+echo ""
+echo "To copy a NetBSD kernel to the hard drive's root filesystem."
+echo "Once accomplished, you can boot off the hard drive."
+echo ""
+echo "To load and install the NetBSD distribution sets."
+echo "Currently the hard drive's root filesystem is mounted on /mnt"
+echo ""
+echo "Consult the installation notes which will describe how to"
+echo "install the distribution sets and kernel. Post-installation"
+echo "configuration is also discussed therein."
+echo ""
+echo "GOOD LUCK!"
+echo ""
diff --git a/distrib/arm32/floppies/inst/list b/distrib/arm32/floppies/inst/list
new file mode 100644
index 00000000000..23a9fb8532e
--- /dev/null
+++ b/distrib/arm32/floppies/inst/list
@@ -0,0 +1,11 @@
+# $NetBSD: list,v 1.1 1996/05/16 19:59:01 mark Exp $
+
+# the disktab explanation file
+COPY disktab.preinstall etc/disktab.preinstall
+
+# and the installation tools
+COPY dot.profile .profile
+COPY dot.instutils .instutils
+COPY install.sh install
+COPY dot.hdprofile tmp/.hdprofile
+SPECIAL chmod 755 install
diff --git a/distrib/arm32/floppies/list2sh.awk b/distrib/arm32/floppies/list2sh.awk
new file mode 100644
index 00000000000..b92d8690460
--- /dev/null
+++ b/distrib/arm32/floppies/list2sh.awk
@@ -0,0 +1,55 @@
+# $NetBSD: list2sh.awk,v 1.1 1996/05/16 19:58:51 mark Exp $
+
+BEGIN {
+ printf("cd ${CURDIR}\n");
+ printf("\n");
+}
+/^$/ || /^#/ {
+ print $0;
+ next;
+}
+$1 == "COPY" {
+ printf("echo '%s'\n", $0);
+ printf("rm -f ${TARGDIR}/%s\n", $3);
+ printf("cp %s ${TARGDIR}/%s\n", $2, $3);
+ next;
+}
+$1 == "LINK" {
+ printf("echo '%s'\n", $0);
+ printf("rm -f ${TARGDIR}/%s\n", $3);
+ printf("(cd ${TARGDIR}; ln %s %s)\n", $2, $3);
+ next;
+}
+$1 == "SYMLINK" {
+ printf("echo '%s'\n", $0);
+ printf("rm -f ${TARGDIR}/%s\n", $3);
+ printf("(cd ${TARGDIR}; ln -s %s %s)\n", $2, $3);
+ next;
+}
+$1 == "COPYDIR" {
+ printf("echo '%s'\n", $0);
+ printf("(cd ${TARGDIR}/%s && find . ! -name . | xargs /bin/rm -rf)\n",
+ $3);
+ printf("(cd %s && find . ! -name . | cpio -pdamu ${TARGDIR}/%s)\n", $2,
+ $3);
+ next;
+}
+$1 == "SPECIAL" {
+ printf("echo '%s'\n", $0);
+ printf("(cd ${TARGDIR};");
+ for (i = 2; i <= NF; i++)
+ printf(" %s", $i);
+ printf(")\n");
+ next;
+}
+{
+ printf("echo '%s'\n", $0);
+ printf("echo 'Unknown keyword \"%s\" at line %d of input.'\n", $1, NR);
+ printf("exit 1\n");
+ exit 1;
+}
+END {
+ printf("\n");
+ printf("exit 0\n");
+ exit 0;
+}
diff --git a/distrib/arm32/floppies/runlist.sh b/distrib/arm32/floppies/runlist.sh
new file mode 100644
index 00000000000..65088762de5
--- /dev/null
+++ b/distrib/arm32/floppies/runlist.sh
@@ -0,0 +1,13 @@
+# $NetBSD: runlist.sh,v 1.1 1996/05/16 19:58:52 mark Exp $
+
+if [ "X$1" = "X-d" ]; then
+ SHELLCMD=cat
+ shift
+else
+ SHELLCMD="sh -e"
+fi
+
+( while [ "X$1" != "X" ]; do
+ cat $1
+ shift
+done ) | awk -f ${TOPDIR}/list2sh.awk | ${SHELLCMD}
diff --git a/distrib/arm32/floppies/upgr/Makefile b/distrib/arm32/floppies/upgr/Makefile
new file mode 100644
index 00000000000..ad537b8f004
--- /dev/null
+++ b/distrib/arm32/floppies/upgr/Makefile
@@ -0,0 +1,8 @@
+# $NetBSD: Makefile,v 1.1 1996/05/16 19:59:15 mark Exp $
+
+TOP= ${.CURDIR}/..
+
+.include "${TOP}/Makefile.inc"
+IMAGE= upgr-${REV}.fs
+
+.include "${TOP}/inst-common/Makefile.inc"
diff --git a/distrib/arm32/floppies/upgr/dot.hdprofile b/distrib/arm32/floppies/upgr/dot.hdprofile
new file mode 100644
index 00000000000..ba2e1b50303
--- /dev/null
+++ b/distrib/arm32/floppies/upgr/dot.hdprofile
@@ -0,0 +1,62 @@
+# $NetBSD: dot.hdprofile,v 1.1 1996/05/16 19:59:17 mark Exp $
+#
+# Copyright (c) 1994 Christopher G. Demetriou
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions
+# are met:
+# 1. Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+# 2. Redistributions in binary form must reproduce the above copyright
+# notice, this list of conditions and the following disclaimer in the
+# documentation and/or other materials provided with the distribution.
+# 3. All advertising materials mentioning features or use of this software
+# must display the following acknowledgement:
+# This product includes software developed by Christopher G. Demetriou.
+# 4. The name of the author may not be used to endorse or promote products
+# derived from this software without specific prior written permission
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+# OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+# IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+# NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+# THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+#
+
+PATH=/sbin:/bin:/usr/bin:/usr/sbin:/
+export PATH
+TERM=vt100
+export TERM
+
+umask 022
+
+if [ "X${DONEPROFILE}" = "X" ]; then
+ DONEPROFILE=YES
+
+ echo "Checking filesystems..."
+ fsck -y
+
+ echo "Mounting filesystems..."
+ mount -a
+
+ # set up some sane defaults
+ echo 'erase ^H, werase ^W, kill ^U, intr ^C'
+ stty newcrt werase ^W intr ^C kill ^U erase ^H 9600
+ echo ''
+
+ # run update, so that installed software is written as it goes.
+ update
+
+ # pull in the functions that people will use from the shell prompt.
+ . /.commonutils
+ . /.upgrutils
+
+ echo "Follow the installation directions to install the NetBSD"
+ echo "distribution sets."
+fi
diff --git a/distrib/arm32/floppies/upgr/dot.profile b/distrib/arm32/floppies/upgr/dot.profile
new file mode 100644
index 00000000000..b57227cf8bd
--- /dev/null
+++ b/distrib/arm32/floppies/upgr/dot.profile
@@ -0,0 +1,56 @@
+# $NetBSD
+#
+# Copyright (c) 1994 Christopher G. Demetriou
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions
+# are met:
+# 1. Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+# 2. Redistributions in binary form must reproduce the above copyright
+# notice, this list of conditions and the following disclaimer in the
+# documentation and/or other materials provided with the distribution.
+# 3. All advertising materials mentioning features or use of this software
+# must display the following acknowledgement:
+# This product includes software developed by Christopher G. Demetriou.
+# 4. The name of the author may not be used to endorse or promote products
+# derived from this software without specific prior written permission
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+# OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+# IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+# NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+# THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+#
+
+PATH=/sbin:/bin:/usr/bin:/usr/sbin:/
+export PATH
+TERM=vt100
+export TERM
+
+umask 022
+
+if [ "X${DONEPROFILE}" = "X" ]; then
+ DONEPROFILE=YES
+
+ # set up some sane defaults
+ echo 'erase ^H, werase ^W, kill ^U, intr ^C'
+ stty newcrt werase ^W intr ^C kill ^U erase ^H 9600
+ echo ''
+
+ # run update, so that installed software is written as it goes.
+ update
+
+ # pull in the functions that people will use from the shell prompt.
+ . /.commonutils
+ . /.upgrutils
+
+ # run the upgrade script.
+ upgrade
+fi
diff --git a/distrib/arm32/floppies/upgr/dot.upgrutils b/distrib/arm32/floppies/upgr/dot.upgrutils
new file mode 100644
index 00000000000..b0d102d5bd9
--- /dev/null
+++ b/distrib/arm32/floppies/upgr/dot.upgrutils
@@ -0,0 +1,58 @@
+# $NetBSD: dot.upgrutils,v 1.1 1996/05/16 19:59:19 mark Exp $
+#
+# Copyright (c) 1994 Christopher G. Demetriou
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions
+# are met:
+# 1. Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+# 2. Redistributions in binary form must reproduce the above copyright
+# notice, this list of conditions and the following disclaimer in the
+# documentation and/or other materials provided with the distribution.
+# 3. All advertising materials mentioning features or use of this software
+# must display the following acknowledgement:
+# This product includes software developed by Christopher G. Demetriou.
+# 4. The name of the author may not be used to endorse or promote products
+# derived from this software without specific prior written permission
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+# OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+# IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+# NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+# THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+#
+
+# Upgrade cleanup utilites (functions), to make sure a recently-upgraded
+# system is safely runnable. These are meant to be invoked from the shell
+# prompt, by people installing NetBSD.
+
+Cleanup()
+{
+ upgrade_dir=/
+
+ if [ ! -f /etc/fstab ]; then
+ upgrade_dir=/mnt
+ fi
+
+ echo "Cleaning up miscellaneous files in /etc..."
+ mv $upgrade_dir/etc/rc.bak $upgrade_dir/etc/rc
+ chroot $upgrade_dir /usr/sbin/pwd_mkdb -p /etc/master.passwd
+ chroot $upgrade_dir /bin/rm /etc/sendmail.fc > /dev/null 2>&1
+ sync
+ echo "Done."
+
+ echo ""
+ echo "All that's left to do now is to install a new NetBSD kernel"
+ echo "on your hard disk. You should now halt your machine using"
+ echo "the 'halt' command. Once the machine is halted, replace the"
+ echo "installation floppy with the kernel-copy floppy and hit any"
+ echo "key to reboot. Use the kernel-copy floppy to copy a kernel"
+ echo "to your hard disk."
+}
diff --git a/distrib/arm32/floppies/upgr/list b/distrib/arm32/floppies/upgr/list
new file mode 100644
index 00000000000..9848d23b4f6
--- /dev/null
+++ b/distrib/arm32/floppies/upgr/list
@@ -0,0 +1,8 @@
+# $NetBSD: list,v 1.1 1996/05/16 19:59:20 mark Exp $
+
+# and the upgrade tools
+COPY dot.profile .profile
+COPY dot.upgrutils .upgrutils
+COPY upgrade.sh upgrade
+COPY dot.hdprofile tmp/.hdprofile
+SPECIAL chmod 755 upgrade
diff --git a/distrib/arm32/floppies/upgr/upgrade.sh b/distrib/arm32/floppies/upgr/upgrade.sh
new file mode 100644
index 00000000000..9e9c4dc0cbf
--- /dev/null
+++ b/distrib/arm32/floppies/upgr/upgrade.sh
@@ -0,0 +1,255 @@
+#!/bin/sh
+#
+# $NetBSD: upgrade.sh,v 1.1 1996/05/16 19:59:21 mark Exp $
+#
+# Copyright (c) 1994 Christopher G. Demetriou
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions
+# are met:
+# 1. Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+# 2. Redistributions in binary form must reproduce the above copyright
+# notice, this list of conditions and the following disclaimer in the
+# documentation and/or other materials provided with the distribution.
+# 3. All advertising materials mentioning features or use of this software
+# must display the following acknowledgement:
+# This product includes software developed by Christopher G. Demetriou.
+# 4. The name of the author may not be used to endorse or promote products
+# derived from this software without specific prior written permission
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+# OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+# IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+# NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+# THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+#
+
+# NetBSD upgrade script.
+# In a perfect world, this would be a nice C program, with a reasonable
+# user interface.
+
+stty erase ^H
+
+DT=/etc/disktab # /etc/disktab
+FSTABDIR=/mnt/etc # /mnt/etc
+#DONTDOIT=echo
+
+VERSION=1.1
+FSTAB=${FSTABDIR}/fstab
+
+getresp() {
+ read resp
+ if [ "X$resp" = "X" ]; then
+ resp=$1
+ fi
+}
+
+echo "Welcome to the NetBSD ${VERSION} upgrade program."
+echo ""
+echo "This program is designed to help you put the new version of NetBSD"
+echo "on your hard disk, in a simple and rational way. To upgrade, you"
+echo "must have plenty of free space on all partitions which will be"
+echo "upgraded. If you have at least 1MB free on your root partition,"
+echo "and several free on your /usr patition, you should be fine."
+echo ""
+echo "As with anything which modifies your hard drive's contents, this"
+echo "program can cause SIGNIFICANT data loss, and you are advised"
+echo "to make sure your hard drive is backed up before beginning the"
+echo "upgrade process."
+echo ""
+echo "Default answers are displyed in brackets after the questions."
+echo "You can hit Control-C at any time to quit, but if you do so at a"
+echo "prompt, you may have to hit return. Also, quitting in the middle of"
+echo "the upgrade may leave your system in an inconsistent (and unusable)"
+echo "state."
+echo ""
+echo -n "Proceed with upgrade? [n] "
+getresp "n"
+case "$resp" in
+ y*|Y*)
+ echo "Cool! Let's get to it..."
+ ;;
+ *)
+ echo ""
+ echo "OK, then. Enter 'halt' at the prompt to halt the"
+ echo "machine."
+ exit
+ ;;
+esac
+
+# find out what units are possible, and query the user.
+driveunits=`ls /dev/[sw]d?a | sed -e 's,/dev/\(...\)a,\1,g'`
+if [ "X${driveunits}" = "X" ]; then
+ echo "FATAL ERROR:"
+ echo "No disk devices."
+ echo "This is probably a bug in the install disks."
+ echo "Exiting install program."
+ exit
+fi
+
+echo ""
+echo "The following disks are supported by this upgrade procedure:"
+echo " "${driveunits}
+echo "If your system was previously completely contained within the"
+echo "disks listed above (i.e. if your system didn't occupy any space"
+echo "on disks NOT listed above), this upgrade disk can upgrade your"
+echo "system. If it cannot, hit Control-C at the prompt."
+echo ""
+while [ "X${drivename}" = "X" ]; do
+ echo -n "Which disk contains your root partion? "
+ getresp
+ otherdrives=`echo "${driveunits}" | sed -e s,${resp},,`
+ if [ "X${driveunits}" = "X${otherdrives}" ]; then
+ echo ""
+ echo "\"${resp}\" is an invalid drive name. Valid choices"
+ echo "are: "${driveunits}
+ echo ""
+ else
+ drivename=${resp}
+ fi
+done
+
+echo ""
+echo "Root partition is on ${drivename}a."
+
+echo ""
+echo "Would you like to upgrade your file systems to the new file system"
+echo -n "format? [y] "
+getresp "y"
+case "$resp" in
+ n*|N*)
+ echo ""
+ echo "You should upgrade your file systems with 'fsck -c 2'"
+ echo "as soon as is feasible, because the new file system"
+ echo "code is better-tested and more performant."
+ upgradefs=NO
+ ;;
+ *)
+ upgradefs=YES
+ ;;
+esac
+
+if [ $upgradefs = YES ]; then
+ echo ""
+ echo "Upgrading the file system on ${drivename}a..."
+
+ fsck -p -c 2 /dev/r${drivename}a
+ if [ $? != 0 ]; then
+ echo "FATAL ERROR: FILE SYSTEM UPGRADE FAILED."
+ echo "You should probably reboot the machine, fsck your"
+ echo "disk(s), and try the upgrade procedure again."
+ exit 1
+ fi
+ echo "Done."
+fi
+
+echo ""
+echo "Mounting root partition on /mnt..."
+mount /dev/${drivename}a /mnt
+if [ $? != 0 ]; then
+ echo "FATAL ERROR: MOUNT FAILED."
+ echo "You should verify that your system is set up as you"
+ echo "described, and re-attempt the upgrade procedure."
+ exit 1
+fi
+echo "Done."
+
+if [ $upgradefs = YES ]; then
+ echo ""
+ echo -n "Copying new fsck binary to your hard disk..."
+ if [ ! -d /mnt/sbin ]; then
+ mkdir /mnt/sbin
+ fi
+ cp /sbin/fsck /mnt/sbin/fsck
+ if [ $? != 0 ]; then
+ echo "FATAL ERROR: COPY FAILED."
+ echo "It in unclear why this error would occur. It looks"
+ echo "like you may end up having to upgrade by hand."
+ exit 1
+ fi
+ echo " Done."
+
+ echo ""
+ echo "Re-mounting root partition read-only..."
+ mount -u -o ro /dev/${drivename}a /mnt
+ if [ $? != 0 ]; then
+ echo "FATAL ERROR: RE-MOUNT FAILED."
+ echo "It in unclear why this error would occur. It looks"
+ echo "like you may end up having to upgrade by hand."
+ exit 1
+ fi
+ echo "Done."
+
+ echo ""
+ echo "Upgrading the rest of your file systems..."
+ chroot /mnt fsck -p -c 2
+ if [ $? != 0 ]; then
+ echo "FATAL ERROR: FILE SYSTEM UPGRADE(S) FAILED."
+ echo "You should probably reboot the machine, fsck your"
+ echo "file system(s), and try the upgrade procedure"
+ echo "again."
+ exit 1
+ fi
+ echo "Done."
+
+ echo ""
+ echo "Re-mounting root partition read-write..."
+ mount -u -o rw /dev/${drivename}a /mnt
+ if [ $? != 0 ]; then
+ echo "FATAL ERROR: RE-MOUNT FAILED."
+ echo "It in unclear why this error would occur. It looks"
+ echo "like you may end up having to upgrade by hand."
+ exit 1
+ fi
+ echo "Done."
+fi
+
+echo ""
+echo "Updating boot blocks on ${drivename}..."
+disklabel -r $drivename > /mnt/tmp/${drivename}.label
+if [ $? != 0 ]; then
+ echo "FATAL ERROR: READ OF DISK LABEL FAILED."
+ echo "It in unclear why this error would occur. It looks"
+ echo "like you may end up having to upgrade by hand."
+ exit 1
+fi
+disklabel -R -B $drivename /mnt/tmp/${drivename}.label
+if [ $? != 0 ]; then
+ echo "FATAL ERROR: UPDATE OF DISK LABEL FAILED."
+ echo "It in unclear why this error would occur. It looks"
+ echo "like you may end up having to upgrade by hand."
+ exit 1
+fi
+echo "Done."
+
+echo ""
+echo "Copying bootstrapping binaries and config files to the hard drive..."
+$DONTDOIT cp /mnt/.profile /mnt/.profile.bak
+$DONTDOIT tar --exclude etc --one-file-system -cf - . | (cd /mnt ; tar --unlink -xpf - )
+$DONTDOIT mv /mnt/etc/rc /mnt/etc/rc.bak
+$DONTDOIT cp /tmp/.hdprofile /mnt/.profile
+
+echo ""
+echo "Mounting remaining partitions..."
+chroot /mnt mount -at ffs > /dev/null 2>&1
+echo "Done."
+
+echo ""
+echo ""
+echo "OK! The preliminary work of setting up your disk is now complete,"
+echo "and you can now upgrade the actual NetBSD software."
+echo ""
+echo "Right now, your hard disk is mounted on /mnt. You should consult"
+echo "the installation notes to determine how to load and install the new"
+echo "NetBSD distribution sets, and how to clean up after the upgrade"
+echo "software, when you are done."
+echo ""
+echo "GOOD LUCK!"
+echo ""