From 4f2d7949f03e1c198bc888f2d05f421d35c57e21 Mon Sep 17 00:00:00 2001 From: V3n3RiX Date: Mon, 9 Oct 2017 18:53:29 +0100 Subject: reinit the tree, so we can have metadata --- x11-apps/xinit/files/00-xhost | 7 ++ x11-apps/xinit/files/Xsession | 107 +++++++++++++++++++++ x11-apps/xinit/files/Xsession.desktop | 8 ++ x11-apps/xinit/files/chooser.sh | 51 ++++++++++ x11-apps/xinit/files/startDM.sh | 30 ++++++ .../files/xinit-1.3.3-gentoo-customizations.patch | 61 ++++++++++++ .../files/xinit-1.3.4-startx-current-vt.patch | 21 ++++ x11-apps/xinit/files/xserverrc | 2 + x11-apps/xinit/files/xserverrc.1 | 6 ++ 9 files changed, 293 insertions(+) create mode 100644 x11-apps/xinit/files/00-xhost create mode 100644 x11-apps/xinit/files/Xsession create mode 100644 x11-apps/xinit/files/Xsession.desktop create mode 100644 x11-apps/xinit/files/chooser.sh create mode 100644 x11-apps/xinit/files/startDM.sh create mode 100644 x11-apps/xinit/files/xinit-1.3.3-gentoo-customizations.patch create mode 100644 x11-apps/xinit/files/xinit-1.3.4-startx-current-vt.patch create mode 100644 x11-apps/xinit/files/xserverrc create mode 100644 x11-apps/xinit/files/xserverrc.1 (limited to 'x11-apps/xinit/files') 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 + +# 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 +Date: Mon, 1 Nov 2010 16:46:36 +0100 +Subject: [PATCH] Gentoo customizations. + + +Signed-off-by: Tomas Chvatal +--- + 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 -- cgit v1.2.3