From 309e25fa28df9b25c1e5080c3a93ec541803afcb Mon Sep 17 00:00:00 2001
From: Chí-Thanh Christopher Nguyễn <chithanh@gentoo.org>
Date: Sun, 12 Sep 2010 20:45:23 +0000
Subject: Add missing files, bug #336997.

Package-Manager: portage-2.2_rc73/cvs/Linux x86_64
---
 x11-base/xorg-server/files/xdm.initd-2    | 202 ++++++++++++++++++++++++++++++
 x11-base/xorg-server/files/xorg-sets.conf |   6 +
 2 files changed, 208 insertions(+)
 create mode 100755 x11-base/xorg-server/files/xdm.initd-2
 create mode 100644 x11-base/xorg-server/files/xorg-sets.conf

(limited to 'x11-base/xorg-server/files')

diff --git a/x11-base/xorg-server/files/xdm.initd-2 b/x11-base/xorg-server/files/xdm.initd-2
new file mode 100755
index 000000000000..47942b0d6cff
--- /dev/null
+++ b/x11-base/xorg-server/files/xdm.initd-2
@@ -0,0 +1,202 @@
+#!/sbin/runscript
+# Copyright 1999-2004 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License, v2
+# $Header: /var/cvsroot/gentoo-x86/x11-base/xorg-server/files/xdm.initd-2,v 1.1 2010/09/12 20:45:23 chithanh Exp $
+
+# This is here to serve as a note to myself, and future developers.
+#
+# Any Display manager (gdm,kdm,xdm) has the following problem:  if
+# it is started before any getty, and no vt is specified, it will
+# usually run on vt2.  When the getty on vt2 then starts, and the
+# DM is already started, the getty will take control of the keyboard,
+# leaving us with a "dead" keyboard.
+#
+# Resolution: add the following line to /etc/inittab
+#
+#  x:a:once:/etc/X11/startDM.sh
+#
+# and have /etc/X11/startDM.sh start the DM in daemon mode if
+# a lock is present (with the info of what DM should be started),
+# else just fall through.
+#
+# How this basically works, is the "a" runlevel is a additional
+# runlevel that you can use to fork processes with init, but the
+# runlevel never gets changed to this runlevel.  Along with the "a"
+# runlevel, the "once" key word means that startDM.sh will only be
+# run when we specify it to run, thus eliminating respawning
+# startDM.sh when "xdm" is not added to the default runlevel, as was
+# done previously.
+#
+# This script then just calls "telinit a", and init will run
+# /etc/X11/startDM.sh after the current runlevel completes (this
+# script should only be added to the actual runlevel the user is
+# using).
+#
+# Martin Schlemmer
+# aka Azarah
+# 04 March 2002
+
+depend() {
+	need localmount xdm
+
+	# this should start as early as possible
+	# we can't do 'before *' as that breaks it
+	# (#139824) Start after ypbind and autofs for network authentication
+	# (#145219 #180163) Could use lirc mouse as input device
+	# (#70689 comment #92) Start after consolefont to avoid display corruption
+	# (#291269) Start after quota, since some dm need readable home
+	after bootmisc consolefont modules netmount
+	after readahead-list ypbind autofs openvpn gpm lircmd
+	after quota
+	before alsasound
+
+	# Start before X
+	use consolekit xfs
+}
+
+setup_dm() {
+	local MY_XDM="$(echo "${DISPLAYMANAGER}" | tr '[:upper:]' '[:lower:]')"
+
+	# Load our root path from profile.env
+	# Needed for kdm
+	PATH="${PATH}:$(. /etc/profile.env; echo "${ROOTPATH}")"
+
+	case "${MY_XDM}" in
+		kdm|kde)
+			EXE="$(which kdm)"
+			PIDFILE=/var/run/kdm.pid
+			;;
+		kdm-*)
+			EXE="/usr/kde/${MY_XDM#kdm-}/bin/kdm"
+			PIDFILE=/var/run/kdm.pid
+			;;
+		entrance*)
+			EXE=/usr/sbin/entranced
+			PIDFILE=/var/lib/entranced.pid
+			;;
+		gdm|gnome)
+			EXE=/usr/bin/gdm
+			[ "${RC_UNAME}" != "Linux" ] && NAME=gdm-binary
+			PIDFILE=/var/run/gdm.pid
+			;;
+		wdm)
+			EXE=/usr/bin/wdm
+			PIDFILE=
+			;;
+		gpe)
+			EXE=/usr/bin/gpe-dm
+			PIDFILE=/var/run/gpe-dm.pid
+			;;
+		*)
+			# first find out if there is such executable
+			EXE="$(which ${MY_XDM} 2>/dev/null)"
+			PIDFILE="/var/run/${MY_XDM}.pid"
+
+			# warn user that he is doing sick things if the exe was not found
+			if [ "${EXE}" = "" ]; then
+				echo "ERROR: Your XDM value is invalid."
+				echo "  No ${MY_XDM} executable could be found on your system."
+			fi
+			;;
+	esac
+
+	if ! [ -x "${EXE}" ]; then
+		EXE=/usr/bin/xdm
+		PIDFILE=/var/run/xdm.pid
+		if ! [ -x "/usr/bin/xdm" ]; then
+			echo "ERROR: Please set your DISPLAYMANAGER variable in /etc/conf.d/xdm,"
+			echo "	or install x11-apps/xdm package"
+			eend 255
+		fi
+	fi
+}
+
+# Check to see if something is defined on our VT
+vtstatic() {
+	if [ -e /etc/inittab ] ; then
+		grep -Eq "^[^#]+.*\<tty$1\>" /etc/inittab
+	elif [ -e /etc/ttys ] ; then
+		grep -q "^ttyv$(($1 - 1))" /etc/ttys
+	else
+		return 1
+	fi
+}
+
+start() {
+	local EXE= NAME= PIDFILE=
+	setup_dm
+
+	if [ -f /etc/.noxdm ] || get_bootparam "nox" ; then
+		einfo "Skipping ${EXE##*/}, /etc/.noxdm found or \"nox\" bootparam passed."
+		rm /etc/.noxdm
+		return 0
+	fi
+
+	ebegin "Setting up ${EXE##*/}"
+
+	# save the prefered DM
+	save_options "service" "${EXE}"
+	save_options "name"    "${NAME}"
+	save_options "pidfile" "${PIDFILE}"
+
+	if [ -n "${CHECKVT-y}" ] ; then
+		if vtstatic "${CHECKVT:-7}" ; then
+			if [ -x /sbin/telinit ] && [ "${SOFTLEVEL}" != "BOOT" ] && [ "${RC_SOFTLEVEL}" != "BOOT" ] ; then
+				ewarn "Something is already defined on VT ${CHECKVT:-7}, will start X later"
+				telinit a >/dev/null 2>/dev/null
+				return 0
+			else
+				eerror "Something is already defined on VT ${CHECKVT:-7}, not starting"
+				return 1
+			fi
+		fi
+	fi
+
+	/etc/X11/startDM.sh
+	eend 0
+}
+
+stop() {
+	local retval=0
+	local curvt=
+	if [ -t 0 ] ; then
+		if type fgconsole >/dev/null 2>/dev/null ; then
+			curvt="$(fgconsole 2>/dev/null)"
+		else
+			curvt="$(tty)"
+			case "${curvt}" in
+				/dev/ttyv[0-9]*) curvt="${curvt#/dev/ttyv*}" ;;
+				*) curvt= ;;
+			esac
+		fi
+	fi
+	local myexe="$(get_options "service")"
+	local myname="$(get_options "name")"
+	local mypidfile="$(get_options "pidfile")"
+	local myservice=${myexe##*/}
+
+	[ -z "${myexe}" ] && return 0
+
+	ebegin "Stopping ${myservice}"
+
+	if start-stop-daemon --quiet --test --stop --exec "${myexe}" ; then
+		start-stop-daemon --stop --exec "${myexe}" --retry TERM/5/TERM/5 \
+			${mypidfile:+--pidfile} ${mypidfile} \
+			${myname:+--name} ${myname}
+		retval=$?
+	fi
+
+	# switch back to original vt
+	if [ -n "${curvt}" ] ; then
+		if type chvt >/dev/null 2>/dev/null ; then
+			chvt "${curvt}"
+		else
+			vidcontrol -s "$((${curvt} + 1))"
+		fi
+	fi
+
+	eend ${retval} "Error stopping ${myservice}"
+	return ${retval}
+}
+
+# vim: set ts=4 :
diff --git a/x11-base/xorg-server/files/xorg-sets.conf b/x11-base/xorg-server/files/xorg-sets.conf
new file mode 100644
index 000000000000..5cd8112f583c
--- /dev/null
+++ b/x11-base/xorg-server/files/xorg-sets.conf
@@ -0,0 +1,6 @@
+# Rebuild all X11 modules (mostly useful after xorg-server ABI change).
+[x11-module-rebuild]
+class = portage.sets.dbapi.VariableSet
+world-candidate = false
+variable = CATEGORY
+includes = x11-drivers
-- 
cgit v1.2.3-65-gdbad