diff -ruN /opt/SUNWut.orig/bin/utset /opt/SUNWut/bin/utset --- /opt/SUNWut.orig/bin/utset 2008-10-30 10:20:00.000000000 +0100 +++ /opt/SUNWut/bin/utset 2008-10-30 10:22:52.000000000 +0100 @@ -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 /opt/SUNWut.orig/lib/dhcp/isc/dhcp_config_linux /opt/SUNWut/lib/dhcp/isc/dhcp_config_linux --- /opt/SUNWut.orig/lib/dhcp/isc/dhcp_config_linux 2008-10-30 10:20:00.000000000 +0100 +++ /opt/SUNWut/lib/dhcp/isc/dhcp_config_linux 2008-10-30 10:22:52.000000000 +0100 @@ -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 /opt/SUNWut.orig/lib/dhcp/isc/utdhcpservice /opt/SUNWut/lib/dhcp/isc/utdhcpservice --- /opt/SUNWut.orig/lib/dhcp/isc/utdhcpservice 2008-10-30 10:20:00.000000000 +0100 +++ /opt/SUNWut/lib/dhcp/isc/utdhcpservice 2008-10-30 10:22:52.000000000 +0100 @@ -49,9 +49,14 @@ # names of files and directories that will be touched by this script # -DHCP_CONFIG="/etc/dhcpd.conf"; +if [[ -f "/etc/dhcp3/dhcpd.conf" ]]; then + DHCP_CONFIG="/etc/dhcp3/dhcpd.conf" +else + DHCP_CONFIG="/etc/dhcpd.conf" +fi 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"; +DHCP_CONFIG_SAMPLE_DEB="/usr/share/doc/dhcp3-server/examples/dhcpd.conf"; TMPDIR="/var/opt/SUNWut/tmp" CORONA_NAME="SunRay"; CORONA_TITLE="Sun Ray"; @@ -59,6 +64,8 @@ DHCP_DIR="/var/lib/dhcp"; elif [ -d /var/lib/dhcpd ]; then DHCP_DIR="/var/lib/dhcpd"; +elif [ -d /var/lib/dhcp3 ]; then + DHCP_DIR="/var/lib/dhcp3"; fi SUNRAY_FILE_MARK="${CORONA_TITLE} default DHCP config file" @@ -76,6 +83,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 +105,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 +135,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 +227,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 +239,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 +251,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 +266,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 +300,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 /opt/SUNWut.orig/lib/iu_modules/M08GDM /opt/SUNWut/lib/iu_modules/M08GDM --- /opt/SUNWut.orig/lib/iu_modules/M08GDM 2008-10-30 10:20:00.000000000 +0100 +++ /opt/SUNWut/lib/iu_modules/M08GDM 2008-10-30 10:22:52.000000000 +0100 @@ -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 /opt/SUNWut.orig/lib/iu_modules/M10SunDS /opt/SUNWut/lib/iu_modules/M10SunDS --- /opt/SUNWut.orig/lib/iu_modules/M10SunDS 2008-10-30 10:20:00.000000000 +0100 +++ /opt/SUNWut/lib/iu_modules/M10SunDS 2008-10-30 10:22:52.000000000 +0100 @@ -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 /opt/SUNWut.orig/lib/iu_modules/M40AuthMgr /opt/SUNWut/lib/iu_modules/M40AuthMgr --- /opt/SUNWut.orig/lib/iu_modules/M40AuthMgr 2008-10-30 10:20:00.000000000 +0100 +++ /opt/SUNWut/lib/iu_modules/M40AuthMgr 2008-10-30 10:22:52.000000000 +0100 @@ -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 /opt/SUNWut.orig/lib/support_lib/iu_lib /opt/SUNWut/lib/support_lib/iu_lib --- /opt/SUNWut.orig/lib/support_lib/iu_lib 2008-10-30 10:20:00.000000000 +0100 +++ /opt/SUNWut/lib/support_lib/iu_lib 2008-10-30 10:22:52.000000000 +0100 @@ -200,8 +200,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 /opt/SUNWut.orig/lib/support_lib/sras_config /opt/SUNWut/lib/support_lib/sras_config --- /opt/SUNWut.orig/lib/support_lib/sras_config 2008-10-30 10:20:00.000000000 +0100 +++ /opt/SUNWut/lib/support_lib/sras_config 2008-10-30 10:22:52.000000000 +0100 @@ -392,13 +392,13 @@ else if [[ $APACHE_INSTALLED == "both" ]]; then if [[ $OS == "Linux" ]]; then - if ! ReplyIsYes "\nThere is an instance of Apache detected in both" \ + if ! ReplyIsYes "\nThere is an istance of Apache detected in both" \ "\n/etc/httpd and /usr/apache. The default is /etc/httpd." \ "\nWould you like to use this instance? Answering \"no\"" \ "\nwill configure the /usr/apache instance." ; then APACHETMP="$ETC_OPT_UT"/http/templates/apache.tpl - APACHECTL="/usr/apache/bin/apachectl" - APACHEDIR="/usr/apache/conf" + APACHECTL="/usr/bin/apache2ctl" + APACHEDIR="/etc/apache2" APACHECFG="$APACHEDIR"/httpd.conf fi UT_LOCATION=$APACHEDIR @@ -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 /opt/SUNWut.orig/lib/support_lib/upgrade_lib /opt/SUNWut/lib/support_lib/upgrade_lib --- /opt/SUNWut.orig/lib/support_lib/upgrade_lib 2008-10-30 10:20:00.000000000 +0100 +++ /opt/SUNWut/lib/support_lib/upgrade_lib 2008-10-30 10:22:52.000000000 +0100 @@ -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 /opt/SUNWut.orig/lib/utadmingid /opt/SUNWut/lib/utadmingid --- /opt/SUNWut.orig/lib/utadmingid 2008-10-30 10:20:00.000000000 +0100 +++ /opt/SUNWut/lib/utadmingid 2008-10-30 10:22:52.000000000 +0100 @@ -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 /opt/SUNWut.orig/lib/utctl.d/features/utcronctl /opt/SUNWut/lib/utctl.d/features/utcronctl --- /opt/SUNWut.orig/lib/utctl.d/features/utcronctl 2008-10-30 10:20:00.000000000 +0100 +++ /opt/SUNWut/lib/utctl.d/features/utcronctl 2008-10-30 10:22:52.000000000 +0100 @@ -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 /opt/SUNWut.orig/lib/utdmsession /opt/SUNWut/lib/utdmsession --- /opt/SUNWut.orig/lib/utdmsession 2008-10-30 10:20:00.000000000 +0100 +++ /opt/SUNWut/lib/utdmsession 2008-10-30 10:22:52.000000000 +0100 @@ -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 /opt/SUNWut.orig/lib/utdtsession /opt/SUNWut/lib/utdtsession --- /opt/SUNWut.orig/lib/utdtsession 2008-10-30 10:20:00.000000000 +0100 +++ /opt/SUNWut/lib/utdtsession 2008-10-30 10:22:52.000000000 +0100 @@ -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 /opt/SUNWut.orig/lib/utgdmconfigpath /opt/SUNWut/lib/utgdmconfigpath --- /opt/SUNWut.orig/lib/utgdmconfigpath 2008-10-30 10:20:00.000000000 +0100 +++ /opt/SUNWut/lib/utgdmconfigpath 2008-10-30 10:24:45.000000000 +0100 @@ -10,12 +10,12 @@ if [ "`uname -s`" = "SunOS" ]; then GDM_DIR=/etc/X11/gdm/ else - GDM_PATH=`rpm -ql "gdm" | grep "custom.conf"` + GDM_PATH=`dpkg -L "gdm" | grep "gdm.conf"` if [ $? != 0 ]; then print -u2 "Cannot determine GDM install directory" exit 1; fi - GDM_DIR=${GDM_PATH%%custom\.conf*} + GDM_DIR=${GDM_PATH%%gdm\.conf*} fi print $GDM_DIR exit 0 diff -ruN /opt/SUNWut.orig/lib/utprodinfo /opt/SUNWut/lib/utprodinfo --- /opt/SUNWut.orig/lib/utprodinfo 2008-10-30 10:20:00.000000000 +0100 +++ /opt/SUNWut/lib/utprodinfo 2008-10-30 10:22:52.000000000 +0100 @@ -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 /opt/SUNWut.orig/lib/utwebadmin /opt/SUNWut/lib/utwebadmin --- /opt/SUNWut.orig/lib/utwebadmin 2008-10-30 10:20:00.000000000 +0100 +++ /opt/SUNWut/lib/utwebadmin 2008-10-30 10:22:52.000000000 +0100 @@ -92,7 +92,7 @@ if [ ! -n "$rootShell" ]; then rootShell=/bin/sh fi - for shell in `cat /etc/shells` + for shell in `egrep -v '^#' /etc/shells` do if [ $shell != $rootShell ]; then SU_SHELL="-s $shell" diff -ruN /opt/SUNWut.orig/lib/utxsun /opt/SUNWut/lib/utxsun --- /opt/SUNWut.orig/lib/utxsun 2008-10-30 10:20:00.000000000 +0100 +++ /opt/SUNWut/lib/utxsun 2008-10-30 10:22:52.000000000 +0100 @@ -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 /opt/SUNWut.orig/lib/xkb/keycodes/usb /opt/SUNWut/lib/xkb/keycodes/usb --- /opt/SUNWut.orig/lib/xkb/keycodes/usb 1970-01-01 01:00:00.000000000 +0100 +++ /opt/SUNWut/lib/xkb/keycodes/usb 2008-10-29 07:25:15.000000000 +0100 @@ -0,0 +1,132 @@ + +// keycodes are not biased to meet the X minimum keycode + +// USB + +default xkb_keycodes "basic" { + + minimum= 8; + maximum= 235; + + = 34; + = 35; + = 36; + = 37; + = 38; + = 39; + = 40; + = 41; + = 42; + = 43; + = 49; + = 50; + + = 24; + = 30; + = 12; + = 25; + = 27; + = 32; + = 28; + = 16; + = 22; + = 23; + = 51; + = 52; + + = 8; + = 26; + = 11; + = 13; + = 14; + = 15; + = 17; + = 18; + = 19; + = 55; + = 56; + + = 33; + = 31; + = 10; + = 29; + = 9; + = 21; + = 20; + = 58; + = 59; + = 60; + + = 44; + = 45; + = 46; + = 47; + = 53; + = 57; + + = 229; + = 228; + = 230; + = 48; + = 234; +// = 232; + = 233; +}; + +xkb_keycodes "84" { + include "usb(basic)" + = 61; + = 62; + = 63; + = 64; + = 65; + = 66; + = 67; + = 68; + = 69; + = 70; + = 71; + = 75; + = 89; + = 90; + = 91; + = 93; + = 94; + = 95; + = 96; + = 97; + = 98; + = 99; + = 100; + = 101; + = 102; + = 103; +}; + +xkb_keycodes "101" { + include "usb(84)" + = 72; + = 73; + = 74; + = 76; + = 77; + = 78; + = 79; + = 80; + = 81; + = 82; + = 83; + = 84; + = 85; + = 86; + = 87; + = 88; + = 92; +}; + +xkb_keycodes "104" { + include "usb(101)" + = 231; + = 235; + = 105; +}; diff -ruN /opt/SUNWut.orig/lib/xkb/keymap/sun/ca /opt/SUNWut/lib/xkb/keymap/sun/ca --- /opt/SUNWut.orig/lib/xkb/keymap/sun/ca 1970-01-01 01:00:00.000000000 +0100 +++ /opt/SUNWut/lib/xkb/keymap/sun/ca 2008-10-30 10:22:52.000000000 +0100 @@ -0,0 +1,25 @@ + +xkb_keymap "Canada4" { + xkb_keycodes { include "sun(type4tuv)" }; + xkb_types { include "default" }; + xkb_compatibility { include "default" }; + xkb_symbols { include "sun/ca(type4)" }; + xkb_geometry { include "sun(type4tuv)" }; +}; + +xkb_keymap "Canada_Fr5" { + xkb_keycodes { include "sun(type5tuv)" }; + xkb_types { include "default" }; + xkb_compatibility { include "default" }; + xkb_symbols { include "sun/us(type5)+ca" }; + xkb_geometry { include "sun(type5tuv)" }; +}; + +xkb_keymap "Canada_Fr5_Hobo" { + xkb_keycodes { include "sun(type5tuv)" }; + xkb_types { include "default" }; + xkb_compatibility { include "default" }; + xkb_symbols { include "sun/us(type5)+ca" }; + xkb_geometry { include "sun(type5tuv)" }; +}; + diff -ruN /opt/SUNWut.orig/lib/xkb/keymap/sun/ch /opt/SUNWut/lib/xkb/keymap/sun/ch --- /opt/SUNWut.orig/lib/xkb/keymap/sun/ch 1970-01-01 01:00:00.000000000 +0100 +++ /opt/SUNWut/lib/xkb/keymap/sun/ch 2008-10-30 10:22:52.000000000 +0100 @@ -0,0 +1,81 @@ + +xkb_keymap "Switzer_Fr4" { + xkb_keycodes { include "sun(type4tuv)" }; + xkb_types { include "default" }; + xkb_compatibility { include "default" }; + xkb_symbols { include "sun/us(type4)+fr" }; + xkb_geometry { include "sun(type4tuv)" }; +}; + +xkb_keymap "Switzer_Fr5" { + xkb_keycodes { include "sun(type5tuv)" }; + xkb_types { include "default" }; + xkb_compatibility { include "default" }; + xkb_symbols { include "sun/us(type5)+fr" }; + xkb_geometry { include "sun(type5tuv)" }; +}; + +xkb_keymap "Switzer_Fr5_Hobo" { + xkb_keycodes { include "sun(type5tuv)" }; + xkb_types { include "default" }; + xkb_compatibility { include "default" }; + xkb_symbols { include "sun/us(type5)+fr" }; + xkb_geometry { include "sun(type5tuv)" }; +}; + +xkb_keymap "Switzer_Fr6" { + xkb_keycodes { include "sun(type6tuv)" }; + xkb_types { include "default" }; + xkb_compatibility { include "default" }; + xkb_symbols { include "sun/us(type5)+sun/sw(type5fr)"}; + xkb_geometry { include "sun(type6tuv)" }; +}; + +xkb_keymap "Switzer_Fr6_usb" { + xkb_keycodes { include "sun(type6tuv_usb)" }; + xkb_types { include "default" }; + xkb_compatibility { include "default" }; + xkb_symbols { include "sun/us(type5)+sun/sw(type5fr)"}; + xkb_geometry { include "sun(type6tuv)" }; +}; + +xkb_keymap "Switzer_Ge4" { + xkb_keycodes { include "sun(type4tuv)" }; + xkb_types { include "default" }; + xkb_compatibility { include "default" }; + xkb_symbols { include "sun/us(type4)+de" }; + xkb_geometry { include "sun(type4tuv)" }; +}; + +xkb_keymap "Switzer_Ge5" { + xkb_keycodes { include "sun(type5tuv)" }; + xkb_types { include "default" }; + xkb_compatibility { include "default" }; + xkb_symbols { include "sun/us(type5)+de" }; + xkb_geometry { include "sun(type5tuv)" }; +}; + +xkb_keymap "Switzer_Ge5_Hobo" { + xkb_keycodes { include "sun(type5tuv)" }; + xkb_types { include "default" }; + xkb_compatibility { include "default" }; + xkb_symbols { include "sun/us(type5)+de" }; + xkb_geometry { include "sun(type5tuv)" }; +}; + +xkb_keymap "Switzer_Ge6" { + xkb_keycodes { include "sun(type6tuv)" }; + xkb_types { include "default" }; + xkb_compatibility { include "default" }; + xkb_symbols { include "sun/us(type5)+sun/sw(type5de)"}; + xkb_geometry { include "sun(type6tuv)" }; +}; + +xkb_keymap "Switzer_Ge6_usb" { + xkb_keycodes { include "sun(type6tuv_usb)" }; + xkb_types { include "default" }; + xkb_compatibility { include "default" }; + xkb_symbols { include "sun/us(type5)+sun/sw(type5de)"}; + xkb_geometry { include "sun(type6tuv)" }; +}; + diff -ruN /opt/SUNWut.orig/lib/xkb/keymap/sun/cz /opt/SUNWut/lib/xkb/keymap/sun/cz --- /opt/SUNWut.orig/lib/xkb/keymap/sun/cz 1970-01-01 01:00:00.000000000 +0100 +++ /opt/SUNWut/lib/xkb/keymap/sun/cz 2008-10-30 10:22:52.000000000 +0100 @@ -0,0 +1,9 @@ + +xkb_keymap "Czech5" { + xkb_keycodes { include "sun(type5tuv)" }; + xkb_types { include "default" }; + xkb_compatibility { include "default" }; + xkb_symbols { include "sun/us(type5)+cz" }; + xkb_geometry { include "sun(type5tuv)" }; +}; + diff -ruN /opt/SUNWut.orig/lib/xkb/keymap/sun/dk /opt/SUNWut/lib/xkb/keymap/sun/dk --- /opt/SUNWut.orig/lib/xkb/keymap/sun/dk 1970-01-01 01:00:00.000000000 +0100 +++ /opt/SUNWut/lib/xkb/keymap/sun/dk 2008-10-30 10:22:52.000000000 +0100 @@ -0,0 +1,41 @@ + +xkb_keymap "Denmark4" { + xkb_keycodes { include "sun(type4tuv)" }; + xkb_types { include "default" }; + xkb_compatibility { include "default" }; + xkb_symbols { include "sun/us(type4)+dk" }; + xkb_geometry { include "sun(type4tuv)" }; +}; + +xkb_keymap "Denmark5" { + xkb_keycodes { include "sun(type5tuv)" }; + xkb_types { include "default" }; + xkb_compatibility { include "default" }; + xkb_symbols { include "sun/us(type5)+dk" }; + xkb_geometry { include "sun(type5tuv)" }; +}; + +xkb_keymap "Denmark5_Hobo" { + xkb_keycodes { include "sun(type5tuv)" }; + xkb_types { include "default" }; + xkb_compatibility { include "default" }; + xkb_symbols { include "sun/us(type5)+dk" }; + xkb_geometry { include "sun(type5tuv)" }; +}; + +xkb_keymap "Denmark6" { + xkb_keycodes { include "sun(type6tuv)" }; + xkb_types { include "default" }; + xkb_compatibility { include "default" }; + xkb_symbols { include "sun/us(type5)+sun/dk(type5)" }; + xkb_geometry { include "sun(type6tuv)" }; +}; + +xkb_keymap "Denmark6_usb" { + xkb_keycodes { include "sun(type6tuv_usb)" }; + xkb_types { include "default" }; + xkb_compatibility { include "default" }; + xkb_symbols { include "sun/us(type5)+sun/dk(type5)" }; + xkb_geometry { include "sun(type6tuv)" }; +}; + diff -ruN /opt/SUNWut.orig/lib/xkb/keymap/sun/gr /opt/SUNWut/lib/xkb/keymap/sun/gr --- /opt/SUNWut.orig/lib/xkb/keymap/sun/gr 1970-01-01 01:00:00.000000000 +0100 +++ /opt/SUNWut/lib/xkb/keymap/sun/gr 2008-10-30 10:22:52.000000000 +0100 @@ -0,0 +1,9 @@ + +xkb_keymap "Greece5" { + xkb_keycodes { include "sun(type5tuv)" }; + xkb_types { include "default" }; + xkb_compatibility { include "default" }; + xkb_symbols { include "sun/gr(type5)" }; + xkb_geometry { include "sun(type5tuv)" }; +}; + diff -ruN /opt/SUNWut.orig/lib/xkb/keymap/sun/hu /opt/SUNWut/lib/xkb/keymap/sun/hu --- /opt/SUNWut.orig/lib/xkb/keymap/sun/hu 1970-01-01 01:00:00.000000000 +0100 +++ /opt/SUNWut/lib/xkb/keymap/sun/hu 2008-10-30 10:22:52.000000000 +0100 @@ -0,0 +1,9 @@ + +xkb_keymap "Hungary5" { + xkb_keycodes { include "sun(type5tuv)" }; + xkb_types { include "default" }; + xkb_compatibility { include "default" }; + xkb_symbols { include "sun/us(type5basic)+sun/hu(type5)" }; + xkb_geometry { include "sun(type5tuv)" }; +}; + diff -ruN /opt/SUNWut.orig/lib/xkb/keymap/sun/it /opt/SUNWut/lib/xkb/keymap/sun/it --- /opt/SUNWut.orig/lib/xkb/keymap/sun/it 1970-01-01 01:00:00.000000000 +0100 +++ /opt/SUNWut/lib/xkb/keymap/sun/it 2008-10-30 10:22:52.000000000 +0100 @@ -0,0 +1,42 @@ + +xkb_keymap "Italy4" { + xkb_keycodes { include "sun(type4tuv)" }; + xkb_types { include "default" }; + xkb_compatibility { include "default" }; + xkb_symbols { include "sun/us(type4)+it" }; + xkb_geometry { include "sun(type4tuv)" }; +}; + +xkb_keymap "Italy5" { + xkb_keycodes { include "sun(type5tuv)" }; + xkb_types { include "default" }; + xkb_compatibility { include "default" }; + xkb_symbols { include "sun/us(type5)+it" }; + xkb_geometry { include "sun(type5tuv)" }; +}; + +xkb_keymap "Italy5_Hobo" { + xkb_keycodes { include "sun(type5tuv)" }; + xkb_types { include "default" }; + xkb_compatibility { include "default" }; + xkb_symbols { include "sun/us(type5)+it" }; + xkb_geometry { include "sun(type5tuv)" }; +}; + +xkb_keymap "Italy6" { + xkb_keycodes { include "sun(type6tuv)" }; + xkb_types { include "default" }; + xkb_compatibility { include "default" }; + xkb_symbols { include "sun/us(type5)+sun/it(type5)" }; + xkb_geometry { include "sun(type6tuv)" }; +}; + +xkb_keymap "Italy6_usb" { + xkb_keycodes { include "sun(type6tuv_usb)" }; + xkb_types { include "default" }; + xkb_compatibility { include "default" }; + xkb_symbols { include "sun/us(type5)+sun/it(type5)" }; + xkb_geometry { include "sun(type6tuv)" }; +}; + + diff -ruN /opt/SUNWut.orig/lib/xkb/keymap/sun/jp /opt/SUNWut/lib/xkb/keymap/sun/jp --- /opt/SUNWut.orig/lib/xkb/keymap/sun/jp 1970-01-01 01:00:00.000000000 +0100 +++ /opt/SUNWut/lib/xkb/keymap/sun/jp 2008-10-30 10:22:52.000000000 +0100 @@ -0,0 +1,42 @@ + +xkb_keymap "Japan4" { + xkb_keycodes { include "sun(type4jp)" }; + xkb_types { include "default" }; + xkb_compatibility { include "default" }; + xkb_symbols { include "sun/jp(type4)" }; + xkb_geometry { include "sun(type4jp)" }; +}; + +xkb_keymap "Japan5" { + xkb_keycodes { include "sun(type5_jp)" }; + xkb_types { include "default" }; + xkb_compatibility { include "default" }; + xkb_symbols { include "sun/jp(type5)" }; + xkb_geometry { include "sun(type5jp)" }; +}; + +xkb_keymap "Japan5_Hobo" { + xkb_keycodes { include "sun(type5_jp)" }; + xkb_types { include "default" }; + xkb_compatibility { include "default" }; + xkb_symbols { include "sun/jp(type5)" }; + xkb_geometry { include "sun(type5jp)" }; +}; + +xkb_keymap "Japan6" { + xkb_keycodes { include "sun(type6_jp)" }; + xkb_types { include "default" }; + xkb_compatibility { include "default" }; + xkb_symbols { include "sun/jp(type5)" }; + xkb_geometry { include "sun(type6jp)" }; +}; + +xkb_keymap "Japan6_usb" { + xkb_keycodes { include "sun(type6_jp_usb)" }; + xkb_types { include "default" }; + xkb_compatibility { include "default" }; + xkb_symbols { include "sun/jp(type5)" }; + xkb_geometry { include "sun(type6jp)" }; +}; + + diff -ruN /opt/SUNWut.orig/lib/xkb/keymap/sun/ko /opt/SUNWut/lib/xkb/keymap/sun/ko --- /opt/SUNWut.orig/lib/xkb/keymap/sun/ko 1970-01-01 01:00:00.000000000 +0100 +++ /opt/SUNWut/lib/xkb/keymap/sun/ko 2008-10-30 10:22:52.000000000 +0100 @@ -0,0 +1,41 @@ + +xkb_keymap "Korea4" { + xkb_keycodes { include "sun(type4)" }; + xkb_types { include "default" }; + xkb_compatibility { include "default" }; + xkb_symbols { include "sun/ko(type4)" }; + xkb_geometry { include "sun(type4)" }; +}; + +xkb_keymap "Korea5" { + xkb_keycodes { include "sun(type5)" }; + xkb_types { include "default" }; + xkb_compatibility { include "default" }; + xkb_symbols { include "sun/ko(type5)" }; + xkb_geometry { include "sun(type5)" }; +}; + +xkb_keymap "Korea5_Hobo" { + xkb_keycodes { include "sun(type5p)" }; + xkb_types { include "default" }; + xkb_compatibility { include "default" }; + xkb_symbols { include "sun/ko(type5)" }; + xkb_geometry { include "sun(type5)" }; +}; + +xkb_keymap "Korea6" { + xkb_keycodes { include "sun(type6)" }; + xkb_types { include "default" }; + xkb_compatibility { include "default" }; + xkb_symbols { include "sun/us(type5)+sun/ko(type5)" }; + xkb_geometry { include "sun(type6)" }; +}; + +xkb_keymap "Korea6_usb" { + xkb_keycodes { include "sun(type6_usb)" }; + xkb_types { include "default" }; + xkb_compatibility { include "default" }; + xkb_symbols { include "sun/us(type5)+sun/ko(type5)" }; + xkb_geometry { include "sun(type6)" }; +}; + diff -ruN /opt/SUNWut.orig/lib/xkb/keymap/sun/lt /opt/SUNWut/lib/xkb/keymap/sun/lt --- /opt/SUNWut.orig/lib/xkb/keymap/sun/lt 1970-01-01 01:00:00.000000000 +0100 +++ /opt/SUNWut/lib/xkb/keymap/sun/lt 2008-10-30 10:22:52.000000000 +0100 @@ -0,0 +1,9 @@ + +xkb_keymap "Lithuania5" { + xkb_keycodes { include "sun(type5tuv)" }; + xkb_types { include "default" }; + xkb_compatibility { include "default" }; + xkb_symbols { include "sun/us(type5basic)+sun/lt(type5)" }; + xkb_geometry { include "sun(type5tuv)" }; +}; + diff -ruN /opt/SUNWut.orig/lib/xkb/keymap/sun/lv /opt/SUNWut/lib/xkb/keymap/sun/lv --- /opt/SUNWut.orig/lib/xkb/keymap/sun/lv 1970-01-01 01:00:00.000000000 +0100 +++ /opt/SUNWut/lib/xkb/keymap/sun/lv 2008-10-30 10:22:52.000000000 +0100 @@ -0,0 +1,9 @@ + +xkb_keymap "Latvia5" { + xkb_keycodes { include "sun(type5tuv)" }; + xkb_types { include "default" }; + xkb_compatibility { include "default" }; + xkb_symbols { include "sun/us(type5basic)+sun/lv(type5)" }; + xkb_geometry { include "sun(type5tuv)" }; +}; + diff -ruN /opt/SUNWut.orig/lib/xkb/keymap/sun/nl /opt/SUNWut/lib/xkb/keymap/sun/nl --- /opt/SUNWut.orig/lib/xkb/keymap/sun/nl 1970-01-01 01:00:00.000000000 +0100 +++ /opt/SUNWut/lib/xkb/keymap/sun/nl 2008-10-30 10:22:52.000000000 +0100 @@ -0,0 +1,42 @@ + +xkb_keymap "Netherland4" { + xkb_keycodes { include "sun(type4tuv)" }; + xkb_types { include "default" }; + xkb_compatibility { include "default" }; + xkb_symbols { include "sun/us(type4)+nl" }; + xkb_geometry { include "sun(type4tuv)" }; +}; + +xkb_keymap "Netherland5" { + xkb_keycodes { include "sun(type5tuv)" }; + xkb_types { include "default" }; + xkb_compatibility { include "default" }; + xkb_symbols { include "sun/us(type5)+nl" }; + xkb_geometry { include "sun(type5tuv)" }; +}; + +xkb_keymap "Netherland5_Hobo" { + xkb_keycodes { include "sun(type5tuv)" }; + xkb_types { include "default" }; + xkb_compatibility { include "default" }; + xkb_symbols { include "sun/us(type5)+nl" }; + xkb_geometry { include "sun(type5tuv)" }; +}; + +xkb_keymap "Netherland6" { + xkb_keycodes { include "sun(type6tuv)" }; + xkb_types { include "default" }; + xkb_compatibility { include "default" }; + xkb_symbols { include "sun/us(type5)+nl" }; + xkb_geometry { include "sun(type6tuv)" }; +}; + +xkb_keymap "Netherland6_usb" { + xkb_keycodes { include "sun(type6tuv_usb)" }; + xkb_types { include "default" }; + xkb_compatibility { include "default" }; + xkb_symbols { include "sun/us(type5)+nl" }; + xkb_geometry { include "sun(type6tuv)" }; +}; + + diff -ruN /opt/SUNWut.orig/lib/xkb/keymap/sun/pt /opt/SUNWut/lib/xkb/keymap/sun/pt --- /opt/SUNWut.orig/lib/xkb/keymap/sun/pt 1970-01-01 01:00:00.000000000 +0100 +++ /opt/SUNWut/lib/xkb/keymap/sun/pt 2008-10-30 10:22:52.000000000 +0100 @@ -0,0 +1,42 @@ + +xkb_keymap "Portugal4" { + xkb_keycodes { include "sun(type4tuv)" }; + xkb_types { include "default" }; + xkb_compatibility { include "default" }; + xkb_symbols { include "sun/us(type4)+pt" }; + xkb_geometry { include "sun(type4tuv)" }; +}; + +xkb_keymap "Portugal5" { + xkb_keycodes { include "sun(type5tuv)" }; + xkb_types { include "default" }; + xkb_compatibility { include "default" }; + xkb_symbols { include "sun/us(type5)+pt" }; + xkb_geometry { include "sun(type5tuv)" }; +}; + +xkb_keymap "Portugal5_Hobo" { + xkb_keycodes { include "sun(type5tuv)" }; + xkb_types { include "default" }; + xkb_compatibility { include "default" }; + xkb_symbols { include "sun/us(type5)+pt" }; + xkb_geometry { include "sun(type5tuv)" }; +}; + +xkb_keymap "Portugal6" { + xkb_keycodes { include "sun(type6tuv)" }; + xkb_types { include "default" }; + xkb_compatibility { include "default" }; + xkb_symbols { include "sun/us(type5)+sun/pt(type5)" }; + xkb_geometry { include "sun(type6tuv)" }; +}; + +xkb_keymap "Portugal6_usb" { + xkb_keycodes { include "sun(type6tuv_usb)" }; + xkb_types { include "default" }; + xkb_compatibility { include "default" }; + xkb_symbols { include "sun/us(type5)+sun/pt(type5)" }; + xkb_geometry { include "sun(type6tuv)" }; +}; + + diff -ruN /opt/SUNWut.orig/lib/xkb/keymap/sun/tr /opt/SUNWut/lib/xkb/keymap/sun/tr --- /opt/SUNWut.orig/lib/xkb/keymap/sun/tr 1970-01-01 01:00:00.000000000 +0100 +++ /opt/SUNWut/lib/xkb/keymap/sun/tr 2008-10-30 10:22:52.000000000 +0100 @@ -0,0 +1,58 @@ + +xkb_keymap "Turkey5" { + xkb_keycodes { include "sun(type5tuv)" }; + xkb_types { include "default" }; + xkb_compatibility { include "default" }; + xkb_symbols { include "sun/tr(type5)" }; + xkb_geometry { include "sun(type5tuv)" }; +}; + +xkb_keymap "Turkey6" { + xkb_keycodes { include "sun(type6tuv)" }; + xkb_types { include "default" }; + xkb_compatibility { include "default" }; + xkb_symbols { include "sun/us(type5)+sun/tr"}; + xkb_geometry { include "sun(type6tuv)" }; +}; + +xkb_keymap "Turkey6_usb" { + xkb_keycodes { include "sun(type6tuv_usb)" }; + xkb_types { include "default" }; + xkb_compatibility { include "default" }; + xkb_symbols { include "sun/us(type5)+sun/tr"}; + xkb_geometry { include "sun(type6tuv)" }; +}; + +xkb_keymap "TurkeyQ6" { + xkb_keycodes { include "sun(type6tuv)" }; + xkb_types { include "default" }; + xkb_compatibility { include "default" }; + xkb_symbols { include "sun/us(type5)+sun/tr(type6Q)"}; + xkb_geometry { include "sun(type6tuv)" }; +}; + +xkb_keymap "TurkeyQ6_usb" { + xkb_keycodes { include "sun(type6tuv_usb)" }; + xkb_types { include "default" }; + xkb_compatibility { include "default" }; + xkb_symbols { include "sun/us(type5)+sun/tr(type6Q)"}; + xkb_geometry { include "sun(type6tuv)" }; +}; + +xkb_keymap "TurkeyF6" { + xkb_keycodes { include "sun(type6tuv)" }; + xkb_types { include "default" }; + xkb_compatibility { include "default" }; + xkb_symbols { include "sun/us(type5)+sun/tr(type6F)"}; + xkb_geometry { include "sun(type6)" }; +}; + +xkb_keymap "TurkeyF6_usb" { + xkb_keycodes { include "sun(type6tuv_usb)" }; + xkb_types { include "default" }; + xkb_compatibility { include "default" }; + xkb_symbols { include "sun/us(type5)+sun/tr(type6F)"}; + xkb_geometry { include "sun(type6)" }; +}; + + diff -ruN /opt/SUNWut.orig/lib/xkb/keymap/sun/tw /opt/SUNWut/lib/xkb/keymap/sun/tw --- /opt/SUNWut.orig/lib/xkb/keymap/sun/tw 1970-01-01 01:00:00.000000000 +0100 +++ /opt/SUNWut/lib/xkb/keymap/sun/tw 2008-10-30 10:22:52.000000000 +0100 @@ -0,0 +1,42 @@ + +xkb_keymap "Taiwan4" { + xkb_keycodes { include "sun(type4tw)" }; + xkb_types { include "default" }; + xkb_compatibility { include "default" }; + xkb_symbols { include "sun/tw(type4)" }; + xkb_geometry { include "sun(type4tw)" }; +}; + +xkb_keymap "Taiwan5" { + xkb_keycodes { include "sun(type5_tw)" }; + xkb_types { include "default" }; + xkb_compatibility { include "default" }; + xkb_symbols { include "sun/tw(type5)" }; + xkb_geometry { include "sun(type5tw)" }; +}; + +xkb_keymap "Taiwan5_Hobo" { + xkb_keycodes { include "sun(type5_tw)" }; + xkb_types { include "default" }; + xkb_compatibility { include "default" }; + xkb_symbols { include "sun/tw(type5)" }; + xkb_geometry { include "sun(type5tw)" }; +}; + +xkb_keymap "Taiwan6" { + xkb_keycodes { include "sun(type6)" }; + xkb_types { include "default" }; + xkb_compatibility { include "default" }; + xkb_symbols { include "sun/us(type5)+sun/tw(type5)" }; + xkb_geometry { include "sun(type6)" }; +}; + +xkb_keymap "Taiwan6_usb" { + xkb_keycodes { include "sun(type6_usb)" }; + xkb_types { include "default" }; + xkb_compatibility { include "default" }; + xkb_symbols { include "sun/us(type5)+sun/tw(type5)" }; + xkb_geometry { include "sun(type6)" }; +}; + + diff -ruN /opt/SUNWut.orig/lib/xkb/rules/xfree98 /opt/SUNWut/lib/xkb/rules/xfree98 --- /opt/SUNWut.orig/lib/xkb/rules/xfree98 1970-01-01 01:00:00.000000000 +0100 +++ /opt/SUNWut/lib/xkb/rules/xfree98 2008-10-29 07:25:15.000000000 +0100 @@ -0,0 +1,29 @@ +// +// Rules for resolving XKB components for use with XFree86 +// Copyright 1996 by Joseph Moss +// +// $XFree86: xc/programs/xkbcomp/rules/xfree86,v 3.5 1996/12/17 21:03:59 dawes Exp $ +// + +! model = keycodes geometry + pc98 = xfree98(pc98) nec(pc98) + jp106 = xfree98(jp106) pc(jp106) + +! model layout = symbols + pc98 nec/jp = nec/jp(pc98) + jp106 jp = jp + +! model layout = compat types + * * = complete complete + +! option = symbols + grp:switch = +group(switch) + grp:toggle = +group(toggle) + grp:shift_toggle = +group(shift_toggle) + grp:ctrl_shift_toggle = +group(ctrl_shift_toggle) + grp:ctrl_alt_toggle = +group(ctrl_alt_toggle) + ctrl:nocaps = +ctrl(nocaps) + ctrl:swapcaps = +ctrl(swapcaps) + ctrl:ctrl_ac = +ctrl(ctrl_ac) + ctrl:ctrl_aa = +ctrl(ctrl_aa) + diff -ruN /opt/SUNWut.orig/lib/xkb/rules/xfree98.lst /opt/SUNWut/lib/xkb/rules/xfree98.lst --- /opt/SUNWut.orig/lib/xkb/rules/xfree98.lst 1970-01-01 01:00:00.000000000 +0100 +++ /opt/SUNWut/lib/xkb/rules/xfree98.lst 2008-10-29 07:25:15.000000000 +0100 @@ -0,0 +1,30 @@ +// +// Rules descriptions for XFree86 +// Copyright 1996 by Joseph Moss +// +// $XFree86: xc/programs/xkbcomp/rules/xfree86.lst,v 3.3 1996/12/18 03:30:14 dawes Exp $ + +! model + pc98 PC-98 series standard + jp106 Japanese 106-key + +! layout + pc98 PC98 + jp Japanese + +! variant + nodeadkeys Eliminate dead keys + +! option + grp Group Shift/Lock behavior + grp:switch R-Alt switches group while pressed + grp:toggle Right Alt key changes group + grp:shift_toggle Both Shift keys together change group + grp:ctrl_shift_toggle Control+Shift changes group + grp:ctrl_alt_toggle Alt+Control changes group + ctrl Control Key Position + ctrl:nocaps Make CapsLock an additional Control + ctrl:swapcaps Swap Control and Caps Lock + ctrl:ctrl_ac Control key at left of 'A' + ctrl:ctrl_aa Control key at bottom left + diff -ruN /opt/SUNWut.orig/lib/xkb/rules/xkb.dtd /opt/SUNWut/lib/xkb/rules/xkb.dtd --- /opt/SUNWut.orig/lib/xkb/rules/xkb.dtd 1970-01-01 01:00:00.000000000 +0100 +++ /opt/SUNWut/lib/xkb/rules/xkb.dtd 2008-10-29 07:25:15.000000000 +0100 @@ -0,0 +1,42 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff -ruN /opt/SUNWut.orig/lib/xkb/rules/xml2lst.pl /opt/SUNWut/lib/xkb/rules/xml2lst.pl --- /opt/SUNWut.orig/lib/xkb/rules/xml2lst.pl 1970-01-01 01:00:00.000000000 +0100 +++ /opt/SUNWut/lib/xkb/rules/xml2lst.pl 2008-10-29 07:25:15.000000000 +0100 @@ -0,0 +1,288 @@ +#!/usr/bin/perl + +# converts the .xml file to the old format .lst file +# +# Usage: +# +# perl xml2lst.pl [lang] < filename.xml > filename.lst +# +# author Ivan Pascal + +if (@ARGV) { + $lang = shift @ARGV; +} else { + $lang = ''; +} + +$doc = new_document( 0, ''); +parse('', $doc); + +($reg) = node_by_name($doc, '/xkbConfigRegistry'); +@models = node_by_name($reg, 'modelList/model/configItem'); +@layouts = node_by_name($reg, 'layoutList/layout/configItem'); +@options = node_by_name($reg, 'optionList/group/configItem'); + +print "! model\n"; +for $i (@models) { + ($name) = node_by_name($i, 'name'); + @desc = node_by_name($i, 'description'); + $descr = with_attribute(\@desc, 'xml:lang='.$lang); + if (! defined $descr) { + $descr = with_attribute(\@desc, 'xml:lang='); + } + printf(" %-15s %s\n", text_child($name), text_child($descr)); +} + +print "\n! layout\n"; +for $i (@layouts) { + ($name) = node_by_name($i, 'name'); + @desc = node_by_name($i, 'description'); + $descr = with_attribute(\@desc, 'xml:lang='.$lang); + if (! defined $descr ) { + $descr = with_attribute(\@desc, 'xml:lang='); + } + printf(" %-15s %s\n", text_child($name), text_child($descr)); +} + +print "\n! variant\n"; +for $l (@layouts) { + ($lname) = node_by_name($l, 'name'); + @variants = node_by_name($l, '../variantList/variant/configItem'); + for $v (@variants) { + ($name) = node_by_name($v, 'name'); + @desc = node_by_name($v, 'description'); + $descr = with_attribute(\@desc, 'xml:lang='.$lang); + if (! defined $descr) { + $descr = with_attribute(\@desc, 'xml:lang='); + } + printf(" %-15s %s: %s\n", + text_child($name), text_child($lname), text_child($descr)); + } +} + +print "\n! options\n"; +for $g (@options) { + ($name) = node_by_name($g, 'name'); + @desc = node_by_name($g, 'description'); + $descr = with_attribute(\@desc, 'xml:lang='.$lang); + if (! defined $descr) { + $descr = with_attribute(\@desc, 'xml:lang='); + } + printf(" %-20s %s\n", text_child($name), text_child($descr)); + + @opts = node_by_name($g, '../option/configItem'); + for $o (@opts) { + ($name) = node_by_name($o, 'name'); + @desc = node_by_name($o, 'description'); + $descr = with_attribute(\@desc, 'xml:lang='.$lang); + if (! defined $descr) { + $descr = with_attribute(\@desc, 'xml:lang='); + } + printf(" %-20s %s\n", + text_child($name), text_child($descr)); + } +} + +sub with_attribute { + local ($nodelist, $attrexpr) = @_; + local ($attr, $value) = split (/=/, $attrexpr); + local ($node, $attrvalue); + if (defined $value && $value ne '') { + $value =~ s/"//g; + foreach $node (@{$nodelist}) { + $attrvalue = node_attribute($node, $attr); + if (defined $attrvalue && $attrvalue eq $value) { + return $node; + } + } + } else { + foreach $node (@{$nodelist}) { + if (! defined node_attribute($node, $attr)) { + return $node; + } + } + } + undef; +} + +# Subroutines + +sub parse { + local $intag = 0; + my (@node_stack, $parent); + $parent = @_[1]; + local ($tag, $text); + + while (<>) { + chomp; + @str = split /([<>])/; + shift @str if ($str[0] eq '' || $str[0] =~ /^[ \t]*$/); + + while (scalar @str) { + $token = shift @str; + if ($token eq '<') { + $intag = 1; + if (defined $text) { + add_text_node($parent, $text); + undef $text; + } + } elsif ($token eq '>') { + $intag = 0; + if ($tag =~ /^\/(.*)/) { # close tag + $parent = pop @node_stack; + } elsif ($tag =~ /^([^\/]*)\/$/) { + empty_tag($parent, $1); + } else { + if (defined ($node = open_tag($parent, $tag))) { + push @node_stack, $parent; + $parent = $node; + } + } + undef $tag; + } else { + if ($intag == 1) { + if (defined $tag) { + $tag .= ' '. $token; + } else { + $tag = $token; + } + } else { + if (defined $text) { + $text .= "\n" . $token; + } else { + $text = $token; + } + } + } + } + } +} + +sub new_document { + $doc = new_node( 0, '', 'DOCUMENT'); + $doc->{CHILDREN} = []; + return $doc; +} + +sub new_node { + local ($parent_node, $tag, $type) = @_; + + my %node; + $node{PARENT} = $parent_node; + $node{TYPE} = $type; + + if ($type eq 'COMMENT' || $type eq 'TEXT') { + $node{TEXT} = $tag; + $node{NAME} = $type; + return \%node; + } + + local ($tname, $attr) = split(' ', $tag, 2); + $node{NAME} = $tname; + + if (defined $attr && $attr ne '') { + my %attr_table; + local @attr_list = split ( /"/, $attr); + local ($name, $value); + while (scalar @attr_list) { + $name = shift @attr_list; + $name =~ s/[ =]//g; + next if ($name eq ''); + $value = shift @attr_list; + $attr_table{$name} =$value; + } + $node{ATTRIBUTES} = \%attr_table; + } + return \%node; +} + +sub add_node { + local ($parent_node, $node) = @_; + push @{$parent_node->{CHILDREN}}, $node; + + local $tname = $node->{NAME}; + if (defined $parent_node->{$tname}) { + push @{$parent_node->{$tname}}, $node + } else { + $parent_node->{$tname} = [ $node ]; + } +} + +sub empty_tag { + local ($parent_node, $tag) = @_; + local $node = new_node($parent_node, $tag, 'EMPTY'); + add_node($parent_node, $node); +} + +sub open_tag { + local ($parent_node, $tag) = @_; + local $node; + + if ($tag =~ /^\?.*/ || $tag =~ /^\!.*/) { + $node = new_node($parent_node, $tag, 'COMMENT'); + add_node($parent_node, $node); + undef; return; + } else { + $node = new_node($parent_node, $tag, 'NODE'); + $node->{CHILDREN} = []; + add_node($parent_node, $node); + return $node; + } +} + +sub add_text_node { + local ($parent_node, $text) = @_; + local $node = new_node($parent_node, $text, 'TEXT'); + add_node($parent_node, $node); +} + +sub node_by_name { + local ($node, $name) = @_; + local ($tagname, $path) = split(/\//, $name, 2); + + my @nodelist; + + if ($tagname eq '') { + while ($node->{PARENT} != 0) { + $node = $node->{PARENT}; + } + sublist_by_name($node, $path, \@nodelist); + } else { + sublist_by_name($node, $name, \@nodelist); + } + return @nodelist; +} + +sub sublist_by_name { + local ($node, $name, $res) = @_; + local ($tagname, $path) = split(/\//, $name, 2); + + if (! defined $path) { + push @{$res}, (@{$node->{$tagname}}); + return; + } + + if ($tagname eq '..' && $node->{PARENT} != 0) { + $node = $node->{PARENT}; + sublist_by_name($node, $path, $res); + } else { + local $n; + for $n (@{$node->{$tagname}}) { + sublist_by_name($n, $path, $res); + } + } +} + +sub node_attribute { + local $node = @_[0]; + if (defined $node->{ATTRIBUTES}) { + return $node->{ATTRIBUTES}{@_[1]}; + } + undef; +} + +sub text_child { + local ($node) = @_; + local ($child) = node_by_name($node, 'TEXT'); + return $child->{TEXT}; +} diff -ruN /opt/SUNWut.orig/lib/xkb/symbols/lt_a /opt/SUNWut/lib/xkb/symbols/lt_a --- /opt/SUNWut.orig/lib/xkb/symbols/lt_a 1970-01-01 01:00:00.000000000 +0100 +++ /opt/SUNWut/lib/xkb/symbols/lt_a 2008-10-29 07:25:15.000000000 +0100 @@ -0,0 +1,101 @@ +// $XConsortium: lt /main/3 1997/12/18 12:40:12 rch $ + +partial alphanumeric_keys modifier_keys +xkb_symbols "basic" { + + // Describes the differences between a very simple en_US + // keyboard and a very simple Lithuanian "azerty" keyboard + + name[Group1]= "Lithuanian"; + + key {[], [ grave, asciitilde ]}; + key {[ exclam, 1 ]}; + key {[ quotedbl, 2 ], + [ at ]}; + key {[ slash, 3 ], + [ numbersign ]}; + key {[ semicolon, 4 ], + [ dollar ]}; + key {[ colon, 5 ], + [ percent ]}; + key {[ comma, 6 ], + [ asciicircum ]}; + key {[ period, 7 ], + [ ampersand ]}; + key {[ question, 8 ], + [ asterisk ]}; + key {[ parenleft, 9 ]}; + key {[ parenright, 0 ]}; + key {[ underscore, minus ], + [ minus, underscore ]}; + key {[ plus, equal ], + [ equal, plus ]}; + key {[ Aogonek, aogonek ], + [ q, Q ]}; + key {[ zcaron, Zcaron ], + [ w, W ]}; + key {[ iogonek, Iogonek ], + [ bracketleft, braceleft ]}; + key {[ leftdoublequotemark, doublelowquotemark ], + [ bracketright, braceright ]}; + key {[ uogonek, Uogonek ], + [ semicolon, colon ]}; + key {[ eabovedot, Eabovedot ], + [ apostrophe, quotedbl ]}; + key {[ umacron, Umacron ], + [ x, X ]}; + key {[ ccaron, Ccaron ], + [ comma, less ]}; + key {[ scaron, Scaron ], + [ period, greater ]}; + key {[ eogonek, Eogonek ], + [ slash, question ]}; + + // End alphanumeric section + + // Begin modifier mappings + + modifier_map Shift { Shift_L }; + modifier_map Lock { Caps_Lock, ISO_Lock }; + modifier_map Control{ Control_L }; + modifier_map Mod3 { Mode_switch }; +}; + +xkb_symbols "generic101" { + include "lt(basic)" +}; + +xkb_symbols "pc101" { + include "lt(generic101)" +}; + +default +xkb_symbols "pc102" { + include "lt(pc101)" + include "lt(left_switch)" +}; + +partial alphanumeric_keys +xkb_symbols "Sundeadkeys" { + include "lt(basic)" // for consistent naming +}; + +partial alphanumeric_keys +xkb_symbols "sundeadkeys" { + include "lt(Sundeadkeys)" // for consistent naming +}; + +partial alphanumeric_keys +xkb_symbols "nodeadkeys" { + include "lt(basic)" // for consistent naming +}; + +// definition for the extra key on 102-key keyboards +// between left Control and Alt +xkb_symbols "left_switch" { + key { [ Mode_switch, Multi_key ], + [ Mode_switch, Multi_key ] }; + // Begin modifier mappings + modifier_map Mod3 { Mode_switch }; +}; + diff -ruN /opt/SUNWut.orig/lib/xkb/symbols/lt_p /opt/SUNWut/lib/xkb/symbols/lt_p --- /opt/SUNWut.orig/lib/xkb/symbols/lt_p 1970-01-01 01:00:00.000000000 +0100 +++ /opt/SUNWut/lib/xkb/symbols/lt_p 2008-10-29 07:25:15.000000000 +0100 @@ -0,0 +1,75 @@ +// $XConsortium: lt_p /main/3 1997/12/18 12:40:12 rch $ +// +// $XFree86: xc/programs/xkbcomp/symbols/lt_p,v 1.2 2000/10/28 00:34:07 dawes Exp $ + +partial default alphanumeric_keys modifier_keys +xkb_symbols "basic" { + + // Describes the differences between a very simple en_US + // keyboard and a very simple Lithuanian "programmer's" keyboard + // (qwerty layout with Lithuanian letters on the closer ascii ones) + // Don't rename this file because it includes 'lt_p' + // Extentions: less/Euro/endash on 102nd key, AltGr+Space is nobreakspace + // Usage: setxkbmap lt_p + // Option "XkbModel" "pc105" + // Option "XkbLayout" "lt_p" + + name[Group1]= "US/ASCII"; + name[Group2]= "Lithuanian"; + + key { [ Return, ISO_Next_Group ]}; + key { [ q, Q ], + [ umacron, Umacron ]}; + key { [ w, W ], + [ eabovedot, Eabovedot ]}; + key { [ e, E ], + [ eogonek, Eogonek ]}; + key { [ u, U ], + [ uogonek, Uogonek ]}; + key { [ i, I ], + [ iogonek, Iogonek ]}; + key { [ a, A ], + [ aogonek, Aogonek ]}; + key { [ s, S ], + [ scaron, Scaron ]}; + key { [ quoteright, quotedbl ], +// this is actually right quote for Lithuanian + [ leftdoublequotemark, doublelowquotemark]}; + key { [ z, Z ], + [ zcaron, Zcaron ]}; + key { [ c, C ], + [ ccaron, Ccaron ]}; + key { [ space, space ], + [ nobreakspace, nobreakspace ]}; + + key { [ less, EuroSign ], + [ endash ]}; + + // End alphanumeric section + + // Begin modifier mappings + + modifier_map Shift { Shift_L }; + modifier_map Lock { Caps_Lock, ISO_Lock }; + modifier_map Control{ Control_L }; + modifier_map Mod3 { Mode_switch }; +}; + + + +partial alphanumeric_keys +xkb_symbols "Sundeadkeys" { + include "lt_p(basic)" // for consistent naming +}; + +partial alphanumeric_keys +xkb_symbols "sundeadkeys" { + include "lt_p(Sundeadkeys)" // for consistent naming +}; + +partial alphanumeric_keys +xkb_symbols "nodeadkeys" { + include "lt_p(basic)" // for consistent naming +}; + + diff -ruN /opt/SUNWut.orig/lib/xkb/symbols/mn /opt/SUNWut/lib/xkb/symbols/mn --- /opt/SUNWut.orig/lib/xkb/symbols/mn 1970-01-01 01:00:00.000000000 +0100 +++ /opt/SUNWut/lib/xkb/symbols/mn 2008-10-29 07:25:15.000000000 +0100 @@ -0,0 +1,253 @@ +// Mongolian standard keyboard +// Author Sanlig Badral +// 2002/12/7 Version 1.0 + +// $XFree86: xc/programs/xkbcomp/symbols/mn,v 1.1 2003/01/04 02:57:14 dawes Exp $ + +partial default alphanumeric_keys +xkb_symbols "basic" { + +// Describes the differences between a very simple en_US keyboard +// and a very simple Mongolian (cyrillic) keyboard + + name[Group1]= "Latin"; + name[Group2]= "Mongolian"; + + key.type = "THREE_LEVEL"; + + key {[ quoteleft, asciitilde, degree ], + [ equal, plus, degree ]}; + key {[ 1, exclam, multiply ], + [ 1, numerosign, multiply ]}; + key {[ 2, at, division ], + [ 2, minus, division ]}; + key {[ 3, numbersign, plusminus ], + [ 3, quotedbl, plusminus ]}; + key {[ 4, dollar, notsign ], + [ 4, 0x010020ae, notsign ]}; + key {[ 5, percent, NoSymbol ], + [ 5, colon, NoSymbol ]}; + key {[ 6, asciicircum, notequal ], + [ 6, period, notequal ]}; + key {[ 7, ampersand, ampersand ], + [ 7, underscore, ampersand ]}; + key {[ 8, asterisk, asterisk ], + [ 8, comma, asterisk ]}; + key {[ 9, parenleft, bracketleft ], + [ 9, percent, bracketleft ]}; + key {[ 0, parenright, bracketright ], + [ 0, question, bracketright ]}; + key {[ minus, underscore, X ], + [ Cyrillic_ie, Cyrillic_IE, X ]}; + key {[ equal, plus, L ], + [ Cyrillic_shcha, Cyrillic_SHCHA, L ]}; + + key {[ q, Q, apostrophe ], + [ Cyrillic_ef, Cyrillic_EF, apostrophe ]}; + key {[ w, W, grave ], + [ Cyrillic_tse, Cyrillic_TSE, grave ]}; + key {[ e, E, EuroSign ], + [ Cyrillic_u, Cyrillic_U, EuroSign ]}; + key {[ r, R, registered ], + [ Cyrillic_zhe, Cyrillic_ZHE, registered ]}; + key {[ t, T, trademark ], + [ Cyrillic_e, Cyrillic_E, trademark ]}; + key {[ y, Y, yen ], + [ Cyrillic_en, Cyrillic_EN, yen ]}; + key {[ u, U, doublelowquotemark ], + [ Cyrillic_ghe, Cyrillic_GHE, doublelowquotemark ]}; + key {[ i, I, leftdoublequotemark ], + [ Cyrillic_sha, Cyrillic_SHA, leftdoublequotemark ]}; + // mongolian (ue) straight u + key {[ o, O, rightdoublequotemark ], + [ 0x010004af, 0x010004ae, rightdoublequotemark ]}; + key {[ p, P, NoSymbol ], + [ Cyrillic_ze, Cyrillic_ZE, NoSymbol ]}; + key {[ bracketleft, braceleft, braceleft ], + [ Cyrillic_ka, Cyrillic_KA, braceleft ]}; + key {[ bracketright, braceright, braceright ], + [ Cyrillic_hardsign, Cyrillic_HARDSIGN, braceright ]}; + + key {[ a, A, mu ], + [ Cyrillic_shorti, Cyrillic_SHORTI, mu ]}; + key {[ s, S, sterling ], + [ Cyrillic_yeru, Cyrillic_YERU, sterling ]}; + key {[ d, D, dollar ], + [ Cyrillic_be, Cyrillic_BE, dollar ]}; + //oe mongolian (oe) barred o + key {[ f, F, cent ], + [ 0x010004e9, 0x010004e8, rightdoublequotemark ]}; + key {[ g, G, Cyrillic_yeru ], + [ Cyrillic_a, Cyrillic_A, Cyrillic_yeru ]}; + key {[ h, H, Cyrillic_YERU ], + [ Cyrillic_ha, Cyrillic_HA, Cyrillic_YERU ]}; + key {[ j, J, Cyrillic_e ], + [ Cyrillic_er, Cyrillic_ER, Cyrillic_e ]}; + key {[ k, K, Cyrillic_E ], + [ Cyrillic_o, Cyrillic_O, Cyrillic_E ]}; + key {[ l, L, numerosign ], + [ Cyrillic_el, Cyrillic_EL, numerosign ]}; + key {[ semicolon, colon, section ], + [ Cyrillic_de, Cyrillic_DE, section ]}; + key {[ quoteright, quotedbl, ellipsis ], + [ Cyrillic_pe, Cyrillic_PE, ellipsis ]}; + key {[ backslash, bar, bar ], + [ exclam, bar, bar ]}; + + key {[ less, greater, NoSymbol ], + [ parenleft, parenright, NoSymbol ]}; + key {[ z, Z, emdash ], + [ Cyrillic_ya, Cyrillic_YA, emdash ]}; + key {[ x, X, endash ], + [ Cyrillic_che, Cyrillic_CHE, endash ]}; + key {[ c, C, copyright ], + [ Cyrillic_io, Cyrillic_IO, copyright ]}; + key {[ v, V, NoSymbol ], + [ Cyrillic_es, Cyrillic_ES, NoSymbol ]}; + key {[ b, B, NoSymbol ], + [ Cyrillic_em, Cyrillic_EM, NoSymbol ]}; + key {[ n, N, less ], + [ Cyrillic_i, Cyrillic_I, less ]}; + key {[ m, M, greater ], + [ Cyrillic_te, Cyrillic_TE, greater ]}; + key {[ comma, less, guillemotleft ], + [ Cyrillic_softsign, Cyrillic_SOFTSIGN, guillemotleft ]}; + key {[ period, greater, guillemotright ], + [ Cyrillic_ve, Cyrillic_VE, guillemotright ]}; + key {[ slash, question, backslash ], + [ Cyrillic_yu, Cyrillic_YU, backslash ]}; + + // End alphanumeric section + + key {[ space, space, nobreakspace ]}; + key { type="TWO_LEVEL",[ Mode_switch, Multi_key ]}; + + // Begin modifier mappings + + modifier_map Shift { Shift_L }; + modifier_map Lock { Caps_Lock, ISO_Lock }; + modifier_map Control{ Control_L }; + modifier_map Mod3 { Mode_switch }; +}; + +partial alphanumeric_keys +xkb_symbols "mn(basic)" { + + // Describes the differences between a very simple en_US keyboard + // and a very simple mongolian keyboard with publishing + // symbols in the third level. + + name[Group1]= "Latin"; + name[Group2]= "Mongolian"; + + key {[ quoteleft, asciitilde ], + [ equal, plus ]}; + key {[ 1, exclam ], + [ 1, numerosign ]}; + key {[ 2, at ], + [ 2, minus ]}; + key {[ 3, numbersign ], + [ 3, quotedbl ]}; + key {[ 4, dollar ], + [ 4, 0x010020ae ]}; + key {[ 5, percent ], + [ 5, colon ]}; + key {[ 6, asciicircum ], + [ 6, period ]}; + key {[ 7, ampersand ], + [ 7, underscore ]}; + key {[ 8, asterisk ], + [ 8, comma ]}; + key {[ 9, parenleft ], + [ 9, percent ]}; + key {[ 0, parenright ], + [ 0, question ]}; + key {[ minus, underscore ], + [ Cyrillic_ie, Cyrillic_IE ]}; + key {[ equal, plus ], + [ Cyrillic_shcha, Cyrillic_SHCHA ]}; + + key {[ q, Q ], + [ Cyrillic_ef, Cyrillic_EF ]}; + key {[ w, W ], + [ Cyrillic_tse, Cyrillic_TSE ]}; + key {[ e, E ], + [ Cyrillic_u, Cyrillic_U ]}; + key {[ r, R ], + [ Cyrillic_zhe, Cyrillic_ZHE ]}; + key {[ t, T ], + [ Cyrillic_e, Cyrillic_E ]}; + key {[ y, Y ], + [ Cyrillic_en, Cyrillic_EN ]}; + key {[ u, U ], + [ Cyrillic_ghe, Cyrillic_GHE ]}; + key {[ i, I ], + [ Cyrillic_sha, Cyrillic_SHA ]}; + // mongolian (ue) straight u + key {[ o, O ], + [ 0x010004af, 0x010004ae ]}; + key {[ p, P ], + [ Cyrillic_ze, Cyrillic_ZE ]}; + key {[ bracketleft, braceleft ], + [ Cyrillic_ka, Cyrillic_KA ]}; + key {[ bracketright, braceright ], + [ Cyrillic_hardsign, Cyrillic_HARDSIGN ]}; + + key {[ a, A ], + [ Cyrillic_shorti, Cyrillic_SHORTI ]}; + key {[ s, S ], + [ Cyrillic_yeru, Cyrillic_YERU ]}; + key {[ d, D ], + [ Cyrillic_be, Cyrillic_BE ]}; + //oe mongolian (oe) barred o + key {[ f, F ], + [ 0x010004e9, 0x010004e8 ]}; + key {[ g, G ], + [ Cyrillic_a, Cyrillic_A ]}; + key {[ h, H ], + [ Cyrillic_ha, Cyrillic_HA ]}; + key {[ j, J ], + [ Cyrillic_er, Cyrillic_ER ]}; + key {[ k, K ], + [ Cyrillic_o, Cyrillic_O ]}; + key {[ l, L ], + [ Cyrillic_el, Cyrillic_EL ]}; + key {[ semicolon, colon ], + [ Cyrillic_de, Cyrillic_DE ]}; + key {[ quoteright, quotedbl ], + [ Cyrillic_pe, Cyrillic_PE ]}; + key {[ backslash, bar ], + [ parenleft, parenright ]}; + + key {[ less, greater ], + [ less, greater ]}; + key {[ z, Z ], + [ Cyrillic_ya, Cyrillic_YA ]}; + key {[ x, X ], + [ Cyrillic_che, Cyrillic_CHE ]}; + key {[ c, C ], + [ Cyrillic_io, Cyrillic_IO ]}; + key {[ v, V ], + [ Cyrillic_es, Cyrillic_ES ]}; + key {[ b, B ], + [ Cyrillic_em, Cyrillic_EM ]}; + key {[ n, N ], + [ Cyrillic_i, Cyrillic_I ]}; + key {[ m, M ], + [ Cyrillic_te, Cyrillic_TE ]}; + key {[ comma, less ], + [ Cyrillic_softsign, Cyrillic_SOFTSIGN ]}; + key {[ period, greater ], + [ Cyrillic_ve, Cyrillic_VE ]}; + key {[ slash, question ], + [ Cyrillic_yu, Cyrillic_YU ]}; + + key {[ Alt_R, Meta_R ]}; + + // Begin modifier mappings + + modifier_map Shift { Shift_L }; + modifier_map Lock { Caps_Lock, ISO_Lock }; + modifier_map Control{ Control_L }; + modifier_map Mod3 { Mode_switch }; +}; diff -ruN /opt/SUNWut.orig/lib/xkb/torture/indicator /opt/SUNWut/lib/xkb/torture/indicator --- /opt/SUNWut.orig/lib/xkb/torture/indicator 1970-01-01 01:00:00.000000000 +0100 +++ /opt/SUNWut/lib/xkb/torture/indicator 2008-10-29 07:25:15.000000000 +0100 @@ -0,0 +1,68 @@ +// $Xorg: indicator,v 1.3 2000/08/17 19:54:46 cpqbld Exp $ +xkb_compatibility "torture" + +virtual_modifiers NumLock,AltGr; + +interpret Any { + action= NoAction(); +}; + +indicator "Caps Lock" { + modifiers= Lock; +}; +augment indicator "Caps Lock" { + allowExplicit= False; + modifiers= Control; +}; + +indicator "Shift Lock" { + allowExplicit= True; + modifiers= Control; + groups= 1; +}; +override indicator "Shift Lock" { + allowExplicit= False; + whichModState= Locked; + modifiers= Shift; + groups= None; +}; + +include "torture/indicator1" + +augment indicator "Mod1" { + allowExplicit= False; + modifiers= Lock; +}; +override indicator "Mod2" { + modifiers= Mod2; + controls= None; +}; + +indicator "Num Lock" { + allowExplicit= False; + modifiers= NumLock; +}; +augment "torture/indicator2" + +indicator "Mouse Keys" { + allowExplicit= False; + groups= All-1; + modifiers= Shift+Control; + whichModState= Locked; +}; +override "torture/indicator3" + +indicator "StickyKeys" { + allowExplicit= True; + groups= All-4; + modifiers= Mod5; + controls= MouseKeys; +}; +replace indicator "StickyKeys" { + controls= StickyKeys; +}; +augment indicator "StickyKeys" { + allowExplicit= False; +}; + + diff -ruN /opt/SUNWut.orig/lib/xkb/torture/indicator1 /opt/SUNWut/lib/xkb/torture/indicator1 --- /opt/SUNWut.orig/lib/xkb/torture/indicator1 1970-01-01 01:00:00.000000000 +0100 +++ /opt/SUNWut/lib/xkb/torture/indicator1 2008-10-29 07:25:15.000000000 +0100 @@ -0,0 +1,12 @@ +// $Xorg: indicator1,v 1.3 2000/08/17 19:54:47 cpqbld Exp $ +xkb_compatibility "torture1" + +indicator "Mod1" { + modifiers= Mod1; +}; +indicator "Mod2" { + allowExplicit= False; + modifiers= Lock; + controls= MouseKeys; +}; + diff -ruN /opt/SUNWut.orig/lib/xkb/torture/indicator2 /opt/SUNWut/lib/xkb/torture/indicator2 --- /opt/SUNWut.orig/lib/xkb/torture/indicator2 1970-01-01 01:00:00.000000000 +0100 +++ /opt/SUNWut/lib/xkb/torture/indicator2 2008-10-29 07:25:15.000000000 +0100 @@ -0,0 +1,7 @@ +// $Xorg: indicator2,v 1.3 2000/08/17 19:54:47 cpqbld Exp $ +xkb_compatibility "torture2" + +indicator "Num Lock" { + allowExplicit= True; + modifiers= Control; +}; diff -ruN /opt/SUNWut.orig/lib/xkb/torture/indicator3 /opt/SUNWut/lib/xkb/torture/indicator3 --- /opt/SUNWut.orig/lib/xkb/torture/indicator3 1970-01-01 01:00:00.000000000 +0100 +++ /opt/SUNWut/lib/xkb/torture/indicator3 2008-10-29 07:25:15.000000000 +0100 @@ -0,0 +1,8 @@ +// $Xorg: indicator3,v 1.3 2000/08/17 19:54:48 cpqbld Exp $ +xkb_compatibility "torture3" + +indicator "Mouse Keys" { + groups= None; + modifiers= None; + controls= MouseKeys; +}; diff -ruN /opt/SUNWut.orig/lib/xkb/torture/mod_compat /opt/SUNWut/lib/xkb/torture/mod_compat --- /opt/SUNWut.orig/lib/xkb/torture/mod_compat 1970-01-01 01:00:00.000000000 +0100 +++ /opt/SUNWut/lib/xkb/torture/mod_compat 2008-10-29 07:25:15.000000000 +0100 @@ -0,0 +1,35 @@ +// $Xorg: mod_compat,v 1.3 2000/08/17 19:54:48 cpqbld Exp $ +xkb_compatibility "torture" + +virtual_modifiers NumLock,AltGr; + +interpret Any { + action= NoAction(); +}; + +modifier AltGr { groups= 0x7e; }; +augment modifier AltGr { modifiers= Mod1; }; +augment modifier AltGr { groups= 0xfd; }; +override modifier AltGr { groups= 0xfb; }; + +modifier NumLock { modifiers= Mod2; }; +augment modifier NumLock { modifiers= Mod1; }; + +include "torture/mod_compat1" +augment modifier Shift { groups= 0x01; }; +augment modifier Shift { modifiers= Lock; }; + +override modifier Lock { groups= 0x02; }; +override modifier Lock { modifiers= Control; }; + +modifier Control { mods= None; }; +modifier Mod1 { mods= Mod1; groups= 0x08; }; +augment "torture/mod_compat2" + +modifier Mod2 { mods= None; groups= 0x10; }; +modifier Mod3 { mods= Mod3; groups= 0x20; }; +override "torture/mod_compat3" + +modifier Mod4 { mods= None; groups= 0x40; }; +modifier Mod5 { mods= Mod5; groups= 0x80; }; +include "torture/mod_compat4" diff -ruN /opt/SUNWut.orig/lib/xkb/torture/mod_compat1 /opt/SUNWut/lib/xkb/torture/mod_compat1 --- /opt/SUNWut.orig/lib/xkb/torture/mod_compat1 1970-01-01 01:00:00.000000000 +0100 +++ /opt/SUNWut/lib/xkb/torture/mod_compat1 2008-10-29 07:25:15.000000000 +0100 @@ -0,0 +1,5 @@ +// $Xorg: mod_compat1,v 1.3 2000/08/17 19:54:48 cpqbld Exp $ +xkb_compatibility "torture1" + +modifier Shift { mods= Shift; }; +modifier Lock { mods= Lock; }; diff -ruN /opt/SUNWut.orig/lib/xkb/torture/mod_compat2 /opt/SUNWut/lib/xkb/torture/mod_compat2 --- /opt/SUNWut.orig/lib/xkb/torture/mod_compat2 1970-01-01 01:00:00.000000000 +0100 +++ /opt/SUNWut/lib/xkb/torture/mod_compat2 2008-10-29 07:25:15.000000000 +0100 @@ -0,0 +1,5 @@ +// $Xorg: mod_compat2,v 1.3 2000/08/17 19:54:48 cpqbld Exp $ +xkb_compatibility "torture2" + +modifier Control { groups= 0x4; mods= Mod1; }; +replace modifier Mod1 { mods= None; groups= 0x40; }; diff -ruN /opt/SUNWut.orig/lib/xkb/torture/mod_compat3 /opt/SUNWut/lib/xkb/torture/mod_compat3 --- /opt/SUNWut.orig/lib/xkb/torture/mod_compat3 1970-01-01 01:00:00.000000000 +0100 +++ /opt/SUNWut/lib/xkb/torture/mod_compat3 2008-10-29 07:25:15.000000000 +0100 @@ -0,0 +1,5 @@ +// $Xorg: mod_compat3,v 1.3 2000/08/17 19:54:48 cpqbld Exp $ +xkb_compatibility "torture3" + +modifier Mod2 { mods= Mod3; }; +replace modifier Mod3 { mods= None; groups= 0x01; }; diff -ruN /opt/SUNWut.orig/lib/xkb/torture/mod_compat4 /opt/SUNWut/lib/xkb/torture/mod_compat4 --- /opt/SUNWut.orig/lib/xkb/torture/mod_compat4 1970-01-01 01:00:00.000000000 +0100 +++ /opt/SUNWut/lib/xkb/torture/mod_compat4 2008-10-29 07:25:15.000000000 +0100 @@ -0,0 +1,5 @@ +// $Xorg: mod_compat4,v 1.3 2000/08/17 19:54:48 cpqbld Exp $ +xkb_compatibility "torture4" + +modifier Mod4 { mods= Mod5; }; +replace modifier Mod5 { mods= None; groups= 0x01; }; diff -ruN /opt/SUNWut.orig/lib/xkb/torture/sym_interp /opt/SUNWut/lib/xkb/torture/sym_interp --- /opt/SUNWut.orig/lib/xkb/torture/sym_interp 1970-01-01 01:00:00.000000000 +0100 +++ /opt/SUNWut/lib/xkb/torture/sym_interp 2008-10-29 07:25:15.000000000 +0100 @@ -0,0 +1,62 @@ +// $Xorg: sym_interp,v 1.3 2000/08/17 19:54:48 cpqbld Exp $ +xkb_compatibility "torture" + +virtual_modifiers NumLock,AltGr; + +interpret Shift_L { + action= SetMods(mods=Shift); +}; +augment interpret Shift_L { + repeat= True; + action= NoAction(); +}; + +interpret Shift_R { + action= NoAction(); +}; +override interpret Shift_R { + repeat= True; + action= SetMods(mods=Shift); +}; + +include "torture/sym_interp1" + +augment interpret Control_L { + locking= True; + action= NoAction(); +}; +override interpret Control_R { + locking= False; + action= SetMods(mods=Control); +}; + + +interpret ISO_Next_Group { + repeat= False; + action= LockGroup(group=+1); +}; +augment "torture/sym_interp2" + +interpret ISO_Prev_Group { + action= NoAction(); +}; +override "torture/sym_interp3" + +interpret Num_Lock { + repeat= True; + action= NoAction(); +}; +replace interpret Num_Lock { + action= LockMods(mods=NumLock); +}; +augment interpret Num_Lock { + virtualMod= NumLock; +}; + +interpret Mode_switch { + locking= True; + virtualMod= NumLock; + action= NoAction(); +}; +replace "torture/sym_interp4" + diff -ruN /opt/SUNWut.orig/lib/xkb/torture/sym_interp1 /opt/SUNWut/lib/xkb/torture/sym_interp1 --- /opt/SUNWut.orig/lib/xkb/torture/sym_interp1 1970-01-01 01:00:00.000000000 +0100 +++ /opt/SUNWut/lib/xkb/torture/sym_interp1 2008-10-29 07:25:15.000000000 +0100 @@ -0,0 +1,12 @@ +// $Xorg: sym_interp1,v 1.3 2000/08/17 19:54:48 cpqbld Exp $ +xkb_compatibility "torture1" + +interpret Control_L { + locking= False; + action= SetMods(mods=Control); +}; + +interpret Control_R { + locking= True; + action= NoAction(); +}; diff -ruN /opt/SUNWut.orig/lib/xkb/torture/sym_interp2 /opt/SUNWut/lib/xkb/torture/sym_interp2 --- /opt/SUNWut.orig/lib/xkb/torture/sym_interp2 1970-01-01 01:00:00.000000000 +0100 +++ /opt/SUNWut/lib/xkb/torture/sym_interp2 2008-10-29 07:25:15.000000000 +0100 @@ -0,0 +1,7 @@ +// $Xorg: sym_interp2,v 1.3 2000/08/17 19:54:48 cpqbld Exp $ +xkb_compatibility "torture2" + +interpret ISO_Next_Group { + repeat= True; + action= NoAction(); +}; diff -ruN /opt/SUNWut.orig/lib/xkb/torture/sym_interp3 /opt/SUNWut/lib/xkb/torture/sym_interp3 --- /opt/SUNWut.orig/lib/xkb/torture/sym_interp3 1970-01-01 01:00:00.000000000 +0100 +++ /opt/SUNWut/lib/xkb/torture/sym_interp3 2008-10-29 07:25:15.000000000 +0100 @@ -0,0 +1,6 @@ +// $Xorg: sym_interp3,v 1.3 2000/08/17 19:54:48 cpqbld Exp $ +xkb_compatibility "torture3" + +interpret ISO_Prev_Group { + action= LockGroup(group=-1); +}; diff -ruN /opt/SUNWut.orig/lib/xkb/torture/sym_interp4 /opt/SUNWut/lib/xkb/torture/sym_interp4 --- /opt/SUNWut.orig/lib/xkb/torture/sym_interp4 1970-01-01 01:00:00.000000000 +0100 +++ /opt/SUNWut/lib/xkb/torture/sym_interp4 2008-10-29 07:25:15.000000000 +0100 @@ -0,0 +1,9 @@ +// $Xorg: sym_interp4,v 1.3 2000/08/17 19:54:48 cpqbld Exp $ +xkb_compatibility "torture4" + +virtual_modifiers NumLock,AltGr; + +interpret Mode_switch { + virtualMod= AltGr; + action= SetGroup(group=2); +}; diff -ruN /opt/SUNWut.orig/lib/xkb/torture/types /opt/SUNWut/lib/xkb/torture/types --- /opt/SUNWut.orig/lib/xkb/torture/types 1970-01-01 01:00:00.000000000 +0100 +++ /opt/SUNWut/lib/xkb/torture/types 2008-10-29 07:25:15.000000000 +0100 @@ -0,0 +1,19 @@ +// $XConsortium $ +xkb_types "Common" + +virtual_modifiers Alt; + +type "TEST" { + modifiers = Shift; + map[Shift] = Level2; + level_name[Level1]= "Any"; + level_name[Level2]= "Shift"; +}; + +augment type "TEST" { + modifiers = Alt; + map[Alt] = Level2; + level_name[level2]= "Alt"; +}; + + diff -ruN /opt/SUNWut.orig/lib/xkb/types/cancel /opt/SUNWut/lib/xkb/types/cancel --- /opt/SUNWut.orig/lib/xkb/types/cancel 1970-01-01 01:00:00.000000000 +0100 +++ /opt/SUNWut/lib/xkb/types/cancel 2008-10-29 07:25:15.000000000 +0100 @@ -0,0 +1,12 @@ +// $Xorg: cancel,v 1.3 2000/08/17 19:54:48 cpqbld Exp $ +partial default xkb_types "Shift_Cancels_Caps" { + +override type "TWO_LEVEL" { + modifiers = Shift+Lock; + map[Shift] = Level2; + preserve[Lock]= Lock; + level_name[Level1] = "Base"; + level_name[Level2] = "Shift"; +}; + +}; diff -ruN /opt/SUNWut.orig/lib/xmgr/gdm/add-dpy /opt/SUNWut/lib/xmgr/gdm/add-dpy --- /opt/SUNWut.orig/lib/xmgr/gdm/add-dpy 2008-10-30 10:20:00.000000000 +0100 +++ /opt/SUNWut/lib/xmgr/gdm/add-dpy 2008-10-30 10:22:52.000000000 +0100 @@ -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 /opt/SUNWut/lib/Xnewt :%d" else xsdesc="# :%d RESERVED" fi diff -ruN /opt/SUNWut.orig/sbin/utadm /opt/SUNWut/sbin/utadm --- /opt/SUNWut.orig/sbin/utadm 2008-10-30 10:20:00.000000000 +0100 +++ /opt/SUNWut/sbin/utadm 2008-10-30 10:22:52.000000000 +0100 @@ -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 /opt/SUNWut.orig/sbin/utconfig /opt/SUNWut/sbin/utconfig --- /opt/SUNWut.orig/sbin/utconfig 2008-10-30 10:20:00.000000000 +0100 +++ /opt/SUNWut/sbin/utconfig 2008-10-30 10:22:52.000000000 +0100 @@ -240,7 +240,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 # @@ -255,7 +260,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 /opt/SUNWut.orig/sbin/utfwadm /opt/SUNWut/sbin/utfwadm --- /opt/SUNWut.orig/sbin/utfwadm 2008-10-30 10:20:00.000000000 +0100 +++ /opt/SUNWut/sbin/utfwadm 2008-10-30 10:22:52.000000000 +0100 @@ -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 /opt/SUNWut.orig/sbin/utinstall /opt/SUNWut/sbin/utinstall --- /opt/SUNWut.orig/sbin/utinstall 2008-10-30 10:20:00.000000000 +0100 +++ /opt/SUNWut/sbin/utinstall 2008-10-30 10:22:52.000000000 +0100 @@ -241,7 +241,7 @@ fi if [ "$G_OS" = "Linux" ]; then # Determine GDM Install Path - GDM_PATH=`rpm -ql "gdm" | grep "Init/Default" ` + GDM_PATH=`dpkg -L "gdm" | grep "Init/Default" ` if [ $? != 0 ]; then print -u2 "Cannot determine GDM install directory" break; diff -ruN /opt/SUNWut.orig/sbin/utreplica /opt/SUNWut/sbin/utreplica --- /opt/SUNWut.orig/sbin/utreplica 2008-10-30 10:20:00.000000000 +0100 +++ /opt/SUNWut/sbin/utreplica 2008-10-30 10:22:52.000000000 +0100 @@ -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 @@ -1130,7 +1136,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." @@ -1169,7 +1175,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