diff --git a/0001-util-Unset-GNOME_SETUP_DISPLAY-at-login-time.patch b/0001-util-Unset-GNOME_SETUP_DISPLAY-at-login-time.patch new file mode 100644 index 0000000..8016f36 --- /dev/null +++ b/0001-util-Unset-GNOME_SETUP_DISPLAY-at-login-time.patch @@ -0,0 +1,83 @@ +From 7c928fcd9c0b0a61772bebf877306bdacbc779a8 Mon Sep 17 00:00:00 2001 +From: Benjamin Berg +Date: Sat, 21 Mar 2020 16:03:30 +0100 +Subject: [PATCH] util: Unset GNOME_SETUP_DISPLAY at login time + +This variable was introduced to allow Xwayland auto-startup. +Unfortunately, it will prevent g-s-d process startup if it leaks from a +wayland session to an Xorg session. + +As such, add it to the list of variables that are unset at login time. +--- + gnome-session/gsm-util.c | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/gnome-session/gsm-util.c b/gnome-session/gsm-util.c +index 02bc4a57..5a52de57 100644 +--- a/gnome-session/gsm-util.c ++++ b/gnome-session/gsm-util.c +@@ -37,60 +37,61 @@ static gchar **child_environment; + + /* These are variables that will not be passed on to subprocesses + * (either directly, via systemd or DBus). + * Some of these are blacklisted as they might end up in the wrong session + * (e.g. XDG_VTNR), others because they simply must never be passed on + * (NOTIFY_SOCKET). + */ + static const char * const variable_blacklist[] = { + "NOTIFY_SOCKET", + "XDG_SEAT", + "XDG_SESSION_ID", + "XDG_VTNR", + NULL + }; + + /* The following is copied from GDMs spawn_session function. + * + * Environment variables listed here will be copied into the user's service + * environments if they are set in gnome-session's environment. If they are + * not set in gnome-session's environment, they will be removed from the + * service environments. This is to protect against environment variables + * leaking from previous sessions (e.g. when switching from classic to + * default GNOME $GNOME_SHELL_SESSION_MODE will become unset). + */ + static const char * const variable_unsetlist[] = { + "DISPLAY", + "XAUTHORITY", + "WAYLAND_DISPLAY", + "WAYLAND_SOCKET", + "GNOME_SHELL_SESSION_MODE", ++ "GNOME_SETUP_DISPLAY", + NULL + }; + + char * + gsm_util_find_desktop_file_for_app_name (const char *name, + gboolean look_in_saved_session, + gboolean autostart_first) + { + char *app_path; + char **app_dirs; + GKeyFile *key_file; + char *desktop_file; + int i; + + app_path = NULL; + + app_dirs = gsm_util_get_desktop_dirs (look_in_saved_session, autostart_first); + + key_file = g_key_file_new (); + + desktop_file = g_strdup_printf ("%s.desktop", name); + + g_debug ("GsmUtil: Looking for file '%s'", desktop_file); + + for (i = 0; app_dirs[i] != NULL; i++) { + g_debug ("GsmUtil: Looking in '%s'", app_dirs[i]); + } + + g_key_file_load_from_dirs (key_file, + desktop_file, +-- +2.21.1 + diff --git a/gnome-session.spec b/gnome-session.spec index 1d9fe29..98263a1 100644 --- a/gnome-session.spec +++ b/gnome-session.spec @@ -9,7 +9,7 @@ Name: gnome-session Version: 3.36.0 -Release: 1%{?dist} +Release: 2%{?dist} Summary: GNOME session manager License: GPLv2+ @@ -135,6 +135,10 @@ Desktop file to add GNOME on wayland to display manager session menu. %{_userunitdir}/gnome-launched-.scope.d/ %changelog +* Mon Mar 23 2020 Ray Strode - 3.36.0-2 +- Apply patch from upstream to allow Xorg after wayland. + Resolves: #1815487 + * Sun Mar 08 2020 Kalev Lember - 3.36.0-1 - Update to 3.36.0