commit: e0e6e12e5e31690ce996a3ae71f4ecfde7cd4565 Author: Jory Pratt <anarchy <AT> gentoo <DOT> org> AuthorDate: Thu Dec 17 03:12:30 2020 +0000 Commit: Jory Pratt <anarchy <AT> gentoo <DOT> org> CommitDate: Thu Dec 17 03:12:30 2020 +0000 URL: https://gitweb.gentoo.org/proj/musl.git/commit/?id=e0e6e12e
net-misc/networkmanager: sync with stable ::gentoo Package-Manager: Portage-3.0.12, Repoman-3.0.2 Signed-off-by: Jory Pratt <anarchy <AT> gentoo.org> net-misc/networkmanager/Manifest | 2 +- .../networkmanager-1.26.4-iwd-fixes-pr640.patch | 169 +++++++++++++++++++++ ...26.0-r1.ebuild => networkmanager-1.26.4.ebuild} | 9 +- 3 files changed, 177 insertions(+), 3 deletions(-) diff --git a/net-misc/networkmanager/Manifest b/net-misc/networkmanager/Manifest index db1ec14..a11544c 100644 --- a/net-misc/networkmanager/Manifest +++ b/net-misc/networkmanager/Manifest @@ -1 +1 @@ -DIST NetworkManager-1.26.0.tar.xz 4956796 BLAKE2B 752b6b47387bac5787d06be7f31cc7387798d0c917977c8e72d6d21538a86c167003901d628e596109aec28816f56fd8cd6bf2b46a8d4918a7e6cf1946586550 SHA512 46035fda8f154497ba4a634e4bf7f0a11f579d0d3f4ffdcea7d47ea0bde6dd0183885491f5453255af7b163ae3db4f0c62c3161913a8c30c35b6475887235b6d +DIST NetworkManager-1.26.4.tar.xz 5051424 BLAKE2B 53a8fd9f9a061b9ac6b117f431e72b1967cfd2fffb539e0dc9335c37a3a59dc33562e81f7887019c3460f403a95b96e8105b1ae41b00c8488ae12a370a3d82ff SHA512 91e865c83a6ae694c9f6aa50e7f938dfa55bfddac32a6dfb73e6edb34b2539068ff9f83bf662bb2d689bd3c66cf53d7fa015930940cf7bda2d4a16561cf02328 diff --git a/net-misc/networkmanager/files/networkmanager-1.26.4-iwd-fixes-pr640.patch b/net-misc/networkmanager/files/networkmanager-1.26.4-iwd-fixes-pr640.patch new file mode 100644 index 0000000..b3b6375 --- /dev/null +++ b/net-misc/networkmanager/files/networkmanager-1.26.4-iwd-fixes-pr640.patch @@ -0,0 +1,169 @@ +Backport of https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/merge_requests/640 + +--- a/src/devices/wifi/nm-device-iwd.c ++++ b/src/devices/wifi/nm-device-iwd.c +@@ -1905,38 +1905,39 @@ schedule_periodic_scan (NMDeviceIwd *self, gboolean initial_scan) + { + NMDeviceIwdPrivate *priv = NM_DEVICE_IWD_GET_PRIVATE (self); + GVariant *value; +- gboolean disconnected; ++ gboolean disconnected = TRUE; + guint interval; + +- if (!priv->can_scan || priv->scan_requested) +- return; +- +- value = g_dbus_proxy_get_cached_property (priv->dbus_station_proxy, "State"); +- disconnected = nm_streq0 (get_variant_state (value), "disconnected"); +- g_variant_unref (value); ++ if (priv->can_scan) { ++ value = g_dbus_proxy_get_cached_property (priv->dbus_station_proxy, "State"); ++ disconnected = nm_streq0 (get_variant_state (value), "disconnected"); ++ g_variant_unref (value); ++ } + + /* Start scan immediately after a disconnect, mode change or +- * device UP, otherwise wait a period dependent on the current +- * state. ++ * device UP, otherwise wait 10 seconds. When connected, update ++ * AP list mainly on UI requests. + * + * (initial_scan && disconnected) override priv->scanning below + * because of an IWD quirk where a device will often be in the + * autoconnect state and scanning at the time of our initial_scan, +- * but our logic will the send it a Disconnect() causeing IWD to ++ * but our logic will then send it a Disconnect() causing IWD to + * exit autoconnect and interrupt the ongoing scan, meaning that + * we still want a new scan ASAP. + */ +- if (initial_scan && disconnected) ++ if (!priv->can_scan || !disconnected || priv->scan_requested || priv->scanning) ++ interval = -1; ++ else if (initial_scan) + interval = 0; +- else if (!priv->periodic_scan_id && !priv->scanning) +- interval = disconnected ? 10 : 20; ++ else if (!priv->periodic_scan_id) ++ interval = 10; + else + return; + + nm_clear_g_source (&priv->periodic_scan_id); +- priv->periodic_scan_id = g_timeout_add_seconds (interval, +- periodic_scan_timeout_cb, +- self); ++ ++ if (interval != (guint) -1) ++ priv->periodic_scan_id = g_timeout_add_seconds (interval, periodic_scan_timeout_cb, self); + } + + static void +@@ -2331,7 +2332,6 @@ powered_changed (NMDeviceIwd *self, gboolean new_powered) + update_aps (self); + } else { + set_can_scan (self, FALSE); +- nm_clear_g_source (&priv->periodic_scan_id); + priv->scanning = FALSE; + priv->scan_requested = FALSE; + priv->can_connect = FALSE; +@@ -2537,17 +2537,7 @@ dispose (GObject *object) + + nm_clear_g_cancellable (&priv->cancellable); + +- nm_clear_g_source (&priv->periodic_scan_id); +- +- cleanup_association_attempt (self, TRUE); +- +- g_clear_object (&priv->dbus_device_proxy); +- g_clear_object (&priv->dbus_station_proxy); +- g_clear_object (&priv->dbus_ap_proxy); +- g_clear_object (&priv->dbus_adhoc_proxy); +- g_clear_object (&priv->dbus_obj); +- +- remove_all_aps (self); ++ nm_device_iwd_set_dbus_object(self, NULL); + + G_OBJECT_CLASS (nm_device_iwd_parent_class)->dispose (object); + +--- a/src/devices/wifi/nm-iwd-manager.c ++++ b/src/devices/wifi/nm-iwd-manager.c +@@ -622,6 +622,38 @@ interface_removed (GDBusObjectManager *object_manager, GDBusObject *object, + } + } + ++static void ++object_added(GDBusObjectManager *object_manager, GDBusObject *object, gpointer user_data) ++{ ++ GList *interfaces, *iter; ++ ++ interfaces = g_dbus_object_get_interfaces(object); ++ ++ for (iter = interfaces; iter; iter = iter->next) { ++ GDBusInterface *interface = G_DBUS_INTERFACE(iter->data); ++ ++ interface_added(NULL, object, interface, user_data); ++ } ++ ++ g_list_free_full(interfaces, g_object_unref); ++} ++ ++static void ++object_removed(GDBusObjectManager *object_manager, GDBusObject *object, gpointer user_data) ++{ ++ GList *interfaces, *iter; ++ ++ interfaces = g_dbus_object_get_interfaces(object); ++ ++ for (iter = interfaces; iter; iter = iter->next) { ++ GDBusInterface *interface = G_DBUS_INTERFACE(iter->data); ++ ++ interface_removed(NULL, object, interface, user_data); ++ } ++ ++ g_list_free_full(interfaces, g_object_unref); ++} ++ + static void + connection_removed (NMSettings *settings, + NMSettingsConnection *sett_conn, +@@ -682,22 +714,6 @@ _om_has_name_owner (GDBusObjectManager *object_manager) + return !!name_owner; + } + +-static void +-object_added (NMIwdManager *self, GDBusObject *object) +-{ +- GList *interfaces, *iter; +- +- interfaces = g_dbus_object_get_interfaces (object); +- +- for (iter = interfaces; iter; iter = iter->next) { +- GDBusInterface *interface = G_DBUS_INTERFACE (iter->data); +- +- interface_added (NULL, object, interface, self); +- } +- +- g_list_free_full (interfaces, g_object_unref); +-} +- + static void + release_object_manager (NMIwdManager *self) + { +@@ -836,12 +852,16 @@ got_object_manager (GObject *object, GAsyncResult *result, gpointer user_data) + G_CALLBACK (interface_added), self); + g_signal_connect (priv->object_manager, "interface-removed", + G_CALLBACK (interface_removed), self); ++ g_signal_connect (priv->object_manager, "object-added", ++ G_CALLBACK(object_added), self); ++ g_signal_connect (priv->object_manager, "object-removed", ++ G_CALLBACK(object_removed), self); + + g_hash_table_remove_all (priv->known_networks); + + objects = g_dbus_object_manager_get_objects (object_manager); + for (iter = objects; iter; iter = iter->next) +- object_added (self, G_DBUS_OBJECT (iter->data)); ++ object_added (NULL, G_DBUS_OBJECT(iter->data), self); + + g_list_free_full (objects, g_object_unref); + diff --git a/net-misc/networkmanager/networkmanager-1.26.0-r1.ebuild b/net-misc/networkmanager/networkmanager-1.26.4.ebuild similarity index 98% rename from net-misc/networkmanager/networkmanager-1.26.0-r1.ebuild rename to net-misc/networkmanager/networkmanager-1.26.4.ebuild index 243c99d..ff6099b 100644 --- a/net-misc/networkmanager/networkmanager-1.26.0-r1.ebuild +++ b/net-misc/networkmanager/networkmanager-1.26.4.ebuild @@ -27,7 +27,7 @@ REQUIRED_USE=" ?? ( elogind systemd ) " -KEYWORDS="amd64 arm arm64 ppc ppc64 x86" +KEYWORDS="amd64 arm arm64 ~ppc ~ppc64 x86" # gobject-introspection-0.10.3 is needed due to gnome bug 642300 # wpa_supplicant-0.7.3-r3 is needed due to bug 359271 @@ -100,7 +100,7 @@ DEPEND="${COMMON_DEPEND} ) " -PATCHES=( +PATCHES=( "${FILESDIR}"/${PN}-1.26.4-iwd-fixes-pr640.patch # Required to build on musl "${FILESDIR}"/musl-basic.patch "${FILESDIR}"/musl-network-support.patch @@ -166,6 +166,11 @@ src_prepare() { use vala && vala_src_prepare gnome2_src_prepare + + sed -i \ + -e 's#/usr/bin/sed#/bin/sed#' \ + data/84-nm-drivers.rules \ + || die } multilib_src_configure() {