import Oracle_OSS gnome-shell-3.32.2-60.el8_10

This commit is contained in:
AlmaLinux RelEng Bot 2026-07-09 03:41:04 -04:00
parent 561a49a566
commit d72e850956
2 changed files with 358 additions and 83 deletions

View File

@ -0,0 +1,270 @@
From 1b3edde30bac1bb4944b56e59cbc7f1412a90a3d Mon Sep 17 00:00:00 2001
From: Joan Torres Lopez <joantolo@redhat.com>
Date: Wed, 17 Jun 2026 09:54:57 +0200
Subject: [PATCH 1/5] loginDialog: Don't reconnect on each reset with gdmClient
When resetting the greeter proxy, it's destroyed and then recreated
again.
This destroy/recreate thing doesn't give any info to GDM and the greeter
interface destroyed has the same state as the newly created one.
Each time get_greeter_sync is called when greeter is destroyed makes GDM
create a new connection which stores in a list. This means that for each
reset a new unnecessary connection is created and stored.
GDM was leaking some objects which combined with this excessive connection
creation was causing a fd leak on each reset.
To make better use of resources and avoid problems, use ensure instead
of reset greeter proxy.
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3749>
---
js/gdm/loginDialog.js | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
diff --git a/js/gdm/loginDialog.js b/js/gdm/loginDialog.js
index eb6846d..c5e8853 100644
--- a/js/gdm/loginDialog.js
+++ b/js/gdm/loginDialog.js
@@ -815,11 +815,11 @@ var LoginDialog = GObject.registerClass({
this._showPrompt();
}
- _resetGreeterProxy() {
+ _ensureGreeterProxy() {
if (GLib.getenv('GDM_GREETER_TEST') != '1') {
- if (this._greeter) {
- this._greeter.run_dispose();
- }
+ if (this._greeter)
+ return;
+
this._greeter = this._gdmClient.get_greeter_sync(null);
this._defaultSessionChangedId = this._greeter.connect('default-session-name-changed',
@@ -832,7 +832,7 @@ var LoginDialog = GObject.registerClass({
}
_onReset(authPrompt, beginRequest) {
- this._resetGreeterProxy();
+ this._ensureGreeterProxy();
this._sessionMenuButton.updateSensitivity(true);
this._user = null;
--
2.54.0
From fb0f4366393fef39e13a2b233c57900db6661198 Mon Sep 17 00:00:00 2001
From: Joan Torres Lopez <joantolo@redhat.com>
Date: Wed, 17 Jun 2026 09:56:25 +0200
Subject: [PATCH 2/5] gdm/loginDialog: Reset the greeter proxy on connection
closed
If gdm fails to start the display session the greeter proxy we are using
gets disconnected, however since commit 56ea95f2 we are now preserving
the greeter instance, and this will eventually lead to using an instance
of a disconnected proxy.
This eventually implies that after a login failure, we would never get
the `::session-opened` signal that actually triggers the session start.
And thus, even the user has properly authenticated, gdm will stick to
the authentication page.
So, instead of reverting such commit (that isn't wrong per se), consume
the greeter proxy connection `::closed` signal and use it to
re-initialize the greeter instance.
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3885>
---
js/gdm/loginDialog.js | 12 ++++++++++++
1 file changed, 12 insertions(+)
diff --git a/js/gdm/loginDialog.js b/js/gdm/loginDialog.js
index c5e8853..613b97e 100644
--- a/js/gdm/loginDialog.js
+++ b/js/gdm/loginDialog.js
@@ -822,6 +822,14 @@ var LoginDialog = GObject.registerClass({
this._greeter = this._gdmClient.get_greeter_sync(null);
+ this._greeterConnectionClosedId =
+ this._greeter.get_connection().connect('closed', conn => {
+ conn.disconnect(this._greeterConnectionClosedId);
+ this._greeterConnectionClosedId = 0;
+ this._greeter = null;
+ this._ensureGreeterProxy();
+ });
+
this._defaultSessionChangedId = this._greeter.connect('default-session-name-changed',
this._onDefaultSessionChanged.bind(this));
this._sessionOpenedId = this._greeter.connect('session-opened',
@@ -1191,6 +1199,10 @@ var LoginDialog = GObject.registerClass({
this._settings = null;
}
if (this._greeter) {
+ if (this._greeterConnectionClosedId) {
+ this._greeter.get_connection().disconnect(this._greeterConnectionClosedId);
+ this._greeterConnectionClosedId = 0;
+ }
this._greeter.disconnect(this._defaultSessionChangedId);
this._greeter.disconnect(this._sessionOpenedId);
this._greeter.disconnect(this._timedLoginRequestedId);
--
2.54.0
From be05549008e57ac8f73211abf43e183eeb661292 Mon Sep 17 00:00:00 2001
From: Joan Torres Lopez <joantolo@redhat.com>
Date: Wed, 17 Jun 2026 10:03:00 +0200
Subject: [PATCH 3/5] gdm/util: Clear the request if user verifier connection
is closed
Similarly to previous commit, in case the user verifier connection is
closed we should just clear the user verifier instance, since starting
from this point is going to be just invalid.
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3885>
---
js/gdm/util.js | 10 ++++++++++
1 file changed, 10 insertions(+)
diff --git a/js/gdm/util.js b/js/gdm/util.js
index 9e24913..5a5df21 100644
--- a/js/gdm/util.js
+++ b/js/gdm/util.js
@@ -190,6 +190,10 @@ var ShellUserVerifier = class {
_clearUserVerifier() {
if (this._userVerifier) {
+ if (this._userVerifierConnectionClosedId) {
+ this._userVerifier.get_connection().disconnect(this._userVerifierConnectionClosedId);
+ this._userVerifierConnectionClosedId = 0;
+ }
this._userVerifier.run_dispose();
this._userVerifier = null;
if (this._userVerifierChoiceList) {
@@ -370,6 +374,9 @@ var ShellUserVerifier = class {
return;
}
+ this._userVerifierConnectionClosedId =
+ this._userVerifier.get_connection().connect('closed', () => this.clear());
+
if (client.get_user_verifier_choice_list)
this._userVerifierChoiceList = client.get_user_verifier_choice_list();
else
@@ -392,6 +399,9 @@ var ShellUserVerifier = class {
return;
}
+ this._userVerifierConnectionClosedId =
+ this._userVerifier.get_connection().connect('closed', () => this.clear());
+
if (client.get_user_verifier_choice_list)
this._userVerifierChoiceList = client.get_user_verifier_choice_list();
else
--
2.54.0
From 87cef60e36c5ca402364f5cc99fb6ce834cf4827 Mon Sep 17 00:00:00 2001
From: Joan Torres Lopez <joantolo@redhat.com>
Date: Wed, 17 Jun 2026 10:06:32 +0200
Subject: [PATCH 4/5] gdm/util: Do not run dispose on user verifier
This is not a good habit anywhere and especially in JS code, I assume
the rationale for this was to ensure that cached instances of the proxy
were cleared, but this did not work properly (as it happened on
finalize), and it would still require [1].
So let's just avoid this and assume that the getters just return what we
expect.
[1] https://gitlab.gnome.org/GNOME/gdm/-/merge_requests/321
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3885>
---
js/gdm/util.js | 6 +-----
1 file changed, 1 insertion(+), 5 deletions(-)
diff --git a/js/gdm/util.js b/js/gdm/util.js
index 5a5df21..58b5946 100644
--- a/js/gdm/util.js
+++ b/js/gdm/util.js
@@ -194,12 +194,8 @@ var ShellUserVerifier = class {
this._userVerifier.get_connection().disconnect(this._userVerifierConnectionClosedId);
this._userVerifierConnectionClosedId = 0;
}
- this._userVerifier.run_dispose();
this._userVerifier = null;
- if (this._userVerifierChoiceList) {
- this._userVerifierChoiceList.run_dispose();
- this._userVerifierChoiceList = null;
- }
+ this._userVerifierChoiceList = null;
}
}
--
2.54.0
From 6b1fe48ea3b4dedae9344941e97f48a9a046c0a7 Mon Sep 17 00:00:00 2001
From: Joan Torres Lopez <joantolo@redhat.com>
Date: Wed, 17 Jun 2026 17:32:52 +0200
Subject: [PATCH 5/5] gdm: Clear user verifier before starting new async operations
in begin()
Move _clearUserVerifier() from the finish callbacks
(_reauthenticationChannelOpened, _userVerifierGot) to the start of
begin().
When a reauthentication retry happens, begin() creates a new
cancellable and starts an async open_reauthentication_channel call.
If the previous user verifier's connection 'closed' handler is still
active, it can fire during the async operation and call this.clear(),
which cancels the new cancellable. This causes the retry to fail with
G_IO_ERROR_CANCELLED.
By clearing the user verifier at the start of begin(), the old
connection's 'closed' handler is disconnected before the new
cancellable is created, eliminating the window where closing the old
connection can cancel the new operation.
---
js/gdm/util.js | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/js/gdm/util.js b/js/gdm/util.js
index 58b5946..c86e638 100644
--- a/js/gdm/util.js
+++ b/js/gdm/util.js
@@ -161,6 +161,7 @@ var ShellUserVerifier = class {
}
begin(userName, hold) {
+ this._clearUserVerifier();
this._cancellable = new Gio.Cancellable();
this._hold = hold;
this._userName = userName;
@@ -351,7 +352,6 @@ var ShellUserVerifier = class {
_reauthenticationChannelOpened(client, result) {
try {
- this._clearUserVerifier();
this._userVerifier = client.open_reauthentication_channel_finish(result);
} catch(e) {
if (e.matches(Gio.IOErrorEnum, Gio.IOErrorEnum.CANCELLED))
@@ -386,7 +386,6 @@ var ShellUserVerifier = class {
_userVerifierGot(client, result) {
try {
- this._clearUserVerifier();
this._userVerifier = client.get_user_verifier_finish(result);
} catch(e) {
if (e.matches(Gio.IOErrorEnum, Gio.IOErrorEnum.CANCELLED))
--
2.54.0

View File

@ -6,7 +6,7 @@
Name: gnome-shell
Version: 3.32.2
Release: 59%{?dist}
Release: 60%{?dist}
Summary: Window management and application launching for GNOME
Group: User Interface/Desktops
@ -17,108 +17,109 @@ URL: https://wiki.gnome.org/Projects/GnomeShell
Source0: http://download.gnome.org/sources/gnome-shell/3.32/%{name}-%{version}.tar.xz
# Replace Epiphany with Firefox in the default favourite apps list
Patch1: gnome-shell-favourite-apps-firefox.patch
Patch2: gnome-shell-favourite-apps-yelp.patch
Patch3: gnome-shell-favourite-apps-terminal.patch
Patch1001: gnome-shell-favourite-apps-firefox.patch
Patch1002: gnome-shell-favourite-apps-yelp.patch
Patch1003: gnome-shell-favourite-apps-terminal.patch
# GDM/Lock stuff
Patch12: 0001-screenShield-unblank-when-inserting-smartcard.patch
Patch13: enforce-smartcard-at-unlock.patch
Patch14: disable-unlock-entry-until-question.patch
Patch15: allow-timed-login-with-no-user-list.patch
Patch16: 0001-data-install-process-working.svg-to-filesystem.patch
Patch17: 0001-loginDialog-make-info-messages-themed.patch
Patch18: 0001-gdm-add-AuthList-control.patch
Patch19: 0002-gdmUtil-enable-support-for-GDM-s-ChoiceList-PAM-exte.patch
Patch20: wake-up-on-deactivate.patch
Patch21: caps-lock-warning.patch
Patch22: gdm-networking.patch
Patch23: 0001-shellEntry-Disconnect-handler-on-destroy.patch
Patch24: fix-login-lock-screen.patch
Patch25: 0001-shellEntry-Determine-if-password-entry-from-content-.patch
Patch26: 0002-shellEntry-Give-password-menu-item-text-when-it-s-cr.patch
Patch27: 0003-shellEntry-Handle-password-item-from-dedication-func.patch
Patch28: 0004-shellEntry-Support-lockdown-of-Show-Text-menu-in-pas.patch
Patch29: 0005-shellEntry-Only-mask-text-in-password-entries.patch
Patch2001: 0001-screenShield-unblank-when-inserting-smartcard.patch
Patch2002: enforce-smartcard-at-unlock.patch
Patch2003: disable-unlock-entry-until-question.patch
Patch2004: allow-timed-login-with-no-user-list.patch
Patch2005: 0001-data-install-process-working.svg-to-filesystem.patch
Patch2006: 0001-loginDialog-make-info-messages-themed.patch
Patch2007: 0001-gdm-add-AuthList-control.patch
Patch2008: 0002-gdmUtil-enable-support-for-GDM-s-ChoiceList-PAM-exte.patch
Patch2009: wake-up-on-deactivate.patch
Patch2010: caps-lock-warning.patch
Patch2011: gdm-networking.patch
Patch2012: 0001-shellEntry-Disconnect-handler-on-destroy.patch
Patch2013: fix-login-lock-screen.patch
Patch2014: 0001-shellEntry-Determine-if-password-entry-from-content-.patch
Patch2015: 0002-shellEntry-Give-password-menu-item-text-when-it-s-cr.patch
Patch2016: 0003-shellEntry-Handle-password-item-from-dedication-func.patch
Patch2017: 0004-shellEntry-Support-lockdown-of-Show-Text-menu-in-pas.patch
Patch2018: 0005-shellEntry-Only-mask-text-in-password-entries.patch
Patch2019: 0001-gdm-loginDialog-Reset-the-greeter-proxy-on-connectio.patch
# Misc.
Patch30: 0001-shellDBus-Add-a-DBus-method-to-load-a-single-extensi.patch
Patch31: 0001-extensions-Add-a-SESSION_MODE-extension-type.patch
Patch32: extension-updates.patch
Patch33: 0001-panel-add-an-icon-to-the-ActivitiesButton.patch
Patch34: 0001-app-Fall-back-to-window-title-instead-of-WM_CLASS.patch
Patch35: 0001-windowMenu-Bring-back-workspaces-submenu-for-static-.patch
Patch36: 0001-shell-app-Handle-workspace-from-startup-notification.patch
Patch37: 0001-main-Dump-stack-on-segfaults-by-default.patch
Patch38: 0001-appDisplay-Show-full-app-name-on-hover.patch
Patch39: horizontal-workspace-support.patch
Patch40: 0001-animation-fix-unintentional-loop-while-polkit-dialog.patch
Patch41: 0001-workspacesView-Work-around-spurious-allocation-chang.patch
Patch42: 0001-layout-Make-the-hot-corner-optional.patch
Patch43: fix-app-view-leaks.patch
Patch44: root-warning.patch
Patch45: 0001-workspace-Pass-device-to-startDrag.patch
Patch46: 0001-a11y-Change-HC-icon-theme-first.patch
Patch47: perf-tool-wayland.patch
Patch48: 0001-padOsd-Re-query-action-labels-after-mode-switches.patch
Patch49: 0001-Do-not-change-Wacom-LEDs-through-g-s-d.patch
Patch50: 0001-st-texture-cache-Cancel-pending-requests-on-icon-the.patch
Patch51: introspect-backports.patch
Patch52: 0001-popupMenu-Handle-keypress-if-numlock-is-enabled.patch
Patch53: 0001-theme-Update-window-preview-style.patch
Patch54: warn-less.patch
Patch55: 0001-networkAgent-add-support-for-SAE-secrets.patch
Patch56: 0001-main-Unset-the-right-prevFocus-actor-after-the-focus.patch
Patch57: defend-against-corrupt-notifications.patch
Patch58: 0001-status-volume-Hide-sliders-initially.patch
Patch59: 0001-shell-recorder-Restore-cursor-recording.patch
Patch60: 0001-st-bin-Disallow-st_bin_set_child-with-already-parent.patch
Patch61: 0001-layout-Initialize-regions-unconditionally.patch
Patch62: fix-nm-device-settings.patch
Patch63: owe-support.patch
Patch64: 0001-windowMenu-Ignore-release.patch
Patch65: 0001-overview-Hide-the-overview-on-session-mode-hasOvervi.patch
Patch66: 0001-st-theme-Reuse-stylesheets-if-possible.patch
Patch67: fix-dropping-menu-grab.patch
Patch3001: 0001-shellDBus-Add-a-DBus-method-to-load-a-single-extensi.patch
Patch3002: 0001-extensions-Add-a-SESSION_MODE-extension-type.patch
Patch3003: extension-updates.patch
Patch3004: 0001-panel-add-an-icon-to-the-ActivitiesButton.patch
Patch3005: 0001-app-Fall-back-to-window-title-instead-of-WM_CLASS.patch
Patch3006: 0001-windowMenu-Bring-back-workspaces-submenu-for-static-.patch
Patch3007: 0001-shell-app-Handle-workspace-from-startup-notification.patch
Patch3008: 0001-main-Dump-stack-on-segfaults-by-default.patch
Patch3009: 0001-appDisplay-Show-full-app-name-on-hover.patch
Patch3010: horizontal-workspace-support.patch
Patch3011: 0001-animation-fix-unintentional-loop-while-polkit-dialog.patch
Patch3012: 0001-workspacesView-Work-around-spurious-allocation-chang.patch
Patch3013: 0001-layout-Make-the-hot-corner-optional.patch
Patch3014: fix-app-view-leaks.patch
Patch3015: root-warning.patch
Patch3016: 0001-workspace-Pass-device-to-startDrag.patch
Patch3017: 0001-a11y-Change-HC-icon-theme-first.patch
Patch3018: perf-tool-wayland.patch
Patch3019: 0001-padOsd-Re-query-action-labels-after-mode-switches.patch
Patch3020: 0001-Do-not-change-Wacom-LEDs-through-g-s-d.patch
Patch3021: 0001-st-texture-cache-Cancel-pending-requests-on-icon-the.patch
Patch3022: introspect-backports.patch
Patch3023: 0001-popupMenu-Handle-keypress-if-numlock-is-enabled.patch
Patch3024: 0001-theme-Update-window-preview-style.patch
Patch3025: warn-less.patch
Patch3026: 0001-networkAgent-add-support-for-SAE-secrets.patch
Patch3027: 0001-main-Unset-the-right-prevFocus-actor-after-the-focus.patch
Patch3028: defend-against-corrupt-notifications.patch
Patch3029: 0001-status-volume-Hide-sliders-initially.patch
Patch3030: 0001-shell-recorder-Restore-cursor-recording.patch
Patch3031: 0001-st-bin-Disallow-st_bin_set_child-with-already-parent.patch
Patch3032: 0001-layout-Initialize-regions-unconditionally.patch
Patch3033: fix-nm-device-settings.patch
Patch3034: owe-support.patch
Patch3035: 0001-windowMenu-Ignore-release.patch
Patch3036: 0001-overview-Hide-the-overview-on-session-mode-hasOvervi.patch
Patch3037: 0001-st-theme-Reuse-stylesheets-if-possible.patch
Patch3038: fix-dropping-menu-grab.patch
# Backport JS invalid access warnings (#1651894, #1663171, #1642482, #1637622)
Patch70: fix-invalid-access-warnings.patch
Patch71: more-spurious-allocation-warnings.patch
Patch72: fix-some-js-warnings.patch
Patch73: fix-double-disposed-backgrounds.patch
Patch4001: fix-invalid-access-warnings.patch
Patch4002: more-spurious-allocation-warnings.patch
Patch4003: fix-some-js-warnings.patch
Patch4004: fix-double-disposed-backgrounds.patch
# Backport performance fixes under load (#1820760)
Patch80: 0001-environment-reduce-calls-to-g_time_zone_new_local.patch
Patch81: 0002-environment-Fix-date-conversion.patch
Patch82: 0003-shell-app-system-Monitor-for-icon-theme-changes.patch
Patch83: 0004-global-force-fsync-to-worker-thread-when-saving-stat.patch
Patch84: 0005-app-cache-add-ShellAppCache-for-GAppInfo-caching.patch
Patch85: 0006-js-Always-use-AppSystem-to-lookup-apps.patch
Patch5001: 0001-environment-reduce-calls-to-g_time_zone_new_local.patch
Patch5002: 0002-environment-Fix-date-conversion.patch
Patch5003: 0003-shell-app-system-Monitor-for-icon-theme-changes.patch
Patch5004: 0004-global-force-fsync-to-worker-thread-when-saving-stat.patch
Patch5005: 0005-app-cache-add-ShellAppCache-for-GAppInfo-caching.patch
Patch5006: 0006-js-Always-use-AppSystem-to-lookup-apps.patch
# Stop screen recording on monitor changes (#1705392)
Patch90: 0001-screencast-Stop-recording-when-screen-size-or-resour.patch
Patch6001: 0001-screencast-Stop-recording-when-screen-size-or-resour.patch
# Backport OSK fixes (#1871041)
Patch95: osk-fixes.patch
Patch96: 0001-keyboard-Only-enable-keyboard-if-ClutterDeviceManage.patch
Patch7001: osk-fixes.patch
Patch7002: 0001-keyboard-Only-enable-keyboard-if-ClutterDeviceManage.patch
# suspend/resume fix on nvidia (#1663440)
Patch10001: 0001-background-refresh-after-suspend-on-wayland.patch
Patch10002: 0002-background-rebuild-background-not-just-animation-on-.patch
Patch10003: 0003-st-texture-cache-purge-on-resume.patch
Patch10004: 0004-background-refresh-background-on-gl-video-memory-pur.patch
Patch8001: 0001-background-refresh-after-suspend-on-wayland.patch
Patch8002: 0002-background-rebuild-background-not-just-animation-on-.patch
Patch8003: 0003-st-texture-cache-purge-on-resume.patch
Patch8004: 0004-background-refresh-background-on-gl-video-memory-pur.patch
# Allow login screen extensions (#1651378)
Patch20001: 0001-extensionSystem-Handle-added-or-removed-sessionMode-.patch
Patch20002: 0002-extensionSystem-Get-rid-of-_enabled-boolean-optimiza.patch
Patch20003: 0003-extensionSystem-Allow-extensions-to-run-on-the-login.patch
Patch20004: 0004-sessionMode-Allow-extensions-at-the-login-and-unlock.patch
Patch9001: 0001-extensionSystem-Handle-added-or-removed-sessionMode-.patch
Patch9002: 0002-extensionSystem-Get-rid-of-_enabled-boolean-optimiza.patch
Patch9003: 0003-extensionSystem-Allow-extensions-to-run-on-the-login.patch
Patch9004: 0004-sessionMode-Allow-extensions-at-the-login-and-unlock.patch
# CVE-2020-17489
Patch30001: 0001-loginDialog-Reset-auth-prompt-on-vt-switch-before-fa.patch
Patch10001: 0001-loginDialog-Reset-auth-prompt-on-vt-switch-before-fa.patch
# Disable captive portal helper if WebKitGTK is not installed (RHEL-10488)
Patch40001: portal-notify.patch
Patch11001: portal-notify.patch
%define libcroco_version 0.6.8
%define eds_version 3.17.2
@ -306,6 +307,10 @@ desktop-file-validate %{buildroot}%{_datadir}/applications/evolution-calendar.de
%endif
%changelog
* Wed Jun 17 2026 Joan Torres Lopez <joantolo@redhat.com> - 3.32.2-60
- Backport fix to recover userVerifier
Resolves: RHEL-185731
* Wed May 13 2026 Florian Müllner <fmuellner@redhat.com> - 3.32.2-59
- Fix dropping menu grab on destroy
Resolves: RHEL-171948