about summary refs log tree commit diff
path: root/debian
diff options
context:
space:
mode:
Diffstat (limited to 'debian')
-rw-r--r--debian/changelog74
-rw-r--r--debian/control7
-rw-r--r--debian/libnm0.symbols26
-rw-r--r--debian/patches/Force-online-state-with-unmanaged-devices.patch24
-rw-r--r--debian/patches/Import-some-missing-WoWLAN-patches.patch355
-rw-r--r--debian/patches/Provide-access-to-some-of-NM-s-interfaces-to-whoopsie.patch8
-rw-r--r--debian/patches/Update-dnsmasq-parameters.patch24
-rw-r--r--debian/patches/dns-manager-don-t-merge-split-DNS-search-domains.patch88
-rw-r--r--debian/patches/gitlab_connection_ready.patch115
-rw-r--r--debian/patches/series1
-rw-r--r--debian/patches/systemd-basic-missing_syscall-fix-syscall-numbers-for-x32.patch124
-rw-r--r--debian/patches/ubuntu_revert_systemd.patch12
-rwxr-xr-xdebian/rules1
13 files changed, 137 insertions, 722 deletions
diff --git a/debian/changelog b/debian/changelog
index f117c282..abdd1a2f 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,77 @@
+network-manager (1.30.0-1ubuntu1) UNRELEASED; urgency=medium
+
+  * Resynchronize on Debian, remaining changes:
+    - Use systemd-resolved instead of dnsmasq
+    - debian/control:
+      + Depend on isc-dhcp-client instead of recommends
+      + Recommend network-manager-pptp
+      + Suggest avahi-autoipd for IPv4LL support
+    - debian/rules, debian/network-manager.postinst:
+      + Don't restart NetworkManager on upgrade but recommend restarting
+        the computer
+    - debian/rules, debian/network-manager.postinst:
+      + Don't install sysvinit scripts or migrate from sysvinit
+    - debian/network-manager.postinst:
+      + Don't add the netdev group.
+      + drop in an empty override file for NetworkManager to manage all
+        devices for upgrade from any version, as long as there is no
+        netplan configuration yet.
+    - debian/default-wifi-powersave-on.conf, debian/rules:
+      + Install a config file to enable WiFi powersave
+    - Enable build tests
+    - Add autopkgtests
+    - debian/source_network-manager.py, debian/network-manager.install,
+      debian/network-manager.links: Add apport hook
+    - Add network-manager-config-connectivity-ubuntu package
+    - NetworkManager.conf: disable MAC randomization feature. There is no
+      easy way for desktop users to disable this feature yet. And there are
+      reports that it doesn't work well with some systems.
+    - Update Vcs links to point to Ubuntu branch
+    - Add patches. See patch descriptions for more details:
+      + Provide-access-to-some-of-NM-s-interfaces-to-whoopsie.patch
+      + Update-dnsmasq-parameters.patch
+      + Disable-general-with-expect.patch
+      + libnm-Check-self-still-NMManager-or-not.patch
+      + dns-manager-don-t-merge-split-DNS-search-domains.patch (but disabled)
+      + Read-system-connections-from-run.patch
+    - debian/tests/urfkill-integration - don't stop/start network manager
+    - debian/patches/ubuntu_revert_systemd.patch:
+      + temporarly revert an upstream commit that made udev enabled under lxc,
+        the new systemd doesn't work there (lp: #1914062)
+
+ -- Sebastien Bacher <seb128@ubuntu.com>  Thu, 25 Feb 2021 11:37:02 +0100
+
+network-manager (1.30.0-1) unstable; urgency=medium
+
+  * New upstream version 1.30.0
+  * Rebase patches
+
+ -- Michael Biebl <biebl@debian.org>  Thu, 18 Feb 2021 19:25:36 +0100
+
+network-manager (1.29.90-2) unstable; urgency=medium
+
+  * Add iproute2 to Build-Depends.
+    Required by the test suite. Mark as <!nocheck> accordingly.
+  * Cherry-pick fixes from upstream nm-1-30 branch
+    - Fixes assertion when running the python-dbusmock test suite
+      (Closes: #982613)
+    - Replaces our custom polkit-agent-helper-1 patch
+
+ -- Michael Biebl <biebl@debian.org>  Tue, 16 Feb 2021 22:54:54 +0100
+
+network-manager (1.29.90-1) unstable; urgency=medium
+
+  [ Michael Biebl ]
+  * New upstream version 1.29.90 (1.30 rc1)
+  * Rebase patches
+  * Update symbols file for libnm0
+  * Fix polkit-agent-helper-1 path
+
+  [ Helmut Grohne ]
+  * Drop unused Build-Depends (Closes: #979378)
+
+ -- Michael Biebl <biebl@debian.org>  Thu, 11 Feb 2021 20:09:16 +0100
+
 network-manager (1.28.0-2ubuntu2) hirsute; urgency=medium
 
   * debian/patches/ubuntu_revert_systemd.patch:
diff --git a/debian/control b/debian/control
index 60b45daa..06e05a33 100644
--- a/debian/control
+++ b/debian/control
@@ -12,8 +12,6 @@ Build-Depends: debhelper-compat (= 13),
                intltool,
                libglib2.0-dev (>= 2.32),
                ppp-dev (>= 2.4.7-1+1),
-               libpolkit-gobject-1-dev,
-               libpolkit-agent-1-dev (>= 0.97),
                libselinux1-dev,
                libaudit-dev,
                libgnutls28-dev (>= 2.12),
@@ -27,8 +25,6 @@ Build-Depends: debhelper-compat (= 13),
                libpsl-dev (>= 0.1),
                libcurl4-gnutls-dev (>= 7.24.0),
                gtk-doc-tools,
-               perl,
-               libyaml-perl,
                libglib2.0-doc,
                libmm-glib-dev (>=  0.7.991),
                libndp-dev,
@@ -39,7 +35,8 @@ Build-Depends: debhelper-compat (= 13),
                libbluetooth-dev (>= 5),
                valac (>= 0.17.1.24),
                dbus <!nocheck>,
-               python3-dbus <!nocheck>
+               python3-dbus <!nocheck>,
+               iproute2 <!nocheck>,
 Standards-Version: 4.5.1
 Rules-Requires-Root: no
 XS-Debian-Vcs-Git: https://salsa.debian.org/utopia-team/network-manager.git
diff --git a/debian/libnm0.symbols b/debian/libnm0.symbols
index 3073b2c8..f59387a8 100644
--- a/debian/libnm0.symbols
+++ b/debian/libnm0.symbols
@@ -23,6 +23,7 @@ libnm.so.0 libnm0 #MINVER#
  libnm_1_28_0@libnm_1_28_0 1.27.90
  libnm_1_2_0@libnm_1_2_0 1.1.90
  libnm_1_2_4@libnm_1_2_4 1.2.4
+ libnm_1_30_0@libnm_1_30_0 1.29.90
  libnm_1_4_0@libnm_1_4_0 1.4.0
  libnm_1_6_0@libnm_1_6_0 1.5.90
  libnm_1_8_0@libnm_1_8_0 1.8.0
@@ -411,6 +412,7 @@ libnm.so.0 libnm0 #MINVER#
  nm_device_tun_get_type@libnm_1_2_0 1.1.90
  nm_device_tun_get_vnet_hdr@libnm_1_2_0 1.1.90
  nm_device_type_get_type@libnm_1_0_0 1.0.0
+ nm_device_veth_get_type@libnm_1_30_0 1.29.90
  nm_device_vlan_get_carrier@libnm_1_0_0 1.0.0
  nm_device_vlan_get_hw_address@libnm_1_0_0 1.0.0
  nm_device_vlan_get_parent@libnm_1_0_0 1.0.0
@@ -590,6 +592,14 @@ libnm.so.0 libnm0 #MINVER#
  nm_ip_routing_rule_validate@libnm_1_18_0 1.18.0
  nm_ip_tunnel_flags_get_type@libnm_1_12_0 1.11.3
  nm_ip_tunnel_mode_get_type@libnm_1_2_0 1.1.90
+ nm_keyfile_handler_data_fail_with_error@libnm_1_30_0 1.29.90
+ nm_keyfile_handler_data_get_context@libnm_1_30_0 1.29.90
+ nm_keyfile_handler_data_warn_get@libnm_1_30_0 1.29.90
+ nm_keyfile_handler_flags_get_type@libnm_1_30_0 1.29.90
+ nm_keyfile_handler_type_get_type@libnm_1_30_0 1.29.90
+ nm_keyfile_read@libnm_1_30_0 1.29.90
+ nm_keyfile_warn_severity_get_type@libnm_1_30_0 1.29.90
+ nm_keyfile_write@libnm_1_30_0 1.29.90
  nm_lldp_neighbor_get_attr_names@libnm_1_2_0 1.1.90
  nm_lldp_neighbor_get_attr_string_value@libnm_1_2_0 1.1.90
  nm_lldp_neighbor_get_attr_type@libnm_1_2_0 1.1.90
@@ -924,6 +934,11 @@ libnm.so.0 libnm0 #MINVER#
  nm_setting_gsm_get_type@libnm_1_0_0 1.0.0
  nm_setting_gsm_get_username@libnm_1_0_0 1.0.0
  nm_setting_gsm_new@libnm_1_0_0 1.0.0
+ nm_setting_hostname_get_from_dhcp@libnm_1_30_0 1.29.90
+ nm_setting_hostname_get_from_dns_lookup@libnm_1_30_0 1.29.90
+ nm_setting_hostname_get_only_from_default@libnm_1_30_0 1.29.90
+ nm_setting_hostname_get_priority@libnm_1_30_0 1.29.90
+ nm_setting_hostname_get_type@libnm_1_30_0 1.29.90
  nm_setting_infiniband_get_mac_address@libnm_1_0_0 1.0.0
  nm_setting_infiniband_get_mtu@libnm_1_0_0 1.0.0
  nm_setting_infiniband_get_p_key@libnm_1_0_0 1.0.0
@@ -1088,6 +1103,13 @@ libnm.so.0 libnm0 #MINVER#
  nm_setting_ovs_dpdk_get_devargs@libnm_1_20_0 1.19.90
  nm_setting_ovs_dpdk_get_type@libnm_1_20_0 1.19.90
  nm_setting_ovs_dpdk_new@libnm_1_20_0 1.19.90
+ nm_setting_ovs_external_ids_check_key@libnm_1_30_0 1.29.90
+ nm_setting_ovs_external_ids_check_val@libnm_1_30_0 1.29.90
+ nm_setting_ovs_external_ids_get_data@libnm_1_30_0 1.29.90
+ nm_setting_ovs_external_ids_get_data_keys@libnm_1_30_0 1.29.90
+ nm_setting_ovs_external_ids_get_type@libnm_1_30_0 1.29.90
+ nm_setting_ovs_external_ids_new@libnm_1_30_0 1.29.90
+ nm_setting_ovs_external_ids_set_data@libnm_1_30_0 1.29.90
  nm_setting_ovs_interface_get_interface_type@libnm_1_10_0 1.9.90
  nm_setting_ovs_interface_get_type@libnm_1_10_0 1.9.90
  nm_setting_ovs_interface_new@libnm_1_10_0 1.9.90
@@ -1230,6 +1252,9 @@ libnm.so.0 libnm0 #MINVER#
  nm_setting_user_set_data@libnm_1_8_0 1.8.0
  nm_setting_verify@libnm_1_0_0 1.0.0
  nm_setting_verify_secrets@libnm_1_2_0 1.1.90
+ nm_setting_veth_get_peer@libnm_1_30_0 1.29.90
+ nm_setting_veth_get_type@libnm_1_30_0 1.29.90
+ nm_setting_veth_new@libnm_1_30_0 1.29.90
  nm_setting_vlan_add_priority@libnm_1_0_0 1.0.0
  nm_setting_vlan_add_priority_str@libnm_1_0_0 1.0.0
  nm_setting_vlan_clear_priorities@libnm_1_0_0 1.0.0
@@ -1540,6 +1565,7 @@ libnm.so.0 libnm0 #MINVER#
  nm_utils_is_uuid@libnm_1_0_0 1.0.0
  nm_utils_is_valid_iface_name@libnm_1_6_0 1.5.90
  nm_utils_parse_variant_attributes@libnm_1_8_0 1.8.0
+ nm_utils_print@libnm_1_30_0 1.29.90
  nm_utils_same_ssid@libnm_1_0_0 1.0.0
  nm_utils_security_type_get_type@libnm_1_0_0 1.0.0
  nm_utils_security_valid@libnm_1_0_0 1.0.0
diff --git a/debian/patches/Force-online-state-with-unmanaged-devices.patch b/debian/patches/Force-online-state-with-unmanaged-devices.patch
index f8bc3398..a639e11a 100644
--- a/debian/patches/Force-online-state-with-unmanaged-devices.patch
+++ b/debian/patches/Force-online-state-with-unmanaged-devices.patch
@@ -8,13 +8,13 @@ online state to CONNECTED.
 
 Bug-Debian: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=512286
 ---
- src/nm-manager.c | 115 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ src/core/nm-manager.c | 115 ++++++++++++++++++++++++++++++++++++++++++++++++++
  1 file changed, 115 insertions(+)
 
-diff --git a/src/nm-manager.c b/src/nm-manager.c
-index 46f81c7..3465be4 100644
---- a/src/nm-manager.c
-+++ b/src/nm-manager.c
+diff --git a/src/core/nm-manager.c b/src/core/nm-manager.c
+index 5a6e05a..4c56b77 100644
+--- a/src/core/nm-manager.c
++++ b/src/core/nm-manager.c
 @@ -52,6 +52,8 @@
  
  #define DEVICE_STATE_PRUNE_RATELIMIT_MAX 100u
@@ -24,7 +24,7 @@ index 46f81c7..3465be4 100644
  /*****************************************************************************/
  
  typedef struct {
-@@ -186,6 +188,10 @@ typedef struct {
+@@ -187,6 +189,10 @@ typedef struct {
      GFileMonitor *fw_monitor;
      guint         fw_changed_id;
  
@@ -35,7 +35,7 @@ index 46f81c7..3465be4 100644
      guint timestamp_update_id;
  
      guint devices_inited_id;
-@@ -1433,6 +1439,27 @@ find_best_device_state(NMManager *manager)
+@@ -1463,6 +1469,27 @@ find_best_device_state(NMManager *manager)
      return best_state;
  }
  
@@ -63,7 +63,7 @@ index 46f81c7..3465be4 100644
  static void
  nm_manager_update_metered(NMManager *self)
  {
-@@ -1479,6 +1506,9 @@ nm_manager_update_state(NMManager *self)
+@@ -1509,6 +1536,9 @@ nm_manager_update_state(NMManager *self)
      else
          new_state = find_best_device_state(self);
  
@@ -73,7 +73,7 @@ index 46f81c7..3465be4 100644
      if (new_state >= NM_STATE_CONNECTED_LOCAL && priv->connectivity_state == NM_CONNECTIVITY_FULL) {
          new_state = NM_STATE_CONNECTED_GLOBAL;
      }
-@@ -6587,6 +6617,62 @@ impl_manager_set_logging(NMDBusObject *                     obj,
+@@ -6603,6 +6633,62 @@ impl_manager_set_logging(NMDBusObject *                     obj,
          g_dbus_method_invocation_return_value(invocation, NULL);
  }
  
@@ -136,7 +136,7 @@ index 46f81c7..3465be4 100644
  static void
  impl_manager_get_logging(NMDBusObject *                     obj,
                           const NMDBusInterfaceInfoExtended *interface_info,
-@@ -6916,6 +7002,9 @@ nm_manager_start(NMManager *self, GError **error)
+@@ -6932,6 +7018,9 @@ nm_manager_start(NMManager *self, GError **error)
      nm_clear_g_source(&priv->devices_inited_id);
      priv->devices_inited_id = g_idle_add_full(G_PRIORITY_LOW + 10, devices_inited_cb, self, NULL);
  
@@ -146,7 +146,7 @@ index 46f81c7..3465be4 100644
      return TRUE;
  }
  
-@@ -7795,6 +7884,22 @@ nm_manager_init(NMManager *self)
+@@ -7826,6 +7915,22 @@ nm_manager_init(NMManager *self)
          _LOGW(LOGD_CORE, "failed to monitor kernel firmware directory '%s'.", KERNEL_FIRMWARE_DIR);
      }
  
@@ -169,7 +169,7 @@ index 46f81c7..3465be4 100644
      /* Update timestamps in active connections */
      priv->timestamp_update_id =
          g_timeout_add_seconds(300,
-@@ -8078,6 +8183,16 @@ dispose(GObject *object)
+@@ -8111,6 +8216,16 @@ dispose(GObject *object)
          g_clear_object(&priv->fw_monitor);
      }
  
diff --git a/debian/patches/Import-some-missing-WoWLAN-patches.patch b/debian/patches/Import-some-missing-WoWLAN-patches.patch
deleted file mode 100644
index bd453be8..00000000
--- a/debian/patches/Import-some-missing-WoWLAN-patches.patch
+++ /dev/null
@@ -1,355 +0,0 @@
-From: =?utf-8?q?Alfonso_S=C3=A1nchez-Beato?=
- <alfonso.sanchez-beato@canonical.com>
-Date: Wed, 5 Dec 2018 17:28:15 +0100
-Subject: Import some missing WoWLAN patches from 1.14:
-
-ac1302793 platform: add methods to retrieve current WoWLAN state
-c6e40215e devices: restore past WoWLAN when disconnecting wifi
-a3289400d wifi: ensure wake-on-wlan restore only acts once
----
- src/devices/wifi/nm-device-wifi.c      | 48 +++++++++++++++++++++++---
- src/platform/nm-linux-platform.c       |  8 +++++
- src/platform/nm-platform.c             | 10 ++++++
- src/platform/nm-platform.h             |  2 ++
- src/platform/wifi/wifi-utils-nl80211.c | 62 ++++++++++++++++++++++++++++++++--
- src/platform/wifi/wifi-utils-private.h |  3 ++
- src/platform/wifi/wifi-utils.c         | 10 ++++++
- src/platform/wifi/wifi-utils.h         |  2 ++
- 8 files changed, 137 insertions(+), 8 deletions(-)
-
-diff --git a/src/devices/wifi/nm-device-wifi.c b/src/devices/wifi/nm-device-wifi.c
-index 0dd6fa7..3008ada 100644
---- a/src/devices/wifi/nm-device-wifi.c
-+++ b/src/devices/wifi/nm-device-wifi.c
-@@ -121,6 +121,8 @@ typedef struct {
- 	gint32 hw_addr_scan_expire;
- 
- 	guint             wps_timeout_id;
-+
-+	NMSettingWirelessWakeOnWLan wowlan_restore;
- } NMDeviceWifiPrivate;
- 
- struct _NMDeviceWifi
-@@ -508,6 +510,22 @@ remove_all_aps (NMDeviceWifi *self)
- 	nm_device_recheck_available_connections (NM_DEVICE (self));
- }
- 
-+static gboolean
-+wake_on_wlan_restore (NMDeviceWifi *self)
-+{
-+	NMDeviceWifiPrivate *priv = NM_DEVICE_WIFI_GET_PRIVATE (self);
-+	NMSettingWirelessWakeOnWLan w;
-+
-+	w = priv->wowlan_restore;
-+	if (w == NM_SETTING_WIRELESS_WAKE_ON_WLAN_IGNORE)
-+		return TRUE;
-+
-+	priv->wowlan_restore = NM_SETTING_WIRELESS_WAKE_ON_WLAN_IGNORE;
-+	return nm_platform_wifi_set_wake_on_wlan (NM_PLATFORM_GET,
-+	                                          nm_device_get_ifindex (NM_DEVICE (self)),
-+	                                          w);
-+}
-+
- static void
- deactivate (NMDevice *device)
- {
-@@ -524,6 +542,9 @@ deactivate (NMDevice *device)
- 
- 	set_current_ap (self, NULL, TRUE);
- 
-+	if (!wake_on_wlan_restore (self))
-+		_LOGW (LOGD_DEVICE | LOGD_WIFI, "Cannot unconfigure WoWLAN.");
-+
- 	/* Clear any critical protocol notification in the Wi-Fi stack */
- 	nm_platform_wifi_indicate_addressing_running (nm_device_get_platform (device), ifindex, FALSE);
- 
-@@ -2426,6 +2447,7 @@ error:
- static gboolean
- wake_on_wlan_enable (NMDeviceWifi *self)
- {
-+	NMDeviceWifiPrivate *priv = NM_DEVICE_WIFI_GET_PRIVATE (self);
- 	NMSettingWirelessWakeOnWLan wowl;
- 	NMSettingWireless *s_wireless;
- 	gs_free char *value = NULL;
-@@ -2461,8 +2483,19 @@ wake_on_wlan_enable (NMDeviceWifi *self)
- 			goto found;
- 	}
- 	wowl = NM_SETTING_WIRELESS_WAKE_ON_WLAN_IGNORE;
-+
- found:
--	return nm_platform_wifi_set_wake_on_wlan (NM_PLATFORM_GET, nm_device_get_ifindex (NM_DEVICE (self)), wowl);
-+	if (wowl == NM_SETTING_WIRELESS_WAKE_ON_WLAN_IGNORE) {
-+		priv->wowlan_restore = wowl;
-+		return TRUE;
-+	}
-+
-+	priv->wowlan_restore = nm_platform_wifi_get_wake_on_wlan (NM_PLATFORM_GET,
-+	                                                          nm_device_get_ifindex (NM_DEVICE (self)));
-+
-+	return nm_platform_wifi_set_wake_on_wlan (NM_PLATFORM_GET,
-+	                                          nm_device_get_ifindex (NM_DEVICE (self)),
-+	                                          wowl);
- }
- 
- static NMActStageReturn
-@@ -2659,8 +2692,6 @@ act_stage2_config (NMDevice *device, NMDeviceStateReason *out_failure_reason)
- 	s_wireless = nm_connection_get_setting_wireless (connection);
- 	g_assert (s_wireless);
- 
--	wake_on_wlan_enable (self);
--
- 	/* If we need secrets, get them */
- 	setting_name = nm_connection_need_secrets (connection, NULL);
- 	if (setting_name) {
-@@ -2677,6 +2708,9 @@ act_stage2_config (NMDevice *device, NMDeviceStateReason *out_failure_reason)
- 		goto out;
- 	}
- 
-+	if (!wake_on_wlan_enable (self))
-+		_LOGW (LOGD_DEVICE | LOGD_WIFI, "Cannot configure WoWLAN.");
-+
- 	/* have secrets, or no secrets required */
- 	if (nm_connection_get_setting_wireless_security (connection)) {
- 		_LOGI (LOGD_DEVICE | LOGD_WIFI,
-@@ -2727,8 +2761,10 @@ act_stage2_config (NMDevice *device, NMDeviceStateReason *out_failure_reason)
- 	ret = NM_ACT_STAGE_RETURN_POSTPONE;
- 
- out:
--	if (ret == NM_ACT_STAGE_RETURN_FAILURE)
-+	if (ret == NM_ACT_STAGE_RETURN_FAILURE) {
- 		cleanup_association_attempt (self, TRUE);
-+		wake_on_wlan_restore (self);
-+	}
- 
- 	if (config) {
- 		/* Supplicant interface object refs the config; we no longer care about
-@@ -3134,7 +3170,8 @@ reapply_connection (NMDevice *device, NMConnection *con_old, NMConnection *con_n
- 
- 	_LOGD (LOGD_DEVICE, "reapplying wireless settings");
- 
--	wake_on_wlan_enable (self);
-+	if (!wake_on_wlan_enable (self))
-+		_LOGW (LOGD_DEVICE | LOGD_WIFI, "Cannot configure WoWLAN.");
- }
- 
- /*****************************************************************************/
-@@ -3207,6 +3244,7 @@ nm_device_wifi_init (NMDeviceWifi *self)
- 	c_list_init (&priv->aps_lst_head);
- 
- 	priv->mode = NM_802_11_MODE_INFRA;
-+	priv->wowlan_restore = NM_SETTING_WIRELESS_WAKE_ON_WLAN_IGNORE;
- }
- 
- static void
-diff --git a/src/platform/nm-linux-platform.c b/src/platform/nm-linux-platform.c
-index 9bd662a..33a05ab 100644
---- a/src/platform/nm-linux-platform.c
-+++ b/src/platform/nm-linux-platform.c
-@@ -6092,6 +6092,13 @@ wifi_indicate_addressing_running (NMPlatform *platform, int ifindex, gboolean ru
- 	wifi_utils_indicate_addressing_running (wifi_data, running);
- }
- 
-+static NMSettingWirelessWakeOnWLan
-+wifi_get_wake_on_wlan (NMPlatform *platform, int ifindex)
-+{
-+	WIFI_GET_WIFI_DATA_NETNS (wifi_data, platform, ifindex, FALSE);
-+	return wifi_utils_get_wake_on_wlan (wifi_data);
-+}
-+
- static gboolean
- wifi_set_wake_on_wlan (NMPlatform *platform, int ifindex,
-                        NMSettingWirelessWakeOnWLan wowl)
-@@ -7238,6 +7245,7 @@ nm_linux_platform_class_init (NMLinuxPlatformClass *klass)
- 	platform_class->wifi_set_powersave = wifi_set_powersave;
- 	platform_class->wifi_find_frequency = wifi_find_frequency;
- 	platform_class->wifi_indicate_addressing_running = wifi_indicate_addressing_running;
-+	platform_class->wifi_get_wake_on_wlan = wifi_get_wake_on_wlan;
- 	platform_class->wifi_set_wake_on_wlan = wifi_set_wake_on_wlan;
- 
- 	platform_class->mesh_get_channel = mesh_get_channel;
-diff --git a/src/platform/nm-platform.c b/src/platform/nm-platform.c
-index f75019e..96bb292 100644
---- a/src/platform/nm-platform.c
-+++ b/src/platform/nm-platform.c
-@@ -2888,6 +2888,16 @@ nm_platform_wifi_indicate_addressing_running (NMPlatform *self, int ifindex, gbo
- 	klass->wifi_indicate_addressing_running (self, ifindex, running);
- }
- 
-+NMSettingWirelessWakeOnWLan
-+nm_platform_wifi_get_wake_on_wlan (NMPlatform *self, int ifindex)
-+{
-+	_CHECK_SELF (self, klass, FALSE);
-+
-+	g_return_val_if_fail (ifindex > 0, FALSE);
-+
-+	return klass->wifi_get_wake_on_wlan (self, ifindex);
-+}
-+
- gboolean
- nm_platform_wifi_set_wake_on_wlan (NMPlatform *self, int ifindex, NMSettingWirelessWakeOnWLan wowl)
- {
-diff --git a/src/platform/nm-platform.h b/src/platform/nm-platform.h
-index 866df73..84d10d2 100644
---- a/src/platform/nm-platform.h
-+++ b/src/platform/nm-platform.h
-@@ -868,6 +868,7 @@ typedef struct {
- 	void        (*wifi_set_powersave)    (NMPlatform *, int ifindex, guint32 powersave);
- 	guint32     (*wifi_find_frequency)   (NMPlatform *, int ifindex, const guint32 *freqs);
- 	void        (*wifi_indicate_addressing_running) (NMPlatform *, int ifindex, gboolean running);
-+	NMSettingWirelessWakeOnWLan (*wifi_get_wake_on_wlan) (NMPlatform *, int ifindex);
- 	gboolean    (*wifi_set_wake_on_wlan) (NMPlatform *, int ifindex, NMSettingWirelessWakeOnWLan wowl);
- 
- 	guint32     (*mesh_get_channel)      (NMPlatform *, int ifindex);
-@@ -1247,6 +1248,7 @@ void        nm_platform_wifi_set_mode         (NMPlatform *self, int ifindex, NM
- void        nm_platform_wifi_set_powersave    (NMPlatform *self, int ifindex, guint32 powersave);
- guint32     nm_platform_wifi_find_frequency   (NMPlatform *self, int ifindex, const guint32 *freqs);
- void        nm_platform_wifi_indicate_addressing_running (NMPlatform *self, int ifindex, gboolean running);
-+NMSettingWirelessWakeOnWLan nm_platform_wifi_get_wake_on_wlan (NMPlatform *self, int ifindex);
- gboolean    nm_platform_wifi_set_wake_on_wlan (NMPlatform *self, int ifindex, NMSettingWirelessWakeOnWLan wowl);
- 
- guint32     nm_platform_mesh_get_channel      (NMPlatform *self, int ifindex);
-diff --git a/src/platform/wifi/wifi-utils-nl80211.c b/src/platform/wifi/wifi-utils-nl80211.c
-index 6c2ff3f..518e39c 100644
---- a/src/platform/wifi/wifi-utils-nl80211.c
-+++ b/src/platform/wifi/wifi-utils-nl80211.c
-@@ -271,6 +271,60 @@ nla_put_failure:
- 	return FALSE;
- }
- 
-+static int
-+nl80211_get_wake_on_wlan_handler (struct nl_msg *msg, void *arg)
-+{
-+	NMSettingWirelessWakeOnWLan *wowl = arg;
-+	struct nlattr *attrs[NL80211_ATTR_MAX + 1];
-+	struct nlattr *trig[NUM_NL80211_WOWLAN_TRIG];
-+	struct genlmsghdr *gnlh = nlmsg_data (nlmsg_hdr (msg));
-+
-+	nla_parse (attrs, NL80211_ATTR_MAX, genlmsg_attrdata(gnlh, 0),
-+	           genlmsg_attrlen(gnlh, 0), NULL);
-+
-+	if (!attrs[NL80211_ATTR_WOWLAN_TRIGGERS])
-+		return NL_SKIP;
-+
-+	nla_parse (trig, MAX_NL80211_WOWLAN_TRIG,
-+	           nla_data (attrs[NL80211_ATTR_WOWLAN_TRIGGERS]),
-+	           nla_len (attrs[NL80211_ATTR_WOWLAN_TRIGGERS]),
-+	           NULL);
-+
-+	*wowl = NM_SETTING_WIRELESS_WAKE_ON_WLAN_NONE;
-+	if (trig[NL80211_WOWLAN_TRIG_ANY])
-+		*wowl |= NM_SETTING_WIRELESS_WAKE_ON_WLAN_ANY;
-+	if (trig[NL80211_WOWLAN_TRIG_DISCONNECT])
-+		*wowl |= NM_SETTING_WIRELESS_WAKE_ON_WLAN_DISCONNECT;
-+	if (trig[NL80211_WOWLAN_TRIG_MAGIC_PKT])
-+		*wowl |= NM_SETTING_WIRELESS_WAKE_ON_WLAN_MAGIC;
-+	if (trig[NL80211_WOWLAN_TRIG_GTK_REKEY_FAILURE])
-+		*wowl |= NM_SETTING_WIRELESS_WAKE_ON_WLAN_GTK_REKEY_FAILURE;
-+	if (trig[NL80211_WOWLAN_TRIG_EAP_IDENT_REQUEST])
-+		*wowl |= NM_SETTING_WIRELESS_WAKE_ON_WLAN_EAP_IDENTITY_REQUEST;
-+	if (trig[NL80211_WOWLAN_TRIG_4WAY_HANDSHAKE])
-+		*wowl |= NM_SETTING_WIRELESS_WAKE_ON_WLAN_4WAY_HANDSHAKE;
-+	if (trig[NL80211_WOWLAN_TRIG_RFKILL_RELEASE])
-+		*wowl |= NM_SETTING_WIRELESS_WAKE_ON_WLAN_RFKILL_RELEASE;
-+	if (trig[NL80211_WOWLAN_TRIG_TCP_CONNECTION])
-+		*wowl |= NM_SETTING_WIRELESS_WAKE_ON_WLAN_TCP;
-+
-+	return NL_SKIP;
-+}
-+
-+static NMSettingWirelessWakeOnWLan
-+wifi_nl80211_get_wake_on_wlan (WifiData *data)
-+{
-+	WifiDataNl80211 *nl80211 = (WifiDataNl80211 *) data;
-+	NMSettingWirelessWakeOnWLan wowl = NM_SETTING_WIRELESS_WAKE_ON_WLAN_IGNORE;
-+	nm_auto_nlmsg struct nl_msg *msg = NULL;
-+
-+	msg = nl80211_alloc_msg (nl80211, NL80211_CMD_GET_WOWLAN, 0);
-+
-+	nl80211_send_and_recv (nl80211, msg, nl80211_get_wake_on_wlan_handler, &wowl);
-+
-+	return wowl;
-+}
-+
- static gboolean
- wifi_nl80211_set_wake_on_wlan (WifiData *data, NMSettingWirelessWakeOnWLan wowl)
- {
-@@ -282,11 +336,11 @@ wifi_nl80211_set_wake_on_wlan (WifiData *data, NMSettingWirelessWakeOnWLan wowl)
- 	if (wowl == NM_SETTING_WIRELESS_WAKE_ON_WLAN_IGNORE)
- 		return TRUE;
- 
--	msg = nl80211_alloc_msg(nl80211, NL80211_CMD_SET_WOWLAN, 0);
-+	msg = nl80211_alloc_msg (nl80211, NL80211_CMD_SET_WOWLAN, 0);
- 	if (!msg)
- 		return FALSE;
- 
--	triggers = nla_nest_start(msg, NL80211_ATTR_WOWLAN_TRIGGERS);
-+	triggers = nla_nest_start (msg, NL80211_ATTR_WOWLAN_TRIGGERS);
- 
- 	if (NM_FLAGS_HAS (wowl, NM_SETTING_WIRELESS_WAKE_ON_WLAN_ANY))
- 		NLA_PUT_FLAG (msg, NL80211_WOWLAN_TRIG_ANY);
-@@ -306,7 +360,8 @@ wifi_nl80211_set_wake_on_wlan (WifiData *data, NMSettingWirelessWakeOnWLan wowl)
- 	nla_nest_end(msg, triggers);
- 
- 	err = nl80211_send_and_recv (nl80211, msg, NULL, NULL);
--	return err ? FALSE : TRUE;
-+
-+	return err >= 0;
- 
- nla_put_failure:
- 	return FALSE;
-@@ -887,6 +942,7 @@ wifi_nl80211_init (int ifindex)
- 		.get_mode = wifi_nl80211_get_mode,
- 		.set_mode = wifi_nl80211_set_mode,
- 		.set_powersave = wifi_nl80211_set_powersave,
-+		.get_wake_on_wlan = wifi_nl80211_get_wake_on_wlan,
- 		.set_wake_on_wlan = wifi_nl80211_set_wake_on_wlan,
- 		.get_freq = wifi_nl80211_get_freq,
- 		.find_freq = wifi_nl80211_find_freq,
-diff --git a/src/platform/wifi/wifi-utils-private.h b/src/platform/wifi/wifi-utils-private.h
-index 627108c..dc5dec0 100644
---- a/src/platform/wifi/wifi-utils-private.h
-+++ b/src/platform/wifi/wifi-utils-private.h
-@@ -34,6 +34,9 @@ typedef struct {
- 	/* Set power saving mode on an interface */
- 	gboolean (*set_powersave) (WifiData *data, guint32 powersave);
- 
-+	/* Get WakeOnWLAN configuration on an interface */
-+	NMSettingWirelessWakeOnWLan (*get_wake_on_wlan) (WifiData *data);
-+
- 	/* Set WakeOnWLAN mode on an interface */
- 	gboolean (*set_wake_on_wlan) (WifiData *data, NMSettingWirelessWakeOnWLan wowl);
- 
-diff --git a/src/platform/wifi/wifi-utils.c b/src/platform/wifi/wifi-utils.c
-index b3dd92b..b704be1 100644
---- a/src/platform/wifi/wifi-utils.c
-+++ b/src/platform/wifi/wifi-utils.c
-@@ -112,6 +112,16 @@ wifi_utils_set_powersave (WifiData *data, guint32 powersave)
- 	return data->klass->set_powersave ? data->klass->set_powersave (data, powersave) : TRUE;
- }
- 
-+NMSettingWirelessWakeOnWLan
-+wifi_utils_get_wake_on_wlan (WifiData *data)
-+{
-+	g_return_val_if_fail (data != NULL, FALSE);
-+
-+	return   data->klass->get_wake_on_wlan
-+	       ? data->klass->get_wake_on_wlan (data)
-+	       : NM_SETTING_WIRELESS_WAKE_ON_WLAN_IGNORE;
-+}
-+
- gboolean
- wifi_utils_set_wake_on_wlan (WifiData *data, NMSettingWirelessWakeOnWLan wowl)
- {
-diff --git a/src/platform/wifi/wifi-utils.h b/src/platform/wifi/wifi-utils.h
-index c69561d..e454b71 100644
---- a/src/platform/wifi/wifi-utils.h
-+++ b/src/platform/wifi/wifi-utils.h
-@@ -67,6 +67,8 @@ gboolean wifi_utils_get_wowlan (WifiData *data);
- 
- gboolean wifi_utils_set_powersave (WifiData *data, guint32 powersave);
- 
-+NMSettingWirelessWakeOnWLan wifi_utils_get_wake_on_wlan (WifiData *data);
-+
- gboolean wifi_utils_set_wake_on_wlan (WifiData *data, NMSettingWirelessWakeOnWLan wowl);
- 
- /* OLPC Mesh-only functions */
diff --git a/debian/patches/Provide-access-to-some-of-NM-s-interfaces-to-whoopsie.patch b/debian/patches/Provide-access-to-some-of-NM-s-interfaces-to-whoopsie.patch
index d68739a3..36f76e90 100644
--- a/debian/patches/Provide-access-to-some-of-NM-s-interfaces-to-whoopsie.patch
+++ b/debian/patches/Provide-access-to-some-of-NM-s-interfaces-to-whoopsie.patch
@@ -9,10 +9,10 @@ when connected to 3G or other systems that are potentially billable.
  src/org.freedesktop.NetworkManager.conf | 13 +++++++++++++
  1 file changed, 13 insertions(+)
 
-diff --git a/src/org.freedesktop.NetworkManager.conf b/src/org.freedesktop.NetworkManager.conf
-index 6be1feb..3dd2350 100644
---- a/src/org.freedesktop.NetworkManager.conf
-+++ b/src/org.freedesktop.NetworkManager.conf
+Index: network-manager/src/core/org.freedesktop.NetworkManager.conf
+===================================================================
+--- network-manager.orig/src/core/org.freedesktop.NetworkManager.conf
++++ network-manager/src/core/org.freedesktop.NetworkManager.conf
 @@ -37,6 +37,19 @@
          <allow own="org.freedesktop.NetworkManager.dnsmasq"/>
          <allow send_destination="org.freedesktop.NetworkManager.dnsmasq"/>
diff --git a/debian/patches/Update-dnsmasq-parameters.patch b/debian/patches/Update-dnsmasq-parameters.patch
index e0b89aa6..be5ecc08 100644
--- a/debian/patches/Update-dnsmasq-parameters.patch
+++ b/debian/patches/Update-dnsmasq-parameters.patch
@@ -6,14 +6,14 @@ Disable caching since it's a potential security issue (local dns cache poisoning
 
 See also: https://blueprints.launchpad.net/ubuntu/+spec/foundations-p-dns-resolving
 ---
- src/dns/nm-dns-dnsmasq.c | 4 ++--
- src/dns/nm-dns-manager.c | 6 +++---
+ src/core/dns/nm-dns-dnsmasq.c | 4 ++--
+ src/core/dns/nm-dns-manager.c | 6 +++---
  2 files changed, 5 insertions(+), 5 deletions(-)
 
-Index: network-manager/src/dns/nm-dns-dnsmasq.c
+Index: network-manager/src/core/dns/nm-dns-dnsmasq.c
 ===================================================================
---- network-manager.orig/src/dns/nm-dns-dnsmasq.c
-+++ network-manager/src/dns/nm-dns-dnsmasq.c
+--- network-manager.orig/src/core/dns/nm-dns-dnsmasq.c
++++ network-manager/src/core/dns/nm-dns-dnsmasq.c
 @@ -523,8 +523,8 @@ _gl_pid_spawn_next_step(void)
      argv[argv_idx++] = "--no-hosts"; /* don't use /etc/hosts to resolve */
      argv[argv_idx++] = "--bind-interfaces";
@@ -25,11 +25,11 @@ Index: network-manager/src/dns/nm-dns-dnsmasq.c
      argv[argv_idx++] = "--clear-on-reload";     /* clear cache when dns server changes */
      argv[argv_idx++] = "--conf-file=/dev/null"; /* avoid loading /etc/dnsmasq.conf */
      argv[argv_idx++] = "--proxy-dnssec";        /* Allow DNSSEC to pass through */
-Index: network-manager/src/dns/nm-dns-manager.c
+Index: network-manager/src/core/dns/nm-dns-manager.c
 ===================================================================
---- network-manager.orig/src/dns/nm-dns-manager.c
-+++ network-manager/src/dns/nm-dns-manager.c
-@@ -1696,12 +1696,12 @@ plugin_skip:;
+--- network-manager.orig/src/core/dns/nm-dns-manager.c
++++ network-manager/src/core/dns/nm-dns-manager.c
+@@ -1726,12 +1726,12 @@ plugin_skip:;
                                 NM_CAST_STRV_CC(nameservers),
                                 NM_CAST_STRV_CC(options));
  
@@ -41,10 +41,10 @@ Index: network-manager/src/dns/nm-dns-manager.c
      if (caching) {
 -        const char *lladdr = "127.0.0.1";
 +        const char *lladdr = "127.0.1.1";
+         gboolean    need_edns0;
+         gboolean    need_trust;
  
-         if (NM_IS_DNS_SYSTEMD_RESOLVED(priv->plugin)) {
-             /* systemd-resolved uses a different link-local address */
-@@ -1982,7 +1982,7 @@ nm_dns_manager_stop(NMDnsManager *self)
+@@ -2031,7 +2031,7 @@ nm_dns_manager_stop(NMDnsManager *self)
      _LOGT("stopping...");
  
      /* If we're quitting, leave a valid resolv.conf in place, not one
diff --git a/debian/patches/dns-manager-don-t-merge-split-DNS-search-domains.patch b/debian/patches/dns-manager-don-t-merge-split-DNS-search-domains.patch
deleted file mode 100644
index bc313505..00000000
--- a/debian/patches/dns-manager-don-t-merge-split-DNS-search-domains.patch
+++ /dev/null
@@ -1,88 +0,0 @@
-From: Mathieu Trudel-Lapierre <mathieu.trudel-lapierre@canonical.com>
-Date: Wed, 15 Jun 2016 16:07:27 +0300
-Subject: dns-manager: don't merge split-DNS search domains
-
-Signed-off-by: Mathieu Trudel-Lapierre <mathieu.trudel-lapierre@canonical.com>
-Bug-Ubuntu: https://bugs.launchpad.net/ubuntu/+source/network-manager/+bug/1592721
----
- src/dns/nm-dns-manager.c | 36 ++++++++++++++++++++----------------
- 1 file changed, 20 insertions(+), 16 deletions(-)
-
-Index: b/src/dns/nm-dns-manager.c
-===================================================================
---- a/src/dns/nm-dns-manager.c
-+++ b/src/dns/nm-dns-manager.c
-@@ -295,7 +295,7 @@
- }
- 
- static void
--merge_one_ip4_config (NMResolvConfData *rc, NMIP4Config *src)
-+merge_one_ip4_config (NMResolvConfData *rc, NMIP4Config *src, gboolean never_default)
- {
- 	guint32 num, num_domains, num_searches, i;
- 
-@@ -308,13 +308,14 @@
- 	num_domains = nm_ip4_config_get_num_domains (src);
- 	num_searches = nm_ip4_config_get_num_searches (src);
- 
--	for (i = 0; i < num_searches; i++) {
--		const char *search;
--
--		search = nm_ip4_config_get_search (src, i);
--		if (!domain_is_valid (search, FALSE))
--			continue;
--		add_string_item (rc->searches, search);
-+	if (!never_default) {
-+		for (i = 0; i < num_searches; i++) {
-+			const char *search;
-+			search = nm_ip4_config_get_search (src, i);
-+			if (!domain_is_valid (search, FALSE))
-+				continue;
-+			add_string_item (rc->searches, search);
-+		}
- 	}
- 
- 	if (num_domains > 1 || !num_searches) {
-@@ -351,7 +352,7 @@
- }
- 
- static void
--merge_one_ip6_config (NMResolvConfData *rc, NMIP6Config *src, const char *iface)
-+merge_one_ip6_config (NMResolvConfData *rc, NMIP6Config *src, const char *iface, gboolean never_default)
- {
- 	guint32 num, num_domains, num_searches, i;
- 
-@@ -378,13 +379,14 @@
- 	num_domains = nm_ip6_config_get_num_domains (src);
- 	num_searches = nm_ip6_config_get_num_searches (src);
- 
--	for (i = 0; i < num_searches; i++) {
--		const char *search;
--
--		search = nm_ip6_config_get_search (src, i);
--		if (!domain_is_valid (search, FALSE))
--			continue;
--		add_string_item (rc->searches, search);
-+	if (!never_default) {
-+		for (i = 0; i < num_searches; i++) {
-+			const char *search;
-+			search = nm_ip6_config_get_search (src, i);
-+			if (!domain_is_valid (search, FALSE))
-+				continue;
-+			add_string_item (rc->searches, search);
-+		}
- 	}
- 
- 	if (num_domains > 1 || !num_searches) {
-@@ -412,9 +414,9 @@
-                           NMDnsIPConfigData *data)
- {
- 	if (NM_IS_IP4_CONFIG (data->config))
--		merge_one_ip4_config (rc, (NMIP4Config *) data->config);
-+		merge_one_ip4_config (rc, (NMIP4Config *) data->config, nm_ip4_config_get_never_default (data->config));
- 	else if (NM_IS_IP6_CONFIG (data->config))
--		merge_one_ip6_config (rc, (NMIP6Config *) data->config, data->iface);
-+		merge_one_ip6_config (rc, (NMIP6Config *) data->config, data->iface, nm_ip4_config_get_never_default (data->config));
- 	else
- 		g_return_if_reached ();
- }
diff --git a/debian/patches/gitlab_connection_ready.patch b/debian/patches/gitlab_connection_ready.patch
deleted file mode 100644
index 7c25058a..00000000
--- a/debian/patches/gitlab_connection_ready.patch
+++ /dev/null
@@ -1,115 +0,0 @@
-
-From 1043189ef6bd12475304bbe87f4f8daaf67402ec Mon Sep 17 00:00:00 2001
-From: Thomas Haller <thaller@redhat.com>
-Date: Fri, 31 Jan 2020 00:54:46 +0100
-Subject: [PATCH 2/2] libnm: hide NMActiveConnection until NMRemoteConnection
- is ready
-
-Generally, libnm's NMClient cache only wants to expose NMObjects that
-are fully initalized. Most objects don't require anything special,
-except NMRemoteConnection waits for the GetSettings() call to complete.
-
-NMObjects reference each other. For example, NMActiveConnection
-references NMDevice and NMRemoteConnection. There is a desire that an
-object is only ready, if the objects that it references are ready too.
-In practice that is not done, because usually every objects references
-other objects, that means all objects would be declared as non-ready
-until they are all ready at the same time. Only NMRemoteConnection
-implements is_ready() function. All other objects are declared ready
-as they appear. This is also done this way, to cope with cycles where
-objects reference each other. In practice, such cycles should not be
-exposed by NetworkManager. However, libnm should be robust against that.
-
-This has the undesired effect that when you call AddAndActivate(), then
-the NMActiveConnection might already be ready while its
-NMRemoteConnection isn't. That means, ac.get_connection() will
-initially return NULL, until the remote connection becomes ready.
-Also add a special handling that NMActiveConnection waits for their
-NMRemoteConnection to be ready, before being ready itself.
----
- libnm/nm-active-connection.c | 29 +++++++++++++++++++++++++++++
- libnm/nm-client.c            |  8 ++++++++
- libnm/nm-libnm-utils.h       |  2 ++
- 3 files changed, 39 insertions(+)
-
-diff --git a/libnm/nm-active-connection.c b/libnm/nm-active-connection.c
-index aa8504e61d..ade2edbe73 100644
---- a/libnm/nm-active-connection.c
-+++ b/libnm/nm-active-connection.c
-@@ -425,6 +425,33 @@ _nm_active_connection_state_changed_commit (NMActiveConnection *self,
- 	                                        _notify_event_state_changed,
- 	                                        g_object_ref (self));
- }
-+/*****************************************************************************/
-+
-+static gboolean
-+is_ready (NMObject *nmobj)
-+{
-+	NMActiveConnectionPrivate *priv = NM_ACTIVE_CONNECTION_GET_PRIVATE (nmobj);
-+
-+	/* Usually, we don't want to expose our NMObject instances until they are fully initialized.
-+	 * For NMRemoteSetting this means to wait until GetSettings() returns.
-+	 *
-+	 * Note that most object types reference each other (directly or indirectly). E.g. the
-+	 * NMActiveConnection refers to the NMRemoteConnection and the NMDevice instance. So,
-+	 * we don't want to hide them too long, otherwise basically the entire set of objects
-+	 * will be hidden until they are all initialized. So, usually, when a NMObject references
-+	 * objects that are not yet initialized, that reference will just be NULL but the object
-+	 * will be considered ready already.
-+	 *
-+	 * For NMActiveConnection referencing a NMRemoteConnection don't do that. Here we wait for the
-+	 * NMRemoteConnection to be ready as well. This is somewhat arbitrary special casing, but
-+	 * the effect is that when nm_client_add_and_activate*() returns, the NMActiveConnection already
-+	 * references a initialized NMRemoteConnection.
-+	 */
-+	if (!nml_dbus_property_o_is_ready_fully (&priv->property_o[PROPERTY_O_IDX_CONNECTION]))
-+		return FALSE;
-+
-+	return NM_OBJECT_CLASS (nm_active_connection_parent_class)->is_ready (nmobj);
-+}
- 
- /*****************************************************************************/
- 
-@@ -550,6 +577,8 @@ nm_active_connection_class_init (NMActiveConnectionClass *klass)
- 	object_class->get_property = get_property;
- 	object_class->finalize     = finalize;
- 
-+	nm_object_class->is_ready = is_ready;
-+
- 	_NM_OBJECT_CLASS_INIT_PRIV_PTR_INDIRECT (nm_object_class, NMActiveConnection);
- 
- 	_NM_OBJECT_CLASS_INIT_PROPERTY_O_FIELDS_N (nm_object_class, NMActiveConnectionPrivate, property_o);
-diff --git a/libnm/nm-client.c b/libnm/nm-client.c
-index 154ad1c992..a93a81c353 100644
---- a/libnm/nm-client.c
-+++ b/libnm/nm-client.c
-@@ -1594,6 +1594,14 @@ nml_dbus_property_o_is_ready (const NMLDBusPropertyO *pr_o)
- 	       || !pr_o->owner_dbobj;
- }
- 
-+gboolean
-+nml_dbus_property_o_is_ready_fully (const NMLDBusPropertyO *pr_o)
-+{
-+	return    !pr_o->owner_dbobj
-+	       || !pr_o->obj_watcher
-+	       || pr_o->nmobj;
-+}
-+
- static void
- nml_dbus_property_o_notify_changed (NMLDBusPropertyO *pr_o,
-                                     NMClient *self)
-diff --git a/libnm/nm-libnm-utils.h b/libnm/nm-libnm-utils.h
-index f2affc5f62..28c9c1164c 100644
---- a/libnm/nm-libnm-utils.h
-+++ b/libnm/nm-libnm-utils.h
-@@ -260,6 +260,8 @@ gpointer nml_dbus_property_o_get_obj (NMLDBusPropertyO *pr_o);
- 
- gboolean nml_dbus_property_o_is_ready (const NMLDBusPropertyO *pr_o);
- 
-+gboolean nml_dbus_property_o_is_ready_fully (const NMLDBusPropertyO *pr_o);
-+
- void nml_dbus_property_o_clear (NMLDBusPropertyO *pr_o,
-                                 NMClient *client);
- 
--- 
-2.24.1
diff --git a/debian/patches/series b/debian/patches/series
index 6e85d4f0..31a4dd70 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -2,5 +2,4 @@ Force-online-state-with-unmanaged-devices.patch
 # Ubuntu patches
 Provide-access-to-some-of-NM-s-interfaces-to-whoopsie.patch
 Update-dnsmasq-parameters.patch
-systemd-basic-missing_syscall-fix-syscall-numbers-for-x32.patch
 ubuntu_revert_systemd.patch
diff --git a/debian/patches/systemd-basic-missing_syscall-fix-syscall-numbers-for-x32.patch b/debian/patches/systemd-basic-missing_syscall-fix-syscall-numbers-for-x32.patch
deleted file mode 100644
index 75b2fd2b..00000000
--- a/debian/patches/systemd-basic-missing_syscall-fix-syscall-numbers-for-x32.patch
+++ /dev/null
@@ -1,124 +0,0 @@
-From: mirabilos <tg@debian.org>
-Date: Fri, 9 Oct 2020 15:58:48 +0200
-Subject: fixup syscall numbers for x32 vs. amd64
-
----
- shared/systemd/src/basic/missing_syscall.h | 28 +++++++++++++++++-----------
- 1 file changed, 17 insertions(+), 11 deletions(-)
-
-diff --git a/shared/systemd/src/basic/missing_syscall.h b/shared/systemd/src/basic/missing_syscall.h
-index d11a77d..82daa68 100644
---- a/shared/systemd/src/basic/missing_syscall.h
-+++ b/shared/systemd/src/basic/missing_syscall.h
-@@ -15,6 +15,12 @@
- #include <asm/sgidefs.h>
- #endif
- 
-+#if defined(__x86_64__) && defined(__ILP32__)
-+#define systemd_SC_arch_bias(x) ((x) | /* __X32_SYSCALL_BIT */ 0x40000000)
-+#else
-+#define systemd_SC_arch_bias(x) (x)
-+#endif
-+
- #include "missing_keyctl.h"
- #include "missing_stat.h"
- 
-@@ -36,7 +42,7 @@ static inline int missing_pivot_root(const char *new_root, const char *put_old)
- /* ======================================================================= */
- 
- #if defined __x86_64__
--#  define systemd_NR_memfd_create 319
-+#  define systemd_NR_memfd_create systemd_SC_arch_bias(319)
- #elif defined __arm__
- #  define systemd_NR_memfd_create 385
- #elif defined __aarch64__
-@@ -93,7 +99,7 @@ static inline int missing_memfd_create(const char *name, unsigned int flags) {
- /* ======================================================================= */
- 
- #if defined __x86_64__
--#  define systemd_NR_getrandom 318
-+#  define systemd_NR_getrandom systemd_SC_arch_bias(318)
- #elif defined(__i386__)
- #  define systemd_NR_getrandom 355
- #elif defined(__arm__)
-@@ -169,7 +175,7 @@ static inline pid_t missing_gettid(void) {
- /* ======================================================================= */
- 
- #if defined(__x86_64__)
--#  define systemd_NR_name_to_handle_at 303
-+#  define systemd_NR_name_to_handle_at systemd_SC_arch_bias(303)
- #elif defined(__i386__)
- #  define systemd_NR_name_to_handle_at 341
- #elif defined(__arm__)
-@@ -226,7 +232,7 @@ static inline int missing_name_to_handle_at(int fd, const char *name, struct fil
- #elif defined __arm__
- #  define systemd_NR_setns 375
- #elif defined(__x86_64__)
--#  define systemd_NR_setns 308
-+#  define systemd_NR_setns systemd_SC_arch_bias(308)
- #elif defined(__i386__)
- #  define systemd_NR_setns 346
- #elif defined(__powerpc__)
-@@ -279,7 +285,7 @@ static inline pid_t raw_getpid(void) {
- /* ======================================================================= */
- 
- #if defined __x86_64__
--#  define systemd_NR_renameat2 316
-+#  define systemd_NR_renameat2 systemd_SC_arch_bias(316)
- #elif defined __arm__
- #  define systemd_NR_renameat2 382
- #elif defined __aarch64__
-@@ -388,7 +394,7 @@ static inline key_serial_t missing_request_key(const char *type, const char *des
- /* ======================================================================= */
- 
- #if defined(__x86_64__)
--#  define systemd_NR_copy_file_range 326
-+#  define systemd_NR_copy_file_range systemd_SC_arch_bias(326)
- #elif defined(__i386__)
- #  define systemd_NR_copy_file_range 377
- #elif defined __s390__
-@@ -440,7 +446,7 @@ static inline ssize_t missing_copy_file_range(int fd_in, loff_t *off_in,
- #if defined __i386__
- #  define systemd_NR_bpf 357
- #elif defined __x86_64__
--#  define systemd_NR_bpf 321
-+#  define systemd_NR_bpf systemd_SC_arch_bias(321)
- #elif defined __aarch64__
- #  define systemd_NR_bpf 280
- #elif defined __arm__
-@@ -492,7 +498,7 @@ static inline int missing_bpf(int cmd, union bpf_attr *attr, size_t size) {
- #  if defined __i386__
- #    define systemd_NR_pkey_mprotect 380
- #  elif defined __x86_64__
--#    define systemd_NR_pkey_mprotect 329
-+#    define systemd_NR_pkey_mprotect systemd_SC_arch_bias(329)
- #  elif defined __aarch64__
- #    define systemd_NR_pkey_mprotect 288
- #  elif defined __arm__
-@@ -545,7 +551,7 @@ assert_cc(__NR_pkey_mprotect == systemd_NR_pkey_mprotect);
- #elif defined __sparc__
- #  define systemd_NR_statx 360
- #elif defined __x86_64__
--#  define systemd_NR_statx 332
-+#  define systemd_NR_statx systemd_SC_arch_bias(332)
- #else
- #  warning "statx() syscall number unknown for your architecture"
- #endif
-@@ -647,7 +653,7 @@ static inline long missing_get_mempolicy(int *mode, unsigned long *nodemask,
- #elif defined __ia64__
- #  define systemd_NR_pidfd_send_signal (424 + 1024)
- #else
--#  define systemd_NR_pidfd_send_signal 424
-+#  define systemd_NR_pidfd_send_signal systemd_SC_arch_bias(424)
- #endif
- 
- /* may be (invalid) negative number due to libseccomp, see PR 13319 */
-@@ -691,7 +697,7 @@ static inline int missing_pidfd_send_signal(int fd, int sig, siginfo_t *info, un
- #elif defined __ia64__
- #  define systemd_NR_pidfd_open (434 + 1024)
- #else
--#  define systemd_NR_pidfd_open 434
-+#  define systemd_NR_pidfd_open systemd_SC_arch_bias(434)
- #endif
- 
- /* may be (invalid) negative number due to libseccomp, see PR 13319 */
diff --git a/debian/patches/ubuntu_revert_systemd.patch b/debian/patches/ubuntu_revert_systemd.patch
index e6482f5b..2f5740cd 100644
--- a/debian/patches/ubuntu_revert_systemd.patch
+++ b/debian/patches/ubuntu_revert_systemd.patch
@@ -1,8 +1,8 @@
-diff --git a/src/platform/nm-linux-platform.c b/src/platform/nm-linux-platform.c
-index b377c85e..ab4f8305 100644
---- a/src/platform/nm-linux-platform.c
-+++ b/src/platform/nm-linux-platform.c
-@@ -26,7 +26,6 @@
+Index: network-manager/src/core/platform/nm-linux-platform.c
+===================================================================
+--- network-manager.orig/src/core/platform/nm-linux-platform.c
++++ network-manager/src/core/platform/nm-linux-platform.c
+@@ -29,7 +29,6 @@
  #include <poll.h>
  #include <sys/ioctl.h>
  #include <sys/socket.h>
@@ -10,7 +10,7 @@ index b377c85e..ab4f8305 100644
  #include <unistd.h>
  
  #include "nm-std-aux/unaligned.h"
-@@ -9528,34 +9527,12 @@ constructed(GObject *_object)
+@@ -9515,34 +9514,12 @@ constructed(GObject *_object)
      }
  }
  
diff --git a/debian/rules b/debian/rules
index df98dc4b..dd373b04 100755
--- a/debian/rules
+++ b/debian/rules
@@ -36,6 +36,7 @@ override_dh_auto_configure:
 		--with-iptables=/usr/sbin/iptables \
 		--with-dnsmasq=/usr/sbin/dnsmasq \
 		--with-dnssec-trigger=/usr/lib/dnssec-trigger/dnssec-trigger-script \
+		--with-polkit-agent-helper-1=/usr/lib/policykit-1/polkit-agent-helper-1 \
 		--with-systemdsystemunitdir=/lib/systemd/system \
 		--with-udev-dir=/lib/udev \
 		--with-dbus-sys-dir=/usr/share/dbus-1/system.d \