#!/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