[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#984925: pre-approval: updating python-networkmanager to 2.2 (bugfix release) in bullseye



Package: release.debian.org
Severity: normal

Hello release-team,

I'm asking for a pre-approval for updating python-networkmanager
to a new upstream release in bullseye. In my own opinion it
seems new version basically seems to consist 100% of crasher fixes
so trying to backport targeted fixes seems pointless. (In other words,
newly added constants for new features in bullseye version of NM to
avoid crashing when getting that kind of data from NM, plus fix for
#934743, plus whatever the 'address-data' + 'route-data' settings stuff
does).

In my opinion the current state is pretty useless since simple
operations like enumerating devices causes a crash, but at the same time
the ONE and only reverse dependency in bullseye (comitup) looks to be
actively maintained so presumably that one atleast works (OTOH with a
popcon of around 8 I don't have high confidence that users would have
reported a bug if it didn't).

If you think this (is ok to upload to unstable and) has a chance to get
unblocked, I'll get right on it (with the first step being filing the
bug report on python3-networkmanager with RC severity).


# git diff 2.1..2.2 | filterdiff -i '*.py' -x '*/.github/*' -x '*/ci/*' -x '*/setup.py' -x '*/docs/*'
diff --git a/.github/workflows/gh-pages.yml b/.github/workflows/gh-pages.yml
new file mode 100644
index 0000000..7a1361e
diff --git a/.github/workflows/python-publish.yml b/.github/workflows/python-publish.yml
new file mode 100644
index 0000000..4e1ef42
diff --git a/NetworkManager.py b/NetworkManager.py
index 3d137fe..e66beba 100644
--- a/NetworkManager.py
+++ b/NetworkManager.py
@@ -1,7 +1,7 @@
 # NetworkManager - a library to make interacting with the NetworkManager daemon
 # easier.
 #
-# (C)2011-2017 Dennis Kaarsemaker
+# (C)2011-2021 Dennis Kaarsemaker
 # License: zlib
 
 import copy
@@ -258,7 +258,7 @@ class NMDbusInterface(object):
     @property
     def proxy(self):
         if not self._proxy:
-            self._proxy = dbus.SystemBus().get_object(self.dbus_service, self.object_path)
+            self._proxy = dbus.SystemBus().get_object(self.dbus_service, self.object_path, follow_name_owner_changes=True)
             self._proxy.created = time.time()
         elif self._proxy.created < self.last_disconnect:
             if self.is_transient:
@@ -389,7 +389,12 @@ def device_class(typ):
         NM_DEVICE_TYPE_PPP: PPP,
         NM_DEVICE_TYPE_OVS_INTERFACE: OvsIf,
         NM_DEVICE_TYPE_OVS_PORT: OvsPort,
-        NM_DEVICE_TYPE_OVS_BRIDGE: OvsBridge
+        NM_DEVICE_TYPE_OVS_BRIDGE: OvsBridge,
+        NM_DEVICE_TYPE_WPAN: Wpan,
+        NM_DEVICE_TYPE_6LOWPAN: SixLoWpan,
+        NM_DEVICE_TYPE_WIREGUARD: WireGuard,
+        NM_DEVICE_TYPE_VRF: Vrf,
+        NM_DEVICE_TYPE_WIFI_P2P: WifiP2p,
     }[typ]
 
 class Adsl(Device): pass
@@ -416,6 +421,11 @@ class PPP(Device): pass
 class OvsIf(Device): pass
 class OvsPort(Device): pass
 class OvsBridge(Device): pass
+class Wpan(Device): pass
+class SixLoWpan(Device): pass
+class WireGuard(Device): pass
+class WifiP2p(Device): pass
+class Vrf(Device): pass
 
 class NSP(TransientNMDbusInterface):
     interface_names = ['org.freedesktop.NetworkManager.Wimax.NSP']
@@ -504,6 +514,12 @@ class fixups(object):
                     settings['ipv4']['address-data'] = dbus.Array(
                         settings['ipv4']['address-data'],
                         signature=dbus.Signature('a{sv}'))
