From d1ac46ccc771abc94467f7d6407ab8e9cedb7b91 Mon Sep 17 00:00:00 2001 From: AlmaLinux RelEng Bot Date: Mon, 30 Mar 2026 10:29:25 -0400 Subject: [PATCH] import CS gnome-settings-daemon-40.0.1-24.el9 --- ...-delay-startup-notification-by-30min.patch | 95 +++++++++++++++++++ SPECS/gnome-settings-daemon.spec | 13 ++- 2 files changed, 107 insertions(+), 1 deletion(-) create mode 100644 SOURCES/subman-delay-startup-notification-by-30min.patch diff --git a/SOURCES/subman-delay-startup-notification-by-30min.patch b/SOURCES/subman-delay-startup-notification-by-30min.patch new file mode 100644 index 0000000..fc042e8 --- /dev/null +++ b/SOURCES/subman-delay-startup-notification-by-30min.patch @@ -0,0 +1,95 @@ +From b3cb5223cbc0d1c6bb71a841d467dea7e54a1bc3 Mon Sep 17 00:00:00 2001 +From: Felipe Borges +Date: Mon, 20 Oct 2025 12:32:43 +0200 +Subject: [PATCH] subman: Delay startup notification by 30 minutes + +So that we don't disturb users during initial-setup/onboarding. + +Resolves: RHEL-4094 +--- + plugins/subman/gsd-subscription-manager.c | 29 ++++++++++++++++++++++- + 1 file changed, 28 insertions(+), 1 deletion(-) + +diff --git a/plugins/subman/gsd-subscription-manager.c b/plugins/subman/gsd-subscription-manager.c +index 09a96a3a..2a3f5504 100644 +--- a/plugins/subman/gsd-subscription-manager.c ++++ b/plugins/subman/gsd-subscription-manager.c +@@ -39,6 +39,8 @@ + #define GSD_SUBSCRIPTION_DBUS_PATH GSD_DBUS_PATH "/Subscription" + #define GSD_SUBSCRIPTION_DBUS_INTERFACE GSD_DBUS_BASE_INTERFACE ".Subscription" + ++#define STARTUP_NOTIFICATION_DELAY (30 * 60) ++ + static const gchar introspection_xml[] = + "" + " " +@@ -84,6 +86,8 @@ struct GsdSubscriptionManagerPrivate + NotifyNotification *notification_registration_required; + GsdSubmanSubscriptionStatus subscription_status; + GsdSubmanSubscriptionStatus subscription_status_last; ++ ++ guint startup_registration_required_notification_id; + }; + + enum { +@@ -510,6 +514,15 @@ _show_notification (GsdSubscriptionManager *manager, _NotifyKind notify_kind) + g_timer_reset (priv->timer_last_notified); + } + ++static void _client_maybe__show_notification (GsdSubscriptionManager *manager); ++static gboolean ++_startup_registration_required_notification_cb (GsdSubscriptionManager *manager) ++{ ++ _client_maybe__show_notification (manager); ++ ++ return FALSE; ++} ++ + static void + _client_maybe__show_notification (GsdSubscriptionManager *manager) + { +@@ -603,7 +616,14 @@ _client_maybe__show_notification (GsdSubscriptionManager *manager) + + /* startup */ + if (!was_read && is_read && priv->subscription_status == GSD_SUBMAN_SUBSCRIPTION_STATUS_UNKNOWN) { +- _show_notification (manager, _NOTIFY_REGISTRATION_REQUIRED); ++ if (priv->startup_registration_required_notification_id == 0) { ++ priv->startup_registration_required_notification_id = ++ g_timeout_add_seconds (STARTUP_NOTIFICATION_DELAY, ++ (GSourceFunc) _startup_registration_required_notification_cb, manager); ++ } else { ++ _show_notification (manager, _NOTIFY_REGISTRATION_REQUIRED); ++ } ++ + return; + } + +@@ -1161,11 +1181,13 @@ static void + gsd_subscription_manager_finalize (GObject *object) + { + GsdSubscriptionManager *manager; ++ GsdSubscriptionManagerPrivate *priv; + + g_return_if_fail (object != NULL); + g_return_if_fail (GSD_IS_SUBSCRIPTION_MANAGER (object)); + + manager = GSD_SUBSCRIPTION_MANAGER (object); ++ priv = manager->priv = GSD_SUBSCRIPTION_MANAGER_GET_PRIVATE (manager); + + gsd_subscription_manager_stop (manager); + +@@ -1174,6 +1196,11 @@ gsd_subscription_manager_finalize (GObject *object) + g_clear_object (&manager->priv->bus_cancellable); + } + ++ if (priv->startup_registration_required_notification_id) { ++ g_source_remove (priv->startup_registration_required_notification_id); ++ priv->startup_registration_required_notification_id = 0; ++ } ++ + g_clear_pointer (&manager->priv->installed_products, g_ptr_array_unref); + g_clear_pointer (&manager->priv->introspection_data, g_dbus_node_info_unref); + g_clear_object (&manager->priv->connection); +-- +2.34.1 + diff --git a/SPECS/gnome-settings-daemon.spec b/SPECS/gnome-settings-daemon.spec index 9033846..249cdc9 100644 --- a/SPECS/gnome-settings-daemon.spec +++ b/SPECS/gnome-settings-daemon.spec @@ -11,7 +11,7 @@ Name: gnome-settings-daemon Version: 40.0.1 -Release: 22%{?dist} +Release: 24%{?dist} Summary: The daemon sharing settings from GNOME to GTK+/KDE applications License: GPLv2+ @@ -85,6 +85,9 @@ Patch00010: subman-build-option.patch # https://issues.redhat.com/browse/RHEL-11910 Patch00011: housekeeping-disambiguate-mount-names-in-notifications.patch +# https://issues.redhat.com/browse/RHEL-4094 +Patch00012: subman-delay-startup-notification-by-30min.patch + %description A daemon to share settings from GNOME to other applications. It also handles global keybindings, as well as a number of desktop-wide settings. @@ -209,6 +212,14 @@ cp %{SOURCE1} $RPM_BUILD_ROOT%{_datadir}/glib-2.0/schemas %{_libdir}/pkgconfig/gnome-settings-daemon.pc %changelog +* Wed Oct 29 2025 Felipe Borges - 40.0.1-24 +- Improve reliability of the startup registration notification + Resolves: RHEL-4094 + +* Mon Oct 20 2025 Felipe Borges - 40.0.1-23 +- Delay startup registration notification by 30 minutes + Resolves: RHEL-4094 + * Tue Mar 04 2025 Felipe Borges - 40.0.1-22 - Use mount path in "Low disk" notification when multiple mount points have same name Related: RHEL-11910