From 51949dd2b944604742406a7464eb945cb5b610e9 Mon Sep 17 00:00:00 2001 From: Benjamin Berg Date: Mon, 15 Nov 2021 14:56:14 +0100 Subject: [PATCH 1/2] main: Lower fallback warning when running in GDM It is currently expected for the fallback to happen. So hide the errors, but still log a single message to inform users about it. --- gnome-session/main.c | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/gnome-session/main.c b/gnome-session/main.c index 443bc045..45ec6597 100644 --- a/gnome-session/main.c +++ b/gnome-session/main.c @@ -512,100 +512,103 @@ main (int argc, char **argv) exit (1); } env_override_autostart_dirs = g_getenv ("GNOME_SESSION_AUTOSTART_DIR"); if (env_override_autostart_dirs != NULL && env_override_autostart_dirs[0] != '\0') { env_override_autostart_dirs_v = g_strsplit (env_override_autostart_dirs, ":", 0); gsm_util_set_autostart_dirs (env_override_autostart_dirs_v); } else { gsm_util_set_autostart_dirs (override_autostart_dirs); /* Export the override autostart dirs parameter to the environment * in case we are running on systemd. */ if (override_autostart_dirs) { g_autofree char *autostart_dirs = NULL; autostart_dirs = g_strjoinv (":", override_autostart_dirs); g_setenv ("GNOME_SESSION_AUTOSTART_DIR", autostart_dirs, TRUE); } } gsm_util_export_activation_environment (&error); if (error) { g_warning ("Failed to upload environment to DBus: %s", error->message); g_clear_error (&error); } session_name = opt_session_name; #ifdef HAVE_SYSTEMD gsm_util_export_user_environment (&error); - if (error) { + if (error && !g_getenv ("RUNNING_UNDER_GDM")) { g_warning ("Failed to upload environment to systemd: %s", error->message); g_clear_error (&error); } #endif #ifdef ENABLE_SYSTEMD_SESSION if (use_systemd && !systemd_service) { g_autofree gchar *gnome_session_target; const gchar *session_type; session_type = g_getenv ("XDG_SESSION_TYPE"); /* We really need to resolve the session name at this point, * which requires talking to GSettings internally. */ if (IS_STRING_EMPTY (session_name)) { session_name = _gsm_manager_get_default_session (NULL); } /* Reset all failed units; we are going to start a lof ot things and * really do not want to run into errors because units have failed * in a previous session */ gsm_util_systemd_reset_failed (&error); - if (error) { + if (error && !g_getenv ("RUNNING_UNDER_GDM")) { g_warning ("Failed to reset failed state of units: %s", error->message); g_clear_error (&error); } /* We don't escape the name (i.e. we leave any '-' intact). */ gnome_session_target = g_strdup_printf ("gnome-session-%s@%s.target", session_type, session_name); if (gsm_util_start_systemd_unit (gnome_session_target, "fail", &error)) { /* We started the unit, open fifo and sleep forever. */ systemd_leader_run (); exit(0); } /* We could not start the unit, fall back. */ - g_warning ("Falling back to non-systemd startup procedure due to error: %s", error->message); - g_clear_error (&error); + if (g_getenv ("RUNNING_UNDER_GDM")) + g_message ("Falling back to non-systemd startup procedure. This is expected to happen for GDM sessions."); + else + g_warning ("Falling back to non-systemd startup procedure due to error: %s", error->message); + g_clear_error (&error); } #endif /* ENABLE_SYSTEMD_SESSION */ { gchar *ibus_path; ibus_path = g_find_program_in_path("ibus-daemon"); if (ibus_path) { const gchar *p; p = g_getenv ("QT_IM_MODULE"); if (!p || !*p) p = "ibus"; gsm_util_setenv ("QT_IM_MODULE", p); p = g_getenv ("XMODIFIERS"); if (!p || !*p) p = "@im=ibus"; gsm_util_setenv ("XMODIFIERS", p); } g_free (ibus_path); } /* We want to use the GNOME menus which has the designed categories. */ gsm_util_setenv ("XDG_MENU_PREFIX", "gnome-"); /* Talk to logind before acquiring a name, since it does synchronous * calls at initialization time that invoke a main loop and if we * already owned a name, then we would service too early during -- 2.35.1