[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#653327: x11-common: Quoting in 20x11-common_process-args breaks starting gnome-session with arguments.



Am 11.10.2013 18:50, schrieb Michael Biebl:
> severity 653327 important
> thanks
> 
> Since this now also affects the new GNOME Classic mode in GNOME 3.8, I'm
> raising the severity to important.
> I'll add a wrapper script as workaround for now, but it would be nice to
> see this fixed properly in Xsession.

Since Julien asked me for further explanation of this problem, here we go:

gnome-session can run different type of sessions which you can specify
via the --session <foo> switch

That is e.g. used in /usr/share/xsessions/gnome-classic.desktop as
Exec=gnome-session --session classic

That is passed on by the login manager (in my case gdm3) to
/etc/X11/Xsession as "gnome-session --session classic"

/etc/X11/Xsession.d/20x11-common_process-args fails to process that
additional command line arguments, specifically
STARTUP_FULL_PATH=$(/usr/bin/which "$1" || true)

"$1" contains "gnome-session --session classic", so "which" fails and
doesn't return /usr/bin/gnome-session. One needs to strip the additional
parameter, which the expression "${1%% *}" does.

Patch is from Didier Roche, see attachment.

Michael

-- 
Why is it that all of the instruments seeking intelligent life in the
universe are pointed away from Earth?
From 3036d68b3fdd702243f69672fbc824a99bc22193 Mon Sep 17 00:00:00 2001
From: Didier Roche <didrocks@ubuntu.com>
Date: Fri, 11 Oct 2013 22:52:39 +0200
Subject: [PATCH] Add support for session command containing args

Bug-Ubuntu: https://bugs.launchpad.net/ubuntu/+source/xorg/+bug/512235
Bug-Debian: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=653327
---
 debian/local/Xsession.d/20x11-common_process-args | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/debian/local/Xsession.d/20x11-common_process-args b/debian/local/Xsession.d/20x11-common_process-args
index 93e4653..149d1d2 100644
--- a/debian/local/Xsession.d/20x11-common_process-args
+++ b/debian/local/Xsession.d/20x11-common_process-args
@@ -45,7 +45,7 @@ case $# in
         ;;
       *)
         # Specific program was requested.
-        STARTUP_FULL_PATH=$(/usr/bin/which "$1" || true)
+        STARTUP_FULL_PATH=$(/usr/bin/which "${1%% *}" || true)
         if [ -n "$STARTUP_FULL_PATH" ] && [ -e "$STARTUP_FULL_PATH" ]; then
           if [ -x "$STARTUP_FULL_PATH" ]; then
             STARTUP="$1"
-- 
1.8.4.rc3

Attachment: signature.asc
Description: OpenPGP digital signature


Reply to: