From 1cdc75eb5aa15b979d5ef07032b8c835aac3dc53 Mon Sep 17 00:00:00 2001 From: Joan Torres Lopez Date: Mon, 25 May 2026 18:26:01 +0200 Subject: [PATCH] Update fix of registering session Registering display is needed too Resolves: https://redhat.atlassian.net/browse/RHEL-178690 --- ...-loginManager-Update-RegisterSession.patch | 66 +++++++++++++++++++ gnome-shell.spec | 14 ++-- 2 files changed, 76 insertions(+), 4 deletions(-) create mode 100644 0001-loginManager-Update-RegisterSession.patch diff --git a/0001-loginManager-Update-RegisterSession.patch b/0001-loginManager-Update-RegisterSession.patch new file mode 100644 index 0000000..b5eadab --- /dev/null +++ b/0001-loginManager-Update-RegisterSession.patch @@ -0,0 +1,66 @@ +From 714332d3065a41e8bae61234cd231219cfcc95d6 Mon Sep 17 00:00:00 2001 +From: Joan Torres Lopez +Date: Tue, 3 Feb 2026 14:43:43 +0100 +Subject: [PATCH] main: Call RegisterDisplay once UI has initialized + +RegisterDisplay is called to signal that graphics have settled, +which allows GDM to terminate pending greeters and plymouth. + +Previously, RegisterSession was used for both recording the login +and terminating greeters. This caused a race condition where the +new user shell was setting up while the greeter was tearing down, +leading to configuration conflicts during the asynchronous handoff. + +By splitting into RegisterSession (called early to record login) and +RegisterDisplay (called after graphics settle), the greeter teardown +is delayed until the new session has completed its initial modeset. + +Fixes: 32a01330 ("main: Register session with GDM on startup") +Part-of: +--- + js/misc/loginManager.js | 18 ++++++++++++++++++ + js/ui/main.js | 2 ++ + 2 files changed, 20 insertions(+) + +diff --git a/js/misc/loginManager.js b/js/misc/loginManager.js +index 4eee98b..63caea3 100644 +--- a/js/misc/loginManager.js ++++ b/js/misc/loginManager.js +@@ -68,6 +68,24 @@ async function registerSessionWithGDM() { + } + } + ++async function registerDisplayWithGDM() { ++ log('Registering display with GDM'); ++ try { ++ await Gio.DBus.system.call( ++ 'org.gnome.DisplayManager', ++ '/org/gnome/DisplayManager/Manager', ++ 'org.gnome.DisplayManager.Manager', ++ 'RegisterDisplay', ++ GLib.Variant.new('(a{ss})', [{}]), null, ++ Gio.DBusCallFlags.NONE, -1, null); ++ } catch (e) { ++ if (!e.matches(Gio.DBusError, Gio.DBusError.UNKNOWN_METHOD)) ++ log(`Error registering display with GDM: ${e.message}`); ++ else ++ log('Not calling RegisterDisplay(): method not exported, GDM too old?'); ++ } ++} ++ + let _loginManager = null; + + /** +diff --git a/js/ui/main.js b/js/ui/main.js +index c753ab6..2bcc819 100644 +--- a/js/ui/main.js ++++ b/js/ui/main.js +@@ -309,6 +309,8 @@ function _initializeUI() { + sessionMode.currentMode !== 'initial-setup') + _handleLockScreenWarning(); + ++ LoginManager.registerDisplayWithGDM(); ++ + let perfModuleName = GLib.getenv("SHELL_PERF_MODULE"); + if (perfModuleName) { + let perfOutput = GLib.getenv("SHELL_PERF_OUTPUT"); diff --git a/gnome-shell.spec b/gnome-shell.spec index 057d4c9..2262106 100644 --- a/gnome-shell.spec +++ b/gnome-shell.spec @@ -8,7 +8,7 @@ Name: gnome-shell Version: 40.10 -Release: 35%{?dist} +Release: 36%{?dist} Summary: Window management and application launching for GNOME License: GPLv2+ @@ -39,10 +39,11 @@ Patch20: 0001-systemActions-Optionally-allow-restart-shutdown-on-l.patch Patch21: 0001-authPrompt-Connect-disable-show-password-key-with-pa.patch Patch22: 0001-gdm-util-Early-initialize-all-internal-properties.patch Patch23: 0001-main-Register-session-with-GDM-on-startup.patch +Patch24: 0001-loginManager-Update-RegisterSession.patch # Passwordless GDM patch series -Patch24: pre-changes-for-passwordless-gdm-backport.patch -Patch25: 0001-Support-for-web-login-and-unified-auth-mechanism.patch -Patch26: post-changes-for-passwordless-gdm-backport.patch +Patch25: pre-changes-for-passwordless-gdm-backport.patch +Patch26: 0001-Support-for-web-login-and-unified-auth-mechanism.patch +Patch27: post-changes-for-passwordless-gdm-backport.patch # Misc. Patch30: 0001-panel-add-an-icon-to-the-ActivitiesButton.patch @@ -314,6 +315,11 @@ desktop-file-validate %{buildroot}%{_datadir}/applications/evolution-calendar.de %endif %changelog +* Mon May 25 2026 Joan Torres Lopez - 40.10-36 +- Update fix of registering session + Registering the display is needed too + Resolves: RHEL-178690 + * Thu Apr 2 2026 Joan Torres Lopez - 40.10-35 - Backport passwordless GDM feature to RHEL 9 Resolves: RHEL-169914