summaryrefslogtreecommitdiffstats
path: root/redhat/core/tdebase/xdm.oss114
diff options
context:
space:
mode:
Diffstat (limited to 'redhat/core/tdebase/xdm.oss114')
-rwxr-xr-xredhat/core/tdebase/xdm.oss114349
1 files changed, 349 insertions, 0 deletions
diff --git a/redhat/core/tdebase/xdm.oss114 b/redhat/core/tdebase/xdm.oss114
new file mode 100755
index 000000000..aabe4afb3
--- /dev/null
+++ b/redhat/core/tdebase/xdm.oss114
@@ -0,0 +1,349 @@
+#! /bin/bash
+# Copyright (c) 1996-2002 SuSE Linux AG, Nuernberg, Germany.
+# All rights reserved.
+#
+# Author: Florian La Roche, 1996
+# Werner Fink <[email protected]>, 1996,98,99
+# Martin Scherbaum, 1997
+# Reinhard Max <[email protected]>, 1997
+#
+# Please send feedback to http://www.suse.de/feedback
+#
+# /etc/init.d/xdm
+#
+### BEGIN INIT INFO
+# Provides: xdm
+# Required-Start: $remote_fs dbus
+# Required-Stop: $remote_fs
+# Should-Start: ypbind $syslog gpm firstboot kbd resmgr earlyxdm winbind acpid ntp
+# Should-Stop: ypbind $syslog gpm firstboot kbd resmgr earlyxdm winbind acpid ntp
+# Default-Start: 5
+# Default-Stop:
+# Description: X Display Manager
+### END INIT INFO
+
+. /etc/rc.status
+. /etc/sysconfig/displaymanager
+. /etc/sysconfig/language
+. /etc/sysconfig/windowmanager
+test -e /etc/SuSEconfig/profile && . /etc/SuSEconfig/profile
+test -r /etc/profile.d/desktop-data.sh && . /etc/profile.d/desktop-data.sh
+
+locale_vars=" \
+LANG \
+LC_CTYPE \
+LC_NUMERIC \
+LC_TIME \
+LC_COLLATE \
+LC_MONETARY \
+LC_MESSAGES \
+LC_PAPER \
+LC_NAME \
+LC_ADDRESS \
+LC_TELEPHONE \
+LC_MEASUREMENT \
+LC_IDENTIFICATION \
+LC_ALL"
+
+unset LC_ALL
+for lc in $locale_vars
+do
+ eval val="\$RC_$lc"
+ if test -n "$val"; then
+ eval $lc="\$RC_$lc"
+ export $lc
+ fi
+done
+unset lc val
+
+if test -z "$WINDOWMANAGER" ; then
+ SAVEPATH=$PATH
+ PATH=$PATH:/usr/X11R6/bin:/usr/openwin/bin
+ desktop=/usr/share/xsessions/${DEFAULT_WM}.desktop
+ if test -s "$desktop" ; then
+ while read -r line; do
+ case ${line} in
+ Exec=*) WINDOWMANAGER="$(command -v ${line#Exec=})"
+ break
+ esac
+ done < $desktop
+ fi
+ if test -n "$DEFAULT_WM" -a -z "$WINDOWMANAGER" ; then
+ WINDOWMANAGER="$(command -v ${DEFAULT_WM##*/})"
+ fi
+ PATH=$SAVEPATH
+ unset SAVEPATH desktop
+fi
+unset DEFAULT_WM
+export WINDOWMANAGER
+
+XDM_PIDFILE="/var/run/xdm.pid"
+KDM_PIDFILE="/var/run/kdm.pid"
+TDM_PIDFILE="/var/run/tdm.pid"
+GDM_PIDFILE="/var/run/gdm.pid"
+SLIM_PIDFILE="/var/run/slim.lock"
+LXDM_PIDFILE="/var/run/lxdm.pid"
+ENTRANCE_PIDFILE="/var/run/entrance.pid"
+PIDFILE=$XDM_PIDFILE
+KDEROOTHOME=/root/.kdm
+export KDEROOTHOME
+XDMDIR=/etc/X11/xdm
+if [ -x /usr/bin/xdm ]; then
+ XDM_BIN=/usr/bin/xdm
+else
+ XDM_BIN=/usr/X11R6/bin/xdm
+fi
+if [ -x /usr/sbin/gdm ]; then
+ GDM_BIN=/usr/sbin/gdm
+else
+ GDM_BIN=/opt/gnome/sbin/gdm
+fi
+KDM_BIN=/opt/kde3/bin/kdm
+TDM_BIN=/opt/trinity/bin/kdm
+KDM4_BIN=/usr/bin/kdm
+WDM_BIN=/usr/bin/wdm
+SLIM_BIN=/usr/bin/slim
+LXDM_BIN=/usr/bin/lxdm
+ENTRANCE_BIN=/usr/sbin/entranced
+RELOADSIGNAL="-HUP"
+
+DM=${DISPLAYMANAGER##*/}
+
+case "${DM}" in
+ kdm3) DISPLAYMANAGER=$KDM_BIN
+ PIDFILE=$KDM_PIDFILE
+ ;;
+ tdm) DISPLAYMANAGER=$TDM_BIN
+ PIDFILE=$TDM_PIDFILE
+ ;;
+ kdm|kde|KDM|KDE) DISPLAYMANAGER=$KDM_BIN
+ if [ ! -r "$DISPLAYMANAGER" ]; then
+ DISPLAYMANAGER=$KDM4_BIN
+ fi
+ PIDFILE=$KDM_PIDFILE
+ ;;
+ kdm4) DISPLAYMANAGER=$KDM4_BIN
+ PIDFILE=$KDM_PIDFILE
+ ;;
+ xdm) DISPLAYMANAGER=$XDM_BIN
+ ;;
+ gdm|GDM|Gnome|GNOME) DISPLAYMANAGER=$GDM_BIN
+ PIDFILE=$GDM_PIDFILE
+ RELOADSIGNAL="-USR1"
+ ;;
+ wdm|WDM) DISPLAYMANAGER=$WDM_BIN
+ ;;
+ slim|SLIM) DISPLAYMANAGER=$SLIM_BIN
+ XDMOPTIONS=-d
+ PIDFILE=$SLIM_PIDFILE
+ ;;
+ lxdm|LXDM) DISPLAYMANAGER=$LXDM_BIN
+ XDMOPTIONS=-d
+ PIDFILE=$LXDM_PIDFILE
+ ;;
+ entrance)
+ DISPLAYMANAGER=$ENTRANCE_BIN
+ PIDFILE=$ENTRANCE_PIDFILE
+ ;;
+ console) exit 0
+ ;;
+ *) DISPLAYMANAGER=$XDM_BIN
+ if test -x $KDM_BIN; then
+ DISPLAYMANAGER=$KDM_BIN
+ PIDFILE=$KDM_PIDFILE
+ elif test -x $KDM4_BIN; then
+ DISPLAYMANAGER=$KDM4_BIN
+ PIDFILE=$KDM_PIDFILE
+ fi
+ ;;
+esac
+test ! -x "$DISPLAYMANAGER" && DISPLAYMANAGER=$XDM_BIN
+
+rc_reset
+
+splashcopy()
+{
+ local from=$1
+ local to=$2
+ if [ "$SPLASH" = yes ]
+ then
+ ver=$(sed "s/.*v\([[:digit:]]\)\.\([[:digit:]]\).*/\\1\\2/" /proc/splash)
+ if [ $ver -gt 31 ]
+ then
+ echo "copy $from $to" > /proc/splash
+ echo "@$to silent" > /proc/splash
+ echo "@$to show -1" > /proc/splash
+ fi
+ fi
+}
+
+case "$1" in
+ start)
+ if [ "$DISPLAYMANAGER" = "$KDM4_BIN" ] \
+ || [ "$DISPLAYMANAGER" = "$GDM_BIN" ]; then
+ splashcopy 0 6
+ fi
+ # Avoid duplicated messages when earlyxdm is in use
+ if [ "$DISPLAYMANAGER" = "$KDM_BIN" -a -s $KDM_PIDFILE ]; then
+ /sbin/checkproc -p $KDM_PIDFILE $KDM_BIN && rc_exit 0
+ elif [ "$DISPLAYMANAGER" = "$TDM_BIN" -a -s $TDM_PIDFILE ]; then
+ /sbin/checkproc -p $TDM_PIDFILE $TDM_BIN && rc_exit 0
+ elif [ "$DISPLAYMANAGER" = "$KDM4_BIN" -a -s $KDM_PIDFILE ]; then
+ /sbin/checkproc -p $KDM_PIDFILE $KDM4_BIN && rc_exit 0
+ elif [ "$DISPLAYMANAGER" = "$GDM_BIN" -a -s $GDM_PIDFILE ]; then
+ /sbin/checkproc -p $GDM_PIDFILE $GDM_BIN && rc_exit 0
+ elif [ "$DISPLAYMANAGER" = "$ENTRANCE_BIN" -a -s $ENTRANCE_PIDFILE ]; then
+ /sbin/checkproc -p $ENTRANCE_PIDFILE $ENTRANCE_BIN && rc_exit 0
+ fi
+
+ if [ "$DISPLAYMANAGER" != "$KDM_BIN" -a \
+ "$DISPLAYMANAGER" != "$TDM_BIN" -a \
+ "$DISPLAYMANAGER" != "$KDM4_BIN" -a \
+ "$DISPLAYMANAGER" != "$ENTRANCE_BIN" -a \
+ "$DISPLAYMANAGER" != "$GDM_BIN" ]; then
+ test -x /etc/X11/xdm/SuSEconfig.xdm && \
+ MD5DIR="/var/adm/SuSEconfig/md5" \
+ /etc/X11/xdm/SuSEconfig.xdm | \
+ sed 's+\(.*\)+/etc/init.d/xdm: \1+g' | \
+ /bin/logger
+ fi
+
+ # use system keyboard as global X keyboard configuration
+ if [ -x /etc/X11/xdm/keytable ]; then
+ /etc/X11/xdm/keytable
+ fi
+
+ echo -n "Starting service $DM"
+ # Don't start xdm if no Xserver is configured and xdm is not
+ # configured for remote access
+ if [ ! -x /usr/bin/X -a ! -x /usr/X11R6/bin/X -a \
+ "$DISPLAYMANAGER_REMOTE_ACCESS" = "no" ]; then
+ rc_status -u
+ rc_exit
+ fi
+ if [ "$DISPLAYMANAGER" = "$GDM_BIN" -a \
+ "$DISPLAYMANAGER_REMOTE_ACCESS" = "yes" -a \
+ "$DISPLAYMANAGER_STARTS_XSERVER" = "no" ]; then
+ XDMOPTIONS="--no-console"
+ fi
+ # Graphical failsafe mode (Bug #246158).
+ #
+ # Needs changes in kernel commandline of "Failsafe" entry in
+ # /boot/grub/menu.lst.
+ #
+ # * use the same "vga" option value as in the non-"Failsafe" entry
+ # * remove "3" option (runlevel)
+ # * add "x11failsafe" option
+ if cat /proc/cmdline | grep -q x11failsafe; then
+ if [ -f /etc/X11/xorg.conf.install ]; then
+ export XORGCONFIG=xorg.conf.install
+ echo
+ echo "Using failsafe X.Org configuration /etc/X11/xorg.conf.install"
+ else
+ echo
+ echo "The failsafe X.Org configuration /etc/X11/xorg.conf.install no longer exists."
+ echo "Either move it back (if still available) or copy /etc/X11/xorg.conf to"
+ echo "/etc/X11/xorg.conf.install to use the native graphics driver instead of the"
+ echo "failsafe graphics driver. Of course the latter option no longer can be called"
+ echo "failsafe."
+ rc_status -u
+ rc_exit
+ fi
+ fi
+ startproc -p $PIDFILE $DISPLAYMANAGER $XDMOPTIONS || rc_failed
+ # After a crash or a kill signal we may have
+ # a wrong owner ship of /dev/xconsole
+ if rc_status ; then
+ if test -x $XDMDIR/TakeDevices ; then
+ $XDMDIR/TakeDevices
+ else
+ chown root:tty /dev/xconsole /dev/tty0
+ chmod 622 /dev/xconsole /dev/tty0
+ fi
+ else
+ case "${DM}" in
+ slim|SLIM)
+ test -s $PIDFILE || pgrep -f $DISPLAYMANAGER > $PIDFILE
+ esac
+ fi
+ rc_status -v
+ ;;
+ stop)
+ # make sure to stop the running one (Bug #306035)
+ if test -s "$KDM_PIDFILE"; then
+ PIDFILE=$KDM_PIDFILE
+ elif test -s "$TDM_PIDFILE"; then
+ PIDFILE=$TDM_PIDFILE
+ elif test -s "$GDM_PIDFILE"; then
+ PIDFILE=$GDM_PIDFILE
+ elif test -s "$XDM_PIDFILE"; then
+ PIDFILE=$XDM_PIDFILE
+ elif test -s "$SLIM_PIDFILE"; then
+ PIDFILE=$SLIM_PIDFILE
+ elif test -s "$LXDM_PIDFILE"; then
+ PIDFILE=$LXDM_PIDFILE
+ elif test -s "$ENTRANCE_PIDFILE"; then
+ PIDFILE=$ENTRANCE_PIDFILE
+ fi
+ if test -s $PIDFILE; then
+ read -t 1 PID < $PIDFILE
+ if CHECKDM=$(ps ho command= -p $PID) ; then
+ DISPLAYMANAGER=${CHECKDM%%[[:blank:]]*}
+ DM=${DISPLAYMANAGER##*/}
+ fi
+ unset CHECKDM
+ else
+ rm -f $PIDFILE
+ unset PIDFILE
+ fi
+ echo -n "Shutting down service $DM"
+
+ #
+ # killproc(8) sleep upto five seconds and sends
+ # SIGKILL if xdm does not terminate within
+ #
+
+ killproc ${PIDFILE:+-p ${PIDFILE}} $DISPLAYMANAGER
+ rc_status -v
+ ;;
+ restart)
+ $0 stop
+ $0 start
+ rc_status
+ ;;
+ reload|force-reload)
+ test -x /etc/X11/xdm/SuSEconfig.xdm && \
+ MD5DIR="/var/adm/SuSEconfig/md5" \
+ /etc/X11/xdm/SuSEconfig.xdm | \
+ sed 's+\(.*\)+/etc/init.d/xdm: \1+g' | \
+ /bin/logger
+ echo -n "Reload service $DM"
+ killproc -p $PIDFILE $RELOADSIGNAL $DISPLAYMANAGER
+ rc_status -v
+ ;;
+ status|check)
+ echo -n "Checking for service ${DM}: "
+ checkproc -p $PIDFILE $DISPLAYMANAGER
+ rc_status -v
+ ;;
+ probe)
+ if test $XDMDIR/xdm-config -nt $PIDFILE -o \
+ $XDMDIR/Xservers -nt $PIDFILE
+ then
+ echo reload
+ fi
+ ;;
+ try-restart|condrestart)
+ $0 status
+ if test $? = 0; then
+ $0 restart
+ else
+ rc_reset
+ fi
+ rc_status
+ ;;
+ *)
+ echo "Usage: $0 {start|stop|status|restart|reload|force-reload|probe|try-restart}"
+ exit 1
+esac
+rc_exit