diff --git a/SOURCES/power-button-action-server.patch b/SOURCES/power-button-action-server.patch new file mode 100644 index 0000000..5d4e5aa --- /dev/null +++ b/SOURCES/power-button-action-server.patch @@ -0,0 +1,52 @@ +From 176f90307152e21e232a69c9ad06a31d30ba9c9a Mon Sep 17 00:00:00 2001 +From: Felipe Borges +Date: Mon, 20 Jan 2025 15:29:42 +0100 +Subject: [PATCH] Change the power-button-action behavior for Server with GUI + +When systemd-hostnamed chassis-type is "server" we read the +power-button-action-server side setting instead. + +Related: RHEL-71937 +--- + data/org.gnome.settings-daemon.plugins.power.gschema.xml.in | 5 +++++ + plugins/media-keys/gsd-media-keys-manager.c | 4 +++- + 2 files changed, 8 insertions(+), 1 deletion(-) + +diff --git a/data/org.gnome.settings-daemon.plugins.power.gschema.xml.in b/data/org.gnome.settings-daemon.plugins.power.gschema.xml.in +index e1a8787b..5a83666f 100644 +--- a/data/org.gnome.settings-daemon.plugins.power.gschema.xml.in ++++ b/data/org.gnome.settings-daemon.plugins.power.gschema.xml.in +@@ -41,6 +41,11 @@ + Power button action + The action to take when the system power button is pressed. Virtual machines only honor the 'nothing' action, and will shutdown otherwise. Tablets always suspend, ignoring all the other action options. + ++ ++ 'nothing' ++ Power button action on servers ++ The action to take when the system power button is pressed on "Server with GUI" environments. ++ + + true + Enable power-saver profile when battery is low +diff --git a/plugins/media-keys/gsd-media-keys-manager.c b/plugins/media-keys/gsd-media-keys-manager.c +index 6ed8c323..631de0a3 100644 +--- a/plugins/media-keys/gsd-media-keys-manager.c ++++ b/plugins/media-keys/gsd-media-keys-manager.c +@@ -2266,11 +2266,13 @@ do_config_power_button_action (GsdMediaKeysManager *manager, + GsdMediaKeysManagerPrivate *priv = GSD_MEDIA_KEYS_MANAGER_GET_PRIVATE (manager); + GsdPowerButtonActionType action_type; + GsdPowerActionType action; ++ gboolean is_server = FALSE; + + if (priv->power_button_disabled) + return; + +- action_type = g_settings_get_enum (priv->power_settings, "power-button-action"); ++ is_server = g_strcmp0 (priv->chassis_type, "server") == 0; ++ action_type = g_settings_get_enum (priv->power_settings, is_server? "power-button-action-server" : "power-button-action"); + /* Always power off VMs, except when power-button-action is "nothing" */ + if (g_strcmp0 (priv->chassis_type, "vm") == 0) { + g_warning_once ("Virtual machines only honor the 'nothing' power-button-action, and will shutdown otherwise"); +-- +2.48.1 + diff --git a/SOURCES/smartcard-hotplug.patch b/SOURCES/smartcard-hotplug.patch new file mode 100644 index 0000000..1456942 --- /dev/null +++ b/SOURCES/smartcard-hotplug.patch @@ -0,0 +1,36 @@ +From e5b52d51d301bf19efc4211f2fa9f256f64a2a29 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?David=20H=C3=A4rdeman?= +Date: Wed, 12 Apr 2023 22:23:51 +0200 +Subject: [PATCH] smartcard: check for the addition of new smartcard readers + +gsd-smartcard currently checks for the insertion/removal of smartcards +in reader devices which where present at the time gsd-smartcard was +started, but does not account for new smartcard readers appearing +after gsd-smartcard was started. + +This patch adds support for checking for the addition of new slots +(i.e. smartcard readers), which is necessary to support devices +like the Yubikey (a "reader" and a smartcard) which may be inserted +after gsd-smartcard was started. +--- + plugins/smartcard/gsd-smartcard-manager.c | 7 ++++++- + 1 file changed, 6 insertions(+), 1 deletion(-) + +diff --git a/plugins/smartcard/gsd-smartcard-manager.c b/plugins/smartcard/gsd-smartcard-manager.c +index acd22df819..a219e22ef7 100644 +--- a/plugins/smartcard/gsd-smartcard-manager.c ++++ b/plugins/smartcard/gsd-smartcard-manager.c +@@ -212,7 +212,12 @@ watch_one_event_from_driver (GsdSmartcardManager *self, + error_code = PORT_GetError (); + + if (error_code == SEC_ERROR_NO_EVENT) { +- g_usleep (1 * G_USEC_PER_SEC); ++ int old_slot_count = operation->driver->slotCount; ++ SECMOD_UpdateSlotList (operation->driver); ++ if (operation->driver->slotCount != old_slot_count) ++ g_debug ("Slot count change %i -> %i", old_slot_count, operation->driver->slotCount); ++ else ++ g_usleep (1 * G_USEC_PER_SEC); + + return TRUE; + } diff --git a/SPECS/gnome-settings-daemon.spec b/SPECS/gnome-settings-daemon.spec index 2a320ad..abe67aa 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: 17%{?dist} +Release: 19%{?dist} Summary: The daemon sharing settings from GNOME to GTK+/KDE applications License: GPLv2+ @@ -73,6 +73,8 @@ Patch00003: im-module-setting-fix.patch Patch00004: print-notifications-clear-in-stop.patch Patch00005: 0001-power-Respect-the-nothing-power-button-action-for-VM.patch Patch00006: usb-protection-dont-crash-when-screensaver-service-unavailable.patch +Patch00007: smartcard-hotplug.patch +Patch00008: power-button-action-server.patch %description A daemon to share settings from GNOME to other applications. It also @@ -198,6 +200,14 @@ cp %{SOURCE1} $RPM_BUILD_ROOT%{_datadir}/glib-2.0/schemas %{_libdir}/pkgconfig/gnome-settings-daemon.pc %changelog +* Mon Jan 20 2025 Felipe Borges - 40.0.1-19 +- Fix default power-button-action setting for servers + Related: RHEL-71937 + +* Tue Oct 29 2024 Felipe Borges - 40.0.1-18 +- Fix smartcards only working when cold-plugged + Related: RHEL-47261 + * Mon Mar 25 2024 Felipe Borges - 40.0.1-17 - Fix usb-protection crash when when screensaver service is unavailable Related: RHEL-19295