1 #! /bin/sh 2 # 3 # CDDL HEADER START 4 # 5 # The contents of this file are subject to the terms of the 6 # Common Development and Distribution License (the "License"). 7 # You may not use this file except in compliance with the License. 8 # 9 # You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 10 # or http://www.opensolaris.org/os/licensing. 11 # See the License for the specific language governing permissions 12 # and limitations under the License. 13 # 14 # When distributing Covered Code, include this CDDL HEADER in each 15 # file and include the License file at usr/src/OPENSOLARIS.LICENSE. 16 # If applicable, add the following below this CDDL HEADER, with the 17 # fields enclosed by brackets "[]" replaced with your own identifying 18 # information: Portions Copyright [yyyy] [name of copyright owner] 19 # 20 # CDDL HEADER END 21 # 22 23 # 24 # Copyright 2006 Sun Microsystems, Inc. All rights reserved. 25 # Use is subject to license terms. 26 # 27 #pragma ident "%Z%%M% %I% %E% SMI" 28 # 29 # 30 # Preremove script for SUNWdcar. 31 # 32 # This script removes the hardware provider section for the dca 33 # driver from /etc/crypto/kcf.conf 34 # 35 DRV=dca 36 37 NAMEMAJOR="${BASEDIR}/etc/name_to_major" 38 39 # 40 # Determine if we are on an alternate BASEDIR 41 # 42 if [ "${BASEDIR:=/}" = "/" ] 43 then 44 REM_DRV="/usr/sbin/rem_drv" 45 else 46 REM_DRV="/usr/sbin/rem_drv -b ${BASEDIR}" 47 fi 48 49 # 50 # Remove the driver, but only if this has not already been done. 51 # 52 grep -w "${DRV}" ${NAMEMAJOR} > /dev/null 2>&1 53 if [ $? -eq 0 ]; then 54 ${REM_DRV} ${DRV} || exit 1 55 fi 56 57 pkg_start="# Start $PKGINST" 58 pkg_end="# End $PKGINST" 59 kcfconf=${BASEDIR}/etc/crypto/kcf.conf 60 tmpfile=/tmp/$$kcfconf 61 error=no 62 63 # 64 # If /etc/crypto/kcf.conf doesn't exist, bail immediately 65 # 66 if [ ! -f "$kcfconf" ] 67 then 68 echo "$0: ERROR - $kcfconf doesn't exist" 69 exit 2 70 fi 71 72 # 73 # Strip all entries belonging to this package 74 # 75 start=0 76 end=0 77 egrep -s "$pkg_start" $kcfconf && start=1 78 egrep -s "$pkg_end" $kcfconf && end=1 79 80 if [ $start -ne $end ] ; then 81 echo "$0: missing Start or End delimiters for $PKGINST in $kcfconf." 82 echo "$0: $kcfconf may be corrupted and was not updated." 83 error=yes 84 exit 2 85 fi 86 87 if [ $start -eq 1 ] 88 then 89 # To preserve the gid 90 cp -p $kcfconf $tmpfile 91 sed -e "/$pkg_start/,/$pkg_end/d" $kcfconf > $tmpfile || error=yes 92 if [ "$error" = no ] 93 then 94 mv $tmpfile $kcfconf || error=yes 95 fi 96 rm -f $tmpfile 97 else 98 echo "$0: WARNING - no entries to be removed from $kcfconf" 99 exit 0 100 fi 101 102 if [ "$error" = yes ] 103 then 104 echo "$0: ERROR - failed to update $kcfconf." 105 exit 2 106 fi 107 exit 0