|
DataMuseum.dkPresents historical artifacts from the history of: Regnecentalen RC-900 |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about Regnecentalen RC-900 Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - download
Length: 21903 (0x558f) Types: TextFile Notes: UNIX file Names: »INSTALL«
└─⟦19aea28d9⟧ Bits:30004649 ISC 3.0.1 Patch Disk Rel. 2.0 (5.25 inch) └─⟦19aea28d9⟧ UNIX Filesystem └─⟦this⟧ »install/INSTALL« └─⟦5a9f1bdbd⟧ Bits:30004698 RC900 Environment Rel. 2.0 (5.25 inch) └─⟦5a9f1bdbd⟧ UNIX Filesystem └─⟦this⟧ »install/INSTALL« └─⟦a1684274c⟧ Bits:30004650 ISC 3.0.1 Patch Disk Rel. 2.0 (3.5 inch) └─⟦a1684274c⟧ UNIX Filesystem └─⟦this⟧ »install/INSTALL« └─⟦de58d8f44⟧ Bits:30004699 RC900 Environment Rel. 2.0 (3.5 inch) └─⟦de58d8f44⟧ UNIX Filesystem └─⟦this⟧ »install/INSTALL«
# Copyrighted as an unpublished work. # (c) Copyright INTERACTIVE Systems Corporation 1991 # All rights reserved. # # RESTRICTED RIGHTS: # # These programs are supplied under a license. They may be used, # disclosed, and/or copied only as permitted under such license # agreement. Any copy must contain the above copyright notice and # this restricted rights notice. Use, copying, and/or disclosure # of the programs is strictly prohibited unless otherwise provided # in the license agreement. # # ident "@(#)INSTALL 2.63 - 91/09/19" # UIaware=${UIaware:-0} PART2ok=${PART2ok:-no} [ "${UIaware}" -eq 1 ] && export UIaware BEEP pkgs PART2ok # UI tag UIout=/tmp/UIout.$$ # # NOTE: UI-awareness must be tested on both sides! # The "UIaware=1" flag means that this script was invoked by a system # with an active UI server (who will handle output requests to the screen) # # However, we must also check that the component scripts that are # run during the course of installation are also "UI-aware", # i.e., that if they require user input, it is handled in a UI-approved # manner (using the proper ui calls instead of "echo/read's"). # The latter check is done by searching the package's "copyright" script # for the "UIaware" flag; if it is found, the "PART2ok" var is set to "yes" # It is assumed that *all* the package's scripts are UI-aware. # printv() { # if INSTALL was invoked by sysadm/UI, we cannot just echo # information to the screen. When we enter INSTALL, the file # listing window has been displayed/selected, and we are at # cursor position 0,0. To display messages, use this function. if [ "${UIaware}" -eq 1 -a "${PART2ok}" = "yes" ] then ui print \"${1}\\\n\" >&3 else echo "${1}" >&3 fi } getpkgname() { # set the packagename strings if [ -f $MNTPATH/$pkg/install/BUGFIX ] then SUBSET=`cat $MNTPATH/$pkg/install/BUGFIX` fi PKGNAME=`cat $MNTPATH/$pkg/install/${pkg}.name` export PKGNAME } chk4input() { # Check the copyright script for the "UIaware" flag. If it # exists, we assume that *all* the installation scripts # know about ui, and set the PART2ok flag to "yes". Then # the script output will be captured & displayed in a ui # window; otherwise, the screen will be cleared and the # scripts run in a subshell. # initialize PART2ok flag PART2ok=no # hedge our bets ... # FK, check all for the time being for i in preinstall setup postinstall unsetup puninstall cleanup do test -f $MNTPATH/$pkg/install/$i || continue grep 'UIaware' $MNTPATH/$pkg/install/$i >/dev/null 2>&1 || return done # FK, end [ ! -f $MNTPATH/$pkg/install/copyright ] && return if grep "UIaware" $MNTPATH/$pkg/install/copyright >/dev/null 2>&1 then PART2ok=yes fi } getmulti() { # sets $pkgs string to what user wants to install ALLPKGS=$pkgs # not used by sysadm/UI - package is done SCREEN=/tmp/SCREEN$$ # via a separate form; the "$pkgs" variable nbrpkgs=$1 # is set by the time we get here! echo "This Package Contains the following: \n" > $SCREEN npkg=0 for pkg in $ALLPKGS do getpkgname npkg=`expr $npkg + 1` echo " ${npkg}. ${PKGNAME:-$pkg}"| sed 's/-[ ]*Version.*$//'>> $SCREEN done [ -x /usr/bin/tput ] && tput clear cat $SCREEN rm -f $SCREEN echo "\nEnter a list of numbers separated by spaces for those modules" echo "you want to install, or enter \"n\" for NONE, or enter \"all\" to" echo "install ALL modules: \c" read zz if [ "$zz" = "all" -o "$zz" = "" ]; then return 0; fi echo pkgs= pkgnum=1 for pkg in $ALLPKGS do set $zz while [ -n "$1" ] do if [ "$1" = "$pkgnum" ] then pkgs="$pkgs $pkg" break fi shift done pkgnum=`expr $pkgnum + 1` done } yesorno() { # return 0 for yes, 1 for no QUESTION="$*" while : do echo "$QUESTION (y/n)? \c" read ans case "$ans" in y*|Y*) return 0 ;; n*|N*) return 1 ;; *) echo '\nPlease answer "y" or "n".\n' ;; esac done } adddriver () { # ask about a driver and configure it in if desired. cd /etc/drivers/$1 2>/dev/null || return 1 [ -f description ] && cat description >> $CONF/kconfig.d/description ${CONF}/bin/idcheck -p $1 > /dev/null 2>&1 if [ $? != 0 ] then # delete the old driver configuration files, so that # the major device number is recalculated ${CONF}/bin/idinstall -k -d $1 >/dev/null 2>&1 fi # FK, added -e so SCO doesn't destruct the floppy disk ${CONF}/bin/idinstall -k -a -e $1 >/dev/null 2>&1 if [ $? != 0 ] then if [ "${UIaware}" -eq 1 ] then ui variable set Object \"${1}\" show_message %drvErr %drvErrH else echo "\n\tThe installation may not complete due to an error in the" echo "$1 driver installation." fi return 1 fi } # Get the next diskette of an installable package. # Returns 1 if user cancelled installation, 0 if diskette in drive. getdisk() { # use $1 as package name, $2 is disk to ask for. cd / while : do /etc/umount $MNTDEV >/dev/null 2>&1 if [ "${UIaware}" -eq 1 -a "${PART2ok}" = "yes" ] then [ "${BEEP}" = "yes" ] && ui beep pkgname=`expr "${1}" : '^\(.\{1,70\}\).*$'` ui call chgdsk_do \"$pkgname\" \"$2\" ui cancelled || return 1 # make sure diskette is in drive and is accessible diskette_ok -r $MNTDEV || return 1 else echo "Please remove the floppy from the drive and insert" echo "The $1 $2." echo "Type <return> when ready: \c" read answer fi /etc/mount -r $MNTDEV $MNTPATH && break if [ "${UIaware}" -eq 1 -a "${PART2ok}" -eq "yes" ] then show_message %wrgDsk %wrgDskH else echo "\n\tWARNING▶07◀▶07◀\nThis is not the correct disk." fi done return 0 } confirmupdate() { # see if this is already installed, ask user # FK, check for old PKG name # [ -f /usr/options/$pkg.name ] || return 0 case "$pkg" in *.ISC | *.SCO) oldpkg=`expr x"$pkg" : 'x\(.*\)\....$'` ;; *) oldpkg="" ;; esac if test -n "$oldpkg" -a -f /usr/options/$oldpkg.name then FK="$oldpkg" elif test -f /usr/options/$pkg.name then FK="$pkg" else return 0 fi # FK, end alreadyinstalled=1 if [ "${UIaware}" -eq 1 ] # UI scoping test then # FK ui variable set Object \"`cat /usr/options/${pkg}.name`\" ui variable set Object \"`cat /usr/options/${FK}.name`\" ui variable set Obj2 \"${PKGNAME}\" ui clrinfo question %dupPkg %dupPkgH %generic_help && return 1 ui variable set Object \"$PKGNAME\" ui infomsg %addpkg3W else echo "\t\t**WARNING**▶07◀▶07◀" # FK cat /usr/options/$pkg.name cat /usr/options/$FK.name echo "is already installed" yesorno "Do you want to replace this package with\n$PKGNAME" || return 1 fi return 0 } cantinstall() { # give message about it TMPOUT=$SCRIPTS/ins$$ echo " **ERROR**" >$TMPOUT echo ${PKGNAME} >>$TMPOUT echo "cannot be installed -- Not enough space on the hard disk." >>$TMPOUT echo "There are $2 blocks available on the $1 filesystem --" >>$TMPOUT echo "$3 blocks are needed." >>$TMPOUT if [ "${UIaware}" -eq 1 ] then show_message $TMPOUT %bigPkgH else echo "▶07◀▶07◀" cat $TMPOUT fi rm -f $TMPOUT } checkspace() { # see if there's enough disk for $1 package ROOTneeds=0 ROOTspace=`expr "\`df / 2>/dev/null\`" : '.*: *\([0-9]*\)'` if [ $alreadyinstalled -eq 1 ] then updatespace=`expr "\`df / 2>/dev/null\`" : '.*: *\([0-9]*\)'` [ "$updatespace" -ge 2000 ] && return 0 cantinstall "" $updatespace "At least 2000" return 1 fi [ ! -f $MNTPATH/$pkg/install/TOTALSIZE ] && return 0 # (for now) while read blocks fsname do if /etc/mount | grep /$fsname >/dev/null 2>&1 then space=`expr "\`df /$fsname 2>/dev/null\`" : '.*: *\([0-9]*\)'` if [ "$space" -le "$blocks" ] then cantinstall /$fsname $space $blocks return 1 fi else ROOTneeds=`expr $ROOTneeds + $blocks` if [ "$ROOTspace" -lt "$ROOTneeds" ] then cantinstall root $ROOTneeds $ROOTspace return 1 fi fi done < $MNTPATH/$pkg/install/TOTALSIZE [ $? -eq 1 ] && return 1 return 0 } getmntdev() { # find mount device for MNTDEV in $1 /dev/diskette /dev/install do [ -b $MNTDEV ] && return 0 done echo "**ERROR** Can't find mount device" exit 1 } getpkgorder() { # put packages in the correct order # NOTE: ISCpkg.sh contains this same code! Any changes # made to this routine should also be propagated to this # script! (reason: sysadm/UI does package selection via # form, before disk-based INSTALL is called.) if [ -f install/MULSUBS ] then # multiple subsets pkgs=`cat install/MULSUBS` else # just one pkgs=`ls | sed '/install/d'` fi export pkgs # FK, remove imposible pkgs test -x /usr/lbin/is_isc || return 0 # let user decide if /usr/lbin/is_isc; then NONO=", SCO" else NONO=", ISC" fi pkgs=` for pkg in $pkgs do getpkgname if echo "$PKGNAME" | grep "$NONO" >/dev/null then : else echo "$pkg" fi done` # FK, end } runif() { # run a script if it's there, with any arguments supplied RUNSCRIPT=$SCRIPTS/$1 [ -f $RUNSCRIPT ] || return 0 if [ ${UIaware} = 1 -a "${PART2ok}" = "yes" ] then # no input required, send output to UI window # ui infomsg \"@4${1} routine.....@0\" if [ ! -x $RUNSCRIPT ] then # can't eval unless executable /bin/chmod u+x $RUNSCRIPT # only user perms switched on set_chmod=1 # remember to reset ... else set_chmod=0 fi eval $RUNSCRIPT $2 > $SCRIPTS/runmsg$$ 2>&1 # also capture stderr rc=$? # can't use pipe, need intermediate rc [ $set_chmod = 1 ] && /bin/chmod u-x $RUNSCRIPT while read line do ui print \"${line}\\\n\" done < $SCRIPTS/runmsg$$ if [ $rc -gt 0 ] then ui errmsg %instFail ui waitkey fi /bin/rm -f $SCRIPTS/runmsg$$ ui clrinfo else # no change for pre-UI (old style) scripts # echo "Running $1 routine ...." /bin/sh ${RUNSCRIPT} $2 rc=$? fi return $rc } # clean up after a package has been installed (or aborted) pkg_cleanup() { # $1 is the UI error message (if instErr=1) [ "${pkg}" = "${lastpkg}" ] && /etc/umount $MNTDEV >/dev/null 2>&1 if [ "${UIaware}" -eq 1 ] # server running then if [ "${PART2ok}" = "yes" ] then shortName=`echo ${PKGNAME} | cut -c1-42` ui variable set Object \"$shortName\" if [ "${instErr}" -eq 0 ] then ui infomsg %instOK ui waitkey # let user read msgs in window + inst OK fi else echo "" echo "Installation of ${PKGNAME}" if [ "${instErr}" -eq 1 ] then echo "has been aborted due to errors." else echo "is complete." fi echo "Press <RETURN> to continue ...\c" read junk ui screen load $SAVESCR ui window current main ui vstate current NORMAL fi else echo "Installation of ${PKGNAME} is complete." fi /bin/rm -rf $SCRIPTS >/dev/null 2>&1 } # START HERE: $0 called with $1 and $2 if [ "${UIaware}" -eq 1 ] then MNTDEV="${1}" else getmntdev $1 fi export MNTDEV MNTPATH=${2:-/install}; export MNTPATH INSDIR=/usr/lib/installed CONF=${CONF:-/etc/conf}; export CONF SCRIPTS=/tmp/instpkg$$ export SCRIPTS SAVESCR=${SCRIPTS}/scr$$ # safe, since SCRIPTS dir is blasted unset GETPKG [ -d ${INSDIR} ] || mkdir ${INSDIR} && chmod 755 ${INSDIR} [ -d ${INSDIR}/Files ] || mkdir ${INSDIR}/Files && chmod 755 ${INSDIR}/Files [ -d ${INSDIR}/Remove ] || mkdir ${INSDIR}/Remove && chmod 755 ${INSDIR}/Remove rm -f /usr/lbin/uncompress cp $MNTPATH/install/uncompress /usr/lbin rm -f /usr/lbin/compress ln /usr/lbin/uncompress /usr/lbin/compress rm -f /usr/lbin/zcat ln /usr/lbin/uncompress /usr/lbin/zcat if [ -f ${MNTPATH}/install/lilwhat.Z ] then if [ ! -x /usr/lbin/lilwhat ] then cp ${MNTPATH}/install/lilwhat.Z /usr/lbin /usr/lbin/uncompress /usr/lbin/lilwhat.Z fi fi if [ -f ${MNTPATH}/install/is_isc ] then if [ ! -x /usr/lbin/is_isc ] then cp ${MNTPATH}/install/is_isc /usr/lbin fi if [ ! -x /usr/lbin/is_sco ] then ln -f /usr/lbin/is_isc /usr/lbin/is_sco fi fi # setup list of packages (default, only one) cd $MNTPATH # Get the packages on this diskette # disks with more than one subset have a file specifying the order they # get installed in. ################## older versions may be sans this file ############# # make sure that they are in the correct order. Subsets that require more # than one diskette MUST be last in the list. ################################## #[ "${UIaware}" -eq 1 ] && ui infomsg \"before getpkgorder pkgs is: $pkgs.....\" [ "${UIaware}" -ne 1 ] && getpkgorder set $pkgs lastpkg=`eval echo \\$$#` nbr=$# #[ "${UIaware}" -eq 1 ] && ui infomsg \"before getmulti pkgs is: $pkgs.....\" [ "${UIaware}" -ne 1 -a $nbr -gt 1 ] && getmulti $nbr cd / abort=0 for pkg in $pkgs do export pkg alreadyinstalled=0 thisdisk=1 instErr=0 getpkgname if [ "${UIaware}" -eq 1 ] then pkgname=`expr "${PKGNAME}" : '^\(.\{1,60\}\)'` ui variable set Object \"${pkgname}\" if [ $abort -eq 1 ] then ui clrinfo question %instCont %instAbortH inContHlp || { instErr=1; pkg_cleanup; break; } abort=0 fi ui infomsg %addpkg3W chk4input # is user input required by other installation scripts? elif [ $nbr -eq 1 ] # skip this section with a UI system, because then # user already confirmed on the pkg select form yesorno "Install $PKGNAME" || continue fi confirmupdate || continue trap "trap '' 1 2 3 9 15; cd /; rm -rf $SCRIPTS; /etc/umount $MNTDEV >/dev/null 2>&1; exit 1" 1 2 3 15 rm -fr $SCRIPTS mkdir -p $SCRIPTS checkspace $pkg || continue # checkspace uses $SCRIPTS tmp file # # Set up screen. # If no input will be required by *any* of the scripts (PART2ok=yes) # then we can capture output in a ui window; otherwise, or if the # scripts assume control of the screen, we need to save & clear # the screen. # if [ "${UIaware}" -eq 1 ] then ui clrinfo if [ "${PART2ok}" = "yes" ] then ui call addpkg2_do # file list window else ui window current SCREEN ui screen save $SAVESCR ui vstate current PROMPT # for light cyan on black ui cls fi fi # copy all the scripts off the disk. (delete scripts from the last set) cp $MNTPATH/$pkg/install/* $SCRIPTS runif dependencies || { instErr=1; pkg_cleanup; continue; } runif auth $pkg || { instErr=1; pkg_cleanup; continue; } runif copyright runif preinstall || { instErr=1; pkg_cleanup; continue; } lastdisk=`cat $SCRIPTS/NBRDISKS` # save the old /etc/drivers [ -d /etc/drivers ] && mv /etc/drivers /etc/drivers.$$ exec 3<&1 while : do cd $MNTPATH/$pkg/new printv "Installing $PKGNAME" printv "The following files are being installed:" # cpio in the world (don't munge existing directories) find . -print | while read dirname do zname=`expr $dirname : './\(.*\).Z$'` >/dev/null 2>&1 if [ -z "$zname" ] then fname=`expr $dirname : './\(.*\)'` >/dev/null 2>&1 printv "/$fname" else printv "/$zname" fi [ -d /$dirname ] || echo $dirname done | /bin/cpio -pduvm / > $SCRIPTS/newfiles.$thisdisk \ 2> $SCRIPTS/emsg$$ rc=$? # display cpio msgs (eg. no of disk blocks copied, links, etc) while read line do printv "$line" done < $SCRIPTS/emsg$$ # check for errors # Cpio doesn't exit on all errors, so try to second-guess # it by looking at its stderr output. if [ $rc -gt 0 ] then instErr=1 # for pkg_cleanup() elif egrep -l "[Ee]rror|[Cc]annot|corrupt|cpio:|Out of sync" \ $SCRIPTS/emsg$$ > /dev/null 2>&1 then instErr=1 fi # if errors, ask user if wants to abort if [ $instErr -eq 1 ] then abort= if [ "${UIaware}" -eq 1 -a "$PART2ok" = "yes" ] then ui window current main ui errmsg %instFail ui waitkey # let user read any messages ... question %instAbort %instAbortH %generic_help && abort=1 || abort=0 fix_console # get rid of any driver error msgs else echo "\nAn error has been detected while copying" echo "files from the diskette." echo "The ${PKGNAME}" echo "may not be installed correctly." yesorno "Do you want to continue the installation of this package" abort=$? fi [ $abort -eq 1 ] && break # out of multi-disk loop [ "$PART2ok" = "yes" ] && ui window select addpkg2 instErr=0 # user wants to continue, forget error fi if [ "${UIaware}" -eq 1 -a "${PART2ok}" = "yes" ] then ui infomsg %filUCprs else echo "File uncompression in progress ...." fi # uncompress them in the background cd / while read zname do /usr/lbin/uncompress -f /$zname 2>/dev/null if [ $? -ne 0 ] then nonzname=`echo $zname | sed 's/\.Z$//'` [ "$zname" = "$nonzname" ] && continue # wasn't compressed if [ -f /$nonzname ] # text file busy? then fdir=`dirname /$nonzname` ffile=`basename /$nonzname` mv $fdir/$ffile $fdir/OLD.$ffile /usr/lbin/uncompress -f /$zname 2>/dev/null ret=$? if [ $ret -ne 0 ] # now what? then if [ "${UIaware}" -eq 1 -a "${PART2ok}" = "yes" ] then ui variable set Object \"$nonzname - error $ret\" ui errmsg %ucmpErr else echo cannot uncompress $nonzname echo return code $ret fi else # make a list for an /etc/rc script echo "rm -f $fdir/OLD.$ffile" >>$SCRIPTS/busyfiles fi else if [ "${UIaware}" -eq 1 -a "${PART2ok}" = "yes" ] then ui variable set Object "/$zfile" ui errmsg $ucmpErr2 else echo "\nUnknown error uncompressing /$zfile" fi fi fi done < $SCRIPTS/newfiles.$thisdisk & if [ -d ${MNTPATH}/$pkg/special ] then runif specinstall case $? in 0);; 1) continue ;; # go to next disk 2) pkg_cleanup; break ;; # go to next subset esac fi # get the next disk if there is one [ $thisdisk -eq $lastdisk ] && break thisdisk=`expr $thisdisk + 1` [ "${UIaware}" -eq 1 -a "${PART2ok}" = "yes" ] && ui clrinfo getdisk "$PKGNAME" "Disk Number $thisdisk" || { instErr=1; break; } dnum=`cat $MNTPATH/$pkg/install/ORDER` dnam=`cat $MNTPATH/$pkg/install/${pkg}.name` while [ "$thisdisk" -ne "${dnum}" -o "$PKGNAME" != "${dnam}" ] do if [ "${UIaware}" -eq 1 -a "${PART2ok}" = "yes" ] then if [ "${thisdisk}" -ne "${dnum}" ] then ui infomsg %dnumErr else ui infomsg %dnamErr fi else echo "ERROR: Wrong disk" fi getdisk "$PKGNAME" "Disk Number $thisdisk" || { instErr=1; break 2; } dnum=`cat $MNTPATH/$pkg/install/ORDER` dnam=`cat $MNTPATH/$pkg/install/${pkg}.name` done done # end of multidisk loop # abort package if an error occurred while reading the diskettes if [ $instErr -eq 1 ] then pkg_cleanup continue # go to next package subset fi # update|create $pkg.name if [ -f $SCRIPTS/BUGFIX ] then CONTENT=`cat /usr/options/$SUBSET` echo "$CONTENT, UPDATE $pkg" >/usr/options/$SUBSET else rm -f /usr/options/$pkg.name # FK, handle old pkg names if test -n "$oldpkg" then rm -f /usr/options/$oldpkg.name mv $SCRIPTS/$pkg.name /usr/options/$oldpkg.name else mv $SCRIPTS/$pkg.name /usr/options fi # mv $SCRIPTS/$pkg.name /usr/options # FK, end fi # wait for uncompression (in background) to finish and cleanup after wait # install drivers if [ -f $SCRIPTS/drivers ] then if [ "${UIaware}" -eq 1 -a "${PART2ok}" = "yes" ] then ui infomsg %addpkg2W else echo "Installing driver(s)" fi rm -f $INSDIR/Files/$pkg.drvrs while read driv do adddriver $driv done < $SCRIPTS/drivers fi # Remove the new /etc/drivers and move the old one back rm -rf /etc/drivers [ -d /etc/drivers.$$ ] && mv /etc/drivers.$$ /etc/drivers cd / runif link # Rlist is the list of installed files. Remove/pkg.name is the script # don't install them for BUGFIX subsets. removing them may hose you. if [ ! -f $SCRIPTS/BUGFIX ] then # FK, handle old pkg name rm -f ${INSDIR}/*/$pkg.name if test -n "$oldpkg" then rm -f ${INSDIR}/*/$oldpkg.name sed -e "s/$pkg/$oldpkg/" $SCRIPTS/Rlist.$pkg \ > ${INSDIR}/Files/$oldpkg.name sed -e "s/$pkg/$oldpkg/" $SCRIPTS/Remove \ > ${INSDIR}/Remove/$oldpkg.name else cp $SCRIPTS/Rlist.$pkg ${INSDIR}/Files/$pkg.name cp $SCRIPTS/Remove ${INSDIR}/Remove/$pkg.name fi # FK cp $SCRIPTS/Rlist.$pkg ${INSDIR}/Files/$pkg.name # FK cp $SCRIPTS/Remove ${INSDIR}/Remove/$pkg.name # FK, end fi runif setup # this is for backward compatibility runif postinstall # cleanup and restore the old /etc/drivers runif cleanup # if there is a "busyfiles" list, put it into /etc/rc2.d # It has to be run after the filesystems are mounted. if [ -f $SCRIPTS/busyfiles ] then echo "rm -f /etc/rc2.d/S02busyfiles" >> $SCRIPTS/busyfiles if [ ! -f /etc/rc2.d/S02busyfiles ] then cp $SCRIPTS/busyfiles /etc/rc2.d/S02busyfiles else # If a busyfiles script pre-exists, remove the last # line, then append our newer list to the old one. # TOUT=/tmp/out$$ grep -v "S02busyfiles" /etc/rc2.d/S02busyfiles >$TOUT # FK, added S02busyfiles to mv, so we get the right name mv $TOUT /etc/rc2.d/S02busyfiles cat $SCRIPTS/busyfiles >>/etc/rc2.d/S02busyfiles fi if [ "${UIaware}" -eq 1 -a "${PART2ok}" = "yes" ] then show_message %filbusy %filbusyH else echo "Some files in the ${PKGNAME} subset were busy." echo "They will be deleted at the next system re-boot" fi fi pkg_cleanup done # end of pkg loop [ "${UIaware}" -eq 1 ] && ui window current main exit 0