i.etcsystem 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
#
#
# Copyright 2004 Sun Microsystems, Inc. All rights reserved.
# Use is subject to license terms.
#
# ident "%Z%%M% %I% %E% SMI"
#
PATH="/usr/bin:/usr/sbin:${PATH}"
export PATH
TAG=new
CLEANUP_FILE=/tmp/CLEANUP
eolpp_echo_warning() {
echo ""
echo "\tNOTE: $1 has been modified since it contains references to"
echo "\tpriority paging tunables. Please review the changed file."
echo ""
}
eolpp_write_sed_script() {
cat > /tmp/eolpp.sed.scr.$$ << EOF
/^[ ]*set[ ]\{1,\}priority_paging.*/ {
:Mod
i\\
\\
* NOTE: As of Solaris 9, priority paging is unnecessary and has been removed.\\
* Since references to priority paging related tunables will now result in\\
* boot-time warnings, the assignment below has been commented out. For more\\
* details, see the Solaris 9 Release Notes, or the "Solaris Tunable Parameters\\
* Reference Manual".\\
s/^\(.*\)/* \1/
a\\
}
/^[ ]*set[ ]\{1,\}cachefree.*/ b Mod
EOF
}
KEYSTR="the assignment below has been left to provide compatibility with your"
eolipc() {
#
# We don't want to run again if we have already marked entries as
# "old but still used".
#
egrep -s '^* "(sem|shm|msg)info_.*" tunable has been replaced' $1 &&
return
sed ' /^[ ]*set[ ].*semsys:seminfo_semmns/ b inactiv
/^[ ]*set[ ].*semsys:seminfo_semvmx/ b inactiv
/^[ ]*set[ ].*semsys:seminfo_semmnu/ b inactiv
/^[ ]*set[ ].*semsys:seminfo_semaem/ b inactiv
/^[ ]*set[ ].*semsys:seminfo_semume/ b inactiv
/^[ ]*set[ ].*semsys:seminfo_semusz/ b inactiv
/^[ ]*set[ ].*semsys:seminfo_semmap/ b inactiv
/^[ ]*set[ ].*shmsys:shminfo_shmseg/ b inactiv
/^[ ]*set[ ].*shmsys:shminfo_shmmin/ b inactiv
/^[ ]*set[ ].*msgsys:msginfo_msgmax/ b inactiv
/^[ ]*set[ ].*msgsys:msginfo_msgssz/ b inactiv
/^[ ]*set[ ].*msgsys:msginfo_msgmap/ b inactiv
/^[ ]*set[ ].*msgsys:msginfo_msgseg/ b inactiv
/^[ ]*set[ ].*msgsys:msginfo_msgmni/ b legacy
/^[ ]*set[ ].*msgsys:msginfo_msgmnb/ b legacy
/^[ ]*set[ ].*msgsys:msginfo_msgtql/ b legacy
/^[ ]*set[ ].*shmsys:shminfo_shmmni/ b legacy
/^[ ]*set[ ].*shmsys:shminfo_shmmax/ b legacy
/^[ ]*set[ ].*semsys:seminfo_semmni/ b legacy
/^[ ]*set[ ].*semsys:seminfo_semopm/ b legacy
/^[ ]*set[ ].*semsys:seminfo_semmsl/ b legacy
b
:inactiv
s/^[^:]*:\(.\{14\}\).*/\
* NOTE: As of Solaris 10, System V IPC tunables are unnecessary. The\
* assignment to "\1" no longer has any effect and has been\
* commented out. For more details, see the Solaris 10 "What'\''s New"\
* document, or the "Solaris Tunable Parameters Reference Manual".\
*\
* &\
/
b
:legacy
s/^[^:]*:\(.\{14\}\).*/\
* NOTE: As of Solaris 10, System V IPC tunables are unnecessary. The\
* "\1" tunable has been replaced with a resource control;\
* the assignment below has been left to provide compatibility with your\
* previous settings. For more details, see the Solaris 10 "What'\''s New"\
* document, or the "Solaris Tunable Parameters Reference Manual".\
\
&/' $1 > /tmp/s.$$ && cp /tmp/s.$$ $dest
rm -f /tmp/s.$$
}
while read src dest
do
if [ ! -f $dest ] ; then
cp $src $dest
else
#
# These tunable parameters have moved from nfs to nfssrv.
#
sed -e "s/^\([^*]*set[ ]*\)nfs\([ ]*:[ ]*nfs_portmon\)/\1nfssrv\2/" \
-e "s/^\([^*]*set[ ]*\)nfs\([ ]*:[ ]*rfs_write_async\)/\1nfssrv\2/" $dest >/tmp/s.$$
cp /tmp/s.$$ $dest
rm -f /tmp/s.$$
#
# Remove md_mirror_wow_flg line.
#
egrep -v 'md_mirror:md_mirror_wow_fl' $dest > /tmp/s.$$
cp /tmp/s.$$ $dest
rm -f /tmp/s.$$
#
# Remove MDD driver forceloads for mirrored root.
# Only remove the forceloads between Begin/End MDD root info.
#
nawk <$dest >/tmp/s.$$ '
/^\* Begin MDD root info \(do not edit\)/ {
mdinfo=1
}
/^\* End MDD root info \(do not edit\)/ {
mdinfo=0
}
/^forceload/ {
if (mdinfo == 0) {
print $0
}
next
}
/.*/ { print $0 }
'
cp /tmp/s.$$ $dest
rm -f /tmp/s.$$
#
# Priority paging has been EOL'ed. Comment-out any lines
# referencing priority paging tunables, and add explanatory
# comment. Doing this would avoid the confusion which could
# occur, if we were to just silently delete these lines.
#
egrep "^[ ]*set[ ]+priority_paging" $dest> /dev/null 2>&1
s1=$?
egrep "^[ ]*set[ ]+cachefree" $dest > /dev/null 2>&1
s2=$?
if [ $s1 = 0 -o $s2 = 0 ]; then
eolpp_write_sed_script;
sed -f /tmp/eolpp.sed.scr.$$ $dest > /tmp/s.$$;
if [ $? = 0 ]; then
eolpp_echo_warning $dest;
cp /tmp/s.$$ $dest;
fi
rm -f /tmp/s.$$;
rm -f /tmp/eolpp.sed.scr.$$;
fi
# Comment out obsolete System V IPC Tunables
eolipc $dest
#
# determine whether existing etc/system file is based on
# the same one being installed. If so, no need to update it.
#
newrev=`sed -n 's/^.*\(@(#)system.*\)\".*/\1/p' $src`
oldrev=`sed -n 's/^.*\(@(#)system.*\)\".*/\1/p' $dest`
if [ "$oldrev" != "$newrev" ] ; then
#
# existing /etc/system file is based on a different
# original installed version of etc/system. Determine
# whether it has been modified by looking for non-blank,
# non-comment lines in the file. If it has been
# modified, preserve it and install the new one as
# /etc/system.new.
#
egrep -v '(^[ ]*$)|(^\*)' $dest >/dev/null 2>&1
if [ $? = 0 ] ; then
realdest=`expr $dest : "/a\(.*\)"`
if [ "$realdest" = "" ] ; then
realdest=$dest
fi
cp $src $dest.${TAG}
#
# Checking for the existance of "rootfs:cachefs" from
# an AutoClient installation in the existing /etc/system.
# Transfer it to /etc/system.new if it does.
#
grep 'rootfs:cachefs' $dest > /dev/null 2>&1
if [ $? = 0 ] ; then
grep 'rootfs:cachefs' $dest >> $dest.${TAG}
fi
echo "EXISTING_FILE_PRESERVED: ${realdest} ${realdest}.${TAG}" \
>> ${CLEANUP_FILE}
else
# existing file hasn't been modified, so
# install over it.
cp $src $dest
fi
fi
fi
done
exit 0