+                if 'route-data' in settings['ipv4']:
+                    for item in settings['ipv4']['route-data']:
+                        item['prefix'] = dbus.UInt32(item['prefix'])
+                    settings['ipv4']['route-data'] = dbus.Array(
+                        settings['ipv4']['route-data'],
+                        signature=dbus.Signature('a{sv}'))
                 if 'addresses' in settings['ipv4']:
                     settings['ipv4']['addresses'] = [fixups.addrconf_to_dbus(addr,socket.AF_INET) for addr in settings['ipv4']['addresses']]
                 if 'routes' in settings['ipv4']:
@@ -511,6 +527,18 @@ class fixups(object):
                 if 'dns' in settings['ipv4']:
                     settings['ipv4']['dns'] = [fixups.addr_to_dbus(addr,socket.AF_INET) for addr in settings['ipv4']['dns']]
             if 'ipv6' in settings:
+                if 'address-data' in settings['ipv6']:
+                    for item in settings['ipv6']['address-data']:
+                        item['prefix'] = dbus.UInt32(item['prefix'])
+                    settings['ipv6']['address-data'] = dbus.Array(
+                        settings['ipv6']['address-data'],
+                        signature=dbus.Signature('a{sv}'))
+                if 'route-data' in settings['ipv6']:
+                    for item in settings['ipv6']['route-data']:
+                        item['prefix'] = dbus.UInt32(item['prefix'])
+                    settings['ipv6']['route-data'] = dbus.Array(
+                        settings['ipv6']['route-data'],
+                        signature=dbus.Signature('a{sv}'))
                 if 'addresses' in settings['ipv6']:
                     settings['ipv6']['addresses'] = [fixups.addrconf_to_dbus(addr,socket.AF_INET6) for addr in settings['ipv6']['addresses']]
                 if 'routes' in settings['ipv6']:
@@ -740,6 +768,7 @@ del xml_cache
 
 # Constants below are generated with makeconstants.py. Do not edit manually.
 NM_CAPABILITY_TEAM = 1
+NM_CAPABILITY_OVS = 2
 NM_STATE_UNKNOWN = 0
 NM_STATE_ASLEEP = 10
 NM_STATE_DISCONNECTED = 20
@@ -780,6 +809,11 @@ NM_DEVICE_TYPE_PPP = 23
 NM_DEVICE_TYPE_OVS_INTERFACE = 24
 NM_DEVICE_TYPE_OVS_PORT = 25
 NM_DEVICE_TYPE_OVS_BRIDGE = 26
+NM_DEVICE_TYPE_WPAN = 27
+NM_DEVICE_TYPE_6LOWPAN = 28
+NM_DEVICE_TYPE_WIREGUARD = 29
+NM_DEVICE_TYPE_WIFI_P2P = 30
+NM_DEVICE_TYPE_VRF = 31
 NM_DEVICE_CAP_NONE = 0
 NM_DEVICE_CAP_NM_SUPPORTED = 1
 NM_DEVICE_CAP_CARRIER_DETECT = 2
@@ -797,6 +831,8 @@ NM_WIFI_DEVICE_CAP_ADHOC = 128
 NM_WIFI_DEVICE_CAP_FREQ_VALID = 256
 NM_WIFI_DEVICE_CAP_FREQ_2GHZ = 512
 NM_WIFI_DEVICE_CAP_FREQ_5GHZ = 1024
+NM_WIFI_DEVICE_CAP_MESH = 4096
+NM_WIFI_DEVICE_CAP_IBSS_RSN = 8192
 NM_802_11_AP_FLAGS_NONE = 0
 NM_802_11_AP_FLAGS_PRIVACY = 1
 NM_802_11_AP_FLAGS_WPS = 2
@@ -813,10 +849,14 @@ NM_802_11_AP_SEC_GROUP_TKIP = 64
 NM_802_11_AP_SEC_GROUP_CCMP = 128
 NM_802_11_AP_SEC_KEY_MGMT_PSK = 256
 NM_802_11_AP_SEC_KEY_MGMT_802_1X = 512
+NM_802_11_AP_SEC_KEY_MGMT_SAE = 1024
+NM_802_11_AP_SEC_KEY_MGMT_OWE = 2048
+NM_802_11_AP_SEC_KEY_MGMT_OWE_TM = 4096
 NM_802_11_MODE_UNKNOWN = 0
 NM_802_11_MODE_ADHOC = 1
 NM_802_11_MODE_INFRA = 2
 NM_802_11_MODE_AP = 3
