diff --git a/Xsession b/Xsession index 9199a8e..8fdcde8 100644 --- a/Xsession +++ b/Xsession @@ -40,7 +40,7 @@ SWITCHDESKPATH=/usr/share/switchdesk # this script. XCLIENTS_D=/etc/X11/xinit/Xclients.d if [ -d "$XCLIENTS_D" -a "$#" -eq 1 -a -x "$XCLIENTS_D/Xclients.$1.sh" ]; then - exec -l $SHELL -c "$SSH_AGENT $XCLIENTS_D/Xclients.$1.sh" + exec -l $SHELL -c "$CK_XINIT_SESSION $SSH_AGENT $XCLIENTS_D/Xclients.$1.sh" else # now, we see if xdm/gdm/kdm has asked for a specific environment case $# in @@ -60,18 +60,18 @@ case $# in exec /bin/sh -c "exec -l $SHELL -c \"gnome-session\"" ;; kde|kde1|kde2) - exec $SSH_AGENT /bin/sh -c "exec -l $SHELL -c \"startkde\"" + exec $CK_XINIT_SESSION $SSH_AGENT /bin/sh -c "exec -l $SHELL -c \"startkde\"" ;; twm) # fall back to twm - exec $SSH_AGENT /bin/sh -c "exec -l $SHELL -c \"twm\"" + exec $CK_XINIT_SESSION $SSH_AGENT /bin/sh -c "exec -l $SHELL -c \"twm\"" ;; *) # GDM provies either a command line as the first argument or # provides 'failsafe', 'default' or 'custom'. KDM will do the # same at some point if [ "$1" != "default" -a "$1" != "custom" ]; then - exec $SSH_AGENT /bin/sh -c "exec -l $SHELL -c \"$1\"" + exec $CK_XINIT_SESSION $SSH_AGENT /bin/sh -c "exec -l $SHELL -c \"$1\"" fi ;; esac @@ -80,11 +80,11 @@ fi # otherwise, take default action if [ -x "$HOME/.xsession" ]; then - exec -l $SHELL -c "$SSH_AGENT $HOME/.xsession" + exec -l $SHELL -c "$CK_XINIT_SESSION $SSH_AGENT $HOME/.xsession" elif [ -x "$HOME/.Xclients" ]; then - exec -l $SHELL -c "$SSH_AGENT $HOME/.Xclients" + exec -l $SHELL -c "$CK_XINIT_SESSION $SSH_AGENT $HOME/.Xclients" elif [ -x /etc/X11/xinit/Xclients ]; then - exec -l $SHELL -c "$SSH_AGENT /etc/X11/xinit/Xclients" + exec -l $SHELL -c "$CK_XINIT_SESSION $SSH_AGENT /etc/X11/xinit/Xclients" else # should never get here; failsafe fallback exec -l $SHELL -c "xsm" diff --git a/xinitrc-common b/xinitrc-common index db32b5a..dbec0ac 100644 --- a/xinitrc-common +++ b/xinitrc-common @@ -65,4 +65,6 @@ if [ -x /usr/bin/ssh-agent -a -z "$SSH_AGENT_PID" ]; then fi CK_XINIT_SESSION= -[ -x /usr/bin/ck-xinit-session ] && CK_XINIT_SESSION="/usr/bin/ck-xinit-session" +if [ -x /usr/bin/ck-xinit-session -a -z "$XDG_SESSION_COOKIE" ]; then + CK_XINIT_SESSION="/usr/bin/ck-xinit-session" +fi diff --git a/xorg-x11-xinit.spec b/xorg-x11-xinit.spec index c19fa6a..3ccefb5 100644 --- a/xorg-x11-xinit.spec +++ b/xorg-x11-xinit.spec @@ -3,7 +3,7 @@ Summary: X.Org X11 X Window System xinit startup scripts Name: xorg-x11-%{pkgname} Version: 1.0.9 -Release: 4%{?dist} +Release: 5%{?dist} License: MIT Group: User Interface/X URL: http://www.x.org @@ -39,7 +39,7 @@ Requires: xauth Requires: coreutils Requires: xorg-x11-server-utils Requires: ConsoleKit-x11 -Requires: ConsoleKit-libs +Requires: which # NOTE: Most of the xinitrc scripts/config files are now in xorg-x11-xinit, # so the xinitrc package became unnecessary. The xdm configs/scripts move @@ -129,6 +129,11 @@ rm -rf $RPM_BUILD_ROOT %{_datadir}/xsessions/xinit-compat.desktop %changelog +* Wed Feb 25 2009 Adam Tkac 1.0.9-5 +- run ck-xinit-session for all sessions where the xdg cookie isn't already + set (#452156, patch from Patrice Dumas) +- add which Requires (#413041, patch from Patrice Dumas) + * Mon Aug 25 2008 Matthias Clasen 1.0.9-4 - Make the gnome session actually take the gnome case in the switch (#458694) - Update patches