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

  1. #ident    "@(#)postinstall    1.4"
  2. #ident  "$Header: $"
  3.  
  4. TMP=/tmp/rpc.$$
  5.  
  6. PKGMSG=${PKGINST}.pkg
  7. LOCALE=${LC_ALL:-${LC_MESSAGES:-${LANG:-"C"}}}
  8.  
  9. if [ ! -f /usr/lib/locale/${LOCALE}/LC_MESSAGES/${PKGMSG} ]
  10. then
  11.    if [ -f ${REQDIR}/inst/locale/${LOCALE}/${PKGMSG} -a \
  12.     -d /usr/lib/locale/${LOCALE}/LC_MESSAGES ]
  13.    then
  14.     cp ${REQDIR}/inst/locale/${LOCALE}/${PKGMSG} \
  15.        /usr/lib/locale/${LOCALE}/LC_MESSAGES
  16.    fi
  17. fi
  18. # install a module.  $1 is the module name
  19.  
  20. do_install() {
  21.     ERR=/tmp/${1}.err
  22.     IDCOMPS="Driver.o Driver_atup.o Driver_mp.o Master System Mfsys Sfsys Node"
  23.  
  24.     if [ -f ${1}.Dr ]; then mv ${1}.Dr Driver.o; fi
  25.     if [ -f ${1}_atup.Dr ]; then mv ${1}_atup.Dr Driver_atup.o; fi
  26.     if [ -f ${1}_mp.Dr ]; then mv ${1}_mp.Dr Driver_mp.o; fi
  27.  
  28.     if
  29.         [ -f ${1}.Sp ]
  30.     then
  31.         mv ${1}.Sp Space.c
  32.     fi
  33.     if
  34.         [ -f ${1}.Ma ]
  35.     then
  36.         grep -v "^[\*#]ident" ${1}.Ma > Master
  37.         rm -rf ${1}.Ma
  38.     fi
  39.     if
  40.         [ -f ${1}.Sy ]
  41.     then
  42.         grep -v "^[\*#]ident" ${1}.Sy |
  43.             sed "${SEDCMD1}" >System
  44.         rm -rf ${1}.Sy
  45.     fi
  46.     if
  47.         [ -f ${1}.Mf ]
  48.     then
  49.         grep -v "^[\*#]ident" ${1}.Mf > Mfsys
  50.         rm -rf ${1}.Mf
  51.     fi
  52.     if
  53.         [ -f ${1}.Sf ]
  54.     then
  55.         grep -v "^[\*#]ident" ${1}.Sf |
  56.             sed "${SEDCMD2}" >Sfsys
  57.         rm -rf ${1}.Sf
  58.     fi
  59.     if
  60.         [ -f ${1}.No ]
  61.     then
  62.         grep -v "^[\*#]ident" ${1}.No > Node
  63.         rm -rf ${1}.No
  64.     fi
  65.     if
  66.         [ -f ${1}.Mt ]
  67.     then
  68.         mv ${1}.Mt Mtune
  69.     fi
  70.     if
  71.         [ -f ${1}.Dt ]
  72.     then
  73.         mv ${1}.Dt Dtune
  74.     fi
  75.     ${CONFBIN}/idcheck -p ${1} > ${ERR} 2>&1
  76.     if [ $? = 0 ]
  77.     then
  78.         ${CONFBIN}/idinstall -P ${PKGINST} -a ${1} > ${ERR} 2>&1
  79.         RET=$?
  80.     else
  81.         ${CONFBIN}/idinstall -P ${PKGINST} -u ${1} > ${ERR} 2>&1
  82.         RET=$?
  83.     fi
  84.     rm -rf ${IDCOMPS}
  85.     if [ ${RET} != 0 ]
  86.     then
  87.         message -d `pfmt -s nostd -g ${PKGMSG}:1 "The installation cannot be completed due to an error in the driver installation during the installation of the %s module of the %s.  The file %s contains the errors." ${1} ${NAME} ${ERR} 2>&1`
  88.         exit ${FAILURE}
  89.     fi
  90.     rm -rf ${ERR}
  91. }
  92.  
  93. FAILURE=1    # fatal error
  94.  
  95. CONFDIR=/etc/conf
  96. CONFBIN=${CONFDIR}/bin
  97. VOLATILES=`echo /tmp/rpc/* /tmp/rpc`
  98.  
  99. NOTOOLS=`pfmt -s error -g ${PKGMSG}:2 " The Installable Driver feature has been removed. The %s cannot be installed." ${NAME} 2>&1`
  100.  
  101. SEDCMD1="s/[     ]N[     ]/    Y    /"
  102. SEDCMD2="s/[     ]N/    Y/"
  103.  
  104. cd /var/sadm/pkg/${PKG}/install
  105.  
  106. # determine that ID/TP tools are available
  107.  
  108. if
  109.     [ ! -x ${CONFBIN}/idbuild -o ! -x ${CONFBIN}/idinstall \
  110.             -o ! -x ${CONFBIN}/idcheck ]
  111. then
  112.     message -d ${NOTOOLS}
  113.     exit $FAILURE
  114. fi
  115.  
  116. cd /tmp/rpc
  117.  
  118. for MODULE in krpc ktli des
  119. do
  120.     do_install ${MODULE}
  121. done
  122.  
  123. # Rename Driver.o to international version of DES
  124.  
  125. # If we're upgrading or overlaying, Driver_i.o may already exist,
  126. # so we need to remove it first to guarantee we do it right.
  127.  
  128. rm -f ${CONFDIR}/pack.d/des/Driver_i.o
  129. mv ${CONFDIR}/pack.d/des/Driver.o ${CONFDIR}/pack.d/des/Driver_i.o
  130.  
  131. # Check if domestic version of DES installed
  132. if [ -f ${CONFDIR}/pack.d/des/Driver_d.o ]
  133. then
  134.     ln -f ${CONFDIR}/pack.d/des/Driver_d.o ${CONFDIR}/pack.d/des/Driver.o
  135. else
  136.     ln -f ${CONFDIR}/pack.d/des/Driver_i.o ${CONFDIR}/pack.d/des/Driver.o
  137. fi
  138. installf ${PKGINST} ${CONFDIR}/pack.d/des/Driver.o v ? ? ? ? ? ?
  139.  
  140. # Remove volatile files from OAM data base
  141. rm -f ${TMP} 1>/dev/null 2>&1
  142. removef ${PKGINST} ${VOLATILES} 1>/dev/null 2>&1
  143. removef -f ${PKGINST} 1>/dev/null 2>&1
  144. cd /tmp
  145. rm -rf /tmp/rpc 1>/dev/null 2>&1
  146.  
  147. # rebuild for changes to take effect
  148. ${CONFBIN}/idbuild 2>>${TMP}
  149. if
  150.     [ "$?" -ne "0" ]
  151. then
  152.     pfmt -s nostd -g ${PKGMSG}:3 "An error has occurred during the rebuild of the UNIX System.\nErrors have been written to the file %s\n" ${TMP} 2>&1
  153.     exit ${FAILURE}
  154. fi
  155.  
  156. installf -f $PKGINST
  157.  
  158. # create the NET role; if it is already there, ignore error
  159. #/usr/bin/adminrole -n NET > /dev/null 2>&1
  160.  
  161. #The following for-loop assigns the commands to the NET role.  Privileges
  162. #are gotten right from /etc/security/tcb/privs.
  163. #
  164. #while read cmd
  165. #do
  166. #    base=`basename $cmd`
  167. #    privs=`
  168. #    egrep ":${cmd}$" /etc/security/tcb/privs| #Find command in tcb database
  169. #    sed 's/^.*%inher,\(.*\):.*/\1/p' |      # get the set of inher privs
  170. #    sed 's/^.*%fixed,\(.*\):.*//p' |      # delete the fixed privs
  171. #    sed 's/,/:/gp'                  # changed ,'s to :'s
  172. #    `
  173. #    if [ -z "$privs" ]
  174. #    then
  175. #        if [ ! -f $cmd ]
  176. #            then    echo "Warning: $cmd not found on the system.\c"
  177. #                echo "    Not adding to TFM."
  178. #                continue
  179. #            else    adminrole -a $base:$cmd NET
  180. #        fi
  181. #    else
  182. #        adminrole -a $base:$cmd:$privs NET
  183. #    fi
  184. #done <<!
  185. #/usr/sbin/rpcbind
  186. #/usr/sbin/keyserv
  187. #/usr/lib/netsvc/rwall/rpc.rwalld
  188. #/usr/lib/netsvc/rusers/rpc.rusersd
  189. #/usr/lib/netsvc/spray/rpc.sprayd
  190. #/usr/sbin/spray
  191. #/usr/sbin/newkey
  192. #/usr/bin/rpcinfo
  193. #/usr/bin/rusers
  194. #/usr/bin/chkey
  195. #/usr/bin/domainname
  196. #/usr/bin/keylogin
  197. #/usr/bin/keylogout
  198. #!
  199.  
  200. exit 10
  201.