diff -ruN SUNWut.orig/bin/utset SUNWut/bin/utset --- SUNWut.orig/bin/utset 2008-08-19 13:32:43.000000000 +0200 +++ SUNWut/bin/utset 2008-08-19 13:43:15.000000000 +0200 @@ -870,7 +870,7 @@ print "$R $S" done ) | - (export LC_ALL=C; sort -t 'x' +0 -1n +1 -2n +2 -3n) + (export LC_ALL=C; sort -t 'x' -k 1,1n -k 2,2n -k 3,3n ) exit 0 fi diff -ruN SUNWut.orig/lib/dhcp/isc/dhcp_config_linux SUNWut/lib/dhcp/isc/dhcp_config_linux --- SUNWut.orig/lib/dhcp/isc/dhcp_config_linux 2008-08-19 13:32:43.000000000 +0200 +++ SUNWut/lib/dhcp/isc/dhcp_config_linux 2008-08-19 13:43:15.000000000 +0200 @@ -7,7 +7,11 @@ # UTDHCPDIR="$ETCDIR"/net/dhcp -DHCPDCONF=/etc/dhcpd.conf +if [[ -f "/etc/dhcp3/dhcpd.conf" ]]; then + DHCPDCONF=/etc/dhcp3/dhcpd.conf +else + DHCPDCONF=/etc/dhcpd.conf +fi UTDHCPFILE="$UTDHCPDIR"/utdhcp OPTIONSFILENAME="SunRay-options" OPTIONSFILE="$UTDHCPDIR"/"$OPTIONSFILENAME" @@ -30,12 +34,16 @@ DUMMY_SUBNET_COMMENT="# Sun Ray: dummy subnet to support DHCP clients on remote subnets" CheckChrooted() { - grep $CHROOTKEY $SYSDHCPD | grep -i yes 2>/dev/null 1>&2 - if [[ $? -eq 0 ]]; then - CHROOTED=true + if [[ -f $SYSDHCPD ]]; then + grep $CHROOTKEY $SYSDHCPD | grep -i yes 2>/dev/null 1>&2 + if [[ $? -eq 0 ]]; then + CHROOTED=true + else + CHROOTED=false + fi else CHROOTED=false - fi + fi } GenerateOptionsDHCPDBlock() { diff -ruN SUNWut.orig/lib/dhcp/isc/utdhcpservice SUNWut/lib/dhcp/isc/utdhcpservice --- SUNWut.orig/lib/dhcp/isc/utdhcpservice 2008-08-19 13:32:43.000000000 +0200 +++ SUNWut/lib/dhcp/isc/utdhcpservice 2008-08-19 14:55:53.000000000 +0200 @@ -49,14 +49,14 @@ # names of files and directories that will be touched by this script # -DHCP_CONFIG="/etc/dhcpd.conf"; +DHCP_CONFIG="/etc/dhcp3/dhcpd.conf"; DHCP_CONFIG_SAMPLE_RHAS="/usr/share/doc/dhcp-3.0.1/dhcpd.conf.sample"; DHCP_CONFIG_SAMPLE_SLES="/usr/share/doc/packages/dhcp-server/dhcpd.conf"; TMPDIR="/var/opt/SUNWut/tmp" CORONA_NAME="SunRay"; CORONA_TITLE="Sun Ray"; -if [ -d /var/lib/dhcp ]; then - DHCP_DIR="/var/lib/dhcp"; +if [ -d /var/lib/dhcp3 ]; then + DHCP_DIR="/var/lib/dhcp3"; elif [ -d /var/lib/dhcpd ]; then DHCP_DIR="/var/lib/dhcpd"; fi @@ -76,6 +76,7 @@ typeset DHCP_RUNNING=true typeset DHCP_PACKAGE_RH="dhcp" typeset DHCP_PACKAGE_SU="dhcp-server" +typeset DHCP_PACKAGE_DEB="dhcp3-server" typeset DHCP_PACKAGE="DHCP" typeset DHCP_STATE="online" @@ -97,7 +98,12 @@ typeset PACKAGE="${DHCP_PACKAGE}" if $DHCP_INSTALLED ; then # get the actual package name including version and release - PACKAGE="$(rpm -q ${DHCP_PACKAGE} 2> /dev/null)" + DPKG=$(which dpkg1) + if [[ -f "$DPKG" ]]; then + PACKAGE="$(dpkg -l | grep dhcp3-server | awk '{print $2$3}' 2> /dev/null)" + else + PACKAGE="$(rpm -q ${DHCP_PACKAGE} 2> /dev/null)" + fi fi if ! $DHCP_RUNNING && [ $DHCP_STATE != "unconfigured" ] ; then DHCP_STATE="disabled" @@ -122,12 +128,18 @@ DHCP_CONFIG_SAMPLE=${DHCP_CONFIG_SAMPLE_RHAS} elif [ -f ${DHCP_CONFIG_SAMPLE_SLES} ]; then DHCP_CONFIG_SAMPLE=${DHCP_CONFIG_SAMPLE_SLES} + elif [ -f ${DHCP_CONFIG_SAMPLE_DEB} ]; then + DHCP_CONFIG_SAMPLE=${DHCP_CONFIG_SAMPLE_DEB} fi diff ${DHCP_CONFIG} ${DHCP_CONFIG_SAMPLE} > /dev/null 2>&1 if [[ $? == 0 ]]; then mv ${DHCP_CONFIG} ${DHCP_CONFIG}.sunray else - dhcpd -t > /dev/null 2>&1 + if [[ -f "/usr/sbin/dhcpd3" ]]; then + dhcpd3 -t > /dev/null 2>&1 + else + dhcpd -t > /dev/null 2>&1 + fi if [[ $? == 0 ]]; then cat > ${DHCP_CONFIG}.$$ <<-! # ${SUNRAY_FILE_MARK} /etc/dhcpd.conf @@ -208,7 +220,11 @@ return 3 fi - /etc/init.d/dhcpd start > /dev/null 2>&1 + if [[ -f /etc/init.d/dhcp3-server ]]; then + /etc/init.d/dhcp3-server start > /dev/null 2>&1 + else + /etc/init.d/dhcpd start > /dev/null 2>&1 + fi return $? } @@ -216,8 +232,11 @@ if ! $DHCP_ENABLED ; then return 3 fi - - /etc/init.d/dhcpd stop > /dev/null 2>&1 + if [[ -f /etc/init.d/dhcp3-server ]]; then + /etc/init.d/dhcp3-server stop > /dev/null 2>&1 + else + /etc/init.d/dhcpd stop > /dev/null 2>&1 + fi return $? } @@ -225,8 +244,11 @@ if ! $DHCP_ENABLED ; then return 3 fi - - /etc/init.d/dhcpd restart > /dev/null 2>&1 + if [[ -f /etc/init.d/dhcp3-server ]]; then + /etc/init.d/dhcp3-server restart > /dev/null 2>&1 + else + /etc/init.d/dhcpd restart > /dev/null 2>&1 + fi return $? } @@ -237,11 +259,16 @@ if [[ $? -ne 0 ]] ; then ${UT_BASEDIR}/lib/utprodinfo -t installed ${DHCP_PACKAGE_SU} 2>/dev/null 1>&2 if [[ $? -ne 0 ]]; then - DHCP_INSTALLED=false - DHCP_ENABLED=false - DHCP_CONFIGURED=false - DHCP_RUNNING=false - DHCP_STATE="uninstalled" + ${UT_BASEDIR}/lib/utprodinfo -t installed ${DHCP_PACKAGE_DEB} 2>/dev/null 1>&2 + if [[ $? -ne 0 ]]; then + DHCP_INSTALLED=false + DHCP_ENABLED=false + DHCP_CONFIGURED=false + DHCP_RUNNING=false + DHCP_STATE="uninstalled" + else + DHCP_PACKAGE=${DHCP_PACKAGE_DEB} + fi else DHCP_PACKAGE=${DHCP_PACKAGE_SU} fi @@ -266,8 +293,11 @@ if [[ $? != 0 ]] ; then DHCP_CONFIGURED=false # Interface / subnet not defined fi - - /etc/init.d/dhcpd status 2> /dev/null | grep "running" >/dev/null 2>&1 + if [[ -f "/etc/init.d/dhcp3-server" ]]; then + /etc/init.d/dhcp3-server status 2> /dev/null | grep "running" >/dev/null 2>&1 + else + /etc/init.d/dhcpd status 2> /dev/null | grep "running" >/dev/null 2>&1 + fi if [[ $? -ne 0 ]]; then DHCP_RUNNING=false fi diff -ruN SUNWut.orig/lib/iu_modules/M08GDM SUNWut/lib/iu_modules/M08GDM --- SUNWut.orig/lib/iu_modules/M08GDM 2008-08-19 13:32:43.000000000 +0200 +++ SUNWut/lib/iu_modules/M08GDM 2008-08-19 14:38:07.000000000 +0200 @@ -312,7 +312,7 @@ # if IsInstallRequired; then # when installing, pick up the build number from the rpm in the CD image - typeset TMP_NAME=`ls -1tr ${GDM_DIR}/${GDM_NAME}-${GDM_OUR_VERSION}-?*.i386.rpm | tail -1` + typeset TMP_NAME=`ls -1tr ${GDM_DIR}/${GDM_NAME}-${GDM_OUR_VERSION}-?*.i386.rpm | tail -n 1` TMP_NAME=${TMP_NAME##*-} export GDM_RELEASE=${TMP_NAME%%\.i386*} else diff -ruN SUNWut.orig/lib/iu_modules/M10SunDS SUNWut/lib/iu_modules/M10SunDS --- SUNWut.orig/lib/iu_modules/M10SunDS 2008-08-19 13:32:43.000000000 +0200 +++ SUNWut/lib/iu_modules/M10SunDS 2008-08-19 13:43:15.000000000 +0200 @@ -98,7 +98,7 @@ # NOTE: head -2 to deal with the case the first line is blank. # we need only to know if there is anything under the subtree. # - ANY=$(ldapsearch -b "$BASE" -s one "objectclass=*" dn 2>&- | head -2) + ANY=$(ldapsearch -b "$BASE" -s one "objectclass=*" dn 2>&- | head -n 2) search_st=$? if [[ $search_st -eq 0 ]]; then # subtree exists, check if empty diff -ruN SUNWut.orig/lib/iu_modules/M40AuthMgr SUNWut/lib/iu_modules/M40AuthMgr --- SUNWut.orig/lib/iu_modules/M40AuthMgr 2008-08-19 13:32:43.000000000 +0200 +++ SUNWut/lib/iu_modules/M40AuthMgr 2008-08-19 13:43:15.000000000 +0200 @@ -261,19 +261,19 @@ # try to set keyval to uncommented pair first old_keyval=$(grep "=" $oldfile 2>&- | - grep "^[ ]*${key}[= ]" | tail -1) + grep "^[ ]*${key}[= ]" | tail -n 1) # if no uncommented pair, take the last commented pair [[ -z "$old_keyval" ]] && \ old_keyval=$(grep "=" $oldfile 2>&- | - grep "^[# ]*${key}[= ]" | tail -1) + grep "^[# ]*${key}[= ]" | tail -n 1) # try to set keyval to uncommented pair first new_keyval=$(grep "=" $newfile 2>&- | - grep "^[ ]*${key}[= ]" | tail -1) + grep "^[ ]*${key}[= ]" | tail -n 1) # if no uncommented pair, take the last commented pair [[ -z "$new_keyval" ]] && \ new_keyval=$(grep "=" $newfile 2>&- | - grep "^[# ]*${key}[= ]" | tail -1) + grep "^[# ]*${key}[= ]" | tail -n 1) # # Check if this parameter does not have to be modified diff -ruN SUNWut.orig/lib/support_lib/iu_lib SUNWut/lib/support_lib/iu_lib --- SUNWut.orig/lib/support_lib/iu_lib 2008-08-19 13:32:43.000000000 +0200 +++ SUNWut/lib/support_lib/iu_lib 2008-08-19 13:43:15.000000000 +0200 @@ -183,8 +183,8 @@ for patchid in $all_patches; do print -n "... checking patch ${patchid} ... " - exist=$(grep "${patchid}-[0-9][0-9]" ${showrev_p} | head -1) - patch=$(\ls -1 "$dir" 2>&- | grep "^${patchid}" | tail -1) + exist=$(grep "${patchid}-[0-9][0-9]" ${showrev_p} | head -n 1) + patch=$(\ls -1 "$dir" 2>&- | grep "^${patchid}" | tail -n 1) pkgs=$(cd "${dir}/${patch}" 2>&-; \ls -1 */pkginfo 2>&- | sed -e 's:/pkginfo::g') diff -ruN SUNWut.orig/lib/support_lib/sras_config SUNWut/lib/support_lib/sras_config --- SUNWut.orig/lib/support_lib/sras_config 2008-08-19 13:32:43.000000000 +0200 +++ SUNWut/lib/support_lib/sras_config 2008-08-19 13:43:15.000000000 +0200 @@ -580,6 +580,13 @@ rm -f /etc/opt/SUNWut/http/auto.start fi print ${APACHECTL} > /etc/opt/SUNWut/http/auto.start + if [[ -f /etc/default/apache2 ]]; then + . /etc/default/apache2 + if [[ "$NO_START" = "1" ]]; then + echo "# 0 = start on boot; 1 = don't start on boot" > /etc/default/apache2 + echo "NO_START=0" >> /etc/default/apache2 + fi + fi } function RemoveAutoStart { @@ -898,6 +905,8 @@ if [[ $OS == "Linux" ]]; then if [[ -f /etc/httpd/conf/magic || -f /etc/httpd/magic ]]; then HTTPD_SCRIPT=/usr/sbin/httpd + elif [[ -f /etc/apache2/magic ]]; then + HTTPD_SCRIPT=/usr/sbin/apache2 fi fi @@ -938,6 +947,8 @@ BUNDLED_MAGIC=/etc/httpd/conf/magic elif [[ -f /etc/httpd/magic ]]; then BUNDLED_MAGIC=/etc/httpd/magic + elif [[ -f /etc/apache2/magic ]]; then + BUNDLED_MAGIC=/etc/apache2/magic fi ;; esac @@ -1066,11 +1077,26 @@ fi STATUS=1 fi + + # Check for apache in Debian/Ubuntu location + elif [[ -f /etc/apache2/magic ]]; then + APACHEDIR="/etc/apache2" + APACHETMP="$ETC_OPT_UT"/http/templates/apache.tpl.debian + APACHECTL="/etc/init.d/apache2" fi ;; esac if [[ -n $APACHEDIR ]]; then - APACHECFG="$APACHEDIR"/httpd.conf + if [[ "$OS" = "Linux" ]]; then + . /etc/lsb-release + if [[ "$DISTRIB_ID" = "Ubuntu" ]] || [[ "$DISTRIB_ID" = "Debian" ]]; then + APACHECFG="$APACHEDIR"/apache2.conf + else + APACHECFG="$APACHEDIR"/httpd.conf + fi + else + APACHECFG="$APACHEDIR"/httpd.conf + fi fi ApacheInstalled diff -ruN SUNWut.orig/lib/support_lib/upgrade_lib SUNWut/lib/support_lib/upgrade_lib --- SUNWut.orig/lib/support_lib/upgrade_lib 2008-08-19 13:32:43.000000000 +0200 +++ SUNWut/lib/support_lib/upgrade_lib 2008-08-19 13:43:15.000000000 +0200 @@ -56,9 +56,9 @@ for key in $(awk -F= '{ print $1 }' $oldfile 2>&- | grep -v "^#" | sort -u); do old_keyval=$(grep "^[ ]*$key[= ]" $oldfile 2>&- | - tail -1) + tail -n 1) new_keyval=$(grep "^[ ]*$key[= ]" $newfile 2>&- | - tail -1) + tail -n 1) if [[ -n "$old_keyval" && -n "$new_keyval" ]]; then if [[ "$old_keyval" != "$new_keyval" ]]; then DoUpgrade "$key" "$old_keyval" "$new_keyval" "$newfile" @@ -116,7 +116,7 @@ fi for key in $(grep -v "^#" "$oldfile" 2>&- | awk -F= '{ print $1 }' | sort -u); do - line=$(grep "^${key}[ =]" "$oldfile" 2>&- | tail -1) + line=$(grep "^${key}[ =]" "$oldfile" 2>&- | tail -n 1) grep "$line" "$newfile" 2>&1 >/dev/null || \ DoAppend "$line" "$newfile" done @@ -564,7 +564,7 @@ return 1 fi - _RETURN_VAL=$(ls -1 ${TARFILE}* | tail -1) + _RETURN_VAL=$(ls -1 ${TARFILE}* | tail -n 1) return 0 diff -ruN SUNWut.orig/lib/utadmingid SUNWut/lib/utadmingid --- SUNWut.orig/lib/utadmingid 2008-08-19 13:32:43.000000000 +0200 +++ SUNWut/lib/utadmingid 2008-08-19 13:43:15.000000000 +0200 @@ -15,7 +15,7 @@ ETCDIR="/etc/opt/SUNWut" UTADMINPW=${ETCDIR}/utadmin.pw if [ -f $UTADMINPW ] ; then - WEBGUI_GROUP=`/bin/ls -gn $UTADMINPW | /bin/awk '{print $3}' ` + WEBGUI_GROUP=`/bin/ls -gn $UTADMINPW | awk '{print $3}' ` fi WEBGUI_GROUP=${WEBGUI_GROUP:-root} print $WEBGUI_GROUP diff -ruN SUNWut.orig/lib/utctl.d/features/utcompatlinksctl SUNWut/lib/utctl.d/features/utcompatlinksctl --- SUNWut.orig/lib/utctl.d/features/utcompatlinksctl 2008-08-19 13:32:43.000000000 +0200 +++ SUNWut/lib/utctl.d/features/utcompatlinksctl 2008-08-19 15:11:07.000000000 +0200 @@ -128,14 +128,14 @@ LIBLDAP=/usr/lib/libldap.so.199 LIBLDAP64=/usr/lib64/libldap.so.199 - COMPATLIB_LIBLDAP=/usr/lib/libldap-2.3.so.0 - COMPATLIB_LIBLDAP64=/usr/lib64/libldap-2.3.so.0 + COMPATLIB_LIBLDAP=/usr/lib/libldap-2.4.so.2 + COMPATLIB_LIBLDAP64=/usr/lib64/libldap-2.4.so.2 COMPATLINK_LIBLDAP=$LIB_COMPATLINKS/${LIBLDAP##*/} COMPATLINK64_LIBLDAP=$LIB_COMPATLINKS64/${LIBLDAP##*/} LIBLBER=/usr/lib/liblber.so.199 LIBLBER64=/usr/lib64/liblber.so.199 - COMPATLIB_LIBLBER=/usr/lib/liblber-2.3.so.0 + COMPATLIB_LIBLBER=/usr/lib/liblber-2.4.so.2 COMPATLIB_LIBLBER64=/usr/lib64/liblber-2.3.so.0 COMPATLINK_LIBLBER=$LIB_COMPATLINKS/${LIBLBER##*/} COMPATLINK64_LIBLBER=$LIB_COMPATLINKS64/${LIBLBER##*/} diff -ruN SUNWut.orig/lib/utctl.d/features/utcronctl SUNWut/lib/utctl.d/features/utcronctl --- SUNWut.orig/lib/utctl.d/features/utcronctl 2008-08-19 13:32:43.000000000 +0200 +++ SUNWut/lib/utctl.d/features/utcronctl 2008-08-19 13:43:15.000000000 +0200 @@ -37,13 +37,13 @@ return fi - (set +e; head -1 $CRONFILE | \ + (set +e; head -n 1 $CRONFILE | \ grep "^# DO NOT EDIT THIS FILE - edit the master and reinstall" \ > /dev/null 2>&1) if [ $? -eq 0 ]; then # comment exists, remove them cat /dev/null >$TMPFILE_COMM - head -3 $CRONFILE | sed \ + head -n 3 $CRONFILE | sed \ -e "/^# DO NOT EDIT THIS FILE - edit the master and reinstall/d" \ -e "/^# (\/[^ ]* installed/d" \ -e "/^# (Cron version/d" >> $TMPFILE_COMM diff -ruN SUNWut.orig/lib/utctl.d/features/utgdmconfigctl SUNWut/lib/utctl.d/features/utgdmconfigctl --- SUNWut.orig/lib/utctl.d/features/utgdmconfigctl 2008-08-19 13:32:43.000000000 +0200 +++ SUNWut/lib/utctl.d/features/utgdmconfigctl 2008-08-20 14:18:44.000000000 +0200 @@ -206,12 +206,13 @@ SYSTEM_XINITRCD="/etc/X11/xinit/xinitrc.d" SUNRAY_XINITRCD="/etc/opt/SUNWut/xinitrc.d" # Determine GDM Install Path - GDM_PATH=`rpm -ql "gdm" | grep "custom.conf" ` - if [ $? != 0 ]; then - print -u2 "Error: Cannot determine GDM install directory" - exit 1; - fi - GDM_DIR=${GDM_PATH%%custom\.conf*} + #GDM_PATH=`rpm -ql "gdm" | grep "custom.conf" ` + #if [ $? != 0 ]; then + # print -u2 "Error: Cannot determine GDM install directory" + # exit 1; + #fi + #GDM_DIR=${GDM_PATH%%custom\.conf*} + GDM_DIR="/etc/gdm/" SYSTEM_CUSTOMCONF="${GDM_DIR}custom.conf" GDM_PACKAGE_NAME="gdm" TMPFILE="/var/opt/SUNWut/tmp/custom.conf.tmp.$$" diff -ruN SUNWut.orig/lib/utdmsession SUNWut/lib/utdmsession --- SUNWut.orig/lib/utdmsession 2008-08-19 13:32:43.000000000 +0200 +++ SUNWut/lib/utdmsession 2008-08-19 13:43:15.000000000 +0200 @@ -26,7 +26,7 @@ #exec >/var/tmp/utdmsession.$$ 2>&1 # Debug #set -x -MOD="`/bin/basename $0`" +MOD="`basename $0`" USAGE="usage: $MOD [-c|-d] Xdisplay [-z tag]" UTMNT_DIRLOCK=".session" diff -ruN SUNWut.orig/lib/utdtsession SUNWut/lib/utdtsession --- SUNWut.orig/lib/utdtsession 2008-08-19 13:32:43.000000000 +0200 +++ SUNWut/lib/utdtsession 2008-08-25 16:46:15.000000000 +0200 @@ -554,7 +554,7 @@ # so that a new session can be created. # get the existing session ID - oldsid=$(head -1 $tif) + oldsid=$(head -n 1 $tif) # get the existing session type OLD_SESSION_TYPE="" diff -ruN SUNWut.orig/lib/utprodinfo SUNWut/lib/utprodinfo --- SUNWut.orig/lib/utprodinfo 2008-08-19 13:32:43.000000000 +0200 +++ SUNWut/lib/utprodinfo 2008-08-19 13:43:15.000000000 +0200 @@ -75,6 +75,8 @@ set -A SunOS_Mapped_Sed # Mapped parameter query format for the Linux packaging utility set -A Linux_Mapped_Param +# Mapped parameter query format for the dpkg packaging utility +set -A Debian_Mapped_Param # Maximum number of parameters allowed typeset -i MAXParam=1 @@ -82,42 +84,51 @@ Param[${MAXParam}]="BASEDIR" SunOS_Mapped_Param[${MAXParam}]="BASEDIR" Linux_Mapped_Param[${MAXParam}]="%{INSTALLPREFIX}" +Debian_Mapped_Param[${MAXParam}]="INSTALLPREFIX" let MAXParam+=1 # --- VERSION - version number with the build info. Ex: 2.0_37.b Param[${MAXParam}]="VERSION" SunOS_Mapped_Param[${MAXParam}]="VERSION" SunOS_Mapped_Sed[${MAXParam}]="s/\([0-9]\{1,\}\.[0-9]\{1,\}_[0-9]\{1,2\}\.\{0,1\}[a-z]\{0,1\}\),.*/\1/" Linux_Mapped_Param[${MAXParam}]="%{VERSION}_%{RELEASE}" +Debian_Mapped_Param[${MAXParam}]="DEBVERSION" let MAXParam+=1 # --- PSTAMP - product timestamp Param[${MAXParam}]="PSTAMP" SunOS_Mapped_Param[${MAXParam}]="PSTAMP" Linux_Mapped_Param[${MAXParam}]="%{BUILDTIME:date}" +Debian_Mapped_Param[${MAXParam}]="" let MAXParam+=1 # --- NAME - description of the package. Param[${MAXParam}]="NAME" SunOS_Mapped_Param[${MAXParam}]="NAME" Linux_Mapped_Param[${MAXParam}]="%{SUMMARY}" +Debian_Mapped_Param[${MAXParam}]='${Description;40}' let MAXParam+=1 # --- PRODVERS - product version without the build info. Ex: 2.0 Param[${MAXParam}]="PRODVERS" SunOS_Mapped_Param[${MAXParam}]="SUNW_PRODVERS" Linux_Mapped_Param[${MAXParam}]="%{VERSION}" +Debian_Mapped_Param[${MAXParam}]="DEBPRODVERS" let MAXParam+=1 # --- PKGNAME - package name. Ex: SUNWuto Param[${MAXParam}]="PKGNAME" SunOS_Mapped_Param[${MAXParam}]="PKGINST" Linux_Mapped_Param[${MAXParam}]="%{NAME}" +Debian_Mapped_Param[${MAXParam}]='${Package}\\n' let MAXParam+=1 # --- INSTDATE - date the package is installed on the system. Param[${MAXParam}]="INSTDATE" SunOS_Mapped_Param[${MAXParam}]="INSTDATE" Linux_Mapped_Param[${MAXParam}]="%{INSTALLTIME:date}" +Debian_Mapped_Param[${MAXParam}]="" let MAXParam+=1 # --- PATCHLIST - list of patches installed for this package. Param[${MAXParam}]="PATCHLIST" SunOS_Mapped_Param[${MAXParam}]="PATCHLIST" Linux_Mapped_Param[${MAXParam}]="" +Debian_Mapped_Param[${MAXParam}]="" + let MAXParam+=1 @@ -156,14 +167,22 @@ # add key name manipulation sed script SEDLIST="${SEDLIST} -e s/^${SunOS_Mapped_Param[${1}]}=/${Param[${1}]}=/" fi - else - if [[ -n "${Linux_Mapped_Param[${1}]}" ]]; then + elif [[ ${PREFIX} = "Debian" ]]; then + if [[ -n "${Debian_Mapped_Param[${1}]}" ]]; then if ${2}; then - MAPPEDLIST="${MAPPEDLIST}${Param[${1}]}=${Linux_Mapped_Param[${1}]}\\n" + MAPPEDLIST="${MAPPEDLIST}${Param[${1}]}=${Debian_Mapped_Param[${1}]}\\n" else - MAPPEDLIST="${Linux_Mapped_Param[${1}]}\\n" + MAPPEDLIST="${Debian_Mapped_Param[${1}]}\\n" fi fi + else + if [[ -n "${Linux_Mapped_Param[${1}]}" ]]; then + if ${2}; then + MAPPEDLIST="${MAPPEDLIST}${Param[${1}]}=${Linux_Mapped_Param[${1}]}\\n" + else + MAPPEDLIST="${Linux_Mapped_Param[${1}]}\\n" + fi + fi fi } @@ -323,6 +342,14 @@ return $? } +Debian_dispAll() { + $DEBUG + # NOTE: must sort first so that we can return the exit code from grep + dpkg -l | grep "Sun Ray" + return $? +} + + # # dispParams - displays the parameter information in key-value form. # $1 - package name @@ -345,6 +372,43 @@ return 0 } +Debian_dispParams() { + $DEBUG + if ! ${PREFIX}_testPkg installed $PKGNAME; then + # package not installed; + print -u2 "${ERROR_PREF} package $PKGNAME not installed" + return 1 + fi + + buildParamList "$@" + if [[ $? -eq 1 ]]; then + # found no params, just return + return 0 + fi + + # This is becaue the alien converted packaged are lowercase + DEB="`echo "${PKGNAME}" | tr '[A-Z]' '[a-z]'`" + VERSION="" + PRODVERS="" + + # The below is a bit of a hack to get the correct informtin out of dpkg-query + # it always returns /opt as the basedir + + if [ "`echo "${MAPPEDLIST}"|grep "DEBVERSION"`" ]; then + VERSION="`dpkg-query -f '${Version}\n' -W "${DEB}" | sed -e 's/-/_/'`" + fi + if [ "`echo "${MAPPEDLIST}"|grep "DEBPRODVERS"`" ]; then + PRODVERS="`dpkg-query -f '${Version}\n' -W "${DEB}" | sed -e 's/-.*$//'`" + fi + + QL="`echo "${MAPPEDLIST}"|sed -e 's/INSTALLPREFIX/\/opt/g' -e "s/DEBVERSION/${VERSION}/g" -e "s/DEBPRODVERS/${PRODVERS}/g"`" + if [ "`echo "${QL}"|grep '\\$'`" ]; then + dpkg-query -f "${QL}" -W "${DEB}" + else + echo "${QL}" + fi + return 0 +} # # testPkg - test the condition specified on the package. @@ -377,6 +441,34 @@ return 1 } +Debian_testPkg() { + $DEBUG + if [[ $# -ne 2 ]]; then + return 1 + fi + DEB="`echo "$2" | tr '[A-Z]' '[a-z]'`" + case $1 in + "installed") # package installed, could be either partial or complete + dpkg-query -W $DEB > /dev/null 2>&1 + return $?;; + "partial") # package partially installed + # + # rpm does not understand the concept of partially installed packages. + # So, for now, we always return 1 (ie. false) since it can never be + # partially installed packages. + # + return 1;; + "complete") # package completely installed + # dpkg format does not have a verify option, this will return if installed even partially + dpkg-query -q $DEB > /dev/null 2>&1 + return $?;; + esac + + # invalid test condition + print -u2 "${ERROR_PREF} invalid test operation \"$1\"." + return 1 +} + PREFIX=`uname -s` if [[ -z "$PREFIX" ]]; then @@ -384,6 +476,12 @@ print -u2 "${ERROR_PREF} unable to determince the OS running on this system." exit 1 fi +if [[ "$PREFIX" = "Linux" ]]; then + . /etc/lsb-release + if [[ "$DISTRIB_ID" = "Ubuntu" ]] || [[ "$DISTRIB_ID" = "Debian" ]]; then + PREFIX="Debian" + fi +fi OPMODE="" SUBOP="" diff -ruN SUNWut.orig/lib/utwebadmin SUNWut/lib/utwebadmin --- SUNWut.orig/lib/utwebadmin 2008-08-19 13:32:43.000000000 +0200 +++ SUNWut/lib/utwebadmin 2008-08-19 13:43:15.000000000 +0200 @@ -101,6 +101,10 @@ fi done + # in Debian, /etc/shells starts with a comment and therefore + # this stupid script results in 'SU_SHELL=-s #' + SU_SHELL="-s /bin/ksh" + else echo "Not supported on detected OS ${OS}." 1>&2 exit $EXIT_FAILURE diff -ruN SUNWut.orig/lib/utxsun SUNWut/lib/utxsun --- SUNWut.orig/lib/utxsun 2008-08-19 13:32:43.000000000 +0200 +++ SUNWut/lib/utxsun 2008-08-19 13:43:15.000000000 +0200 @@ -31,12 +31,17 @@ # fontpath is for a particular system. We'll grep through the # XF86Config file. For FCS we'll do this at install time and # keep the path in a file. -if [[ -f /etc/X11/XF86Config ]] ; then +if [[ -f /etc/X11/xorg.conf ]]; then + XCFG_FILE=/etc/X11/xorg.conf +else + XCFG_FILE=/etc/X11/XF86Config +fi +if [[ -f $XCFG_FILE ]] ; then # match lines with FontPath that are not commented out, # accumulate the path, but remove double quotes before appending: FONTPATH=$($AWK '$1 == "FontPath" { fp = fp "," substr($2,2,length($2)-2) } \ END { print substr(fp,2) } \ - ' /etc/X11/XF86Config) + ' $XCFG_FILE) if [ x$FONTPATH != x ] ; then XMOREOPTS="-fp $FONTPATH" fi diff -ruN SUNWut.orig/lib/xmgr/gdm/add-dpy SUNWut/lib/xmgr/gdm/add-dpy --- SUNWut.orig/lib/xmgr/gdm/add-dpy 2008-08-19 13:32:43.000000000 +0200 +++ SUNWut/lib/xmgr/gdm/add-dpy 2008-08-19 13:43:15.000000000 +0200 @@ -64,7 +64,7 @@ xcdesc="DisplayManager.*_%d.exportList: SUN_SUNRAY_TOKEN=$token CORONA_TOKEN=$token" if [ "$type" = normal ] then - xsdesc=":%d SunRay local /usr/X11R6/bin/Xnewt :%d" + xsdesc=":%d SunRay local /usr/bin/Xnewt :%d" else xsdesc="# :%d RESERVED" fi diff -ruN SUNWut.orig/lib/xmgr/gdm/notify SUNWut/lib/xmgr/gdm/notify --- SUNWut.orig/lib/xmgr/gdm/notify 2008-08-19 13:32:43.000000000 +0200 +++ SUNWut/lib/xmgr/gdm/notify 2008-08-20 14:21:02.000000000 +0200 @@ -10,12 +10,13 @@ export PATH=/usr/bin:/usr/sbin:/opt/gnome/bin:/bin:/sbin # Determine GDM Install Path -GDM_PATH=`rpm -ql "gdm" | grep "Init/Default"` -if [ $? != 0 ]; then - print -u2 "Cannot determine GDM install directory" - exit 1; -fi -GDM_DIR=${GDM_PATH%%Init\/Default*} +#GDM_PATH=`rpm -ql "gdm" | grep "Init/Default"` +#if [ $? != 0 ]; then +# print -u2 "Cannot determine GDM install directory" +# exit 1; +#fi +#GDM_DIR=${GDM_PATH%%Init\/Default*} +GDM_DIR="/etc/gdm/" SUNRAY_GDM_DIR=/etc/opt/SUNWut/gdm PRESESSION_DIR=${GDM_DIR}PreSession diff -ruN SUNWut.orig/lib/xmgr/gdm/remove-dpy SUNWut/lib/xmgr/gdm/remove-dpy --- SUNWut.orig/lib/xmgr/gdm/remove-dpy 2008-08-19 13:32:43.000000000 +0200 +++ SUNWut/lib/xmgr/gdm/remove-dpy 2008-08-20 14:21:42.000000000 +0200 @@ -37,12 +37,13 @@ xconfiglock=$dir/config.lock # X-Windows config lock file # Determine GDM Install Path -GDM_PATH=`rpm -ql "gdm" | grep "Init/Default"` -if [ $? != 0 ]; then - print -u2 "Cannot determine GDM install directory" - exit 1; -fi -GDM_DIR=${GDM_PATH%%Init\/Default*} +#GDM_PATH=`rpm -ql "gdm" | grep "Init/Default"` +#if [ $? != 0 ]; then +# print -u2 "Cannot determine GDM install directory" +# exit 1; +#fi +#GDM_DIR=${GDM_PATH%%Init\/Default*} +GDM_DIR="/etc/gdm/" PRESESSION_DIR=${GDM_DIR}PreSession POSTSESSION_DIR=${GDM_DIR}PostSession diff -ruN SUNWut.orig/lib/xmgr/gdm/reset-dpy SUNWut/lib/xmgr/gdm/reset-dpy --- SUNWut.orig/lib/xmgr/gdm/reset-dpy 2008-08-19 13:32:43.000000000 +0200 +++ SUNWut/lib/xmgr/gdm/reset-dpy 2008-08-20 14:22:11.000000000 +0200 @@ -11,12 +11,13 @@ export PATH=/usr/bin:/usr/sbin:/opt/gnome/bin:/bin:/sbin # Determine GDM Install Path -GDM_PATH=`rpm -ql "gdm" | grep "Init/Default" ` -if [ $? != 0 ]; then - print -u2 "Cannot determine GDM install directory" - exit 1; -fi -GDM_DIR=${GDM_PATH%%Init\/Default*} +#GDM_PATH=`rpm -ql "gdm" | grep "Init/Default" ` +#if [ $? != 0 ]; then +# print -u2 "Cannot determine GDM install directory" +# exit 1; +#fi +#GDM_DIR=${GDM_PATH%%Init\/Default*} +GDM_DIR="/etc/gdm/" PRESESSION_DIR=${GDM_DIR}PreSession POSTSESSION_DIR=${GDM_DIR}PostSession diff -ruN SUNWut.orig/sbin/utadm SUNWut/sbin/utadm --- SUNWut.orig/sbin/utadm 2008-08-19 13:32:43.000000000 +0200 +++ SUNWut/sbin/utadm 2008-08-19 13:43:15.000000000 +0200 @@ -5,7 +5,6 @@ # Copyright 2008 Sun Microsystems, Inc. All rights reserved. # Use is subject to license terms. # - # # Configuring SunRay interfaces: # ------------------------------ @@ -219,17 +218,28 @@ else NETWORKS="${ETC_OPT_UT}/net/networks"; fi - DHCPCONFIG="/etc/dhcpd.conf" + if [[ -f "/etc/dhcp3/dhcpd.conf" ]]; then + DHCPCONFIG="/etc/dhcp3/dhcpd.conf" + else + DHCPCONFIG="/etc/dhcpd.conf" + fi GREP=grep # XXX need to figure out which <=== - INIT_DHCP="/etc/init.d/dhcpd"; + if [[ -f "/etc/init.d/dhcp3-server" ]]; then + INIT_DHCP="/etc/init.d/dhcp3-server" + else + INIT_DHCP="/etc/init.d/dhcpd" + fi if [[ -d "/etc/sysconfig/network-scripts" ]] ; then IFCONFIG_SCRIPT="/etc/sysconfig/network-scripts/ifcfg-" IFCONFIG_BOOT="ONBOOT=yes" BOOTPROTO=none - else - IFCONFIG_SCRIPT="/etc/sysconfig/network/ifcfg-" - IFCONFIG_BOOT="STARTMODE=onboot" + elif [[ -f "/etc/network/interfaces" ]] ; then + IFCONFIG_SCRIPT="/etc/network/interfaces" BOOTPROTO=static + else + IFCONFIG_SCRIPT="/etc/sysconfig/network/ifcfg-" + IFCONFIG_BOOT="STARTMODE=onboot" + BOOTPROTO=static fi IFCFG_INET=""; @@ -991,6 +1001,10 @@ # get the intf's symbolic name INTF_NAME=`getent hosts ${INTF_IPA} | awk '{print $2}'`; if [ -z "${INTF_NAME}" ]; then + # Work around for bug in Ubuntu getent Launchpad BugID 28585 + INTF_NAME=`getent hosts | grep -w ${INTF_IPA} | awk '{print $2}'` + fi + if [ -z "${INTF_NAME}" ]; then print -u2 "Error: host name for ${INTF_IPA} not found" exit 1; fi @@ -1145,8 +1159,40 @@ ifconfig ${INTF} "${IPADDR}" up netmask "${NETMASK}" broadcast ${BROADCAST}; RC=$? if [[ ${RC} -eq 0 ]] ; then - rm -f ${TMPDIR}/tmpfile.$$; - cat > ${TMPDIR}/tmpfile.$$ <<-! + . /etc/lsb-release 2 > /dev/null + if [[ "$DISTRIB_ID" = "Ubuntu" ]] || [[ "$DISTRIB_ID" = "Debian" ]]; then + rm -f ${TMPDIR}/tmpfile.$$; + cat > ${TMPDIR}/tmpfile.$$ <<-! +# SUNRAY ADD +auto ${INTF} +iface ${INTF} inet ${BOOTPROTO} +address ${IPADDR} +netmask ${NETMASK} +# SUNRAY ADD +! + awk ' { + if (NF == "0") print $0; + else if ($1 == "allow") {print $0; param="false";} + else if ($1 == "mapping") {print $0; param="false";} + else if ($1 == "auto") + {if ($2 == Intf) print "# SUNRAY DEL "$0; + else print $0; + param="false";} + else if ($1 == "iface") + {if ($2 == Intf) {print "# SUNRAY DEL "$0; param="true";} + else {print $0; param="false";}} + else if (param == "true") print "# SUNRAY DEL "$0; + else {print $0; param="false";} + }' \ + Intf=${INTF} \ + ${IFCONFIG_SCRIPT} > ${IFCONFIG_SCRIPT}.$$ + + cat ${IFCONFIG_SCRIPT}.$$ ${TMPDIR}/tmpfile.$$ > ${IFCONFIG_SCRIPT} + rm -f ${TMPDIR}/tmpfile.$$ ${IFCONFIG_SCRIPT}.$$ + + else + rm -f ${TMPDIR}/tmpfile.$$; + cat > ${TMPDIR}/tmpfile.$$ <<-! DEVICE=${INTF} # SUNRAY ADD USERCTL=no # SUNRAY ADD ${IFCONFIG_BOOT} # SUNRAY ADD @@ -1156,17 +1202,18 @@ NETMASK=${NETMASK} # SUNRAY ADD IPADDR=${IPADDR} # SUNRAY ADD ! - if [[ -f ${IFCONFIG_SCRIPT}${INTF} ]] ; then - sed -e "/^"HWADDR"/!s/^/# SUNRAY DEL /" "${IFCONFIG_SCRIPT}${INTF}" > ${IFCONFIG_SCRIPT}${INTF}.$$ - # - # change ether config so it starts on boot - - rm -f ${IFCONFIG_SCRIPT}${INTF} - cat ${IFCONFIG_SCRIPT}${INTF}.$$ ${TMPDIR}/tmpfile.$$ > ${IFCONFIG_SCRIPT}${INTF} - rm -f ${IFCONFIG_SCRIPT}${INTF}.$$ ${TMPDIR}/tmpfile.$$ - else - mv -f ${TMPDIR}/tmpfile.$$ ${IFCONFIG_SCRIPT}${INTF}; - fi + if [[ -f ${IFCONFIG_SCRIPT}${INTF} ]] ; then + sed -e "/.*/s/^/# SUNRAY DEL /" "${IFCONFIG_SCRIPT}${INTF}" > ${IFCONFIG_SCRIPT}${INTF}.$$ + # + # change ether config so it starts on boot + + rm -f ${IFCONFIG_SCRIPT}${INTF} + cat ${IFCONFIG_SCRIPT}${INTF}.$$ ${TMPDIR}/tmpfile.$$ > ${IFCONFIG_SCRIPT}${INTF} + rm -f ${IFCONFIG_SCRIPT}${INTF}.$$ ${TMPDIR}/tmpfile.$$ + else + mv -f ${TMPDIR}/tmpfile.$$ ${IFCONFIG_SCRIPT}${INTF}; + fi + fi fi print "### finished install of \"${INTF}\" interface"; return $RC @@ -1187,6 +1234,38 @@ if [[ ! -s ${IFCONFIG_SCRIPT}${INTF} ]]; then rm -f ${IFCONFIG_SCRIPT}${INTF} fi + elif [[ -f ${IFCONFIG_SCRIPT} ]] ; then + cp ${IFCONFIG_SCRIPT} ${IFCONFIG_SCRIPT}.$$ + awk ' { + if (($2 == "SUNRAY" ) && ($3 == "DEL")) + {if (($4 == "auto") && ($5 == Intf)) + {output=""; + for (field=4; field<=NF; ++field) {output=output$field" ";} + print output; + param="false";} + else if (($4 == "iface") && ($5 == Intf )) + {output=""; for (field=4; field<=NF; ++field) {output=output$field" ";} + print output; + param="true";} + else if (param == "true") + {output=""; for (field=4; field<=NF; ++field) {output=output$field" ";} + print output; + param="true";} + else {print $0; param="false";} + } + else if (($2 == "SUNRAY") && ($3 == "ADD")) + {if (comment_count == "1") {if (remove != "true") {print $0;};comment_count = "2";remove = "false";} + else if (comment_count == "2") {comment_count = "1";remove = "possible"} + else {comment_count = "1"; remove="possible";} + } + else if (remove == "possible") + if (($1 == "auto") && ($2 == Intf)) {remove="true";} + else {remove="false";print "# SUNRAY ADD"; print $0;} + else if (remove != "true") {print $0; param="false";} + }' \ + Intf=${INTF} \ + ${IFCONFIG_SCRIPT}.$$ > ${IFCONFIG_SCRIPT} + rm -f ${IFCONFIG_SCRIPT}.$$ else print -u2 "Warning: unable to update ${IFCONFIG_SCRIPT}${INTF}"; fi @@ -1826,7 +1905,6 @@ ${UTDHCPSERVICE} disable > /dev/null 2>&1 } - # # adds the SR network configuration for both interface and subnetwork only. # @@ -3164,6 +3242,8 @@ lease_file=/var/lib/dhcpd/dhcpd.leases elif [ -f /var/lib/dhcp/db/dhcpd.leases ]; then lease_file=/var/lib/dhcp/db/dhcpd.leases + elif [ -f /var/lib/dhcp3/dhcpd.leases ]; then + lease_file=/var/lib/dhcp3/dhcpd.leases fi rm -f $tmp_leases diff -ruN SUNWut.orig/sbin/utconfig SUNWut/sbin/utconfig --- SUNWut.orig/sbin/utconfig 2008-08-19 13:32:43.000000000 +0200 +++ SUNWut/sbin/utconfig 2008-08-19 13:43:15.000000000 +0200 @@ -145,7 +145,12 @@ # Define Linux specific LDAP variables # Determine which LDAP client package is installed # - LCL_PACKAGE="$(rpm -qf /usr/bin/ldapadd 2>/dev/null)" + . /etc/lsb-release + if [[ "$DISTRIB_ID" = "Ubuntu" ]] || [[ "$DISTRIB_ID" = "Debian" ]]; then + LCL_PACKAGE="$(dpkg-query -S /usr/bin/ldapadd | awk -F: '{print $1}' 2>/dev/null)" + else + LCL_PACKAGE="$(rpm -qf /usr/bin/ldapadd 2>/dev/null)" + fi # Define Linux versions of LDAP client commands # @@ -159,7 +164,11 @@ # Define Linux specific filenames # ETCSERVICES="/etc/services" - DHCPCONFIG="/etc/dhcpd.conf" + if [[ -f "/etc/dhcp3/dhcpd.conf" ]]; then + DHCPCONFIG="/etc/dhcp3/dhcpd.conf" + else + DHCPCONFIG="/etc/dhcpd.conf" + fi ;; *) diff -ruN SUNWut.orig/sbin/utfwadm SUNWut/sbin/utfwadm --- SUNWut.orig/sbin/utfwadm 2008-08-19 13:32:43.000000000 +0200 +++ SUNWut/sbin/utfwadm 2008-08-19 13:43:15.000000000 +0200 @@ -144,7 +144,7 @@ function GetVersion { FW_FILE_INPUT=${1} # extract the version string and make file names - FW_TYPE=$(od -t x1 $FW_FILE_INPUT | head -1 | awk '{ print sprintf("%s%s%s%s", $2,$3,$4,$5)}') 2> /dev/null + FW_TYPE=$(od -t x1 $FW_FILE_INPUT | head -n 1 | awk '{ print sprintf("%s%s%s%s", $2,$3,$4,$5)}') 2> /dev/null case $FW_TYPE in 4badbeef | 8badbeef) $UTWHAT $FW_FILE_INPUT > ${TMPDIR}/fw_strings.$$ diff -ruN SUNWut.orig/sbin/utinstall SUNWut/sbin/utinstall --- SUNWut.orig/sbin/utinstall 2008-08-19 13:32:43.000000000 +0200 +++ SUNWut/sbin/utinstall 2008-08-20 14:20:14.000000000 +0200 @@ -232,12 +232,13 @@ fi if [ "$G_OS" = "Linux" ]; then # Determine GDM Install Path - GDM_PATH=`rpm -ql "gdm" | grep "Init/Default" ` - if [ $? != 0 ]; then - print -u2 "Cannot determine GDM install directory" - break; - fi - GDM_DIR=${GDM_PATH%%Init\/Default*} + #GDM_PATH=`rpm -ql "gdm" | grep "Init/Default" ` + #if [ $? != 0 ]; then + # print -u2 "Cannot determine GDM install directory" + # break; + # fi + # GDM_DIR=${GDM_PATH%%Init\/Default*} + GDM_DIR="/etc/gdm/" for display in `ls "${GDM_DIR}PreSession" 2>/dev/null`; do if ls -l ${GDM_DIR}PreSession/$display | \ diff -ruN SUNWut.orig/sbin/utreplica SUNWut/sbin/utreplica --- SUNWut.orig/sbin/utreplica 2008-08-19 13:32:43.000000000 +0200 +++ SUNWut/sbin/utreplica 2008-08-19 13:43:15.000000000 +0200 @@ -78,7 +78,13 @@ ETCSERVICES=/etc/inet/services LOGFILE="/var/adm/log/$PROGRAM_ID.${TIMESTAMP}.log" ;; - Linux) LCL_PACKAGE="$(rpm -qf /usr/bin/ldapadd 2>/dev/null)" + Linux) . /etc/lsb-release + if [[ "$DISTRIB_ID" = "Ubuntu" ]] || [[ "$DISTRIB_ID" = "Debian" ]]; then + LCL_PACKAGE="$(dpkg-query -S /usr/bin/ldapadd | awk -F: '{print $1}' 2>/dev/null)" + else + LCL_PACKAGE="$(rpm -qf /usr/bin/ldapadd 2>/dev/null)" + fi + LDAPSEARCH="/usr/bin/ldapsearch -x -LLL " GREP=/bin/grep ETCSERVICES=/etc/services @@ -1125,7 +1131,7 @@ Fatal "$server is already configured as a primary server." elif print $remote_rep | egrep "$SECONDARY_ID"\ >/dev/null 2>&1; then - typeset -l tmp_host=`print "$remote_rep" | tail -1` + typeset -l tmp_host=`print "$remote_rep" | tail -n 1` if [ "${tmp_host}" != $HOSTNAME ]; then Fatal "$server is already configured as a secondary server\n"\ "with a different primary." @@ -1164,7 +1170,7 @@ then # only check the first line of the file. This avoids the problem of accidentally # picking up the "replica" attribute which will also have the same string match. - head -1 $DSSERV_REPLOG | grep '^replica: ' >/dev/null 2>&1 + head -n 1 $DSSERV_REPLOG | grep '^replica: ' >/dev/null 2>&1 if [ $? -ne 0 ] then cat /dev/null > $DSSERV_REPLOG