diff --git a/.NetworkManager.metadata b/.NetworkManager.metadata index 56a8837..8dfa229 100644 --- a/.NetworkManager.metadata +++ b/.NetworkManager.metadata @@ -1 +1 @@ -4f0745b84feefa57ca83d43310860bffa666e0d4 SOURCES/NetworkManager-1.26.0.tar.xz +550918f97f1614532a317465220d6b5cab08d47a SOURCES/NetworkManager-1.30.0.tar.xz diff --git a/.gitignore b/.gitignore index f12bf8a..7cd840b 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1 @@ -SOURCES/NetworkManager-1.26.0.tar.xz +SOURCES/NetworkManager-1.30.0.tar.xz diff --git a/SOURCES/1000-bond-avoid-logging-warning-to-set-ad_actor_system-00.patch b/SOURCES/1000-bond-avoid-logging-warning-to-set-ad_actor_system-00.patch new file mode 100644 index 0000000..fb34c79 --- /dev/null +++ b/SOURCES/1000-bond-avoid-logging-warning-to-set-ad_actor_system-00.patch @@ -0,0 +1,91 @@ +From 9f90c590d73eb86e357bf4a854af41b73039342c Mon Sep 17 00:00:00 2001 +From: Thomas Haller +Date: Tue, 23 Feb 2021 13:28:10 +0100 +Subject: [PATCH 1/1] bond: avoid logging warning to set + "ad_actor_system=00:00:00:00:00:00" + +The bond option ad_actor_system only matters (and is available) with +mode=802.3ad. + +When you create a new bond, the sysctl value will be set to "00:00:00:00:00:00". +So this seems to be a valid value, and in fact the default value for +this option. However, kernel will fail with EINVAL to set the sysctl to +"00:00:00:00:00:00". Kernel fails both if the value is already +"00:00:00:00:00:00" (i.e. setting the same value results in an error) and +it also fails otherwise (i.e. we cannot ever reset the value to +"00:00:00:00:00:00", at least not via sysfs). + +Avoid the warning in the common case, where the value is already as +expected. + +Otherwise, we still get the warning and won't be able to set the right +value. But this is really a limitation of the kernel API where we cannot +do anything about it (in NetworkManager). + +https://bugzilla.redhat.com/show_bug.cgi?id=1923999 +(cherry picked from commit 9e7af314546d7912ee23b3850230008902aca4d3) +(cherry picked from commit 199ac9b146b0d7b1d6679a8d703822447abc3ce7) +--- + libnm-core/nm-core-internal.h | 2 ++ + libnm-core/nm-setting-bond.c | 2 +- + src/core/devices/nm-device-bond.c | 18 ++++++++++++++++++ + 3 files changed, 21 insertions(+), 1 deletion(-) + +diff --git a/libnm-core/nm-core-internal.h b/libnm-core/nm-core-internal.h +index d9374fe5a7a8..e386d5e9d074 100644 +--- a/libnm-core/nm-core-internal.h ++++ b/libnm-core/nm-core-internal.h +@@ -586,6 +586,8 @@ NMBondOptionType _nm_setting_bond_get_option_type(NMSettingBond *setting, const + + const char *nm_setting_bond_get_option_or_default(NMSettingBond *self, const char *option); + ++#define NM_BOND_AD_ACTOR_SYSTEM_DEFAULT "00:00:00:00:00:00" ++ + /*****************************************************************************/ + + /* nm_connection_get_uuid() asserts against NULL, which is the right thing to +diff --git a/libnm-core/nm-setting-bond.c b/libnm-core/nm-setting-bond.c +index 2d64ef02b48c..68d4ca88f678 100644 +--- a/libnm-core/nm-setting-bond.c ++++ b/libnm-core/nm-setting-bond.c +@@ -337,7 +337,7 @@ _bond_get_option_normalized(NMSettingBond *self, const char *option, gboolean ge + if (nm_streq(option, NM_SETTING_BOND_OPTION_AD_ACTOR_SYSTEM)) { + /* The default value depends on the current mode */ + if (mode == NM_BOND_MODE_8023AD) +- return "00:00:00:00:00:00"; ++ return NM_BOND_AD_ACTOR_SYSTEM_DEFAULT; + return ""; + } + +diff --git a/src/core/devices/nm-device-bond.c b/src/core/devices/nm-device-bond.c +index f68c080b1839..5814aef4518f 100644 +--- a/src/core/devices/nm-device-bond.c ++++ b/src/core/devices/nm-device-bond.c +@@ -109,6 +109,24 @@ _set_bond_attr(NMDevice *device, const char *attr, const char *value) + int ifindex = nm_device_get_ifindex(device); + gboolean ret; + ++ nm_assert(attr && attr[0]); ++ nm_assert(value); ++ ++ if (nm_streq(value, NM_BOND_AD_ACTOR_SYSTEM_DEFAULT) ++ && nm_streq(attr, NM_SETTING_BOND_OPTION_AD_ACTOR_SYSTEM)) { ++ gs_free char *cur_val = NULL; ++ ++ /* kernel does not allow setting ad_actor_system to "00:00:00:00:00:00". We would thus ++ * log an EINVAL error. Avoid that... at least, if the value is already "00:00:00:00:00:00". */ ++ cur_val = ++ nm_platform_sysctl_master_get_option(nm_device_get_platform(device), ifindex, attr); ++ if (nm_streq0(cur_val, NM_BOND_AD_ACTOR_SYSTEM_DEFAULT)) ++ return TRUE; ++ ++ /* OK, the current value is different, and we will proceed setting "00:00:00:00:00:00". ++ * That will fail, and we will log a warning. There is nothing else to do. */ ++ } ++ + ret = + nm_platform_sysctl_master_set_option(nm_device_get_platform(device), ifindex, attr, value); + if (!ret) +-- +2.29.2 + diff --git a/SOURCES/1000-team-fix-crash-rh1856723.patch b/SOURCES/1000-team-fix-crash-rh1856723.patch deleted file mode 100644 index 5f98f2a..0000000 --- a/SOURCES/1000-team-fix-crash-rh1856723.patch +++ /dev/null @@ -1,37 +0,0 @@ -From a1198f4f6d95682bc4126fe4f13d8c549394d8b6 Mon Sep 17 00:00:00 2001 -From: Beniamino Galvani -Date: Tue, 14 Jul 2020 22:52:56 +0200 -Subject: [PATCH] team: perform cleanup immediately when connecting to teamd - fails - -When NM fails to connect to teamd during an activation, it sets the -device state to FAILED. Eventually the device will become DISCONNECTED -and will call the ->deactivate() method that will perform the cleanup -of timers, teamd process and teamdctl instance. - -However, in this way, when the device is DISCONNECTED timers are still -armed and can be triggered in the wrong state. Instead, perform the -cleanup immediately on failure. - -https://bugzilla.redhat.com/show_bug.cgi?id=1856723 -(cherry picked from commit 26e97fcd0d4a70e32a484d3bfc57c1802da10554) -(cherry picked from commit 680c0b88122077101cbfd878a70d54fb7a4afcea) ---- - src/devices/team/nm-device-team.c | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/src/devices/team/nm-device-team.c b/src/devices/team/nm-device-team.c -index 217c4bdd7c..7ba3034212 100644 ---- a/src/devices/team/nm-device-team.c -+++ b/src/devices/team/nm-device-team.c -@@ -371,6 +371,7 @@ teamd_ready (NMDeviceTeam *self) - success = teamd_read_config (self); - - if (!success) { -+ teamd_cleanup (self, TRUE); - nm_device_state_changed (device, NM_DEVICE_STATE_FAILED, NM_DEVICE_STATE_REASON_TEAMD_CONTROL_FAILED); - return; - } --- -2.26.2 - diff --git a/SOURCES/1001-core-fix-generation-of-dependent-rh1857133.patch b/SOURCES/1001-core-fix-generation-of-dependent-rh1857133.patch deleted file mode 100644 index b236458..0000000 --- a/SOURCES/1001-core-fix-generation-of-dependent-rh1857133.patch +++ /dev/null @@ -1,291 +0,0 @@ -From 7fadadb8f33675d0a12c94f5c0f5c6ecef4a98cf Mon Sep 17 00:00:00 2001 -From: Antonio Cardace -Date: Tue, 14 Jul 2020 11:35:35 +0200 -Subject: [PATCH] core: fix generation of dependent local routes for VRFs - -When using VRF devices we must pre-generate dependent local -routes in the VRF's table otherwise they will be incorrectly added -to the local table instead. - -https://bugzilla.redhat.com/show_bug.cgi?id=1857133 - -Fixes: a199cd2a7d92 ('core: add dependent local routes configured by kernel') -(cherry picked from commit d342af1925223cf8d117750c91f35f3041f05570) -(cherry picked from commit ad64da5e85757eeb729fea377bb92ac41c8b92bd) ---- - src/devices/nm-device.c | 9 ++++++++- - src/nm-iface-helper.c | 11 ++++++++++- - src/nm-ip4-config.c | 19 +++++++++++-------- - src/nm-ip4-config.h | 7 ++++--- - src/nm-ip6-config.c | 17 +++++++++++------ - src/nm-ip6-config.h | 5 +++-- - src/vpn/nm-vpn-connection.c | 19 ++++++++++++++++--- - 7 files changed, 63 insertions(+), 24 deletions(-) - -diff --git a/src/devices/nm-device.c b/src/devices/nm-device.c -index de09e4807..57c32cef8 100644 ---- a/src/devices/nm-device.c -+++ b/src/devices/nm-device.c -@@ -68,6 +68,7 @@ - - #include "nm-device-generic.h" - #include "nm-device-vlan.h" -+#include "nm-device-vrf.h" - #include "nm-device-wireguard.h" - - #include "nm-device-logging.h" -@@ -8097,15 +8098,21 @@ ip_config_merge_and_apply (NMDevice *self, - } - - if (commit) { -+ gboolean is_vrf; -+ -+ is_vrf = priv->master && nm_device_get_device_type (priv->master) == NM_DEVICE_TYPE_VRF; -+ - if (IS_IPv4) { - nm_ip4_config_add_dependent_routes (NM_IP4_CONFIG (composite), - nm_device_get_route_table (self, addr_family), - nm_device_get_route_metric (self, addr_family), -+ is_vrf, - &ip4_dev_route_blacklist); - } else { - nm_ip6_config_add_dependent_routes (NM_IP6_CONFIG (composite), - nm_device_get_route_table (self, addr_family), -- nm_device_get_route_metric (self, addr_family)); -+ nm_device_get_route_metric (self, addr_family), -+ is_vrf); - } - } - -diff --git a/src/nm-iface-helper.c b/src/nm-iface-helper.c -index 6320e722c..c7d65d2a6 100644 ---- a/src/nm-iface-helper.c -+++ b/src/nm-iface-helper.c -@@ -41,11 +41,13 @@ - static struct { - GMainLoop *main_loop; - int ifindex; -+ gboolean is_vrf_device; - - guint dad_failed_id; - CList dad_failed_lst_head; - } gl/*obal*/ = { - .ifindex = -1, -+ .is_vrf_device = FALSE, - }; - - static struct { -@@ -120,6 +122,7 @@ dhcp4_state_changed (NMDhcpClient *client, - nm_ip4_config_add_dependent_routes (existing, - RT_TABLE_MAIN, - global_opt.priority_v4, -+ gl.is_vrf_device, - &ip4_dev_route_blacklist); - if (!nm_ip4_config_commit (existing, - NM_PLATFORM_GET, -@@ -236,7 +239,8 @@ ndisc_config_changed (NMNDisc *ndisc, const NMNDiscData *rdata, guint changed_in - nm_ip6_config_merge (existing, ndisc_config, NM_IP_CONFIG_MERGE_DEFAULT, 0); - nm_ip6_config_add_dependent_routes (existing, - RT_TABLE_MAIN, -- global_opt.priority_v6); -+ global_opt.priority_v6, -+ gl.is_vrf_device); - if (!nm_ip6_config_commit (existing, - NM_PLATFORM_GET, - NM_IP_ROUTE_TABLE_SYNC_MODE_MAIN, -@@ -480,6 +484,11 @@ main (int argc, char *argv[]) - if (pllink) { - hwaddr = nmp_link_address_get_as_bytes (&pllink->l_address); - bcast_hwaddr = nmp_link_address_get_as_bytes (&pllink->l_broadcast); -+ -+ if (pllink->master > 0) { -+ gl.is_vrf_device -+ = nm_platform_link_get_type (NM_PLATFORM_GET, pllink->master) == NM_LINK_TYPE_VRF; -+ } - } - - if (global_opt.iid_str) { -diff --git a/src/nm-ip4-config.c b/src/nm-ip4-config.c -index 490296c8d..f017a3e80 100644 ---- a/src/nm-ip4-config.c -+++ b/src/nm-ip4-config.c -@@ -672,9 +672,11 @@ nm_ip4_config_update_routes_metric (NMIP4Config *self, gint64 metric) - } - - static void --_add_local_route_from_addr4 (NMIP4Config *self, -- const NMPlatformIP4Address *addr, -- int ifindex) -+_add_local_route_from_addr4 (NMIP4Config * self, -+ const NMPlatformIP4Address *addr, -+ int ifindex, -+ guint32 route_table, -+ gboolean is_vrf) - { - nm_auto_nmpobj NMPObject *r = NULL; - NMPlatformIP4Route *route; -@@ -686,18 +688,19 @@ _add_local_route_from_addr4 (NMIP4Config *self, - route->network = addr->address; - route->plen = 32; - route->pref_src = addr->address; -- route->table_coerced = nm_platform_route_table_coerce (RT_TABLE_LOCAL); - route->type_coerced = nm_platform_route_type_coerce (RTN_LOCAL); - route->scope_inv = nm_platform_route_scope_inv (RT_SCOPE_HOST); -+ route->table_coerced = nm_platform_route_table_coerce (is_vrf ? route_table : RT_TABLE_LOCAL); - - _add_route (self, r, NULL, NULL); - } - - void - nm_ip4_config_add_dependent_routes (NMIP4Config *self, -- guint32 route_table, -- guint32 route_metric, -- GPtrArray **out_ip4_dev_route_blacklist) -+ guint32 route_table, -+ guint32 route_metric, -+ gboolean is_vrf, -+ GPtrArray ** out_ip4_dev_route_blacklist) - { - GPtrArray *ip4_dev_route_blacklist = NULL; - const NMPlatformIP4Address *my_addr; -@@ -729,7 +732,7 @@ nm_ip4_config_add_dependent_routes (NMIP4Config *self, - if (my_addr->external) - continue; - -- _add_local_route_from_addr4 (self, my_addr, ifindex); -+ _add_local_route_from_addr4 (self, my_addr, ifindex, route_table, is_vrf); - - if (_ipv4_is_zeronet (network)) { - /* Kernel doesn't add device-routes for destinations that -diff --git a/src/nm-ip4-config.h b/src/nm-ip4-config.h -index d4694d936..dc8222fd5 100644 ---- a/src/nm-ip4-config.h -+++ b/src/nm-ip4-config.h -@@ -157,9 +157,10 @@ NMDedupMultiIndex *nm_ip4_config_get_multi_idx (const NMIP4Config *self); - NMIP4Config *nm_ip4_config_capture (NMDedupMultiIndex *multi_idx, NMPlatform *platform, int ifindex); - - void nm_ip4_config_add_dependent_routes (NMIP4Config *self, -- guint32 route_table, -- guint32 route_metric, -- GPtrArray **out_ip4_dev_route_blacklist); -+ guint32 route_table, -+ guint32 route_metric, -+ gboolean is_vrf, -+ GPtrArray ** out_ip4_dev_route_blacklist); - - gboolean nm_ip4_config_commit (const NMIP4Config *self, - NMPlatform *platform, -diff --git a/src/nm-ip6-config.c b/src/nm-ip6-config.c -index 4911ec1d1..1589cad00 100644 ---- a/src/nm-ip6-config.c -+++ b/src/nm-ip6-config.c -@@ -475,27 +475,32 @@ _add_multicast_route6 (NMIP6Config *self, int ifindex) - } - - static void --_add_local_route_from_addr6 (NMIP6Config *self, const NMPlatformIP6Address *addr, int ifindex) -+_add_local_route_from_addr6 (NMIP6Config * self, -+ const NMPlatformIP6Address *addr, -+ int ifindex, -+ guint32 route_table, -+ gboolean is_vrf) - { - nm_auto_nmpobj NMPObject *r = NULL; -- NMPlatformIP6Route *route; -+ NMPlatformIP6Route * route; - - r = nmp_object_new (NMP_OBJECT_TYPE_IP6_ROUTE, NULL); - route = NMP_OBJECT_CAST_IP6_ROUTE (r); - route->ifindex = ifindex; - route->network = addr->address; - route->plen = 128; -- route->table_coerced = nm_platform_route_table_coerce (RT_TABLE_LOCAL); - route->type_coerced = nm_platform_route_type_coerce (RTN_LOCAL); - route->metric = 0; -+ route->table_coerced = nm_platform_route_table_coerce (is_vrf ? route_table : RT_TABLE_LOCAL); - - _add_route (self, r, NULL, NULL); - } - - void - nm_ip6_config_add_dependent_routes (NMIP6Config *self, -- guint32 route_table, -- guint32 route_metric) -+ guint32 route_table, -+ guint32 route_metric, -+ gboolean is_vrf) - { - const NMPlatformIP6Address *my_addr; - const NMPlatformIP6Route *my_route; -@@ -524,7 +529,7 @@ nm_ip6_config_add_dependent_routes (NMIP6Config *self, - continue; - - /* Pre-generate local route added by kernel */ -- _add_local_route_from_addr6 (self, my_addr, ifindex); -+ _add_local_route_from_addr6 (self, my_addr, ifindex, route_table, is_vrf); - - if (NM_FLAGS_HAS (my_addr->n_ifa_flags, IFA_F_NOPREFIXROUTE)) - continue; -diff --git a/src/nm-ip6-config.h b/src/nm-ip6-config.h -index 36e8518a8..b6f461b29 100644 ---- a/src/nm-ip6-config.h -+++ b/src/nm-ip6-config.h -@@ -93,8 +93,9 @@ NMIP6Config *nm_ip6_config_capture (struct _NMDedupMultiIndex *multi_idx, NMPlat - NMSettingIP6ConfigPrivacy use_temporary); - - void nm_ip6_config_add_dependent_routes (NMIP6Config *self, -- guint32 route_table, -- guint32 route_metric); -+ guint32 route_table, -+ guint32 route_metric, -+ gboolean is_vrf); - - gboolean nm_ip6_config_commit (const NMIP6Config *self, - NMPlatform *platform, -diff --git a/src/vpn/nm-vpn-connection.c b/src/vpn/nm-vpn-connection.c -index 6d995dc48..ff6b8e00c 100644 ---- a/src/vpn/nm-vpn-connection.c -+++ b/src/vpn/nm-vpn-connection.c -@@ -1447,6 +1447,20 @@ get_route_table (NMVpnConnection *self, - return route_table ?: (fallback_main ? RT_TABLE_MAIN : 0); - } - -+static gboolean -+_is_device_vrf (NMVpnConnection *self) -+{ -+ NMDevice *parent; -+ NMDevice *master; -+ -+ parent = nm_active_connection_get_device (NM_ACTIVE_CONNECTION (self)); -+ if (!parent) -+ return FALSE; -+ -+ master = nm_device_get_master (parent); -+ return master && nm_device_get_link_type (master) == NM_LINK_TYPE_VRF; -+} -+ - static void - nm_vpn_connection_ip4_config_get (NMVpnConnection *self, GVariant *dict) - { -@@ -1646,6 +1660,7 @@ nm_vpn_connection_ip4_config_get (NMVpnConnection *self, GVariant *dict) - nm_ip4_config_add_dependent_routes (config, - route_table, - nm_vpn_connection_get_ip4_route_metric (self), -+ _is_device_vrf (self), - &priv->ip4_dev_route_blacklist); - - if (priv->ip4_config) { -@@ -1840,9 +1855,7 @@ next: - nm_ip6_config_add_route (config, &r, NULL); - } - -- nm_ip6_config_add_dependent_routes (config, -- route_table, -- route_metric); -+ nm_ip6_config_add_dependent_routes (config, route_table, route_metric, _is_device_vrf (self)); - - if (priv->ip6_config) { - nm_ip6_config_replace (priv->ip6_config, config, NULL); --- -2.26.2 - diff --git a/SOURCES/1001-core-increase-limit-of-open-file-descriptors-for-Net.patch b/SOURCES/1001-core-increase-limit-of-open-file-descriptors-for-Net.patch new file mode 100644 index 0000000..de68a7b --- /dev/null +++ b/SOURCES/1001-core-increase-limit-of-open-file-descriptors-for-Net.patch @@ -0,0 +1,41 @@ +From a5eb2f55d79b9023fbda6945da09f9bcecea8560 Mon Sep 17 00:00:00 2001 +From: Thomas Haller +Date: Sun, 28 Feb 2021 11:18:16 +0100 +Subject: [PATCH 1/1] core: increase limit of open file descriptors for + NetworkManager.service + +Note that POSIX select() can only handle up to 1024 descriptors. That +means, our code (and the libraries that we use) must not use select(). + +Note that libndp uses select(), which means NetworkManager will crash +when using file descriptors larger than 1023. On the other hand, +depriving NetworkManager of file descriptors will also crash it. +So libndp must be fixed ([1]). + +[1] https://listman.redhat.com/archives/libndp-list/2021-February/msg00000.html + +https://bugzilla.redhat.com/show_bug.cgi?id=1926599 +(cherry picked from commit a708a172a6a289d5399897e7da3a0e38721b1b7e) +(cherry picked from commit 2ca405fa9bd047593cd299691b74af7f44184c71) +--- + data/NetworkManager.service.in | 4 ++++ + 1 file changed, 4 insertions(+) + +diff --git a/data/NetworkManager.service.in b/data/NetworkManager.service.in +index 91ebd9a36e65..9cf1c3d28f47 100644 +--- a/data/NetworkManager.service.in ++++ b/data/NetworkManager.service.in +@@ -19,6 +19,10 @@ CapabilityBoundingSet=CAP_NET_ADMIN CAP_DAC_OVERRIDE CAP_NET_RAW CAP_NET_BIND_SE + ProtectSystem=true + ProtectHome=read-only + ++# We require file descriptors for DHCP etc. When activating many interfaces, ++# the default limit of 1024 is easily reached. ++LimitNOFILE=65536 ++ + [Install] + WantedBy=multi-user.target + Also=NetworkManager-dispatcher.service +-- +2.29.2 + diff --git a/SOURCES/1002-fix-check-on-master-ac-failure-rh1845018.patch b/SOURCES/1002-fix-check-on-master-ac-failure-rh1845018.patch deleted file mode 100644 index 20c6b7e..0000000 --- a/SOURCES/1002-fix-check-on-master-ac-failure-rh1845018.patch +++ /dev/null @@ -1,46 +0,0 @@ -From 39e365733bd3c79c5801d4e6c7a32f133b9af678 Mon Sep 17 00:00:00 2001 -From: Beniamino Galvani -Date: Mon, 6 Jul 2020 17:30:05 +0200 -Subject: [PATCH] core: fix check on master active-connection failure - -The previous check was never satisfied, as the device is assigned to -the active-connection and realized early. Instead, check the -master_ready flag, which tells if the master is ready and, therefore, -if the slave has already been added to the master. - -Before this commit, in some cases a device didn't detect that the -master failed and kept waiting forever. - -https://bugzilla.redhat.com/show_bug.cgi?id=1845018 -https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/merge_requests/568 -(cherry picked from commit 0911d2a4ee1c317f455c01cbad048b994f69844d) -(cherry picked from commit 223f741810db9e457ec512c7626bf9e65d82a6cb) ---- - src/nm-active-connection.c | 6 +++--- - 1 file changed, 3 insertions(+), 3 deletions(-) - -diff --git a/src/nm-active-connection.c b/src/nm-active-connection.c -index 08037ebe71..151fb4d939 100644 ---- a/src/nm-active-connection.c -+++ b/src/nm-active-connection.c -@@ -810,14 +810,14 @@ master_state_cb (NMActiveConnection *master, - gpointer user_data) - { - NMActiveConnection *self = NM_ACTIVE_CONNECTION (user_data); -+ NMActiveConnectionPrivate *priv = NM_ACTIVE_CONNECTION_GET_PRIVATE (self); - NMActiveConnectionState master_state = nm_active_connection_get_state (master); -- NMDevice *master_device = nm_active_connection_get_device (master); - - check_master_ready (self); - - if ( master_state == NM_ACTIVE_CONNECTION_STATE_DEACTIVATING -- && (!master_device || !nm_device_is_real (master_device))) { -- /* Master failed without ever creating or realizing its device */ -+ && !priv->master_ready) { -+ /* Master disconnected before the slave was added */ - if (NM_ACTIVE_CONNECTION_GET_CLASS (self)->master_failed) - NM_ACTIVE_CONNECTION_GET_CLASS (self)->master_failed (self); - } --- -2.26.2 - diff --git a/SOURCES/1002-initrd-apply-mtu-to-bond-connection.patch b/SOURCES/1002-initrd-apply-mtu-to-bond-connection.patch new file mode 100644 index 0000000..22e20b1 --- /dev/null +++ b/SOURCES/1002-initrd-apply-mtu-to-bond-connection.patch @@ -0,0 +1,81 @@ +From 9ab6906ea1c2ddd23a3926b35ed75128dd302d13 Mon Sep 17 00:00:00 2001 +From: Beniamino Galvani +Date: Mon, 1 Mar 2021 21:16:08 +0100 +Subject: [PATCH] initrd: apply the MTU from bond= argument to the bond + connection + +Currently the MTU specified in: + + bond=[::[:[:]]] + +gets applied to the bond ports. Instead it should be applied to the +bond itself. + +Fixes: ecc074b2f8a6 ('initrd: add command line parser') + +https://bugzilla.redhat.com/show_bug.cgi?id=1932502 +https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/merge_requests/767 +(cherry picked from commit 8df3ef5063cf0f8ee904f8fd39e9e64cc60836eb) +(cherry picked from commit 43d16d2cd63a3443704ca7bb539ba5cb673ba183) +--- + src/core/initrd/nmi-cmdline-reader.c | 5 +++-- + src/core/initrd/tests/test-cmdline-reader.c | 7 ++++++- + 2 files changed, 9 insertions(+), 3 deletions(-) + +diff --git a/src/core/initrd/nmi-cmdline-reader.c b/src/core/initrd/nmi-cmdline-reader.c +index 508ef2b25c..5f40f63ef2 100644 +--- a/src/core/initrd/nmi-cmdline-reader.c ++++ b/src/core/initrd/nmi-cmdline-reader.c +@@ -764,6 +764,9 @@ reader_parse_master(Reader *reader, char *argument, const char *type_name, const + mtu = get_word(&argument, ':'); + } + ++ if (mtu) ++ connection_set(connection, NM_SETTING_WIRED_SETTING_NAME, NM_SETTING_WIRED_MTU, mtu); ++ + do { + slave = get_word(&slaves, ','); + if (slave == NULL) +@@ -777,8 +780,6 @@ reader_parse_master(Reader *reader, char *argument, const char *type_name, const + NM_SETTING_CONNECTION_MASTER, + master, + NULL); +- if (mtu) +- connection_set(connection, NM_SETTING_WIRED_SETTING_NAME, NM_SETTING_WIRED_MTU, mtu); + } while (slaves && *slaves != '\0'); + + if (argument && *argument) +diff --git a/src/core/initrd/tests/test-cmdline-reader.c b/src/core/initrd/tests/test-cmdline-reader.c +index 33fb22d364..4b450aae0f 100644 +--- a/src/core/initrd/tests/test-cmdline-reader.c ++++ b/src/core/initrd/tests/test-cmdline-reader.c +@@ -825,13 +825,14 @@ test_bond(void) + { + gs_unref_hashtable GHashTable *connections = NULL; + const char *const * ARGV = NM_MAKE_STRV("rd.route=192.0.2.53::bong0", +- "bond=bong0:eth0,eth1:mode=balance-rr", ++ "bond=bong0:eth0,eth1:mode=balance-rr:9000", + "nameserver=203.0.113.53"); + NMConnection * connection; + NMSettingConnection * s_con; + NMSettingIPConfig * s_ip4; + NMSettingIPConfig * s_ip6; + NMSettingBond * s_bond; ++ NMSettingWired * s_wired; + NMIPRoute * ip_route; + const char * master_uuid; + +@@ -847,6 +848,10 @@ test_bond(void) + master_uuid = nm_connection_get_uuid(connection); + g_assert(master_uuid); + ++ s_wired = nm_connection_get_setting_wired(connection); ++ g_assert(s_wired); ++ g_assert_cmpint(nm_setting_wired_get_mtu(s_wired), ==, 9000); ++ + s_ip4 = nm_connection_get_setting_ip4_config(connection); + g_assert(s_ip4); + g_assert_cmpstr(nm_setting_ip_config_get_method(s_ip4), ==, NM_SETTING_IP4_CONFIG_METHOD_AUTO); +-- +2.29.2 + diff --git a/SOURCES/1003-bond-only-restore-mac-if-cloned.patch b/SOURCES/1003-bond-only-restore-mac-if-cloned.patch new file mode 100644 index 0000000..008f46e --- /dev/null +++ b/SOURCES/1003-bond-only-restore-mac-if-cloned.patch @@ -0,0 +1,68 @@ +From ccc66f603d5fac8748d2271d051bbd1c42eeb682 Mon Sep 17 00:00:00 2001 +From: Beniamino Galvani +Date: Sat, 6 Mar 2021 11:35:12 +0100 +Subject: [PATCH] bond: restore MAC on release only when there is a cloned MAC + address + +Currently we unconditionally reset the MAC to the previous value after +releasing ports. This has some disadvantages: + + - by default, after the last port is removed the bond will have one + of the previous port's address, which could conflict with the port; + + - in some cases, changing the bond MAC is not possible. For example + when the bond is active-backup and has fail_over_mac=1|2. In such + case the netlink call succeeds, but the address doesn't + change; then NM would keep waiting for some time. + +Don't try to restore the MAC unless the bond connection has a cloned +MAC set. + +https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/merge_requests/775 +(cherry picked from commit 190fd9aa9f3fbf5705c2b80b9fc64c89d22b7593) +(cherry picked from commit 4c1e60549a5be170185a77439379cc170d6b3631) +--- + src/core/devices/nm-device-bond.c | 20 ++++++++++++++------ + 1 file changed, 14 insertions(+), 6 deletions(-) + +diff --git a/src/core/devices/nm-device-bond.c b/src/core/devices/nm-device-bond.c +index 5814aef451..247ce41c07 100644 +--- a/src/core/devices/nm-device-bond.c ++++ b/src/core/devices/nm-device-bond.c +@@ -444,9 +444,10 @@ release_slave(NMDevice *device, NMDevice *slave, gboolean configure) + _LOGD(LOGD_BOND, "bond slave %s is already released", nm_device_get_ip_iface(slave)); + + if (configure) { +- /* When the last slave is released the bond MAC will be set to a random +- * value by kernel; remember the current one and restore it afterwards. +- */ ++ NMConnection * applied; ++ NMSettingWired *s_wired; ++ const char * cloned_mac; ++ + address = g_strdup(nm_device_get_hw_address(device)); + + if (ifindex_slave > 0) { +@@ -461,9 +462,16 @@ release_slave(NMDevice *device, NMDevice *slave, gboolean configure) + } + } + +- nm_platform_process_events(nm_device_get_platform(device)); +- if (nm_device_update_hw_address(device)) +- nm_device_hw_addr_set(device, address, "restore", FALSE); ++ if ((applied = nm_device_get_applied_connection(device)) ++ && ((s_wired = nm_connection_get_setting_wired(applied))) ++ && ((cloned_mac = nm_setting_wired_get_cloned_mac_address(s_wired)))) { ++ /* When the last slave is released the bond MAC will be set to a random ++ * value by kernel; if we have set a cloned-mac-address, we need to ++ * restore it to the previous value. */ ++ nm_platform_process_events(nm_device_get_platform(device)); ++ if (nm_device_update_hw_address(device)) ++ nm_device_hw_addr_set(device, address, "restore", FALSE); ++ } + + /* Kernel bonding code "closes" the slave when releasing it, (which clears + * IFF_UP), so we must bring it back up here to ensure carrier changes and +-- +2.29.2 + diff --git a/SOURCES/1003-translations-rh1820552.patch b/SOURCES/1003-translations-rh1820552.patch deleted file mode 100644 index fc319a5..0000000 --- a/SOURCES/1003-translations-rh1820552.patch +++ /dev/null @@ -1,50357 +0,0 @@ -From 589762a4da8ae2d6ffeda6d1fcba5b3ce0f89c70 Mon Sep 17 00:00:00 2001 -From: Beniamino Galvani -Date: Fri, 17 Jul 2020 15:57:38 +0200 -Subject: [PATCH] po: RHEL 8.3 translations - fr,ja,zh-CN - -(cherry picked from commit 74a36168bbc57a8a451ea722e2f01fd78c427641) -(cherry picked from commit 5555887e12019c4097fdfef0a5928fa5fa312060) ---- - po/fr.po | 4540 +++++++++++++++------------ - po/ja.po | 4540 +++++++++++++++------------ - po/ko.po | 8482 +++++++++++++++++++++++++-------------------------- - po/zh_CN.po | 4534 +++++++++++++++------------ - 4 files changed, 11629 insertions(+), 10467 deletions(-) - -diff --git a/po/fr.po b/po/fr.po -index 1b3cca7803..267ad67fb1 100644 ---- a/po/fr.po -+++ b/po/fr.po -@@ -15,7 +15,7 @@ msgid "" - msgstr "" - "Project-Id-Version: PACKAGE VERSION\n" - "Report-Msgid-Bugs-To: \n" --"POT-Creation-Date: 2019-12-23 18:47+0100\n" -+"POT-Creation-Date: 2020-06-30 11:33+0200\n" - "PO-Revision-Date: 2019-08-15 10:06+0000\n" - "Last-Translator: ljanda \n" - "Language-Team: French \n" -@@ -26,7 +26,7 @@ msgstr "" - "Plural-Forms: nplurals=2; plural=n>1;\n" - "X-Generator: Zanata 4.6.2\n" - --#: ../clients/cli/agent.c:23 -+#: ../clients/cli/agent.c:22 - #, c-format - msgid "" - "Usage: nmcli agent { COMMAND | help }\n" -@@ -38,7 +38,7 @@ msgstr "Syntaxe : nmcli agent { COMMAND | help }\n" - "COMMAND := { secret | polkit | all }\n" - "\n" - --#: ../clients/cli/agent.c:31 -+#: ../clients/cli/agent.c:30 - #, c-format - msgid "" - "Usage: nmcli agent secret { help }\n" -@@ -56,7 +56,7 @@ msgstr "Syntaxe : nmcli agent secret { help }\n" - "à l'utilisateur.\n" - "\n" - --#: ../clients/cli/agent.c:41 -+#: ../clients/cli/agent.c:40 - #, c-format - msgid "" - "Usage: nmcli agent polkit { help }\n" -@@ -73,7 +73,7 @@ msgstr "Syntaxe : nmcli agent polkit { help }\n" - "l'utilisateur et donnera la réponse à polkit.\n" - "\n" - --#: ../clients/cli/agent.c:51 -+#: ../clients/cli/agent.c:50 - #, c-format - msgid "" - "Usage: nmcli agent all { help }\n" -@@ -85,113 +85,113 @@ msgstr "Syntaxe : nmcli agent all { help }\n" - "Lance nmcli à la fois en tant qu'agent de secret NetworkManager et agent polkit.\n" - "\n" - --#: ../clients/cli/agent.c:143 -+#: ../clients/cli/agent.c:142 - #, c-format - msgid "nmcli successfully registered as a NetworkManager's secret agent.\n" - msgstr "nmcli est enregistré avec succès comme agent de secret NetworkManager.\n" - --#: ../clients/cli/agent.c:145 -+#: ../clients/cli/agent.c:144 - #, c-format - msgid "Error: secret agent initialization failed" - msgstr "Erreur : l'initialisation de l'agent de secret a échoué" - --#: ../clients/cli/agent.c:164 --#, c-format --msgid "Error: polkit agent initialization failed: %s" --msgstr "Erreur : l'initialisation de l'agent polkit a échoué : %s" -- --#: ../clients/cli/agent.c:172 -+#: ../clients/cli/agent.c:153 - #, c-format - msgid "nmcli successfully registered as a polkit agent.\n" - msgstr "nmcli est enregistré comme agent polkit.\n" - --#: ../clients/cli/common.c:344 ../clients/cli/common.c:345 --#: ../clients/cli/common.c:376 ../clients/cli/common.c:377 --#: ../clients/cli/connections.c:1495 -+#: ../clients/cli/agent.c:176 -+#, c-format -+msgid "Error: polkit agent initialization failed: %s" -+msgstr "Erreur : l'initialisation de l'agent polkit a échoué : %s" -+ -+#: ../clients/cli/common.c:347 ../clients/cli/common.c:348 -+#: ../clients/cli/common.c:379 ../clients/cli/common.c:380 -+#: ../clients/cli/connections.c:1523 - msgid "GROUP" - msgstr "GROUPE" - --#: ../clients/cli/common.c:628 -+#: ../clients/cli/common.c:631 - #, c-format - msgid "Error: openconnect failed: %s\n" - msgstr "Erreur : échec de openconnect : %s\n" - --#: ../clients/cli/common.c:635 -+#: ../clients/cli/common.c:638 - #, c-format - msgid "Error: openconnect failed with status %d\n" - msgstr "Erreur : échec de openconnect avec l'état %d\n" - --#: ../clients/cli/common.c:637 -+#: ../clients/cli/common.c:640 - #, c-format - msgid "Error: openconnect failed with signal %d\n" - msgstr "Erreur : échec de openconnect avec le signal %d\n" - --#: ../clients/cli/common.c:725 -+#: ../clients/cli/common.c:728 - #, c-format - msgid "" - "Warning: password for '%s' not given in 'passwd-file' and nmcli cannot ask " - "without '--ask' option.\n" - msgstr "Avertissement : le mot de passe pour « %s » n'est pas indiqué dans le paramètre« passwd-file » et nmcli ne peut le demander à l'utilisateur sans l'option « --ask ».\n" - --#: ../clients/cli/common.c:1227 -+#: ../clients/cli/common.c:1244 - #, c-format - msgid "Error: Could not create NMClient object: %s." - msgstr "Erreur : impossible de créer l'objet NMClient : %s." - --#: ../clients/cli/common.c:1246 -+#: ../clients/cli/common.c:1265 - msgid "Error: NetworkManager is not running." - msgstr "Erreur : NetworkManager n'est pas lancé." - --#: ../clients/cli/common.c:1339 -+#: ../clients/cli/common.c:1364 - #, c-format - msgid "Error: argument '%s' not understood. Try passing --help instead." - msgstr "Erreur : paramètre « %s » non reconnu. Essayez plutôt --help." - --#: ../clients/cli/common.c:1347 -+#: ../clients/cli/common.c:1372 - msgid "Error: missing argument. Try passing --help." - msgstr "Erreur : paramètre manquant. Essayez --help." - --#: ../clients/cli/common.c:1414 -+#: ../clients/cli/common.c:1439 - msgid "access denied" - msgstr "accès refusé" - --#: ../clients/cli/common.c:1416 -+#: ../clients/cli/common.c:1441 - msgid "NetworkManager is not running" - msgstr "NetworkManager n'est pas en cours d'exécution." - --#: ../clients/cli/common.c:1442 -+#: ../clients/cli/common.c:1467 - #, c-format - msgid "Error: error connecting to system bus: %s" - msgstr "Erreur : erreur de connexion au bus système : %s" - --#: ../clients/cli/common.c:1468 ../clients/cli/connections.c:66 --#: ../clients/cli/connections.c:75 ../clients/cli/devices.c:427 --#: ../clients/cli/devices.c:519 ../clients/cli/devices.c:526 --#: ../clients/cli/general.c:26 ../clients/cli/general.c:116 --#: ../clients/cli/general.c:121 ../clients/common/nm-client-utils.c:250 --#: ../clients/common/nm-client-utils.c:263 --#: ../clients/common/nm-client-utils.c:267 --#: ../clients/common/nm-client-utils.c:272 --#: ../clients/common/nm-meta-setting-desc.c:1724 --#: ../clients/common/nm-meta-setting-desc.c:1755 --#: ../clients/common/nm-meta-setting-desc.c:2687 --#: ../clients/common/nm-meta-setting-desc.c:2745 -+#: ../clients/cli/common.c:1493 ../clients/cli/connections.c:67 -+#: ../clients/cli/connections.c:77 ../clients/cli/devices.c:434 -+#: ../clients/cli/devices.c:526 ../clients/cli/devices.c:533 -+#: ../clients/cli/general.c:31 ../clients/cli/general.c:86 -+#: ../clients/cli/general.c:91 ../clients/common/nm-client-utils.c:252 -+#: ../clients/common/nm-client-utils.c:265 -+#: ../clients/common/nm-client-utils.c:301 -+#: ../clients/common/nm-client-utils.c:306 -+#: ../clients/common/nm-meta-setting-desc.c:1747 -+#: ../clients/common/nm-meta-setting-desc.c:1778 -+#: ../clients/common/nm-meta-setting-desc.c:2680 -+#: ../clients/common/nm-meta-setting-desc.c:2738 - msgid "unknown" - msgstr "inconnu" - --#: ../clients/cli/common.c:1469 -+#: ../clients/cli/common.c:1494 - msgid "none" - msgstr "aucun" - --#: ../clients/cli/common.c:1470 -+#: ../clients/cli/common.c:1495 - msgid "portal" - msgstr "portail" - --#: ../clients/cli/common.c:1471 -+#: ../clients/cli/common.c:1496 - msgid "limited" - msgstr "limité" - --#: ../clients/cli/common.c:1472 -+#: ../clients/cli/common.c:1497 - msgid "full" - msgstr "plein" - -@@ -225,55 +225,55 @@ msgstr "Connexion(s) (nom, UUID, ou chemin) : " - msgid "Connection(s) (name, UUID, path or apath): " - msgstr "Connexion(s) (nom, UUID, path ou apath) : " - --#: ../clients/cli/connections.c:67 -+#: ../clients/cli/connections.c:68 - msgid "activating" - msgstr "activation" - --#: ../clients/cli/connections.c:68 -+#: ../clients/cli/connections.c:69 - msgid "activated" - msgstr "activé" - --#: ../clients/cli/connections.c:69 ../clients/common/nm-client-utils.c:261 -+#: ../clients/cli/connections.c:70 ../clients/common/nm-client-utils.c:263 - msgid "deactivating" - msgstr "désactivation" - --#: ../clients/cli/connections.c:70 -+#: ../clients/cli/connections.c:71 - msgid "deactivated" - msgstr "désactivé" - --#: ../clients/cli/connections.c:76 -+#: ../clients/cli/connections.c:78 - msgid "VPN connecting (prepare)" - msgstr "Connexion VPN (préparation)" - --#: ../clients/cli/connections.c:77 -+#: ../clients/cli/connections.c:79 - msgid "VPN connecting (need authentication)" - msgstr "Connexion VPN (authentification requise)" - --#: ../clients/cli/connections.c:78 -+#: ../clients/cli/connections.c:80 - msgid "VPN connecting" - msgstr "Connexion VPN" - --#: ../clients/cli/connections.c:79 -+#: ../clients/cli/connections.c:81 - msgid "VPN connecting (getting IP configuration)" - msgstr "Connexion VPN (obtention de la configuration IP)" - --#: ../clients/cli/connections.c:80 -+#: ../clients/cli/connections.c:82 - msgid "VPN connected" - msgstr "VPN connecté" - --#: ../clients/cli/connections.c:81 -+#: ../clients/cli/connections.c:83 - msgid "VPN connection failed" - msgstr "Échec de la connexion VPN" - --#: ../clients/cli/connections.c:82 -+#: ../clients/cli/connections.c:84 - msgid "VPN disconnected" - msgstr "VPN déconnecté" - --#: ../clients/cli/connections.c:544 -+#: ../clients/cli/connections.c:546 - msgid "never" - msgstr "jamais" - --#: ../clients/cli/connections.c:904 -+#: ../clients/cli/connections.c:907 - #, c-format - msgid "" - "Usage: nmcli connection { COMMAND | help }\n" -@@ -345,7 +345,7 @@ msgstr "Usage: nmcli connection { COMMAND | help }\n" - " export [id | uuid | path] []\n" - "\n" - --#: ../clients/cli/connections.c:926 -+#: ../clients/cli/connections.c:929 - #, c-format - msgid "" - "Usage: nmcli connection show { ARGUMENTS | help }\n" -@@ -387,7 +387,7 @@ msgstr "Syntaxe : nmcli connection show { ARGUMENTS | help }\n" - "Lorsque l'option --active est spécifiée, seuls les profils actifs sont pris en\n" - "compte. L'utilisation de l'option --show-secrets révéle également les secrets associés.\n" - --#: ../clients/cli/connections.c:947 -+#: ../clients/cli/connections.c:950 - #, c-format - msgid "" - "Usage: nmcli connection up { ARGUMENTS | help }\n" -@@ -428,7 +428,7 @@ msgstr "Syntaxe : nmcli connection up { ARGUMENTS | help }\n" - "passwd-file - fichier contenant les mots de passe requis pour l'activation de la connexion\n" - "\n" - --#: ../clients/cli/connections.c:968 -+#: ../clients/cli/connections.c:971 - #, c-format - msgid "" - "Usage: nmcli connection down { ARGUMENTS | help }\n" -@@ -449,7 +449,7 @@ msgstr "Syntaxe : nmcli connection down { ARGUMENTS | help }\n" - "UUID ou chemin D-Bus.\n" - "\n" - --#: ../clients/cli/connections.c:980 -+#: ../clients/cli/connections.c:983 - #, c-format - msgid "" - "Usage: nmcli connection add { ARGUMENTS | help }\n" -@@ -757,7 +757,7 @@ msgstr "Usage: nmcli connection add { ARGUMENTS | help }\n" - " [ip6 ] [gw6 ]\n" - "\n" - --#: ../clients/cli/connections.c:1104 -+#: ../clients/cli/connections.c:1107 - #, c-format - msgid "" - "Usage: nmcli connection modify { ARGUMENTS | help }\n" -@@ -770,6 +770,10 @@ msgid "" - "The '+' sign allows appending items instead of overwriting the whole value.\n" - "The '-' sign allows removing selected items instead of the whole value.\n" - "\n" -+"ARGUMENTS := remove \n" -+"\n" -+"Remove a setting from the connection profile.\n" -+"\n" - "Examples:\n" - "nmcli con mod home-wifi wifi.ssid rakosnicek\n" - "nmcli con mod em1-1 ipv4.method manual ipv4.addr \"192.168.1.2/24, " -@@ -779,16 +783,17 @@ msgid "" - "nmcli con mod em1-1 -ipv6.addr \"abbe::cafe/56\"\n" - "nmcli con mod bond0 +bond.options mii=500\n" - "nmcli con mod bond0 -bond.options downdelay\n" -+"nmcli con mod em1-1 remove sriov\n" - "\n" - msgstr "Syntaxe : nmcli connection modify { ARGUMENTS | help }\n" - "\n" - "ARGUMENTS := [id | uuid | path] ([+|-]. )+\n" - "\n" - "Modifie une ou plusieurs des propriétés du profil de connexion.\n" --"Le profil est identifié par son nom, son UUID ou son D-Bus. Pour les propriétés aux valeurs multiples\n" -+"Le profil est identifié par son nom, son UUID ou son D-Bus. Pour les propriétés aux valeurs multiples,\n" - "vous pouvez utiliser en option le préfixe « + » ou « -» préfixe devant le nom de la propriété.\n" - "Le signe « + » permet l’ajout d’éléments au lieu d’écraser la valeur entière.\n" --"Le « - » signe permet de supprimer les éléments sélectionnés, plutôt que la valeur entière.\n" -+"Le signe « - » permet de supprimer les éléments sélectionnés, plutôt que la valeur entière.\n" - "\n" - "Exemples :\n" - "nmcli con mod home-wifi wifi.ssid rakosnicek\n" -@@ -798,9 +803,9 @@ msgstr "Syntaxe : nmcli connection modify { ARGUMENTS | help }\n" - "nmcli con mod em1-1 -ipv6.addr \"abbe::cafe/56\"\n" - "nmcli con mod bond0 +bond.options mii=500\n" - "nmcli con mod bond0 -bond.options downdelay\n" --"\n" -+"nmcli con mod em1-1 remove sriov\n" - --#: ../clients/cli/connections.c:1127 -+#: ../clients/cli/connections.c:1135 - #, c-format - msgid "" - "Usage: nmcli connection clone { ARGUMENTS | help }\n" -@@ -820,7 +825,7 @@ msgstr "Syntaxe : nmcli connection clone { ARGUMENTS | help }\n" - "l'id (fourni comme argument ).\n" - "\n" - --#: ../clients/cli/connections.c:1139 -+#: ../clients/cli/connections.c:1147 - #, c-format - msgid "" - "Usage: nmcli connection edit { ARGUMENTS | help }\n" -@@ -846,7 +851,7 @@ msgstr "Syntaxe : nmcli connection edit { ARGUMENTS | help }\n" - "Ajoute un nouveau profil de connexion dans un éditeur interactif.\n" - "\n" - --#: ../clients/cli/connections.c:1154 -+#: ../clients/cli/connections.c:1162 - #, c-format - msgid "" - "Usage: nmcli connection delete { ARGUMENTS | help }\n" -@@ -864,7 +869,7 @@ msgstr "Syntaxe : nmcli connection delete { ARGUMENTS | help }\n" - "Le profil est identifié par son nom, UUID ou chemin D-Bus.\n" - "\n" - --#: ../clients/cli/connections.c:1165 -+#: ../clients/cli/connections.c:1173 - #, c-format - msgid "" - "Usage: nmcli connection monitor { ARGUMENTS | help }\n" -@@ -884,7 +889,7 @@ msgstr "Syntaxe : nmcli connection edit { ARGUMENTS | help }\n" - "Surveille tous les profils de connexion si rien n'est spécifié \n" - "\n" - --#: ../clients/cli/connections.c:1177 -+#: ../clients/cli/connections.c:1185 - #, c-format - msgid "" - "Usage: nmcli connection reload { help }\n" -@@ -896,7 +901,7 @@ msgstr "Syntaxe : nmcli connection reload { help }\n" - "Recharge tous les fichiers de connexion à partir du disque.\n" - "\n" - --#: ../clients/cli/connections.c:1185 -+#: ../clients/cli/connections.c:1193 - #, c-format - msgid "" - "Usage: nmcli connection load { ARGUMENTS | help }\n" -@@ -917,7 +922,7 @@ msgstr "Syntaxe : nmcli connection load { ARGUMENTS | help }\n" - "conscient de l'état le plus récent.\n" - "\n" - --#: ../clients/cli/connections.c:1197 -+#: ../clients/cli/connections.c:1205 - #, c-format - msgid "" - "Usage: nmcli connection import { ARGUMENTS | help }\n" -@@ -940,7 +945,7 @@ msgstr "Syntaxe : nmcli connection import { ARGUMENTS | help }\n" - "est importée par les greffons de VPN du NetworkManager.\n" - "\n" - --#: ../clients/cli/connections.c:1210 -+#: ../clients/cli/connections.c:1218 - #, c-format - msgid "" - "Usage: nmcli connection export { ARGUMENTS | help }\n" -@@ -958,344 +963,348 @@ msgstr "Syntaxe : nmcli connection delete { ARGUMENTS | help }\n" - "Les données sont dirigées vers la sortie standard ou vers un fichier si un nom est donné.\n" - "\n" - --#: ../clients/cli/connections.c:1301 -+#: ../clients/cli/connections.c:1309 - #, c-format - msgid "Error updating secrets for %s: %s\n" - msgstr "Erreur lors de la mise à jour des secrets pour l'objet %s : %s\n" - --#: ../clients/cli/connections.c:1348 -+#: ../clients/cli/connections.c:1356 - msgid "Connection profile details" - msgstr "Informations de profil de connexion" - --#: ../clients/cli/connections.c:1361 ../clients/cli/connections.c:1446 -+#: ../clients/cli/connections.c:1369 ../clients/cli/connections.c:1470 - #, c-format - msgid "Error: 'connection show': %s" - msgstr "Erreur : « connection show » : %s" - --#: ../clients/cli/connections.c:1436 -+#: ../clients/cli/connections.c:1458 - msgid "Activate connection details" - msgstr "Informations d'activation de connexion" - --#: ../clients/cli/connections.c:1544 ../clients/cli/devices.c:1485 --#: ../clients/cli/devices.c:1499 ../clients/cli/devices.c:1513 --#: ../clients/cli/devices.c:1528 ../clients/cli/devices.c:1586 --#: ../clients/cli/devices.c:1688 -+#: ../clients/cli/connections.c:1572 ../clients/cli/devices.c:1501 -+#: ../clients/cli/devices.c:1515 ../clients/cli/devices.c:1529 -+#: ../clients/cli/devices.c:1544 ../clients/cli/devices.c:1601 -+#: ../clients/cli/devices.c:1703 - msgid "NAME" - msgstr "NOM" - --#: ../clients/cli/connections.c:1637 -+#: ../clients/cli/connections.c:1665 - #, c-format - msgid "invalid field '%s'; allowed fields: %s and %s, or %s,%s" - msgstr "champ invalide « %s » ; champs autorisés : %s et %s, ou %s,%s" - --#: ../clients/cli/connections.c:1647 ../clients/cli/connections.c:1655 -+#: ../clients/cli/connections.c:1675 ../clients/cli/connections.c:1683 - #, c-format - msgid "'%s' has to be alone" - msgstr "« %s » doit être seul" - --#: ../clients/cli/connections.c:1915 -+#: ../clients/cli/connections.c:1943 - #, c-format - msgid "incorrect string '%s' of '--order' option" - msgstr "chaîne incorrecte « %s » de l'option « --order »" - --#: ../clients/cli/connections.c:1940 -+#: ../clients/cli/connections.c:1968 - #, c-format - msgid "incorrect item '%s' in '--order' option" - msgstr "élément incorrect « %s » de l'option « --order »" - --#: ../clients/cli/connections.c:1978 -+#: ../clients/cli/connections.c:2006 - msgid "No connection specified" - msgstr "Aucune connexion spécifiée." - --#: ../clients/cli/connections.c:1989 -+#: ../clients/cli/connections.c:2017 - #, c-format - msgid "%s argument is missing" - msgstr "le paramètre %s est manquant" - --#: ../clients/cli/connections.c:2007 -+#: ../clients/cli/connections.c:2035 - #, c-format - msgid "unknown connection '%s'" - msgstr "connexion inconnue : « %s »" - --#: ../clients/cli/connections.c:2036 -+#: ../clients/cli/connections.c:2064 - msgid "'--order' argument is missing" - msgstr "l'argument de « --order » est manquant" - --#: ../clients/cli/connections.c:2096 -+#: ../clients/cli/connections.c:2125 - msgid "NetworkManager active profiles" - msgstr "Profils actifs NetworkManager" - - # auto translated by TM merge from project: NetworkManager, version: 0.9.8.2, DocId: NetworkManager --#: ../clients/cli/connections.c:2097 -+#: ../clients/cli/connections.c:2126 - msgid "NetworkManager connection profiles" - msgstr "Profils de connexion NetworkManager" - --#: ../clients/cli/connections.c:2149 ../clients/cli/connections.c:2895 --#: ../clients/cli/connections.c:2907 ../clients/cli/connections.c:2919 --#: ../clients/cli/connections.c:3149 ../clients/cli/connections.c:8969 --#: ../clients/cli/connections.c:8990 ../clients/cli/devices.c:3019 --#: ../clients/cli/devices.c:3031 ../clients/cli/devices.c:3044 --#: ../clients/cli/devices.c:3299 ../clients/cli/devices.c:3310 --#: ../clients/cli/devices.c:3328 ../clients/cli/devices.c:3337 --#: ../clients/cli/devices.c:3358 ../clients/cli/devices.c:3369 --#: ../clients/cli/devices.c:3387 ../clients/cli/devices.c:3905 --#: ../clients/cli/devices.c:3915 ../clients/cli/devices.c:3923 --#: ../clients/cli/devices.c:3935 ../clients/cli/devices.c:3950 --#: ../clients/cli/devices.c:3958 ../clients/cli/devices.c:4101 --#: ../clients/cli/devices.c:4112 ../clients/cli/devices.c:4326 --#: ../clients/cli/devices.c:4495 -+#: ../clients/cli/connections.c:2178 ../clients/cli/connections.c:2857 -+#: ../clients/cli/connections.c:2870 ../clients/cli/connections.c:2883 -+#: ../clients/cli/connections.c:3115 ../clients/cli/connections.c:8986 -+#: ../clients/cli/connections.c:9008 ../clients/cli/devices.c:3121 -+#: ../clients/cli/devices.c:3134 ../clients/cli/devices.c:3146 -+#: ../clients/cli/devices.c:3439 ../clients/cli/devices.c:3450 -+#: ../clients/cli/devices.c:3468 ../clients/cli/devices.c:3477 -+#: ../clients/cli/devices.c:3498 ../clients/cli/devices.c:3509 -+#: ../clients/cli/devices.c:3527 ../clients/cli/devices.c:4047 -+#: ../clients/cli/devices.c:4058 ../clients/cli/devices.c:4067 -+#: ../clients/cli/devices.c:4081 ../clients/cli/devices.c:4098 -+#: ../clients/cli/devices.c:4107 ../clients/cli/devices.c:4253 -+#: ../clients/cli/devices.c:4264 ../clients/cli/devices.c:4480 -+#: ../clients/cli/devices.c:4652 - #, c-format - msgid "Error: %s argument is missing." - msgstr "Erreur : le paramètre %s est manquant." - --#: ../clients/cli/connections.c:2177 -+#: ../clients/cli/connections.c:2206 - #, c-format - msgid "Error: %s - no such connection profile." - msgstr "Erreur : %s - profil de connexion introuvable." - --#: ../clients/cli/connections.c:2268 ../clients/cli/connections.c:2882 --#: ../clients/cli/connections.c:2947 ../clients/cli/connections.c:8506 --#: ../clients/cli/connections.c:8597 ../clients/cli/connections.c:9090 --#: ../clients/cli/devices.c:1773 ../clients/cli/devices.c:2041 --#: ../clients/cli/devices.c:2211 ../clients/cli/devices.c:2319 --#: ../clients/cli/devices.c:2511 ../clients/cli/devices.c:3178 --#: ../clients/cli/devices.c:4064 ../clients/cli/devices.c:4501 --#: ../clients/cli/general.c:982 -+#: ../clients/cli/connections.c:2297 ../clients/cli/connections.c:2843 -+#: ../clients/cli/connections.c:2913 ../clients/cli/connections.c:8527 -+#: ../clients/cli/connections.c:8619 ../clients/cli/connections.c:9113 -+#: ../clients/cli/devices.c:1801 ../clients/cli/devices.c:2069 -+#: ../clients/cli/devices.c:2239 ../clients/cli/devices.c:2352 -+#: ../clients/cli/devices.c:2541 ../clients/cli/devices.c:3318 -+#: ../clients/cli/devices.c:4217 ../clients/cli/devices.c:4659 -+#: ../clients/cli/general.c:997 - #, c-format - msgid "Error: %s." - msgstr "Erreur : %s." - --#: ../clients/cli/connections.c:2361 ../clients/cli/devices.c:4278 -+#: ../clients/cli/connections.c:2389 ../clients/cli/devices.c:4431 - #, c-format - msgid "no active connection on device '%s'" - msgstr "aucune connexion active sur le périphérique « %s »" - --#: ../clients/cli/connections.c:2369 -+#: ../clients/cli/connections.c:2397 - msgid "no active connection or device" - msgstr "aucune connexion ou périphérique actif" - --#: ../clients/cli/connections.c:2389 -+#: ../clients/cli/connections.c:2417 - #, c-format - msgid "device '%s' not compatible with connection '%s': " - msgstr "périphérique « %s » incompatible avec la connexion « %s » : " - --#: ../clients/cli/connections.c:2422 -+#: ../clients/cli/connections.c:2450 - #, c-format - msgid "device '%s' not compatible with connection '%s'" - msgstr "périphérique « %s » incompatible avec la connexion « %s »" - --#: ../clients/cli/connections.c:2425 -+#: ../clients/cli/connections.c:2453 - #, c-format - msgid "no device found for connection '%s'" - msgstr "aucun périphérique trouvé pour la connexion « %s »" - --#: ../clients/cli/connections.c:2476 -+#: ../clients/cli/connections.c:2504 - #, c-format - msgid "Hint: use '%s' to get more details." - msgstr "Astuce : utiliser « %s » pour obtenir plus d'informations." - --#: ../clients/cli/connections.c:2494 -+#: ../clients/cli/connections.c:2522 - #, c-format - msgid "Connection successfully activated (%s) (D-Bus active path: %s)\n" - msgstr "Connexion activée (%s) (Chemin D-Bus actif : %s)\n" - --#: ../clients/cli/connections.c:2498 ../clients/cli/connections.c:2648 --#: ../clients/cli/connections.c:6798 -+#: ../clients/cli/connections.c:2526 ../clients/cli/connections.c:2676 -+#: ../clients/cli/connections.c:6828 - #, c-format - msgid "Connection successfully activated (D-Bus active path: %s)\n" - msgstr "Connexion activée (chemin D-Bus actif : %s)\n" - --#: ../clients/cli/connections.c:2505 ../clients/cli/connections.c:2627 -+#: ../clients/cli/connections.c:2533 ../clients/cli/connections.c:2655 - #, c-format - msgid "Error: Connection activation failed: %s" - msgstr "Erreur : l'activation de la connexion a échoué : %s" - --#: ../clients/cli/connections.c:2542 -+#: ../clients/cli/connections.c:2570 - #, c-format - msgid "Error: Timeout expired (%d seconds)" - msgstr "Erreur : le délai d'attente a expiré (%d secondes)" - --#: ../clients/cli/connections.c:2709 --#, c-format --msgid "failed to read passwd-file '%s': %s" --msgstr "Erreur : échec de lecture du fichier de mot de passe « %s » : %s" -- --#: ../clients/cli/connections.c:2722 --#, c-format --msgid "missing colon in 'password' entry '%s'" --msgstr "Virgule manquant dans la saisie du mot de passe « %s »" -- --#: ../clients/cli/connections.c:2730 --#, c-format --msgid "missing dot in 'password' entry '%s'" --msgstr "Point manquant dans la saisie du mot de passe « %s »" -- - #: ../clients/cli/connections.c:2743 - #, c-format --msgid "invalid setting name in 'password' entry '%s'" --msgstr "Nom du paramètre non valide dans la saisie du mot de passe « %s »" -- --#: ../clients/cli/connections.c:2800 --#, c-format - msgid "unknown device '%s'." - msgstr "périphérique inconnu « %s »." - --#: ../clients/cli/connections.c:2805 -+#: ../clients/cli/connections.c:2748 - msgid "neither a valid connection nor device given" - msgstr "pas de connexion ni de périphérique valide n'a été donné" - --#: ../clients/cli/connections.c:2929 ../clients/cli/connections.c:9000 --#: ../clients/cli/devices.c:1732 ../clients/cli/devices.c:1778 --#: ../clients/cli/devices.c:2216 ../clients/cli/devices.c:3076 --#: ../clients/cli/devices.c:3400 ../clients/cli/devices.c:3967 --#: ../clients/cli/devices.c:4118 ../clients/cli/devices.c:4335 --#: ../clients/cli/devices.c:4505 -+#: ../clients/cli/connections.c:2761 -+#, c-format -+msgid "invalid passwd-file '%s' at line %zd: %s" -+msgstr "fichier passwd non valide '%s' à la ligne %zd: %s" -+ -+#: ../clients/cli/connections.c:2767 -+#, c-format -+msgid "invalid passwd-file '%s': %s" -+msgstr "fichier passwd non valide '%s': %s" -+ -+#: ../clients/cli/connections.c:2894 ../clients/cli/connections.c:9019 -+#: ../clients/cli/devices.c:1759 ../clients/cli/devices.c:1807 -+#: ../clients/cli/devices.c:2245 ../clients/cli/devices.c:3181 -+#: ../clients/cli/devices.c:3540 ../clients/cli/devices.c:4117 -+#: ../clients/cli/devices.c:4270 ../clients/cli/devices.c:4490 -+#: ../clients/cli/devices.c:4664 - #, c-format - msgid "Error: invalid extra argument '%s'." - msgstr "Erreur : argument supplémentaire « %s » non valide." - --#: ../clients/cli/connections.c:2955 -+#: ../clients/cli/connections.c:2922 - msgid "preparing" - msgstr "préparation" - --#: ../clients/cli/connections.c:3064 -+#: ../clients/cli/connections.c:3029 - #, c-format - msgid "Connection '%s' (%s) successfully deleted.\n" - msgstr "Connexion « %s » (%s) supprimée.\n" - --#: ../clients/cli/connections.c:3080 -+#: ../clients/cli/connections.c:3045 - #, c-format - msgid "Connection '%s' successfully deactivated (D-Bus active path: %s)\n" - msgstr "Connexion « %s » désactivée (chemin D-Bus actif : %s)\n" - --#: ../clients/cli/connections.c:3131 ../clients/cli/connections.c:8693 --#: ../clients/cli/connections.c:8724 ../clients/cli/connections.c:8890 -+#: ../clients/cli/connections.c:3096 ../clients/cli/connections.c:8716 -+#: ../clients/cli/connections.c:8747 ../clients/cli/connections.c:8910 - #, c-format - msgid "Error: No connection specified." - msgstr "Erreur : aucune connexion spécifiée." - --#: ../clients/cli/connections.c:3161 -+#: ../clients/cli/connections.c:3128 - #, c-format - msgid "Error: '%s' is not an active connection.\n" - msgstr "Erreur : « %s » n'est pas une connexion active.\n" - --#: ../clients/cli/connections.c:3162 -+#: ../clients/cli/connections.c:3129 - #, c-format - msgid "Error: not all active connections found." - msgstr "Erreur : les connexions n'ont pas toutes été trouvées." - --#: ../clients/cli/connections.c:3170 -+#: ../clients/cli/connections.c:3137 - #, c-format - msgid "Error: no active connection provided." - msgstr "Erreur : aucune connexion fournie." - --#: ../clients/cli/connections.c:3201 -+#: ../clients/cli/connections.c:3169 - #, c-format - msgid "Connection '%s' deactivation failed: %s\n" - msgstr "La désactivation de la connexion « %s » a échoué : %s\n" - --#: ../clients/cli/connections.c:3461 ../clients/cli/connections.c:3518 --#: ../clients/common/nm-client-utils.c:211 -+#: ../clients/cli/connections.c:3427 ../clients/cli/connections.c:3485 -+#: ../clients/common/nm-client-utils.c:213 - #, c-format - msgid "'%s' not among [%s]" - msgstr "« %s » ne fait pas partie de [%s]" - - #. We should not really come here --#: ../clients/cli/connections.c:3481 ../clients/cli/connections.c:3541 --#: ../clients/common/nm-client-utils.c:279 -+#: ../clients/cli/connections.c:3447 ../clients/cli/connections.c:3506 -+#: ../clients/common/nm-client-utils.c:313 - #, c-format - msgid "Unknown error" - msgstr "Erreur inconnue" - --#: ../clients/cli/connections.c:3675 -+#: ../clients/cli/connections.c:3640 - #, c-format - msgid "Warning: master='%s' doesn't refer to any existing profile.\n" - msgstr "Avertissement : master=« %s » ne correspond à un aucun profil existant.\n" - --#: ../clients/cli/connections.c:4038 -+#: ../clients/cli/connections.c:4000 - #, c-format - msgid "Error: invalid property '%s': %s." - msgstr "Erreur : propriété « %s » non valide : %s." - --#: ../clients/cli/connections.c:4053 -+#: ../clients/cli/connections.c:4015 - #, c-format - msgid "Error: failed to %s %s.%s: %s." - msgstr "Erreur : échec %s %s.%s: %s." - --#: ../clients/cli/connections.c:4095 -+#: ../clients/cli/connections.c:4057 - #, c-format - msgid "Error: '%s' is mandatory." - msgstr "Erreur : « %s » est obligatoire." - --#: ../clients/cli/connections.c:4122 -+#: ../clients/cli/connections.c:4084 - #, c-format - msgid "Error: invalid slave type; %s." - msgstr "Erreur : type esclave invalide ; %s." - --#: ../clients/cli/connections.c:4130 -+#: ../clients/cli/connections.c:4092 - #, c-format - msgid "Error: invalid connection type; %s." - msgstr "Erreur : type de connexion non valide ; %s." - --#: ../clients/cli/connections.c:4207 -+#: ../clients/cli/connections.c:4169 - #, c-format - msgid "Error: bad connection type: %s" - msgstr "Erreur : type de connexion invalide : %s." - --#: ../clients/cli/connections.c:4263 --#, c-format --msgid "Error: '%s': %s" --msgstr "Erreur : « %s » : %s" -- --#: ../clients/cli/connections.c:4290 -+#: ../clients/cli/connections.c:4244 - msgid "Error: master is required" - msgstr "Erreur : « master » requis." - --#: ../clients/cli/connections.c:4359 -+#: ../clients/cli/connections.c:4313 - #, c-format - msgid "Error: error adding bond option '%s=%s'." - msgstr "Erreur : erreur à l'ajout de l'option d'agrégation de lien « %s=%s »." - --#: ../clients/cli/connections.c:4390 -+#: ../clients/cli/connections.c:4344 - #, c-format - msgid "Error: '%s' is not a valid monitoring mode; use '%s' or '%s'.\n" - msgstr "Erreur : « %s » n'est pas un mode de contrôle valide ; utilisez « %s » ou « %s ».\n" - --#: ../clients/cli/connections.c:4421 -+#: ../clients/cli/connections.c:4375 - #, c-format - msgid "Error: 'bt-type': '%s' not valid; use [%s, %s, %s (%s), %s]." - msgstr "Erreur:'bt-type' : ' ' '%s non valide ; utiliser [%s, %s, %s (%s), ]%s." - --#: ../clients/cli/connections.c:4686 -+#: ../clients/cli/connections.c:4669 -+#, c-format -+msgid "Error: setting '%s' is mandatory and cannot be removed." -+msgstr "Erreur : le paramètre « %s » est obligatoire et ne peut pas être supprimé." -+ -+#: ../clients/cli/connections.c:4679 - #, c-format - msgid "Error: value for '%s' is missing." - msgstr "Erreur : la valeur de l'argument « %s » est requise." - --#: ../clients/cli/connections.c:4730 -+#: ../clients/cli/connections.c:4724 - msgid "Error: . argument is missing." - msgstr "Erreur : l'argument . est manquant." - --#: ../clients/cli/connections.c:4756 -+#: ../clients/cli/connections.c:4750 -+msgid "Error: missing setting." -+msgstr "Erreur : paramètre manquant." -+ -+#: ../clients/cli/connections.c:4768 -+#, c-format -+msgid "Setting '%s' is not present in the connection." -+msgstr "Le paramètre « %s » n'est pas présent dans la connexion." -+ -+#: ../clients/cli/connections.c:4772 -+#, c-format -+msgid "Error: invalid setting argument '%s'." -+msgstr "Erreur : argument de paramètre « %s » non valide." -+ -+#: ../clients/cli/connections.c:4796 - #, c-format - msgid "Error: invalid or not allowed setting '%s': %s." - msgstr "Erreur : non valide, ou le paramètre « %s » n'est pas autorisé : %s." - --#: ../clients/cli/connections.c:4805 ../clients/cli/connections.c:4821 -+#: ../clients/cli/connections.c:4845 ../clients/cli/connections.c:4861 - #, c-format - msgid "Error: '%s' is ambiguous (%s.%s or %s.%s)." - msgstr "Erreur : « %s » est ambigu (%s.%s ou %s.%s)." - --#: ../clients/cli/connections.c:4837 -+#: ../clients/cli/connections.c:4881 - #, c-format - msgid "Error: invalid . '%s'." - msgstr "Erreur : . non valide '%s’." - --#: ../clients/cli/connections.c:4876 ../clients/cli/connections.c:8545 -+#: ../clients/cli/connections.c:4919 ../clients/cli/connections.c:8567 - #, c-format - msgid "Error: Failed to add '%s' connection: %s" - msgstr "Erreur: impossible d'ajouter la connexion « %s » : %s" - --#: ../clients/cli/connections.c:4894 -+#: ../clients/cli/connections.c:4937 - #, c-format - msgid "" - "Warning: There is another connection with the name '%1$s'. Reference the " -@@ -1304,68 +1313,68 @@ msgid_plural "Warning: There are %3$u other connections with the name '%1$s'. Re - msgstr[0] "Attention : il y a une autre connexion avec le nom '%1$s’. Référez-vous à la connexion par son uuid '%2$s'\n" - msgstr[1] "Attention : il y a %3$u autres connexions avec le nom '%1$s’. Référez-vous à la connexion par son uuid '%2$s'\n" - --#: ../clients/cli/connections.c:4903 -+#: ../clients/cli/connections.c:4946 - #, c-format - msgid "Connection '%s' (%s) successfully added.\n" - msgstr "Connexion « %s » (%s) ajoutée avec succès.\n" - --#: ../clients/cli/connections.c:4965 ../clients/cli/connections.c:6921 --#: ../clients/cli/connections.c:6922 ../clients/cli/devices.c:518 --#: ../clients/cli/devices.c:525 ../clients/cli/devices.c:1239 --#: ../clients/cli/general.c:123 ../clients/cli/utils.h:291 --#: ../clients/common/nm-client-utils.c:269 --#: ../clients/common/nm-meta-setting-desc.c:866 --#: ../clients/common/nm-meta-setting-desc.c:2682 -+#: ../clients/cli/connections.c:5008 ../clients/cli/connections.c:6934 -+#: ../clients/cli/connections.c:6935 ../clients/cli/devices.c:525 -+#: ../clients/cli/devices.c:532 ../clients/cli/devices.c:1250 -+#: ../clients/cli/general.c:93 ../clients/cli/utils.h:294 -+#: ../clients/common/nm-client-utils.c:303 -+#: ../clients/common/nm-meta-setting-desc.c:871 -+#: ../clients/common/nm-meta-setting-desc.c:2675 - msgid "no" - msgstr "non" - --#: ../clients/cli/connections.c:4966 ../clients/cli/connections.c:6921 --#: ../clients/cli/connections.c:6922 ../clients/cli/devices.c:517 --#: ../clients/cli/devices.c:524 ../clients/cli/devices.c:1239 --#: ../clients/cli/general.c:122 ../clients/cli/utils.h:291 --#: ../clients/common/nm-client-utils.c:268 --#: ../clients/common/nm-meta-setting-desc.c:866 --#: ../clients/common/nm-meta-setting-desc.c:2679 -+#: ../clients/cli/connections.c:5009 ../clients/cli/connections.c:6934 -+#: ../clients/cli/connections.c:6935 ../clients/cli/devices.c:524 -+#: ../clients/cli/devices.c:531 ../clients/cli/devices.c:1250 -+#: ../clients/cli/general.c:92 ../clients/cli/utils.h:294 -+#: ../clients/common/nm-client-utils.c:302 -+#: ../clients/common/nm-meta-setting-desc.c:871 -+#: ../clients/common/nm-meta-setting-desc.c:2672 - msgid "yes" - msgstr "oui" - --#: ../clients/cli/connections.c:5052 -+#: ../clients/cli/connections.c:5095 - #, c-format - msgid "" - "You can specify this option more than once. Press when you're done.\n" - msgstr "Vous pouvez spécifier cette option plus d'une fois. Tapez quand vous avez terminé.\n" - - #. Ask for optional arguments. --#: ../clients/cli/connections.c:5154 -+#: ../clients/cli/connections.c:5197 - #, c-format - msgid "There is %d optional setting for %s.\n" - msgid_plural "There are %d optional settings for %s.\n" - msgstr[0] "Il existe %d paramètre optionnel pour %s.\n" - msgstr[1] "Il existe %d paramètres optionnels pour %s.\n" - --#: ../clients/cli/connections.c:5160 -+#: ../clients/cli/connections.c:5203 - #, c-format - msgid "Do you want to provide it? %s" - msgid_plural "Do you want to provide them? %s" - msgstr[0] "Souhaitez-vous le fournir ? %s" - msgstr[1] "Souhaitez-vous les fournir ? %s" - --#: ../clients/cli/connections.c:5292 ../clients/cli/utils.c:279 -+#: ../clients/cli/connections.c:5335 ../clients/cli/utils.c:279 - #, c-format - msgid "Error: value for '%s' argument is required." - msgstr "Erreur : la valeur de l'argument « %s » est requise." - --#: ../clients/cli/connections.c:5299 -+#: ../clients/cli/connections.c:5342 - #, c-format - msgid "Error: 'save': %s." - msgstr "Erreur: « save » : %s." - --#: ../clients/cli/connections.c:5384 ../clients/cli/connections.c:5395 -+#: ../clients/cli/connections.c:5427 ../clients/cli/connections.c:5438 - #, c-format - msgid "Error: '%s' argument is required." - msgstr "Erreur : l'argument « %s » est requis." - --#: ../clients/cli/connections.c:6354 -+#: ../clients/cli/connections.c:6384 - #, c-format - msgid "['%s' setting values]\n" - msgstr "[« %s » setting values]\n" -@@ -1373,7 +1382,7 @@ msgstr "[« %s » setting values]\n" - #. TRANSLATORS: do not translate command names and keywords before :: - #. * However, you should translate terms enclosed in <>. - #. --#: ../clients/cli/connections.c:6463 -+#: ../clients/cli/connections.c:6493 - #, c-format - msgid "" - "---[ Main menu ]---\n" -@@ -1404,7 +1413,7 @@ msgstr "---[ Menu principal ]---\n" - "nmcli :: configuration de nmcli\n" - "quit :: quitter nmcli\n" - --#: ../clients/cli/connections.c:6490 -+#: ../clients/cli/connections.c:6520 - #, c-format - msgid "" - "goto [.] | :: enter setting/property for editing\n" -@@ -1422,7 +1431,7 @@ msgstr "goto [.] | :: saisir le paramètre ou la proprié - " nmcli connection> goto secondaries\n" - " nmcli> goto ipv4.addresses\n" - --#: ../clients/cli/connections.c:6497 -+#: ../clients/cli/connections.c:6527 - #, c-format - msgid "" - "remove [.] :: remove setting or reset property value\n" -@@ -1441,7 +1450,7 @@ msgstr "remove [.] :: supprimer le paramètre ou réinitialiser - "Exemples : nmcli> remove wifi-sec\n" - " nmcli> remove eth.mtu\n" - --#: ../clients/cli/connections.c:6504 -+#: ../clients/cli/connections.c:6534 - #, c-format - msgid "" - "set [. ] :: set property value\n" -@@ -1455,7 +1464,7 @@ msgstr "set [. ] :: définir la valeur de la propriété\ - "\n" - "Exemple : nmcli> set con.id My connection\n" - --#: ../clients/cli/connections.c:6509 -+#: ../clients/cli/connections.c:6539 - #, c-format - msgid "" - "describe [.] :: describe property\n" -@@ -1466,7 +1475,7 @@ msgstr "describe [.] :: décrire la propriété\n" - "\n" - "Affiche la description de la propriété. Vous pouvez consulter la page du manuel nm-settings(5) pour afficher tous les paramètres et propriétés NM.\n" - --#: ../clients/cli/connections.c:6514 -+#: ../clients/cli/connections.c:6544 - #, c-format - msgid "" - "print [all] :: print setting or connection values\n" -@@ -1480,7 +1489,7 @@ msgstr "print [all] :: imprimer le paramètre ou les valeurs de la connexion\n" - "\n" - "Exemple : nmcli ipv4> print all\n" - --#: ../clients/cli/connections.c:6519 -+#: ../clients/cli/connections.c:6549 - #, c-format - msgid "" - "verify [all | fix] :: verify setting or connection validity\n" -@@ -1503,7 +1512,7 @@ msgstr "verify [all] : vérifier le paramètre ou la validité de la connexion\ - " nmcli> verify fix\n" - " nmcli bond> verifyerify\n" - --#: ../clients/cli/connections.c:6528 -+#: ../clients/cli/connections.c:6558 - #, c-format - msgid "" - "save [persistent|temporary] :: save the connection\n" -@@ -1527,7 +1536,7 @@ msgstr "save [persistent|temporary] : sauvegarder la connexion\n" - "persitera pas à l'amorçage ou au démarrage. Si vous souhaitez supprimer la connexion\n" - "persitante, le profil de connexion devra être supprimé.\n" - --#: ../clients/cli/connections.c:6539 -+#: ../clients/cli/connections.c:6569 - #, c-format - msgid "" - "activate [] [/|] :: activate the connection\n" -@@ -1546,7 +1555,7 @@ msgstr "activate [] [/|] :: activer la connexion\n" - " - périphérique sur lequel la connexion sera activée\n" - "/| - AP (Wi-Fi) ou NSP (WiMAX) (ajouter avec ou lorsque n'est pas spécifié)\n" - --#: ../clients/cli/connections.c:6546 ../clients/cli/connections.c:6704 -+#: ../clients/cli/connections.c:6576 ../clients/cli/connections.c:6734 - #, c-format - msgid "" - "back :: go to upper menu level\n" -@@ -1554,7 +1563,7 @@ msgid "" - msgstr "back :: aller au niveau supérieur du menu\n" - "\n" - --#: ../clients/cli/connections.c:6549 -+#: ../clients/cli/connections.c:6579 - #, c-format - msgid "" - "help/? [] :: help for the nmcli commands\n" -@@ -1562,7 +1571,7 @@ msgid "" - msgstr "help/? [] :: aide pour les commandes nmcli\n" - "\n" - --#: ../clients/cli/connections.c:6552 -+#: ../clients/cli/connections.c:6582 - #, c-format - msgid "" - "nmcli [ ] :: nmcli configuration\n" -@@ -1587,7 +1596,7 @@ msgstr "nmcli [ ] :: nmcli configuration\n" - " nmcli> nmcli save-confirmation no\n" - " nmcli> nmcli prompt-color 3\n" - --#: ../clients/cli/connections.c:6574 ../clients/cli/connections.c:6710 -+#: ../clients/cli/connections.c:6604 ../clients/cli/connections.c:6740 - #, c-format - msgid "" - "quit :: exit nmcli\n" -@@ -1598,8 +1607,8 @@ msgstr "quit :: quitter nmcli\n" - "\n" - "Cette commande permet de quitter nmcli. Lorsque la connexion en cours de modification n'est pas enregistrée, il est demandé à l'utilisateur de confirmer l'action.\n" - --#: ../clients/cli/connections.c:6579 ../clients/cli/connections.c:6715 --#: ../clients/cli/connections.c:7126 ../clients/cli/connections.c:8129 -+#: ../clients/cli/connections.c:6609 ../clients/cli/connections.c:6745 -+#: ../clients/cli/connections.c:7140 ../clients/cli/connections.c:8149 - #, c-format - msgid "Unknown command: '%s'\n" - msgstr "Commande inconnue : « %s »\n" -@@ -1607,7 +1616,7 @@ msgstr "Commande inconnue : « %s »\n" - #. TRANSLATORS: do not translate command names and keywords before :: - #. * However, you should translate terms enclosed in <>. - #. --#: ../clients/cli/connections.c:6644 -+#: ../clients/cli/connections.c:6674 - #, c-format - msgid "" - "---[ Property menu ]---\n" -@@ -1632,7 +1641,7 @@ msgstr "---[ Menu des propriétés ]---\n" - "help/? [] :: imprimer cette description d'aide ou de commande\n" - "quit :: quitter nmcli\n" - --#: ../clients/cli/connections.c:6669 -+#: ../clients/cli/connections.c:6699 - #, c-format - msgid "" - "set [] :: set new value\n" -@@ -1642,7 +1651,7 @@ msgstr "set [] :: définir une nouvelle valeur\n" - "\n" - "Cette commande définit la (valeur) fournie à cette propriété\n" - --#: ../clients/cli/connections.c:6673 -+#: ../clients/cli/connections.c:6703 - #, c-format - msgid "" - "add [] :: append new value to the property\n" -@@ -1654,7 +1663,7 @@ msgstr "add [] :: ajouter une nouvelle valeur à la propriété\n" - "\n" - "Cette commande ajoute une (valeur) fournie à cette propriété si la propriété est d'un type de conteneur. Pour les propriétés à valeur unique, ceci remplace la valeur (comme « set »).\n" - --#: ../clients/cli/connections.c:6679 -+#: ../clients/cli/connections.c:6709 - #, c-format - msgid "" - "change :: change current value\n" -@@ -1664,7 +1673,7 @@ msgstr "change :: modifie la valeur actuelle\n" - "\n" - "Affiche la valeur actuelle et permet sa modification.\n" - --#: ../clients/cli/connections.c:6683 -+#: ../clients/cli/connections.c:6713 - #, c-format - msgid "" - "remove [||