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 }