Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package gnome-settings-daemon for openSUSE:Factory checked in at 2025-04-03 18:40:45 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/gnome-settings-daemon (Old) and /work/SRC/openSUSE:Factory/.gnome-settings-daemon.new.1907 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "gnome-settings-daemon" Thu Apr 3 18:40:45 2025 rev:201 rq:1266390 version:48.0+3 Changes: -------- --- /work/SRC/openSUSE:Factory/gnome-settings-daemon/gnome-settings-daemon.changes 2025-03-20 19:24:10.547613559 +0100 +++ /work/SRC/openSUSE:Factory/.gnome-settings-daemon.new.1907/gnome-settings-daemon.changes 2025-04-03 18:42:59.715703947 +0200 @@ -1,0 +2,11 @@ +Tue Apr 01 09:29:02 UTC 2025 - Bjørn Lie <bjorn....@gmail.com> + +- Update to version 48.0+3: + * Update Occitan translation + * Revert "ci: Point to ci-templates fork with cbuild" + * Updated translations. +- Add patches to fix brightness control: + * 411.patch + * 413.patch + +------------------------------------------------------------------- Old: ---- gnome-settings-daemon-48.0.obscpio New: ---- 411.patch 413.patch _servicedata gnome-settings-daemon-48.0+3.obscpio BETA DEBUG BEGIN: New:- Add patches to fix brightness control: * 411.patch * 413.patch New: * 411.patch * 413.patch BETA DEBUG END: ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ gnome-settings-daemon.spec ++++++ --- /var/tmp/diff_new_pack.baj6e0/_old 2025-04-03 18:43:02.999841855 +0200 +++ /var/tmp/diff_new_pack.baj6e0/_new 2025-04-03 18:43:03.003842023 +0200 @@ -30,7 +30,7 @@ %define base_ver 48 Name: gnome-settings-daemon -Version: 48.0 +Version: 48.0+3 Release: 0 Summary: Settings daemon for the GNOME desktop License: GPL-2.0-or-later AND LGPL-2.1-only @@ -46,6 +46,10 @@ Patch4: 0001-usb-protection-Treat-hubs-and-HID-devices-like-any-o.patch # PATCH-FIX-UPSTREAM gnome-settings-daemon-fix-stop-service.patch bsc#1233824 glgo#GNOME/gnome-settings-daemon!395-- sharing: Stop systemd service waiting when daemon is stopping Patch5: gnome-settings-daemon-fix-stop-service.patch +# PATCH-FIX-UPSTREAM 411.patch -- power: Ensure backlight iface signal gets emited on startup +Patch6: https://gitlab.gnome.org/GNOME/gnome-settings-daemon/-/merge_requests/411.patch +# PATCH-FIX-UPSTREAM 413.patch -- power: Avoid using uninitialized value when restoring brightness +Patch7: https://gitlab.gnome.org/GNOME/gnome-settings-daemon/-/merge_requests/413.patch ## SLE/LEAP-only patches start at 1000 # PATCH-FEATURE-OPENSUSE gnome-settings-daemon-notify-idle-resumed.patch bnc#439018 bnc#708182 bgo#575467 h...@suse.com -- notify user about auto suspend when returning from sleep ++++++ 411.patch ++++++ ++++ 1519 lines (skipped) ++++++ 413.patch ++++++ >From 216847a196bd407d6dda63053a28cb327d700188 Mon Sep 17 00:00:00 2001 From: Sebastian Keller <skel...@gnome.org> Date: Mon, 31 Mar 2025 14:05:18 +0200 Subject: [PATCH] power: Avoid using uninitialized value when restoring brightness On laptops with an external monitor that don't suspend when the lid is closed, display_backlight_dim() would get called while builtin_display_disabled is true which causes gsd_backlight_get_brightness() to return early without setting its out parameter. That out parameter however is stored by display_backlight_dim() as pre_dim_brightness to restore when the lid is opened again. When this happens, the brightness value is most likely out of range of the min/max brightness percentage and thus PERCENTAGE_TO_ABS will return -1 which then gets clamped to the minimum brightness value in gsd_backlight_set_brightness_val_async(). Fix this separating the target brightness getter from gsd_backlight_get_brightness(), because the latter was only ever used to access one or the other, but never both values at the same time and there is no shared code. This new getter will now also return -1 for the target brightness when builtin_display_disabled is true. This will cause display_backlight_dim() to return before attempting to change the brightness and storing the previous brightness. Closes: https://gitlab.gnome.org/GNOME/gnome-settings-daemon/-/issues/737 --- plugins/power/gsd-backlight.c | 32 ++++++++++++++++++++++++------- plugins/power/gsd-backlight.h | 5 +++-- plugins/power/gsd-power-manager.c | 8 ++++---- 3 files changed, 32 insertions(+), 13 deletions(-) diff --git a/plugins/power/gsd-backlight.c b/plugins/power/gsd-backlight.c index 84b339802..b018e519f 100644 --- a/plugins/power/gsd-backlight.c +++ b/plugins/power/gsd-backlight.c @@ -441,7 +441,6 @@ gsd_backlight_mutter_find_monitor (GsdBacklight *backlight, /** * gsd_backlight_get_brightness * @backlight: a #GsdBacklight - * @target: Output parameter for the value the target value of pending set operations. * * The backlight value returns the last known stable value. This value will * only update once all pending operations to set a new value have finished. @@ -456,17 +455,36 @@ gsd_backlight_mutter_find_monitor (GsdBacklight *backlight, * Returns: The last stable backlight value or -1 if the internal display is disabled. **/ gint -gsd_backlight_get_brightness (GsdBacklight *backlight, gint *target) +gsd_backlight_get_brightness (GsdBacklight *backlight) { if (backlight->builtin_display_disabled) return -1; - if (target) - *target = ABS_TO_PERCENTAGE (backlight->brightness_min, backlight->brightness_max, backlight->brightness_target); - return ABS_TO_PERCENTAGE (backlight->brightness_min, backlight->brightness_max, backlight->brightness_val); } +/** + * gsd_backlight_get_target_brightness + * @backlight: a #GsdBacklight + * + * This returns the target value of the pending operations, which might differ + * from the last known stable value, but is identical to the last value set in + * the async setter. + * + * If the internal display is detected as disabled, then the function will + * instead return -1. + * + * Returns: The current target backlight value or -1 if the internal display is disabled. + **/ +gint +gsd_backlight_get_target_brightness (GsdBacklight *backlight) +{ + if (backlight->builtin_display_disabled) + return -1; + + return ABS_TO_PERCENTAGE (backlight->brightness_min, backlight->brightness_max, backlight->brightness_target); +} + static void gsd_backlight_set_brightness_val_async (GsdBacklight *backlight, int value, @@ -547,7 +565,7 @@ gsd_backlight_set_brightness_val_async (GsdBacklight *backlight, backlight->brightness_val = value; g_object_notify_by_pspec (G_OBJECT (backlight), props[PROP_BRIGHTNESS]); - g_task_return_int (task, gsd_backlight_get_brightness (backlight, NULL)); + g_task_return_int (task, gsd_backlight_get_brightness (backlight)); g_object_unref (task); return; @@ -775,7 +793,7 @@ gsd_backlight_get_property (GObject *object, switch (prop_id) { case PROP_BRIGHTNESS: - g_value_set_int (value, gsd_backlight_get_brightness (backlight, NULL)); + g_value_set_int (value, gsd_backlight_get_brightness (backlight)); break; default: diff --git a/plugins/power/gsd-backlight.h b/plugins/power/gsd-backlight.h index 56216b62f..9bef62bf7 100644 --- a/plugins/power/gsd-backlight.h +++ b/plugins/power/gsd-backlight.h @@ -29,8 +29,9 @@ G_BEGIN_DECLS #define GSD_TYPE_BACKLIGHT gsd_backlight_get_type () G_DECLARE_FINAL_TYPE (GsdBacklight, gsd_backlight, GSD, BACKLIGHT, GObject); -gint gsd_backlight_get_brightness (GsdBacklight *backlight, - gint *target); +gint gsd_backlight_get_brightness (GsdBacklight *backlight); + +gint gsd_backlight_get_target_brightness (GsdBacklight *backlight); void gsd_backlight_set_brightness_async (GsdBacklight *backlight, gint percentage, diff --git a/plugins/power/gsd-power-manager.c b/plugins/power/gsd-power-manager.c index 436364a47..d1efee969 100644 --- a/plugins/power/gsd-power-manager.c +++ b/plugins/power/gsd-power-manager.c @@ -1640,7 +1640,7 @@ static void backlight_notify_brightness_cb (GsdPowerManager *manager, GParamSpec *pspec, GsdBacklight *backlight) { backlight_iface_emit_changed (manager, GSD_POWER_DBUS_INTERFACE_SCREEN, - gsd_backlight_get_brightness (backlight, NULL), NULL); + gsd_backlight_get_brightness (backlight), NULL); } static void @@ -1654,7 +1654,7 @@ display_backlight_dim (GsdPowerManager *manager, /* Fetch the current target brightness (not the actual display brightness) * and return if it is already lower than the idle percentage. */ - gsd_backlight_get_brightness (manager->backlight, &brightness); + brightness = gsd_backlight_get_target_brightness (manager->backlight); if (brightness < idle_percentage) return; @@ -3120,7 +3120,7 @@ gsd_power_manager_startup (GApplication *app) (likely, considering that to get here we need a reply from gnome-shell) */ if (manager->backlight) { - manager->ambient_percentage_old = gsd_backlight_get_brightness (manager->backlight, NULL); + manager->ambient_percentage_old = gsd_backlight_get_brightness (manager->backlight); backlight_iface_emit_changed (manager, GSD_POWER_DBUS_INTERFACE_SCREEN, manager->ambient_percentage_old, NULL); } else { @@ -3404,7 +3404,7 @@ handle_get_property_other (GsdPowerManager *manager, } if (manager->backlight) - value = gsd_backlight_get_brightness (manager->backlight, NULL); + value = gsd_backlight_get_brightness (manager->backlight); else value = -1; -- GitLab ++++++ _service ++++++ --- /var/tmp/diff_new_pack.baj6e0/_old 2025-04-03 18:43:03.075845046 +0200 +++ /var/tmp/diff_new_pack.baj6e0/_new 2025-04-03 18:43:03.079845214 +0200 @@ -3,11 +3,11 @@ <service name="obs_scm" mode="manual"> <param name="scm">git</param> <param name="url">https://gitlab.gnome.org/GNOME/gnome-settings-daemon.git</param> - <param name="revision">48.0</param> + <param name="revision">9e342142daf74e19fdc736beed19afd353c28016</param> <param name="versionformat">@PARENT_TAG@+@TAG_OFFSET@</param> <param name="versionrewrite-pattern">(.*)\+0</param> <param name="versionrewrite-replacement">\1</param> - <param name="changesgenerate">disable</param> + <param name="changesgenerate">enable</param> </service> <service name="tar" mode="buildtime"/> <service name="recompress" mode="buildtime"> ++++++ _servicedata ++++++ <servicedata> <service name="tar_scm"> <param name="url">https://gitlab.gnome.org/GNOME/gnome-settings-daemon.git</param> <param name="changesrevision">9e342142daf74e19fdc736beed19afd353c28016</param></service></servicedata> (No newline at EOF) ++++++ gnome-settings-daemon-48.0.obscpio -> gnome-settings-daemon-48.0+3.obscpio ++++++ ++++ 4454 lines of diff (skipped) ++++++ gnome-settings-daemon.obsinfo ++++++ --- /var/tmp/diff_new_pack.baj6e0/_old 2025-04-03 18:43:03.659869571 +0200 +++ /var/tmp/diff_new_pack.baj6e0/_new 2025-04-03 18:43:03.663869739 +0200 @@ -1,5 +1,5 @@ name: gnome-settings-daemon -version: 48.0 -mtime: 1742216900 -commit: 02fd515dd202051e096d76f021b5134a198d6230 +version: 48.0+3 +mtime: 1743239595 +commit: 9e342142daf74e19fdc736beed19afd353c28016