From 15d5359fb0dc0583c666b397f6d3009c5051a5ca Mon Sep 17 00:00:00 2001 From: basebuilder_pel7x64builder0 Date: Mon, 26 Nov 2018 18:15:27 +0100 Subject: [PATCH] NetworkManager package update Signed-off-by: basebuilder_pel7x64builder0 --- ...oned-mac-address-permanent-rh1413312.patch | 105 +- ...ine-not-require-nm-service-rh1520865.patch | 5 +- ...-no-leading-zero-client-id-rh1556983.patch | 330 + ...04-device-disable-rp_filter-handling.patch | 38 + .../0005-ibft-cap-sys-admin-rh1371201.patch | 33 + ...upport-aes256-private-keys-rh1623798.patch | 275 + ...ate-property-name-on-D-Bus-rh1626391.patch | 36 + ...avoid-crash-no-rev-domains-rh1628576.patch | 42 + ...sertion-in-nmc_device_state_to_color.patch | 34 + SOURCES/1001-translations-rh1569438.patch | 11844 ++++++++++++++++ ...eading-vpn.secrets.-from-passwd-file.patch | 120 + SOURCES/20-connectivity-fedora.conf | 4 + SOURCES/20-connectivity-redhat.conf | 4 + SOURCES/9999-fix-pregen-doc.patch | 56 +- SPECS/NetworkManager.spec | 367 +- 15 files changed, 13106 insertions(+), 187 deletions(-) create mode 100644 SOURCES/0003-dhclient-no-leading-zero-client-id-rh1556983.patch create mode 100644 SOURCES/0004-device-disable-rp_filter-handling.patch create mode 100644 SOURCES/0005-ibft-cap-sys-admin-rh1371201.patch create mode 100644 SOURCES/0006-support-aes256-private-keys-rh1623798.patch create mode 100644 SOURCES/0007-core-fix-wireless-bitrate-property-name-on-D-Bus-rh1626391.patch create mode 100644 SOURCES/0008-dns-dnsmsaq-avoid-crash-no-rev-domains-rh1628576.patch create mode 100644 SOURCES/1000-cli-remove-assertion-in-nmc_device_state_to_color.patch create mode 100644 SOURCES/1001-translations-rh1569438.patch create mode 100644 SOURCES/1002-cli-fix-reading-vpn.secrets.-from-passwd-file.patch create mode 100644 SOURCES/20-connectivity-fedora.conf create mode 100644 SOURCES/20-connectivity-redhat.conf diff --git a/SOURCES/0001-cloned-mac-address-permanent-rh1413312.patch b/SOURCES/0001-cloned-mac-address-permanent-rh1413312.patch index ebc5dab6..0b2cde2a 100644 --- a/SOURCES/0001-cloned-mac-address-permanent-rh1413312.patch +++ b/SOURCES/0001-cloned-mac-address-permanent-rh1413312.patch @@ -1,4 +1,4 @@ -From cf4fabd8dd1235312ebc21becda6378b770eb822 Mon Sep 17 00:00:00 2001 +From d7590dd02fd47cc32e0e76e19578116c83910591 Mon Sep 17 00:00:00 2001 From: Thomas Haller Date: Fri, 24 Feb 2017 20:25:56 +0100 Subject: [PATCH] Revert "device: change default value for cloned-mac-address @@ -8,17 +8,17 @@ https://bugzilla.redhat.com/show_bug.cgi?id=1413312 This reverts commit fae5ecec5a4d9987a1915441602cb78275a9f490. --- - clients/common/settings-docs.c.in | 4 ++-- + clients/common/settings-docs.h.in | 4 ++-- libnm-core/nm-setting-wired.c | 7 +++---- libnm-core/nm-setting-wireless.c | 7 +++---- man/NetworkManager.conf.xml | 4 ++-- src/devices/nm-device.c | 3 ++- 5 files changed, 12 insertions(+), 13 deletions(-) -diff --git a/clients/common/settings-docs.c.in b/clients/common/settings-docs.c.in -index bf544ab6e..12991cc06 100644 ---- a/clients/common/settings-docs.c.in -+++ b/clients/common/settings-docs.c.in +diff --git a/clients/common/settings-docs.h.in b/clients/common/settings-docs.h.in +index 7ad8c19a6..5aca99eee 100644 +--- a/clients/common/settings-docs.h.in ++++ b/clients/common/settings-docs.h.in @@ -7,7 +7,7 @@ #define DESCRIBE_DOC_NM_SETTING_WIRELESS_BAND N_("802.11 frequency band of the network. One of \"a\" for 5GHz 802.11a or \"bg\" for 2.4GHz 802.11. This will lock associations to the Wi-Fi network to the specific band, i.e. if \"a\" is specified, the device will not associate with the same network in the 2.4GHz band even if the network's settings are compatible. This setting depends on specific driver capability and may not work with all drivers.") #define DESCRIBE_DOC_NM_SETTING_WIRELESS_BSSID N_("If specified, directs the device to only associate with the given access point. This capability is highly driver dependent and not supported by all devices. Note: this property does not control the BSSID used when creating an Ad-Hoc network and is unlikely to in the future.") @@ -26,72 +26,72 @@ index bf544ab6e..12991cc06 100644 -#define DESCRIBE_DOC_NM_SETTING_WIRELESS_CLONED_MAC_ADDRESS N_("If specified, request that the device use this MAC address instead. This is known as MAC cloning or spoofing. Beside explicitly specifying a MAC address, the special values \"preserve\", \"permanent\", \"random\" and \"stable\" are supported. \"preserve\" means not to touch the MAC address on activation. \"permanent\" means to use the permanent hardware address of the device. \"random\" creates a random MAC address on each connect. \"stable\" creates a hashed MAC address based on connection.stable-id and a machine dependent key. If unspecified, the value can be overwritten via global defaults, see manual of NetworkManager.conf. If still unspecified, it defaults to \"preserve\" (older versions of NetworkManager may use a different default value). On D-Bus, this field is expressed as \"assigned-mac-address\" or the deprecated \"cloned-mac-address\".") +#define DESCRIBE_DOC_NM_SETTING_WIRELESS_CLONED_MAC_ADDRESS N_("If specified, request that the device use this MAC address instead of its permanent MAC address. This is known as MAC cloning or spoofing. Beside explicitly specifying a MAC address, the special values \"preserve\", \"permanent\", \"random\" and \"stable\" are supported. \"preserve\" means not to touch the MAC address on activation. \"permanent\" means to use the permanent hardware address of the device. \"random\" creates a random MAC address on each connect. \"stable\" creates a hashed MAC address based on connection.stable-id and a machine dependent key. If unspecified, the value can be overwritten via global defaults, see manual of NetworkManager.conf. If still unspecified, it defaults to \"permanent\". On D-Bus, this field is expressed as \"assigned-mac-address\" or the deprecated \"cloned-mac-address\".") #define DESCRIBE_DOC_NM_SETTING_WIRELESS_GENERATE_MAC_ADDRESS_MASK N_("With \"cloned-mac-address\" setting \"random\" or \"stable\", by default all bits of the MAC address are scrambled and a locally-administered, unicast MAC address is created. This property allows to specify that certain bits are fixed. Note that the least significant bit of the first MAC address will always be unset to create a unicast MAC address. If the property is NULL, it is eligible to be overwritten by a default connection setting. If the value is still NULL or an empty string, the default is to create a locally-administered, unicast MAC address. If the value contains one MAC address, this address is used as mask. The set bits of the mask are to be filled with the current MAC address of the device, while the unset bits are subject to randomization. Setting \"FE:FF:FF:00:00:00\" means to preserve the OUI of the current MAC address and only randomize the lower 3 bytes using the \"random\" or \"stable\" algorithm. If the value contains one additional MAC address after the mask, this address is used instead of the current MAC address to fill the bits that shall not be randomized. For example, a value of \"FE:FF:FF:00:00:00 68:F7:28:00:00:00\" will set the OUI of the MAC address to 68:F7:28, while the lower bits are randomized. A value of \"02:00:00:00:00:00 00:00:00:00:00:00\" will create a fully scrambled globally-administered, burned-in MAC address. If the value contains more than one additional MAC addresses, one of them is chosen randomly. For example, \"02:00:00:00:00:00 00:00:00:00:00:00 02:00:00:00:00:00\" will create a fully scrambled MAC address, randomly locally or globally administered.") - #define DESCRIBE_DOC_NM_SETTING_WIRELESS_HIDDEN N_("If TRUE, indicates this network is a non-broadcasting network that hides its SSID. In this case various workarounds may take place, such as probe-scanning the SSID for more reliable network discovery. However, these workarounds expose inherent insecurities with hidden SSID networks, and thus hidden SSID networks should be used with caution.") + #define DESCRIBE_DOC_NM_SETTING_WIRELESS_HIDDEN N_("If TRUE, indicates this network is a non-broadcasting network that hides its SSID. In this case various workarounds may take place, such as probe-scanning the SSID for more reliable network discovery. However, these workarounds expose inherent insecurities with hidden SSID networks, and thus hidden SSID networks should be used with caution. Note that marking the network as hidden may be a privacy issue for you, as the explicit probe-scans may be distinctly recognizable on the air.") #define DESCRIBE_DOC_NM_SETTING_WIRELESS_MAC_ADDRESS N_("If specified, this connection will only apply to the Wi-Fi device whose permanent MAC address matches. This property does not change the MAC address of the device (i.e. MAC spoofing).") -@@ -87,7 +87,7 @@ +@@ -89,7 +89,7 @@ #define DESCRIBE_DOC_NM_SETTING_802_1X_SUBJECT_MATCH N_("Substring to be matched against the subject of the certificate presented by the authentication server. When unset, no verification of the authentication server certificate's subject is performed. This property provides little security, if any, and its use is deprecated in favor of NMSetting8021x:domain-suffix-match.") #define DESCRIBE_DOC_NM_SETTING_802_1X_SYSTEM_CA_CERTS N_("When TRUE, overrides the \"ca-path\" and \"phase2-ca-path\" properties using the system CA directory specified at configure time with the --system-ca-path switch. The certificates in this directory are added to the verification chain in addition to any certificates specified by the \"ca-cert\" and \"phase2-ca-cert\" properties. If the path provided with --system-ca-path is rather a file name (bundle of trusted CA certificates), it overrides \"ca-cert\" and \"phase2-ca-cert\" properties instead (sets ca_cert/ca_cert2 options for wpa_supplicant).") - #define DESCRIBE_DOC_NM_SETTING_WIRED_AUTO_NEGOTIATE N_("If TRUE, enforce auto-negotiation of port speed and duplex mode. If FALSE, \"speed\" and \"duplex\" properties should be both set or link configuration will be skipped.") + #define DESCRIBE_DOC_NM_SETTING_WIRED_AUTO_NEGOTIATE N_("When TRUE, enforce auto-negotiation of speed and duplex mode. If \"speed\" and \"duplex\" properties are both specified, only that single mode will be advertised and accepted during the link auto-negotiation process: this works only for BASE-T 802.3 specifications and is useful for enforcing gigabits modes, as in these cases link negotiation is mandatory. When FALSE, \"speed\" and \"duplex\" properties should be both set or link configuration will be skipped.") -#define DESCRIBE_DOC_NM_SETTING_WIRED_CLONED_MAC_ADDRESS N_("If specified, request that the device use this MAC address instead. This is known as MAC cloning or spoofing. Beside explicitly specifying a MAC address, the special values \"preserve\", \"permanent\", \"random\" and \"stable\" are supported. \"preserve\" means not to touch the MAC address on activation. \"permanent\" means to use the permanent hardware address if the device has one (otherwise this is treated as \"preserve\"). \"random\" creates a random MAC address on each connect. \"stable\" creates a hashed MAC address based on connection.stable-id and a machine dependent key. If unspecified, the value can be overwritten via global defaults, see manual of NetworkManager.conf. If still unspecified, it defaults to \"preserve\" (older versions of NetworkManager may use a different default value). On D-Bus, this field is expressed as \"assigned-mac-address\" or the deprecated \"cloned-mac-address\".") +#define DESCRIBE_DOC_NM_SETTING_WIRED_CLONED_MAC_ADDRESS N_("If specified, request that the device use this MAC address instead of its permanent MAC address. This is known as MAC cloning or spoofing. Beside explicitly specifying a MAC address, the special values \"preserve\", \"permanent\", \"random\" and \"stable\" are supported. \"preserve\" means not to touch the MAC address on activation. \"permanent\" means to use the permanent hardware address if the device has one (otherwise this is treated as \"preserve\"). \"random\" creates a random MAC address on each connect. \"stable\" creates a hashed MAC address based on connection.stable-id and a machine dependent key. If unspecified, the value can be overwritten via global defaults, see manual of NetworkManager.conf. If still unspecified, it defaults to \"permanent\". On D-Bus, this field is expressed as \"assigned-mac-address\" or the deprecated \"cloned-mac-address\".") - #define DESCRIBE_DOC_NM_SETTING_WIRED_DUPLEX N_("Can be specified only when \"auto-negotiate\" is \"off\". In that case, statically configures the device to use that specified duplex mode, either \"half\" or \"full\". Must be set together with the \"speed\" property if specified. Before specifying a duplex mode be sure your device supports it.") + #define DESCRIBE_DOC_NM_SETTING_WIRED_DUPLEX N_("When a value is set, either \"half\" or \"full\", configures the device to use the specified duplex mode. If \"auto-negotiate\" is \"yes\" the specified duplex mode will be the only one advertised during link negotiation: this works only for BASE-T 802.3 specifications and is useful for enforcing gigabits modes, as in these cases link negotiation is mandatory. If the value is unset (the default), the link configuration will be either skipped (if \"auto-negotiate\" is \"no\", the default) or will be auto-negotiated (if \"auto-negotiate\" is \"yes\") and the local device will advertise all the supported duplex modes. Must be set together with the \"speed\" property if specified. Before specifying a duplex mode be sure your device supports it.") #define DESCRIBE_DOC_NM_SETTING_WIRED_GENERATE_MAC_ADDRESS_MASK N_("With \"cloned-mac-address\" setting \"random\" or \"stable\", by default all bits of the MAC address are scrambled and a locally-administered, unicast MAC address is created. This property allows to specify that certain bits are fixed. Note that the least significant bit of the first MAC address will always be unset to create a unicast MAC address. If the property is NULL, it is eligible to be overwritten by a default connection setting. If the value is still NULL or an empty string, the default is to create a locally-administered, unicast MAC address. If the value contains one MAC address, this address is used as mask. The set bits of the mask are to be filled with the current MAC address of the device, while the unset bits are subject to randomization. Setting \"FE:FF:FF:00:00:00\" means to preserve the OUI of the current MAC address and only randomize the lower 3 bytes using the \"random\" or \"stable\" algorithm. If the value contains one additional MAC address after the mask, this address is used instead of the current MAC address to fill the bits that shall not be randomized. For example, a value of \"FE:FF:FF:00:00:00 68:F7:28:00:00:00\" will set the OUI of the MAC address to 68:F7:28, while the lower bits are randomized. A value of \"02:00:00:00:00:00 00:00:00:00:00:00\" will create a fully scrambled globally-administered, burned-in MAC address. If the value contains more than one additional MAC addresses, one of them is chosen randomly. For example, \"02:00:00:00:00:00 00:00:00:00:00:00 02:00:00:00:00:00\" will create a fully scrambled MAC address, randomly locally or globally administered.") #define DESCRIBE_DOC_NM_SETTING_WIRED_MAC_ADDRESS N_("If specified, this connection will only apply to the Ethernet device whose permanent MAC address matches. This property does not change the MAC address of the device (i.e. MAC spoofing).") diff --git a/libnm-core/nm-setting-wired.c b/libnm-core/nm-setting-wired.c -index 9d255e1d0..f36283a7e 100644 +index 5da9ce7d7..ccbc42f90 100644 --- a/libnm-core/nm-setting-wired.c +++ b/libnm-core/nm-setting-wired.c -@@ -1144,8 +1144,8 @@ nm_setting_wired_class_init (NMSettingWiredClass *setting_wired_class) - /** - * NMSettingWired:cloned-mac-address: - * +@@ -1149,8 +1149,8 @@ nm_setting_wired_class_init (NMSettingWiredClass *setting_wired_class) + /** + * NMSettingWired:cloned-mac-address: + * - * If specified, request that the device use this MAC address instead. - * This is known as MAC cloning or spoofing. + * If specified, request that the device use this MAC address instead of its + * permanent MAC address. This is known as MAC cloning or spoofing. - * - * Beside explicitly specifying a MAC address, the special values "preserve", "permanent", - * "random" and "stable" are supported. -@@ -1157,8 +1157,7 @@ nm_setting_wired_class_init (NMSettingWiredClass *setting_wired_class) - * machine dependent key. - * - * If unspecified, the value can be overwritten via global defaults, see manual + * + * Beside explicitly specifying a MAC address, the special values "preserve", "permanent", + * "random" and "stable" are supported. +@@ -1162,8 +1162,7 @@ nm_setting_wired_class_init (NMSettingWiredClass *setting_wired_class) + * machine dependent key. + * + * If unspecified, the value can be overwritten via global defaults, see manual - * of NetworkManager.conf. If still unspecified, it defaults to "preserve" - * (older versions of NetworkManager may use a different default value). + * of NetworkManager.conf. If still unspecified, it defaults to "permanent". - * - * On D-Bus, this field is expressed as "assigned-mac-address" or the deprecated - * "cloned-mac-address". + * + * On D-Bus, this field is expressed as "assigned-mac-address" or the deprecated + * "cloned-mac-address". diff --git a/libnm-core/nm-setting-wireless.c b/libnm-core/nm-setting-wireless.c -index 0a3915bfc..8f457ffcc 100644 +index 89a2df8eb..e80d153f1 100644 --- a/libnm-core/nm-setting-wireless.c +++ b/libnm-core/nm-setting-wireless.c -@@ -1350,8 +1350,8 @@ nm_setting_wireless_class_init (NMSettingWirelessClass *setting_wireless_class) - /** - * NMSettingWireless:cloned-mac-address: - * +@@ -1396,8 +1396,8 @@ nm_setting_wireless_class_init (NMSettingWirelessClass *setting_wireless_class) + /** + * NMSettingWireless:cloned-mac-address: + * - * If specified, request that the device use this MAC address instead. - * This is known as MAC cloning or spoofing. + * If specified, request that the device use this MAC address instead of its + * permanent MAC address. This is known as MAC cloning or spoofing. - * - * Beside explicitly specifying a MAC address, the special values "preserve", "permanent", - * "random" and "stable" are supported. -@@ -1362,8 +1362,7 @@ nm_setting_wireless_class_init (NMSettingWirelessClass *setting_wireless_class) - * machine dependent key. - * - * If unspecified, the value can be overwritten via global defaults, see manual + * + * Beside explicitly specifying a MAC address, the special values "preserve", "permanent", + * "random" and "stable" are supported. +@@ -1408,8 +1408,7 @@ nm_setting_wireless_class_init (NMSettingWirelessClass *setting_wireless_class) + * machine dependent key. + * + * If unspecified, the value can be overwritten via global defaults, see manual - * of NetworkManager.conf. If still unspecified, it defaults to "preserve" - * (older versions of NetworkManager may use a different default value). + * of NetworkManager.conf. If still unspecified, it defaults to "permanent". - * - * On D-Bus, this field is expressed as "assigned-mac-address" or the deprecated - * "cloned-mac-address". + * + * On D-Bus, this field is expressed as "assigned-mac-address" or the deprecated + * "cloned-mac-address". diff --git a/man/NetworkManager.conf.xml b/man/NetworkManager.conf.xml -index 446540aa1..fc106a51e 100644 +index 17bc42f34..aa8e66946 100644 --- a/man/NetworkManager.conf.xml +++ b/man/NetworkManager.conf.xml -@@ -659,7 +659,7 @@ ipv6.ip6-privacy=0 +@@ -661,7 +661,7 @@ ipv6.ip6-privacy=0 ethernet.cloned-mac-address @@ -100,7 +100,7 @@ index 446540aa1..fc106a51e 100644 ethernet.generate-mac-address-mask -@@ -724,7 +724,7 @@ ipv6.ip6-privacy=0 +@@ -733,7 +733,7 @@ ipv6.ip6-privacy=0 wifi.cloned-mac-address @@ -110,18 +110,19 @@ index 446540aa1..fc106a51e 100644 wifi.generate-mac-address-mask diff --git a/src/devices/nm-device.c b/src/devices/nm-device.c -index afc81dcde..f75cc86e3 100644 +index 5a5cb50e9..613e87034 100644 --- a/src/devices/nm-device.c +++ b/src/devices/nm-device.c -@@ -13624,7 +13624,8 @@ _get_cloned_mac_address_setting (NMDevice *self, NMConnection *connection, gbool - is_wifi ? "wifi.cloned-mac-address" : "ethernet.cloned-mac-address", - self); - +@@ -14628,7 +14628,8 @@ _get_cloned_mac_address_setting (NMDevice *self, NMConnection *connection, gbool + is_wifi ? "wifi.cloned-mac-address" : "ethernet.cloned-mac-address", + self); + - addr = NM_CLONED_MAC_PRESERVE; + /* RHEL patches the default to permanent (rh#1413312) */ + addr = NM_CLONED_MAC_PERMANENT; + + if (!a) { + if (is_wifi) { +-- +2.17.0 - if (!a) { - if (is_wifi) { --- -2.14.3 diff --git a/SOURCES/0002-nm-wait-online-not-require-nm-service-rh1520865.patch b/SOURCES/0002-nm-wait-online-not-require-nm-service-rh1520865.patch index 7f2dc3d5..69296ab8 100644 --- a/SOURCES/0002-nm-wait-online-not-require-nm-service-rh1520865.patch +++ b/SOURCES/0002-nm-wait-online-not-require-nm-service-rh1520865.patch @@ -33,6 +33,7 @@ index 896324685..1753d2039 100644 +Requisite=NetworkManager.service After=NetworkManager.service Before=network-online.target - --- + +-- 2.14.3 + diff --git a/SOURCES/0003-dhclient-no-leading-zero-client-id-rh1556983.patch b/SOURCES/0003-dhclient-no-leading-zero-client-id-rh1556983.patch new file mode 100644 index 00000000..575d0b1e --- /dev/null +++ b/SOURCES/0003-dhclient-no-leading-zero-client-id-rh1556983.patch @@ -0,0 +1,330 @@ +From 8e8c797904fc29396d340609f006add206df4973 Mon Sep 17 00:00:00 2001 +From: Beniamino Galvani +Date: Wed, 20 Jun 2018 11:49:22 +0200 +Subject: [PATCH 1/2] Revert "dhclient: write client-id with backslash and + quotes as hex" + +This reverts commit 0e4b33ee7552b036332f1bdbfed78f8ee75f000e. +--- + src/dhcp/nm-dhcp-dhclient-utils.c | 2 +- + src/dhcp/tests/test-dhcp-dhclient.c | 32 +---------------------------- + 2 files changed, 2 insertions(+), 32 deletions(-) + +diff --git a/src/dhcp/nm-dhcp-dhclient-utils.c b/src/dhcp/nm-dhcp-dhclient-utils.c +index 3290dd65c..6adb395c9 100644 +--- a/src/dhcp/nm-dhcp-dhclient-utils.c ++++ b/src/dhcp/nm-dhcp-dhclient-utils.c +@@ -124,7 +124,7 @@ add_ip4_config (GString *str, GBytes *client_id, const char *hostname, gboolean + * as long as all the characters are printable. + */ + for (i = 1; (p[0] == 0) && i < l; i++) { +- if (!g_ascii_isprint (p[i]) || p[i] == '\\' || p[i] == '"') ++ if (!g_ascii_isprint (p[i])) + break; + } + +diff --git a/src/dhcp/tests/test-dhcp-dhclient.c b/src/dhcp/tests/test-dhcp-dhclient.c +index 2f369aacc..f3b17807f 100644 +--- a/src/dhcp/tests/test-dhcp-dhclient.c ++++ b/src/dhcp/tests/test-dhcp-dhclient.c +@@ -176,35 +176,6 @@ test_quote_client_id (void) + + /*****************************************************************************/ + +-static const char *quote_client_id_expected_2 = \ +- "# Created by NetworkManager\n" +- "\n" +- "send dhcp-client-identifier 00:61:5c:62:63; # added by NetworkManager\n" +- "\n" +- "option rfc3442-classless-static-routes code 121 = array of unsigned integer 8;\n" +- "option ms-classless-static-routes code 249 = array of unsigned integer 8;\n" +- "option wpad code 252 = string;\n" +- "\n" +- "also request rfc3442-classless-static-routes;\n" +- "also request ms-classless-static-routes;\n" +- "also request static-routes;\n" +- "also request wpad;\n" +- "also request ntp-servers;\n" +- "\n"; +- +-static void +-test_quote_client_id_2 (void) +-{ +- test_config (NULL, quote_client_id_expected_2, +- AF_INET, NULL, 0, FALSE, +- "a\\bc", +- NULL, +- "eth0", +- NULL); +-} +- +-/*****************************************************************************/ +- + static const char *hex_zero_client_id_expected = \ + "# Created by NetworkManager\n" + "\n" +@@ -1026,8 +997,7 @@ main (int argc, char **argv) + + g_test_add_func ("/dhcp/dhclient/orig_missing", test_orig_missing); + g_test_add_func ("/dhcp/dhclient/override_client_id", test_override_client_id); +- g_test_add_func ("/dhcp/dhclient/quote_client_id/1", test_quote_client_id); +- g_test_add_func ("/dhcp/dhclient/quote_client_id/2", test_quote_client_id_2); ++ g_test_add_func ("/dhcp/dhclient/quote_client_id", test_quote_client_id); + g_test_add_func ("/dhcp/dhclient/hex_zero_client_id", test_hex_zero_client_id); + g_test_add_func ("/dhcp/dhclient/ascii_client_id", test_ascii_client_id); + g_test_add_func ("/dhcp/dhclient/hex_single_client_id", test_hex_single_client_id); +-- +2.17.0 + +From 5fa45f1a84ea2e46e5fb07aeef19cb46322b64bc Mon Sep 17 00:00:00 2001 +From: Beniamino Galvani +Date: Wed, 20 Jun 2018 11:50:51 +0200 +Subject: [PATCH 2/2] Revert "dhcp: dhclient: set type 0 for printable client + IDs" + +Keep the RHEL 7.5 behavior. + +This reverts commit 8ffa22d10d3001405965826b46463663fd2dacc2. +--- + src/dhcp/nm-dhcp-dhclient-utils.c | 46 +++------------- + src/dhcp/tests/test-dhcp-dhclient.c | 83 +++-------------------------- + 2 files changed, 16 insertions(+), 113 deletions(-) + +diff --git a/src/dhcp/nm-dhcp-dhclient-utils.c b/src/dhcp/nm-dhcp-dhclient-utils.c +index 6adb395c9..90fa33397 100644 +--- a/src/dhcp/nm-dhcp-dhclient-utils.c ++++ b/src/dhcp/nm-dhcp-dhclient-utils.c +@@ -137,9 +137,8 @@ add_ip4_config (GString *str, GBytes *client_id, const char *hostname, gboolean + g_string_append_printf (str, "%02x", (guint8) p[i]); + } + } else { +- /* Printable; just add to the line with type 0 */ ++ /* Printable; just add to the line minus the 'type' */ + g_string_append_c (str, '"'); +- g_string_append (str, "\\x00"); + g_string_append_len (str, p + 1, l - 1); + g_string_append_c (str, '"'); + } +@@ -177,60 +176,31 @@ read_client_id (const char *str) + { + gs_free char *s = NULL; + char *p; +- int i = 0, j = 0; + + nm_assert (!strncmp (str, CLIENTID_TAG, NM_STRLEN (CLIENTID_TAG))); +- str += NM_STRLEN (CLIENTID_TAG); + +- if (!g_ascii_isspace (*str)) +- return NULL; ++ str += NM_STRLEN (CLIENTID_TAG); + while (g_ascii_isspace (*str)) + str++; + + if (*str == '"') { +- /* Parse string literal with escape sequences */ + s = g_strdup (str + 1); + p = strrchr (s, '"'); + if (p) + *p = '\0'; + else + return NULL; ++ } else ++ s = g_strdup (str); + +- if (!s[0]) +- return NULL; +- +- while (s[i]) { +- if ( s[i] == '\\' +- && s[i + 1] == 'x' +- && g_ascii_isxdigit (s[i + 2]) +- && g_ascii_isxdigit (s[i + 3])) { +- s[j++] = (g_ascii_xdigit_value (s[i + 2]) << 4) +- + g_ascii_xdigit_value (s[i + 3]); +- i += 4; +- continue; +- } +- if ( s[i] == '\\' +- && s[i + 1] >= '0' && s[i + 1] <= '7' +- && s[1 + 2] >= '0' && s[i + 2] <= '7' +- && s[1 + 3] >= '0' && s[i + 3] <= '7') { +- s[j++] = ((s[i + 1] - '0') << 6) +- + ((s[i + 2] - '0') << 3) +- + ( s[i + 3] - '0'); +- i += 4; +- continue; +- } +- s[j++] = s[i++]; +- } +- return g_bytes_new_take (g_steal_pointer (&s), j); +- } +- +- /* Otherwise, try to read a hexadecimal sequence */ +- s = g_strdup (str); + g_strchomp (s); + if (s[strlen (s) - 1] == ';') + s[strlen (s) - 1] = '\0'; + +- return nm_utils_hexstr2bin (s); ++ if (!s[0]) ++ return NULL; ++ ++ return nm_dhcp_utils_client_id_string_to_bytes (s); + } + + GBytes * +diff --git a/src/dhcp/tests/test-dhcp-dhclient.c b/src/dhcp/tests/test-dhcp-dhclient.c +index f3b17807f..377938c87 100644 +--- a/src/dhcp/tests/test-dhcp-dhclient.c ++++ b/src/dhcp/tests/test-dhcp-dhclient.c +@@ -150,7 +150,7 @@ test_override_client_id (void) + static const char *quote_client_id_expected = \ + "# Created by NetworkManager\n" + "\n" +- "send dhcp-client-identifier \"\\x00abcd\"; # added by NetworkManager\n" ++ "send dhcp-client-identifier \"1234\"; # added by NetworkManager\n" + "\n" + "option rfc3442-classless-static-routes code 121 = array of unsigned integer 8;\n" + "option ms-classless-static-routes code 249 = array of unsigned integer 8;\n" +@@ -168,36 +168,7 @@ test_quote_client_id (void) + { + test_config (NULL, quote_client_id_expected, + AF_INET, NULL, 0, FALSE, +- "abcd", +- NULL, +- "eth0", +- NULL); +-} +- +-/*****************************************************************************/ +- +-static const char *hex_zero_client_id_expected = \ +- "# Created by NetworkManager\n" +- "\n" +- "send dhcp-client-identifier 00:11:22:33; # added by NetworkManager\n" +- "\n" +- "option rfc3442-classless-static-routes code 121 = array of unsigned integer 8;\n" +- "option ms-classless-static-routes code 249 = array of unsigned integer 8;\n" +- "option wpad code 252 = string;\n" +- "\n" +- "also request rfc3442-classless-static-routes;\n" +- "also request ms-classless-static-routes;\n" +- "also request static-routes;\n" +- "also request wpad;\n" +- "also request ntp-servers;\n" +- "\n"; +- +-static void +-test_hex_zero_client_id (void) +-{ +- test_config (NULL, hex_zero_client_id_expected, +- AF_INET, NULL, 0, FALSE, +- "00:11:22:33", ++ "1234", + NULL, + "eth0", + NULL); +@@ -208,7 +179,7 @@ test_hex_zero_client_id (void) + static const char *ascii_client_id_expected = \ + "# Created by NetworkManager\n" + "\n" +- "send dhcp-client-identifier \"\\x00qb:cd:ef:12:34:56\"; # added by NetworkManager\n" ++ "send dhcp-client-identifier \"qb:cd:ef:12:34:56\"; # added by NetworkManager\n" + "\n" + "option rfc3442-classless-static-routes code 121 = array of unsigned integer 8;\n" + "option ms-classless-static-routes code 249 = array of unsigned integer 8;\n" +@@ -264,13 +235,13 @@ test_hex_single_client_id (void) + /*****************************************************************************/ + + static const char *existing_hex_client_id_orig = \ +- "send dhcp-client-identifier 10:30:04:20:7A:08;\n"; ++ "send dhcp-client-identifier 00:30:04:20:7A:08;\n"; + + static const char *existing_hex_client_id_expected = \ + "# Created by NetworkManager\n" + "# Merged from /path/to/dhclient.conf\n" + "\n" +- "send dhcp-client-identifier 10:30:04:20:7A:08;\n" ++ "send dhcp-client-identifier 00:30:04:20:7A:08;\n" + "\n" + "option rfc3442-classless-static-routes code 121 = array of unsigned integer 8;\n" + "option ms-classless-static-routes code 249 = array of unsigned integer 8;\n" +@@ -287,7 +258,7 @@ static void + test_existing_hex_client_id (void) + { + gs_unref_bytes GBytes *new_client_id = NULL; +- const guint8 bytes[] = { 0x10, 0x30, 0x04, 0x20, 0x7A, 0x08 }; ++ const guint8 bytes[] = { 0x00, 0x30, 0x04,0x20, 0x7A, 0x08 }; + + new_client_id = g_bytes_new (bytes, sizeof (bytes)); + test_config (existing_hex_client_id_orig, existing_hex_client_id_expected, +@@ -300,52 +271,16 @@ test_existing_hex_client_id (void) + + /*****************************************************************************/ + +-static const char *existing_escaped_client_id_orig = \ +- "send dhcp-client-identifier \"\\044test\\xfe\";\n"; +- +-static const char *existing_escaped_client_id_expected = \ +- "# Created by NetworkManager\n" +- "# Merged from /path/to/dhclient.conf\n" +- "\n" +- "send dhcp-client-identifier \"\\044test\\xfe\";\n" +- "\n" +- "option rfc3442-classless-static-routes code 121 = array of unsigned integer 8;\n" +- "option ms-classless-static-routes code 249 = array of unsigned integer 8;\n" +- "option wpad code 252 = string;\n" +- "\n" +- "also request rfc3442-classless-static-routes;\n" +- "also request ms-classless-static-routes;\n" +- "also request static-routes;\n" +- "also request wpad;\n" +- "also request ntp-servers;\n" +- "\n"; +- +-static void +-test_existing_escaped_client_id (void) +-{ +- gs_unref_bytes GBytes *new_client_id = NULL; +- +- new_client_id = g_bytes_new ("$test\xfe", 6); +- test_config (existing_escaped_client_id_orig, existing_escaped_client_id_expected, +- AF_INET, NULL, 0, FALSE, +- NULL, +- new_client_id, +- "eth0", +- NULL); +-} +- +-/*****************************************************************************/ +- + #define EACID "qb:cd:ef:12:34:56" + + static const char *existing_ascii_client_id_orig = \ +- "send dhcp-client-identifier \"\\x00" EACID "\";\n"; ++ "send dhcp-client-identifier \"" EACID "\";\n"; + + static const char *existing_ascii_client_id_expected = \ + "# Created by NetworkManager\n" + "# Merged from /path/to/dhclient.conf\n" + "\n" +- "send dhcp-client-identifier \"\\x00" EACID "\";\n" ++ "send dhcp-client-identifier \"" EACID "\";\n" + "\n" + "option rfc3442-classless-static-routes code 121 = array of unsigned integer 8;\n" + "option ms-classless-static-routes code 249 = array of unsigned integer 8;\n" +@@ -998,11 +933,9 @@ main (int argc, char **argv) + g_test_add_func ("/dhcp/dhclient/orig_missing", test_orig_missing); + g_test_add_func ("/dhcp/dhclient/override_client_id", test_override_client_id); + g_test_add_func ("/dhcp/dhclient/quote_client_id", test_quote_client_id); +- g_test_add_func ("/dhcp/dhclient/hex_zero_client_id", test_hex_zero_client_id); + g_test_add_func ("/dhcp/dhclient/ascii_client_id", test_ascii_client_id); + g_test_add_func ("/dhcp/dhclient/hex_single_client_id", test_hex_single_client_id); + g_test_add_func ("/dhcp/dhclient/existing-hex-client-id", test_existing_hex_client_id); +- g_test_add_func ("/dhcp/dhclient/existing-client-id", test_existing_escaped_client_id); + g_test_add_func ("/dhcp/dhclient/existing-ascii-client-id", test_existing_ascii_client_id); + g_test_add_func ("/dhcp/dhclient/fqdn", test_fqdn); + g_test_add_func ("/dhcp/dhclient/fqdn_options_override", test_fqdn_options_override); +-- +2.17.0 + diff --git a/SOURCES/0004-device-disable-rp_filter-handling.patch b/SOURCES/0004-device-disable-rp_filter-handling.patch new file mode 100644 index 00000000..46c41a48 --- /dev/null +++ b/SOURCES/0004-device-disable-rp_filter-handling.patch @@ -0,0 +1,38 @@ +From 1ce88613e6438f0ab9f50b826929f02408eb8f50 Mon Sep 17 00:00:00 2001 +From: Beniamino Galvani +Date: Wed, 4 Jul 2018 08:22:12 +0200 +Subject: [PATCH] device: disable rp_filter handling + +Don't change rp_filter in any way, like in previous RHEL 7 releases. +See also https://bugzilla.redhat.com/show_bug.cgi?id=1492472. + +https://bugzilla.redhat.com/show_bug.cgi?id=1593194 +--- + src/devices/nm-device.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/src/devices/nm-device.c b/src/devices/nm-device.c +index 613e87034..ac9e1da08 100644 +--- a/src/devices/nm-device.c ++++ b/src/devices/nm-device.c +@@ -11440,7 +11440,7 @@ nm_device_set_ip_config (NMDevice *self, + priv->needs_ip6_subnet = FALSE; + } + +- if (IS_IPv4) { ++ if (IS_IPv4 && FALSE /* disabled on RHEL */) { + if (!nm_device_sys_iface_state_is_external_or_assume (self)) + ip4_rp_filter_update (self); + } +@@ -12329,7 +12329,7 @@ queued_ip_config_change (NMDevice *self, int addr_family) + + set_unmanaged_external_down (self, TRUE); + +- if (IS_IPv4) { ++ if (IS_IPv4 && FALSE /* disabled on RHEL */) { + if (!nm_device_sys_iface_state_is_external_or_assume (self)) { + priv->v4_has_shadowed_routes = _v4_has_shadowed_routes_detect (self);; + ip4_rp_filter_update (self); +-- +2.17.0 + diff --git a/SOURCES/0005-ibft-cap-sys-admin-rh1371201.patch b/SOURCES/0005-ibft-cap-sys-admin-rh1371201.patch new file mode 100644 index 00000000..843fc751 --- /dev/null +++ b/SOURCES/0005-ibft-cap-sys-admin-rh1371201.patch @@ -0,0 +1,33 @@ +From 53a95f9ebd941c9fd2464f69ee420c4c82842eda Mon Sep 17 00:00:00 2001 +From: Thomas Haller +Date: Fri, 2 Sep 2016 15:58:42 +0200 +Subject: [PATCH] service: give CAP_SYS_ADMIN for ibft/iscsiadm (rh#1371201) + +systemd on rhel-7.3 has a bug with merging CapabilityBoundingSet. +https://github.com/systemd/systemd/issues/1221 +Thus it is all in one line. +--- + data/NetworkManager.service.in | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +diff --git a/data/NetworkManager.service.in b/data/NetworkManager.service.in +index 2692935..d354b7c 100644 +--- a/data/NetworkManager.service.in ++++ b/data/NetworkManager.service.in +@@ -14,10 +14,10 @@ ExecStart=@sbindir@/NetworkManager --no-daemon + Restart=on-failure + # NM doesn't want systemd to kill its children for it + KillMode=process +-CapabilityBoundingSet=CAP_NET_ADMIN CAP_DAC_OVERRIDE CAP_NET_RAW CAP_NET_BIND_SERVICE CAP_SETGID CAP_SETUID CAP_SYS_MODULE CAP_AUDIT_WRITE CAP_KILL CAP_SYS_CHROOT ++#CapabilityBoundingSet=CAP_NET_ADMIN CAP_DAC_OVERRIDE CAP_NET_RAW CAP_NET_BIND_SERVICE CAP_SETGID CAP_SETUID CAP_SYS_MODULE CAP_AUDIT_WRITE CAP_KILL CAP_SYS_CHROOT + +-# ibft settings plugin calls iscsiadm which needs CAP_SYS_ADMIN +-#CapabilityBoundingSet=CAP_SYS_ADMIN ++# ibft settings plugin calls iscsiadm which needs CAP_SYS_ADMIN (rh#1371201) ++CapabilityBoundingSet=CAP_NET_ADMIN CAP_DAC_OVERRIDE CAP_NET_RAW CAP_NET_BIND_SERVICE CAP_SETGID CAP_SETUID CAP_SYS_MODULE CAP_AUDIT_WRITE CAP_KILL CAP_SYS_CHROOT CAP_SYS_ADMIN + + ProtectSystem=true + ProtectHome=read-only +-- +2.17.1 + diff --git a/SOURCES/0006-support-aes256-private-keys-rh1623798.patch b/SOURCES/0006-support-aes256-private-keys-rh1623798.patch new file mode 100644 index 00000000..0702108d --- /dev/null +++ b/SOURCES/0006-support-aes256-private-keys-rh1623798.patch @@ -0,0 +1,275 @@ +From 0590bacaecdfb57d5289a2c3d0628424689353d1 Mon Sep 17 00:00:00 2001 +From: Beniamino Galvani +Date: Mon, 27 Aug 2018 17:04:34 +0200 +Subject: [PATCH] libnm-core: support private keys encrypted with + AES-{192,256}-CBC + +https://github.com/NetworkManager/NetworkManager/pull/189 +(cherry picked from commit 93f85edcce502cfa6d3676f58bf9e8e1a527ea53) +(cherry picked from commit 74fc6f30b2fef3b8631128907e036bda88491970) +--- + Makefile.am | 3 +- + libnm-core/crypto.c | 30 +++++++---- + libnm-core/crypto.h | 6 ++- + libnm-core/crypto_gnutls.c | 14 ++++- + libnm-core/crypto_nss.c | 9 +++- + ...{test-aes-key.pem => test-aes-128-key.pem} | 0 + libnm-core/tests/certs/test-aes-256-key.pem | 54 +++++++++++++++++++ + libnm-core/tests/test-crypto.c | 7 ++- + libnm-util/tests/test-crypto.c | 4 +- + 9 files changed, 106 insertions(+), 21 deletions(-) + rename libnm-core/tests/certs/{test-aes-key.pem => test-aes-128-key.pem} (100%) + create mode 100644 libnm-core/tests/certs/test-aes-256-key.pem + +diff --git a/Makefile.am b/Makefile.am +index cdb5cfc9d..d86fa26c7 100644 +--- a/Makefile.am ++++ b/Makefile.am +@@ -749,7 +749,8 @@ EXTRA_DIST += \ + libnm-core/tests/certs/test2_ca_cert.pem \ + libnm-core/tests/certs/test2-cert.p12 \ + libnm-core/tests/certs/test2_key_and_cert.pem \ +- libnm-core/tests/certs/test-aes-key.pem \ ++ libnm-core/tests/certs/test-aes-128-key.pem \ ++ libnm-core/tests/certs/test-aes-256-key.pem \ + libnm-core/tests/certs/test_ca_cert.der \ + libnm-core/tests/certs/test_ca_cert.pem \ + libnm-core/tests/certs/test-ca-cert.pem \ +diff --git a/libnm-core/crypto.c b/libnm-core/crypto.c +index c4e48475f..319f8055f 100644 +--- a/libnm-core/crypto.c ++++ b/libnm-core/crypto.c +@@ -158,7 +158,13 @@ parse_old_openssl_key_file (const guint8 *data, + goto parse_error; + } + } else if (!strncmp (p, DEK_INFO_TAG, strlen (DEK_INFO_TAG))) { ++ static const char *const known_ciphers[] = { CIPHER_DES_EDE3_CBC, ++ CIPHER_DES_CBC, ++ CIPHER_AES_128_CBC, ++ CIPHER_AES_192_CBC, ++ CIPHER_AES_256_CBC }; + char *comma; ++ guint i; + + if (enc_tags++ != 1 || str->len != 0) { + g_set_error (error, NM_CRYPTO_ERROR, +@@ -187,13 +193,13 @@ parse_old_openssl_key_file (const guint8 *data, + iv = g_strdup (comma); + + /* Get the private key cipher */ +- if (!strcasecmp (p, "DES-EDE3-CBC")) { +- cipher = g_strdup (p); +- } else if (!strcasecmp (p, "DES-CBC")) { +- cipher = g_strdup (p); +- } else if (!strcasecmp (p, "AES-128-CBC")) { +- cipher = g_strdup (p); +- } else { ++ for (i = 0; i < G_N_ELEMENTS (known_ciphers); i++) { ++ if (!g_ascii_strcasecmp (p, known_ciphers[i])) { ++ cipher = g_strdup (known_ciphers[i]); ++ break; ++ } ++ } ++ if (i == G_N_ELEMENTS (known_ciphers)) { + g_set_error (error, NM_CRYPTO_ERROR, + NM_CRYPTO_ERROR_INVALID_DATA, + _("Malformed PEM file: unknown private key cipher '%s'."), +@@ -383,12 +389,16 @@ crypto_make_des_aes_key (const char *cipher, + g_return_val_if_fail (password != NULL, NULL); + g_return_val_if_fail (out_len != NULL, NULL); + +- if (!strcmp (cipher, "DES-EDE3-CBC")) ++ if (!strcmp (cipher, CIPHER_DES_EDE3_CBC)) + digest_len = 24; +- else if (!strcmp (cipher, "DES-CBC")) ++ else if (!strcmp (cipher, CIPHER_DES_CBC)) + digest_len = 8; +- else if (!strcmp (cipher, "AES-128-CBC")) ++ else if (!strcmp (cipher, CIPHER_AES_128_CBC)) + digest_len = 16; ++ else if (!strcmp (cipher, CIPHER_AES_192_CBC)) ++ digest_len = 24; ++ else if (!strcmp (cipher, CIPHER_AES_256_CBC)) ++ digest_len = 32; + else { + g_set_error (error, NM_CRYPTO_ERROR, + NM_CRYPTO_ERROR_UNKNOWN_CIPHER, +diff --git a/libnm-core/crypto.h b/libnm-core/crypto.h +index e89f09193..d20d6f310 100644 +--- a/libnm-core/crypto.h ++++ b/libnm-core/crypto.h +@@ -30,8 +30,10 @@ + + #define MD5_HASH_LEN 20 + #define CIPHER_DES_EDE3_CBC "DES-EDE3-CBC" +-#define CIPHER_DES_CBC "DES-CBC" +-#define CIPHER_AES_CBC "AES-128-CBC" ++#define CIPHER_DES_CBC "DES-CBC" ++#define CIPHER_AES_128_CBC "AES-128-CBC" ++#define CIPHER_AES_192_CBC "AES-192-CBC" ++#define CIPHER_AES_256_CBC "AES-256-CBC" + + typedef enum { + NM_CRYPTO_KEY_TYPE_UNKNOWN = 0, +diff --git a/libnm-core/crypto_gnutls.c b/libnm-core/crypto_gnutls.c +index 53a3ba4ad..49181ee72 100644 +--- a/libnm-core/crypto_gnutls.c ++++ b/libnm-core/crypto_gnutls.c +@@ -82,9 +82,15 @@ crypto_decrypt (const char *cipher, + } else if (!strcmp (cipher, CIPHER_DES_CBC)) { + cipher_mech = GNUTLS_CIPHER_DES_CBC; + real_iv_len = SALT_LEN; +- } else if (!strcmp (cipher, CIPHER_AES_CBC)) { ++ } else if (!strcmp (cipher, CIPHER_AES_128_CBC)) { + cipher_mech = GNUTLS_CIPHER_AES_128_CBC; + real_iv_len = 16; ++ } else if (!strcmp (cipher, CIPHER_AES_192_CBC)) { ++ cipher_mech = GNUTLS_CIPHER_AES_192_CBC; ++ real_iv_len = 16; ++ } else if (!strcmp (cipher, CIPHER_AES_256_CBC)) { ++ cipher_mech = GNUTLS_CIPHER_AES_256_CBC; ++ real_iv_len = 16; + } else { + g_set_error (error, NM_CRYPTO_ERROR, + NM_CRYPTO_ERROR_UNKNOWN_CIPHER, +@@ -189,8 +195,12 @@ crypto_encrypt (const char *cipher, + + if (!strcmp (cipher, CIPHER_DES_EDE3_CBC)) + cipher_mech = GNUTLS_CIPHER_3DES_CBC; +- else if (!strcmp (cipher, CIPHER_AES_CBC)) ++ else if (!strcmp (cipher, CIPHER_AES_128_CBC)) + cipher_mech = GNUTLS_CIPHER_AES_128_CBC; ++ else if (!strcmp (cipher, CIPHER_AES_192_CBC)) ++ cipher_mech = GNUTLS_CIPHER_AES_192_CBC; ++ else if (!strcmp (cipher, CIPHER_AES_256_CBC)) ++ cipher_mech = GNUTLS_CIPHER_AES_256_CBC; + else { + g_set_error (error, NM_CRYPTO_ERROR, + NM_CRYPTO_ERROR_UNKNOWN_CIPHER, +diff --git a/libnm-core/crypto_nss.c b/libnm-core/crypto_nss.c +index 56e91e26f..9a0c43349 100644 +--- a/libnm-core/crypto_nss.c ++++ b/libnm-core/crypto_nss.c +@@ -103,7 +103,9 @@ crypto_decrypt (const char *cipher, + } else if (!strcmp (cipher, CIPHER_DES_CBC)) { + cipher_mech = CKM_DES_CBC_PAD; + real_iv_len = 8; +- } else if (!strcmp (cipher, CIPHER_AES_CBC)) { ++ } else if (NM_IN_STRSET (cipher, CIPHER_AES_128_CBC, ++ CIPHER_AES_192_CBC, ++ CIPHER_AES_256_CBC)) { + cipher_mech = CKM_AES_CBC_PAD; + real_iv_len = 16; + } else { +@@ -269,7 +271,10 @@ crypto_encrypt (const char *cipher, + + if (!strcmp (cipher, CIPHER_DES_EDE3_CBC)) + cipher_mech = CKM_DES3_CBC_PAD; +- else if (!strcmp (cipher, CIPHER_AES_CBC)) ++ else if (NM_IN_STRSET (cipher, ++ CIPHER_AES_128_CBC, ++ CIPHER_AES_192_CBC, ++ CIPHER_AES_256_CBC)) + cipher_mech = CKM_AES_CBC_PAD; + else { + g_set_error (error, NM_CRYPTO_ERROR, +diff --git a/libnm-core/tests/certs/test-aes-key.pem b/libnm-core/tests/certs/test-aes-128-key.pem +similarity index 100% +rename from libnm-core/tests/certs/test-aes-key.pem +rename to libnm-core/tests/certs/test-aes-128-key.pem +diff --git a/libnm-core/tests/certs/test-aes-256-key.pem b/libnm-core/tests/certs/test-aes-256-key.pem +new file mode 100644 +index 000000000..e51bafd3d +--- /dev/null ++++ b/libnm-core/tests/certs/test-aes-256-key.pem +@@ -0,0 +1,54 @@ ++-----BEGIN RSA PRIVATE KEY----- ++Proc-Type: 4,ENCRYPTED ++DEK-Info: AES-256-CBC,5FF6BD2D4E57E8933D4A6814DEF5305A ++ ++9Br+xw6XOg7qUqfeE5PJ4g/PAm7eTcPMb4FzSKkaEosLo6oj4f37TwXuojJZeAmi ++1EytpqM1vdYHCLdjg+qYaTIq6mzMZIyoaREokcOhcNrq5S0J39gJLVV9LjiXhCAH ++GQgDBnbRT6HGz70AyTRLcW9aj6uBzTv/m92sLUw2txFeBXK8n2AA1oHJTgsFNYjf ++/ZvTCE1VMQHDPx31Vn5WXSUHNc0hx4MTIwpHqWI17ohr8IiWCs5HXVfVaqrNeNEw ++haD7fg8oNxjLs46/4dDWmfWXhDsMFSweZv03gZdyVjwn1IOqeVGmTdLpllfgOW7E +++XE8Y/d55s5nkOxu6eXNMtWgjclKBGr2iMxxnODmEsUt2WcV98cPS+25o3hOfy3s ++NIcfxtWVRFUtjqf3ragyGLuXFqATkj1slj4LVMeewRJ1g+Z6ti0mwBN+ZrYtKdec ++FRNb4zr5FW+3SqkIIJVfxJEYJDB4zODhMg8tySEHLKuT0uz42YQ4aoOHTzO5WDBY ++2BI7TjRppXcExPnkAk5jqbKA6BjT9KcAVyypfxDKvCeXKdjDcL6ISOBSm6cQBh8D ++HxsFzMy9PF6kKNeiNiEsVPnKYvhvs1hTBtp+IAgJ6KZnCDKplZFxo/mBAlV2KyCT ++x+Mhmme3fXdLJkvxlVJAoAhwgXvomVCVTGI3JhcQIqVgxPIKYpqlHVFC7JjG+yQX ++tvzCPtr9G9+Ofrm6zXjlDD7zNyl/KfFtEWhO2ePHkQlCEuKJnsnRIf/wQ0viG0yY ++MH31Z/84o2pKLBKY5fq8+eYuYoP9Rk4W2LpjGMvdkKhEHL26kZofeFyqD+JcaxHc ++kQh7/SbWAsREGb9Jp7I2q1mo749mse1oSFIQa5gN3jB0mgHZd6edRYeW2Up+rqEK ++k6Xd6uqs7bZd5W9sP7Cf6yJOFEjqFVLQEVEXWSchgeta/JNrjGr3UzLFN2S+vhvX ++XgDa41y2UdXHRqj2s864u0ZDPyGXYZnVbvQn/8xHQ7rvxHowpTn+XXUEf0AQnk3j ++9h++3McwP8GuVxkwc6o9TfOL+ell5jup7F3SekwEiE3hqY8x87g6X2zD5VSnfCy3 ++0t0LmPGI1b3LABeYjA1WEdhoTlHrNLkwOR4gsudrJ5nxIzfGy+IHaloXLJy4YKfX ++pJ+qyGRUR42YD9IhiEmmmO1VoJgVEYfBiz50Jg8emddku6eKdmv9IKjiSb2pTbDS ++4oUYKg109OOn+krk67dNXofAXrBa8v7QusC0yz9N25H05Xyou1iqpGk+uBrTqEO6 ++lW9lWQo57BQU9og40xMKH/xQgIxfQRktUKsPizj8mKil4izo5KgjPSqBeEbj+Q3c ++0FKlrpTXQlXfX5Z5esqMuCSiwQEzoJR+V+SUaSVcg1av0k/CJMin4Cr8roai+OjK ++lhaQIvx35Bzd02yERYsfpDjmQCXmIeiDm8JtB6znbQPUJ4d8kzWR+5ACOZW/dUss ++YhWJRkZpkIwTY+/sDU4mnP2R37MNo+OH4CwZyUDHjlkRPGW+6JBEpnnlI9a/1Vb1 ++pjAGpi/8u/luvZGTzCzxQG2dZc5YQR869U+wFsFbLRiD0aP2SpdOH0QxxPOcdR8+ ++HWyL01BJBKyK/wZWJhe+63zlk1L5CA0XYpoNkYpMlPNZkcqR7QzUOATfuBgI2aPM ++AXaweaAWhpPCDsc2RypIs9DhTiCCkt8tq8Au15hVUKAoshLeewPtv0t75MEC0hVB ++z6FVnNlqq0cqqcSVqvUG6JUGtFOGgG3ifEMXggq5k12+wGzY63DLR8dFPNpOL6/1 ++nocOayHJIU9M8PP817PzhAUAePRRUKRg8kkbKKeZnCJxoF7O15AFVEJnl9Vyokkz ++bULYhzYVx3xh8THMi+5jsnKWPJyMeYHbHH3C658SIw6Ff9fgEWscv5ZkGYdKMg+l ++8hBn+++SoqIO+F3lOGco+s8qlYox106lUwJEtORXcBxmkaHSo/X2AVO8Owt4vYli ++mjWnY6V9vooBgOuCMcY780pcoj2lSf9JPHDYK0j8t5VumDUSLyLt+tCj0yv/vl5L ++9L++vbu2akZRC9ChijYpfhTvXoG36ePhoT7AGGnhpFjjw1VqG80GY4XSODKzH86w ++kUcZoErb8swUPYOtsybtuPb+6c/YofQ8GfpVosPZgSRD4+U7v+zA3/z8xF2B0xt6 ++uV8hXbropuni8KmbFuKrPZK3p2v2aZ8F0+GITwS75/hbT6D7ruUSr5q4V0VKeE8G ++k3QSI0s6+74stPv3S/ByCxu8q51ffYqVw00wzPpEc4SmHEa0R7IczJKXupmDdZZM ++1rASSBNzS5TZDBXP6S7npYQ8nHhgXTdCFO7eM3bp24B/i2o0s7+gkKrz0DkEbv9I ++UrCJjTL8OIIP4qSLMILzZ8pB28c+zyM482ZqFY/2b7j6WlTiqa9P1adrD1gLxTQ0 ++Sw9xY+sY3PAJqcnPA5NjDZL/h5plgHhCqDa9pEtdBVG2Mxcl9bXbphwD1MIzj4gr ++xtlW1HUJ/iOhFcXldOJ1MCt++Bm5av4mL5adQ/oUnL5Q0oZZFwqT09k7xe7lZ98N ++uj2Lfl8NN7N3ama9KatgbX5g6IALuk/rJN/4KEiiu24m+lR7c5L0pg/cG6LIFjmk ++HlTsc0ANCgeZBhDJ8kvjcXDhFOqoYE/+D2VO6ZEHRsDibQ+kjpaH+DiD01/gh0N0 ++HM6GGtm3GbOyZUhw5OFz04xzcyFYo2xaqzgaZieAOcrt2s6XyPVf1gww08/HtTMR ++gLg14MUQvRXV6kPJfdu4OLZ//b6J0KnzVyLDRdOrWIj2raLWmKwQN9qv05/yskcD ++Y6x7wq3v6iZpFjDc53sslhwp2XRsoWT9X5alVspz8WvP/kqgkTdzpPFdp1vIovOQ ++kRXdzzKICDGDJUIcTL8cJ3Dv4XqNR/sVyuB4dfndzQQApbdYTDNpwX0VJDBjMkQy ++Up6aiUknxa6Cbp7b1ZfUQY8yNBAIZL+R8dmobT3nAHW61DaASHSxn+elCD2Ja/6b ++EiWikskyN6crMAv35ILr5ySsZK97ttNNmRoGFbt8bTjRd83Ie+UfH445kCKsY83x ++aDCvWm+bbV6M9rSgjhJ3bWOudiw+EBMGvSamSnS7CYnRmwq4t+4bM2sh2nYKY0qw ++-----END RSA PRIVATE KEY----- +diff --git a/libnm-core/tests/test-crypto.c b/libnm-core/tests/test-crypto.c +index fb99ffea7..5fb26c1fc 100644 +--- a/libnm-core/tests/test-crypto.c ++++ b/libnm-core/tests/test-crypto.c +@@ -476,8 +476,11 @@ main (int argc, char **argv) + g_test_add_data_func ("/libnm/crypto/key/padding-8", + "test2_key_and_cert.pem, 12345testing", + test_key); +- g_test_add_data_func ("/libnm/crypto/key/aes", +- "test-aes-key.pem, test-aes-password", ++ g_test_add_data_func ("/libnm/crypto/key/aes-128", ++ "test-aes-128-key.pem, test-aes-password", ++ test_key); ++ g_test_add_data_func ("/libnm/crypto/key/aes-256", ++ "test-aes-256-key.pem, test-aes-password", + test_key); + g_test_add_data_func ("/libnm/crypto/key/decrypted", + "test-key-only-decrypted.pem", +diff --git a/libnm-util/tests/test-crypto.c b/libnm-util/tests/test-crypto.c +index 61bd97745..af6028a52 100644 +--- a/libnm-util/tests/test-crypto.c ++++ b/libnm-util/tests/test-crypto.c +@@ -383,8 +383,8 @@ main (int argc, char **argv) + g_test_add_data_func ("/libnm/crypto/key/padding-8", + "test2_key_and_cert.pem, 12345testing", + test_key); +- g_test_add_data_func ("/libnm/crypto/key/aes", +- "test-aes-key.pem, test-aes-password", ++ g_test_add_data_func ("/libnm/crypto/key/aes-128", ++ "test-aes-128-key.pem, test-aes-password", + test_key); + + g_test_add_data_func ("/libnm/crypto/PKCS#12/1", +-- +2.17.1 + diff --git a/SOURCES/0007-core-fix-wireless-bitrate-property-name-on-D-Bus-rh1626391.patch b/SOURCES/0007-core-fix-wireless-bitrate-property-name-on-D-Bus-rh1626391.patch new file mode 100644 index 00000000..d6fce0ff --- /dev/null +++ b/SOURCES/0007-core-fix-wireless-bitrate-property-name-on-D-Bus-rh1626391.patch @@ -0,0 +1,36 @@ +From acb43106a919affe65eb736ebc798390396913cc Mon Sep 17 00:00:00 2001 +From: Beniamino Galvani +Date: Fri, 7 Sep 2018 09:33:57 +0200 +Subject: [PATCH] core: fix wireless bitrate property name on D-Bus + +In commit 297d4985abcc ("core/dbus: rework D-Bus implementation to use +lower layer GDBusConnection API") the Device.Wireless 'Bitrate' +property on D-Bus was accidentally changed to 'BitRate'. Revert the +old name. + +Reported-by: Joseph Conley +Fixes: 297d4985abcc7b571b8c090ee90622357fc60e16 + +https://mail.gnome.org/archives/networkmanager-list/2018-September/msg00004.html +(cherry picked from commit c882633d48ad70d5c92ce0566a0f46dcbb5c51b3) +(cherry picked from commit 3a2c6f81f6b0a8dd38d45aa89fa7d6d1f897f149) +--- + src/devices/wifi/nm-wifi-common.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/devices/wifi/nm-wifi-common.c b/src/devices/wifi/nm-wifi-common.c +index 8e079d115..c95620e7f 100644 +--- a/src/devices/wifi/nm-wifi-common.c ++++ b/src/devices/wifi/nm-wifi-common.c +@@ -196,7 +196,7 @@ const NMDBusInterfaceInfoExtended nm_interface_info_device_wireless = { + NM_DEFINE_DBUS_PROPERTY_INFO_EXTENDED_READABLE_L ("HwAddress", "s", NM_DEVICE_HW_ADDRESS), + NM_DEFINE_DBUS_PROPERTY_INFO_EXTENDED_READABLE_L ("PermHwAddress", "s", NM_DEVICE_PERM_HW_ADDRESS), + NM_DEFINE_DBUS_PROPERTY_INFO_EXTENDED_READABLE_L ("Mode", "u", NM_DEVICE_WIFI_MODE), +- NM_DEFINE_DBUS_PROPERTY_INFO_EXTENDED_READABLE_L ("BitRate", "u", NM_DEVICE_WIFI_BITRATE), ++ NM_DEFINE_DBUS_PROPERTY_INFO_EXTENDED_READABLE_L ("Bitrate", "u", NM_DEVICE_WIFI_BITRATE), + NM_DEFINE_DBUS_PROPERTY_INFO_EXTENDED_READABLE_L ("AccessPoints", "ao", NM_DEVICE_WIFI_ACCESS_POINTS), + NM_DEFINE_DBUS_PROPERTY_INFO_EXTENDED_READABLE_L ("ActiveAccessPoint", "o", NM_DEVICE_WIFI_ACTIVE_ACCESS_POINT), + NM_DEFINE_DBUS_PROPERTY_INFO_EXTENDED_READABLE_L ("WirelessCapabilities", "u", NM_DEVICE_WIFI_CAPABILITIES), +-- +2.17.1 + diff --git a/SOURCES/0008-dns-dnsmsaq-avoid-crash-no-rev-domains-rh1628576.patch b/SOURCES/0008-dns-dnsmsaq-avoid-crash-no-rev-domains-rh1628576.patch new file mode 100644 index 00000000..d80d1e04 --- /dev/null +++ b/SOURCES/0008-dns-dnsmsaq-avoid-crash-no-rev-domains-rh1628576.patch @@ -0,0 +1,42 @@ +From 3a040f04f5c32639092ea5e427675df2a1830704 Mon Sep 17 00:00:00 2001 +From: Beniamino Galvani +Date: Thu, 13 Sep 2018 14:50:32 +0200 +Subject: [PATCH] dns: dnsmasq: avoid crash when no reverse domains exist + +ip_data->domains.reverse can be NULL when the device is being removed +and has no IP configuration for a short moment. + +Fixes: 6409e7719c0341baedfdb063366457e390894ed9 + +https://bugzilla.gnome.org/show_bug.cgi?id=797022 +(cherry picked from commit f0c075f05082e4c77fac75ad06d303e7538e4fc7) +(cherry picked from commit 8309a7a6964d3677e0705046fb2f91810ef3ab65) +(cherry picked from commit 3abddc3328e7896f7af137ec9d74db86c27b3302) +--- + src/dns/nm-dns-dnsmasq.c | 10 ++++++---- + 1 file changed, 6 insertions(+), 4 deletions(-) + +diff --git a/src/dns/nm-dns-dnsmasq.c b/src/dns/nm-dns-dnsmasq.c +index b5b93280d..91f4c55bd 100644 +--- a/src/dns/nm-dns-dnsmasq.c ++++ b/src/dns/nm-dns-dnsmasq.c +@@ -183,10 +183,12 @@ add_ip_config (NMDnsDnsmasq *self, GVariantBuilder *servers, const NMDnsIPConfig + domain[0] ? domain : NULL); + } + +- for (j = 0; ip_data->domains.reverse[j]; j++) { +- add_dnsmasq_nameserver (self, servers, +- ip_addr_to_string_buf, +- ip_data->domains.reverse[j]); ++ if (ip_data->domains.reverse) { ++ for (j = 0; ip_data->domains.reverse[j]; j++) { ++ add_dnsmasq_nameserver (self, servers, ++ ip_addr_to_string_buf, ++ ip_data->domains.reverse[j]); ++ } + } + } + } +-- +2.17.1 + diff --git a/SOURCES/1000-cli-remove-assertion-in-nmc_device_state_to_color.patch b/SOURCES/1000-cli-remove-assertion-in-nmc_device_state_to_color.patch new file mode 100644 index 00000000..ad520002 --- /dev/null +++ b/SOURCES/1000-cli-remove-assertion-in-nmc_device_state_to_color.patch @@ -0,0 +1,34 @@ +From 2f9faf8348793ed577c0a3f6a7850c182762a7f0 Mon Sep 17 00:00:00 2001 +From: Beniamino Galvani +Date: Thu, 9 Aug 2018 20:37:32 +0200 +Subject: [PATCH] cli: remove assertion in nmc_device_state_to_color() + +nmcli should not fail when the state device state is > ACTIVATED. +Just return an unknown color code like we used to do, and like we do +for connections. + +Fixes: 31aa2cfe29beb1bb7371ff36dbbd8baebeeaa06e + +https://bugzilla.gnome.org/show_bug.cgi?id=796834 +(cherry picked from commit c955d91d4bbd1aec0e00be8955ac24aecf64182f) +(cherry picked from commit 5b31dfb1a529a4c5eec6343daac22ecc81c83dc5) +--- + clients/cli/devices.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/clients/cli/devices.c b/clients/cli/devices.c +index aa28678ff..be7597327 100644 +--- a/clients/cli/devices.c ++++ b/clients/cli/devices.c +@@ -1470,7 +1470,7 @@ nmc_device_state_to_color (NMDeviceState state) + else if (state == NM_DEVICE_STATE_ACTIVATED) + return NM_META_COLOR_DEVICE_ACTIVATED; + +- g_return_val_if_reached (NM_META_COLOR_DEVICE_UNKNOWN); ++ return NM_META_COLOR_DEVICE_UNKNOWN; + } + + static void +-- +2.17.1 + diff --git a/SOURCES/1001-translations-rh1569438.patch b/SOURCES/1001-translations-rh1569438.patch new file mode 100644 index 00000000..e9413b16 --- /dev/null +++ b/SOURCES/1001-translations-rh1569438.patch @@ -0,0 +1,11844 @@ +From 4f8a029a6574e33eb1466840fe41ff02a52dea92 Mon Sep 17 00:00:00 2001 +From: Lubomir Rintel +Date: Tue, 12 Dec 2017 10:46:10 +0100 +Subject: [PATCH 1/3] po: add zanata.xml + +--- + zanata.xml | 16 ++++++++++++++++ + 1 file changed, 16 insertions(+) + create mode 100644 zanata.xml + +diff --git a/zanata.xml b/zanata.xml +new file mode 100644 +index 0000000..4c7147b +--- /dev/null ++++ b/zanata.xml +@@ -0,0 +1,16 @@ ++ ++ ++ ++ ++ ++ https://vendors.zanata.redhat.com/ ++ networkmanager ++ RHEL-7.6 ++ gettext ++ po ++ po ++ ++ +-- +2.17.1 + +From 2021084e8dec54ea581886f4f7f6c61a124c8068 Mon Sep 17 00:00:00 2001 +From: Lubomir Rintel +Date: Sun, 19 Aug 2018 13:04:25 +0200 +Subject: [PATCH 2/3] po/ja: translations from the Red Hat translators + +--- + po/ja.po | 4941 ++++++++++++++++++++++++++++-------------------------- + 1 file changed, 2609 insertions(+), 2332 deletions(-) + +diff --git a/po/ja.po b/po/ja.po +index f54f8a4..35f9c7c 100644 +--- a/po/ja.po ++++ b/po/ja.po +@@ -7,20 +7,23 @@ + # Noriko Mizumoto , 2013 - 2014. + # amoewaki , 2017. #zanata + # lrintel , 2017. #zanata ++# amoewaki , 2018. #zanata ++# kemorigu , 2018. #zanata ++# lrintel , 2018. #zanata + msgid "" + msgstr "" + "Project-Id-Version: PACKAGE VERSION\n" + "Report-Msgid-Bugs-To: \n" +-"POT-Creation-Date: 2017-12-12 10:22+0100\n" +-"PO-Revision-Date: 2017-12-04 11:32+0000\n" +-"Last-Translator: amoewaki \n" ++"POT-Creation-Date: 2018-08-19 12:54+0200\n" ++"PO-Revision-Date: 2018-08-16 01:39+0000\n" ++"Last-Translator: kemorigu \n" + "Language-Team: Japanese \n" + "Language: ja\n" + "MIME-Version: 1.0\n" + "Content-Type: text/plain; charset=UTF-8\n" + "Content-Transfer-Encoding: 8bit\n" + "Plural-Forms: Plural-Forms: nplurals=1; plural=0;\n" +-"X-Generator: Zanata 4.3.2\n" ++"X-Generator: Zanata 4.6.0\n" + + #: ../clients/cli/agent.c:40 + #, c-format +@@ -32,7 +35,7 @@ msgid "" + msgstr "" + "使い方: nmcli agent { COMMAND | help }\n" + "\n" +-"COMMAND := { secret | polkit | all }\n" ++"コマンド := { secret | polkit | all }\n" + "\n" + "\n" + +@@ -87,48 +90,49 @@ msgstr "" + "す。\n" + "\n" + +-#: ../clients/cli/agent.c:158 ++#: ../clients/cli/agent.c:157 + #, c-format + msgid "nmcli successfully registered as a NetworkManager's secret agent.\n" + msgstr "" + "nmcli は NetworkManager のシークレットエージェントとして適切に登録されまし" + "た。\n" + +-#: ../clients/cli/agent.c:160 ++#: ../clients/cli/agent.c:159 + #, c-format + msgid "Error: secret agent initialization failed" + msgstr "エラー: シークレットエージェントの初期化に失敗しました" + +-#: ../clients/cli/agent.c:179 ++#: ../clients/cli/agent.c:178 + #, c-format + msgid "Error: polkit agent initialization failed: %s" + msgstr "エラー: polkit エージェントの初期化に失敗しました: %s" + +-#: ../clients/cli/agent.c:187 ++#: ../clients/cli/agent.c:186 + #, c-format + msgid "nmcli successfully registered as a polkit agent.\n" + msgstr "nmcli が polkit エージェントとして適切に登録されました。\n" + +-#: ../clients/cli/common.c:262 ../clients/cli/common.c:277 ++#: ../clients/cli/common.c:306 ../clients/cli/common.c:332 ++#: ../clients/cli/connections.c:1297 + msgid "GROUP" + msgstr "グループ" + +-#: ../clients/cli/common.c:559 ++#: ../clients/cli/common.c:606 + #, c-format + msgid "Error: openconnect failed: %s\n" + msgstr "エラー: openconnect が失敗しました: %s\n" + +-#: ../clients/cli/common.c:566 ++#: ../clients/cli/common.c:613 + #, c-format + msgid "Error: openconnect failed with status %d\n" + msgstr "エラー: openconnect がステータス %d で失敗しました\n" + +-#: ../clients/cli/common.c:568 ++#: ../clients/cli/common.c:615 + #, c-format + msgid "Error: openconnect failed with signal %d\n" + msgstr "エラー: openconnect がシグナル %d で失敗しました\n" + +-#: ../clients/cli/common.c:648 ++#: ../clients/cli/common.c:695 + #, c-format + msgid "" + "Warning: password for '%s' not given in 'passwd-file' and nmcli cannot ask " +@@ -137,25 +141,25 @@ msgstr "" + "警告: '%s' のパスワードが 'passwd-file' で提供されていません。nmcli は '--" + "ask' オプションがないと尋ねることができません。\n" + +-#: ../clients/cli/common.c:1114 ++#: ../clients/cli/common.c:1185 + #, c-format + msgid "Error: Could not create NMClient object: %s." + msgstr "エラー: NMClient オブジェクトを作成できませんでした: %s。" + +-#: ../clients/cli/common.c:1134 ++#: ../clients/cli/common.c:1205 + msgid "Error: NetworkManager is not running." + msgstr "エラー: NetworkManager が起動していません。" + +-#: ../clients/cli/common.c:1231 ++#: ../clients/cli/common.c:1301 + #, c-format + msgid "Error: argument '%s' not understood. Try passing --help instead." + msgstr "エラー: 引数 '%s' が認識されません。代わりに --help を渡してください。" + +-#: ../clients/cli/common.c:1241 ++#: ../clients/cli/common.c:1311 + msgid "Error: missing argument. Try passing --help." + msgstr "エラー: 引数がありません。--help を渡してください。" + +-#: ../clients/cli/common.c:1294 ++#: ../clients/cli/common.c:1364 + msgid "access denied" + msgstr "アクセスは拒否されました" + +@@ -166,7 +170,7 @@ msgstr "設定名は? " + + #: ../clients/cli/connections.c:65 + msgid "Property name? " +-msgstr "プロパティ名は? " ++msgstr "プロパティー名は? " + + #: ../clients/cli/connections.c:66 + msgid "Enter connection type: " +@@ -189,7 +193,70 @@ msgstr "接続 (名前、UUID またはパス)" + msgid "Connection(s) (name, UUID, path or apath)" + msgstr "接続 (名前、UUID、パス または apath)" + +-#: ../clients/cli/connections.c:195 ++#: ../clients/cli/connections.c:80 ../clients/cli/connections.c:89 ++#: ../clients/cli/devices.c:1201 ../clients/cli/devices.c:1245 ++#: ../clients/cli/devices.c:1247 ../clients/cli/general.c:41 ++#: ../clients/cli/general.c:82 ../clients/cli/general.c:150 ++#: ../clients/cli/general.c:155 ../clients/common/nm-client-utils.c:288 ++#: ../clients/common/nm-client-utils.c:291 ++#: ../clients/common/nm-client-utils.c:307 ++#: ../clients/common/nm-client-utils.c:310 ++#: ../clients/common/nm-meta-setting-desc.c:1482 ++#: ../clients/common/nm-meta-setting-desc.c:1532 ++#: ../clients/common/nm-meta-setting-desc.c:2681 ++#: ../clients/common/nm-meta-setting-desc.c:2736 ++msgid "unknown" ++msgstr "不明" ++ ++#: ../clients/cli/connections.c:81 ++msgid "activating" ++msgstr "アクティベート中" ++ ++#: ../clients/cli/connections.c:82 ++msgid "activated" ++msgstr "アクティベート済み" ++ ++#: ../clients/cli/connections.c:83 ../clients/common/nm-client-utils.c:284 ++msgid "deactivating" ++msgstr "停止中" ++ ++#: ../clients/cli/connections.c:84 ++msgid "deactivated" ++msgstr "停止しました" ++ ++#: ../clients/cli/connections.c:90 ++msgid "VPN connecting (prepare)" ++msgstr "VPN 接続(準備)" ++ ++#: ../clients/cli/connections.c:91 ++msgid "VPN connecting (need authentication)" ++msgstr "VPN 接続(認証が必要)" ++ ++#: ../clients/cli/connections.c:92 ++msgid "VPN connecting" ++msgstr "VPN 接続" ++ ++#: ../clients/cli/connections.c:93 ++msgid "VPN connecting (getting IP configuration)" ++msgstr "VPN 接続(IP 設定を取得)" ++ ++#: ../clients/cli/connections.c:94 ++msgid "VPN connected" ++msgstr "VPN 接続済み" ++ ++#: ../clients/cli/connections.c:95 ++msgid "VPN connection failed" ++msgstr "VPN 接続失敗" ++ ++#: ../clients/cli/connections.c:96 ++msgid "VPN disconnected" ++msgstr "VPN 切断済み" ++ ++#: ../clients/cli/connections.c:452 ++msgid "never" ++msgstr "しない" ++ ++#: ../clients/cli/connections.c:713 + #, c-format + msgid "" + "Usage: nmcli connection { COMMAND | help }\n" +@@ -266,7 +333,7 @@ msgstr "" + " export [id | uuid | path] []\n" + "\n" + +-#: ../clients/cli/connections.c:217 ++#: ../clients/cli/connections.c:735 + #, c-format + msgid "" + "Usage: nmcli connection show { ARGUMENTS | help }\n" +@@ -315,7 +382,7 @@ msgstr "" + "関連するシークレットも表示する場合は、グローバルな --show-secrets オプション" + "を使用します。\n" + +-#: ../clients/cli/connections.c:238 ++#: ../clients/cli/connections.c:756 + #, c-format + msgid "" + "Usage: nmcli connection up { ARGUMENTS | help }\n" +@@ -359,7 +426,7 @@ msgstr "" + "passwd-file - 接続をアクティブにするのに必要なパスワードを含むファイル\n" + "\n" + +-#: ../clients/cli/connections.c:259 ++#: ../clients/cli/connections.c:777 + #, c-format + msgid "" + "Usage: nmcli connection down { ARGUMENTS | help }\n" +@@ -381,7 +448,7 @@ msgstr "" + "で識別します。\n" + "\n" + +-#: ../clients/cli/connections.c:271 ++#: ../clients/cli/connections.c:789 + #, c-format + msgid "" + "Usage: nmcli connection add { ARGUMENTS | help }\n" +@@ -680,7 +747,7 @@ msgstr "" + " [ip6 ] [gw6 ]\n" + "\n" + +-#: ../clients/cli/connections.c:389 ++#: ../clients/cli/connections.c:907 + #, c-format + msgid "" + "Usage: nmcli connection modify { ARGUMENTS | help }\n" +@@ -726,7 +793,7 @@ msgstr "" + "nmcli con mod bond0 -bond.options downdelay\n" + "\n" + +-#: ../clients/cli/connections.c:412 ++#: ../clients/cli/connections.c:930 + #, c-format + msgid "" + "Usage: nmcli connection clone { ARGUMENTS | help }\n" +@@ -749,7 +816,7 @@ msgstr "" + "を除き、 の完全なコピーになります。\n" + "\n" + +-#: ../clients/cli/connections.c:424 ++#: ../clients/cli/connections.c:942 + #, c-format + msgid "" + "Usage: nmcli connection edit { ARGUMENTS | help }\n" +@@ -768,7 +835,7 @@ msgstr "" + "\n" + "引数 := [id | uuid | path] \n" + "\n" +-"インテラクティブなエディタで既存の接続プロファイルを編集します。\n" ++"インテラクティブなエディターで既存の接続プロファイルを編集します。\n" + "プロファイルは名前、UUID、D-Bus パスなどで識別します。\n" + "\n" + "引数 := [type <新しい接続タイプ>] [con-name <新しい接続名>]\n" +@@ -776,7 +843,7 @@ msgstr "" + "インテラクティブなエディターで新しい接続プロファイルを追加します。\n" + "\n" + +-#: ../clients/cli/connections.c:439 ++#: ../clients/cli/connections.c:957 + #, c-format + msgid "" + "Usage: nmcli connection delete { ARGUMENTS | help }\n" +@@ -795,7 +862,7 @@ msgstr "" + "プロファイルは名前、UUID、D-Bus パスで識別します。\n" + "\n" + +-#: ../clients/cli/connections.c:450 ++#: ../clients/cli/connections.c:968 + #, c-format + msgid "" + "Usage: nmcli connection monitor { ARGUMENTS | help }\n" +@@ -816,7 +883,7 @@ msgstr "" + "何も指定されない場合は、すべての接続プロファイルを監視します。\n" + "\n" + +-#: ../clients/cli/connections.c:462 ++#: ../clients/cli/connections.c:980 + #, c-format + msgid "" + "Usage: nmcli connection reload { help }\n" +@@ -828,7 +895,7 @@ msgstr "" + "\n" + "ディスクからすべての接続ファイルを再読み込みします。\n" + +-#: ../clients/cli/connections.c:470 ++#: ../clients/cli/connections.c:988 + #, c-format + msgid "" + "Usage: nmcli connection load { ARGUMENTS | help }\n" +@@ -850,7 +917,7 @@ msgstr "" + "NetworkManager に最新の状態を認識させてください。\n" + "\n" + +-#: ../clients/cli/connections.c:482 ++#: ../clients/cli/connections.c:1000 + #, c-format + msgid "" + "Usage: nmcli connection import { ARGUMENTS | help }\n" +@@ -874,7 +941,7 @@ msgstr "" + "NetworkManager VPN プラグインによりインポートされます。\n" + "\n" + +-#: ../clients/cli/connections.c:495 ++#: ../clients/cli/connections.c:1013 + #, c-format + msgid "" + "Usage: nmcli connection export { ARGUMENTS | help }\n" +@@ -893,441 +960,337 @@ msgstr "" + "データは標準出力またはファイル (名前が指定された場合) に送信されます。\n" + "\n" + +-#: ../clients/cli/connections.c:525 +-msgid "activating" +-msgstr "アクティベート中" +- +-#: ../clients/cli/connections.c:527 +-msgid "activated" +-msgstr "アクティベート済み" +- +-#: ../clients/cli/connections.c:529 ../clients/common/nm-client-utils.c:243 +-msgid "deactivating" +-msgstr "停止中" +- +-#: ../clients/cli/connections.c:531 +-msgid "deactivated" +-msgstr "停止しました" +- +-#: ../clients/cli/connections.c:534 ../clients/cli/connections.c:557 +-#: ../clients/cli/devices.c:1207 ../clients/cli/devices.c:1251 +-#: ../clients/cli/devices.c:1253 ../clients/cli/general.c:41 +-#: ../clients/cli/general.c:79 ../clients/cli/general.c:146 +-#: ../clients/cli/general.c:151 ../clients/common/nm-client-utils.c:247 +-#: ../clients/common/nm-client-utils.c:250 +-#: ../clients/common/nm-client-utils.c:266 +-#: ../clients/common/nm-client-utils.c:269 +-#: ../clients/common/nm-meta-setting-desc.c:1479 +-#: ../clients/common/nm-meta-setting-desc.c:1547 +-#: ../clients/common/nm-meta-setting-desc.c:2692 +-#: ../clients/common/nm-meta-setting-desc.c:2746 +-msgid "unknown" +-msgstr "不明" +- +-#: ../clients/cli/connections.c:543 +-msgid "VPN connecting (prepare)" +-msgstr "VPN 接続(準備)" +- +-#: ../clients/cli/connections.c:545 +-msgid "VPN connecting (need authentication)" +-msgstr "VPN 接続(認証が必要)" +- +-#: ../clients/cli/connections.c:547 +-msgid "VPN connecting" +-msgstr "VPN 接続" +- +-#: ../clients/cli/connections.c:549 +-msgid "VPN connecting (getting IP configuration)" +-msgstr "VPN 接続(IP 設定を取得)" +- +-#: ../clients/cli/connections.c:551 +-msgid "VPN connected" +-msgstr "VPN 接続済み" +- +-#: ../clients/cli/connections.c:553 +-msgid "VPN connection failed" +-msgstr "VPN 接続失敗" +- +-#: ../clients/cli/connections.c:555 +-msgid "VPN disconnected" +-msgstr "VPN 切断済み" +- +-#: ../clients/cli/connections.c:625 ++#: ../clients/cli/connections.c:1095 + #, c-format + msgid "Error updating secrets for %s: %s\n" + msgstr "%s のシークレットの更新中にエラーが発生しました: %s\n" + +-#: ../clients/cli/connections.c:645 ++#: ../clients/cli/connections.c:1138 + msgid "Connection profile details" + msgstr "接続プロファイルの詳細" + +-#: ../clients/cli/connections.c:658 ../clients/cli/connections.c:1108 ++#: ../clients/cli/connections.c:1151 ../clients/cli/connections.c:1249 + #, c-format + msgid "Error: 'connection show': %s" + msgstr "エラー: 'connection show': %s" + +-#: ../clients/cli/connections.c:876 +-msgid "never" +-msgstr "しない" +- +-#. "CAPABILITIES" +-#: ../clients/cli/connections.c:877 ../clients/cli/connections.c:879 +-#: ../clients/cli/connections.c:881 ../clients/cli/connections.c:914 +-#: ../clients/cli/connections.c:981 ../clients/cli/connections.c:982 +-#: ../clients/cli/connections.c:984 ../clients/cli/connections.c:4427 +-#: ../clients/cli/connections.c:6365 ../clients/cli/connections.c:6366 +-#: ../clients/cli/devices.c:881 ../clients/cli/devices.c:1170 +-#: ../clients/cli/devices.c:1171 ../clients/cli/devices.c:1172 +-#: ../clients/cli/devices.c:1173 ../clients/cli/devices.c:1174 +-#: ../clients/cli/devices.c:1211 ../clients/cli/devices.c:1213 +-#: ../clients/cli/devices.c:1214 ../clients/cli/devices.c:1244 +-#: ../clients/cli/devices.c:1245 ../clients/cli/devices.c:1246 +-#: ../clients/cli/devices.c:1247 ../clients/cli/devices.c:1248 +-#: ../clients/cli/devices.c:1249 ../clients/cli/devices.c:1250 +-#: ../clients/cli/devices.c:1252 ../clients/cli/devices.c:1254 +-#: ../clients/cli/general.c:152 ../clients/common/nm-client-utils.c:258 +-#: ../clients/common/nm-meta-setting-desc.c:719 +-#: ../clients/common/nm-meta-setting-desc.c:2685 +-msgid "yes" +-msgstr "はい" +- +-#: ../clients/cli/connections.c:877 ../clients/cli/connections.c:879 +-#: ../clients/cli/connections.c:881 ../clients/cli/connections.c:981 +-#: ../clients/cli/connections.c:982 ../clients/cli/connections.c:984 +-#: ../clients/cli/connections.c:4426 ../clients/cli/connections.c:6365 +-#: ../clients/cli/connections.c:6366 ../clients/cli/devices.c:881 +-#: ../clients/cli/devices.c:1170 ../clients/cli/devices.c:1171 +-#: ../clients/cli/devices.c:1172 ../clients/cli/devices.c:1173 +-#: ../clients/cli/devices.c:1174 ../clients/cli/devices.c:1211 +-#: ../clients/cli/devices.c:1213 ../clients/cli/devices.c:1214 +-#: ../clients/cli/devices.c:1244 ../clients/cli/devices.c:1245 +-#: ../clients/cli/devices.c:1246 ../clients/cli/devices.c:1247 +-#: ../clients/cli/devices.c:1248 ../clients/cli/devices.c:1249 +-#: ../clients/cli/devices.c:1250 ../clients/cli/devices.c:1252 +-#: ../clients/cli/devices.c:1254 ../clients/cli/general.c:153 +-#: ../clients/common/nm-client-utils.c:260 +-#: ../clients/common/nm-meta-setting-desc.c:719 +-#: ../clients/common/nm-meta-setting-desc.c:2688 +-msgid "no" +-msgstr "いいえ" +- +-#: ../clients/cli/connections.c:1098 ++#: ../clients/cli/connections.c:1239 + msgid "Activate connection details" + msgstr "アクティブな接続の詳細" + +-#: ../clients/cli/connections.c:1345 ++#: ../clients/cli/connections.c:1485 + #, c-format + msgid "invalid field '%s'; allowed fields: %s and %s, or %s,%s" + msgstr "" + "無効なフィールド '%s'; 使用できるフィールド: %s および %s、または %s、%s" + +-#: ../clients/cli/connections.c:1360 ../clients/cli/connections.c:1368 ++#: ../clients/cli/connections.c:1500 ../clients/cli/connections.c:1508 + #, c-format + msgid "'%s' has to be alone" + msgstr "'%s' は孤立させる必要があります" + +-#: ../clients/cli/connections.c:1568 ++#: ../clients/cli/connections.c:1773 + #, c-format + msgid "incorrect string '%s' of '--order' option" + msgstr "'--order' オプションの正しくない文字列 '%s'" + +-#: ../clients/cli/connections.c:1594 ++#: ../clients/cli/connections.c:1798 + #, c-format + msgid "incorrect item '%s' in '--order' option" + msgstr "'--order' オプションの正しくないアイテム '%s'" + +-#: ../clients/cli/connections.c:1624 ++#: ../clients/cli/connections.c:1836 + msgid "No connection specified" + msgstr "接続が指定されていません。" + +-#: ../clients/cli/connections.c:1639 ++#: ../clients/cli/connections.c:1847 + #, c-format + msgid "%s argument is missing" + msgstr "%s 引数がありません。" + +-#: ../clients/cli/connections.c:1649 ++#: ../clients/cli/connections.c:1865 + #, c-format + msgid "unknown connection '%s'" + msgstr "不明な接続 '%s'" + +-#: ../clients/cli/connections.c:1682 ++#: ../clients/cli/connections.c:1894 + msgid "'--order' argument is missing" + msgstr "'--order' 引数がありません" + +-#: ../clients/cli/connections.c:1737 ++#: ../clients/cli/connections.c:1955 + msgid "NetworkManager active profiles" + msgstr "NetworkManager のアクティブなプロファイル" + +-#: ../clients/cli/connections.c:1738 ++#: ../clients/cli/connections.c:1956 + msgid "NetworkManager connection profiles" + msgstr "NetworkManager 接続プロファイル" + +-#: ../clients/cli/connections.c:1791 ../clients/cli/connections.c:2466 +-#: ../clients/cli/connections.c:2478 ../clients/cli/connections.c:2490 +-#: ../clients/cli/connections.c:2666 ../clients/cli/connections.c:8428 +-#: ../clients/cli/connections.c:8445 ../clients/cli/devices.c:2678 +-#: ../clients/cli/devices.c:2689 ../clients/cli/devices.c:2931 +-#: ../clients/cli/devices.c:2942 ../clients/cli/devices.c:2960 +-#: ../clients/cli/devices.c:2969 ../clients/cli/devices.c:2990 +-#: ../clients/cli/devices.c:3001 ../clients/cli/devices.c:3019 +-#: ../clients/cli/devices.c:3397 ../clients/cli/devices.c:3407 +-#: ../clients/cli/devices.c:3415 ../clients/cli/devices.c:3427 +-#: ../clients/cli/devices.c:3442 ../clients/cli/devices.c:3450 +-#: ../clients/cli/devices.c:3624 ../clients/cli/devices.c:3635 +-#: ../clients/cli/devices.c:3807 ++#: ../clients/cli/connections.c:2008 ../clients/cli/connections.c:2707 ++#: ../clients/cli/connections.c:2719 ../clients/cli/connections.c:2731 ++#: ../clients/cli/connections.c:2957 ../clients/cli/connections.c:8644 ++#: ../clients/cli/connections.c:8660 ../clients/cli/devices.c:2849 ++#: ../clients/cli/devices.c:2861 ../clients/cli/devices.c:2874 ++#: ../clients/cli/devices.c:3025 ../clients/cli/devices.c:3036 ++#: ../clients/cli/devices.c:3054 ../clients/cli/devices.c:3063 ++#: ../clients/cli/devices.c:3084 ../clients/cli/devices.c:3095 ++#: ../clients/cli/devices.c:3113 ../clients/cli/devices.c:3493 ++#: ../clients/cli/devices.c:3503 ../clients/cli/devices.c:3511 ++#: ../clients/cli/devices.c:3523 ../clients/cli/devices.c:3538 ++#: ../clients/cli/devices.c:3546 ../clients/cli/devices.c:3720 ++#: ../clients/cli/devices.c:3731 ../clients/cli/devices.c:3902 + #, c-format + msgid "Error: %s argument is missing." + msgstr "エラー: %s 引数がありません。" + +-#: ../clients/cli/connections.c:1810 ++#: ../clients/cli/connections.c:2036 + #, c-format + msgid "Error: %s - no such connection profile." + msgstr "エラー: %s - そのような接続プロファイルはありません。" + +-#: ../clients/cli/connections.c:1874 ../clients/cli/connections.c:2453 +-#: ../clients/cli/connections.c:2517 ../clients/cli/connections.c:7938 +-#: ../clients/cli/connections.c:8049 ../clients/cli/connections.c:8559 +-#: ../clients/cli/devices.c:1579 ../clients/cli/devices.c:1865 +-#: ../clients/cli/devices.c:2034 ../clients/cli/devices.c:2142 +-#: ../clients/cli/devices.c:2331 ../clients/cli/devices.c:3587 +-#: ../clients/cli/devices.c:3813 ../clients/cli/general.c:928 ++#: ../clients/cli/connections.c:2127 ../clients/cli/connections.c:2694 ++#: ../clients/cli/connections.c:2758 ../clients/cli/connections.c:8168 ++#: ../clients/cli/connections.c:8274 ../clients/cli/connections.c:8760 ++#: ../clients/cli/devices.c:1570 ../clients/cli/devices.c:1856 ++#: ../clients/cli/devices.c:2025 ../clients/cli/devices.c:2133 ++#: ../clients/cli/devices.c:2322 ../clients/cli/devices.c:3683 ++#: ../clients/cli/devices.c:3908 ../clients/cli/general.c:914 + #, c-format + msgid "Error: %s." + msgstr "エラー: %s." + +-#: ../clients/cli/connections.c:1972 ++#: ../clients/cli/connections.c:2220 + #, c-format + msgid "no active connection on device '%s'" + msgstr "デバイス '%s' 上にアクティブな接続はありません" + +-#: ../clients/cli/connections.c:1980 ++#: ../clients/cli/connections.c:2228 + msgid "no active connection or device" + msgstr "アクティブな接続またはデバイスがありません" + +-#: ../clients/cli/connections.c:2000 ++#: ../clients/cli/connections.c:2248 + #, c-format + msgid "device '%s' not compatible with connection '%s':" + msgstr "デバイス '%s' は接続 '%s' と互換性がありません:" + +-#: ../clients/cli/connections.c:2036 ++#: ../clients/cli/connections.c:2281 + #, c-format + msgid "device '%s' not compatible with connection '%s'" + msgstr "デバイス '%s' は接続 '%s' と互換性がありません" + +-#: ../clients/cli/connections.c:2039 ++#: ../clients/cli/connections.c:2284 + #, c-format + msgid "no device found for connection '%s'" + msgstr "接続 '%s'用のデバイスが見つかりません" + +-#: ../clients/cli/connections.c:2067 ++#: ../clients/cli/connections.c:2316 + #, c-format + msgid "Connection successfully activated (%s) (D-Bus active path: %s)\n" + msgstr "接続が正常にアクティベートされました (%s) (D-Bus アクティブパス: %s)\n" + +-#: ../clients/cli/connections.c:2071 ../clients/cli/connections.c:2219 +-#: ../clients/cli/connections.c:6244 ++#: ../clients/cli/connections.c:2320 ../clients/cli/connections.c:2468 ++#: ../clients/cli/connections.c:6534 + #, c-format + msgid "Connection successfully activated (D-Bus active path: %s)\n" + msgstr "接続が正常にアクティベートされました (D-Bus アクティブパス: %s)\n" + +-#: ../clients/cli/connections.c:2078 ../clients/cli/connections.c:2199 ++#: ../clients/cli/connections.c:2327 ../clients/cli/connections.c:2448 + #, c-format + msgid "Error: Connection activation failed: %s" + msgstr "エラー: 接続のアクティベーションに失敗: %s" + +-#: ../clients/cli/connections.c:2114 ++#: ../clients/cli/connections.c:2363 + #, c-format + msgid "Error: Timeout expired (%d seconds)" + msgstr "エラー: タイムアウト (%d 秒) になりました" + +-#: ../clients/cli/connections.c:2280 ++#: ../clients/cli/connections.c:2530 + #, c-format + msgid "failed to read passwd-file '%s': %s" + msgstr "passwd-file '%s'の読み込みに失敗: %s" + +-#: ../clients/cli/connections.c:2292 ++#: ../clients/cli/connections.c:2543 + #, c-format + msgid "missing colon in 'password' entry '%s'" + msgstr "'password' エントリー '%s' にコロンがありません" + +-#: ../clients/cli/connections.c:2300 ++#: ../clients/cli/connections.c:2551 + #, c-format + msgid "missing dot in 'password' entry '%s'" + msgstr "'password' エントリー '%s' にドットがありません" + +-#: ../clients/cli/connections.c:2313 ++#: ../clients/cli/connections.c:2564 + #, c-format + msgid "invalid setting name in 'password' entry '%s'" + msgstr "'password' エントリー '%s' の設定名が無効です" + +-#: ../clients/cli/connections.c:2369 ++#: ../clients/cli/connections.c:2610 + #, c-format + msgid "unknown device '%s'." + msgstr "不明なデバイス '%s' です。" + +-#: ../clients/cli/connections.c:2374 ++#: ../clients/cli/connections.c:2615 + msgid "neither a valid connection nor device given" + msgstr "有効な接続、デバイスいずれも指定されていません" + +-#: ../clients/cli/connections.c:2500 ../clients/cli/devices.c:1530 +-#: ../clients/cli/devices.c:2696 ../clients/cli/devices.c:3032 +-#: ../clients/cli/devices.c:3641 ++#: ../clients/cli/connections.c:2741 ../clients/cli/devices.c:1521 ++#: ../clients/cli/devices.c:2906 ../clients/cli/devices.c:3126 ++#: ../clients/cli/devices.c:3737 + #, c-format + msgid "Unknown parameter: %s\n" + msgstr "不明なパラメーター: %s\n" + +-#: ../clients/cli/connections.c:2525 ++#: ../clients/cli/connections.c:2766 + msgid "preparing" + msgstr "準備中" + +-#: ../clients/cli/connections.c:2545 ++#: ../clients/cli/connections.c:2874 + #, c-format + msgid "Connection '%s' (%s) successfully deleted.\n" + msgstr "接続 '%s' (%s) が正常に削除されました。\n" + +-#: ../clients/cli/connections.c:2561 ++#: ../clients/cli/connections.c:2890 + #, c-format + msgid "Connection '%s' successfully deactivated (D-Bus active path: %s)\n" + msgstr "" + "接続 '%s' が正常に非アクティブ化されました (D-Bus アクティブパス: %s)\n" + +-#: ../clients/cli/connections.c:2642 ../clients/cli/connections.c:8164 +-#: ../clients/cli/connections.c:8196 ../clients/cli/connections.c:8353 ++#: ../clients/cli/connections.c:2939 ../clients/cli/connections.c:8381 ++#: ../clients/cli/connections.c:8412 ../clients/cli/connections.c:8570 + #, c-format + msgid "Error: No connection specified." + msgstr "エラー: 接続が指定されていません。" + +-#: ../clients/cli/connections.c:2683 ++#: ../clients/cli/connections.c:2969 + #, c-format + msgid "Error: '%s' is not an active connection.\n" + msgstr "エラー: '%s' はアクティブな接続ではありません。\n" + +-#: ../clients/cli/connections.c:2684 ++#: ../clients/cli/connections.c:2970 + #, c-format + msgid "Error: not all active connections found." + msgstr "エラー: アクティブな一部の接続が見つかりません。" + +-#: ../clients/cli/connections.c:2693 ++#: ../clients/cli/connections.c:2978 + #, c-format + msgid "Error: no active connection provided." + msgstr "エラー: アクティブな接続がありません。" + +-#: ../clients/cli/connections.c:2727 ++#: ../clients/cli/connections.c:3009 + #, c-format + msgid "Connection '%s' deactivation failed: %s\n" + msgstr "接続 '%s' の非アクティブ化に失敗しました: %s\n" + +-#: ../clients/cli/connections.c:2983 ../clients/cli/connections.c:3040 +-#: ../clients/common/nm-client-utils.c:169 ++#: ../clients/cli/connections.c:3260 ../clients/cli/connections.c:3317 ++#: ../clients/common/nm-client-utils.c:221 + #, c-format + msgid "'%s' not among [%s]" + msgstr "'%s' は [%s] にはありません" + + #. We should not really come here +-#: ../clients/cli/connections.c:3003 ../clients/cli/connections.c:3063 +-#: ../clients/common/nm-client-utils.c:279 ++#: ../clients/cli/connections.c:3280 ../clients/cli/connections.c:3340 ++#: ../clients/common/nm-client-utils.c:320 + #, c-format + msgid "Unknown error" + msgstr "不明なエラー" + +-#: ../clients/cli/connections.c:3197 ++#: ../clients/cli/connections.c:3474 + #, c-format + msgid "Warning: master='%s' doesn't refer to any existing profile.\n" + msgstr "警告: master='%s' は既存のプロファイルを参照しません。\n" + +-#: ../clients/cli/connections.c:3534 ++#: ../clients/cli/connections.c:3811 + #, c-format + msgid "Error: invalid property '%s': %s." +-msgstr "エラー: 無効なプロパティ '%s': %s。" ++msgstr "エラー: 無効なプロパティー '%s': %s。" + +-#: ../clients/cli/connections.c:3551 ++#: ../clients/cli/connections.c:3828 + #, c-format + msgid "Error: failed to modify %s.%s: %s." + msgstr "エラー: %s.%s の変更に失敗しました: %s。" + +-#: ../clients/cli/connections.c:3570 ++#: ../clients/cli/connections.c:3848 + #, c-format + msgid "Error: failed to remove a value from %s.%s: %s." + msgstr "エラー: '%s' の値の削除に失敗しました、%s: %s。" + +-#: ../clients/cli/connections.c:3604 ++#: ../clients/cli/connections.c:3882 + #, c-format + msgid "Error: '%s' is mandatory." + msgstr "エラー: '%s' は必須です。" + +-#: ../clients/cli/connections.c:3631 ++#: ../clients/cli/connections.c:3909 + #, c-format + msgid "Error: invalid slave type; %s." + msgstr "エラー: 無効なスレーブタイプ; %s。" + +-#: ../clients/cli/connections.c:3639 ++#: ../clients/cli/connections.c:3917 + #, c-format + msgid "Error: invalid connection type; %s." + msgstr "エラー: 無効な接続タイプ; %s。" + +-#: ../clients/cli/connections.c:3716 ++#: ../clients/cli/connections.c:3994 + #, c-format + msgid "Error: bad connection type: %s" + msgstr "エラー: 問題のある接続タイプ: %s" + +-#: ../clients/cli/connections.c:3762 ++#: ../clients/cli/connections.c:4040 + #, c-format + msgid "Error: '%s': %s" + msgstr "エラー: '%s': %s" + +-#: ../clients/cli/connections.c:3783 ++#: ../clients/cli/connections.c:4061 + msgid "Error: master is required" + msgstr "エラー: マスターが必要です" + +-#: ../clients/cli/connections.c:3842 ++#: ../clients/cli/connections.c:4120 + #, c-format + msgid "Error: error adding bond option '%s=%s'." + msgstr "エラー: ボンドオプション '%s=%s' の追加中にエラー。" + +-#: ../clients/cli/connections.c:3873 ++#: ../clients/cli/connections.c:4151 + #, c-format + msgid "Error: '%s' is not a valid monitoring mode; use '%s' or '%s'.\n" + msgstr "" + "エラー: '%s' は無効なモニタリングモードです; '%s' または '%s' を使用してくだ" + "さい。\n" + +-#: ../clients/cli/connections.c:3904 ++#: ../clients/cli/connections.c:4182 + #, c-format + msgid "Error: 'bt-type': '%s' not valid; use [%s, %s, %s (%s), %s]." + msgstr "" + "エラー: 'bt-type': '%s' は無効です。[%s, %s, %s (%s), %s] を使用してくださ" + "い。" + +-#: ../clients/cli/connections.c:4153 ++#: ../clients/cli/connections.c:4431 + #, c-format + msgid "Error: value for '%s' is missing." + msgstr "エラー: '%s' の値が不明です。" + +-#: ../clients/cli/connections.c:4199 ++#: ../clients/cli/connections.c:4477 + msgid "Error: . argument is missing." + msgstr "エラー: . 引数がありません。" + +-#: ../clients/cli/connections.c:4222 ++#: ../clients/cli/connections.c:4500 + #, c-format + msgid "Error: invalid or not allowed setting '%s': %s." + msgstr "エラー: 無効または許可されていない設定 '%s' です: %s。" + +-#: ../clients/cli/connections.c:4268 ../clients/cli/connections.c:4284 ++#: ../clients/cli/connections.c:4546 ../clients/cli/connections.c:4562 + #, c-format + msgid "Error: '%s' is ambiguous (%s.%s or %s.%s)." + msgstr "エラー:'%s' があいまいです (%s.%s または %s.%s)。" + +-#: ../clients/cli/connections.c:4302 ++#: ../clients/cli/connections.c:4580 + #, c-format + msgid "Error: invalid . '%s'." + msgstr "エラー: 無効な . '%s' です。" + +-#: ../clients/cli/connections.c:4346 ../clients/cli/connections.c:7989 ++#: ../clients/cli/connections.c:4624 ../clients/cli/connections.c:8214 + #, c-format + msgid "Error: Failed to add '%s' connection: %s" + msgstr "エラー: '%s' 接続の追加に失敗しました: %s" + +-#: ../clients/cli/connections.c:4364 ++#: ../clients/cli/connections.c:4642 + #, c-format + msgid "" + "Warning: There is another connection with the name '%1$s'. Reference the " +@@ -1339,12 +1302,47 @@ msgstr[0] "" + "警告: 名前が '%1$s' の接続が他に %3$u 個あります。uuid が '%2$s' の接続を参照" + "してください。\n" + +-#: ../clients/cli/connections.c:4373 ++#: ../clients/cli/connections.c:4651 + #, c-format + msgid "Connection '%s' (%s) successfully added.\n" + msgstr "接続 '%s' (%s) が正常に追加されました。\n" + +-#: ../clients/cli/connections.c:4511 ++#: ../clients/cli/connections.c:4704 ../clients/cli/connections.c:6651 ++#: ../clients/cli/connections.c:6652 ../clients/cli/devices.c:876 ++#: ../clients/cli/devices.c:1164 ../clients/cli/devices.c:1165 ++#: ../clients/cli/devices.c:1166 ../clients/cli/devices.c:1167 ++#: ../clients/cli/devices.c:1168 ../clients/cli/devices.c:1205 ++#: ../clients/cli/devices.c:1207 ../clients/cli/devices.c:1208 ++#: ../clients/cli/devices.c:1238 ../clients/cli/devices.c:1239 ++#: ../clients/cli/devices.c:1240 ../clients/cli/devices.c:1241 ++#: ../clients/cli/devices.c:1242 ../clients/cli/devices.c:1243 ++#: ../clients/cli/devices.c:1244 ../clients/cli/devices.c:1246 ++#: ../clients/cli/devices.c:1248 ../clients/cli/general.c:157 ++#: ../clients/cli/utils.h:220 ../clients/common/nm-client-utils.c:301 ++#: ../clients/common/nm-meta-setting-desc.c:754 ++#: ../clients/common/nm-meta-setting-desc.c:2676 ++msgid "no" ++msgstr "いいえ" ++ ++#. "CAPABILITIES" ++#: ../clients/cli/connections.c:4705 ../clients/cli/connections.c:6651 ++#: ../clients/cli/connections.c:6652 ../clients/cli/devices.c:876 ++#: ../clients/cli/devices.c:1164 ../clients/cli/devices.c:1165 ++#: ../clients/cli/devices.c:1166 ../clients/cli/devices.c:1167 ++#: ../clients/cli/devices.c:1168 ../clients/cli/devices.c:1205 ++#: ../clients/cli/devices.c:1207 ../clients/cli/devices.c:1208 ++#: ../clients/cli/devices.c:1238 ../clients/cli/devices.c:1239 ++#: ../clients/cli/devices.c:1240 ../clients/cli/devices.c:1241 ++#: ../clients/cli/devices.c:1242 ../clients/cli/devices.c:1243 ++#: ../clients/cli/devices.c:1244 ../clients/cli/devices.c:1246 ++#: ../clients/cli/devices.c:1248 ../clients/cli/general.c:156 ++#: ../clients/cli/utils.h:220 ../clients/common/nm-client-utils.c:299 ++#: ../clients/common/nm-meta-setting-desc.c:754 ++#: ../clients/common/nm-meta-setting-desc.c:2673 ++msgid "yes" ++msgstr "はい" ++ ++#: ../clients/cli/connections.c:4789 + #, c-format + msgid "" + "You can specify this option more than once. Press when you're done.\n" +@@ -1353,34 +1351,34 @@ msgstr "" + "さい。\n" + + #. Ask for optional arguments. +-#: ../clients/cli/connections.c:4610 ++#: ../clients/cli/connections.c:4888 + #, c-format + msgid "There is %d optional setting for %s.\n" + msgid_plural "There are %d optional settings for %s.\n" + msgstr[0] "%2$s には、任意の設定が %1$d 個あります。\n" + +-#: ../clients/cli/connections.c:4613 ++#: ../clients/cli/connections.c:4891 + #, c-format + msgid "Do you want to provide it? %s" + msgid_plural "Do you want to provide them? %s" + msgstr[0] "指定しますか? %s" + +-#: ../clients/cli/connections.c:4749 ../clients/cli/utils.c:303 ++#: ../clients/cli/connections.c:5024 ../clients/cli/utils.c:292 + #, c-format + msgid "Error: value for '%s' argument is required." + msgstr "エラー: '%s' 引数の値が必要です。" + +-#: ../clients/cli/connections.c:4755 ++#: ../clients/cli/connections.c:5031 + #, c-format + msgid "Error: 'save': %s." + msgstr "エラー: 'save': %s。" + +-#: ../clients/cli/connections.c:4843 ../clients/cli/connections.c:4854 ++#: ../clients/cli/connections.c:5117 ../clients/cli/connections.c:5128 + #, c-format + msgid "Error: '%s' argument is required." + msgstr "エラー: '%s' 引数が必要です。" + +-#: ../clients/cli/connections.c:5832 ++#: ../clients/cli/connections.c:6093 + #, c-format + msgid "['%s' setting values]\n" + msgstr "['%s' 設定値]\n" +@@ -1388,7 +1386,7 @@ msgstr "['%s' 設定値]\n" + #. TRANSLATORS: do not translate command names and keywords before :: + #. * However, you should translate terms enclosed in <>. + #. +-#: ../clients/cli/connections.c:5911 ++#: ../clients/cli/connections.c:6202 + #, c-format + msgid "" + "---[ Main menu ]---\n" +@@ -1421,7 +1419,7 @@ msgstr "" + "nmcli :: nmcli 設定\n" + "quit :: nmcli を終了する\n" + +-#: ../clients/cli/connections.c:5938 ++#: ../clients/cli/connections.c:6229 + #, c-format + msgid "" + "goto [.] | :: enter setting/property for editing\n" +@@ -1440,7 +1438,7 @@ msgstr "" + " nmcli connection> goto secondaries\n" + " nmcli> goto ipv4.addresses\n" + +-#: ../clients/cli/connections.c:5945 ++#: ../clients/cli/connections.c:6236 + #, c-format + msgid "" + "remove [.] :: remove setting or reset property value\n" +@@ -1461,7 +1459,7 @@ msgstr "" + "例: nmcli> remove wifi-sec\n" + " nmcli> remove eth.mtu\n" + +-#: ../clients/cli/connections.c:5952 ++#: ../clients/cli/connections.c:6243 + #, c-format + msgid "" + "set [. ] :: set property value\n" +@@ -1476,7 +1474,7 @@ msgstr "" + "\n" + "例: nmcli> set con.id My connection\n" + +-#: ../clients/cli/connections.c:5957 ++#: ../clients/cli/connections.c:6248 + #, c-format + msgid "" + "describe [.] :: describe property\n" +@@ -1489,7 +1487,7 @@ msgstr "" + "プロパティー詳細を表示します。NM の設定およびプロパティーの全詳細については、" + "nm-settings(5) の man ページを参照してください。\n" + +-#: ../clients/cli/connections.c:5962 ++#: ../clients/cli/connections.c:6253 + #, c-format + msgid "" + "print [all] :: print setting or connection values\n" +@@ -1504,7 +1502,7 @@ msgstr "" + "\n" + "例: nmcli ipv4> print all\n" + +-#: ../clients/cli/connections.c:5967 ++#: ../clients/cli/connections.c:6258 + #, c-format + msgid "" + "verify [all | fix] :: verify setting or connection validity\n" +@@ -1529,7 +1527,7 @@ msgstr "" + " nmcli> verify fix\n" + " nmcli bond> verify\n" + +-#: ../clients/cli/connections.c:5976 ++#: ../clients/cli/connections.c:6267 + #, c-format + msgid "" + "save [persistent|temporary] :: save the connection\n" +@@ -1550,12 +1548,12 @@ msgstr "" + "メモリーにのみ保持します。引数がない 'save' は 'save persistent' を\n" + "意味します。\n" + "プロファイルを永続的に保存すると、これらの設定は、再起動しても\n" +-"保持されます。以降の変更も一時的または永続的に行なえますが\n" ++"保持されます。以降の変更も一時的または永続的に行えますが\n" + "一時的な変更は再起動後に保持されません。\n" + "永続的な接続を完全に削除する場合は、接続プロファイルを削除する\n" + "必要があります。\n" + +-#: ../clients/cli/connections.c:5987 ++#: ../clients/cli/connections.c:6278 + #, c-format + msgid "" + "activate [] [/|] :: activate the connection\n" +@@ -1576,7 +1574,7 @@ msgstr "" + "/| - AP (Wi-Fi) または NSP (WiMAX) ( が指定されていない場合" + "は / を先頭に付ける)\n" + +-#: ../clients/cli/connections.c:5994 ../clients/cli/connections.c:6153 ++#: ../clients/cli/connections.c:6285 ../clients/cli/connections.c:6443 + #, c-format + msgid "" + "back :: go to upper menu level\n" +@@ -1585,7 +1583,7 @@ msgstr "" + "back :: 一つ上のメニューレベルに移動\n" + "\n" + +-#: ../clients/cli/connections.c:5997 ++#: ../clients/cli/connections.c:6288 + #, c-format + msgid "" + "help/? [] :: help for the nmcli commands\n" +@@ -1594,7 +1592,7 @@ msgstr "" + "help/? [] :: nmcli コマンドのヘルプ\n" + "\n" + +-#: ../clients/cli/connections.c:6000 ++#: ../clients/cli/connections.c:6291 + #, c-format + msgid "" + "nmcli [ ] :: nmcli configuration\n" +@@ -1621,7 +1619,7 @@ msgstr "" + " nmcli> nmcli save-confirmation no\n" + " nmcli> nmcli prompt-color 3\n" + +-#: ../clients/cli/connections.c:6022 ../clients/cli/connections.c:6159 ++#: ../clients/cli/connections.c:6313 ../clients/cli/connections.c:6449 + #, c-format + msgid "" + "quit :: exit nmcli\n" +@@ -1634,8 +1632,8 @@ msgstr "" + "nmcli を終了します。変更した接続の保存を行なっていない場合、この動作の確認が" + "求められます。\n" + +-#: ../clients/cli/connections.c:6027 ../clients/cli/connections.c:6164 +-#: ../clients/cli/connections.c:6600 ../clients/cli/connections.c:7557 ++#: ../clients/cli/connections.c:6318 ../clients/cli/connections.c:6454 ++#: ../clients/cli/connections.c:6873 ../clients/cli/connections.c:7800 + #, c-format + msgid "Unknown command: '%s'\n" + msgstr "不明なコマンド: '%s'\n" +@@ -1643,7 +1641,7 @@ msgstr "不明なコマンド: '%s'\n" + #. TRANSLATORS: do not translate command names and keywords before :: + #. * However, you should translate terms enclosed in <>. + #. +-#: ../clients/cli/connections.c:6093 ++#: ../clients/cli/connections.c:6383 + #, c-format + msgid "" + "---[ Property menu ]---\n" +@@ -1669,7 +1667,7 @@ msgstr "" + "help/? [] :: このヘルプまたはコマンドの詳細を表示\n" + "quit :: nmcli の終了\n" + +-#: ../clients/cli/connections.c:6118 ++#: ../clients/cli/connections.c:6408 + #, c-format + msgid "" + "set [] :: set new value\n" +@@ -1680,7 +1678,7 @@ msgstr "" + "\n" + "このプロパティーに指定した を設定します。\n" + +-#: ../clients/cli/connections.c:6122 ++#: ../clients/cli/connections.c:6412 + #, c-format + msgid "" + "add [] :: append new value to the property\n" +@@ -1695,7 +1693,7 @@ msgstr "" + " がこのプロパティーに追加されます。単一値のプロパティーの場合は、その" + "プロパティー値が置換されます ('set' の場合と同じ)。\n" + +-#: ../clients/cli/connections.c:6128 ++#: ../clients/cli/connections.c:6418 + #, c-format + msgid "" + "change :: change current value\n" +@@ -1706,7 +1704,7 @@ msgstr "" + "\n" + "現在の値を表示し、その値を変更することができます。\n" + +-#: ../clients/cli/connections.c:6132 ++#: ../clients/cli/connections.c:6422 + #, c-format + msgid "" + "remove [||