Cross Reference: /illumos-gate/usr/src/pkgdefs/SUNWdhcsr/preinstall
preinstall revision 7c478bd95313f5f23a4c958a745db2134aa03244
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
#!/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