home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 1999 March B / SCO_CASTOR4RRT.iso / inet / install / postinstall < prev    next >
Text File  |  1998-08-19  |  32KB  |  1,244 lines

  1. #remaining task: one driver fails, or idinstall missing, pkgrm inet
  2. #ident        "@(#)postinstall    1.28"
  3. #ident    "$Header: $"
  4.  
  5. #    
  6. #    STREAMware TCP
  7. #    Copyright 1987, 1993 Lachman Technology, Inc.
  8. #    All Rights Reserved.
  9. #    
  10.  
  11. if [ "$RANDOM" = "$RANDOM" ]
  12. then
  13.     exec /usr/bin/xksh $0
  14. fi
  15.  
  16. #
  17. # save any errors to a file..if sent to the screen it will
  18. # garble the winxksh screens..
  19. #
  20. InetLog=/var/adm/log/inet.install.$$.err
  21. mkdir -p $InetLog 2>/dev/null && rmdir $InetLog
  22. exec 2>>$InetLog
  23. PS4='[$LINENO]+ '
  24.  
  25. SCRIPTS=/usr/sbin/pkginst
  26. . ${SCRIPTS}/updebug
  27. [ "$UPDEBUG" = YES ] && set -x && : `date` && set >&2
  28.  
  29. #
  30. # This is used in tests to see if we must not disturb stdout/stderr
  31. #
  32. #if [ "${SILENT_INSTALL}" = "true" -o "${HOW_INSTALL}" = ON_BFLOP ]
  33. #then    Screen_writable=false
  34. #else    Screen_writable=true
  35. #fi
  36.  
  37. cleanup_exit() {
  38.         # $1 is the exit code
  39.         # clean up any tmp files created by upnover tools and then exit.
  40.  
  41.         [ "$PKGINST" ] || PKGINST=inet
  42.  
  43.         [ "$UPDEBUG" = YES ] && goany "cleanup_exit $1 $PKGINST"
  44.         $SCRIPTS/up_cleanup "$PKGINST"
  45.         exit    $1
  46. }
  47.  
  48. #
  49. # set up tcp listener related files, requires /etc/inet/hosts
  50. # to have out IP address.
  51. #
  52. Listener_Setup () {
  53. #
  54. # listener set up and its uucp access points is now done by a 
  55. # new script: listen.setup. 
  56. #
  57. /etc/inet/listen.setup noinstallf >> /var/sadm/install/logs/${PKGINST}.log 2>&1
  58.  
  59. #
  60. # change the address of any remaining tcp services to 0's 
  61. # the seventh field of the /etc/saf/tcp/_pmtab file, if not empty, 
  62. # should be "\x========000000000000000000000000" 
  63. # where the "========" means same as before and change the rest to
  64. # 24 zeros (0).
  65. #
  66. /usr/bin/awk ' { FS = ":"
  67.     OFS = ":"
  68.     if ( $7 != "" ) if ( length($7) == 34 ) if ( match($7, "000000000000000000000000") == 0 )
  69.     {
  70.     $7 = sprintf ("%s000000000000000000000000", substr($7,1,10))
  71.     } 
  72.     printf ("%s\n", $0) 
  73.       } ' /etc/saf/tcp/_pmtab >/tmp/tcp_pmtab_hold
  74. cat /tmp/tcp_pmtab_hold >/etc/saf/tcp/_pmtab
  75. rm -f /tmp/tcp_pmtab_hold
  76. }
  77.  
  78. #
  79. # open the please wait window if the screen is writable
  80. #
  81. #Open_Please_Wait () {
  82. #
  83. #---this long if only runs if we can write to the screen---
  84. #
  85. #if $Screen_writable
  86. #then
  87. #---------------------begin winxksh functions---------------------------
  88. #
  89. #
  90. # Pull in local winxksh functions (needed for clearing the screen)
  91. #
  92. #
  93. #
  94. # Set Necessary variables and structures
  95. #
  96. #STTYS=0
  97. #STTYA=0
  98. #STTYX=0
  99. #struct termios_data c_iflag:short c_oflag:short c_cflag:short c_lflag:short c_line:char c_cc:'char [19]'
  100. #struct termiosx_data x_hflag:short x_cflag:short x_rflag:'short [5]' x_sflag:short
  101. #
  102. #
  103. # mysetcolor - this script will reset the color of the screen back to
  104. #         what it should be after running winxksh
  105. #
  106. #function mysetcolor
  107. #{
  108. #    if [ $1 = "-n" ]
  109. #    then
  110. #        cdecl string_t fmt1='!\\\033[=%d%s!'
  111. #        cdecl string_t cmd_ch1='!F!'
  112. #        cdecl string_t cmd_ch2='!G!'
  113. #
  114. #        ccall altprintf "@string_t:"!\\\033[0m!""
  115. #        ccall ioctl 0 24832 0
  116. #        ccall altprintf "@string_t:"!\\\033[=0E!""
  117. #        ccall altprintf fmt1 7 cmd_ch1
  118. #        ccall altprintf fmt1 0 cmd_ch2
  119. #        ccall altprintf "@string_t:"!\\\033[0m!""
  120. #        ccall altprintf "@string_t:"!\\\033[J!""
  121. #    fi
  122. #}
  123. #
  124. #
  125. # myclear - winxksh equivalent of "tput clear"
  126. #
  127. #function myclear
  128. #{
  129. #    ccall altprintf "@string_t:"!\\\033[2J\\\033[H!""
  130. #}
  131. #
  132. #
  133. # mygetstty - get the current stty settings to use to reset the screen at end
  134. #
  135. #function mygetstty
  136. #{
  137. #    cdecl termios_data cbs={}
  138. #    cdecl termios_data cba={}
  139. #    cdecl termiosx_data cbx={}
  140. #
  141. #    ccall ioctl 0 21517 cbs
  142. #    retd=$_RETD
  143. #    cprint -v STTYS cbs
  144. #    ccall ioctl 0 21505 cba
  145. #    retd=$_RETD
  146. #    cprint -v STTYA cba
  147. #    ccall ioctl 0 22529 cbx
  148. #    retd=$_RETD
  149. #    cprint -v STTYX cbx
  150. #}
  151. #
  152. #
  153. # mysetstty - reset the screen (uses variables from mygetstty function)
  154. #
  155. #function mysetstty
  156. #{
  157. #    cdecl termios_data cbs="$STTYS"
  158. #    cdecl termios_data cba="$STTYA"
  159. #    cdecl termiosx_data cbx="$STTYX"
  160. #    ccall ioctl 0 21518 cbs
  161. #    retd=$_RETD
  162. #    ccall ioctl 0 21506 cba
  163. #    retd=$_RETD
  164. #    ccall ioctl 0 22530 cbx
  165. #    retd=$_RETD
  166. #}
  167. #
  168. #
  169. # myrestore - mysetstty, endwin, mysetcolor, myclear
  170. #
  171. #function myrestore
  172. #{
  173. #    mysetstty
  174. #    call endwin
  175. #    mysetcolor -n
  176. #    myclear
  177. #}
  178. #
  179. #
  180. #---------------------end winxksh functions---------------------------
  181. #
  182. #---------------------begin, please wait screen------------------
  183. #
  184. # save the stty settings and setup the screen
  185. #
  186. #mygetstty
  187. #
  188. #
  189. # Pull in global winxksh functions (taken from dcu scripts)
  190. #
  191. #. /etc/dcu.d/scripts/winrc
  192. #
  193. #if [[ -r /etc/dcu.d/locale/${LOCALE}/txtstrings ]]
  194. #then
  195. #    . /etc/dcu.d/locale/${LOCALE}/txtstrings
  196. #else
  197. #    . /etc/dcu.d/locale/C/txtstrings
  198. #fi
  199. #
  200. #. /etc/dcu.d/scripts/scr_init
  201. #
  202. #MSG1=`pfmt -s nostd -g ${PKGMSG}:107 "\n Setting up TCP/IP (%s) related files, please wait. \n \n" ${PKGINST:-inet} 2>&1`
  203. #display "${MSG1}"
  204. #WAIT=`gettxt inet.pkg:124 "Please Wait.\n"`
  205. #footer "$WAIT"
  206. #DISP_WID=$CURWIN
  207. #input_handler
  208. #
  209. #---------------------end, please wait screen------------------
  210. #
  211. #fi
  212. #---close if for $Screen_writable---
  213. #}
  214. #
  215. #
  216. # close the please wait window if the screen is writable
  217. #
  218. #Close_Please_Wait () {
  219. #    if $Screen_writable
  220. #    then
  221. #        wclose ${DISP_WID}
  222. #    fi
  223. #}
  224.  
  225. PKGMSG=${PKGINST}.pkg
  226. LOCALE=${LC_ALL:-${LC_MESSAGES:-${LANG:-"C"}}}
  227.  
  228. if [ ! -f /usr/lib/locale/${LOCALE}/LC_MESSAGES/${PKGMSG} ]
  229. then
  230.    if [ -f ${REQDIR}/inst/locale/${LOCALE}/${PKGMSG} -a \
  231.     -d /usr/lib/locale/${LOCALE}/LC_MESSAGES ]
  232.    then
  233.     cp ${REQDIR}/inst/locale/${LOCALE}/${PKGMSG} \
  234.        /usr/lib/locale/${LOCALE}/LC_MESSAGES
  235.    fi
  236. fi
  237.  
  238. # If HOW_INSTALL = POSTREBOOT, then we've already installed
  239. # the files and run 97% of this postinstall script.
  240. # Now we run the 3% needing bootp and the address, and manipulate
  241. # files based on it.
  242. #
  243. # This is done even in a Silent Install since /etc/inet/menu
  244. # knows to check for it.
  245.  
  246. if [ "${HOW_INSTALL}" = "POSTREBOOT" -a -x /usr/sbin/netcfg ]
  247. then
  248.     #
  249.     #    execute netcfg to modify/obtain information.
  250.     #
  251.     (
  252.         #
  253.         # Get the NICS parameters from the ifile.
  254.         #
  255.         if [ -f /isl/ifile ]
  256.         then
  257.             . /isl/ifile
  258.         fi
  259.  
  260.         if [ "$NICS_DRIVER_NAME" -a "$NICS_TYPE" ]
  261.         then
  262.             if [ "$NICS_TYPE" = "MDI" ]
  263.             then
  264.                 #
  265.                 # During the installation we will
  266.                 # only ever configure one interface.
  267.                 # In the MDI case NIC devices are
  268.                 # of the form netX. So it is safe
  269.                 # to assume that here we will be
  270.                 # adding net0.
  271.                 #
  272.                 netcfg -a tcp#net0
  273.             elif [ "$NICS_TYPE" = "ODI" -o "$NICS_TYPE" = "DLPI" ]
  274.             then
  275.                 #
  276.                 # ODI/DLPI drivers have the form:
  277.                 # NIC_X, e.g. TCM59X_0.
  278.                 #
  279.                 netcfg -a tcp#${NICS_DRIVER_NAME}_0
  280.             fi
  281.         else
  282.             #
  283.             # Looks like the network configuration was deferred.
  284.             # Save aside /etc/resolv.conf if it exists and add
  285.             # uname -n as an alias to localhost in /etc/inet/hosts.
  286.             #
  287.             if [ -f /etc/resolv.conf ]
  288.             then
  289.                 mv /etc/resolv.conf /etc/inet/resolv.save
  290.             fi
  291.  
  292.             if [ -f /etc/inet/hosts ]
  293.             then
  294.                 ed -s /etc/inet/hosts <<-EOF > /dev/null 2>&1
  295.                     /^127/s/localhost/localhost    $NODE/
  296.                     .
  297.                     w
  298.                     q
  299.                     EOF
  300.             fi
  301.         fi
  302.  
  303.         Listener_Setup
  304.     )
  305.     exit 0
  306. fi
  307.  
  308. REMF_FILES=/tmp/removef.files
  309. rm -f $REMF_FILES
  310. ls /tmp/inet/* >$REMF_FILES
  311. echo '/tmp/inet
  312. /tmp' >>$REMF_FILES
  313.  
  314. #
  315. # Initialize FAILURE to 1 (fatal error)
  316. #
  317. FAILURE=1
  318.  
  319. #
  320. # Install INET drivers
  321. #
  322. CONF=/etc/conf
  323. TMP=/var/adm/log/inet.idinstall.err
  324.  
  325. cd /tmp/inet
  326.  
  327. #########################################
  328. ## Make sure ID/TP tools are available ##
  329. #########################################
  330. if [ -x ${CONF}/bin/idbuild -a -x ${CONF}/bin/idinstall ]
  331. then
  332.     :
  333. else
  334.     exit $FAILURE
  335. fi
  336.  
  337.  
  338. SDEV=/etc/conf/sdevice.d
  339. for DRV in arp icmp igmp incf inet ip ipip llcloop rip route slip tcp udp
  340. do
  341.  
  342.     mv ${DRV}_atup.o Driver_atup.o
  343.     mv ${DRV}_mp.o Driver_mp.o
  344.  
  345.     grep -v "^[\*#]ident" ${DRV}.Master > Master
  346.     rm -rf ${DRV}.Master
  347.     
  348.     if [ -f ${DRV}.Space ]
  349.     then
  350.         mv ${DRV}.Space Space.c
  351.     fi
  352.  
  353.     if [ -f ${DRV}.Mtune ]
  354.     then
  355.         mv ${DRV}.Mtune Mtune
  356.     fi
  357.  
  358.     if [ -f ${DRV}.Dtune ]
  359.     then
  360.         mv ${DRV}.Dtune Dtune
  361.     fi
  362.  
  363.     if [ -f ${DRV}.Stubs ]
  364.     then
  365.         mv ${DRV}.Stubs Stubs.c
  366.     fi
  367.  
  368.     if [ -f ${DRV}.Node ]
  369.     then
  370.         grep -v "^[\*#]ident" ${DRV}.Node > Node
  371.         rm -rf ${DRV}.Node
  372.     fi
  373.  
  374.     grep -v "^[\*#]ident" ${DRV}.System |
  375.         sed 's/    N    /    Y    /'  > ./System
  376.     rm -f ${DRV}.System
  377.  
  378.     #if any of the core files are missing, go on to next one
  379.     [ ! -s System -o ! -s Master ] && continue;
  380.     [ ! -s Driver_atup.o -a ! -s Driver_mp.o -a ! -s Driver.o ] && continue;
  381.  
  382.     ${CONF}/bin/idinstall -P ${PKGINST} -a ${DRV} 2>> $TMP
  383.     if [ $? != 0 ]
  384.     then
  385.         ${CONF}/bin/idinstall -P ${PKGINST} -u ${DRV} 2>> $TMP
  386.         if [ $? != 0 ]
  387.         then
  388.             for rem_drv in ${DRV_GOOD}
  389.             do
  390.                 ${CONF}/bin/idinstall -P ${PKGINST} -d ${rem_drv} 2>> $TMP
  391.             done
  392.             exit ${FAILURE}
  393.         fi
  394.     fi    
  395.     ID_MODS="${ID_MODS} -M ${DRV}"
  396.     DRV_GOOD="${DRV_GOOD} ${DRV}"
  397. done
  398.  
  399. # #
  400. # # XXX dme - currently not done.  should we move forward the 2.0/2.1
  401. # #    tunables into /etc/default/inet ?
  402. # #
  403. # #START-TUNABLES-START-TUNABLES-START-TUNABLES-START-TUNABLES-START-TUNABLES
  404. # #
  405. # # This is the begining of the uw1.1 tunables convertion to uw2.0
  406. # # only do this if we are doing an upgrade("${PKGINSTALL_TYPE}" = "UPGRADE")
  407. # # and the Automerge was selected("$AUTOMERGE" = "Yes").
  408. # #
  409. # IP_FORWARD=NO export IP_FORWARD
  410. # [ "${PKGINSTALL_TYPE}" = "UPGRADE" ] && [ "$AUTOMERGE" = "Yes" ] && {
  411. # #
  412. # # Convert uw1.1 "tunables" to uw2.0 tunables.
  413. # # Run during postinstall after all the modules have been idinstall'd
  414. # # but before the modules have been "idbuild -M"'d.
  415. # #
  416. # # The uw1.1 "tunables" that will be brought forward to uw2.0 are:
  417. # #
  418. # # uw2.0 name        uw1.1 name            uw1.1 location
  419. # # ---------------------------------------------------------------------------
  420. # # ARPHASHBCKTCNT    ARPTAB_BSIZ            pack.d/arp/space.c
  421. # # ARPHASHBCKTSIZE    ARPTAB_NB            pack.d/arp/space.c
  422. # # IP_UNITS        IPCNT                pack.d/ip/space.c
  423. # # IPFORWARDING        IPFORWARDING            pack.d/ip/space.c
  424. # # IPSENDREDIRECTS    IPSENDREDIRECTS            pack.d/ip/space.c
  425. # # RT_UNITS        IPPROVCNT            pack.d/ip/space.c
  426. # # INTTL            ip_ttl                pack.d/ip/space.c
  427. # # ICMPMASKREQ        ICMP_ANSWERMASK            pack.d/ip/space.c
  428. # # RTSUBNETSARELOCAL    subnetsarelocal            pack.d/ip/space.c
  429. # # TCPWINDOW        TCPWINDOW            pack.d/tcp/space.c
  430. # # TCPTTL        tcp_ttl                pack.d/tcp/space.c
  431. # # TCP_UNITS        TCP_UNITS            sdevice.d/tcp
  432. # # UDPTTL        udp_ttl                pack.d/udp/space.c
  433. # # UDPCKSUM        udpcksum            pack.d/udp/space.c
  434. # # UDP_UNITS        UDP_UNITS            sdevice.d/udp
  435. # # 
  436. # # TCPROUNDMSS        tcp_round_mss            pack.d/tcp/space.c
  437. # # tcp_round_mss wasn't going to be a tunable (TCPROUNDMSS), but I have had
  438. # # second thoughts, as I believe this is a "tunable" that administrators may
  439. # # have changed.  Therefore it should become a tunable and be brought forward.
  440. # #
  441. # # To be safer, since administrators might have taken the precedent set by
  442. # # TCPWINDOW and set values using arithmetic expressions, we will check each
  443. # # value using the ksh "$(( var ))" expression to convert an expression to
  444. # # a number.  This "exits" non zero if there was a conversion problem.
  445. # #
  446. # # IPFORWARDING and IPSENDREDIRECTS are completely processed in
  447. # # postinstall now that idinstall is done during ON_BOOTFLOP.
  448. # # To assist /etc/inet/menu, if they are set, the environment variable
  449. # # IP_FORWARD will be set to "YES" so the inet.menu will know what to do.
  450. # #
  451.  
  452. # OCONF=/etc/inst/save.user/etc/conf
  453. # O_PK=${OCONF}/pack.d
  454. # O_SY=${OCONF}/sdevice.d
  455.  
  456. # NCONF=/etc/conf
  457. # N_PK=${NCONF}/pack.d
  458. # N_SY=${NCONF}/sdevice.d
  459.  
  460. # #
  461. # # $1 - variable to check and convert
  462. # # is there an easier way to do this?
  463. # #
  464. # check_val () {
  465. #     VAL=`(
  466. #         TMP2=$(($1))
  467. #         RET=$?
  468. #         echo ${TMP2}
  469. #         exit $RET
  470. #     ) 2>/dev/null`
  471. # }
  472. # #
  473. # # $1..$n - filename to collect "$defines" from
  474. # # output each in the form <name>=<value>
  475. # #
  476. # do_defines() {
  477. #     grep -h "#define" $* | sed -e 's/#define[     ][     ]*//'\
  478. #         -e 's/[     ][     ]*/=/' -e 's/[     /].*//'
  479. # }
  480. # #
  481. # # $1..$n - filename to collect variable declarations (ints) from
  482. # # output each in the form <name>=<value>
  483. # #
  484. # do_ints() {
  485. #     grep -h "int" $* | sed -e 's/int[     ][     ]*//'\
  486. #         -e 's/[     ][     ]*=[     ][     ]*/=/'\
  487. #         -e 's/;.*$//'
  488. # }
  489. # #
  490. # # $1 - UW2.0 file name
  491. # # $2 - module name to search for (will be anchored to beginning of the line)
  492. # # $3 - original field value
  493. # # $4 - new field value
  494. # #
  495. # modify_file() {
  496. #     MF=$1
  497. #     NAME=$2
  498. #     OVAL=$3
  499. #     NVAL=$4
  500. #   if [ `echo $NVAL | awk '{printf NF}'` -ne 0 ]
  501. #   then
  502. #     ed ${MF} >/dev/null 2>&1 <<-!
  503. #         /^${NAME}
  504. #         s/${OVAL}/${NVAL}/
  505. #         w
  506. #         q
  507. #     !
  508. #   fi
  509.  
  510. # }
  511.  
  512. # #main
  513. # cat >/tmp/HOLD_defines.list <<!
  514. # ^ARPTAB_BSIZ
  515. # ^ARPTAB_NB
  516. # ^IPCNT
  517. # ^IPPROVCNT
  518. # ^IPFORWARDING
  519. # ^IPSENDREDIRECTS
  520. # ^ICMP_ANSWERMASK
  521. # ^TCPWINDOW
  522. # ^NO_DLPI_SERVICE_PROVIDERS
  523. # !
  524.  
  525. # cat >/tmp/HOLD_ints.list <<!
  526. # ip_ttl
  527. # subnetsarelocal
  528. # tcp_ttl
  529. # udp_ttl
  530. # udpcksum
  531. # !
  532.  
  533. # do_defines ${O_PK}/arp/space.c ${O_PK}/ip/space.c\
  534. #     ${O_PK}/tcp/space.c >/tmp/HOLD_tmpfile
  535. # #
  536. # # the file /tmp/HOLD_defines.list contains the list of #defines we care about
  537. # #
  538. # cat /tmp/HOLD_tmpfile | egrep -hf /tmp/HOLD_defines.list >/tmp/HOLD_uw1.1_defines
  539.  
  540. # do_ints ${O_PK}/ip/space.c ${O_PK}/tcp/space.c ${O_PK}/udp/space.c\
  541. #     >/tmp/HOLD_tmpfile
  542. # #
  543. # # the file /tmp/HOLD_ints.list contains the list of integers we care about
  544. # #
  545. # cat /tmp/HOLD_tmpfile | egrep -hf /tmp/HOLD_ints.list >/tmp/HOLD_uw1.1_ints
  546.  
  547. # rm /tmp/HOLD_tmpfile
  548.  
  549. # #
  550. # # get the system's current systems file units field for UDP
  551. # #
  552. # UDP_UNITS=`grep "^udp" ${O_SY}/udp | sed 's/[     ][     ]*/:/g' | cut -d: -f3`
  553. # #
  554. # # get the system's current systems file units field for TCP
  555. # #
  556. # TCP_UNITS=`grep "^tcp" ${O_SY}/tcp | sed 's/[     ][     ]*/:/g' | cut -d: -f3`
  557. # #
  558. # # import the shell variables for the #defines and integers
  559. # #
  560. # . /tmp/HOLD_uw1.1_defines
  561. # . /tmp/HOLD_uw1.1_ints
  562.  
  563. # #
  564. # # Modify tunables
  565. # #
  566.  
  567. # check_val "${ARPTAB_BSIZ}"
  568. # if [ $? -eq 0 -a "${VAL}" -ge 1 -a "${VAL}" -lt 19 ]
  569. # then
  570. #     /etc/conf/bin/idtune -c ARPHASHBCKTCNT ${VAL}
  571. # fi
  572.  
  573. # check_val "${ARPTAB_NB}"
  574. # if [ $? -eq 0 -a "${VAL}" -ge 1 -a "${VAL}" -lt 9 ]
  575. # then
  576. #     /etc/conf/bin/idtune -c ARPHASHBCKTSIZE ${VAL}
  577. # fi
  578.     
  579. # # in UW1.1, ip_ttl was 255 by default, in UW2.0, INTTL is 64 by default
  580. # if [ "${ip_ttl}" != MAXTTL ]
  581. # then
  582. #     check_val "${ip_ttl}"
  583. #     if [ $? -eq 0 -a "${VAL}" -gt 0 -a "${VAL}" -lt 255 ]
  584. #     then
  585. #         /etc/conf/bin/idtune -c INTTL ${VAL}
  586. #     fi
  587. # fi
  588.  
  589. # #
  590. # # set the IP_FORWARD variable to "YES" if != 0
  591. # #
  592. # check_val "${IPFORWARDING}"
  593. # if [ $? -eq 0 -a "${VAL}" -ne 0 ]
  594. # then
  595. #     IP_FORWARD="YES"
  596. #     /etc/conf/bin/idtune -c IPFORWARDING 1
  597. # fi
  598.  
  599. # #
  600. # # set the IP_FORWARD variable to "YES" if != 0
  601. # #
  602. # check_val "${IPSENDREDIRECTS}"
  603. # if [ $? -eq 0 -a "${VAL}" -ne 0 ]
  604. # then
  605. #     IP_FORWARD="YES"
  606. #     /etc/conf/bin/idtune -c IPSENDREDIRECTS 1
  607. # fi
  608.  
  609. # check_val "${ICMP_ANSWERMASK}"
  610. # if [ $? -eq 0 ]
  611. # then
  612. #     VAL=$(( ${ICMP_ANSWERMASK} ))
  613. #     if [ "${VAL}" -ne 0 ]
  614. #     then
  615. #         /etc/conf/bin/idtune -c ICMPMASKREQ 1
  616. #     fi
  617. # fi
  618.  
  619. # check_val "${subnetsarelocal}"
  620. # if [ $? -eq 0 -a "${VAL}" -eq 0 ]
  621. # then
  622. #     /etc/conf/bin/idtune -c RTSUBNETSARELOCAL 0
  623. # fi
  624.  
  625. # check_val "${TCPWINDOW}"
  626. # if [ $? -eq 0 -a "${VAL}" -ne 4096 ]
  627. # then
  628. #     /etc/conf/bin/idtune -c TCPWINDOW ${VAL}
  629. # fi
  630.  
  631. # #
  632. # #  (TCP_TTL (the UW1.1 default) == 60) != 64 (the UW2.0 default)
  633. # #
  634. # if [ "${tcp_ttl}" != TCP_TTL ]
  635. # then
  636. #     check_val "${tcp_ttl}"
  637. #     if [ $? -eq 0 -a "${VAL}" -ne 60 -a "${VAL}" -gt 0 -a "${VAL}" -lt 255 ]
  638. #     then
  639. #         /etc/conf/bin/idtune -c TCPTTL ${VAL}
  640. #     fi
  641. # fi
  642.  
  643. # if [ "${udp_ttl}" != UDP_TTL ]
  644. # then
  645. #     check_val "${udp_ttl}"
  646. #     if [ $? -eq 0 -a "${VAL}" -ne 30 -a "${VAL}" -gt 0 -a "${VAL}" -lt 255 ]
  647. #     then
  648. #         /etc/conf/bin/idtune -c UDPTTL ${VAL}
  649. #     fi
  650. # fi
  651.  
  652. # check_val "${udpcksum}"
  653. # if [ $? -eq 0 -a "${VAL}" -eq 1 ]
  654. # then
  655. #     /etc/conf/bin/idtune -c UDPCKSUM 1
  656. # fi
  657.  
  658. # #
  659. # # Modify system files
  660. # #
  661.  
  662. # if [ "${TCP_UNITS}" -ne 512 ]
  663. # then
  664. #     modify_file ${N_SY}/tcp tcp 512 ${TCP_UNITS}
  665. # fi
  666.  
  667. # #
  668. # #  UW1.1 default UDP_UNITS == 256, UW2.0 default UDP_UNITS == 512
  669. # #
  670. # if [ "${UDP_UNITS}" -ne 256 ]
  671. # then
  672. #     modify_file ${N_SY}/udp udp 512 ${UDP_UNITS}
  673. # fi
  674. # #
  675. # # UW1.1 default IPCNT == 8, UW2.0 default IP_UNITS == 16
  676. # #
  677. # check_val "${IPCNT}"
  678. # if [ $? -eq 0 -a "${VAL}" -ne 8 ]
  679. # then
  680. #     modify_file ${N_SY}/ip ip 16 ${VAL}
  681. # fi
  682.  
  683. # check_val "${IPPROVCNT}"
  684. # if [ $? -eq 0 -a "${VAL}" -ne 16 ]
  685. # then
  686. #     modify_file ${N_SY}/route route 16 ${VAL}
  687. # fi
  688.  
  689. # rm -f /tmp/HOLD_uw1.1_defines /tmp/HOLD_uw1.1_ints
  690.  
  691. # }
  692. # #
  693. # #END-TUNABLES-END-TUNABLES-END-TUNABLES-END-TUNABLES-END-TUNABLES
  694. # #
  695.  
  696. IDBUILD_FLAG=0
  697. ${CONF}/bin/idbuild ${ID_MODS} >>${TMP} 2>&1
  698. if [ "$?" -ne "0" ]
  699. then
  700.     IDBUILD_FLAG=1
  701. fi
  702.  
  703. #
  704. #    add the appropriate devices 
  705. #
  706.  
  707. if pkginfo -i es >/dev/null 2>&1
  708. then
  709.     SYS_PUTDEV="range=SYS_PRIVATE-SYS_PRIVATE state=private 
  710.             mode=static ual_enable=y other=>y startup=y 
  711.             startup_level=SYS_PRIVATE startup_owner=root>rw- 
  712.             startup_group=other>--- startup_other=>---"
  713.     USR_PUTDEV="range=SYS_RANGE_MAX-SYS_RANGE_MIN state=pub_priv
  714.             mode=static ual_enable=y other=>y startup=y
  715.             startup_level=USER_LOGIN startup_owner=root>rw-
  716.             startup_group=other>rw- startup_other=>rw-"
  717.     SUB_PUTDEV="range=SYS_RANGE_MAX-SYS_RANGE_MIN state=pub_priv
  718.             mode=static ual_enable=y other=>y startup=y
  719.             startup_level=USER_LOGIN startup_owner=root>rw-
  720.             startup_group=other>rw- startup_other=>---"
  721. else
  722.     SYS_PUTDEV=""
  723.     USR_PUTDEV=""
  724.     SUB_PUTDEV=""
  725. fi
  726.  
  727. for DRV in arp icmp igmp incf ip ipip rip
  728. do
  729.     putdev -a $DRV cdevlist="/dev/$DRV,/dev/inet/$DRV" \
  730.         desc="$DRV protocol" $SYS_PUTDEV 2>/dev/null
  731. done
  732.  
  733. # For historical reasons, the name of the llcloop device is /dev/loop
  734.  
  735. putdev -a llcloop cdevlist="/dev/loop,/dev/inet/loop" \
  736.     desc="$llcloop protocol" $SYS_PUTDEV 2>/dev/null
  737.  
  738. #
  739. # These devices are intended to be opened by services
  740. # with only the P_DEV privilege, so the startup_level is set to
  741. # USER_LOGIN.
  742. #
  743. putdev -a tcp cdevlist="/dev/tcp,/dev/inet/tcp" \
  744.     desc="tcp protocol" $USR_PUTDEV 2>/dev/null
  745.  
  746. #
  747. #    create explicit tcp sub-devices -- needed by uucp
  748. #    TCP_CDEV builds a string of these minor devices
  749. TCP_CDEV=
  750.  
  751. for MINOR in 00 01 02 03 04 05 06 07 08 09 10 11 12 13 14 \
  752.     15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
  753. do
  754.     #    Build putdev cdevlist minor devices list
  755.     if [ -z "$TCP_CDEV" ]
  756.         then TCP_CDEV="/dev/inet/tcp${MINOR}"
  757.         else TCP_CDEV="$TCP_CDEV,/dev/inet/tcp${MINOR}"
  758.     fi
  759. done
  760. #
  761. #    distinct device alias for subdevices, mode 660
  762. putdev -a tcp_subdev desc="tcp subdevices" cdevlist=$TCP_CDEV $SUB_PUTDEV 2>/dev/null
  763.  
  764. putdev -a udp cdevlist="/dev/udp,/dev/inet/udp" \
  765.     desc="udp protocol" $USR_PUTDEV 2>/dev/null
  766.  
  767.  
  768. # create the NET role; if it is already there, ignore error
  769. #/usr/bin/adminrole -n NET > /dev/null 2>&1
  770.  
  771. #The following for-loop assigns the commands to the NET role.  Privileges
  772. #are gotten right from /etc/security/tcb/privs.
  773. #
  774. #for cmd in /usr/bin/rdate /usr/sbin/ifconfig /usr/sbin/in.routed \
  775. #    /usr/sbin/route /usr/sbin/nslookup /usr/sbin/slink /usr/sbin/arp \
  776. #    /usr/bin/ruptime /usr/bin/rwho /usr/sbin/in.rwhod /usr/sbin/in.named
  777. #do
  778. #    base=`basename $cmd`
  779. #    privs=`
  780. #    egrep ":${cmd}$" /etc/security/tcb/privs| #Find command in tcb database
  781. #    sed 's/^.*%inher,\(.*\):.*/\1/p' |      # get the set of inher privs
  782. #    sed 's/^.*%fixed,\(.*\):.*//p' |      # delete the fixed privs
  783. #    sed 's/,/:/gp'                  # changed ,'s to :'s
  784. #    `
  785. #    if [ -z "$privs" ]
  786. #    then
  787. #        if [ ! -f $cmd ]
  788. #            then    echo "Warning: $cmd not found on the system.\c"
  789. #                echo "    Not adding to TFM."
  790. #                continue
  791. #            else    adminrole -a $base:$cmd NET
  792. #        fi
  793. #    else
  794. #        adminrole -a $base:$cmd:$privs NET
  795. #    fi
  796. #done
  797.  
  798. if [ ! -c /dev/pts/0 ] && [ $HOW_INSTALL != ON_BFLOP ]
  799. then
  800. SUBJ=`gettxt inet.pkg:105 "pseudo-terminals have not been installed"`
  801. TEXT=`gettxt inet.pkg:106 "WARNING: pseudo-terminals have not been installed on this machine.\nInternet commands such as rlogin and rsh require psuedo-terminals.\nPsuedo-terminals are part of the Networking Support Utilities package;\nplease re-install that package.\n"`
  802. /usr/bin/mailx -s "$SUBJ" root >/dev/null 2>&1 <<!
  803. $TEXT
  804. !
  805. fi
  806.  
  807. #--------------------begin /etc/netconfig setup------------------
  808. #
  809. #    add the appropriate entries to /etc/netconfig
  810. #
  811.  
  812. rm -f /tmp/netconfig
  813.  
  814. # Add $1  $2          $3 $4   $5  $6       $7
  815. #     tcp tpi_cots_ord v inet tcp /dev/tcp /usr/lib/tcpip.so,/usr/lib/resolv.so
  816. # to $8 if not present in /etc/netconfig
  817. #
  818. Add_netconfig()
  819. {
  820.     if grep "[     ]$4[     ][     ]*$5[     ][     ]*$6[     ]" /etc/netconfig >/dev/null 2>&1
  821.     then
  822.         : Already there!
  823.     else
  824.         echo "$1    $2    $3    $4    $5    $6    $7" >> $8
  825.     fi
  826. }
  827.  
  828. Add_netconfig tcp tpi_cots_ord v inet tcp /dev/tcp \
  829.         /usr/lib/tcpip.so,/usr/lib/resolv.so /tmp/netconfig
  830.  
  831. Add_netconfig udp tpi_clts v inet udp /dev/udp \
  832.         /usr/lib/tcpip.so,/usr/lib/resolv.so /tmp/netconfig
  833.  
  834. Add_netconfig icmp tpi_raw - inet icmp /dev/icmp \
  835.         /usr/lib/tcpip.so,/usr/lib/resolv.so /etc/netconfig
  836.  
  837. Add_netconfig igmp tpi_raw - inet igmp /dev/igmp \
  838.         /usr/lib/tcpip.so,/usr/lib/resolv.so /etc/netconfig
  839.  
  840. Add_netconfig rawip tpi_raw - inet - /dev/rawip \
  841.         /usr/lib/tcpip.so,/usr/lib/resolv.so /etc/netconfig
  842.  
  843. # IPv6 entries
  844. Add_netconfig tcp6 tpi_cots_ord v inet6 tcp /dev/tcpipv6 \
  845.         /usr/lib/tcpip.so,/usr/lib/resolv.so /etc/netconfig
  846.  
  847. Add_netconfig udp6 tpi_clts v inet6 udp /dev/udpipv6 \
  848.         /usr/lib/tcpip.so,/usr/lib/resolv.so /etc/netconfig
  849.  
  850. Add_netconfig icmpv6 tpi_raw - inet6 icmpv6 /dev/icmpv6 \
  851.         /usr/lib/tcpip.so,/usr/lib/resolv.so /etc/netconfig
  852.  
  853. Add_netconfig rawipv6 tpi_raw - inet6 - /dev/rawipv6 \
  854.         /usr/lib/tcpip.so,/usr/lib/resolv.so /etc/netconfig
  855.  
  856. if [ -s /tmp/netconfig ]
  857. then
  858.     if [ -r /etc/netconfig ]
  859.     then
  860.         grep -v "^#" /etc/netconfig >>/tmp/netconfig
  861.         grep "^#" /etc/netconfig >>/tmp/netconfig
  862.     fi
  863.     cat </tmp/netconfig >/etc/netconfig
  864. fi
  865.  
  866. rm -f /tmp/netconfig
  867.  
  868. #--------------------end /etc/netconfig setup------------------
  869.  
  870. [ "$UPDEBUG" = YES ] && goany
  871.  
  872. #
  873. #  Delete the tcp entry from the sac and then replace it.  
  874. #
  875. sacadm -r -p tcp >/dev/null 2>&1
  876. sacadm -a -p tcp -t listen -c "/usr/lib/saf/listen -m inet/tcp0 tcp 2>/dev/null" -v `nlsadmin -V` -n 3  2>/dev/null
  877. SACRET=$?
  878. [ "${SACRET}" != "0" -a "${SACRET}" != "10" ] && \
  879.     echo "sacadm -a -p tcp failed - returned ${SACRET}" >>${UPERR}
  880.  
  881. [ "$UPDEBUG" = YES ] && goany
  882.  
  883. #
  884. ############# Begin UPGRADE AND OVERLAY #######################
  885. #
  886. # if $1/$2 $3/$2 have the same data, do nothing.
  887. # If they do not, cd $1 and cpio $2 to $3
  888. # preserve modes, date when transfering file.
  889. Copy () {
  890.     if cmp -s $1/$2 $3/$2 2>/dev/null
  891.     then    : do nothing
  892.     else    [ -d $1 -a -d $3 -a -r $1/$2 ] &&
  893.             {    cd $1
  894.                 cpio -ump $3 << !
  895. $2
  896. !
  897.             }
  898.     fi
  899. }
  900.  
  901. [ "$PKGINSTALL_TYPE" != "NEWINSTALL" ] && {
  902.     BackupETC=/etc/inst/save.user/etc
  903.  
  904.     [ -f $BackupETC/inet/bootptab ] &&
  905.         Copy $BackupETC/inet bootptab /etc/inet
  906.  
  907.     [ -f $BackupETC/bootptab ] && {
  908.         [ ! -L /etc/bootptab ] && {
  909.             mv /etc/bootptab /etc/inet
  910.             ln -s /etc/inet/bootptab /etc/bootptab
  911.         }
  912.         Copy $BackupETC bootptab /etc/inet
  913.     }
  914.  
  915.     #if the original 1.X - 2.01 /etc/inet/bootptab
  916.     #is present, then the (2.1) /etc/inet/bootptab.samp will suffice,
  917.     #since they are the same sample.
  918.     #
  919.     #there is no 2.1  /etc/inet/bootptab unless the administrator
  920.     #creates one
  921.     #
  922.     #so if /etc/inet/bootptab is the same as the sample, we remove it
  923.     #
  924.     #NOTE this is run as a subshell as it creates lots of vars
  925.  
  926.     [ "$PKGINSTALL_TYPE" != "OVERLAY" -a \
  927.       -f /etc/inet/bootptab -a -f /etc/inet/bootptab.samp ] && 
  928.       grep '^/etc/inet/bootptab[     ]' 2>/dev/null \
  929.         /var/sadm/install/contents && (
  930.  
  931.        #has it changed since install?
  932.        if /usr/sbin/pkgchk -p /etc/inet/bootptab inet 2>/dev/null
  933.  
  934.        then    pkgchk_bootptab=true
  935.  
  936.        else    pkgchk_bootptab=false
  937.  
  938.         #acutally, pkgchk_bootptab may yet be set to true.
  939.         #we are in the process of installing the inet package here,
  940.         #so pkgchk may not find the contents file in a consistant
  941.         #state.  We will check the length, checksum, uid, grp by hand.
  942.         if grep '^/etc/inet/bootptab[     ]' 2>/dev/null >&2 \
  943.             </var/sadm/install/contents |
  944.            read fnm vrbs n md root sys len checksum sec security &&
  945.            [ "$fnm" = /etc/inet/bootptab -a root = "$root" -a \
  946.              sys = "$sys" -a -n "$len" -a -n "$checksum" ]
  947.         then
  948.             ls -l /etc/inet/bootptab 2>/dev/null |
  949.                read lsmd lnks lsroot lsys lslen rest 2>/dev/null &&
  950.                [ "$sys" = "$lsys" -a "$root" = "$lsroot" -a \
  951.                  "$len" = "$lslen" -a \
  952.                  "X$checksum" = X"`sum </etc/inet/bootptab |
  953.                       awk '{print $1;}'`" ] 2>/dev/null &&
  954.                 pkgchk_bootptab=true
  955.         fi
  956.        fi
  957.  
  958.        #if pkgchk_bootptab is true, then we need to remove
  959.        #/etc/inet/bootptab, since a started in.bootpd will
  960.        #read this sample file.
  961.  
  962.        $pkgchk_bootptab && {
  963.         rm -f /etc/inet/bootptab 2>/dev/null
  964.         /usr/sbin/removef inet /etc/inet/bootptab >/dev/null 2>&1
  965.         mv $BackupETC/inet/bootptab $BackupETC/inet/bootptab.old.$$ \
  966.             2>/dev/null
  967.        }
  968.     )
  969. }
  970.  
  971.  
  972. [ "$PKGINSTALL_TYPE" != "NEWINSTALL" ] && {
  973.  
  974. #    AUTOMERGE will be set when the system is being UPGRADED or
  975. #     or OVERLAYED....If the package is being added via pkgadd
  976. #    then the AUTOMERGE will be set to "Yes".
  977.  
  978. #    If AUTOMERGE=Yes, ${SCRIPTS}/pkgmrgconf will 
  979. #    merge the config files listed in $UPGRADE_STORE/${PKGINST}.sav.
  980. #    If merge failed, it informs user which files the merge failed.
  981.  
  982. #    If AUTOMERGE=No, ${SCRIPTS}/pkgmrgconf will 
  983. #    inform user where there old config files live and that
  984. #    the system will use new versions of the config. files
  985.  
  986.     ${SCRIPTS}/pkgmrgconf "${PKGINST}" "$AUTOMERGE" "$NAME" >/dev/null 2>&1
  987. }
  988.  
  989. [ "$UPDEBUG" = YES ] && goany
  990.  
  991.  
  992. # cleanup patch files from /var/sadm/install/contents and rm them
  993.  
  994. ${SCRIPTS}/up_cleanup "${PKGINST}"
  995.  
  996. #
  997. # remove the nics map file
  998. #
  999. rm -f /etc/inst/nics/nics.map
  1000.  
  1001. #
  1002. ############# End   UPGRADE AND OVERLAY #######################
  1003. #
  1004.  
  1005. #
  1006. # If HOW_INSTALL = ON_BFLOP, then we skip this step.
  1007. # This may use nics to get addresses from bootp in postreboot.
  1008. #
  1009.  
  1010. if [ -x /usr/sbin/netcfg -a "${HOW_INSTALL}" = "NORMAL" ]
  1011. then
  1012.     #
  1013.     # Case of pkgadd on running system.
  1014.     #
  1015.     netcfg
  1016. fi
  1017.  
  1018. #
  1019. # If HOW_INSTALL = ON_BFLOP, then we skip this step.
  1020. # This manipulates files based on the address.
  1021. #
  1022.  
  1023. [ "${HOW_INSTALL}" != ON_BFLOP ] && {
  1024.     Listener_Setup
  1025. }
  1026.  
  1027. #
  1028. #    Add /dev/inet to /etc/ttysrch to speed up ttyname
  1029. #
  1030. echo "/dev/inet    MF" >>/etc/ttysrch
  1031.  
  1032. #
  1033. #    Add /dev/_tcp mount entry to vfstab
  1034. #
  1035.     echo "/dev/_tcp    -    /dev/_tcp    specfs    -    yes    dev=tcp" >> /etc/vfstab
  1036.  
  1037. #
  1038. #    Create /etc/passwd and /etc/group entry for UID_NOBODY
  1039. #    so in.fingerd can run
  1040. #
  1041. UID_NOBODY="`grep '^nobody:' /etc/passwd | cut -d: -f3`"
  1042. GID_NOBODY="`grep '^nobody:' /etc/group | cut -d: -f3`"
  1043. if [ -z "$UID_NOBODY" ]
  1044. then
  1045.     touch /noshell
  1046.     chmod +x /noshell
  1047.     if [ -z "$GID_NOBODY" ]
  1048.     then
  1049.         useradd -c 'unprivileged user' -d /nonexistent \
  1050.             -s /noshell nobody
  1051.     else
  1052.         # already have a group nobody -- use it
  1053.         useradd -c 'unprivileged user' -d /nonexistent \
  1054.             -s /noshell -g ${GID_NOBODY} nobody
  1055.     fi
  1056.     rm -f /noshell
  1057.     UID_NOBODY="`grep '^nobody:' /etc/passwd | cut -d: -f3`"
  1058. fi
  1059. if [ -z "$GID_NOBODY" -a ! -z "$UID_NOBODY" ]
  1060. then
  1061.     if cut -d: -f3 </etc/group | grep "^${UID_NOBODY}\$" >/dev/null
  1062.     then
  1063.         # already have group using nobody's uid
  1064.         GID_NOBODY="`grep '^nobody:' /etc/passwd | cut -d: -f4`"
  1065.     else
  1066.         GID_NOBODY=$UID_NOBODY
  1067.     fi
  1068.     echo "nobody::${GID_NOBODY}:" >>/etc/group
  1069.     /usr/sbin/pwconv
  1070.     /sbin/creatiadb
  1071.     usermod -g ${GID_NOBODY} nobody
  1072. fi
  1073.  
  1074. #    Create inetd as a port monitor.  Version doesn't matter
  1075. #    since inetd doesn't use _pmtab.
  1076. #
  1077.  
  1078. # The following ( ) shell scripts are to capture WARNING
  1079. # messages resulting from installing the package
  1080. # in Maintenance mode (aka init S) when the sac
  1081. # program is not running or has never yet been run.
  1082. # The database files are correctly updated when these
  1083. # error numbers are received, the messages usually read:
  1084. #
  1085. # warning - could not ascertain sac status
  1086.  
  1087. (    SACOUT="`sacadm -a -p inetd -t inetd -c /usr/sbin/inetd \
  1088.             -v 1 -y \"internet daemon\" 2>&1`"
  1089.     RET2=$?
  1090.     if [ 10 = $RET2 -o 0 = $RET2 ]
  1091.     then
  1092.         exit 0
  1093.     else
  1094.         # display messages other than "inetd already exists"
  1095.         [ "$RET2" != 6 ] && echo "$SACOUT" 1>&2
  1096.         exit $RET2
  1097.     fi
  1098. )
  1099.  
  1100. # If root is a defined user and has inetd in the TFM database,
  1101. # then we do not need to add it again.
  1102. adminuser root | grep "inetd:/usr/sbin/inetd" >/dev/null 2>&1
  1103. rc=$?
  1104.  
  1105. [ $rc = 1 ] && {
  1106.     # Enable inetd to run under the SAC through tfadmin with privileges
  1107.     # The first try may fail due to root not added as a TFM user yet.
  1108.  
  1109.     CMD="inetd:/usr/sbin/inetd:allprivs"
  1110.     adminuser -a $CMD root >/dev/null 2>&1
  1111.  
  1112.     # We may not be able to add TFM users without using the "-n" option.
  1113.     # If above fails, try again with -n.
  1114.     if [ $? -ne 0 ]
  1115.         then    adminuser -n -a $CMD root 
  1116.     fi
  1117. }
  1118.  
  1119.  
  1120. #
  1121. #    for security release, let them know how to disable inet services.
  1122. #
  1123. #
  1124. #/usr/bin/mail root >/dev/null 2>&1 <<!
  1125. #Subject: inet package installation: how to disable inet services
  1126. #
  1127. #The inet services have been installed.  In order to disable access to 
  1128. #or from this system in the future, use the /etc/inet/inet.priv -d script.
  1129. #If you need to enable the inet services afterwards, you can run
  1130. #/etc/inet/inet.priv -e in single user mode to restore file modes
  1131. #and privileges.
  1132. #!
  1133.  
  1134. #
  1135. # Install the SCOadmin managers...
  1136. #
  1137.  
  1138. CLASSCONF=/sbin/classconf
  1139. OSACONF=/sbin/osaconf
  1140. SCOADMIN=/usr/lib/scoadmin
  1141.  
  1142. /usr/bin/scoadmin -p Networking -f -c $SCOADMIN/dns/dns.obj
  1143. /usr/bin/scoadmin -p Networking -f -c $SCOADMIN/ncm/ncm.obj
  1144. /usr/bin/scoadmin -p Networking -f -c $SCOADMIN/ftp/ftp.obj
  1145. /usr/bin/scoadmin -p Networking -f -c $SCOADMIN/aas/aas.obj
  1146. /usr/bin/scoadmin -p Networking -f -c $SCOADMIN/dhcp/dhcp.obj
  1147. /usr/bin/scoadmin -H /usr/lib/netcfg/wansw -f -c $SCOADMIN/slip/slip.obj
  1148.  
  1149.  
  1150. ${OSACONF} -A sco dnsOsa LOOP_BACK sco_Tcl_osa $SCOADMIN/netosa/dnsOsa
  1151. ${CLASSCONF} -A sco dNSystem dnsOsa
  1152. ${CLASSCONF} -A sco dNSPrimary dnsOsa
  1153. ${CLASSCONF} -A sco dNSSecondary dnsOsa
  1154. ${CLASSCONF} -A sco dNSStub dnsOsa
  1155. ${CLASSCONF} -A sco dNSHint dnsOsa
  1156. ${CLASSCONF} -A sco hostTabs dnsOsa
  1157. ${CLASSCONF} -A sco hostTab dnsOsa
  1158. ${CLASSCONF} -A sco hostTabEntry dnsOsa
  1159.  
  1160.  
  1161. ${OSACONF} -A sco ncmOsa LOOP_BACK sco_Tcl_osa $SCOADMIN/netosa/ncmOsa
  1162. ${CLASSCONF} -A sco nis ncmOsa
  1163. ${CLASSCONF} -A sco ntp ncmOsa
  1164. ${CLASSCONF} -A sco netconfig ncmOsa
  1165.  
  1166. ${OSACONF} -A sco ftpOsa LOOP_BACK sco_Tcl_osa $SCOADMIN/netosa/ftpOsa
  1167. ${CLASSCONF} -A sco ftp ftpOsa
  1168. ${CLASSCONF} -A sco ftpDenyHost ftpOsa
  1169. ${CLASSCONF} -A sco ftpDenyUser ftpOsa
  1170. ${CLASSCONF} -A sco ftpAccess ftpOsa
  1171. ${CLASSCONF} -A sco ftpMessage ftpOsa
  1172. ${CLASSCONF} -A sco ftpClass ftpOsa
  1173. ${CLASSCONF} -A sco ftpLimit ftpOsa
  1174. ${CLASSCONF} -A sco ftpLog ftpOsa
  1175. ${CLASSCONF} -A sco ftpShutdown ftpOsa
  1176. ${CLASSCONF} -A sco ftpVirtual ftpOsa
  1177. ${CLASSCONF} -A sco ftpAnon ftpOsa
  1178. ${CLASSCONF} -A sco ftpAnonHome ftpOsa
  1179.  
  1180. ${OSACONF} -A sco netInterfaceOsa LOOP_BACK sco_Tcl_osa $SCOADMIN/netosa/netInterfaceOsa
  1181. ${CLASSCONF} -A sco netInterface netInterfaceOsa
  1182.  
  1183. ${OSACONF} -A sco inconfigOsa LOOP_BACK sco_Tcl_osa $SCOADMIN/netosa/inconfigOsa
  1184. ${CLASSCONF} -A sco inconfig inconfigOsa
  1185.  
  1186. ${OSACONF} -A sco aasOsa LOOP_BACK sco_Tcl_osa $SCOADMIN/netosa/aasOsa
  1187. ${CLASSCONF} -A sco aasPool aasOsa
  1188. ${CLASSCONF} -A sco aasServer aasOsa
  1189. ${CLASSCONF} -A sco aasDatabase aasOsa
  1190. ${CLASSCONF} -A sco aasLocation aasOsa
  1191.  
  1192. ${OSACONF} -A sco dhcpOsa LOOP_BACK sco_Tcl_osa $SCOADMIN/netosa/dhcpOsa
  1193. ${CLASSCONF} -A sco dhcpSubnet dhcpOsa
  1194. ${CLASSCONF} -A sco dhcpClient dhcpOsa
  1195. ${CLASSCONF} -A sco dhcpUserClass dhcpOsa
  1196. ${CLASSCONF} -A sco dhcpVendorClass dhcpOsa
  1197. ${CLASSCONF} -A sco dhcpOption dhcpOsa
  1198. ${CLASSCONF} -A sco dhcpGlobal dhcpOsa
  1199. ${CLASSCONF} -A sco dhcpStandard dhcpOsa
  1200. ${CLASSCONF} -A sco dhcpServer dhcpOsa
  1201.  
  1202. #
  1203. # If we're running from install on boot, no need to setup owner since
  1204. # the postreboot.sh will take care of it.  if, however, this is an
  1205. # after-the-fact pkgadd, the owner has to be setup here.
  1206. #
  1207.  
  1208. [ -f /etc/inst/scripts/postreboot.sh ] || {
  1209.     set `grep mail= /var/sadm/install/admin/* | cut -f2 -d=`
  1210.     while [ $# -ne 0 ]
  1211.     do
  1212.         [ "$1" != "root" ] && ${SCOADMIN}/account/make-owner $1 2>/dev/null
  1213.         shift
  1214.     done
  1215. }
  1216.  
  1217. # Now clean up
  1218. #
  1219. removef $PKGINST - < ${REMF_FILES} >/dev/null 2>&1
  1220. removef -f $PKGINST
  1221. rm -f ${REMF_FILES}
  1222.  
  1223. # Do not clean up /tmp/inet since postreboot.sh uses it
  1224. # to determine if the inet package was installed by the 
  1225. # boot floppy scripts. It it was, then postreboot.sh will
  1226. # run the inet request script.
  1227. rm -fr /tmp/inet/* 1>/dev/null 2>&1
  1228.  
  1229. #
  1230. #    wrap up with installf -f  and exit message (required reboot)
  1231. #
  1232.  
  1233. installf -f $PKGINST
  1234.  
  1235. # if the idbuild failed then exit with error message..
  1236. #
  1237. if [ ${IDBUILD_FLAG} -eq 1 ]
  1238. then
  1239.     exit ${FAILURE}
  1240. fi
  1241.  
  1242. exit     10
  1243.