preinstall revision 7c478bd95313f5f23a4c958a745db2134aa03244
#!/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