+NM_802_11_MODE_MESH = 4
 NM_BT_CAPABILITY_NONE = 0
 NM_BT_CAPABILITY_DUN = 1
 NM_BT_CAPABILITY_NAP = 2
@@ -908,11 +948,17 @@ NM_DEVICE_STATE_REASON_PARENT_MANAGED_CHANGED = 62
 NM_DEVICE_STATE_REASON_OVSDB_FAILED = 63
 NM_DEVICE_STATE_REASON_IP_ADDRESS_DUPLICATE = 64
 NM_DEVICE_STATE_REASON_IP_METHOD_UNSUPPORTED = 65
+NM_DEVICE_STATE_REASON_SRIOV_CONFIGURATION_FAILED = 66
+NM_DEVICE_STATE_REASON_PEER_NOT_FOUND = 67
 NM_METERED_UNKNOWN = 0
 NM_METERED_YES = 1
 NM_METERED_NO = 2
 NM_METERED_GUESS_YES = 3
 NM_METERED_GUESS_NO = 4
+NM_CONNECTION_MULTI_CONNECT_DEFAULT = 0
+NM_CONNECTION_MULTI_CONNECT_SINGLE = 1
+NM_CONNECTION_MULTI_CONNECT_MANUAL_MULTIPLE = 2
+NM_CONNECTION_MULTI_CONNECT_MULTIPLE = 3
 NM_ACTIVE_CONNECTION_STATE_UNKNOWN = 0
 NM_ACTIVE_CONNECTION_STATE_ACTIVATING = 1
 NM_ACTIVE_CONNECTION_STATE_ACTIVATED = 2
@@ -950,14 +996,22 @@ NM_IP_TUNNEL_MODE_IP6IP6 = 6
 NM_IP_TUNNEL_MODE_IPIP6 = 7
 NM_IP_TUNNEL_MODE_IP6GRE = 8
 NM_IP_TUNNEL_MODE_VTI6 = 9
+NM_IP_TUNNEL_MODE_GRETAP = 10
+NM_IP_TUNNEL_MODE_IP6GRETAP = 11
 NM_CHECKPOINT_CREATE_FLAG_NONE = 0
 NM_CHECKPOINT_CREATE_FLAG_DESTROY_ALL = 1
 NM_CHECKPOINT_CREATE_FLAG_DELETE_NEW_CONNECTIONS = 2
 NM_CHECKPOINT_CREATE_FLAG_DISCONNECT_NEW_DEVICES = 4
+NM_CHECKPOINT_CREATE_FLAG_ALLOW_OVERLAPPING = 8
 NM_ROLLBACK_RESULT_OK = 0
 NM_ROLLBACK_RESULT_ERR_NO_DEVICE = 1
 NM_ROLLBACK_RESULT_ERR_DEVICE_UNMANAGED = 2
 NM_ROLLBACK_RESULT_ERR_FAILED = 3
+NM_SETTINGS_CONNECTION_FLAG_NONE = 0
+NM_SETTINGS_CONNECTION_FLAG_UNSAVED = 1
+NM_SETTINGS_CONNECTION_FLAG_NM_GENERATED = 2
+NM_SETTINGS_CONNECTION_FLAG_VOLATILE = 4
+NM_SETTINGS_CONNECTION_FLAG_EXTERNAL = 8
 NM_ACTIVATION_STATE_FLAG_NONE = 0
 NM_ACTIVATION_STATE_FLAG_IS_MASTER = 1
 NM_ACTIVATION_STATE_FLAG_IS_SLAVE = 2
@@ -965,6 +1019,12 @@ NM_ACTIVATION_STATE_FLAG_LAYER2_READY = 4
 NM_ACTIVATION_STATE_FLAG_IP4_READY = 8
 NM_ACTIVATION_STATE_FLAG_IP6_READY = 16
 NM_ACTIVATION_STATE_FLAG_MASTER_HAS_SLAVES = 32
+NM_ACTIVATION_STATE_FLAG_LIFETIME_BOUND_TO_PROFILE_VISIBILITY = 64
+NM_ACTIVATION_STATE_FLAG_EXTERNAL = 128
+NM_SETTINGS_ADD_CONNECTION2_FLAG_NONE = 0
+NM_SETTINGS_ADD_CONNECTION2_FLAG_TO_DISK = 1
+NM_SETTINGS_ADD_CONNECTION2_FLAG_IN_MEMORY = 2
+NM_SETTINGS_ADD_CONNECTION2_FLAG_BLOCK_AUTOCONNECT = 32
 NM_SETTINGS_UPDATE2_FLAG_NONE = 0
 NM_SETTINGS_UPDATE2_FLAG_TO_DISK = 1
 NM_SETTINGS_UPDATE2_FLAG_IN_MEMORY = 2
