home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 1999 March B / SCO_CASTOR4RRT.iso / nsu / install / preinstall < prev    next >
Text File  |  1998-08-19  |  7KB  |  286 lines

  1. #ident    "@(#)preinstall    1.3"
  2. #ident    "$Header: $"
  3. #
  4. #  For cases when request script is not run, we set up for LOCALE 
  5. #  specific menus here.
  6. #
  7. #  Make sure LOCALE environment variable is set.  If it's not set
  8. #  coming in to this script, then default to the C-locale.
  9. #
  10. LOCALE=${LC_ALL:-${LC_MESSAGES:-${LANG:-"C"}}}
  11.  
  12. MENU_DIR=/etc/inst/locale/${LOCALE}/menus/${PKG}
  13. [ -d ${MENU_DIR} ] || mkdir -p ${MENU_DIR}
  14.  
  15. MENUS="menu.nsu"
  16.  
  17. for i in $MENUS
  18. do
  19.    if [ ! -f ${MENU_DIR}/$i ]
  20.    then
  21.       if [ -f ${REQDIR}/inst/locale/${LOCALE}/${PKG}/$i ]
  22.       then
  23.            cp ${REQDIR}/inst/locale/${LOCALE}/${PKG}/$i ${MENU_DIR}
  24.       else
  25.            cp ${REQDIR}/${PKG}/$i ${MENU_DIR}
  26.       fi
  27.    fi
  28. done
  29. #
  30. #  Set up to use menu_colors; default to C-locale if ${LOCALE}'s dir has
  31. #  no menu_colors.sh
  32. #
  33. if [ -f /etc/inst/locale/${LOCALE}/menus/menu_colors.sh ]
  34. then
  35.     . /etc/inst/locale/${LOCALE}/menus/menu_colors.sh
  36. else
  37.     . /etc/inst/locale/C/menus/menu_colors.sh
  38. fi
  39.  
  40. environ=$1
  41. >${environ}
  42.  
  43. addenv () {
  44.     eval echo $1 >>${environ}
  45. }
  46.  
  47.  
  48. ##########
  49. #
  50. # ${VARSPOOLLP} and ${ETCLP} are the names of the new directories where
  51. # things are now kept.
  52. ##########
  53.  
  54. addenv VARSPOOL=/var/spool > /dev/null
  55. addenv VARSPOOLLP=${VARSPOOL}/lp > /dev/null
  56. addenv ETCLP=${ETC}/lp > /dev/null
  57. addenv USRLIBLP=${USRLIB}/lp > /dev/null
  58. addenv OLD_VERSION=NONE > /dev/null
  59. #
  60. #
  61. #    if ls ${VARSPOOLLP}/requests/*/* 1>/dev/null 2>&1
  62. #    then
  63. #        echo "
  64. #There are still some print requests queued for printing.  Installation
  65. #of the new Spooler over the old configuration will DESTROY them."
  66. #
  67. #        CONTINUE "
  68. #        If you answer \"n\" (or \"no\") installation will stop
  69. #        to give the queued print requests a chance to be printed.
  70. #        If you answer \"y\" (or \"yes\") installation will proceed
  71. #        WITHOUT SAVING any currently queued jobs.
  72. #\n\n
  73. #        If you suspect that there really are no requests still
  74. #        queued, look for strange files in the directories under
  75. #        ${SPOOLDIR}/request."
  76. #    fi
  77.  
  78.  
  79. ##########
  80. ##
  81. ## Shutdown Spooler
  82. ## 
  83. ##
  84. ##########
  85.  
  86. if [ -x "/usr/sbin/lpshut" ]
  87. then
  88.     /usr/sbin/lpshut >/dev/null 2>&1
  89. fi
  90.  
  91. ##########
  92. ##
  93. ## Save Non-networking Spooler and lpadmin
  94. ## 
  95. ##
  96. ##########
  97.  
  98. #echo "Saving non-networking lpsched. . ."
  99.  
  100. cp /usr/lib/lp/lpsched /usr/lib/lp/lpsched.LPM
  101.  
  102. #echo "Non-networking lpsched saved in /usr/lib/lp/lpsched.LPM"
  103.  
  104. #echo "Saving non-networking lpadmin. . ."
  105.  
  106. cp /usr/sbin/lpadmin /usr/sbin/lpadmin.LPM
  107.  
  108. #echo "Non-networking lpadmin saved in /usr/sbin/lpadmin.LPM"
  109.  
  110.  
  111. ############# Begin UPGRADE AND OVERLAY #######################
  112.  
  113. SCRIPTS=/usr/sbin/pkginst
  114. . ${SCRIPTS}/updebug
  115.  
  116. [ "$UPDEBUG" = YES ] && {
  117.     set -x
  118.     goany
  119. }
  120.  
  121. UPINSTALL=/etc/conf.sav
  122. UPGRADE_STORE=/etc/inst/save.user
  123. UPGFILE=${UPGRADE_STORE}/${PKGINST}.env
  124. #AUTOMERGE=NULL
  125.  
  126. # If $UPGFILE exists than either this is an upgrade or overlay
  127. # done during boot-floppy installation or the request script
  128. # created it.  If request was run, then $UPGFILE contains NREG. 
  129. # Otherwise, NREG must be set now. 
  130.  
  131. [ -f $UPGFILE ] && . $UPGFILE
  132.  
  133. [ "$NREG" ] || {
  134.  
  135.     # Since NREG is not set, this is either a boot-floppy 
  136.     # installation or we are pkgadding a set and installing 
  137.     # nsu in automatic mode. Do not determine PKGINSTALL_TYPE 
  138.     # or AUTOMERGE if this is a boot-floppy install since these 
  139.     # variables are in UPGFILE already.
  140.  
  141.     if [ ! -f /etc/inst/scripts/postreboot.sh ]
  142.     then 
  143.         # We are installing nsu by pkgadding a set.
  144.         PKGINSTALL_TYPE=NEWINSTALL
  145.     
  146.         # Call chkpkgrel to determine installation type.
  147.         ${SCRIPTS}/chkpkgrel
  148.         PKGVERSION=$?
  149.         
  150.         case $PKGVERSION in
  151.             2)    PKGINSTALL_TYPE=OVERLAY ;;
  152.             4)    PKGINSTALL_TYPE=UPGRADE ;;
  153.             6)    PKGINSTALL_TYPE=UPGRADE2 ;;
  154.             *)    ;;
  155.         esac
  156.         rm -f $UPGFILE    
  157.     fi
  158.  
  159.     # Since the new mtune.d/ptm is not installed yet, we get the
  160.     # number of default pseudo-ttys from the pkginfo file.
  161.  
  162.     NREG=$DFLT_REG
  163.  
  164.     [ "$PKGINSTALL_TYPE" = UPGRADE ] && {
  165.         if [ -f /etc/inst/scripts/postreboot.sh ]
  166.         then
  167.         # We are installing from the boot floppy.
  168.             PTM=$UPINSTALL
  169.         else
  170.             PTM=/etc/conf
  171.         fi    
  172.         
  173.         if [ -f $PTM/sdevice.d/ptm ]
  174.         then
  175.         # We are upgrading from a pre-UnixWare 2.0 release that used 
  176.         # different drivers for SCO and regular ptys. The sdevice.d/ptm 
  177.         # file will have only the number of regular ptys.
  178.             grep "^ptm    " $PTM/sdevice.d/ptm >/tmp/ptm.$$ 2>/dev/null
  179.             OFS=$IFS
  180.             IFS="    "    #tab
  181.             read Dev Conf LAST_REG x4 </tmp/ptm.$$
  182.             [ "$Conf" = N ] && LAST_REG=$DFLT_REG
  183.             IFS=$OFS
  184.             rm -f /tmp/ptm.$$
  185.  
  186.             [ "$LAST_REG" -gt "$DFLT_REG" ] && NREG=$LAST_REG
  187.             [ "$NREG" -gt "$MAX_REG_PTS" ] && NREG=$MAX_REG_PTS
  188.         else
  189.         # This is the odd case when we cannot find the old values. 
  190.         # Use the defaults.
  191.                 continue
  192.         fi
  193.  
  194.         # We need to remove all existing smtp binaries because they have 
  195.         # been totally revised in UnixWare 2.x.  Some of them still have 
  196.         # the same names, and some do not.  We'll just remove them all
  197.         # for completeness' sake.  We also need to remove cron jobs
  198.         # that run smtploop along with the comments for them.
  199.         smtpdir="/usr/lib/mail/surrcmd"
  200.         for file in in.smtpd smtp smtpbatch smtpd smtploop smtpqer smtpsched
  201.             do
  202.             if [ -f $smtpdir/$file ]
  203.             then
  204.                 rm $smtpdir/$file
  205.             fi
  206.             done
  207.  
  208.         file=/var/spool/cron/crontabs/smtp
  209.         cat $file | grep -v smtploop | grep -v "Run smtpsched once per hour" | grep -v "Clean up queues and send warnings" > $file.tmp
  210.         cp $file.tmp $file
  211.         rm $file.tmp
  212.         if [ ! -s $file ]
  213.         then
  214.             rm $file
  215.         fi
  216.     }
  217.  
  218.     [ "$PKGINSTALL_TYPE" = OVERLAY -o "$PKGINSTALL_TYPE" = UPGRADE2 ] && {
  219.         if [ -f /etc/inst/scripts/postreboot.sh ]
  220.         then
  221.         # We are installing from the boot floppy.
  222.             PTM=$UPINSTALL
  223.             if [ -f $PTM/node.d/pts ]
  224.             then
  225.                 NREG=`cut -f2 $PTM/node.d/pts|grep ttyp|wc -l`
  226.                 [ "$NREG" -gt "$MAX_REG_PTS" ] && 
  227.                    NREG=$MAX_REG_PTS
  228.             else
  229.             # We cannot calculate NREG from $PTM/node.d/pts. 
  230.             # Use the default value of NREG.
  231.                 continue
  232.             fi
  233.         else
  234.         # We are installing using pkgadd on a running system.
  235.             PTM=/etc/conf
  236.             if [ -f $PTM/mtune.d/ptm ]
  237.             then
  238.                 line=`/etc/conf/bin/idtune -g NUMREGPT`
  239.                 set - $line
  240.                 NREG=$1
  241.                 [ "$NREG" -gt "$MAX_REG_PTS" ] && NREG=$MAX_REG_PTS
  242.             else
  243.             # This is the odd case when we cannot find the old values.
  244.             # Use the defaults.
  245.                 continue
  246.             fi
  247.         fi    
  248.         # We need to remove any smtp binaries from 1.1x that no longer
  249.         # exist in UnixWare 2.x.  These would be left over only if this
  250.         # machine was upgraded from 1.x to 2.01 and is now being upgraded
  251.         # to 2.1. We also need to remove cron jobs that run smtploop (an
  252.         # old 1.x binary) along with the comments for them.
  253.         smtpdir="/usr/lib/mail/surrcmd"
  254.         for file in in.smtpd smtpbatch smtploop smtpsched
  255.             do
  256.             if [ -f $smtpdir/$file ]
  257.             then
  258.                 rm $smtpdir/$file
  259.             fi
  260.             done
  261.  
  262.         file=/var/spool/cron/crontabs/smtp
  263.         cat $file | grep -v smtploop | grep -v "Run smtpsched once per hour" | grep -v "Clean up queues and send warnings" > $file.tmp
  264.         cp $file.tmp $file
  265.         rm $file.tmp
  266.         if [ ! -s $file ]
  267.         then
  268.             rm $file
  269.         fi
  270.     }
  271. }
  272. ############# End  UPGRADE AND OVERLAY #######################
  273.  
  274.     # Save volatile files for upgrades and overlays
  275.     ${SCRIPTS}/pkgsavfiles ${PKGINST}
  276. # pkgsavfiles may change AUTOMERGE to NULL if there are no
  277. # files to merge or if it is a new installation. Therefore,
  278. # find out what values it set. Don't just overwrite them.
  279. . $UPGFILE
  280.  
  281. echo "PKGINSTALL_TYPE=${PKGINSTALL_TYPE}" >$UPGFILE || exit 1
  282. echo "AUTOMERGE=${AUTOMERGE}" >>$UPGFILE || exit 1
  283. echo "NREG=${NREG}" >>$UPGFILE || exit 1
  284.  
  285. exit 0
  286.