Date: Saturday, April 9, 2016 @ 23:51:15
  Author: heftig
Revision: 264455

3.20.0-2: FS#48850

Added:
  gnome-session/trunk/0001-main-fix-starting-gnome-session-via-startx.patch
Modified:
  gnome-session/trunk/PKGBUILD

-------------------------------------------------------+
 0001-main-fix-starting-gnome-session-via-startx.patch |   66 ++++++++++++++++
 PKGBUILD                                              |    6 +
 2 files changed, 71 insertions(+), 1 deletion(-)

Added: 0001-main-fix-starting-gnome-session-via-startx.patch
===================================================================
--- 0001-main-fix-starting-gnome-session-via-startx.patch                       
        (rev 0)
+++ 0001-main-fix-starting-gnome-session-via-startx.patch       2016-04-09 
21:51:15 UTC (rev 264455)
@@ -0,0 +1,66 @@
+From 2d2dcf3354701aa663d08e8337c608e245a9f2c1 Mon Sep 17 00:00:00 2001
+From: Andreas Henriksson <andr...@fatal.se>
+Date: Wed, 30 Mar 2016 18:49:15 +0200
+Subject: [PATCH] main: fix starting gnome session via startx
+
+The changes related to gsm_util_setenv during 3.19.x seems to have
+broken starting a gnome desktop the old fashioned way, eg. via startx.
+
+The gnome.session required components has OnlyShowIn=GNOME; which
+disqualifies them from being started unless XDG_CURRENT_DESKTOP is also
+set to GNOME (by the gio utility function used to look up info).
+
+Currently gnome-session already carries code to catch the case of
+XDG_CURRENT_DESKTOP being unset and set it to GNOME as a fallback.
+Unfortunately the changes to gsm_util_setenv seems to have made it only
+set the values in the (dbus activated) child environment, rather than
+the current environment which g_desktop_app_info_get_show_in is looking
+at.
+
+Make the fallback code set XDG_CURRENT_DESKTOP in both current
+and child environment fixes it.
+Also move the entire hunk of code before initializing gio to
+prevent potential thread issues, now that is uses g_setenv.
+
+https://bugzilla.gnome.org/show_bug.cgi?id=764379
+---
+ gnome-session/main.c | 16 +++++++++-------
+ 1 file changed, 9 insertions(+), 7 deletions(-)
+
+diff --git a/gnome-session/main.c b/gnome-session/main.c
+index 14b201b..9f3ca0f 100644
+--- a/gnome-session/main.c
++++ b/gnome-session/main.c
+@@ -292,6 +292,15 @@ main (int argc, char **argv)
+                 gsm_util_init_error (TRUE, "%s", error->message);
+         }
+ 
++        /* From 3.14 GDM sets XDG_CURRENT_DESKTOP. For compatibility with
++         * older versions of GDM,  other display managers, and startx,
++         * set a fallback value if we don't find it set.
++         */
++        if (g_getenv ("XDG_CURRENT_DESKTOP") == NULL) {
++            g_setenv("XDG_CURRENT_DESKTOP", "GNOME", TRUE);
++            gsm_util_setenv ("XDG_CURRENT_DESKTOP", "GNOME");
++        }
++
+         /* Make sure we initialize gio in a way that does not autostart any 
daemon */
+         initialize_gio ();
+ 
+@@ -375,13 +384,6 @@ main (int argc, char **argv)
+                 exit (1);
+         }
+ 
+-        /* From 3.14 GDM sets XDG_CURRENT_DESKTOP. For compatibility with
+-         * older versions of GDM,  other display managers, and startx,
+-         * set a fallback value if we don't find it set.
+-         */
+-        if (g_getenv ("XDG_CURRENT_DESKTOP") == NULL)
+-            gsm_util_setenv ("XDG_CURRENT_DESKTOP", "GNOME");
+-
+         /* Push locale variables to dbus-daemon */
+         maybe_push_env_var ("LC_TIME");
+         maybe_push_env_var ("LC_NUMERIC");
+-- 
+2.8.0
+

Modified: PKGBUILD
===================================================================
--- PKGBUILD    2016-04-09 20:07:54 UTC (rev 264454)
+++ PKGBUILD    2016-04-09 21:51:15 UTC (rev 264455)
@@ -3,7 +3,7 @@
 
 pkgname=gnome-session
 pkgver=3.20.0
-pkgrel=1
+pkgrel=2
 pkgdesc="The GNOME Session Handler"
 arch=(i686 x86_64)
 license=(GPL LGPL)
@@ -15,13 +15,17 @@
 url="http://www.gnome.org";
 groups=(gnome)
 
source=(http://download.gnome.org/sources/$pkgname/${pkgver:0:4}/$pkgname-$pkgver.tar.xz
+        0001-main-fix-starting-gnome-session-via-startx.patch
         timeout.patch)
 sha256sums=('66ff72379a2e7ee11ab7fcec37ad911d36f12471845dc7755e1ce55d29301b34'
+            '5b23b7718531d610bb94611599bd9771e1cd7ca1353dcb9868ddead76aa37c96'
             '9eaf31857b41db417475c3b14adc11b10c8226ed76978cdf96dd648fa6e505fc')
 
 prepare() {
   cd $pkgname-$pkgver
 
+  patch -Np1 -i ../0001-main-fix-starting-gnome-session-via-startx.patch
+
   # Increase timeout, for slow machines
   patch -Np1 -i ../timeout.patch
 }

Reply via email to