From 48c1f984970b7998fc914887b5bbec950afbb6f7 Mon Sep 17 00:00:00 2001 From: Lubomir Rintel Date: Thu, 5 Sep 2019 14:57:36 +0200 Subject: [PATCH] Update to 1.20.2 release - Bring back the hard wpa_supplicant dependency (rh #1743585) --- .gitignore | 1 + ...upport-per-interface-and-avoid-enabl.patch | 125 ------------------ NetworkManager.spec | 19 +-- sources | 2 +- 4 files changed, 9 insertions(+), 138 deletions(-) delete mode 100644 0001-wifi-detect-FT-support-per-interface-and-avoid-enabl.patch diff --git a/.gitignore b/.gitignore index e9039f4..dfcbdb3 100644 --- a/.gitignore +++ b/.gitignore @@ -360,3 +360,4 @@ network-manager-applet-0.8.1.tar.bz2 /NetworkManager-1.19.5.tar.xz /NetworkManager-1.19.90.tar.xz /NetworkManager-1.20.0.tar.xz +/NetworkManager-1.20.2.tar.xz diff --git a/0001-wifi-detect-FT-support-per-interface-and-avoid-enabl.patch b/0001-wifi-detect-FT-support-per-interface-and-avoid-enabl.patch deleted file mode 100644 index 0c9aeb8..0000000 --- a/0001-wifi-detect-FT-support-per-interface-and-avoid-enabl.patch +++ /dev/null @@ -1,125 +0,0 @@ -From b82f2d97720bf19e13bdcca5c18ccf5803da19a7 Mon Sep 17 00:00:00 2001 -From: Thomas Haller -Date: Tue, 20 Aug 2019 15:50:32 +0200 -Subject: [PATCH] wifi: detect FT support per interface and avoid enabling it - -Previously we only cared whether supplicant is build with support for -FT. In that case we would pass FT-PSK to supplicant, like - - Config: added 'key_mgmt' value 'WPA-PSK WPA-PSK-SHA256 FT-PSK' - -Supplicant would then always try FT with preference, regardless whether -the interface/driver support it. That results in a failure to associate, if -the driver does not support it. - - NetworkManager[1356]: [1566296144.9940] Config: added 'key_mgmt' value 'WPA-PSK WPA-PSK-SHA256 FT-PSK' - ... - wpa_supplicant[1348]: wlan0: WPA: AP key_mgmt 0x42 network profile key_mgmt 0x142; available key_mgmt 0x42 - wpa_supplicant[1348]: wlan0: WPA: using KEY_MGMT FT/PSK - ... - wpa_supplicant[1348]: * akm=0xfac04 - ... - kernel: ERROR @wl_set_key_mgmt : - kernel: invalid cipher group (1027076) - -Since we pass a list of acceptable "key_mgmt" options to supplicant, -FT-PSK should not be used when supplicant knows it's not supported. -That is a supplicant bug. - -Regardless, work around it by checking the per-interface capability, and -avoid it if support is apparently not present. - -(cherry picked from commit 2f8a4e90f0fd0f900996e3081d49f8799bba4c6f) ---- - src/supplicant/nm-supplicant-interface.c | 35 ++++++++++++++++++------ - 1 file changed, 26 insertions(+), 9 deletions(-) - -diff --git a/src/supplicant/nm-supplicant-interface.c b/src/supplicant/nm-supplicant-interface.c -index 079afca3b5..a54b770c35 100644 ---- a/src/supplicant/nm-supplicant-interface.c -+++ b/src/supplicant/nm-supplicant-interface.c -@@ -135,7 +135,8 @@ typedef struct { - NMSupplicantFeature p2p_support; - NMSupplicantFeature mesh_support; - NMSupplicantFeature wfd_support; -- NMSupplicantFeature ft_support; -+ NMSupplicantFeature ft_support_global; -+ NMSupplicantFeature ft_support_per_iface; - NMSupplicantFeature sha384_support; - guint32 max_scan_ssids; - guint32 ready_count; -@@ -609,14 +610,25 @@ static void - parse_capabilities (NMSupplicantInterface *self, GVariant *capabilities) - { - NMSupplicantInterfacePrivate *priv = NM_SUPPLICANT_INTERFACE_GET_PRIVATE (self); -- gboolean have_active = FALSE, have_p2p = FALSE, have_ssid = FALSE; -+ gboolean have_active = FALSE; -+ gboolean have_ssid = FALSE; -+ gboolean have_p2p = FALSE; -+ gboolean have_ft = FALSE; - gint32 max_scan_ssids = -1; - const char **array; - - g_return_if_fail (capabilities && g_variant_is_of_type (capabilities, G_VARIANT_TYPE_VARDICT)); - -- if ( g_variant_lookup (capabilities, "Modes", "^a&s", &array) -- && array) { -+ if (g_variant_lookup (capabilities, "KeyMgmt", "^a&s", &array)) { -+ have_ft = g_strv_contains (array, "wpa-ft-psk"); -+ g_free (array); -+ } -+ -+ priv->ft_support_per_iface = have_ft -+ ? NM_SUPPLICANT_FEATURE_YES -+ : NM_SUPPLICANT_FEATURE_NO; -+ -+ if (g_variant_lookup (capabilities, "Modes", "^a&s", &array)) { - if (g_strv_contains (array, "p2p")) - have_p2p = TRUE; - g_free (array); -@@ -627,8 +639,7 @@ parse_capabilities (NMSupplicantInterface *self, GVariant *capabilities) - _notify (self, PROP_P2P_AVAILABLE); - } - -- if ( g_variant_lookup (capabilities, "Scan", "^a&s", &array) -- && array) { -+ if (g_variant_lookup (capabilities, "Scan", "^a&s", &array)) { - if (g_strv_contains (array, "active")) - have_active = TRUE; - if (g_strv_contains (array, "ssid")) -@@ -807,7 +818,13 @@ nm_supplicant_interface_get_wfd_support (NMSupplicantInterface *self) - NMSupplicantFeature - nm_supplicant_interface_get_ft_support (NMSupplicantInterface *self) - { -- return NM_SUPPLICANT_INTERFACE_GET_PRIVATE (self)->ft_support; -+ NMSupplicantInterfacePrivate *priv = NM_SUPPLICANT_INTERFACE_GET_PRIVATE (self); -+ -+ if (priv->ft_support_global == NM_SUPPLICANT_FEATURE_NO) -+ return NM_SUPPLICANT_FEATURE_NO; -+ if (priv->ft_support_per_iface != NM_SUPPLICANT_FEATURE_UNKNOWN) -+ return priv->ft_support_per_iface; -+ return priv->ft_support_global; - } - - NMSupplicantFeature -@@ -889,7 +906,7 @@ nm_supplicant_interface_set_ft_support (NMSupplicantInterface *self, - { - NMSupplicantInterfacePrivate *priv = NM_SUPPLICANT_INTERFACE_GET_PRIVATE (self); - -- priv->ft_support = ft_support; -+ priv->ft_support_global = ft_support; - } - - void -@@ -2801,7 +2818,7 @@ set_property (GObject *object, - break; - case PROP_FT_SUPPORT: - /* construct-only */ -- priv->ft_support = g_value_get_int (value); -+ priv->ft_support_global = g_value_get_int (value); - break; - case PROP_SHA384_SUPPORT: - /* construct-only */ --- -2.21.0 - diff --git a/NetworkManager.spec b/NetworkManager.spec index d8d2caa..060491f 100644 --- a/NetworkManager.spec +++ b/NetworkManager.spec @@ -7,9 +7,9 @@ %global glib2_version %(pkg-config --modversion glib-2.0 2>/dev/null || echo bad) %global epoch_version 1 -%global rpm_version 1.20.0 -%global real_version 1.20.0 -%global release_version 3 +%global rpm_version 1.20.2 +%global real_version 1.20.2 +%global release_version 1 %global snapshot %{nil} %global git_sha %{nil} @@ -135,7 +135,6 @@ Source5: 20-connectivity-redhat.conf Source6: 70-nm-connectivity.conf #Patch1: 0001-some.patch -Patch1: 0001-wifi-detect-FT-support-per-interface-and-avoid-enabl.patch Requires(post): systemd Requires(post): /usr/sbin/update-alternatives @@ -314,15 +313,7 @@ This package contains NetworkManager support for team devices. Summary: Wifi plugin for NetworkManager Group: System Environment/Base Requires: %{name}%{?_isa} = %{epoch}:%{version}-%{release} - -%if %{with iwd} && (0%{?fedora} > 24 || 0%{?rhel} > 7) -Requires: (wpa_supplicant >= %{wpa_supplicant_version} or iwd) -%else -# Just require wpa_supplicant on platforms that don't support boolean -# dependencies even though the plugin supports both supplicant and -# iwd backend. Requires: wpa_supplicant >= %{wpa_supplicant_version} -%endif Obsoletes: NetworkManager < %{obsoletes_device_plugins} @@ -977,6 +968,10 @@ fi %changelog +* Thu Sep 05 2019 Lubomir Rintel - 1:1.20.2-1 +- Update to 1.20.2 release +- Bring back the hard wpa_supplicant dependency (rh #1743585) + * Fri Aug 23 2019 Lubomir Rintel - 1:1.20.0-3 - install our dispatcher scripts into /usr/lib/NetworkManager - wifi: detect FT support per interface and avoid enabling it diff --git a/sources b/sources index 2dc7288..e9abd51 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (NetworkManager-1.20.0.tar.xz) = 825c56a7530d813ba7ea2ec57034def560f4b0fb65a09dc70cd94dc897e2aabde11f18c6c4843da9c520531683e963037ce42270a6ffa5c7c5e9502bb80bdf1b +SHA512 (NetworkManager-1.20.2.tar.xz) = 5070af29e2a6db0d58b0b1233f8fd40aca0eca68b879daaa416d7cd7b882741cc9f4746e295bdf99eb63798225bc259321cac994f050a08a00dc1c59170a16fe