Add diclaimer of copyright to _osname() manual page.
[unix-history] / etc / etc.i386 / inst2.profile
index 09d65bc..92058a0 100644 (file)
@@ -1,5 +1,58 @@
-HOME=/
-PATH=:/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:
+stty status '^T'
+trap : 2
+trap : 3
+HOME=/; export HOME
+PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/distbin; export PATH
+if [ -e /fastboot ]
+then
+       echo Fast boot ... skipping disk checks
+else
+       echo Automatic reboot in progress...
+       fsck -p
+       case $? in
+       0)
+               ;;
+       2)
+               exit 1
+               ;;
+       4)
+               echo; echo README README README README README README README
+               echo
+               echo "NOTE: The above errors are expected if this is the"
+               echo "first time you have booted from the hard disk after"
+               echo "completing the floppy install"; echo
+               echo "Automatic file system check changed the root file system"
+               echo "The system must halt for these corrections to take effect"
+               echo
+               reboot
+               echo "reboot failed... help!"
+               exit 1
+               ;;
+       8)
+               echo "Automatic file system check failed... help!"
+               exit 1
+               ;;
+       12)
+               echo "Reboot interrupted"
+               exit 1
+               ;;
+       130)
+               exit 1
+               ;;
+       *)
+               echo "Unknown error in reboot"
+               exit 1
+               ;;
+       esac
+fi
+
+trap 2
+trap "echo 'Reboot interrupted'; exit 1" 3
+umount -a >/dev/null 2>&1
+mount -a -t nonfs
+rm -f /fastboot
+(cd /var/run && { rm -rf -- *; cp /dev/null utmp; chmod 644 utmp; })
+
 TERM=pc3       # terminal emulator, for elvis
 TERMCAP="\
 pc3|ibmpc3:li#25:co#80:am:bs:bw:eo:cd=\E[J:ce=\E[K:cl=\Ec:cm=\E[%i%2;%2H:\
 TERM=pc3       # terminal emulator, for elvis
 TERMCAP="\
 pc3|ibmpc3:li#25:co#80:am:bs:bw:eo:cd=\E[J:ce=\E[K:cl=\Ec:cm=\E[%i%2;%2H:\
@@ -7,56 +60,52 @@ do=\E[B:ho=\E[;H:nd=\E[C:up=\E[A:so=\E[7m:se=\E[0m:us=\E[4m:ue=\E[0m:\
 :ac=l\332q\304k\277x\263j\331m\300w\302u\264v\301t\303n\305:\
 :kb=^h:kh=\E[Y:ku=\E[A:kd=\E[B:kl=\E[D:kr=\E[C:"
 OPSYSTEM=FreeBSD
 :ac=l\332q\304k\277x\263j\331m\300w\302u\264v\301t\303n\305:\
 :kb=^h:kh=\E[Y:ku=\E[A:kd=\E[B:kl=\E[D:kr=\E[C:"
 OPSYSTEM=FreeBSD
-RELEASE="1.0 BETA"
+RELEASE="1.1"
 export TERMCAP
 export TERMCAP
-export PATH
 export TERM
 export TERM
-export HOME
 echo "${OPSYSTEM} Base System Release ${RELEASE}"
 echo "\a"
 echo "Congratulations, you've got ${OPSYSTEM} on the hard disk!"
 echo "${OPSYSTEM} Base System Release ${RELEASE}"
 echo "\a"
 echo "Congratulations, you've got ${OPSYSTEM} on the hard disk!"
-echo ""
+echo
+echo "Press the return key for more installation instructions"
+read junkit
+echo
 echo "To finish installation:"
 echo "To finish installation:"
-echo "Pick a temporary directory by running set_tmp_dir.  make sure it's"
+echo "Pick a temporary directory by running set_tmp_dir.  Make sure it's"
 echo "in a place with lots of space, probably under /usr."
 echo "Then, load the remaining distribution files into that temporary"
 echo "directory by issuing one of the following commands:"
 echo "in a place with lots of space, probably under /usr."
 echo "Then, load the remaining distribution files into that temporary"
 echo "directory by issuing one of the following commands:"
-echo "       load_fd"
-echo "       load_qic_tape"
-echo "       load_scsi_tape"
+echo
+echo " load_fd         load_qic_tape   load_scsi_tape"
+echo
 echo "or by fetching the files with ftp (see the installation notes for"
 echo "information on how to do that)."
 echo "or by fetching the files with ftp (see the installation notes for"
 echo "information on how to do that)."
-echo ""
+echo
 echo "Once this is complete, extract the distribution files by issuing the"
 echo "command 'extract <distribution>'  where <distribution> is the base name"
 echo "of the distribution files, e.g. 'base10'."
 echo "Once this is complete, extract the distribution files by issuing the"
 echo "command 'extract <distribution>'  where <distribution> is the base name"
 echo "of the distribution files, e.g. 'base10'."
-echo ""
+echo
 echo "Once all of the filesets you wish to install have been extracted,"
 echo "enter the command 'configure' to finish setting up the system"
 echo " "
 echo "Once all of the filesets you wish to install have been extracted,"
 echo "enter the command 'configure' to finish setting up the system"
 echo " "
-echo "If you should wish to uninstall ${OPSYSTEM}, delete the partition by using the "
-echo " DOS 5 FDISK program. If installed on the entire drive, use the FDISK/MBR"
-echo " to remove the ${OPSYSTEM} bootstrap from the drive."
+echo "If you should wish to uninstall ${OPSYSTEM}, delete the partition by using the"
+echo "DOS 5 FDISK program. If installed on the entire drive, use the FDISK/MBR"
+echo "to remove the ${OPSYSTEM} bootstrap from the drive."
 echo 'erase ^?, werase ^H, kill ^U, intr ^C'
 stty newcrt werase \b intr \ 3 kill \15 erase \7f 9600
 echo 'erase ^?, werase ^H, kill ^U, intr ^C'
 stty newcrt werase \b intr \ 3 kill \15 erase \7f 9600
-mount -at ufs
-update
 umask 0
 set_tmp_dir()
 {
        def_tmp_dir=`pwd`
 umask 0
 set_tmp_dir()
 {
        def_tmp_dir=`pwd`
-       if [ "$def_tmp_dir" = "/" ]; then
-               def_tmp_dir=/usr/distrib
-       fi
-       echo -n "what dir should be used for temporary files? [$def_tmp_dir] "
+       [ "$def_tmp_dir" = "/" ] && def_tmp_dir=/usr/distrib
+       echo -n "Copy files to which directory? [${def_tmp_dir}] "
        read tmp_dir
        read tmp_dir
-       if [ "$tmp_dir" = "" ]; then
-               tmp_dir=$def_tmp_dir
-       fi
+       [ ! "$tmp_dir" ] && tmp_dir=$def_tmp_dir
        if [ ! -d "$tmp_dir" ]; then
                /bin/rm -rf $tmp_dir
                mkdir -p $tmp_dir
        fi
        if [ ! -d "$tmp_dir" ]; then
                /bin/rm -rf $tmp_dir
                mkdir -p $tmp_dir
        fi
+       echo
 }
 tmp_dir()
 {
 }
 tmp_dir()
 {
@@ -68,16 +117,191 @@ tmp_dir()
 load_fd()
 {
        tmp_dir
 load_fd()
 {
        tmp_dir
-       which=
-       while [ "$which" != "a" -a "$which" != "b" ]; do
-               echo -n "read from which floppy drive?  [a or b] "
-               read which
+       drive=
+       altdrive=
+       subdir=
+       while [ -z "$drive" ]; do
+               echo -n "Read from which drive (or ? for help)? [c] "
+               read answer junk
+               case "${answer:-c}" in
+               a*b|A*B)        
+                       drive=A; altdrive=B
+                       ;;
+               b*a|B*A)        
+                       drive=B; altdrive=A
+                       ;;
+               a*|A*)  
+                       drive=A; altdrive=A
+                       ;;
+               b*|B*)  
+                       drive=B; altdrive=B
+                       ;;
+               c*|C*)
+                       while read data; do
+                               msdos_device=`expr X"$data" : 'X[       ]*\([^  ]*\)[^M]*pcfs'`
+                               msdos_dir=`expr X"$data" : 'X[  ]*[^    ]*[     ]*\([^  ]*\)'`
+                               [ "${msdos_device}" ] && break
+                       done </etc/fstab
+                       if [ ! "$msdos_device" ]; then
+                               echo
+                               echo    "Cannot find MS-DOS in filesystem table"
+                               continue
+                       fi
+                       drive=C; altdrive=C
+                       while :; do
+                               echo
+                               echo -n "Read from which MS-DOS drive C: directory? [/] "
+                               read resp junk
+                               newdir=$(echo "${resp:-/}" | \
+                               awk '{ sub(/^[Cc]*:*/, ""); gsub(/\\/, "/"); gsub(/^\/*/, ""); gsub(/\/*$/, ""); print $0 }')
+                               if [ -d ${msdos_dir}/${newdir} ]; then
+                                       subdir=$newdir
+                                       break
+                               else
+                                       echo "C:/${newdir}: No such directory"
+                               fi
+                       done
+                       ;;
+               q*|Q*)  
+                       drive=q
+                       ;;
+               \?*)    
+                       echo
+                       echo "Enter:            To:"
+                       echo "------            ---"
+                       echo "  a               Read from floppy drive A:"
+                       echo "  b               Read from floppy drive B:"
+                       echo "  c               Read from MS-DOS hard drive C:"
+                       echo "  ab              Alternate between A: and B:, starting with A:"
+                       echo "  ba              Alternate between A: and B:, starting with B:"
+                       echo "  q               Quit"
+                       echo
+                       ;;
+               esac
        done
        done
-       while echo -n "Insert floppy (hit ^C to terminate, enter to load): "
+       verbose=-v
+       interactive=-i
+       if [ "$drive" = "C" ]; then
+               dir=${msdos_dir}
+       elif [ "$drive" != "q" ]; then
+               dir=/tmp/floppy
+               [ -d $dir ] && umount $dir >/dev/null 2>&1
+               [ -f $dir ] && rm -f $dir
+               mkdir -p $dir
+       fi
+       while [ "$drive" != "q" ]
        do
        do
-               read foo
-               mread "$which:*.*" .
+               device=/dev/fd0
+               [ "$drive" = "B" ] && device=/dev/fd1
+               [ "$drive" = "C" ] && device=${msdos_device}
+               echo; 
+               if [ "$drive" != "C" ]; then
+                       echo    "Insert floppy in drive $drive:, then press RETURN to copy files,"
+                       echo -n "or enter option (? for help): "
+               else
+                       echo -n "Press RETURN to copy files, or enter option (? for help): "
+               fi
+               read answer junk
+               case "${answer:-g}" in
+               c*|C*)
+                       if [ "$drive" != "C" ]; then
+                               echo "Cannot change directory: not reading from MS-DOS drive C:"
+                       else
+                               echo
+                               echo -n "Read from which MS-DOS drive C: directory? [/${subdir}] "
+                               read resp junk
+                               [ ! "$resp" ] && resp="/$subdir"
+                               absolute=`expr X"$resp" : 'X[Cc]*:*\([/\]\)'`
+                               subsub=$(echo "${resp}" | \
+                               awk '{ sub(/^[Cc]*:*/, ""); gsub(/\\/, "/"); gsub(/^\/*/, ""); gsub(/\/*$/, ""); print $0 }')
+                               if [ "$absolute" -o ! "$subdir" ]; then
+                                       newsub=$subsub
+                               else
+                                       newsub=$subdir/$subsub
+                               fi
+                               if [ -d ${dir}/${newsub} ]; then
+                                       subdir=$newsub
+                               else
+                                       echo "C:/${newsub}: No such directory"
+                               fi
+                       fi
+                       ;;
+               g*|G*)  
+                       sync
+                       if [ "$drive" = "C" ]; then
+                               [ "$verbose" ] &&
+                               { echo; echo "Please wait.  Copying files from MS-DOS C:/${subdir}"; }
+                               cp ${msdos_dir}/${subdir}/* .
+                               sync
+                       elif mount -t pcfs $verbose $device $dir; then 
+                               [ "$verbose" ] && 
+                               { echo; echo "Please wait.  Copying files to disk..."; }
+                               cp $interactive $dir/* .
+                               sync
+                               umount $dir
+                               tmp=$drive; drive=$altdrive; altdrive=$tmp
+                       fi
+                       ;;
+               i*|I*)  
+                       tmp=$interactive; interactive=; [ -z "$tmp" ] && interactive=-i
+                       tmp=on; [ -z "$interactive" ] && tmp=off
+                       echo "interactive mode is $tmp"
+                       ;;
+               l*|L*)
+                       sync
+                       [ "$verbose" ] && echo "Directory of ${drive}:/${subdir}"
+                       if [ "$drive" = "C" ]; then
+                               ls -l $dir/${subdir}
+                       else
+                               umount $dir >/dev/null 2>&1
+                               if mount -t pcfs $device $dir; then 
+                                       ls -l $dir/${subdir}
+                                       umount $dir
+                               fi
+                       fi
+                       ;;
+               o*|O*)  
+                       tmp=$drive; drive=$altdrive; altdrive=$tmp
+                       ;;
+               q*|Q*)  
+                       drive=q
+                       ;;
+               s*|S*)  
+                       echo; echo -n "tmp_dir is set to $tmp_dir"
+                       [ "$tmp_dir" != "`pwd`" ] && echo -n " (physically `pwd`)"
+                       echo; echo "Free space in tmp_dir:"
+                       df -k .
+                       echo -n "Reading from drive $drive:"
+                       [ "$drive" != "$altdrive" ] && echo -n " and drive $altdrive:"
+                       echo
+                       tmp=on; [ -z "$verbose" ] && tmp=off
+                       echo "Verbose mode is $tmp"
+                       tmp=on; [ -z "$interactive" ] && tmp=off
+                       echo "Interactive mode is $tmp"
+                       ;;
+               v*|V*)  
+                       tmp=$verbose; verbose=; [ -z "$tmp" ] && verbose=-v
+                       tmp=on; [ -z "$verbose" ] && tmp=off
+                       echo "verbose mode is $tmp"
+                       ;;
+               \?)     
+                       echo
+                       echo "Enter:            To:"
+                       echo "-----             ---"
+                       echo "(just RETURN)     Copy files from ${drive}:/${subdir} to $tmp_dir"
+                       echo "  c               Change directory of MS-DOS drive C:"
+                       echo "  i               Toggle interactive mode (cp -i)"
+                       echo "  l               List directory of current drive"
+                       echo "  o               Read from alternate floppy drive"
+                       echo "  q               Quit"
+                       echo "  s               Show status"
+                       echo "  v               Toggle verbose mode"
+                       echo 
+                       ;;
+               esac
        done
        done
+       echo "Working directory: `pwd`"
+       unset verbose answer drive altdrive device dir subdir tmp interactive
 }
 load_qic_tape()
 {
 }
 load_qic_tape()
 {
@@ -99,24 +323,32 @@ extract()
        echo -n "Would you like to be verbose about this? [n] "
        read verbose
        case $verbose in
        echo -n "Would you like to be verbose about this? [n] "
        read verbose
        case $verbose in
-               y*|Y*)
-                       tarverbose=--verbose
-                       ;;
-               *)
-                       tarverbose=
-                       ;;
+       y*|Y*)
+               tarverbose=--verbose
+               ;;
+       *)
+               tarverbose=
+               ;;
        esac
        esac
-       cat "$@"* | gunzip | (cd / ; tar --extract --file - --unlink --preserve-permissions ${tarverbose} )
-
+       #XXX ugly hack to eliminate busy files, copy them to /tmp and use them
+       #from there...
+       cp -p /bin/cat /usr/bin/gunzip /usr/bin/tar /tmp
+       
+       for i in $*; do
+               /tmp/cat "$i"* | 
+               /tmp/gunzip |
+               (cd / ; /tmp/tar --extract --file - --preserve-permissions ${tarverbose} )
+       done
+       rm -f /tmp/cat /tmp/gunzip /tmp/tar
        sync
 }
 configure()
 {
        sync
 }
 configure()
 {
-       echo    "You will now be prompted for information about this"
+       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    "machine.  If you hit return, the default answer (in"
        echo    "brackets) will be used."
 
-       echo    ""
+       echo
        echo -n "What is this machine's hostname? [unknown.host.domain] "
        read hname
 
        echo -n "What is this machine's hostname? [unknown.host.domain] "
        read hname
 
@@ -126,8 +358,8 @@ configure()
        echo $hname > /etc/myname
        proto_domain=`echo $hname | sed -e 's/[^.]*\.//'`
        
        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
+       echo    "What domain is this machine in (this is NOT its YP"
        echo -n "domain name)? [$proto_domain] "
        read dname
 
        echo -n "domain name)? [$proto_domain] "
        read dname
 
@@ -135,45 +367,13 @@ configure()
                dname=$proto_domain
        fi
 
                dname=$proto_domain
        fi
 
-#      echo -n "Setting up domain name in sendmail.cf..."
-#      sed -e "s/YOUR_DOMAIN_GOES_HERE/$dname/" \
-#              < /etc/sendmail.cf_proto > /etc/sendmail.cf
-#      echo    " done."
-#
-#      echo -n "Freezing sendmail.cf..."
-#      /usr/sbin/sendmail -bz
-#      echo    " done."
-#
-#      echo    "\a"
-#      echo    "WARNING: you should look over the /etc/sendmail.cf file,"
-#      echo    "make sure things are set up properly, then re-freeze"
-#      echo    "it with the command '/usr/sbin/sendmail -bz'."
-#
-#      echo    ""
-#      echo    "Building aliases database..."
-#      newaliases
-#      echo    "\a"
-#      echo    "WARNING: you should look over the /etc/aliases file,"
-#      echo    "make sure things are set up properly, then re-build"
-#      echo    "it with the command 'newaliases'."
-
-#      cp /etc/sendmail.cf_proto /etc/sendmail.cf
-
-#      echo    "\a"
-#      echo    "WARNING: sendmail will puke on your carpet when the machine"
-#      echo    "starts up.  If you don't want it to keep doing this, either"
-#      echo    "turn it off in /etc/rc, or give it a reasonable"
-#      echo    "/etc/sendmail.cf file."
-
-#      echo    "127.0.0.1     localhost" > /etc/hosts
-
-       echo    ""
+       echo
        echo -n "Does this machine have an ethernet interface? [y] "
        read resp
        case "$resp" in
        echo -n "Does this machine have an ethernet interface? [y] "
        read resp
        case "$resp" in
-               n*)
-                ;;
-        *)
+       n*)
+               ;;
+       *)
                intf=
                while [ "$intf" = "" ]; do
                        echo -n "What is the primary interface name (i.e. we0, etc.)? "
                intf=
                while [ "$intf" = "" ]; do
                        echo -n "What is the primary interface name (i.e. we0, etc.)? "
@@ -195,45 +395,45 @@ configure()
                echo -n "Does this interface have a special netmask? [n] "
                read resp
                case "$resp" in
                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=
-                               ;;
+               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
                esac
                
                echo -n "Does this interface need additional flags? [n] "
                read resp
                case "$resp" in
-                       y*)
-                               echo -n "What flags? [llc0] "
-                               read ifflags
-                               if [ "$ifflags" = "" ]; then
-                                       ifflags=llc0
-                               fi
-                               ;;
-                       *)
-                               ifflags=
-                               ;;
+               y*)
+                       echo -n "What flags? [llc0] "
+                       read ifflags
+                       if [ "$ifflags" = "" ]; then
+                               ifflags=llc0
+                       fi
+                       ;;
+               *)
+                       ifflags=
+                       ;;
                esac
                
                echo "inet $ifname $ifnetmask $ifflags" > /etc/hostname.$intf
 
                esac
                
                echo "inet $ifname $ifnetmask $ifflags" > /etc/hostname.$intf
 
-               echo    "\a"
-               echo    "WARNING: if you have any more ethernet interfaces, you"
+               echo    "\a"
+               echo    "WARNING: if you have any more ethernet interfaces, you"
                echo    "will have to configure them by hand.  Read the comments"
                echo    "in /etc/netstart to learn how to do this"
                echo    "will have to configure them by hand.  Read the comments"
                echo    "in /etc/netstart to learn how to do this"
-                ;;
+               ;;
        esac
 
        sync
 
        esac
 
        sync
 
-       echo    ""
+       echo
        echo    "OK.  You should be completely set up now."
        echo    "You should now reboot your machine by issuing the 'reboot' command"
        echo    "after removing anything that happens to be in your floppy drive."
        echo    "OK.  You should be completely set up now."
        echo    "You should now reboot your machine by issuing the 'reboot' command"
        echo    "after removing anything that happens to be in your floppy drive."