Blame SOURCES/0002-main-Also-clear-error-when-running-under-GDM.patch

61ea74
From d39c345191f83ba37d24c07a831c9bb91cdde079 Mon Sep 17 00:00:00 2001
61ea74
From: Benjamin Berg <bberg@redhat.com>
61ea74
Date: Sun, 17 Apr 2022 15:58:13 +0200
61ea74
Subject: [PATCH 2/2] main: Also clear error when running under GDM
61ea74
61ea74
Commit 0349a77ad875 ("main: Lower fallback warning when running in GDM")
61ea74
removed error logging when running under GDM. However, the error was not
61ea74
cleared afterwards, leaking it to later operations and causing other
61ea74
issues.
61ea74
61ea74
Closes: #105
61ea74
---
61ea74
 gnome-session/main.c | 10 ++++------
61ea74
 1 file changed, 4 insertions(+), 6 deletions(-)
61ea74
61ea74
diff --git a/gnome-session/main.c b/gnome-session/main.c
61ea74
index 45ec6597..6a683ae0 100644
61ea74
--- a/gnome-session/main.c
61ea74
+++ b/gnome-session/main.c
61ea74
@@ -512,88 +512,86 @@ main (int argc, char **argv)
61ea74
                 exit (1);
61ea74
         }
61ea74
 
61ea74
         env_override_autostart_dirs = g_getenv ("GNOME_SESSION_AUTOSTART_DIR");
61ea74
 
61ea74
         if (env_override_autostart_dirs != NULL && env_override_autostart_dirs[0] != '\0') {
61ea74
                 env_override_autostart_dirs_v = g_strsplit (env_override_autostart_dirs, ":", 0);
61ea74
                 gsm_util_set_autostart_dirs (env_override_autostart_dirs_v);
61ea74
         } else {
61ea74
                 gsm_util_set_autostart_dirs (override_autostart_dirs);
61ea74
 
61ea74
                 /* Export the override autostart dirs parameter to the environment
61ea74
                  * in case we are running on systemd. */
61ea74
                 if (override_autostart_dirs) {
61ea74
                         g_autofree char *autostart_dirs = NULL;
61ea74
                         autostart_dirs = g_strjoinv (":", override_autostart_dirs);
61ea74
                         g_setenv ("GNOME_SESSION_AUTOSTART_DIR", autostart_dirs, TRUE);
61ea74
                 }
61ea74
         }
61ea74
 
61ea74
         gsm_util_export_activation_environment (&error);
61ea74
         if (error) {
61ea74
                 g_warning ("Failed to upload environment to DBus: %s", error->message);
61ea74
                 g_clear_error (&error);
61ea74
         }
61ea74
 
61ea74
         session_name = opt_session_name;
61ea74
 
61ea74
 #ifdef HAVE_SYSTEMD
61ea74
         gsm_util_export_user_environment (&error);
61ea74
-        if (error && !g_getenv ("RUNNING_UNDER_GDM")) {
61ea74
+        if (error && !g_getenv ("RUNNING_UNDER_GDM"))
61ea74
                 g_warning ("Failed to upload environment to systemd: %s", error->message);
61ea74
-                g_clear_error (&error);
61ea74
-        }
61ea74
+        g_clear_error (&error);
61ea74
 #endif
61ea74
 
61ea74
 #ifdef ENABLE_SYSTEMD_SESSION
61ea74
         if (use_systemd && !systemd_service) {
61ea74
                 g_autofree gchar *gnome_session_target;
61ea74
                 const gchar *session_type;
61ea74
 
61ea74
                 session_type = g_getenv ("XDG_SESSION_TYPE");
61ea74
 
61ea74
                 /* We really need to resolve the session name at this point,
61ea74
                  * which requires talking to GSettings internally. */
61ea74
                 if (IS_STRING_EMPTY (session_name)) {
61ea74
                         session_name = _gsm_manager_get_default_session (NULL);
61ea74
                 }
61ea74
 
61ea74
                 /* Reset all failed units; we are going to start a lof ot things and
61ea74
                  * really do not want to run into errors because units have failed
61ea74
                  * in a previous session
61ea74
                  */
61ea74
                 gsm_util_systemd_reset_failed (&error);
61ea74
-                if (error && !g_getenv ("RUNNING_UNDER_GDM")) {
61ea74
+                if (error && !g_getenv ("RUNNING_UNDER_GDM"))
61ea74
                         g_warning ("Failed to reset failed state of units: %s", error->message);
61ea74
-                        g_clear_error (&error);
61ea74
-                }
61ea74
+                g_clear_error (&error);
61ea74
 
61ea74
                 /* We don't escape the name (i.e. we leave any '-' intact). */
61ea74
                 gnome_session_target = g_strdup_printf ("gnome-session-%s@%s.target", session_type, session_name);
61ea74
                 if (gsm_util_start_systemd_unit (gnome_session_target, "fail", &error)) {
61ea74
                         /* We started the unit, open fifo and sleep forever. */
61ea74
                         systemd_leader_run ();
61ea74
                         exit(0);
61ea74
                 }
61ea74
 
61ea74
                 /* We could not start the unit, fall back. */
61ea74
                 if (g_getenv ("RUNNING_UNDER_GDM"))
61ea74
                         g_message ("Falling back to non-systemd startup procedure. This is expected to happen for GDM sessions.");
61ea74
                 else
61ea74
                         g_warning ("Falling back to non-systemd startup procedure due to error: %s", error->message);
61ea74
                 g_clear_error (&error);
61ea74
         }
61ea74
 #endif /* ENABLE_SYSTEMD_SESSION */
61ea74
 
61ea74
         {
61ea74
                 gchar *ibus_path;
61ea74
 
61ea74
                 ibus_path = g_find_program_in_path("ibus-daemon");
61ea74
 
61ea74
                 if (ibus_path) {
61ea74
                         const gchar *p;
61ea74
                         p = g_getenv ("QT_IM_MODULE");
61ea74
                         if (!p || !*p)
61ea74
                                 p = "ibus";
61ea74
                         gsm_util_setenv ("QT_IM_MODULE", p);
61ea74
                         p = g_getenv ("XMODIFIERS");
61ea74
-- 
61ea74
2.35.1
61ea74