diff -Nru gnome-settings-daemon-42.1/debian/changelog gnome-settings-daemon-42.1/debian/changelog --- gnome-settings-daemon-42.1/debian/changelog 2022-04-29 22:26:51.000000000 +0000 +++ gnome-settings-daemon-42.1/debian/changelog 2023-03-22 09:59:52.000000000 +0000 @@ -1,3 +1,11 @@ +gnome-settings-daemon (42.1-1ubuntu2.2) jammy; urgency=medium + + * debian/patches/gitlab_nmsignal_deprecated.patch: + - cherrypick a change proposed upstream to fix airplane mode on some + Lenovo laptops (lp: #2011770) + + -- Sebastien Bacher Wed, 22 Mar 2023 10:59:52 +0100 + gnome-settings-daemon (42.1-1ubuntu2.1) jammy; urgency=medium * d/p/u/xsettings_Remove_direct_mapping_from_gtk-im-module_to_G.patch: diff -Nru gnome-settings-daemon-42.1/debian/gbp.conf gnome-settings-daemon-42.1/debian/gbp.conf --- gnome-settings-daemon-42.1/debian/gbp.conf 2022-04-29 21:53:04.000000000 +0000 +++ gnome-settings-daemon-42.1/debian/gbp.conf 2023-03-22 09:59:52.000000000 +0000 @@ -1,6 +1,6 @@ [DEFAULT] pristine-tar = True -debian-branch = ubuntu/master +debian-branch = ubuntu/jammy upstream-branch = upstream/latest debian-tag=ubuntu/%(version)s diff -Nru gnome-settings-daemon-42.1/debian/patches/gitlab_nmsignal_deprecated.patch gnome-settings-daemon-42.1/debian/patches/gitlab_nmsignal_deprecated.patch --- gnome-settings-daemon-42.1/debian/patches/gitlab_nmsignal_deprecated.patch 1970-01-01 00:00:00.000000000 +0000 +++ gnome-settings-daemon-42.1/debian/patches/gitlab_nmsignal_deprecated.patch 2023-03-22 09:59:52.000000000 +0000 @@ -0,0 +1,81 @@ +From 39b9e8bf5c1c20b284d99c492bf4c11cec5d1a1c Mon Sep 17 00:00:00 2001 +From: Maxim Mikityanskiy +Date: Sat, 1 Oct 2022 14:08:45 +0300 +Subject: [PATCH] rfkill: Monitor WwanEnabled property changes properly + +g-signal is not fired on property changes, so nm_signal is never called, +and all changes of NetworkManager's WwanEnabled property are missed. +That leads to an inability to disable the airplane mode on laptops with +WWAN after the airplane mode was once enabled by button. + +Fix this by subscribing to g-properties-changed to actually listen to +the updates of WwanEnabled. It also makes the code simpler. + +The bug was caused by a breaking change in NetworkManager [1] when it +deprecated the custom signal in favor of the standard PropertiesChanged +on org.freedesktop.DBus.Properties, and gnome-settings-daemon still used +the old one. The standard one is supported since NetworkManager 1.2.0, +as noted here [2]. + +[1]: https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/merge_requests/853 +[2]: https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/commit/6fb917178aa19c61e909957f5146aa4565e0cb2f + +Fixes: d74b6de142a2 ("rfkill: watch and set NetworkManager wwan-enabled") +--- + plugins/rfkill/gsd-rfkill-manager.c | 29 +++++++++++------------------ + 1 file changed, 11 insertions(+), 18 deletions(-) + +diff --git a/plugins/rfkill/gsd-rfkill-manager.c b/plugins/rfkill/gsd-rfkill-manager.c +index 5c8b6906..ed684466 100644 +--- a/plugins/rfkill/gsd-rfkill-manager.c ++++ b/plugins/rfkill/gsd-rfkill-manager.c +@@ -679,27 +679,20 @@ sync_wwan_enabled (GsdRfkillManager *manager) + } + + static void +-nm_signal (GDBusProxy *proxy, +- char *sender_name, +- char *signal_name, +- GVariant *parameters, +- gpointer user_data) ++nm_properties_changed (GDBusProxy *proxy, ++ GVariant *changed, ++ gchar **invalidated, ++ gpointer user_data) + { + GsdRfkillManager *manager = user_data; +- GVariant *changed; + GVariant *property; + +- if (g_strcmp0 (signal_name, "PropertiesChanged") == 0) { +- changed = g_variant_get_child_value (parameters, 0); +- property = g_variant_lookup_value (changed, "WwanEnabled", G_VARIANT_TYPE ("b")); +- g_dbus_proxy_set_cached_property (proxy, "WwanEnabled", property); ++ property = g_variant_lookup_value (changed, "WwanEnabled", G_VARIANT_TYPE ("b")); ++ g_dbus_proxy_set_cached_property (proxy, "WwanEnabled", property); + +- if (property != NULL) { +- sync_wwan_enabled (manager); +- g_variant_unref (property); +- } +- +- g_variant_unref (changed); ++ if (property != NULL) { ++ sync_wwan_enabled (manager); ++ g_variant_unref (property); + } + } + +@@ -726,8 +719,8 @@ on_nm_proxy_gotten (GObject *source, + + manager->nm_client = proxy; + +- g_signal_connect (manager->nm_client, "g-signal", +- G_CALLBACK (nm_signal), manager); ++ g_signal_connect (manager->nm_client, "g-properties-changed", ++ G_CALLBACK (nm_properties_changed), manager); + sync_wwan_enabled (manager); + + out: +-- +GitLab diff -Nru gnome-settings-daemon-42.1/debian/patches/series gnome-settings-daemon-42.1/debian/patches/series --- gnome-settings-daemon-42.1/debian/patches/series 2022-04-29 22:11:42.000000000 +0000 +++ gnome-settings-daemon-42.1/debian/patches/series 2023-03-22 09:59:52.000000000 +0000 @@ -18,3 +18,4 @@ ubuntu/Revert-media-keys-fix-gnome-settings-desktop-file.patch ubuntu/teach-gsd-about-the-gnome-calculator-snap-.desktop-name.patch ubuntu/xsettings_Remove_direct_mapping_from_gtk-im-module_to_G.patch +gitlab_nmsignal_deprecated.patch