OpenSolaris_b135/pkgdefs/SUNWdhcsr/preinstall

#!/bin/sh
#
# CDDL HEADER START
#
# The contents of this file are subject to the terms of the
# Common Development and Distribution License, Version 1.0 only
# (the "License").  You may not use this file except in compliance
# with the License.
#
# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
# or http://www.opensolaris.org/os/licensing.
# See the License for the specific language governing permissions
# and limitations under the License.
#
# When distributing Covered Code, include this CDDL HEADER in each
# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
# If applicable, add the following below this CDDL HEADER, with the
# fields enclosed by brackets "[]" replaced with your own identifying
# information: Portions Copyright [yyyy] [name of copyright owner]
#
# CDDL HEADER END
#
#
#ident	"%Z%%M%	%I%	%E% SMI"
#
# Copyright 2003 Sun Microsystems, Inc.  All rights reserved.
# Use is subject to license terms.
#
# Convert Solaris 7 and 8 versions of DHCP service to new configuration
#

#
# translate_init_options
# Translate command line options that were in the startup script
# to configuration file options.
#
translate_init_options()
{
while getopts b:dh:i:no:r:t:vel: optname; do
	case $optname in
		b) echo "BOOTP_COMPAT=$OPTARG" >>${CNEW};;
		d) echo "DEBUG=TRUE" >>${CNEW};;
		h) echo "RELAY_HOPS=$OPTARG" >>${CNEW};;
		i) echo "INTERFACES=$OPTARG" >>${CNEW};;
		n) echo "ICMP_VERIFY=FALSE" >>${CNEW};;
		o) echo "OFFER_CACHE_TIMEOUT=$OPTARG" >>${CNEW};;
		r) echo "RUN_MODE=relay" >>${CNEW}
		   echo "RELAY_DESTINATIONS=$OPTARG" >>${CNEW}
		   RUN_MODE=relay;;
		t) echo "RESCAN_INTERVAL=$OPTARG" >>${CNEW};;
		v) echo "VERBOSE=TRUE" >>${CNEW};;
		# ETHERS_COMPAT is no longer supported, ignore
		e) ;;
		l) echo "LOGGING_FACILITY=$OPTARG" >>${CNEW};;
	esac
done
}

PATH="/usr/sbin:/usr/bin:/bin"
export PATH

# Set PKG_INSTALL_ROOT if it is not already set.
: ${PKG_INSTALL_ROOT:=/}

#
# Create dhcpsvc.conf file. RESOURCE and PATH directives are converted  
# from /etc/default/dhcp entries. CONVER is set to indicate DHCP tables
# need to be converted. DAEMON_ENABLED is set according to criteria that
# were used by old releases when deciding whether to run the daemon.
#

CNEW=${PKG_INSTALL_ROOT}/etc/inet/dhcpsvc.conf
CTMP=${CNEW}.$$
COLD=${PKG_INSTALL_ROOT}/etc/default/dhcp
START_SCRIPT=${PKG_INSTALL_ROOT}/etc/init.d/dhcp
START_LINK=${PKG_INSTALL_ROOT}/etc/rc3.d/S34dhcp

if [ ! -f ${CNEW} ]
then
	if [ -f ${COLD} ]
	then
		cp -p ${COLD} ${CTMP}
		eval `grep '^RESOURCE=' ${CTMP}`
		NP=`grep '^PATH=' ${CTMP} | cut -c6-`
		if [ "${RESOURCE}" = "nisplus" ]
		then
			#
			# need to prepend the domainname with org_dir,
			# since we no longer automatically prepend it.
			#
			NP="org_dir.${NP}"
		fi

		# Add SUNW resource prefix
		RESOURCE="SUNW${RESOURCE}"

		# Update / Create new config file
		sed -e "s|^PATH=.*$|PATH=${NP}|" \
		    -e "s|^RESOURCE=.*$|RESOURCE=${RESOURCE}|" ${CTMP} > ${CNEW}
		if [ ${?} -eq 0 ]
		then
			echo 'CONVER=0' >> ${CNEW}
			rm -f ${CTMP}
		else
			echo "WARNING: Conversion from /etc/default/dhcp to /etc/inet/dhcpsvc.conf failed" >&2
			echo "during update of SUNWdhcsr package." >&2
			echo "Consult dhcpsvc.conf(4)" >&2
			rm -f ${CTMP} ${CNEW}
			exit 0
		fi
	fi

	# Convert any options in the init file
        eval `grep '^DHCPDOPTIONS=' ${START_SCRIPT} 2>/dev/null`
	if [ "$DHCPDOPTIONS" ]
	then
	        translate_init_options $DHCPDOPTIONS
	fi

	if [ -f ${START_LINK} ]
	then
		# The first Solaris 8 init script ran the daemon unconditionally
	
		grep '^#ident' $START_SCRIPT | grep '1\.17'
		if [ $? -eq 0 ]
		then
		   	echo "DAEMON_ENABLED=TRUE" >>${CNEW}
		else
			# Solaris 7 init script ran the daemon conditionally
	
			if [ -f ${COLD} -o "$RUN_MODE" = "relay" ]
			then
			   	echo "DAEMON_ENABLED=TRUE" >>${CNEW}
			fi
		fi
	fi

	if [ -f ${CNEW} ]
	then
		chmod 444 ${CNEW}
		chgrp sys ${CNEW}
		rm -f ${COLD} 2>/dev/null
	fi
fi

exit 0