--- /dev/null
+#!/sbin/runscript
+# Copyright 1999-2004 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License, v2
+# $Header: /var/cvsroot/gentoo-x86/x11-apps/xinit/files/xdm.start,v 1.1 2005/09/06 19:33:51 joshuabaergen Exp $
+
+# This is here to serve as a note to myself, and future developers.
+#
+# Any Display manager (gdm,kdm,xdm) have 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
+
+
+# Start X Font Server before X
+depend() {
+ use xfs hotplug
+}
+
+setup_dm() {
+ source /etc/profile.env
+ export PATH="/bin:/sbin:/usr/bin:/usr/sbin:${ROOTPATH}"
+
+ local MY_XDM="$(echo ${DISPLAYMANAGER} | awk '{ print tolower($1) }')"
+ case "${MY_XDM}" in
+ kdm|kde|kde2|kde3)
+ EXE="$(which kdm)"
+ ;;
+ entrance*)
+ EXE="$(which entranced)"
+ ;;
+ gdm|gnome)
+ EXE=/usr/bin/gdm
+ ;;
+ wdm)
+ EXE=/usr/bin/wdm
+ ;;
+ *)
+ EXE=
+ # Fix #65586, where MY_XDM is empty so EXE=somedir
+ [ -x "/usr/bin/${MY_XDM}" -a -f "/usr/bin/${MY_XDM}" ] \
+ && EXE="/usr/bin/${MY_XDM}"
+ [ -z "${EXE}" ] && EXE="/usr/bin/xdm"
+ ;;
+ esac
+
+ test ! -x "${EXE}" && EXE=/usr/bin/xdm
+
+ SERVICE="${EXE##*/}"
+}
+
+cmdline_opt() {
+ if [[ "$#" -ne 1 ]]; then
+ return 1
+ fi
+
+ for opt in $(</proc/cmdline); do
+ case ${opt} in
+ ${1}) eval ${1}="true" ;;
+ esac
+ done
+}
+
+nox() {
+ # Don't start X if we were passed 'nox' at boot (#83680)
+ cmdline_opt nox
+
+ if [[ "$?" -ne 0 ]]; then
+ return 1
+ fi
+
+ if [[ -n "${nox}" ]]; then
+ return 0
+ else
+ return 1
+ fi
+}
+
+start() {
+ setup_dm
+
+ if nox; then
+ einfo "Skipping ${EXE}, received 'nox'"
+ else
+ ebegin "Setting up ${SERVICE}"
+ #save the prefered DM
+ save_options "service" "${EXE}"
+ #tell init to run /etc/X11/startDM.sh after current
+ #runlevel is finished (should *not* be in the "boot"
+ # runlevel).
+ /sbin/telinit a &>/dev/null
+ eend 0
+ fi
+
+}
+
+stop() {
+ local retval=0
+ local curvt="$(fgconsole)"
+ local myexe="$(get_options "service")"
+ local myservice="${myexe##*/}"
+
+ ebegin "Stopping ${myservice}"
+ rm -f ${svcdir}/options/xdm/service
+
+ if [ "$(ps -A | grep -e "${myservice}")" ]
+ then
+ start-stop-daemon --stop --quiet \
+ --exec ${myexe} &>/dev/null
+
+ retval=$?
+ fi
+
+ #switch back to original vt
+ chvt "${curvt}" &>/dev/null
+ eend ${retval} "Error stopping ${myservice}."
+
+ return ${retval}
+}
+
+
+# vim:ts=4
--- /dev/null
+# Copyright 1999-2005 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/x11-apps/xinit/xinit-0.99.1_pre20050905-r1.ebuild,v 1.1 2005/09/06 19:33:51 joshuabaergen Exp $
+
+inherit versionator
+
+# Must be before x-modular eclass is inherited
+SNAPSHOT="yes"
+
+# Fix ${S} in x-modular for pre ebuilds
+MY_P="${PN}-$(get_version_component_range 1-3)"
+S="${WORKDIR}/${MY_P}"
+
+inherit x-modular
+
+DESCRIPTION="X.Org xinit application"
+KEYWORDS="~amd64 ~arm ~s390 ~sh ~sparc ~x86"
+RDEPEND="x11-libs/libX11"
+DEPEND="${RDEPEND}"
+
+# Snapshots don't reside on fdo servers
+SRC_URI="mirror://gentoo/${P}.tar.bz2"
+
+PATCHES="${FILESDIR}/nolisten-tcp-and-black-background.patch
+ ${FILESDIR}/gentoo-startx-customization.patch"
+
+src_unpack() {
+ x-modular_unpack_source
+ x-modular_patch_source
+
+ sed -i -e "s:^XINITDIR.*:XINITDIR = \$(sysconfdir)/X11/xinit:g" ${S}/Makefile.am
+
+ x-modular_reconf_source
+}
+
+src_install() {
+ x-modular_src_install
+ exeinto /etc/X11
+ doexe ${FILESDIR}/chooser.sh ${FILESDIR}/startDM.sh
+ exeinto /etc/X11/Sessions
+ doexe ${FILESDIR}/Xsession
+ exeinto /etc/X11/xinit
+ doexe ${FILESDIR}/xinitrc
+ newinitd ${FILESDIR}/xdm.start xdm
+}