diff --git a/SOURCES/0001-loginManager-Update-RegisterSession.patch b/SOURCES/0001-loginManager-Update-RegisterSession.patch new file mode 100644 index 0000000..b5eadab --- /dev/null +++ b/SOURCES/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/SPECS/gnome-shell.spec b/SPECS/gnome-shell.spec index 7aea317..ec636c3 100644 --- a/SPECS/gnome-shell.spec +++ b/SPECS/gnome-shell.spec @@ -8,7 +8,7 @@ Name: gnome-shell Version: 40.10 -Release: 34%{?dist} +Release: 35%{?dist}.1 Summary: Window management and application launching for GNOME License: GPLv2+ @@ -39,6 +39,7 @@ 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 # Misc. Patch30: 0001-panel-add-an-icon-to-the-ActivitiesButton.patch @@ -308,6 +309,15 @@ desktop-file-validate %{buildroot}%{_datadir}/applications/evolution-calendar.de %endif %changelog +* Fri May 29 2026 Joan Tomas Pelka - 40.10-35.1 +- triggering a new build in correct target + Resolves: RHEL-178703 + +* Mon May 25 2026 Joan Torres Lopez - 40.10-35 +- Update fix of registering session + Registering the display is needed too + Resolves: RHEL-178703 + * Mon Mar 9 2026 Joan Torres Lopez - 40.10-34 - Fix to automatically start fingerprint when enabled Resolves: RHEL-4166