Package: release.debian.org Severity: normal Tags: bookworm User: release.debian....@packages.debian.org Usertags: pu X-Debbugs-Cc: mate-settings-dae...@packages.debian.org Control: affects -1 + src:mate-settings-daemon
While prepare a new upstream release upload for unstable, this bookworm-pu has also been prepared, cherry-picking various fixes from the current upstream release (v1.26.1). [ Reason ] Resolved issues: * two memleaks resolved * auto-enable HiDPI for QHD displays * handle race conditions during rfkill hotkey events [ Impact ] The above issues will stay unresolved if this upload gets rejected. [ Tests ] Manually. [ Risks ] For MATE desktop users, in case regressions occur. [ Checklist ] [x] *all* changes are documented in the d/changelog [x] I reviewed all changes and I approve them [x] attach debdiff against the package in (old)stable [x] the issue is verified as fixed in unstable [ Changes ] + [ Martin Wimpress ] + * debian/patches: + + Add 1002-debounce_multiple_rfkill_events.patch (LP: #1936956) + + [ Mike Gabriel ] + * debian/patches: + + Add 0003-datetime-fix-memory-leak.patch and 0004-mate-settings-manager- + fix-memory-leak.patch. Fix two memory leaks. (Cherry-picked from v1.26.1). + + Add 0005-Relax-High-DPI-limits.patch. Set DPI_LIMIT to 90% of 2x + DPI_FALLBACK, to catch QHD laptop screens. (Cherry-picked from v1.26.1). [ Other info ] None.
diff -Nru mate-settings-daemon-1.26.0/debian/changelog mate-settings-daemon-1.26.0/debian/changelog --- mate-settings-daemon-1.26.0/debian/changelog 2021-12-11 16:57:53.000000000 +0100 +++ mate-settings-daemon-1.26.0/debian/changelog 2024-01-06 09:05:33.000000000 +0100 @@ -1,3 +1,18 @@ +mate-settings-daemon (1.26.0-1+deb12u1) bookworm; urgency=medium + + [ Martin Wimpress ] + * debian/patches: + + Add 1002-debounce_multiple_rfkill_events.patch (LP: #1936956) + + [ Mike Gabriel ] + * debian/patches: + + Add 0003-datetime-fix-memory-leak.patch and 0004-mate-settings-manager- + fix-memory-leak.patch. Fix two memory leaks. (Cherry-picked from v1.26.1). + + Add 0005-Relax-High-DPI-limits.patch. Set DPI_LIMIT to 90% of 2x + DPI_FALLBACK, to catch QHD laptop screens. (Cherry-picked from v1.26.1). + + -- Mike Gabriel <sunwea...@debian.org> Sat, 06 Jan 2024 09:05:33 +0100 + mate-settings-daemon (1.26.0-1) unstable; urgency=medium [ Martin Wimpress ] diff -Nru mate-settings-daemon-1.26.0/debian/patches/0003-datetime-fix-memory-leak.patch mate-settings-daemon-1.26.0/debian/patches/0003-datetime-fix-memory-leak.patch --- mate-settings-daemon-1.26.0/debian/patches/0003-datetime-fix-memory-leak.patch 1970-01-01 01:00:00.000000000 +0100 +++ mate-settings-daemon-1.26.0/debian/patches/0003-datetime-fix-memory-leak.patch 2024-01-06 09:04:30.000000000 +0100 @@ -0,0 +1,51 @@ +From 0a7512040ff4e9e6354d8d519cd74dfb50fb7825 Mon Sep 17 00:00:00 2001 +From: rbuj <robert....@gmail.com> +Date: Thu, 21 Oct 2021 16:15:39 +0200 +Subject: [PATCH 3/5] datetime: fix memory leak + +Signed-off-by: Mike Gabriel <mike.gabr...@das-netzwerkteam.de> +--- + plugins/datetime/msd-datetime-mechanism.c | 6 ++++-- + 1 file changed, 4 insertions(+), 2 deletions(-) + +diff --git a/plugins/datetime/msd-datetime-mechanism.c b/plugins/datetime/msd-datetime-mechanism.c +index 0a604f6..75a7615 100644 +--- a/plugins/datetime/msd-datetime-mechanism.c ++++ b/plugins/datetime/msd-datetime-mechanism.c +@@ -228,7 +228,7 @@ msd_datetime_mechanism_new (void) + static gboolean + _check_polkit_for_action (MsdDatetimeMechanism *mechanism, DBusGMethodInvocation *context, const char *action) + { +- const char *sender; ++ char *sender; + GError *error; + PolkitSubject *subject; + PolkitAuthorizationResult *result; +@@ -238,6 +238,7 @@ _check_polkit_for_action (MsdDatetimeMechanism *mechanism, DBusGMethodInvocation + /* Check that caller is privileged */ + sender = dbus_g_method_get_sender (context); + subject = polkit_system_bus_name_new (sender); ++ g_free (sender); + + result = polkit_authority_check_authorization_sync (mechanism->priv->auth, + subject, +@@ -587,7 +588,7 @@ check_can_do (MsdDatetimeMechanism *mechanism, + const char *action, + DBusGMethodInvocation *context) + { +- const char *sender; ++ char *sender; + PolkitSubject *subject; + PolkitAuthorizationResult *result; + GError *error; +@@ -595,6 +596,7 @@ check_can_do (MsdDatetimeMechanism *mechanism, + /* Check that caller is privileged */ + sender = dbus_g_method_get_sender (context); + subject = polkit_system_bus_name_new (sender); ++ g_free (sender); + + error = NULL; + result = polkit_authority_check_authorization_sync (mechanism->priv->auth, +-- +2.39.2 + diff -Nru mate-settings-daemon-1.26.0/debian/patches/0004-mate-settings-manager-fix-memory-leak.patch mate-settings-daemon-1.26.0/debian/patches/0004-mate-settings-manager-fix-memory-leak.patch --- mate-settings-daemon-1.26.0/debian/patches/0004-mate-settings-manager-fix-memory-leak.patch 1970-01-01 01:00:00.000000000 +0100 +++ mate-settings-daemon-1.26.0/debian/patches/0004-mate-settings-manager-fix-memory-leak.patch 2024-01-06 09:04:30.000000000 +0100 @@ -0,0 +1,37 @@ +From e504604afc8f1a5b3bd9efdcb97b02fce4e53f57 Mon Sep 17 00:00:00 2001 +From: rbuj <robert....@gmail.com> +Date: Mon, 14 Mar 2022 13:31:00 +0100 +Subject: [PATCH 4/5] mate-settings-manager: fix memory leak + +Signed-off-by: Mike Gabriel <mike.gabr...@das-netzwerkteam.de> +--- + mate-settings-daemon/mate-settings-manager.c | 5 ++++- + 1 file changed, 4 insertions(+), 1 deletion(-) + +diff --git a/mate-settings-daemon/mate-settings-manager.c b/mate-settings-daemon/mate-settings-manager.c +index 91b5d13..8c511a1 100644 +--- a/mate-settings-daemon/mate-settings-manager.c ++++ b/mate-settings-daemon/mate-settings-manager.c +@@ -427,15 +427,18 @@ static void + mate_settings_manager_init (MateSettingsManager *manager) + { + char *schema; +- GSettings *settings; + + manager->priv = mate_settings_manager_get_instance_private (manager); + + schema = g_strdup_printf ("%s.plugins", DEFAULT_SETTINGS_PREFIX); + if (is_schema (schema)) { ++ GSettings *settings; ++ + settings = g_settings_new (schema); + manager->priv->init_load_priority = g_settings_get_int (settings, "init-load-priority"); ++ g_object_unref (settings); + } ++ g_free (schema); + } + + static void +-- +2.39.2 + diff -Nru mate-settings-daemon-1.26.0/debian/patches/0005-Relax-High-DPI-limits.patch mate-settings-daemon-1.26.0/debian/patches/0005-Relax-High-DPI-limits.patch --- mate-settings-daemon-1.26.0/debian/patches/0005-Relax-High-DPI-limits.patch 1970-01-01 01:00:00.000000000 +0100 +++ mate-settings-daemon-1.26.0/debian/patches/0005-Relax-High-DPI-limits.patch 2024-01-06 09:04:30.000000000 +0100 @@ -0,0 +1,34 @@ +From 669fa3007a661c033a16526ee2dc7672d164d5f7 Mon Sep 17 00:00:00 2001 +From: Fabio Pugliese Ornellas <fabio.ornel...@gmail.com> +Date: Thu, 8 Sep 2022 23:44:35 +0100 +Subject: [PATCH 5/5] Relax High DPI limits + +Signed-off-by: Mike Gabriel <mike.gabr...@das-netzwerkteam.de> +--- + plugins/xsettings/msd-xsettings-manager.c | 6 ++++-- + 1 file changed, 4 insertions(+), 2 deletions(-) + +diff --git a/plugins/xsettings/msd-xsettings-manager.c b/plugins/xsettings/msd-xsettings-manager.c +index ec7d079..c8199da 100644 +--- a/plugins/xsettings/msd-xsettings-manager.c ++++ b/plugins/xsettings/msd-xsettings-manager.c +@@ -76,12 +76,14 @@ + #define DPI_HIGH_REASONABLE_VALUE 500 + + /* The minimum resolution at which we turn on a window-scale of 2 */ +-#define HIDPI_LIMIT (DPI_FALLBACK * 2) ++/* Set this to 90% of 2x DPI_FALLBACK, to catch QHD laptop screens */ ++/* that are just below the 2x DPI_FALLBACK mark */ ++#define HIDPI_LIMIT (DPI_FALLBACK * 2 * 90 / 100) + + /* The minimum screen height at which we turn on a window-scale of 2; + * below this there just isn't enough vertical real estate for GNOME + * apps to work, and it's better to just be tiny */ +-#define HIDPI_MIN_HEIGHT 1500 ++#define HIDPI_MIN_HEIGHT 1440 + + #define GPOINTER_TO_BOOLEAN(i) ((gboolean) ((GPOINTER_TO_INT(i) == 2) ? TRUE : FALSE)) + #define GBOOLEAN_TO_POINTER(i) (GINT_TO_POINTER ((i) ? 2 : 1)) +-- +2.39.2 + diff -Nru mate-settings-daemon-1.26.0/debian/patches/1002-debounce_multiple_rfkill_events.patch mate-settings-daemon-1.26.0/debian/patches/1002-debounce_multiple_rfkill_events.patch --- mate-settings-daemon-1.26.0/debian/patches/1002-debounce_multiple_rfkill_events.patch 1970-01-01 01:00:00.000000000 +0100 +++ mate-settings-daemon-1.26.0/debian/patches/1002-debounce_multiple_rfkill_events.patch 2024-01-06 08:46:10.000000000 +0100 @@ -0,0 +1,51 @@ +Description: When pressing airplane mode hotkey on many HP laptops, the AT keyboard, +HP Wireless device (HPQ6001) and Intel HID device (INT33D5) can all send +rfkill hotkey event. + +Preferably we should just leave one device and unregister the others. In +practice this is hard to achieve, becuase the presence of a device +doesn't necessarily mean it can generate rfkill hotkey event, we can +only know what devices are capable to generate rfkill event when the +hotkey gets pressed. + +So add a delay between each rfkill event to workaround the issue. This +is also how the other OS handles multiple rfkill events. + +Author: Martin Wimpress <c...@wimpress.io> + +diff --git a/plugins/media-keys/msd-media-keys-manager.c b/plugins/media-keys/msd-media-keys-manager.c +index 4abb4af..facf2ac 100644 +--- a/plugins/media-keys/msd-media-keys-manager.c ++++ b/plugins/media-keys/msd-media-keys-manager.c +@@ -84,6 +84,7 @@ struct _MsdMediaKeysManagerPrivate + + /* RFKill stuff */ + guint rfkill_watch_id; ++ guint64 rfkill_last_time; + GDBusProxy *rfkill_proxy; + GCancellable *rfkill_cancellable; + +@@ -977,6 +978,7 @@ do_rfkill_action (MsdMediaKeysManager *manager, + { + const char *has_mode, *hw_mode, *mode; + gboolean new_state; ++ guint64 current_time; + RfkillData *data; + + dialog_init (manager); +@@ -988,6 +990,15 @@ do_rfkill_action (MsdMediaKeysManager *manager, + if (manager->priv->rfkill_proxy == NULL) + return; + ++ /* Some hardware can generate multiple rfkill events from different ++ * drivers, on a single hotkey press. Only process the first event and ++ * debounce the others */ ++ current_time = g_get_monotonic_time (); ++ if (current_time - manager->priv->rfkill_last_time < G_USEC_PER_SEC) ++ return; ++ ++ manager->priv->rfkill_last_time = current_time; ++ + if (get_rfkill_property (manager, has_mode) == FALSE) + return; + diff -Nru mate-settings-daemon-1.26.0/debian/patches/series mate-settings-daemon-1.26.0/debian/patches/series --- mate-settings-daemon-1.26.0/debian/patches/series 2020-02-13 11:21:31.000000000 +0100 +++ mate-settings-daemon-1.26.0/debian/patches/series 2024-01-06 09:04:30.000000000 +0100 @@ -1 +1,5 @@ 1001_RDA-Don-t-apply-stored-monitor-configuration-if-sess.patch +1002-debounce_multiple_rfkill_events.patch +0003-datetime-fix-memory-leak.patch +0004-mate-settings-manager-fix-memory-leak.patch +0005-Relax-High-DPI-limits.patch