#! /bin/gsh # # This is a script that builds a bootable system given the components # of a partial v2.0.6, plus an available v2.0.4 distribution. It is # an interim hack. # # Devin Reade, September 1997. # # $Id: fudgeinstall,v 1.10 2012/08/26 02:54:59 gdr Exp $ # What is our release directory? (The second one must be HFS, and # may be the same as the first.) setenv RELDIR /gno setenv RELDIR2 /gno-hfs setenv RELBOOT /gno.boot # What is the "root" filesystem for the currently running GNO? setenv ROOT /trenco3/v.206 # Where are the GNO (and other) sources? setenv SRC /src setenv DIST /dist # Where do we keep the Finder.Data, Finder.Root, and icons files # that are created on the GS and copied over to the GNO boot disk? # Unfortunately, we can't put these into the repository because of # their resource forks (unless we were to binscii them) setenv BINSRC /scratch/gnoboot.bins # We need a scratch file for some operations setenv JUNKFILE /tmp/finstall.junk #================================== # Create the directories we need. Unfortunately, gsh is too stupid to # even allow us multiline commands by escaping the newline, so we have # to call install many times. echo "creating directories" install -dV $RELDIR2/HFSinclude install -dV $RELDIR/Icons install -dV $RELDIR/System/Desk.Accs install -dV $RELDIR/System/Drivers install -dV $RELDIR/System/System.Setup install -dV $RELDIR/bin install -dV $RELDIR/dev install -dV $RELDIR/doc install -dV $RELDIR/etc install -dV $RELDIR/home/root install -dV $RELDIR/lang/orca/shell install -dV $RELDIR/lang/orca/languages install -dV $RELDIR/lib/orcacdefs install -dV $RELDIR/lib/rinclude install -dV $RELDIR/sbin install -dV $RELDIR/usr/ainclude install -dV $RELDIR/usr/bin # when we finally get a working cp(1) again, we can eliminate creating # of the /usr/include and /HFSinclude directories. install -dV $RELDIR/usr/include/arpa install -dV $RELDIR/usr/include/gno install -dV $RELDIR/usr/include/machine install -dV $RELDIR/usr/include/net install -dV $RELDIR/usr/include/netinet install -dV $RELDIR/usr/include/protocols install -dV $RELDIR/usr/include/rpc install -dV $RELDIR/usr/include/sys install -dV $RELDIR2/HFSinclude/net install -dV $RELDIR2/HFSinclude/netinet install -dV $RELDIR2/HFSinclude/sys install -dV $RELDIR/usr/games install -dV $RELDIR/usr/guest/operator install -dV $RELDIR/usr/lib/tmac install -dV $RELDIR/usr/man/man1 install -dV $RELDIR/usr/man/man2 install -dV $RELDIR/usr/man/man3 install -dV $RELDIR/usr/man/man4 install -dV $RELDIR/usr/man/man5 install -dV $RELDIR/usr/man/man6 install -dV $RELDIR/usr/man/man7 install -dV $RELDIR/usr/man/man8 install -dV $RELDIR/usr/man/cat1 install -dV $RELDIR/usr/man/cat2 install -dV $RELDIR/usr/man/cat3 install -dV $RELDIR/usr/man/cat4 install -dV $RELDIR/usr/man/cat5 install -dV $RELDIR/usr/man/cat6 install -dV $RELDIR/usr/man/cat7 install -dV $RELDIR/usr/man/cat8 install -dV $RELDIR/usr/orca/bin install -dV $RELDIR/usr/sbin install -dV $RELDIR/var/adm install -dV $RELDIR/var/adm/newuser/skel install -dV $RELDIR/var/run install -dV $RELDIR/var/spool echo "installing files in /" # kern done install -V $SRC/gno/verbatim/initrc $RELDIR echo "installing files in /HFSinclude" install -V /HFSinclude/net/*.h $RELDIR2/HFSinclude/net install -V /HFSinclude/netinet/*.h $RELDIR2/HFSinclude/netinet install -V /HFSinclude/sys/*.h $RELDIR2/HFSinclude/sys echo "installing files in /Icons" install -V $BINSRC/Icons/GNO.Icon $RELDIR/Icons # These ones should eventually be installed as part of the 'release' # target. echo "installing files in /System" install -V $BINSRC/System/Desk.Accs/GNOSnooperII $RELDIR/System/Desk.Accs install -V $BINSRC/System/Desk.Accs/SuspDA $RELDIR/System/Desk.Accs install -V $BINSRC/System/Desk.Accs/TMTerm2.v1.0 $RELDIR/System/Desk.Accs/TMTerm install -V $BINSRC/System/Drivers/FilePort $RELDIR/System/Drivers install -V $BINSRC/System/Drivers/FilePort.Data $RELDIR/System/Drivers install -V $BINSRC/System/Drivers/NullPort $RELDIR/System/Drivers install -V $BINSRC/System/System.Setup/GNOBug $RELDIR/System/System.Setup install -V $BINSRC/System/System.Setup/SIM $RELDIR/System/System.Setup echo "installing files in /bin" # aroff done # binprint done # cat done # center done install -V /usr/orca/bin/chmod $RELDIR/bin # chtyp done # cmp done install -V /bin/compress $RELDIR/bin install -V /bin/cp $RELDIR/bin install -V /bin/date $RELDIR/bin # df done install -V /bin/du $RELDIR/bin install -V /bin/echo $RELDIR/bin install -V /bin/egrep $RELDIR/bin # false done install -V /bin/fgrep $RELDIR/bin install -V /bin/freeze $RELDIR/bin install -V /bin/grep $RELDIR/bin # gsh done # head done install -V /bin/hostname $RELDIR/bin install -V /bin/init $RELDIR/bin # kill done install -V /bin/less $RELDIR/bin install -V /bin/ls $RELDIR/bin install -V /bin/mkdir $RELDIR/bin install -V /bin/more $RELDIR/bin # mv is actually cp install -V /bin/passwd $RELDIR/bin install -V /usr/bin/eps $RELDIR/bin/ps install -V /bin/purge $RELDIR/bin # pwd done # rmdir done # sleep done # split done install -V /bin/strings $RELDIR/bin install -V /bin/stty $RELDIR/bin install -V /bin/su $RELDIR/bin # tail done install -V /bin/tar $RELDIR/bin # tee done # test done install -V /bin/time $RELDIR/bin install -V /usr/local/bin/touch $RELDIR/bin # tr done # true done # uname done install -V /bin/uncompress $RELDIR/bin # uniq done install -V /bin/vi $RELDIR/bin # wc done # yes done # echo "installing files in /dev" # /dev/modem done # /dev/null done # /dev/printer done echo "installing files in /etc" # don't need cronlog, crontab yet install -V /etc/freeze.cnf $RELDIR/etc # gettytab done install -V $SRC/gno/verbatim/etc/glogin $RELDIR/etc install -V $SRC/gno/verbatim/etc/group $RELDIR/etc install -V $SRC/gno/verbatim/etc/hosts $RELDIR/etc install -V $SRC/gno/verbatim/etc/inittab $RELDIR/etc install -V $SRC/gno/verbatim/etc/motd $RELDIR/etc echo >> $RELDIR/etc/motd echo -n 'GNO release build date: ' >> $RELDIR/etc/motd date >> $RELDIR/etc/motd install -V $SRC/gno/verbatim/etc/networks $RELDIR/etc install -V $SRC/gno/verbatim/etc/namespace $RELDIR/etc install -V $SRC/gno/verbatim/etc/passwd $RELDIR/etc install -V $SRC/gno/verbatim/etc/rchost $RELDIR/etc install -V /etc/syslog.conf $RELDIR/etc install -V $SRC/gno/verbatim/etc/termcap $RELDIR/etc install -V $SRC/gno/verbatim/etc/tty.config $RELDIR/etc install -V $SRC/gno/verbatim/etc/ttys $RELDIR/etc touch $RELDIR/etc/wtmp; chtyp -tbin -a0 $RELDIR/etc/wtmp echo "installing files in /home/root" install -V $SRC/gno/verbatim/home/root/gshrc $RELDIR/home/root # echo "installing files in /lib" # install 13/libc $RELDIR/lib # install 13/lsaneglue $RELDIR/lib # install 13/orcalib $RELDIR/lib # install 13/sysfloat $RELDIR/lib echo "installing files in /lib/orcacdefs" install -V $SRC/gno/orcacdefs/defaults.h $RELDIR/lib/orcacdefs echo "installing files in /sbin" install -V /usr/sbin/initd $RELDIR/sbin # renram5 done echo "installing files in /usr/bin" # apropos done # asml should be copied from compile # assemble should be copied from compile # awk done # basename done # catrez done # cksum done # colcrt done # cmpl should be copied from compile install -V /usr/local/bin/coff $RELDIR/usr/bin # compile done install -V /usr/bin/copycat $RELDIR/usr/bin install -V /usr/bin/cpp $RELDIR/usr/bin # cut done # ctags done install -V /usr/bin/diff $RELDIR/usr/bin # dirname done install -V /usr/local/bin/dmake $RELDIR/usr/bin # fmt done # getvers done # help done # install done # last done install -V /usr/bin/launch $RELDIR/usr/bin # link done # lseg done # man done # nroff done # removerez done # rlogin done # rsh done install -V /bin/script $RELDIR/usr/bin # sed done install -V /usr/bin/setvers $RELDIR/usr/bin install -V /usr/bin/unshar $RELDIR/usr/bin install -V /usr/bin/uptime $RELDIR/usr/bin # whatis done # whereis done # who done # whois done install -V /usr/bin/yankit $RELDIR/usr/bin echo "installing files in /usr/ainclude" chtyp -lasm $SRC/gno/ainclude/m* install -V $SRC/gno/ainclude/m* $RELDIR/usr/ainclude echo "installing files in /lib/rinclude" chtyp -lrez $SRC/gno/rinclude/*.rez install -V $SRC/gno/rinclude/*.rez $RELDIR/lib/rinclude echo "installing files in /usr/include" # The cd is (maybe) necessary due to PR#110 cd $SRC/gno/include; install -V *.h $RELDIR/usr/include install -V $SRC/gno/include/arpa/*.h $RELDIR/usr/include/arpa install -V $SRC/gno/include/gno/*.h $RELDIR/usr/include/gno install -V $SRC/gno/include/machine/*.h $RELDIR/usr/include/machine install -V $SRC/gno/include/net/*.h $RELDIR/usr/include/net install -V $SRC/gno/include/netinet/*.h $RELDIR/usr/include/netinet install -V $SRC/gno/include/protocols/*.h $RELDIR/usr/include/protocols install -V $SRC/gno/include/rpc/*.h $RELDIR/usr/include/rpc install -V $SRC/gno/include/sys/*.h $RELDIR/usr/include/sys cd $SRC/gno/include; chtyp -lcc $RELDIR/usr/include/*.h chtyp -lcc $RELDIR/usr/include/arpa/*.h chtyp -lcc $RELDIR/usr/include/gno/*.h chtyp -lcc $RELDIR/usr/include/machine/*.h chtyp -lcc $RELDIR/usr/include/net/*.h chtyp -lcc $RELDIR/usr/include/netinet/*.h chtyp -lcc $RELDIR/usr/include/protocols/*.h chtyp -lcc $RELDIR/usr/include/rpc/*.h chtyp -lcc $RELDIR/usr/include/sys/*.h echo "installing files in /usr/lib" install -V $SRC/gno/doc/describe/describe.src $RELDIR/usr/lib # libcontrib done # libcrypt done install -V /usr/lib/curses.lib $RELDIR/usr/lib/libcurses # libedit IS MISSING # libnetdb done # libsim IS MISSING # libtermcap done # libutil done # liby done install -V $SRC/gno/build.tools/dmake.startup $RELDIR/usr/lib/startup.mk # /usr/lib/tmac/tmac.an done # /usr/lib/tmac/tmac.s done echo "installing files in /usr/orca/bin" # describe done install -V 17/occ $RELDIR/usr/orca/bin # udl done # install man pages # We have to do a cd here because it seems that there is a 2k upper limit # on the number of bytes on the command line. Exceeding this causes a # crash. See PR#110. echo "installing files in /usr/man/man1" cd $SRC/gno/usr.man/man1; install -V *.1 $RELDIR/usr/man/man1 echo "installing files in /usr/man/man2" cd $SRC/gno/usr.man/man2; install -V *.2 $RELDIR/usr/man/man2 echo "installing files in /usr/man/man3" cd $SRC/gno/usr.man/man3; install -V *.3 $RELDIR/usr/man/man3 echo "installing files in /usr/man/man4" cd $SRC/gno/usr.man/man4; install -V *.4 $RELDIR/usr/man/man4 echo "installing files in /usr/man/man5" cd $SRC/gno/usr.man/man5; install -V *.5 $RELDIR/usr/man/man5 echo "installing files in /usr/man/man6" cd $SRC/gno/usr.man/man6; install -V *.6 $RELDIR/usr/man/man6 echo "installing files in /usr/man/man7" cd $SRC/gno/usr.man/man7; install -V *.7 $RELDIR/usr/man/man7 echo "installing files in /usr/man/man8" cd $SRC/gno/usr.man/man8; install -V *.8 $RELDIR/usr/man/man8 echo "installing files in /usr/sbin" # catman done install -V /usr/sbin/cron $RELDIR/usr/sbin # descu done # descc done # getty done install -V /usr/sbin/initd $RELDIR/usr/sbin # login done # lpc? install -V /usr/sbin/lpd $RELDIR/usr/sbin # makewhatis done install -V /usr/sbin/mktmp $RELDIR/usr/sbin # newuser done # newuserv done install -V /usr/sbin/runover $RELDIR/usr/sbin install -V $SRC/gno/verbatim/usr/sbin/slpscrpt.direct $RELDIR/usr/sbin install -V /usr/sbin/uptimed $RELDIR/usr/sbin echo "installing files in /var/adm/newuser" install -V $SRC/gno/verbatim/var/adm/newuser/newid $RELDIR/var/adm/newuser install -V $SRC/gno/verbatim/var/adm/newuser/skel/glogin $RELDIR/var/adm/newuser/skel install -V $SRC/gno/verbatim/var/adm/newuser/skel/gshrc $RELDIR/var/adm/newuser/skel echo "creating log files" touch $RELDIR/var/adm/messages touch $RELDIR/var/adm/debug touch $RELDIR/var/adm/utmp $RELDIR/var/adm/wtmp $RELDIR/var/adm/lastlog chtyp -tbin -a0 $RELDIR/var/adm/utmp $RELDIR/var/adm/wtmp $RELDIR/var/adm/lastlog # We make the .so links at user installation time. We leave the comments in # from the file /src/gno/usr.man/mkso.data, but strip the comments out of # all of the others. echo "creating the /usr/man/mkso.data file" install $SRC/gno/usr.man/mkso.data $RELDIR/usr/man/mkso.data cat $DIST/install/mkso.* | egrep -v -e '^#' > $JUNKFILE msort $JUNKFILE >> $RELDIR/usr/man/mkso.data # We won't use these directories, but they should be created for the user echo "creating /usr/local hierarchy" install -dV $RELDIR/usr/local/bin install -dV $RELDIR/usr/local/doc install -dV $RELDIR/usr/local/etc install -dV $RELDIR/usr/local/include install -dV $RELDIR/usr/local/lib install -dV $RELDIR/usr/local/man/man1 install -dV $RELDIR/usr/local/man/man2 install -dV $RELDIR/usr/local/man/man3 install -dV $RELDIR/usr/local/man/man4 install -dV $RELDIR/usr/local/man/man5 install -dV $RELDIR/usr/local/man/man6 install -dV $RELDIR/usr/local/man/man7 install -dV $RELDIR/usr/local/man/man8 install -dV $RELDIR/usr/local/man/cat1 install -dV $RELDIR/usr/local/man/cat2 install -dV $RELDIR/usr/local/man/cat3 install -dV $RELDIR/usr/local/man/cat4 install -dV $RELDIR/usr/local/man/cat5 install -dV $RELDIR/usr/local/man/cat6 install -dV $RELDIR/usr/local/man/cat7 install -dV $RELDIR/usr/local/man/cat8 install -dV $RELDIR/usr/local/sbin echo "done"