@@ -972,6 +1032,42 @@ NM_SETTINGS_UPDATE2_FLAG_IN_MEMORY_DETACHED = 4
 NM_SETTINGS_UPDATE2_FLAG_IN_MEMORY_ONLY = 8
 NM_SETTINGS_UPDATE2_FLAG_VOLATILE = 16
 NM_SETTINGS_UPDATE2_FLAG_BLOCK_AUTOCONNECT = 32
+NM_SETTINGS_UPDATE2_FLAG_NO_REAPPLY = 64
+NM_TERNARY_DEFAULT = -1
+NM_TERNARY_FALSE = 0
+NM_TERNARY_TRUE = 1
+NM_MANAGER_RELOAD_FLAG_NONE = 0
+NM_MANAGER_RELOAD_FLAG_CONF = 1
+NM_MANAGER_RELOAD_FLAG_DNS_RC = 2
+NM_MANAGER_RELOAD_FLAG_DNS_FULL = 4
+NM_MANAGER_RELOAD_FLAG_ALL = 7
+NM_DEVICE_INTERFACE_FLAG_NONE = 0
+NM_DEVICE_INTERFACE_FLAG_UP = 1
+NM_DEVICE_INTERFACE_FLAG_LOWER_UP = 2
+NM_DEVICE_INTERFACE_FLAG_CARRIER = 65536
+NM_CLIENT_PERMISSION_NONE = 0
+NM_CLIENT_PERMISSION_ENABLE_DISABLE_NETWORK = 1
+NM_CLIENT_PERMISSION_ENABLE_DISABLE_WIFI = 2
+NM_CLIENT_PERMISSION_ENABLE_DISABLE_WWAN = 3
+NM_CLIENT_PERMISSION_ENABLE_DISABLE_WIMAX = 4
+NM_CLIENT_PERMISSION_SLEEP_WAKE = 5
+NM_CLIENT_PERMISSION_NETWORK_CONTROL = 6
+NM_CLIENT_PERMISSION_WIFI_SHARE_PROTECTED = 7
+NM_CLIENT_PERMISSION_WIFI_SHARE_OPEN = 8
+NM_CLIENT_PERMISSION_SETTINGS_MODIFY_SYSTEM = 9
+NM_CLIENT_PERMISSION_SETTINGS_MODIFY_OWN = 10
+NM_CLIENT_PERMISSION_SETTINGS_MODIFY_HOSTNAME = 11
+NM_CLIENT_PERMISSION_SETTINGS_MODIFY_GLOBAL_DNS = 12
+NM_CLIENT_PERMISSION_RELOAD = 13
+NM_CLIENT_PERMISSION_CHECKPOINT_ROLLBACK = 14
+NM_CLIENT_PERMISSION_ENABLE_DISABLE_STATISTICS = 15
+NM_CLIENT_PERMISSION_ENABLE_DISABLE_CONNECTIVITY_CHECK = 16
+NM_CLIENT_PERMISSION_WIFI_SCAN = 17
+NM_CLIENT_PERMISSION_LAST = 17
+NM_CLIENT_PERMISSION_RESULT_UNKNOWN = 0
+NM_CLIENT_PERMISSION_RESULT_YES = 1
+NM_CLIENT_PERMISSION_RESULT_AUTH = 2
+NM_CLIENT_PERMISSION_RESULT_NO = 3
 NM_VPN_SERVICE_STATE_UNKNOWN = 0
 NM_VPN_SERVICE_STATE_INIT = 1
 NM_VPN_SERVICE_STATE_SHUTDOWN = 2
diff --git a/ci/python-networkmanager.yml b/ci/python-networkmanager.yml
new file mode 100644
index 0000000..f806955


Regards,
Andreas Henriksson


PS. Many thanks for making sure we go into hard-freeze with a reasonable
amount of (not -ignore tagged) RC bug reports this time around! Really
refreshing to atleast read that you're attempting to shorten the freeze!


Reply to: