summaryrefslogtreecommitdiff
path: root/x11-apps/xinit
diff options
context:
space:
mode:
Diffstat (limited to 'x11-apps/xinit')
-rw-r--r--x11-apps/xinit/Manifest17
-rw-r--r--x11-apps/xinit/files/00-xhost7
-rw-r--r--x11-apps/xinit/files/Xsession107
-rw-r--r--x11-apps/xinit/files/Xsession.desktop8
-rw-r--r--x11-apps/xinit/files/chooser.sh51
-rw-r--r--x11-apps/xinit/files/startDM.sh30
-rw-r--r--x11-apps/xinit/files/xinit-1.3.3-gentoo-customizations.patch61
-rw-r--r--x11-apps/xinit/files/xinit-1.3.4-startx-current-vt.patch21
-rw-r--r--x11-apps/xinit/files/xserverrc2
-rw-r--r--x11-apps/xinit/files/xserverrc.16
-rw-r--r--x11-apps/xinit/metadata.xml17
-rw-r--r--x11-apps/xinit/xinit-1.3.3-r1.ebuild66
-rw-r--r--x11-apps/xinit/xinit-1.3.3.ebuild66
-rw-r--r--x11-apps/xinit/xinit-1.3.4-r1.ebuild74
14 files changed, 533 insertions, 0 deletions
diff --git a/x11-apps/xinit/Manifest b/x11-apps/xinit/Manifest
new file mode 100644
index 000000000000..9f27f4276e75
--- /dev/null
+++ b/x11-apps/xinit/Manifest
@@ -0,0 +1,17 @@
+AUX 00-xhost 255 SHA256 780a53d697e5cdc8ae7cf24f97e554a9ff7b41d46f205774d7414cecfca3ab97 SHA512 ef9bc61b9af6723236e543dae1b7c92c739050dd3cb5acc59deaf2589a490323db7e1f52b890dc325e7e7b8db299cd50ad604456c1209ec761da124efd75cdf2 WHIRLPOOL 81de4d5fe95cf145e4ca72291d0bb0984993f165351d7dba78146ff9e2e2555abb4861a867f0962c1148aaac059c3489d52d1aee54c28faf6f0e228ffe38eb2f
+AUX Xsession 2187 SHA256 bdf2cceaafb71762bc1c6491f9bd8cc24089dea7ef65b0a030acadf7f4aa4ab3 SHA512 a20e12f338ead48f4758268506fe899a0123c25babb1366678e643b4101ece8c913305b44c9395897a82e65ee0dd402edc0adf99adf74b3c6085bf39dd12f048 WHIRLPOOL 71669d591d60a6f5636f895471d94fee2dd1546c7561d3593e0d7b53211afed4860e4684d052e4f02913c7f98df1a11b9f64680fe85eb07daafc9263c0c3cddb
+AUX Xsession.desktop 229 SHA256 68cc432e350e4c6a94dc5b9d4e6659382a92d8a76b6b30851254d140373f41fe SHA512 2d2fea82972d77ac925e6edcd488c730b678dd74635cc3a06536413ec8bdff63be915161139f12636214023926dded9fa549f053f9a2b916ef905be79591093d WHIRLPOOL 472f41a4f695723f7bdf89a07f789269607fc4466fa3c060a63b6b50cb8b9e4a1b509f729eed1ad4d05a66fc7171e287fabf980570d7de54fa5a61209667a6c8
+AUX chooser.sh 1192 SHA256 1aceac55722a24593314c60e465a1e68982ccaf5fe0cf4d99d01e0a4d6f4cc63 SHA512 6149a5dc19104773d3500d2e89e8be5c9da49fad8b38148d511af237c6fef84c3223a94d4c0451296e7b27c86c513c5f4fd425a738d94c30d26f1ac888bbc255 WHIRLPOOL ec48a47f3647aff62a6dbe25a38c4b68cbb772c65062bf2978cd5558e128ab58aa1a34cf6081c110eb81a91e8dd047e030812c4342dc77d4947b601e972b1dc3
+AUX startDM.sh 818 SHA256 f343f87c5c89aa1b7112ec946c4df06b25e541d488405f4d98bedbeddd30bd32 SHA512 f3b3aa841edfbd23810d2da7c56e23e3f1c1eb650b1196feea2fc8dc6092ad5d4c2fba70943a1bc86d716d838ab4ebc0d93e8a2c2ccdf69b171c1fdc4989942c WHIRLPOOL f4ad1ac5b9b4bf271df814b549b3eb010489595e02591a91c0641c89943bc8cb110ab701c72fea9343e0186c9172a961f202b91e0049c33ee896fb5ca7de2759
+AUX xinit-1.3.3-gentoo-customizations.patch 1494 SHA256 8405f913acc9a6654a979d55555cb67187b3bee881ef6a452acf943b56cdc429 SHA512 810066a3af51fd31c177f1aa33d3020e63d1656bacc297fa2bb44e0f3745bfd27d466745ebb07343f7b95339a9f6c8821c6f117e0b2f99724e21a0869427228b WHIRLPOOL ed7d7d141c4c6a908f3f42cd6ae836b522b4e9a6598e2ec8a11b631d1d4f6494b9a54c60570b43ab55f10e67e52caff074f8f4848547666c33c3092476aa6b95
+AUX xinit-1.3.4-startx-current-vt.patch 808 SHA256 04e21eba179787b66e19c15ba11f7ddf5c7a07caa98b1b7dbbb805df7723e9b9 SHA512 48b16a9c521dfc83f215f25efbd4f7d433bd61e656608c20f69214ae5939f8f4a5e38d8985cc82bee871848827d53a0245940c76c7b75df4a4d907a1106ff4a9 WHIRLPOOL 83056b768075c35235e0cac451f037a499577db2ebbe47e021c8869e2aa4c86ed93e96e3617c08b1ed132a5f799bf24cb4c67c9515a52757b6b5680d964091fc
+AUX xserverrc 45 SHA256 86835010b5350c41035495b7b845db0eecf1e4b7eeaf152b12a881fa502e5387 SHA512 f86d96d76bcb340021e7904925f0029f8662e4dfc32489198b3a8695dca069da496539e2287249c763fe9c4d8d5d591fd18fe49a0bee822cbbd0eb712efbb89b WHIRLPOOL d6b68b3b63995688dff5a52d246164860091b3d30517b1cee5ac7c7d791e3a6f3356bf4d494f209b783ba8266f213aff6684190c2592e0f729017a8870e492f4
+AUX xserverrc.1 132 SHA256 5e87bff928c143d9db9966048f6530e83e9e9a1cac09ce4c25f8aabc08611b6f SHA512 3cc3b18cfc8076badcae62d098a0c3cc0b654ab691b9e7a64f456f5428f1afe1130c9c033b106cfa2e566de22cb75756d71368e3c0a7474b8a76f63c1f91a918 WHIRLPOOL 7e8fc7fd5c726f5cf4e80add93a97cfd48651db5383c2c5b02689ce3d49ead91579154320c77b7993f7d18b3b2718a9b90ad94c526f49fce5d8160bc4c62474c
+DIST xinit-1.3.3.tar.bz2 163905 SHA256 74b2878de6e3d5b5948f1562a77e7f53b4e10621e505ddb278050c7f3cae00af SHA512 345d9a00991e25df0a565f5b7edfbf504df9e019fc8ca2d31e4d2899e4765d7a18f0fffec0b4dda5eef99982cf8482925656a4e18576105f267393de51257d65 WHIRLPOOL 106656351391ff8de397394d56ea225f910f82be3cbacaf81c0735d2a259437632bd5428fc96900a0b88146fd11f8d8670f07f3dd2869b44ff6525c399b936f4
+DIST xinit-1.3.4.tar.bz2 165881 SHA256 75d88d7397a07e01db253163b7c7a00b249b3d30e99489f2734cac9a0c7902b3 SHA512 ac31e4cac86fc5dd4c0e15cf37cb9ac470ef3ace4f86d0063c7e1091342fe64d41fcd12c1840bd8e1cef4cdd7f66bd2fa76bd4061641e9c70941d76d73d0df2e WHIRLPOOL 2362d69caffcaca6e6d284fcc7438fa6a81c36e79a20f23d32a67a5de9e6d64a9680d2f513e6718312d6e25117af90f28c17f70da0189595021198390eb12222
+EBUILD xinit-1.3.3-r1.ebuild 1710 SHA256 cc39d9ecf7d848f8dc8ee86bd48f7ace95ecdadede0423ee50e787f58b6ecc56 SHA512 29936defecb686387f2f2f3ab5a53fae51541e1f7f079e5c9067016d22f771b529111eb425fd05514cf7385d7908054a4c92a7e5e47f960b59e2b1d8a1fd3ffd WHIRLPOOL 4435d3cc04067d4513b0575974591464fe3a1a23c9aa296cbae369a74c03ac553f2c4257bcf9d243281bf0eed4656f016ce38dc9ce51dcb17b3e43be80037f8b
+EBUILD xinit-1.3.3.ebuild 1678 SHA256 ef5aad73f82925e54508e804b24e2798388bd83fa42ea7d26c43992290afce5a SHA512 77692a2a2ea8ba21f797421e9cc9095b0f5f27c984757283fd11aae717fa659df109bc2878f6456f309d47cf50ff3c7cc8562d932d03c4c919da132805ab281b WHIRLPOOL 6e90f7eb989b2985355044dad8375da1c438397649d02961a261132a7114e170360ef8268047a8fcea3dd96e2a87561665b35f29ea52e728284d08868f97d9c8
+EBUILD xinit-1.3.4-r1.ebuild 1906 SHA256 b98e6d2ef85d5c22ffec76678ed02ee6f9b7cdbf6499baf0ed7ab324df991fa8 SHA512 b6cf4c297fa7c313b2eb6d29b4c079867755f8ce4aff02bfd710d52397d158a62a8f1d7c3e0f1c67b985f49dc5fbde1555ea851d778be6be0d642f65d1210e5d WHIRLPOOL 1f0f6e3712068e81cffb016bda6005a6aefd11a5bb456d9324f93f23a3b643d6503932d1a6ef3116f477ef834022ba6975c8085036642a4433f2cf42aa5325b5
+MISC ChangeLog 4782 SHA256 47bc98791a0ab8faa1987f7fad293f2b3c936062b715afa1e28c9bcf69e0cead SHA512 bd57878dbe63bc6255c44b95cceceb2737667f2df8189bc7cff16b9df4e782f054e3cbc26943c79c7273bc9e3a50f7f82e48653d554699ebf1d31b089a9502ea WHIRLPOOL 2be90a677295553ac1c4e4991dcb66fe4b18b0c6b078e6a8a9f5447d7a9e577b854e7a0603c6d128f5774d0b6dcc7300c9008e8eb166c8fa9a985b1747e060d6
+MISC ChangeLog-2015 39710 SHA256 3f9ad1a503986b8cf8c85390e7cf95f2fcebfaf391c610e3875b01a993f2f01e SHA512 8b3f48beb02722d48166016432bf8e003b2468eb99fd914802b254d8945c0d894c63f714ef97a780e82e9de403f7ff3ebb59d3c36a16f0fd7eefe6f06b024b2d WHIRLPOOL 26e0e971f9adc58f392d3cf3bdaa0a78e2a519ee376bbd38ca8ef6927dc9ac059bb6788942e3a5c14d7f67de1bf67cdcd9d09d00eec31c52cae88f5df74d10a4
+MISC metadata.xml 480 SHA256 2f9b94f5a7ec3f0058e3e17aee941e528167c2ace77aef03f081dbd47a5e0093 SHA512 5dcfabd3eff26ffb33bd8ae8248cc3214c67a0fb10d5c214b2432fea7625b2555b29bb654d9712e8d55a081b25912da65ac367203fe529a860febc59fb91de55 WHIRLPOOL ce00934da5e14dc640184882aaae61d7071f9fdddf9545671de5ca1827cfe7c99316650dd744039536e28b13667793cb3fbbc1131acecb5464953575cd6f9f6f
diff --git a/x11-apps/xinit/files/00-xhost b/x11-apps/xinit/files/00-xhost
new file mode 100644
index 000000000000..82cf10381e68
--- /dev/null
+++ b/x11-apps/xinit/files/00-xhost
@@ -0,0 +1,7 @@
+#!/bin/sh
+# Allow all local connections from the current UID
+# This fixes issues with hostname changes (usually by dhcp clients)
+# see bug 287498 for more info
+
+[ -x /usr/bin/xhost ] && [ -x /usr/bin/id ] &&
+ xhost +si:localuser:`id -un` > /dev/null 2>&1
diff --git a/x11-apps/xinit/files/Xsession b/x11-apps/xinit/files/Xsession
new file mode 100644
index 000000000000..c86ccee19ff3
--- /dev/null
+++ b/x11-apps/xinit/files/Xsession
@@ -0,0 +1,107 @@
+#!/bin/sh
+# $XConsortium: Xsession /main/10 1995/12/18 18:21:28 gildea $
+
+case $# in
+1)
+ case $1 in
+ failsafe)
+ exec xterm -geometry 80x24-0-0
+ ;;
+ esac
+esac
+
+# redirect errors to a file in user's home directory if we can
+for errfile in "$HOME/.xsession-errors" "${TMPDIR-/tmp}/xses-$USER" "/tmp/xses-$USER"
+do
+ if ( cp /dev/null "$errfile" 2> /dev/null )
+ then
+ chmod 600 "$errfile"
+ exec > "$errfile" 2>&1
+ break
+ fi
+done
+
+# clean up after xbanner
+if which freetemp 2> /dev/null ; then
+ freetemp
+fi
+
+startup=$HOME/.xsession
+
+userresources=$HOME/.Xresources
+usermodmap=$HOME/.Xmodmap
+userxkbmap=$HOME/.Xkbmap
+
+sysresources=/etc/X11/Xresources
+sysmodmap=/etc/X11/Xmodmap
+sysxkbmap=/etc/X11/Xkbmap
+
+rh6sysresources=/etc/X11/xinit/Xresources
+rh6sysmodmap=/etc/X11/xinit/Xmodmap
+
+
+# merge in defaults
+if [ -f "$rh6sysresources" ]; then
+ xrdb -merge "$rh6sysresources"
+fi
+
+if [ -f "$sysresources" ]; then
+ xrdb -merge "$sysresources"
+fi
+
+if [ -f "$userresources" ]; then
+ xrdb -merge "$userresources"
+fi
+
+# merge in keymaps
+if [ -f "$sysxkbmap" ]; then
+ setxkbmap `cat "$sysxkbmap"`
+ XKB_IN_USE=yes
+fi
+
+if [ -f "$userxkbmap" ]; then
+ setxkbmap `cat "$userxkbmap"`
+ XKB_IN_USE=yes
+fi
+
+#
+# Eeek, this seems like too much magic here
+#
+if [ -z "$XKB_IN_USE" -a ! -L /etc/X11/X ]; then
+ if grep '^exec.*/Xsun' /etc/X11/X > /dev/null 2>&1 && [ -f /etc/X11/XF86Config ]; then
+ xkbsymbols=`sed -n -e 's/^[ ]*XkbSymbols[ ]*"\(.*\)".*$/\1/p' /etc/X11/XF86Config`
+ if [ -n "$xkbsymbols" ]; then
+ setxkbmap -symbols "$xkbsymbols"
+ XKB_IN_USE=yes
+ fi
+ fi
+fi
+
+# xkb and xmodmap don't play nice together
+if [ -z "$XKB_IN_USE" ]; then
+ if [ -f "$rh6sysmodmap" ]; then
+ xmodmap "$rh6sysmodmap"
+ fi
+
+ if [ -f "$sysmodmap" ]; then
+ xmodmap "$sysmodmap"
+ fi
+
+ if [ -f "$usermodmap" ]; then
+ xmodmap "$usermodmap"
+ fi
+fi
+
+unset XKB_IN_USE
+
+if [ -x "$startup" ]; then
+ exec "$startup"
+elif [ -x "$HOME/.Xclients" ]; then
+ exec "$HOME/.Xclients"
+elif [ -x /etc/X11/xinit/Xclients ]; then
+ exec /etc/X11/xinit/Xclients
+elif [ -x /etc/X11/Xclients ]; then
+ exec /etc/X11/Xclients
+else
+ exec xsm
+fi
diff --git a/x11-apps/xinit/files/Xsession.desktop b/x11-apps/xinit/files/Xsession.desktop
new file mode 100644
index 000000000000..0c5adb9d84f8
--- /dev/null
+++ b/x11-apps/xinit/files/Xsession.desktop
@@ -0,0 +1,8 @@
+[Desktop Entry]
+Name=XSession
+Comment=This session logs you into your custom Xsession
+Exec=/etc/X11/Sessions/Xsession
+TryExec=/etc/X11/Sessions/Xsession
+# no icon yet, only the top three are currently used
+Icon=
+Type=Application
diff --git a/x11-apps/xinit/files/chooser.sh b/x11-apps/xinit/files/chooser.sh
new file mode 100644
index 000000000000..6cfc57426d6a
--- /dev/null
+++ b/x11-apps/xinit/files/chooser.sh
@@ -0,0 +1,51 @@
+#!/bin/sh
+# Copyright 1999-2004 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License, v2
+# Author: Martin Schlemmer <azarah@gentoo.org>
+
+# Find a match for $XSESSION in /etc/X11/Sessions
+GENTOO_SESSION=""
+for x in /etc/X11/Sessions/* ; do
+ if [ "`echo ${x##*/} | awk '{ print toupper($1) }'`" \
+ = "`echo ${XSESSION} | awk '{ print toupper($1) }'`" ]; then
+ GENTOO_SESSION=${x}
+ break
+ fi
+done
+
+GENTOO_EXEC=""
+
+if [ -n "${XSESSION}" ]; then
+ if [ -f /etc/X11/Sessions/${XSESSION} ]; then
+ if [ -x /etc/X11/Sessions/${XSESSION} ]; then
+ GENTOO_EXEC="/etc/X11/Sessions/${XSESSION}"
+ else
+ GENTOO_EXEC="/bin/sh /etc/X11/Sessions/${XSESSION}"
+ fi
+ elif [ -n "${GENTOO_SESSION}" ]; then
+ if [ -x "${GENTOO_SESSION}" ]; then
+ GENTOO_EXEC="${GENTOO_SESSION}"
+ else
+ GENTOO_EXEC="/bin/sh ${GENTOO_SESSION}"
+ fi
+ else
+ x=""
+ y=""
+
+ for x in "${XSESSION}" \
+ "`echo ${XSESSION} | awk '{ print toupper($1) }'`" \
+ "`echo ${XSESSION} | awk '{ print tolower($1) }'`"
+ do
+ # Fall through ...
+ if [ -x "`which ${x} 2>/dev/null`" ]; then
+ GENTOO_EXEC="`which ${x} 2>/dev/null`"
+ break
+ fi
+ done
+ fi
+fi
+
+echo "${GENTOO_EXEC}"
+
+
+# vim:ts=4
diff --git a/x11-apps/xinit/files/startDM.sh b/x11-apps/xinit/files/startDM.sh
new file mode 100644
index 000000000000..66cceb3a68f5
--- /dev/null
+++ b/x11-apps/xinit/files/startDM.sh
@@ -0,0 +1,30 @@
+#!/bin/sh
+# Copyright 1999-2011 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License, v2
+
+# We need to source /etc/profile for stuff like $LANG to work
+# bug #10190.
+. /etc/profile
+
+. /etc/init.d/functions.sh
+
+# baselayout-1 compat
+if ! type get_options >/dev/null 2>/dev/null ; then
+ [ -r "${svclib}"/sh/rc-services.sh ] && . "${svclib}"/sh/rc-services.sh
+fi
+
+# Great new Gnome2 feature, AA
+# We enable this by default
+export GDK_USE_XFT=1
+
+export SVCNAME=xdm
+EXEC="$(get_options service)"
+NAME="$(get_options name)"
+PIDFILE="$(get_options pidfile)"
+START_STOP_ARGS="$(get_options start_stop_args)"
+
+start-stop-daemon --start --exec ${EXEC} \
+${NAME:+--name} ${NAME} ${PIDFILE:+--pidfile} ${PIDFILE} ${START_STOP_ARGS} || \
+eerror "ERROR: could not start the Display Manager"
+
+# vim:ts=4
diff --git a/x11-apps/xinit/files/xinit-1.3.3-gentoo-customizations.patch b/x11-apps/xinit/files/xinit-1.3.3-gentoo-customizations.patch
new file mode 100644
index 000000000000..48dceabc500e
--- /dev/null
+++ b/x11-apps/xinit/files/xinit-1.3.3-gentoo-customizations.patch
@@ -0,0 +1,61 @@
+From d24cea5021fab8a11b1492a031319939d133d221 Mon Sep 17 00:00:00 2001
+From: Tomas Chvatal <scarabeus@gentoo.org>
+Date: Mon, 1 Nov 2010 16:46:36 +0100
+Subject: [PATCH] Gentoo customizations.
+
+
+Signed-off-by: Tomas Chvatal <scarabeus@gentoo.org>
+---
+ xinitrc.cpp | 26 ++++++++++++++++++--------
+ 1 files changed, 18 insertions(+), 8 deletions(-)
+
+diff --git a/xinitrc.cpp b/xinitrc.cpp
+index 049a8e4..80c3ad9 100644
+--- a/xinitrc.cpp
++++ b/xinitrc.cpp
+@@ -2,8 +2,8 @@ XCOMM!SHELL_CMD
+
+ userresources=$HOME/.Xresources
+ usermodmap=$HOME/.Xmodmap
+-sysresources=XINITDIR/.Xresources
+-sysmodmap=XINITDIR/.Xmodmap
++sysresources=XINITDIR/Xresources
++sysmodmap=XINITDIR/Xmodmap
+
+ XCOMM merge in defaults and keymaps
+
+@@ -84,15 +84,25 @@ fi
+ XCOMM This is the fallback case if nothing else is executed above
+ #endif /* !defined(__SCO__) && !defined(__UNIXWARE__) */
+
++if [ -n "`/etc/X11/chooser.sh`" ]; then
++ command="`/etc/X11/chooser.sh`"
++else
++ failsafe="yes"
++fi
++
+ if [ -d XINITDIR/xinitrc.d ] ; then
+- for f in XINITDIR/xinitrc.d/?*.sh ; do
++ for f in XINITDIR/xinitrc.d/?* ; do
+ [ -x "$f" ] && . "$f"
+ done
+ unset f
+ fi
+
+-TWM &
+-XCLOCK -geometry 50x50-1+1 &
+-XTERM -geometry 80x50+494+51 &
+-XTERM -geometry 80x20+494-0 &
+-exec XTERM -geometry 80x66+0+0 -name login
++if [ -n "$failsafe" ]; then
++ TWM &
++ XCLOCK -geometry 50x50-1+1 &
++ XTERM -geometry 80x50+494+51 &
++ XTERM -geometry 80x20+494-0 &
++ exec XTERM -geometry 80x66+0+0 -name login
++else
++ exec $command
++fi
+--
+1.7.3.1
+
diff --git a/x11-apps/xinit/files/xinit-1.3.4-startx-current-vt.patch b/x11-apps/xinit/files/xinit-1.3.4-startx-current-vt.patch
new file mode 100644
index 000000000000..362b420cfc8f
--- /dev/null
+++ b/x11-apps/xinit/files/xinit-1.3.4-startx-current-vt.patch
@@ -0,0 +1,21 @@
+diff -ur a/startx.cpp b/startx.cpp
+--- a/startx.cpp 2014-09-11 19:31:42.000000000 +0200
++++ b/startx.cpp 2015-02-08 19:09:56.416428623 +0100
+@@ -188,17 +188,6 @@
+ if [ x"$server" = x ]; then
+ server=$defaultserver
+
+-#ifdef __linux__
+- XCOMM When starting the defaultserver start X on the current tty to avoid
+- XCOMM the startx session being seen as inactive:
+- XCOMM "https://bugzilla.redhat.com/show_bug.cgi?id=806491"
+- tty=$(tty)
+- if expr match "$tty" '^/dev/tty[0-9]\+$' > /dev/null; then
+- tty_num=$(echo "$tty" | grep -oE '[0-9]+$')
+- vtarg="vt$tty_num"
+- fi
+-#endif
+-
+ XCOMM For compatibility reasons, only use xserverrc if there were no server command line arguments
+ if [ x"$serverargs" = x -a x"$display" = x ]; then
+ if [ -f "$userserverrc" ]; then
diff --git a/x11-apps/xinit/files/xserverrc b/x11-apps/xinit/files/xserverrc
new file mode 100644
index 000000000000..b4de2528749e
--- /dev/null
+++ b/x11-apps/xinit/files/xserverrc
@@ -0,0 +1,2 @@
+#!/bin/sh
+exec /usr/bin/X -nolisten tcp "$@"
diff --git a/x11-apps/xinit/files/xserverrc.1 b/x11-apps/xinit/files/xserverrc.1
new file mode 100644
index 000000000000..6b57eeba6da3
--- /dev/null
+++ b/x11-apps/xinit/files/xserverrc.1
@@ -0,0 +1,6 @@
+#!/bin/sh
+if [ -z "$XDG_VTNR" ]; then
+ exec /usr/bin/X -nolisten tcp "$@"
+else
+ exec /usr/bin/X -nolisten tcp "$@" vt$XDG_VTNR
+fi
diff --git a/x11-apps/xinit/metadata.xml b/x11-apps/xinit/metadata.xml
new file mode 100644
index 000000000000..dce3523a34df
--- /dev/null
+++ b/x11-apps/xinit/metadata.xml
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>x11@gentoo.org</email>
+ <name>X11</name>
+ </maintainer>
+ <use>
+ <flag name="minimal">
+ Control dependencies on legacy apps (xterm, twm, ...). Safe to
+ enable if you use a modern desktop environment.
+ </flag>
+ </use>
+ <upstream>
+ <remote-id type="cpe">cpe:/a:x.org:xinit</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/x11-apps/xinit/xinit-1.3.3-r1.ebuild b/x11-apps/xinit/xinit-1.3.3-r1.ebuild
new file mode 100644
index 000000000000..99c44ccf7a34
--- /dev/null
+++ b/x11-apps/xinit/xinit-1.3.3-r1.ebuild
@@ -0,0 +1,66 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=5
+
+inherit xorg-2
+
+DESCRIPTION="X Window System initializer"
+
+LICENSE="${LICENSE} GPL-2"
+KEYWORDS="alpha amd64 arm ~arm64 hppa ia64 ~mips ppc ppc64 ~s390 ~sh sparc x86 ~amd64-fbsd ~x86-fbsd ~arm-linux ~x86-linux"
+IUSE="+minimal"
+
+RDEPEND="
+ !<x11-base/xorg-server-1.8.0
+ x11-apps/xauth
+ x11-libs/libX11
+"
+DEPEND="${RDEPEND}"
+PDEPEND="x11-apps/xrdb
+ !minimal? (
+ x11-apps/xclock
+ x11-apps/xsm
+ x11-terms/xterm
+ x11-wm/twm
+ )
+"
+
+PATCHES=(
+ "${FILESDIR}/${PN}-1.3.3-gentoo-customizations.patch"
+)
+
+src_configure() {
+ XORG_CONFIGURE_OPTIONS=(
+ --with-xinitdir="${EPREFIX}"/etc/X11/xinit
+ )
+ xorg-2_src_configure
+}
+
+src_install() {
+ xorg-2_src_install
+
+ exeinto /etc/X11
+ doexe "${FILESDIR}"/chooser.sh "${FILESDIR}"/startDM.sh
+ exeinto /etc/X11/Sessions
+ doexe "${FILESDIR}"/Xsession
+ exeinto /etc/X11/xinit
+ newexe "${FILESDIR}"/xserverrc.1 xserverrc
+ exeinto /etc/X11/xinit/xinitrc.d/
+ doexe "${FILESDIR}"/00-xhost
+
+ insinto /usr/share/xsessions
+ doins "${FILESDIR}"/Xsession.desktop
+}
+
+pkg_postinst() {
+ xorg-2_pkg_postinst
+ ewarn "If you use startx to start X instead of a login manager like gdm/kdm,"
+ ewarn "you can set the XSESSION variable to anything in /etc/X11/Sessions/ or"
+ ewarn "any executable. When you run startx, it will run this as the login session."
+ ewarn "You can set this in a file in /etc/env.d/ for the entire system,"
+ ewarn "or set it per-user in ~/.bash_profile (or similar for other shells)."
+ ewarn "Here's an example of setting it for the whole system:"
+ ewarn " echo XSESSION=\"Gnome\" > /etc/env.d/90xsession"
+ ewarn " env-update && source /etc/profile"
+}
diff --git a/x11-apps/xinit/xinit-1.3.3.ebuild b/x11-apps/xinit/xinit-1.3.3.ebuild
new file mode 100644
index 000000000000..ce597213f6ec
--- /dev/null
+++ b/x11-apps/xinit/xinit-1.3.3.ebuild
@@ -0,0 +1,66 @@
+# Copyright 1999-2013 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=5
+
+inherit xorg-2
+
+DESCRIPTION="X Window System initializer"
+
+LICENSE="${LICENSE} GPL-2"
+KEYWORDS="alpha amd64 arm hppa ia64 ~mips ppc ppc64 ~s390 ~sh sparc x86 ~amd64-fbsd ~x86-fbsd ~arm-linux ~x86-linux"
+IUSE="+minimal"
+
+RDEPEND="
+ !<x11-base/xorg-server-1.8.0
+ x11-apps/xauth
+ x11-libs/libX11
+"
+DEPEND="${RDEPEND}"
+PDEPEND="x11-apps/xrdb
+ !minimal? (
+ x11-apps/xclock
+ x11-apps/xsm
+ x11-terms/xterm
+ x11-wm/twm
+ )
+"
+
+PATCHES=(
+ "${FILESDIR}/${PN}-1.3.3-gentoo-customizations.patch"
+)
+
+src_configure() {
+ XORG_CONFIGURE_OPTIONS=(
+ --with-xinitdir=/etc/X11/xinit
+ )
+ xorg-2_src_configure
+}
+
+src_install() {
+ xorg-2_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}"/xserverrc
+ exeinto /etc/X11/xinit/xinitrc.d/
+ doexe "${FILESDIR}/00-xhost"
+
+ insinto /usr/share/xsessions
+ doins "${FILESDIR}/Xsession.desktop"
+}
+
+pkg_postinst() {
+ xorg-2_pkg_postinst
+ ewarn "If you use startx to start X instead of a login manager like gdm/kdm,"
+ ewarn "you can set the XSESSION variable to anything in /etc/X11/Sessions/ or"
+ ewarn "any executable. When you run startx, it will run this as the login session."
+ ewarn "You can set this in a file in /etc/env.d/ for the entire system,"
+ ewarn "or set it per-user in ~/.bash_profile (or similar for other shells)."
+ ewarn "Here's an example of setting it for the whole system:"
+ ewarn " echo XSESSION=\"Gnome\" > /etc/env.d/90xsession"
+ ewarn " env-update && source /etc/profile"
+}
diff --git a/x11-apps/xinit/xinit-1.3.4-r1.ebuild b/x11-apps/xinit/xinit-1.3.4-r1.ebuild
new file mode 100644
index 000000000000..51dc72d6fef8
--- /dev/null
+++ b/x11-apps/xinit/xinit-1.3.4-r1.ebuild
@@ -0,0 +1,74 @@
+# Copyright 1999-2016 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=5
+
+inherit xorg-2
+
+DESCRIPTION="X Window System initializer"
+
+LICENSE="${LICENSE} GPL-2"
+KEYWORDS="alpha amd64 arm hppa ia64 ~mips ppc ppc64 ~s390 ~sh sparc x86 ~amd64-fbsd ~x86-fbsd ~arm-linux ~x86-linux"
+IUSE="+minimal systemd"
+
+RDEPEND="
+ !<x11-base/xorg-server-1.8.0
+ x11-apps/xauth
+ x11-libs/libX11
+"
+DEPEND="${RDEPEND}"
+PDEPEND="x11-apps/xrdb
+ !minimal? (
+ x11-apps/xclock
+ x11-apps/xsm
+ x11-terms/xterm
+ x11-wm/twm
+ )
+"
+
+PATCHES=(
+ "${FILESDIR}/${PN}-1.3.3-gentoo-customizations.patch"
+)
+
+src_prepare() {
+ # this patch breaks startx on non-systemd systems, bug #526802
+ if use !systemd; then
+ PATCHES+=( "${FILESDIR}"/${PN}-1.3.4-startx-current-vt.patch )
+ fi
+ xorg-2_src_prepare
+}
+
+src_configure() {
+ XORG_CONFIGURE_OPTIONS=(
+ --with-xinitdir="${EPREFIX}"/etc/X11/xinit
+ )
+ xorg-2_src_configure
+}
+
+src_install() {
+ xorg-2_src_install
+
+ exeinto /etc/X11
+ doexe "${FILESDIR}"/chooser.sh "${FILESDIR}"/startDM.sh
+ exeinto /etc/X11/Sessions
+ doexe "${FILESDIR}"/Xsession
+ exeinto /etc/X11/xinit
+ newexe "${FILESDIR}"/xserverrc.1 xserverrc
+ exeinto /etc/X11/xinit/xinitrc.d/
+ doexe "${FILESDIR}"/00-xhost
+
+ insinto /usr/share/xsessions
+ doins "${FILESDIR}"/Xsession.desktop
+}
+
+pkg_postinst() {
+ xorg-2_pkg_postinst
+ ewarn "If you use startx to start X instead of a login manager like gdm/kdm,"
+ ewarn "you can set the XSESSION variable to anything in /etc/X11/Sessions/ or"
+ ewarn "any executable. When you run startx, it will run this as the login session."
+ ewarn "You can set this in a file in /etc/env.d/ for the entire system,"
+ ewarn "or set it per-user in ~/.bash_profile (or similar for other shells)."
+ ewarn "Here's an example of setting it for the whole system:"
+ ewarn " echo XSESSION=\"Gnome\" > /etc/env.d/90xsession"
+ ewarn " env-update && source /etc/profile"
+}