diff options
author | Marinus Schraal <foser@gentoo.org> | 2003-11-23 17:52:04 +0000 |
---|---|---|
committer | Marinus Schraal <foser@gentoo.org> | 2003-11-23 17:52:04 +0000 |
commit | 3e0a1a1605121c2a1dad9f31de229023f1ac5ffa (patch) | |
tree | 6f7dc185ebf4734a77b542d3945014a5c6767c2f /gnome-base/gdm | |
parent | new release 'n cleanup (diff) | |
download | gentoo-2-3e0a1a1605121c2a1dad9f31de229023f1ac5ffa.tar.gz gentoo-2-3e0a1a1605121c2a1dad9f31de229023f1ac5ffa.tar.bz2 gentoo-2-3e0a1a1605121c2a1dad9f31de229023f1ac5ffa.zip |
commit needed files
Diffstat (limited to 'gnome-base/gdm')
-rw-r--r-- | gnome-base/gdm/files/2.4.4/Xsession | 229 | ||||
-rw-r--r-- | gnome-base/gdm/files/2.4.4/pam.d/gdm | 8 | ||||
-rw-r--r-- | gnome-base/gdm/files/2.4.4/pam.d/gdm-autologin | 8 | ||||
-rw-r--r-- | gnome-base/gdm/files/2.4.4/pam.d/gdmconfig | 6 | ||||
-rw-r--r-- | gnome-base/gdm/files/2.4.4/security/console.apps/gdmconfig | 5 |
5 files changed, 256 insertions, 0 deletions
diff --git a/gnome-base/gdm/files/2.4.4/Xsession b/gnome-base/gdm/files/2.4.4/Xsession new file mode 100644 index 000000000000..4930bacc1c7a --- /dev/null +++ b/gnome-base/gdm/files/2.4.4/Xsession @@ -0,0 +1,229 @@ +#!/bin/sh +# +# This is SORT OF LIKE an X session, but not quite. You get a command as the +# first argument (it could be multiple words, so run it with "eval"). As a +# special case, the command can be: +# failsafe - Run an xterm only +# default - Run the appropriate Xclients startup (see the code below) +# custom - Run ~/.xsession and if that's not available run 'default' +# +# (Note that other arguments could also follow, but only the command one is +# right now relevant and supported) +# +# The output is ALREADY redirected to .xsession-errors in GDM. This way +# .xsession-errors actually gets more output such as if the PreSession script +# is failing. This also prevents DoS attacks if some app in the users session +# can be prodded to dump lots of stuff on the stdout/stderr. We wish to be +# robust don't we? In case you wish to use an existing script for other DM's, +# you can just not redirect when GDMSESSION is set. GDMSESSION will always +# be set from gdm. +# +# Also note that this is not run as a login shell, this is just executed. +# This is why we source the profile files below. +# +# based on: +# $XConsortium: Xsession /main/10 1995/12/18 18:21:28 gildea $ + +# this will go into the .xsession-errors along with all other echo's +# good for debugging where things went wrong +echo "$0: Beginning session setup..." + +# First read /etc/profile and .profile +test -f /etc/profile && . /etc/profile +test -f "$HOME/.profile" && . "$HOME/.profile" +# Second read /etc/xprofile and .xprofile for X specific setup +test -f /etc/xprofile && . /etc/xprofile +test -f "$HOME/.xprofile" && . "$HOME/.xprofile" +# Third read .bash_profile for keychain to work correctly +test -f "$HOME/.bash_profile" && . "$HOME/.bash_profile" + +# Translation stuff +if [ -x "/usr/libexec/gdmtranslate" ] ; then + gdmtranslate="/usr/libexec/gdmtranslate" +else + gdmtranslate= +fi + +# Note that this should only go to zenity dialogs which always expect utf8 +gettextfunc () { + if [ "x$gdmtranslate" != "x" ] ; then + "$gdmtranslate" --utf8 "$1" + else + echo "$1" + fi +} + +zenity=`which zenity 2>/dev/null` + +command="$1" + +if [ -z "$command" ] ; then + command=failsafe +fi + +if [ x"$command" = xfailsafe ] ; then + if [ -n "$zenity" ] ; then + "$zenity" --info --text `gettextfunc "This is the failsafe xterm session. Windows now have focus only if you have your cursor above them. To get out of this mode type 'exit' in the window in the upper left corner"` + else + echo "$0: Starting the failsafe xterm session." + fi + exec xterm -geometry 80x24+0+0 +fi + +# Note: ~/.xsession-errors is now done in the daemon so that it +# works for ALL sessions (except ones named 'Failsafe') + +# clean up after xbanner +freetemp=`which freetemp 2>/dev/null` +if [ -n "$freetemp" ] ; then + "$freetemp" +fi + +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 + +# Normalize languages, some places/distros screw us up in /etc/profile, +# so in case the user did select a language +if [ -n "$GDM_LANG" ]; then + LANG="$GDM_LANG" + export LANG + + if [ -n "$LC_ALL" ]; then + if [ "$LC_ALL" != "$LANG" ]; then + LC_ALL="$LANG" + fi + else + unset LC_ALL + fi + + if [ -n "$LANGUAGE" ]; then + if [ "$LANGUAGE" != "$LANG" ]; then + LANGUAGE="$LANG" + fi + else + unset LANGUAGE + fi + + if [ -n "$LINGUAS" ]; then + if [ "$LINGUAS" != "$LANG" ]; then + LINGUAS="$LANG" + fi + else + unset LINGUAS + fi +fi + +# run all system xinitrc shell scripts. +if [ -d /etc/X11/xinit/xinitrc.d ]; then + for i in /etc/X11/xinit/xinitrc.d/* ; do + if [ -x "$i" ]; then + . "$i" + fi + done +fi + +if [ "x$command" = "xcustom" ] ; then + if [ -x "$HOME/.xsession" ]; then + command="$HOME/.xsession" + else + echo "$0: Cannot find ~/.xsession will try the default session" + command="default" + fi +fi + +if [ "x$command" = "xdefault" ] ; then + if [ -x "$HOME/.Xclients" ]; then + command="$HOME/.Xclients" + elif [ -x /etc/X11/xinit/Xclients ]; then + command="/etc/X11/xinit/Xclients" + elif [ -x /etc/X11/Xclients ]; then + command="/etc/X11/Xclients" + else + echo "$0: Cannot find Xclients" + # FIXME: kind of an evil failsafe + command="xsm" + fi +fi + +# add ssh-agent if found +sshagent="`which ssh-agent 2>/dev/null`" +if [ -n "$sshagent" ] && [ -x "$sshagent" ] && [ -z "$SSH_AUTH_SOCK" ]; then + command="$sshagent -- $command" +elif [ -z "$sshagent" ] ; then + echo "$0: ssh-agent not found!" +fi + +echo "$0: Setup done, will execute: $command" + +eval exec $command + +echo "$0: Executing $command failed, will run xterm" + +if [ -n "$zenity" ] ; then + "$zenity" --info --text `gettextfunc "I could not start your session and so I have started the failsafe xterm session. Windows now have focus only if you have your cursor above them. To get out of this mode type 'exit' in the window in the upper left corner"` +fi + +exec xterm -geometry 80x24+0+0 diff --git a/gnome-base/gdm/files/2.4.4/pam.d/gdm b/gnome-base/gdm/files/2.4.4/pam.d/gdm new file mode 100644 index 000000000000..e9dd91f07be9 --- /dev/null +++ b/gnome-base/gdm/files/2.4.4/pam.d/gdm @@ -0,0 +1,8 @@ +#%PAM-1.0 +auth required /lib/security/pam_env.so +auth required /lib/security/pam_stack.so service=system-auth +auth required /lib/security/pam_nologin.so +account required /lib/security/pam_stack.so service=system-auth +password required /lib/security/pam_stack.so service=system-auth +session required /lib/security/pam_stack.so service=system-auth +session optional /lib/security/pam_console.so diff --git a/gnome-base/gdm/files/2.4.4/pam.d/gdm-autologin b/gnome-base/gdm/files/2.4.4/pam.d/gdm-autologin new file mode 100644 index 000000000000..750db4773635 --- /dev/null +++ b/gnome-base/gdm/files/2.4.4/pam.d/gdm-autologin @@ -0,0 +1,8 @@ +#%PAM-1.0 +auth required /lib/security/pam_env.so +auth required /lib/security/pam_nologin.so +auth required /lib/security/pam_permit.so +account required /lib/security/pam_stack.so service=system-auth +password required /lib/security/pam_stack.so service=system-auth +session required /lib/security/pam_stack.so service=system-auth +session optional /lib/security/pam_console.so diff --git a/gnome-base/gdm/files/2.4.4/pam.d/gdmconfig b/gnome-base/gdm/files/2.4.4/pam.d/gdmconfig new file mode 100644 index 000000000000..44b01cfc759f --- /dev/null +++ b/gnome-base/gdm/files/2.4.4/pam.d/gdmconfig @@ -0,0 +1,6 @@ +#%PAM-1.0 +auth sufficient /lib/security/pam_rootok.so +auth required /lib/security/pam_stack.so service=system-auth +session required /lib/security/pam_permit.so +session optional /lib/security/pam_xauth.so +account required /lib/security/pam_permit.so diff --git a/gnome-base/gdm/files/2.4.4/security/console.apps/gdmconfig b/gnome-base/gdm/files/2.4.4/security/console.apps/gdmconfig new file mode 100644 index 000000000000..5fc459648a9a --- /dev/null +++ b/gnome-base/gdm/files/2.4.4/security/console.apps/gdmconfig @@ -0,0 +1,5 @@ +USER=root +PROGRAM=/usr/bin/gdmconfig +SESSION=false +FALLBACK=true + |