From 3109b08f7119fa445b5861967920aa9bc97d5dbd Mon Sep 17 00:00:00 2001 From: Joan Torres Lopez Date: Mon, 25 May 2026 20:40:29 +0200 Subject: [PATCH] Update conflicting patches Related: https://redhat.atlassian.net/browse/RHEL-178659 --- ...n-run-session-bus-on-non-seat0-seats.patch | 114 ++---------------- 1 file changed, 7 insertions(+), 107 deletions(-) diff --git a/0002-gdm-x-session-run-session-bus-on-non-seat0-seats.patch b/0002-gdm-x-session-run-session-bus-on-non-seat0-seats.patch index 000b95c..d2235d4 100644 --- a/0002-gdm-x-session-run-session-bus-on-non-seat0-seats.patch +++ b/0002-gdm-x-session-run-session-bus-on-non-seat0-seats.patch @@ -13,70 +13,20 @@ seats get their own session bus. 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/daemon/gdm-session.c b/daemon/gdm-session.c -index a65fa0f9..f13b54af 100644 +index 71c0633..3834d40 100644 --- a/daemon/gdm-session.c +++ b/daemon/gdm-session.c -@@ -2864,119 +2864,128 @@ on_start_program_cb (GdmDBusWorker *worker, - if (g_error_matches (error, G_IO_ERROR, G_IO_ERROR_CLOSED) || - g_error_matches (error, G_IO_ERROR, G_IO_ERROR_CANCELLED)) - return; - - self = conversation->session; - service_name = conversation->service_name; - - if (worked) { - self->session_pid = pid; - self->session_conversation = conversation; - - g_debug ("GdmSession: Emitting 'session-started' signal with pid '%d'", pid); - g_signal_emit (self, signals[SESSION_STARTED], 0, service_name, pid); - } else { - gdm_session_stop_conversation (self, service_name); - - g_debug ("GdmSession: Emitting 'session-start-failed' signal"); - g_signal_emit (self, signals[SESSION_START_FAILED], 0, service_name, error->message); - } - } - - void - gdm_session_start_session (GdmSession *self, - const char *service_name) - { - GdmSessionConversation *conversation; - GdmSessionDisplayMode display_mode; +@@ -3060,6 +3060,7 @@ gdm_session_start_session (GdmSession *self, gboolean is_x11 = TRUE; gboolean run_launcher = FALSE; gboolean allow_remote_connections = FALSE; + gboolean run_separate_bus = FALSE; char *command; char *program; - gboolean register_session; + gboolean needs_registration; +@@ -3090,6 +3091,10 @@ gdm_session_start_session (GdmSession *self, - g_return_if_fail (GDM_IS_SESSION (self)); - g_return_if_fail (self->session_conversation == NULL); - - conversation = find_conversation_by_name (self, service_name); - - if (conversation == NULL) { - g_warning ("GdmSession: Tried to start session of " - "nonexistent conversation %s", service_name); - return; - } - - stop_all_other_conversations (self, conversation, FALSE); - - display_mode = gdm_session_get_display_mode (self); - - #ifdef ENABLE_WAYLAND_SUPPORT - is_x11 = g_strcmp0 (self->session_type, "wayland") != 0; - #endif - - if (display_mode == GDM_SESSION_DISPLAY_MODE_LOGIND_MANAGED || - display_mode == GDM_SESSION_DISPLAY_MODE_NEW_VT) { - run_launcher = TRUE; - } - - register_session = !gdm_session_session_registers (self); + needs_registration = !gdm_session_session_registers (self); + if (g_strcmp0 (self->display_seat_id, "seat0") != 0 && !run_launcher) { + run_separate_bus = TRUE; @@ -85,28 +35,7 @@ index a65fa0f9..f13b54af 100644 if (self->selected_program == NULL) { gboolean run_xsession_script; - command = get_session_command (self); - - run_xsession_script = !gdm_session_bypasses_xsession (self); - - if (self->display_is_local) { - gboolean disallow_tcp = TRUE; - gdm_settings_direct_get_boolean (GDM_KEY_DISALLOW_TCP, &disallow_tcp); - allow_remote_connections = !disallow_tcp; - } else { - allow_remote_connections = TRUE; - } - - if (run_launcher) { - if (is_x11) { - program = g_strdup_printf (LIBEXECDIR "/gdm-x-session %s%s %s\"%s\"", - register_session ? "--register-session " : "", - run_xsession_script? "--run-script " : "", - allow_remote_connections? "--allow-remote-connections " : "", - command); - } else { - program = g_strdup_printf (LIBEXECDIR "/gdm-wayland-session %s\"%s\"", - register_session ? "--register-session " : "", +@@ -3118,7 +3123,12 @@ gdm_session_start_session (GdmSession *self, command); } } else if (run_xsession_script) { @@ -116,36 +45,7 @@ index a65fa0f9..f13b54af 100644 + } else { + program = g_strdup_printf (GDMCONFDIR "/Xsession \"%s\"", command); + } ++ program = g_strdup_printf (GDMCONFDIR "/Xsession \"%s\"", command); } else { program = g_strdup (command); } - - g_free (command); - } else { - /* FIXME: - * Always use a separate DBus bus for each greeter session. - * Firstly, this means that if we run multiple greeter session - * (which we really should not do, but have to currently), then - * each one will get its own DBus session bus. - * But, we also explicitly do this for seat0, because that way - * it cannot make use of systemd to run the GNOME session. This - * prevents the session lookup logic from getting confused. - * This has a similar effect as passing --builtin to gnome-session. - * - * We really should not be doing this. But the fix is to use - * separate dynamically created users and that requires some - * major refactorings. - */ - if (run_launcher) { - if (is_x11) { - program = g_strdup_printf (LIBEXECDIR "/gdm-x-session %s\"dbus-run-session -- %s\"", - register_session ? "--register-session " : "", - self->selected_program); - } else { - program = g_strdup_printf (LIBEXECDIR "/gdm-wayland-session %s\"dbus-run-session -- %s\"", - register_session ? "--register-session " : "", - self->selected_program); - } --- -2.37.3 -