diff --git a/0012-config-slaves-order-rh1452585.patch b/0012-config-slaves-order-rh1452585.patch new file mode 100644 index 0000000..cd7a179 --- /dev/null +++ b/0012-config-slaves-order-rh1452585.patch @@ -0,0 +1,225 @@ +From 5231db02204ce3c45e2415eedbd915fa56445401 Mon Sep 17 00:00:00 2001 +From: Beniamino Galvani +Date: Mon, 15 May 2017 17:17:26 +0200 +Subject: [PATCH] core: add configuration flag to choose slaves activation + order + +Commits 39d0559d9a7a ("platform: sort links by name instead of +ifindex") and 529a0a1a7f19 ("manager: sort slaves to be autoconnected +by device name") changed the order of activation of slaves. Introduce +a system-wide configuration property to preserve the old behavior. + +https://bugzilla.redhat.com/show_bug.cgi?id=1452585 +(cherry picked from commit 31656a066bfb3edc106f5efd5d2be46396824930) +(cherry picked from commit 3fefef8594ef2690c56fd44a6ce4836decaaee56) +--- + man/NetworkManager.conf.xml | 13 +++++++++++++ + src/nm-config.h | 1 + + src/nm-manager.c | 26 ++++++++++++++++++++------ + src/platform/nm-platform.c | 26 +++++++++++++++----------- + src/platform/nm-platform.h | 2 +- + src/platform/tests/test-common.c | 2 +- + src/platform/tests/test-general.c | 2 +- + 7 files changed, 52 insertions(+), 20 deletions(-) + +diff --git a/man/NetworkManager.conf.xml b/man/NetworkManager.conf.xml +index 2a8ba76..5e76c0a 100644 +--- a/man/NetworkManager.conf.xml ++++ b/man/NetworkManager.conf.xml +@@ -409,6 +409,19 @@ no-auto-default=* + + + ++ ++ slaves-order ++ ++ ++ This key specifies in which order slave connections are ++ auto-activated on boot or when the master activates ++ them. Allowed values are name (order ++ connection by interface name, the default), or ++ index (order slaves by their kernel ++ index). ++ ++ ++ + + + +diff --git a/src/nm-config.h b/src/nm-config.h +index 283d6a1..ae695fc 100644 +--- a/src/nm-config.h ++++ b/src/nm-config.h +@@ -63,6 +63,7 @@ + #define NM_CONFIG_KEYFILE_KEY_MAIN_DHCP "dhcp" + #define NM_CONFIG_KEYFILE_KEY_MAIN_DEBUG "debug" + #define NM_CONFIG_KEYFILE_KEY_MAIN_HOSTNAME_MODE "hostname-mode" ++#define NM_CONFIG_KEYFILE_KEY_MAIN_SLAVES_ORDER "slaves-order" + #define NM_CONFIG_KEYFILE_KEY_LOGGING_BACKEND "backend" + #define NM_CONFIG_KEYFILE_KEY_CONFIG_ENABLE "enable" + #define NM_CONFIG_KEYFILE_KEY_ATOMIC_SECTION_WAS ".was" +diff --git a/src/nm-manager.c b/src/nm-manager.c +index a740219..3d94ce9 100644 +--- a/src/nm-manager.c ++++ b/src/nm-manager.c +@@ -2459,10 +2459,14 @@ platform_query_devices (NMManager *self) + NMPlatformLink *links; + int i; + gboolean guess_assume; ++ const char *order; + + guess_assume = nm_config_get_first_start (nm_config_get ()); +- +- links_array = nm_platform_link_get_all (NM_PLATFORM_GET); ++ order = nm_config_data_get_value_cached (NM_CONFIG_GET_DATA, ++ NM_CONFIG_KEYFILE_GROUP_MAIN, ++ NM_CONFIG_KEYFILE_KEY_MAIN_SLAVES_ORDER, ++ NM_CONFIG_GET_VALUE_STRIP); ++ links_array = nm_platform_link_get_all (NM_PLATFORM_GET, !nm_streq0 (order, "index")); + links = (NMPlatformLink *) links_array->data; + for (i = 0; i < links_array->len; i++) { + gs_free NMConfigDeviceStateData *dev_state = NULL; +@@ -3016,7 +3020,7 @@ out: + } + + static gint +-compare_slaves (gconstpointer a, gconstpointer b, gpointer _unused) ++compare_slaves (gconstpointer a, gconstpointer b, gpointer sort_by_name) + { + const SlaveConnectionInfo *a_info = a; + const SlaveConnectionInfo *b_info = b; +@@ -3027,8 +3031,12 @@ compare_slaves (gconstpointer a, gconstpointer b, gpointer _unused) + if (!b_info->device) + return -1; + +- return g_strcmp0 (nm_device_get_iface (a_info->device), +- nm_device_get_iface (b_info->device)); ++ if (GPOINTER_TO_INT (sort_by_name)) { ++ return g_strcmp0 (nm_device_get_iface (a_info->device), ++ nm_device_get_iface (b_info->device)); ++ } ++ ++ return nm_device_get_ifindex (a_info->device) - nm_device_get_ifindex (b_info->device); + } + + static void +@@ -3042,11 +3050,17 @@ autoconnect_slaves (NMManager *self, + if (should_connect_slaves (NM_CONNECTION (master_connection), master_device)) { + gs_free SlaveConnectionInfo *slaves = NULL; + guint i, n_slaves = 0; ++ const char *value; + + slaves = find_slaves (self, master_connection, master_device, &n_slaves); + if (n_slaves > 1) { ++ value = nm_config_data_get_value_cached (NM_CONFIG_GET_DATA, ++ NM_CONFIG_KEYFILE_GROUP_MAIN, ++ NM_CONFIG_KEYFILE_KEY_MAIN_SLAVES_ORDER, ++ NM_CONFIG_GET_VALUE_STRIP); + g_qsort_with_data (slaves, n_slaves, sizeof (slaves[0]), +- compare_slaves, NULL); ++ compare_slaves, ++ GINT_TO_POINTER (!nm_streq0 (value, "index"))); + } + + for (i = 0; i < n_slaves; i++) { +diff --git a/src/platform/nm-platform.c b/src/platform/nm-platform.c +index 767187d..a244ff3 100644 +--- a/src/platform/nm-platform.c ++++ b/src/platform/nm-platform.c +@@ -437,7 +437,8 @@ nm_platform_sysctl_get_int_checked (NMPlatform *self, const char *pathid, int di + + static int + _link_get_all_presort (gconstpointer p_a, +- gconstpointer p_b) ++ gconstpointer p_b, ++ gpointer sort_by_name) + { + const NMPlatformLink *a = p_a; + const NMPlatformLink *b = p_b; +@@ -448,13 +449,16 @@ _link_get_all_presort (gconstpointer p_a, + if (b->ifindex == 1) + return 1; + +- /* Initialized links first */ +- if (a->initialized > b->initialized) +- return -1; +- if (a->initialized < b->initialized) +- return 1; ++ if (GPOINTER_TO_INT (sort_by_name)) { ++ /* Initialized links first */ ++ if (a->initialized > b->initialized) ++ return -1; ++ if (a->initialized < b->initialized) ++ return 1; + +- return strcmp (a->name, b->name); ++ return strcmp (a->name, b->name); ++ } else ++ return a->ifindex - b->ifindex; + } + + /** +@@ -465,7 +469,7 @@ _link_get_all_presort (gconstpointer p_a, + * owned by the caller and should be freed with g_array_unref(). + */ + GArray * +-nm_platform_link_get_all (NMPlatform *self) ++nm_platform_link_get_all (NMPlatform *self, gboolean sort_by_name) + { + GArray *links, *result; + guint i, j, nresult; +@@ -479,9 +483,9 @@ nm_platform_link_get_all (NMPlatform *self) + if (!links || links->len == 0) + return links; + +- /* first sort the links by their ifindex. Below we will sort further by moving +- * children/slaves to the end. */ +- g_array_sort (links, _link_get_all_presort); ++ /* first sort the links by their ifindex or name. Below we will sort ++ * further by moving children/slaves to the end. */ ++ g_array_sort_with_data (links, _link_get_all_presort, GINT_TO_POINTER (sort_by_name)); + + unseen = g_hash_table_new (g_direct_hash, g_direct_equal); + for (i = 0; i < links->len; i++) { +diff --git a/src/platform/nm-platform.h b/src/platform/nm-platform.h +index 43be17f..1b8fa13 100644 +--- a/src/platform/nm-platform.h ++++ b/src/platform/nm-platform.h +@@ -763,7 +763,7 @@ const NMPlatformLink *nm_platform_link_get (NMPlatform *self, int ifindex); + const NMPlatformLink *nm_platform_link_get_by_ifname (NMPlatform *self, const char *ifname); + const NMPlatformLink *nm_platform_link_get_by_address (NMPlatform *self, gconstpointer address, size_t length); + +-GArray *nm_platform_link_get_all (NMPlatform *self); ++GArray *nm_platform_link_get_all (NMPlatform *self, gboolean sort_by_name); + NMPlatformError nm_platform_link_dummy_add (NMPlatform *self, const char *name, const NMPlatformLink **out_link); + NMPlatformError nm_platform_link_bridge_add (NMPlatform *self, const char *name, const void *address, size_t address_len, const NMPlatformLink **out_link); + NMPlatformError nm_platform_link_bond_add (NMPlatform *self, const char *name, const NMPlatformLink **out_link); +diff --git a/src/platform/tests/test-common.c b/src/platform/tests/test-common.c +index 04db862..a9d0694 100644 +--- a/src/platform/tests/test-common.c ++++ b/src/platform/tests/test-common.c +@@ -185,7 +185,7 @@ link_callback (NMPlatform *platform, int obj_type_i, int ifindex, NMPlatformLink + + /* Check the data */ + g_assert (received->ifindex > 0); +- links = nm_platform_link_get_all (NM_PLATFORM_GET); ++ links = nm_platform_link_get_all (NM_PLATFORM_GET, TRUE); + for (i = 0; i < links->len; i++) { + cached = &g_array_index (links, NMPlatformLink, i); + if (cached->ifindex == received->ifindex) { +diff --git a/src/platform/tests/test-general.c b/src/platform/tests/test-general.c +index 2ccfac7..e772662 100644 +--- a/src/platform/tests/test-general.c ++++ b/src/platform/tests/test-general.c +@@ -48,7 +48,7 @@ test_link_get_all (void) + + platform = nm_linux_platform_new (TRUE, NM_PLATFORM_NETNS_SUPPORT_DEFAULT); + +- links = nm_platform_link_get_all (platform); ++ links = nm_platform_link_get_all (platform, TRUE); + } + + /*****************************************************************************/ +-- +2.9.3 + diff --git a/0014-translations-rh1382625.patch b/0014-translations-rh1382625.patch new file mode 100644 index 0000000..9ea4aae --- /dev/null +++ b/0014-translations-rh1382625.patch @@ -0,0 +1,2823 @@ +From 5a10ecc088f1af661ba4b6b419948620d6780f52 Mon Sep 17 00:00:00 2001 +From: Lubomir Rintel +Date: Mon, 29 May 2017 15:27:04 +0200 +Subject: [PATCH 2/2] po: import Japanese translation + +https://bugzilla.redhat.com/show_bug.cgi?id=1382625 +--- + po/ja.po | 1250 +++++++++++++++++++++++++++++++------------------------------- + 1 file changed, 618 insertions(+), 632 deletions(-) + +diff --git a/po/ja.po b/po/ja.po +index 022bfef..620dfb6 100644 +--- a/po/ja.po ++++ b/po/ja.po +@@ -5,9 +5,8 @@ + # Satoru SATOH , 2005-2007. + # Kiyoto Hashida , 2010. + # Noriko Mizumoto , 2013 - 2014. +-# Lubomir Rintel , 2016. #zanata +-# Lubomir Rintel , 2017. #zanata +-# Thomas Haller , 2017. #zanata ++# kmoriguc , 2017. #zanata ++# lrintel , 2017. #zanata + msgid "" + msgstr "" + "Project-Id-Version: PACKAGE VERSION\n" +@@ -21,7 +20,7 @@ msgstr "" + "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 3.9.6\n" ++"X-Generator: Zanata 4.1.1\n" + + #: ../clients/cli/agent.c:39 + #, c-format +@@ -31,7 +30,7 @@ msgid "" + "COMMAND := { secret | polkit | all }\n" + "\n" + msgstr "" +-"Usage: nmcli agent { COMMAND | help }\n" ++"使い方: nmcli agent { COMMAND | help }\n" + "\n" + "COMMAND := { secret | polkit | all }\n" + "\n" +@@ -164,26 +163,27 @@ msgid "invalid IP address: %s" + msgstr "無効な IP アドレス: %s" + + #: ../clients/cli/common.c:426 +-#, fuzzy + msgid "" + "The valid syntax is: 'ip[/prefix] [next-hop] [metric] [attribute=val]... [," + "ip[/prefix] ...]'" +-msgstr "'%s' は無効です (書式: ip[/prefix] [next-hop] [metric])" ++msgstr "" ++"有効な構文は以下のようになります: 'ip[/prefix] [next-hop] [metric] " ++"[attribute=val]... [,ip[/prefix] ...]'" + + #: ../clients/cli/common.c:458 + #, c-format + msgid "the next hop ('%s') must be first" +-msgstr "" ++msgstr "次のホップ ('%s') が初回である必要があります" + + #: ../clients/cli/common.c:464 + #, c-format + msgid "the metric ('%s') must be before attributes" +-msgstr "" ++msgstr "メトリック ('%s') が属性の前にある必要があります" + + #: ../clients/cli/common.c:504 +-#, fuzzy, c-format ++#, c-format + msgid "invalid route: %s. " +-msgstr "無効なルート: %s" ++msgstr "無効なルート: %s。" + + #: ../clients/cli/common.c:516 + msgid "default route cannot be added (NetworkManager handles it by itself)" +@@ -571,42 +571,42 @@ msgstr "'%s' は有効な優先度ではありません (<0-%ld>)" + #: ../clients/cli/common.c:911 + #, c-format + msgid "cannot read team config from file '%s'" +-msgstr "" ++msgstr "ファイル '%s' から team 設定を読み込めません" + + #: ../clients/cli/common.c:918 + #, c-format + msgid "team config file '%s' contains non-valid utf-8" +-msgstr "" ++msgstr "team 設定ファイル '%s' には無効な utf-8 が含まれています" + + #: ../clients/cli/common.c:930 +-#, fuzzy, c-format ++#, c-format + msgid "'%s' does not contain a valid team configuration" +-msgstr "'%s' は有効な team 設定でもファイル名でもありません" ++msgstr "'%s' には有効な team 設定が含まれていません" + + #: ../clients/cli/common.c:933 + #, c-format + msgid "team configuration must be a JSON object" +-msgstr "" ++msgstr "team 設定は JSON オブジェクトである必要があります" + + #: ../clients/cli/common.c:986 + #, c-format + msgid "cannot read pac-script from file '%s'" +-msgstr "" ++msgstr "ファイル '%s' から pac-script を読み込めません" + + #: ../clients/cli/common.c:993 +-#, fuzzy, c-format ++#, c-format + msgid "file '%s' contains non-valid utf-8" +-msgstr "インデックス '%s' は無効です" ++msgstr "ファイル '%s' には無効な utf-8 が含まれています" + + #: ../clients/cli/common.c:1006 +-#, fuzzy, c-format ++#, c-format + msgid "'%s' does not contain a valid PAC Script" +-msgstr "'%s' は有効な PSK ではありません" ++msgstr "'%s' には有効な PAC スクリプトが含まれていません" + + #: ../clients/cli/common.c:1009 +-#, fuzzy, c-format ++#, c-format + msgid "Not a valid PAC Script" +-msgstr "は有効な MAC アドレスではありません" ++msgstr "有効な PAC スクリプトではありません" + + #: ../clients/cli/common.c:1132 + #, c-format +@@ -644,16 +644,15 @@ msgstr "エラー: NetworkManager が起動していません。" + #: ../clients/cli/common.c:1768 + #, c-format + msgid "Error: argument '%s' not understood. Try passing --help instead." +-msgstr "" ++msgstr "エラー: 引数 '%s' が認識されません。代わりに --help を渡してください。" + + #: ../clients/cli/common.c:1778 +-#, fuzzy + msgid "Error: missing argument. Try passing --help." +-msgstr "エラー: %s オプション用の引数がありません。" ++msgstr "エラー: 引数がありません。--help を渡してください。" + + #: ../clients/cli/common.c:1831 + msgid "access denied" +-msgstr "" ++msgstr "アクセスは拒否されました" + + #. define some prompts for connection editor + #: ../clients/cli/connections.c:62 +@@ -670,48 +669,40 @@ msgstr "接続タイプを入力してください: " + + #. define some other prompts + #: ../clients/cli/connections.c:67 +-#, fuzzy + msgid "Connection type" +-msgstr "接続タイプ: " ++msgstr "接続タイプ" + + #: ../clients/cli/connections.c:68 +-#, fuzzy + msgid "Interface name [*]" +-msgstr "インターフェース名 [*]: " ++msgstr "インターフェース名 [*]" + + #: ../clients/cli/connections.c:69 +-#, fuzzy + msgid "VPN type" +-msgstr "VPN タイプ: " ++msgstr "VPN タイプ" + + #: ../clients/cli/connections.c:70 +-#, fuzzy + msgid "Master" +-msgstr "マスター: " ++msgstr "マスター" + + #: ../clients/cli/connections.c:72 ../clients/tui/nmt-page-infiniband.c:88 + msgid "Transport mode" + msgstr "トランスポートモード" + + #: ../clients/cli/connections.c:77 +-#, fuzzy + msgid "Bluetooth type" +-msgstr "Bluetooth タイプ %s" ++msgstr "Bluetooth タイプ" + + #: ../clients/cli/connections.c:83 +-#, fuzzy + msgid "Bonding mode" +-msgstr "ボンディングモニタリングモード %s" ++msgstr "ボンディングモード" + + #: ../clients/cli/connections.c:85 ../clients/cli/connections.c:4320 +-#, fuzzy + msgid "Bonding monitoring mode" +-msgstr "ボンディングモニタリングモード %s" ++msgstr "ボンディングモニタリングモード" + + #: ../clients/cli/connections.c:90 +-#, fuzzy + msgid "Protocol" +-msgstr "プロトコル %s" ++msgstr "プロトコル" + + #: ../clients/cli/connections.c:93 + msgid "Wi-Fi mode" +@@ -722,48 +713,40 @@ msgid "ADSL encapsulation" + msgstr "ADSL カプセル化" + + #: ../clients/cli/connections.c:102 +-#, fuzzy + msgid "Tun mode" +-msgstr "トンネルモード: " ++msgstr "トンネルモード" + + #: ../clients/cli/connections.c:107 +-#, fuzzy + msgid "IP Tunnel mode" +-msgstr "トンネルモード: " ++msgstr "IP トンネルモード" + + #: ../clients/cli/connections.c:109 +-#, fuzzy + msgid "MACVLAN mode" +-msgstr "MACVLAN モード: " ++msgstr "MACVLAN モード" + + #: ../clients/cli/connections.c:111 +-#, fuzzy + msgid "MACsec mode" +-msgstr "MACVLAN モード: " ++msgstr "MACsec モード" + + #: ../clients/cli/connections.c:116 + msgid "Proxy method" +-msgstr "" ++msgstr "プロキシメソッド" + + #: ../clients/cli/connections.c:121 +-#, fuzzy + msgid "Connection (name, UUID, or path)" +-msgstr "接続 (名前、UUID またはパス): " ++msgstr "接続 (名前、UUID またはパス)" + + #: ../clients/cli/connections.c:122 +-#, fuzzy + msgid "VPN connection (name, UUID, or path)" +-msgstr "VPN 接続 (名前、UUID またはパス): " ++msgstr "VPN 接続 (名前、UUID またはパス)" + + #: ../clients/cli/connections.c:123 +-#, fuzzy + msgid "Connection(s) (name, UUID, or path)" +-msgstr "接続 (名前、UUID またはパス): " ++msgstr "接続 (名前、UUID またはパス)" + + #: ../clients/cli/connections.c:124 +-#, fuzzy + msgid "Connection(s) (name, UUID, path or apath)" +-msgstr "接続 (名前、UUID またはパス): " ++msgstr "接続 (名前、UUID、パス または apath)" + + #. 0 + #: ../clients/cli/connections.c:130 ../clients/cli/connections.c:225 +@@ -867,7 +850,6 @@ msgstr "ACTIVE-PATH" + + #. 12 + #: ../clients/cli/connections.c:143 +-#, fuzzy + msgid "SLAVE" + msgstr "スレーブ" + +@@ -966,7 +948,7 @@ msgid "DHCP6" + msgstr "DHCP6" + + #: ../clients/cli/connections.c:301 +-#, fuzzy, c-format ++#, c-format + msgid "" + "Usage: nmcli connection { COMMAND | help }\n" + "\n" +@@ -1005,10 +987,10 @@ msgid "" + " export [id | uuid | path] []\n" + "\n" + msgstr "" +-"Usage: nmcli connection { COMMAND | help }\n" ++"使い方: nmcli connection { COMMAND | help }\n" + "\n" +-"COMMAND := { show | up | down | add | modify | edit | delete | monitor | " +-"reload | load }\n" ++"COMMAND := { show | up | down | add | modify | clone | edit | delete | " ++"monitor | reload | load | import | export }\n" + "\n" + " show [--active] [--order ]\n" + " show [--active] [id | uuid | path | apath] ...\n" +@@ -1308,6 +1290,153 @@ msgid "" + " [ip6 ] [gw6 ]\n" + "\n" + msgstr "" ++"使い方: nmcli connection add { ARGUMENTS | help }\n" ++"\n" ++"ARGUMENTS := COMMON_OPTIONS TYPE_SPECIFIC_OPTIONS SLAVE_OPTIONS IP_OPTIONS " ++"[-- ([+|-]. )+]\n" ++"\n" ++" COMMON_OPTIONS:\n" ++" type \n" ++" ifname | \"*\"\n" ++" [con-name ]\n" ++" [autoconnect yes|no]\n" ++" [save yes|no]\n" ++" [master ]\n" ++" [slave-type ]\n" ++"\n" ++" TYPE_SPECIFIC_OPTIONS:\n" ++" ethernet: [mac ]\n" ++" [cloned-mac ]\n" ++" [mtu ]\n" ++"\n" ++" wifi: ssid \n" ++" [mac ]\n" ++" [cloned-mac ]\n" ++" [mtu ]\n" ++" [mode infrastructure|ap|adhoc]\n" ++"\n" ++" wimax: [mac ]\n" ++" [nsp ]\n" ++"\n" ++" pppoe: username \n" ++" [password ]\n" ++" [service ]\n" ++" [mtu ]\n" ++" [mac ]\n" ++"\n" ++" gsm: apn \n" ++" [user ]\n" ++" [password ]\n" ++"\n" ++" cdma: [user ]\n" ++" [password ]\n" ++"\n" ++" infiniband: [mac ]\n" ++" [mtu ]\n" ++" [transport-mode datagram | connected]\n" ++" [parent ]\n" ++" [p-key ]\n" ++"\n" ++" bluetooth: [addr ]\n" ++" [bt-type panu|dun-gsm|dun-cdma]\n" ++"\n" ++" vlan: dev \n" ++" id \n" ++" [flags ]\n" ++" [ingress ]\n" ++" [egress ]\n" ++" [mtu ]\n" ++"\n" ++" bond: [mode balance-rr (0) | active-backup (1) | balance-xor (2) " ++"| broadcast (3) |\n" ++" 802.3ad (4) | balance-tlb (5) | balance-alb " ++"(6)]\n" ++" [primary ]\n" ++" [miimon ]\n" ++" [downdelay ]\n" ++" [updelay ]\n" ++" [arp-interval ]\n" ++" [arp-ip-target ]\n" ++" [lacp-rate slow (0) | fast (1)]\n" ++"\n" ++" bond-slave: master \n" ++"\n" ++" team: [config |]\n" ++"\n" ++" team-slave: master \n" ++" [config |]\n" ++"\n" ++" bridge: [stp yes|no]\n" ++" [priority ]\n" ++" [forward-delay <2-30>]\n" ++" [hello-time <1-10>]\n" ++" [max-age <6-40>]\n" ++" [ageing-time <0-1000000>]\n" ++" [multicast-snooping yes|no]\n" ++" [mac ]\n" ++"\n" ++" bridge-slave: master \n" ++" [priority <0-63>]\n" ++" [path-cost <1-65535>]\n" ++" [hairpin yes|no]\n" ++"\n" ++" vpn: vpn-type vpnc|openvpn|pptp|openconnect|openswan|libreswan|" ++"ssh|l2tp|iodine|...\n" ++" [user ]\n" ++"\n" ++" olpc-mesh: ssid \n" ++" [channel <1-13>]\n" ++" [dhcp-anycast ]\n" ++"\n" ++" adsl: username \n" ++" protocol pppoa|pppoe|ipoatm\n" ++" [password ]\n" ++" [encapsulation vcmux|llc]\n" ++"\n" ++" tun: mode tun|tap\n" ++" [owner ]\n" ++" [group ]\n" ++" [pi yes|no]\n" ++" [vnet-hdr yes|no]\n" ++" [multi-queue yes|no]\n" ++"\n" ++" ip-tunnel: mode ipip|gre|sit|isatap|vti|ip6ip6|ipip6|ip6gre|vti6\n" ++" remote \n" ++" [local ]\n" ++" [dev ]\n" ++"\n" ++" macsec: dev \n" ++" mode \n" ++" [cak ckn ]\n" ++" [encrypt yes|no]\n" ++" [port 1-65534]\n" ++"\n" ++"\n" ++" macvlan: dev \n" ++" mode vepa|bridge|private|passthru|source\n" ++" [tap yes|no]\n" ++"\n" ++" vxlan: id \n" ++" remote \n" ++" [local ]\n" ++" [dev ]\n" ++" [source-port-min <0-65535>]\n" ++" [source-port-max <0-65535>]\n" ++" [destination-port <0-65535>]\n" ++"\n" ++" dummy: \n" ++"\n" ++" SLAVE_OPTIONS:\n" ++" bridge: [priority <0-63>]\n" ++" [path-cost <1-65535>]\n" ++" [hairpin yes|no]\n" ++"\n" ++" team: [config |]\n" ++"\n" ++" IP_OPTIONS:\n" ++" [ip4 ] [gw4 ]\n" ++" [ip6 ] [gw6 ]\n" ++"\n" + + #: ../clients/cli/connections.c:495 + #, c-format +@@ -1581,7 +1710,6 @@ msgid "never" + msgstr "しない" + + #: ../clients/cli/connections.c:1190 +-#, fuzzy + msgid "Activate connection details" + msgstr "アクティブな接続の詳細" + +@@ -1607,19 +1735,18 @@ msgid "incorrect item '%s' in '--order' option" + msgstr "'--order' オプションの正しくないアイテム '%s'" + + #: ../clients/cli/connections.c:1705 +-#, fuzzy + msgid "No connection specified" +-msgstr "エラー: 接続が指定されていません。" ++msgstr "接続が指定されていません。" + + #: ../clients/cli/connections.c:1720 +-#, fuzzy, c-format ++#, c-format + msgid "%s argument is missing" +-msgstr "エラー: %s 引数がありません。" ++msgstr "%s 引数がありません。" + + #: ../clients/cli/connections.c:1730 +-#, fuzzy, c-format ++#, c-format + msgid "unknown connection '%s'" +-msgstr "エラー: 不明な接続 '%s'\n" ++msgstr "不明な接続 '%s'" + + #: ../clients/cli/connections.c:1763 + msgid "'--order' argument is missing" +@@ -1678,9 +1805,9 @@ msgid "no active connection or device" + msgstr "アクティブな接続またはデバイスがありません" + + #: ../clients/cli/connections.c:2081 +-#, fuzzy, c-format ++#, c-format + msgid "device '%s' not compatible with connection '%s':" +-msgstr "デバイス '%s' は接続 '%s' と互換性がありません" ++msgstr "デバイス '%s' は接続 '%s' と互換性がありません:" + + #: ../clients/cli/connections.c:2117 + #, c-format +@@ -1693,84 +1820,68 @@ msgid "no device found for connection '%s'" + msgstr "接続 '%s'用のデバイスが見つかりません" + + #: ../clients/cli/connections.c:2140 +-#, fuzzy + msgid "Unknown reason" + msgstr "不明な理由" + + #: ../clients/cli/connections.c:2142 +-#, fuzzy + msgid "The connection was disconnected" +-msgstr "接続はボンド接続ではありませんでした。" ++msgstr "接続が切断されました" + + #: ../clients/cli/connections.c:2144 +-#, fuzzy + msgid "Disconnected by user" +-msgstr "D-Bus により切断" ++msgstr "ユーザーにより切断" + + #: ../clients/cli/connections.c:2146 +-#, fuzzy + msgid "The base network connection was interrupted" +-msgstr "基本ネットワーク接続が妨害されました。" ++msgstr "基本ネットワーク接続が中断されました。" + + #: ../clients/cli/connections.c:2148 +-#, fuzzy + msgid "The VPN service stopped unexpectedly" +-msgstr "VPN サービスが予期しない停止をしました" ++msgstr "VPN サービスが予期せず停止しました" + + #: ../clients/cli/connections.c:2150 +-#, fuzzy + msgid "The VPN service returned invalid configuration" +-msgstr "VPN サービスは無効な設定を返しました" ++msgstr "VPN サービスが無効な設定を返しました" + + #: ../clients/cli/connections.c:2152 +-#, fuzzy + msgid "The connection attempt timed out" +-msgstr "接続試行は時間切れです" ++msgstr "接続試行がタイムアウトしました" + + #: ../clients/cli/connections.c:2154 +-#, fuzzy + msgid "The VPN service did not start in time" +-msgstr "VPN サービスは時間内に開始していません" ++msgstr "VPN サービスは時間内に開始しませんでした" + + #: ../clients/cli/connections.c:2156 +-#, fuzzy + msgid "The VPN service failed to start" +-msgstr "VPN サービスの開始は失敗しました" ++msgstr "VPN サービスの開始に失敗しました" + + #: ../clients/cli/connections.c:2158 +-#, fuzzy + msgid "No valid secrets" +-msgstr "有効な VPN シークレットはありません" ++msgstr "有効なシークレットはありません" + + #: ../clients/cli/connections.c:2160 +-#, fuzzy + msgid "Invalid secrets" +-msgstr "無効な VPN シークレット" ++msgstr "無効なシークレット" + + #: ../clients/cli/connections.c:2162 +-#, fuzzy + msgid "The connection was removed" + msgstr "接続は削除されました" + + #: ../clients/cli/connections.c:2164 +-#, fuzzy + msgid "Master connection failed" +-msgstr "接続に失敗" ++msgstr "マスター接続に失敗しました" + + #: ../clients/cli/connections.c:2166 +-#, fuzzy + msgid "Could not create a software link" +-msgstr "一時ファイルを作成できませんでした: %s" ++msgstr "ソフトウェアリンクを作成できませんでした" + + #: ../clients/cli/connections.c:2168 +-#, fuzzy + msgid "The device disappeared" +-msgstr "このデバイスのアクティブな接続が消滅しました" ++msgstr "デバイスが消滅しました" + + #: ../clients/cli/connections.c:2171 +-#, fuzzy + msgid "Invalid reason" +-msgstr "無効なルート: %s" ++msgstr "無効な理由" + + #: ../clients/cli/connections.c:2196 ../clients/cli/connections.c:2366 + #: ../clients/cli/connections.c:6468 +@@ -1794,9 +1905,9 @@ msgstr "" + "Bus アクティブパス: %s)\n" + + #: ../clients/cli/connections.c:2261 +-#, fuzzy, c-format ++#, c-format + msgid "Error: Timeout expired (%d seconds)" +-msgstr "エラー: 制限時間の %d 秒が経過" ++msgstr "エラー: タイムアウト (%d 秒) になりました" + + #: ../clients/cli/connections.c:2427 + #, c-format +@@ -1871,9 +1982,9 @@ msgid "Error: no active connection provided." + msgstr "エラー: アクティブな接続がありません。" + + #: ../clients/cli/connections.c:2878 +-#, fuzzy, c-format ++#, c-format + msgid "Connection '%s' deactivation failed: %s\n" +-msgstr "エラー: 接続のアクティベーションに失敗: %s" ++msgstr "接続 '%s' の非アクティブ化に失敗しました: %s\n" + + #: ../clients/cli/connections.c:3341 ../clients/cli/utils.c:710 + #, c-format +@@ -1906,14 +2017,14 @@ msgid "Error: failed to remove a value from %s.%s: %s." + msgstr "エラー: '%s' の値の削除に失敗しました、%s: %s。" + + #: ../clients/cli/connections.c:3748 +-#, fuzzy, c-format ++#, c-format + msgid "Error: '%s' is mandatory." +-msgstr "エラー: '%s' を繰り返すことはできません。" ++msgstr "エラー: '%s' は必須です。" + + #: ../clients/cli/connections.c:3780 +-#, fuzzy, c-format ++#, c-format + msgid "Error: invalid slave type; %s." +-msgstr "エラー: 無効な接続タイプ; %s。" ++msgstr "エラー: 無効なスレーブタイプ; %s。" + + #: ../clients/cli/connections.c:3793 + #, c-format +@@ -1921,24 +2032,23 @@ msgid "Error: invalid connection type; %s." + msgstr "エラー: 無効な接続タイプ; %s。" + + #: ../clients/cli/connections.c:4002 +-#, fuzzy, c-format ++#, c-format + msgid "Error: bad connection type: %s." +-msgstr "エラー: 無効な接続タイプ; %s。" ++msgstr "エラー: 問題のある接続タイプ; %s。" + + #: ../clients/cli/connections.c:4065 +-#, fuzzy, c-format ++#, c-format + msgid "Error: '%s': %s" +-msgstr "エラー: %s: %s。" ++msgstr "エラー: '%s': %s" + + #: ../clients/cli/connections.c:4086 +-#, fuzzy + msgid "Error: master is required" +-msgstr "エラー: 'マスター' が必要です。" ++msgstr "エラー: マスターが必要です" + + #: ../clients/cli/connections.c:4145 +-#, fuzzy, c-format ++#, c-format + msgid "Error: error adding bond option '%s=%s'." +-msgstr "エラー: 不明な接続 '%s' です。" ++msgstr "エラー: ボンドオプション '%s=%s' の追加中にエラー。" + + #: ../clients/cli/connections.c:4176 + #, c-format +@@ -1954,48 +2064,40 @@ msgstr "" + "エラー: 'bt-type': '%s' は無効です; [%s, %s (%s), %s] を使用してください。" + + #: ../clients/cli/connections.c:4282 +-#, fuzzy + msgid "PPPoE username" +-msgstr "PPPoE ユーザー名: " ++msgstr "PPPoE ユーザー名" + + #: ../clients/cli/connections.c:4283 ../clients/cli/connections.c:4304 + #: ../clients/cli/connections.c:4306 ../clients/cli/connections.c:4355 +-#, fuzzy + msgid "Password [none]" +-msgstr "パスワード [none]: " ++msgstr "パスワード [none]" + + #: ../clients/cli/connections.c:4284 +-#, fuzzy + msgid "Service [none]" +-msgstr "サービス [none]: " ++msgstr "サービス [none]" + + #: ../clients/cli/connections.c:4285 ../clients/cli/connections.c:4288 + #: ../clients/cli/connections.c:4297 +-#, fuzzy + msgid "MTU [auto]" +-msgstr "MTU [auto]: " ++msgstr "MTU [auto]" + + #: ../clients/cli/connections.c:4286 ../clients/cli/connections.c:4289 + #: ../clients/cli/connections.c:4298 ../clients/cli/connections.c:4301 + #: ../clients/cli/connections.c:4342 +-#, fuzzy + msgid "MAC [none]" +-msgstr "MAC [none]: " ++msgstr "MAC [none]" + + #: ../clients/cli/connections.c:4287 ../clients/cli/connections.c:4299 +-#, fuzzy + msgid "Cloned MAC [none]" +-msgstr "クローンの MAC [none]: " ++msgstr "クローンしたMAC [none]" + + #: ../clients/cli/connections.c:4292 +-#, fuzzy + msgid "Parent interface [none]" +-msgstr "親インターフェース [none]: " ++msgstr "親インターフェース [none]" + + #: ../clients/cli/connections.c:4293 +-#, fuzzy + msgid "P_KEY [none]" +-msgstr "P_KEY [none]: " ++msgstr "P_KEY [none]" + + #. 0 + #: ../clients/cli/connections.c:4294 ../clients/cli/connections.c:4349 +@@ -2004,150 +2106,121 @@ msgid "SSID" + msgstr "SSID" + + #: ../clients/cli/connections.c:4300 +-#, fuzzy + msgid "WiMAX NSP name" +-msgstr "WiMAX NSP 名: " ++msgstr "WiMAX NSP 名" + + #: ../clients/cli/connections.c:4302 +-#, fuzzy + msgid "APN" +-msgstr "AP" ++msgstr "APN" + + #: ../clients/cli/connections.c:4303 ../clients/cli/connections.c:4305 + #: ../clients/cli/connections.c:4348 +-#, fuzzy + msgid "Username [none]" +-msgstr "ユーザー名 [none]: " ++msgstr "ユーザー名 [none]" + + #: ../clients/cli/connections.c:4307 +-#, fuzzy + msgid "Bluetooth device address" +-msgstr "Bluetooth デバイスアドレス: " ++msgstr "Bluetooth デバイスアドレス" + + #: ../clients/cli/connections.c:4310 +-#, fuzzy + msgid "VLAN parent device or connection UUID" +-msgstr "VLAN 親デバイスまたは接続 UUID: " ++msgstr "VLAN 親デバイスまたは接続 UUID" + + #: ../clients/cli/connections.c:4312 +-#, fuzzy + msgid "VLAN ID (<0-4094>)" +-msgstr "VLAN ID <0-4094>: " ++msgstr "VLAN ID (<0-4094>)" + + #: ../clients/cli/connections.c:4313 +-#, fuzzy + msgid "VLAN flags (<0-7>) [none]" +-msgstr "VLAN フラグ (<0-7>) [none]: " ++msgstr "VLAN フラグ (<0-7>) [none]" + + #: ../clients/cli/connections.c:4314 +-#, fuzzy + msgid "Ingress priority maps [none]" +-msgstr "イングレス優先度マップ [none]: " ++msgstr "イングレス優先度マップ [none]" + + #: ../clients/cli/connections.c:4315 +-#, fuzzy + msgid "Egress priority maps [none]" +-msgstr "イーグレス優先度マップ [none]: " ++msgstr "イーグレス優先度マップ [none]" + + #: ../clients/cli/connections.c:4318 +-#, fuzzy + msgid "Bonding primary interface [none]" +-msgstr "ボンドのプライマリインターフェース [none]:" ++msgstr "ボンドのプライマリインターフェース [none]" + + #: ../clients/cli/connections.c:4322 +-#, fuzzy + msgid "Bonding miimon [100]" +-msgstr "ボンドの miimon [100]:" ++msgstr "ボンドの miimon [100]" + + #: ../clients/cli/connections.c:4323 +-#, fuzzy + msgid "Bonding downdelay [0]" +-msgstr "ボンドの downdelay [0]: " ++msgstr "ボンドの downdelay [0]" + + #: ../clients/cli/connections.c:4324 +-#, fuzzy + msgid "Bonding updelay [0]" +-msgstr "ボンドの updelay [0]: " ++msgstr "ボンドの updelay [0]" + + #: ../clients/cli/connections.c:4325 +-#, fuzzy + msgid "Bonding arp-interval [0]" +-msgstr "ボンドの arp-interval [0]: " ++msgstr "ボンドの arp-interval [0]" + + #: ../clients/cli/connections.c:4327 +-#, fuzzy + msgid "Bonding arp-ip-target [none]" +-msgstr "ボンドの arp-ip-target [none]: " ++msgstr "ボンドの arp-ip-target [none]" + + #: ../clients/cli/connections.c:4329 +-#, fuzzy + msgid "LACP rate ('slow' or 'fast') [slow]" +-msgstr "LACP レート ('低速' または '高速') [低速]: " ++msgstr "LACP レート ('slow' または 'fast') [slow]" + + #: ../clients/cli/connections.c:4331 ../clients/cli/connections.c:4332 +-#, fuzzy + msgid "Team JSON configuration [none]" +-msgstr "team JSON 設定 [none]: " ++msgstr "team JSON 設定 [none]" + + #: ../clients/cli/connections.c:4333 +-#, fuzzy + msgid "Enable STP [no]" +-msgstr "STP %s の有効化 " ++msgstr "STP の有効化 [no]" + + #: ../clients/cli/connections.c:4335 +-#, fuzzy + msgid "STP priority [32768]" +-msgstr "STP の優先度 [32768]: " ++msgstr "STP の優先度 [32768]" + + #: ../clients/cli/connections.c:4336 +-#, fuzzy + msgid "Forward delay [15]" +-msgstr "フォワード遅延 [15]:" ++msgstr "フォワード遅延 [15]" + + #: ../clients/cli/connections.c:4337 +-#, fuzzy + msgid "Hello time [2]" +-msgstr "Hello タイム [2]: " ++msgstr "Hello タイム [2]" + + #: ../clients/cli/connections.c:4338 +-#, fuzzy + msgid "Max age [20]" +-msgstr "最大エイジ [20]: " ++msgstr "最大エイジ [20]" + + #: ../clients/cli/connections.c:4339 +-#, fuzzy + msgid "MAC address ageing time [300]" +-msgstr "MAC アドレスのエージングタイム [300]:" ++msgstr "MAC アドレスのエージングタイム [300]" + + #: ../clients/cli/connections.c:4340 +-#, fuzzy + msgid "Enable IGMP snooping [no]" +-msgstr "IGMP スヌーピングの有効化" ++msgstr "IGMP スヌーピングの有効化 [no]" + + #: ../clients/cli/connections.c:4343 +-#, fuzzy + msgid "Bridge port priority [32]" +-msgstr "ブリッジポートの優先度 [32]:" ++msgstr "ブリッジポートの優先度 [32]" + + #: ../clients/cli/connections.c:4344 +-#, fuzzy + msgid "Bridge port STP path cost [100]" +-msgstr "ブリッジポートの STP パスコスト [100]: " ++msgstr "ブリッジポートの STP パスコスト [100]" + + #: ../clients/cli/connections.c:4345 +-#, fuzzy + msgid "Hairpin [no]" +-msgstr "ヘアピンモード" ++msgstr "ヘアピン [no]" + + #: ../clients/cli/connections.c:4350 +-#, fuzzy + msgid "OLPC Mesh channel [1]" +-msgstr "OLPC メッシュチャンネル [1]: " ++msgstr "OLPC メッシュチャンネル [1]" + + #: ../clients/cli/connections.c:4351 +-#, fuzzy + msgid "DHCP anycast MAC address [none]" +-msgstr "DHCP anycast MAC アドレス [none]: " ++msgstr "DHCP anycast MAC アドレス [none]" + + #. TTLS and PEAP are actually much more complicated, but this complication + #. * is not visible here since we only care about phase2 authentication +@@ -2162,130 +2235,112 @@ msgstr "ユーザー名" + + #: ../clients/cli/connections.c:4358 + msgid "MACsec parent device or connection UUID" +-msgstr "" ++msgstr "MACsec 親デバイスまたは接続 UUID" + + #: ../clients/cli/connections.c:4360 + msgid "Enable encryption [yes]" +-msgstr "" ++msgstr "暗号化の有効化 [yes]" + + #: ../clients/cli/connections.c:4361 + #: ../clients/common/nm-secret-agent-simple.c:520 + msgid "MKA CAK" +-msgstr "" ++msgstr "MKA CAK" + + #: ../clients/cli/connections.c:4362 + msgid "MKA_CKN" +-msgstr "" ++msgstr "MKA_CKN" + + #: ../clients/cli/connections.c:4363 + msgid "SCI port [1]" +-msgstr "" ++msgstr "SCI ポート [1]" + + #: ../clients/cli/connections.c:4365 +-#, fuzzy + msgid "MACVLAN parent device or connection UUID" +-msgstr "MACVLAN 親デバイスまたは接続 UUID: " ++msgstr "MACVLAN 親デバイスまたは接続 UUID" + + #: ../clients/cli/connections.c:4369 + msgid "Tap [no]" +-msgstr "" ++msgstr "Tap [no]" + + #: ../clients/cli/connections.c:4371 +-#, fuzzy + msgid "VXLAN ID" +-msgstr "VXLAN ID: " ++msgstr "VXLAN ID" + + #: ../clients/cli/connections.c:4372 ../clients/cli/connections.c:4391 +-#, fuzzy + msgid "Remote" +-msgstr "リモート: " ++msgstr "リモート" + + #: ../clients/cli/connections.c:4373 ../clients/cli/connections.c:4392 +-#, fuzzy + msgid "Parent device [none]" +-msgstr "親デバイス [none]: " ++msgstr "親デバイス [none]" + + #: ../clients/cli/connections.c:4375 +-#, fuzzy + msgid "Local address [none]" +-msgstr "ローカルアドレス [none]: " ++msgstr "ローカルアドレス [none]" + + #: ../clients/cli/connections.c:4376 +-#, fuzzy + msgid "Minimum source port [0]" +-msgstr "最小ソースポート [0]: " ++msgstr "最小ソースポート数 [0]" + + #: ../clients/cli/connections.c:4377 +-#, fuzzy + msgid "Maximum source port [0]" +-msgstr "最小ソースポート [0]: " ++msgstr "最大ソースポート数 [0]" + + #: ../clients/cli/connections.c:4378 +-#, fuzzy + msgid "Destination port [8472]" +-msgstr "送信先ポート [8472]: " ++msgstr "接続先ポート [8472]" + + #: ../clients/cli/connections.c:4381 +-#, fuzzy + msgid "User ID [none]" +-msgstr "ユーザー ID [none]: " ++msgstr "ユーザー ID [none]" + + #: ../clients/cli/connections.c:4382 +-#, fuzzy + msgid "Group ID [none]" +-msgstr "グループ ID [none]: " ++msgstr "グループ ID [none]" + + #: ../clients/cli/connections.c:4383 +-#, fuzzy + msgid "Enable PI [no]" +-msgstr "PI %s の有効化" ++msgstr "PI の有効化 [no]" + + #: ../clients/cli/connections.c:4385 +-#, fuzzy + msgid "Enable VNET header [no]" +-msgstr "VNET ヘッダー %s の有効化" ++msgstr "VNET ヘッダー の有効化 [no]" + + #: ../clients/cli/connections.c:4387 +-#, fuzzy + msgid "Enable multi queue [no]" +-msgstr "複数のキュー %s の有効化" ++msgstr "複数のキューの有効化 [no]" + + #: ../clients/cli/connections.c:4390 +-#, fuzzy + msgid "Local endpoint [none]" +-msgstr "ローカルエンドポイント [none]: " ++msgstr "ローカルエンドポイント [none]" + + #: ../clients/cli/connections.c:4394 +-#, fuzzy + msgid "IPv4 address (IP[/plen]) [none]" +-msgstr "IPv4 アドレス (IP[/plen]) [none]: " ++msgstr "IPv4 アドレス (IP[/plen]) [none]" + + #: ../clients/cli/connections.c:4396 +-#, fuzzy + msgid "IPv4 gateway [none]" +-msgstr "IPv4 ゲートウェイ [none]: " ++msgstr "IPv4 ゲートウェイ [none]" + + #: ../clients/cli/connections.c:4397 +-#, fuzzy + msgid "IPv6 address (IP[/plen]) [none]" +-msgstr "IPv6 アドレス (IP[/plen]) [none]: " ++msgstr "IPv6 アドレス (IP[/plen]) [none]" + + #: ../clients/cli/connections.c:4399 +-#, fuzzy + msgid "IPv6 gateway [none]" +-msgstr "IPv6 ゲートウェイ [none]: " ++msgstr "IPv6 ゲートウェイ [none]" + + #: ../clients/cli/connections.c:4401 + msgid "Browser only [no]" +-msgstr "" ++msgstr "ブラウザー専用 [no]" + + #: ../clients/cli/connections.c:4403 + msgid "PAC URL" +-msgstr "" ++msgstr "PAC URL" + + #: ../clients/cli/connections.c:4404 + msgid "PAC script" +-msgstr "" ++msgstr "PAC スクリプト" + + #: ../clients/cli/connections.c:4539 + #, c-format +@@ -2302,9 +2357,9 @@ msgid "Error: invalid or not allowed setting '%s': %s." + msgstr "エラー: 無効または許可されていない設定 '%s' です: %s。" + + #: ../clients/cli/connections.c:4633 +-#, fuzzy, c-format ++#, c-format + msgid "Error: '%s' is ambiguous (%s.%s or %s.%s)." +-msgstr "'%s' が不明瞭です (%s x %s)" ++msgstr "エラー:'%s' があいまいです (%s.%s または %s.%s)。" + + #: ../clients/cli/connections.c:4647 + #, c-format +@@ -2326,13 +2381,15 @@ msgstr "接続 '%s' (%s) が正常に追加されました。\n" + msgid "" + "You can specify this option more than once. Press when you're done.\n" + msgstr "" ++"このオプションは複数回指定することができます。終了したら を押してくだ" ++"さい。\n" + + #. Ask for optional arguments. + #: ../clients/cli/connections.c:4854 +-#, fuzzy, c-format ++#, 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" ++msgstr[0] "'%s' には %d のオプション設定があります。\n" + + #: ../clients/cli/connections.c:4857 + #, c-format +@@ -2341,81 +2398,68 @@ msgid_plural "Do you want to provide them? %s" + msgstr[0] "指定しますか? %s" + + #: ../clients/cli/connections.c:4871 +-#, fuzzy + msgid "Wired Ethernet" +-msgstr "Ethernet" ++msgstr "有線イーサネット" + + #: ../clients/cli/connections.c:4873 ../src/devices/nm-device-infiniband.c:192 + msgid "InfiniBand connection" + msgstr "InfiniBand 接続" + + #: ../clients/cli/connections.c:4875 +-#, fuzzy + msgid "Wi-Fi connection" +-msgstr "Wi-Fi 接続 %d" ++msgstr "Wi-Fi 接続" + + #: ../clients/cli/connections.c:4877 +-#, fuzzy + msgid "WiMAX connection" +-msgstr "CDMA 接続" ++msgstr "WiMAX 接続" + + #: ../clients/cli/connections.c:4879 + msgid "PPPoE" + msgstr "PPPoE" + + #: ../clients/cli/connections.c:4881 +-#, fuzzy + msgid "CDMA mobile broadband connection" +-msgstr "モバイルブロードバンド接続 %d" ++msgstr "CDMA モバイルブロードバンド接続" + + #: ../clients/cli/connections.c:4883 +-#, fuzzy + msgid "GSM mobile broadband connection" +-msgstr "モバイルブロードバンド接続 %d" ++msgstr "GSM モバイルブロードバンド接続" + + #: ../clients/cli/connections.c:4885 +-#, fuzzy + msgid "bluetooth connection" +-msgstr "ボンド接続" ++msgstr "bluetooth 接続" + + #: ../clients/cli/connections.c:4887 ../src/devices/nm-device-vlan.c:433 + msgid "VLAN connection" + msgstr "VLAN 接続" + + #: ../clients/cli/connections.c:4889 +-#, fuzzy + msgid "Bond device" +-msgstr "Ethernet デバイス" ++msgstr "Bond デバイス" + + #: ../clients/cli/connections.c:4891 +-#, fuzzy + msgid "Team device" +-msgstr "TUN デバイスモード" ++msgstr "Team デバイス" + + #: ../clients/cli/connections.c:4893 +-#, fuzzy + msgid "Team port" +-msgstr "team " ++msgstr "Team ポート" + + #: ../clients/cli/connections.c:4895 +-#, fuzzy + msgid "Bridge device" +-msgstr "Ethernet デバイス" ++msgstr "ブリッジデバイス" + + #: ../clients/cli/connections.c:4897 +-#, fuzzy + msgid "Bridge port" +-msgstr "ブリッジ" ++msgstr "ブリッジポート" + + #: ../clients/cli/connections.c:4899 ../src/nm-manager.c:4080 +-#, fuzzy + msgid "VPN connection" + msgstr "VPN 接続" + + #: ../clients/cli/connections.c:4901 +-#, fuzzy + msgid "OLPC Mesh connection" +-msgstr "CDMA 接続" ++msgstr "OLPC Mesh 接続" + + #: ../clients/cli/connections.c:4903 ../src/devices/adsl/nm-device-adsl.c:137 + msgid "ADSL connection" +@@ -2423,35 +2467,31 @@ msgstr "ADSL 接続" + + #: ../clients/cli/connections.c:4905 + msgid "MACsec connection" +-msgstr "" ++msgstr "MACsec 接続" + + #: ../clients/cli/connections.c:4907 +-#, fuzzy + msgid "macvlan connection" +-msgstr "ボンド接続" ++msgstr "macvlan 接続" + + #: ../clients/cli/connections.c:4909 ../src/devices/nm-device-vxlan.c:369 + msgid "VXLAN connection" + msgstr "VXLAN 接続" + + #: ../clients/cli/connections.c:4911 +-#, fuzzy + msgid "Tun device" +-msgstr "TUN デバイスモード" ++msgstr "TUN デバイス" + + #: ../clients/cli/connections.c:4913 +-#, fuzzy + msgid "IPv4 protocol" +-msgstr "ADSL プロトコル" ++msgstr "IPv4 プロトコル" + + #: ../clients/cli/connections.c:4915 +-#, fuzzy + msgid "IPv6 protocol" +-msgstr "ADSL プロトコル" ++msgstr "IPv6 プロトコル" + + #: ../clients/cli/connections.c:4917 + msgid "Proxy" +-msgstr "" ++msgstr "プロキシ" + + #: ../clients/cli/connections.c:5004 ../clients/cli/utils.c:186 + #, c-format +@@ -2464,9 +2504,9 @@ msgid "Error: 'save': %s." + msgstr "エラー: 'save': %s。" + + #: ../clients/cli/connections.c:5082 +-#, fuzzy, c-format ++#, c-format + msgid "Error: '%s' argument is required." +-msgstr "エラー: 'タイプ' 引数が必要です。" ++msgstr "エラー: '%s' 引数が必要です。" + + #: ../clients/cli/connections.c:6054 + #, c-format +@@ -3268,9 +3308,9 @@ msgid "Error: Connection deletion failed: %s" + msgstr "エラー: 接続の削除に失敗しました: %s" + + #: ../clients/cli/connections.c:8391 ../clients/cli/connections.c:8516 +-#, fuzzy, c-format ++#, c-format + msgid "Error: %s.\n" +-msgstr "エラー: %s." ++msgstr "エラー: %s.\n" + + #: ../clients/cli/connections.c:8392 ../clients/cli/connections.c:8517 + #, c-format +@@ -3348,9 +3388,9 @@ msgid "Error: 'file' argument is required." + msgstr "エラー: 'file' 引数が必要です。" + + #: ../clients/cli/connections.c:8708 +-#, fuzzy, c-format ++#, c-format + msgid "Error: failed to find VPN plugin for %s." +-msgstr "エラー: VPN プラグインのロードに失敗しました: %s。" ++msgstr "エラー: %s 用の VPN プラグインが見つかりません。" + + #: ../clients/cli/connections.c:8716 ../clients/cli/connections.c:8817 + #, c-format +@@ -3392,7 +3432,6 @@ msgid "Interface: " + msgstr "インターフェース: " + + #: ../clients/cli/devices.c:37 +-#, fuzzy + msgid "Interface(s): " + msgstr "インターフェース: " + +@@ -3520,7 +3559,7 @@ msgstr "速度" + #. 3 + #: ../clients/cli/devices.c:104 + msgid "SRIOV" +-msgstr "" ++msgstr "SRIOV" + + #. 0 + #: ../clients/cli/devices.c:113 +@@ -3678,7 +3717,7 @@ msgstr "スレーブ" + #. 1 + #: ../clients/cli/devices.c:204 + msgid "CONFIG" +-msgstr "" ++msgstr "CONFIG" + + #. 0 + #: ../clients/cli/devices.c:213 +@@ -3814,7 +3853,7 @@ msgid "PORT-ID-TYPE" + msgstr "PORT-ID-TYPE" + + #: ../clients/cli/devices.c:295 +-#, fuzzy, c-format ++#, c-format + msgid "" + "Usage: nmcli device { COMMAND | help }\n" + "\n" +@@ -3854,10 +3893,10 @@ msgid "" + " lldp [list [ifname ]]\n" + "\n" + msgstr "" +-"使い方: nmcli device { コマンド | help }\n" ++"使い方: nmcli device { COMMAND | help }\n" + "\n" +-"コマンド := { status | show | connect | reapply | disconnect | delete | " +-"monitor | wifi | lldp }\n" ++"COMMAND := { status | show | set | connect | reapply | modify | disconnect | " ++"delete | monitor | wifi | lldp }\n" + "\n" + " status\n" + "\n" +@@ -3867,7 +3906,9 @@ msgstr "" + "\n" + " connect \n" + "\n" +-" reapply ...\n" ++" reapply \n" ++"\n" ++" modify ([+|-]. )+\n" + "\n" + " disconnect ...\n" + "\n" +@@ -3877,15 +3918,15 @@ msgstr "" + "\n" + " wifi [list [ifname ] [bssid ]]\n" + "\n" +-" wifi connect <(B)SSID> [password <パスワード>] [wep-key-type key|phrase] " ++" wifi connect <(B)SSID> [password ] [wep-key-type key|phrase] " + "[ifname ]\n" +-" [bssid ] [name <名前>] [private yes|no] " ++" [bssid ] [name ] [private yes|no] " + "[hidden yes|no]\n" + "\n" +-" wifi hotspot [ifname ] [con-name <名前>] [ssid ] [band a|bg] " +-"[channel <チャネル>] [password <パスワード>]\n" ++" wifi hotspot [ifname ] [con-name ] [ssid ] [band a|bg] " ++"[channel ] [password ]\n" + "\n" +-" wifi rescan [ifname ] [[ssid <スキャンする SSID>] ...]\n" ++" wifi rescan [ifname ] [[ssid ] ...]\n" + "\n" + " lldp [list [ifname ]]\n" + "\n" +@@ -3932,9 +3973,9 @@ msgid "" + "The command lists details for all devices, or for a given device.\n" + "\n" + msgstr "" +-"使い方: nmcli device show { 引数 | help }\n" ++"使い方: nmcli device show { ARGUMENTS | help }\n" + "\n" +-"引数 := []\n" ++"ARGUMENTS := []\n" + "\n" + "デバイスの詳細を表示します。\n" + "このコマンドですべてのデバイスまたは指定デバイスの詳細を表示させます。\n" +@@ -3953,9 +3994,9 @@ msgid "" + "It will also consider connections that are not set to auto-connect.\n" + "\n" + msgstr "" +-"使い方: nmcli device connect { 引数 | help }\n" ++"使い方: nmcli device connect { ARGUMENTS | help }\n" + "\n" +-"引数 := \n" ++"ARGUMENTS := \n" + "\n" + "デバイスを接続します。\n" + "NetworkManager により適した接続が検索され、アクティベートされます。\n" +@@ -3963,7 +4004,7 @@ msgstr "" + "\n" + + #: ../clients/cli/devices.c:356 +-#, fuzzy, c-format ++#, c-format + msgid "" + "Usage: nmcli device reapply { ARGUMENTS | help }\n" + "\n" +@@ -3973,16 +4014,16 @@ msgid "" + "made since it was last applied.\n" + "\n" + msgstr "" +-"使い方: nmcli device reapply { 引数 | help }\n" ++"使い方: n nmcli device reapply { ARGUMENTS | help }\n" + "\n" +-"引数 := ...\n" ++"ARGUMENTS := \n" + "\n" +-"変更が最後に適用されてから現在アクティブな接続に対して行われた変更\n" +-"でデバイスの更新を試行します。\n" ++"現在アクティブな接続に最後に適用されて以来の\n" ++"変更でデバイスの更新を試行します。\n" + "\n" + + #: ../clients/cli/devices.c:367 +-#, fuzzy, c-format ++#, c-format + msgid "" + "Usage: nmcli device modify { ARGUMENTS | --help }\n" + "\n" +@@ -4002,27 +4043,24 @@ msgid "" + "nmcli dev mod em1 -ipv4.dns 1\n" + "nmcli dev mod em1 -ipv6.addr \"abbe::cafe/56\"\n" + msgstr "" +-"使い方: nmcli connection modify { ARGUMENTS | help }\n" ++"使い方: nmcli device modify { ARGUMENTS | --help }\n" + "\n" +-"ARGUMENTS := [id | uuid | path] ([+|-]. )+\n" ++"ARGUMENTS := ([+|-]. )+\n" + "\n" +-"接続プロファイルの 1 つ以上のプロパティーを変更します。\n" +-"プロファイルは名前、UUID、または D-Bus パスで識別されます。複数の値から成るプ" +-"ロパティーの場合は、\n" ++"接続プロファイルを編集せずに、現在アクティブなデバイス上の 1 つ以上のプロパ" ++"ティーを変更します。\n" ++"変更はすぐに反映されます。\n" ++"複数の値で構成されるプロパティーの場合は、\n" + "プロパティー名にオプションの '+' または '-' プレフィックスを使用できます。\n" + "'+' 記号を使用すると、値全体を上書きせずにアイテムを追加できます。\n" +-"'-' 記号を使用すると、値全体の代わりに、選択されたアイテムを削除できます。\n" ++"'-' 記号を使用すると、値全体ではなく、選択されたアイテムを削除できます。\n" + "\n" + "例:\n" +-"nmcli con mod home-wifi wifi.ssid rakosnicek\n" +-"nmcli con mod em1-1 ipv4.method manual ipv4.addr \"192.168.1.2/24, " ++"nmcli dev mod em1 ipv4.method manual ipv4.addr \"192.168.1.2/24, " + "10.10.1.5/8\"\n" +-"nmcli con mod em1-1 +ipv4.dns 8.8.4.4\n" +-"nmcli con mod em1-1 -ipv4.dns 1\n" +-"nmcli con mod em1-1 -ipv6.addr \"abbe::cafe/56\"\n" +-"nmcli con mod bond0 +bond.options mii=500\n" +-"nmcli con mod bond0 -bond.options downdelay\n" +-"\n" ++"nmcli dev mod em1 +ipv4.dns 8.8.4.4\n" ++"nmcli dev mod em1 -ipv4.dns 1\n" ++"nmcli dev mod em1 -ipv6.addr \"abbe::cafe/56\"\n" + + #: ../clients/cli/devices.c:387 + #, c-format +@@ -4036,9 +4074,9 @@ msgid "" + "further connections without user/manual intervention.\n" + "\n" + msgstr "" +-"使い方: nmcli device disconnect { 引数 | help }\n" ++"使い方: nmcli device disconnect { ARGUMENTS | help }\n" + "\n" +-"引数 := ...\n" ++"ARGUMENTS := ...\n" + "\n" + "デバイスの接続を切断します。\n" + "このコマンドにより、デバイスの接続が切断され、ユーザーまたは手作業による介入" +@@ -4059,9 +4097,9 @@ msgid "" + "command.\n" + "\n" + msgstr "" +-"使い方: nmcli device delete { 引数 | help }\n" ++"使い方: nmcli device delete { ARGUMENTS | help }\n" + "\n" +-"引数 := ...\n" ++"ARGUMENTS := ...\n" + "\n" + "ソフトウェアデバイスを削除します。\n" + "このコマンドにより、インターフェースが削除されます。ソフトウェアデバイス\n" +@@ -4082,11 +4120,11 @@ msgid "" + "Modify device properties.\n" + "\n" + msgstr "" +-"使い方: nmcli device set { 引数 | help }\n" ++"使い方: nmcli device set { ARGUMENTS | help }\n" + "\n" +-"引数 := デバイス { プロパティー [ プロパティー ... ] }\n" +-"デバイス := [ifname] \n" +-"プロパティー := { autoconnect { yes | no } |\n" ++"ARGUMENTS := DEVICE { PROPERTY [ PROPERTY ... ] }\n" ++"DEVICE := [ifname] \n" ++"PROPERTY := { autoconnect { yes | no } |\n" + " { managed { yes | no }\n" + "\n" + "デバイスプロパティーを変更します。\n" +@@ -4104,9 +4142,9 @@ msgid "" + "Monitors all devices in case no interface is specified.\n" + "\n" + msgstr "" +-"使い方: nmcli device monitor { 引数 | help }\n" ++"使い方: nmcli device monitor { ARGUMENTS | help }\n" + "\n" +-"引数 := [] ...\n" ++"ARGUMENTS := [] ...\n" + "\n" + "デバイスアクティビティーを監視します。\n" + "このコマンドにより、指定されたデバイスの状態が変わるたびに行が出力されま" +@@ -4115,7 +4153,7 @@ msgstr "" + "\n" + + #: ../clients/cli/devices.c:437 +-#, fuzzy, c-format ++#, c-format + msgid "" + "Usage: nmcli device wifi { ARGUMENTS | help }\n" + "\n" +@@ -4166,20 +4204,20 @@ msgid "" + "use 'nmcli device wifi list' for that.\n" + "\n" + msgstr "" +-"使い方: nmcli device wifi { 引数 | help }\n" ++"使い方: nmcli device wifi { ARGUMENTS | help }\n" + "\n" +-"Wi-Fi デバイス上での操作を行います。\n" ++"Wi-Fi デバイス上で演算を実行します。\n" + "\n" +-"引数 := [list [ifname ] [bssid ]]\n" ++"ARGUMENTS := [list [ifname ] [bssid ]]\n" + "\n" + "使用可能な Wi-Fi アクセスポイントを一覧表示します。'ifname' オプションと " + "'bssid' オプションを使用すると、\n" + "特定のインターフェース用の AP または特定の BSSID を持つ AP を一覧表示すること" + "ができます。\n" + "\n" +-"引数 := connect <(B)SSID> [password <パスワード>] [wep-key-type key|phrase] " +-"[ifname ]\n" +-" [bssid ] [name <名前>] [private yes|no] [hidden " ++"ARGUMENTS := connect <(B)SSID> [password ] [wep-key-type key|" ++"phrase] [ifname ]\n" ++" [bssid ] [name ] [private yes|no] [hidden " + "yes|no]\n" + "\n" + "SSID または BSSID で指定した Wi-Fi ネットワークへ接続します。このコマンドによ" +@@ -4188,21 +4226,23 @@ msgstr "" + "クライアントで SSID をクリックした場合と同じ動作になります。常に新規の接続" + "が\n" + "作成されるため、主に新規の Wi-Fi ネットワークに接続する場合に役に立ちます。\n" +-"ネットワーク用の接続がすでに存在する場合は、「nmcli con up id <名前>」を使っ" ++"ネットワーク用の接続がすでに存在する場合は、「nmcli con up id 」を使っ" + "て\n" + "既存のプロファイルを有効にすることが推奨されます。現時点でサポートされている" + "のはオープンな\n" + "WEP ネットワークおよび WPA-PSK ネットワークのみであることに注意してくださ" + "い。また、\n" +-"IP 設定は DHCP で取得されるとみなされます。\n" ++"IP 設定は DHCP で取得されることが前提となります。\n" + "\n" + "ARGUMENTS := wifi hotspot [ifname ] [con-name ] [ssid ]\n" + " [band a|bg] [channel ] [password " + "]\n" + "\n" +-"Create a Wi-Fi hotspot. Use 'connection down' or 'device disconnect'\n" +-"to stop the hotspot.\n" +-"Parameters of the hotspot can be influenced by the optional parameters:\n" ++"Wi-Fi ホットスポットを作成します。'connection down' または 'device " ++"disconnect'\n" ++"を使ってホットスポットを停止します。\n" ++"ホットスポットのパラメーターは以下のオプションのパラメーターに影響を受けま" ++"す:\n" + "ifname - Wi-Fi device to use\n" + "con-name - name of the created hotspot connection profile\n" + "ssid - SSID of the hotspot\n" +@@ -4212,15 +4252,16 @@ msgstr "" + "\n" + "ARGUMENTS := rescan [ifname ] [[ssid ] ...]\n" + "\n" +-"Request that NetworkManager immediately re-scan for available access " +-"points.\n" +-"NetworkManager scans Wi-Fi networks periodically, but in some cases it " +-"might\n" +-"be useful to start scanning manually. 'ssid' allows scanning for a specific\n" +-"SSID, which is useful for APs with hidden SSIDs. More 'ssid' parameters can " +-"be\n" +-"given. Note that this command does not show the APs,\n" +-"use 'nmcli device wifi list' for that.\n" ++"NetworkManager が直ちに利用可能なアクセスポイントを再スキャンすることをリクエ" ++"ストします。\n" ++"\n" ++"NetworkManager は定期的に Wi-Fi ネットワークをスキャンしますが、\n" ++"スキャンを手動で開始することが便利な場合もあります。'ssid' を使用すると特定" ++"の\n" ++"SSID をスキャンすることができ、非表示 SSID の AP で便利です。複数の 'ssid' パ" ++"ラメーターを使用することが可能です\n" ++"このコマンドは AP を表示せず、\n" ++"それには 'nmcli device wifi list' を使用することに留意してください。\n" + "\n" + + #: ../clients/cli/devices.c:484 +@@ -4235,9 +4276,9 @@ msgid "" + "used to list neighbors for a particular interface.\n" + "\n" + msgstr "" +-"使い方: nmcli device lldp { 引数 | help }\n" ++"使い方: nmcli device lldp { ARGUMENTS | help }\n" + "\n" +-"引数 := [list [ifname ]]\n" ++"ARGUMENTS := [list [ifname ]]\n" + "\n" + "LLDP を介して検出された近接デバイスを一覧表示します。'ifname' オプションを使" + "用すると、\n" +@@ -4265,14 +4306,13 @@ msgid "Error: not all devices found." + msgstr "エラー: 一部のデバイスが見つかりません。" + + #: ../clients/cli/devices.c:641 +-#, fuzzy + msgid "No interface specified" +-msgstr "エラー: インターフェースが指定されていません。" ++msgstr "インターフェースが指定されていません" + + #: ../clients/cli/devices.c:660 +-#, fuzzy, c-format ++#, c-format + msgid "Device '%s' not found" +-msgstr "エラー: デバイス'%s' が見つかりません" ++msgstr "デバイス'%s' が見つかりません" + + #: ../clients/cli/devices.c:746 ../clients/cli/devices.c:898 + msgid "(none)" +@@ -4429,9 +4469,9 @@ msgid "Device '%s' successfully removed.\n" + msgstr "デバイス '%s' が正常に削除されました。\n" + + #: ../clients/cli/devices.c:1980 ../clients/cli/devices.c:2050 +-#, fuzzy, c-format ++#, c-format + msgid "Error: Reapplying connection to device '%s' (%s) failed: %s" +-msgstr "エラー: デバイス '%s' (%s) への接続の再適用に失敗しました: %s\n" ++msgstr "エラー: デバイス '%s' (%s) への接続の再適用に失敗しました: %s" + + #: ../clients/cli/devices.c:1990 ../clients/cli/devices.c:2059 + #, c-format +@@ -4439,9 +4479,10 @@ msgid "Connection successfully reapplied to device '%s'.\n" + msgstr "接続がデバイス '%s' に正常に再適用されました。\n" + + #: ../clients/cli/devices.c:2084 +-#, fuzzy, c-format ++#, c-format + msgid "Error: Reading applied connection from device '%s' (%s) failed: %s" +-msgstr "エラー: デバイス '%s' (%s) への接続の再適用に失敗しました: %s\n" ++msgstr "" ++"エラー: デバイス '%s' (%s) からの適用済み接続の読み取りに失敗しました: %s" + + #: ../clients/cli/devices.c:2148 + #, c-format +@@ -5185,71 +5226,61 @@ msgid "Networkmanager is now in the '%s' state\n" + msgstr "Networkmanager の状態は '%s' です\n" + + #: ../clients/cli/general.c:1103 +-#, fuzzy + msgid "connection available" +-msgstr "接続に失敗" ++msgstr "接続が利用可能" + + #: ../clients/cli/general.c:1105 +-#, fuzzy + msgid "connections available" +-msgstr "接続に失敗" ++msgstr "接続が利用可能" + + #: ../clients/cli/general.c:1123 +-#, fuzzy + msgid "autoconnect" +-msgstr "接続済み" ++msgstr "自動接続" + + #: ../clients/cli/general.c:1125 +-#, fuzzy + msgid "fw missing" +-msgstr "データがありません" ++msgstr "fw がありません" + + #: ../clients/cli/general.c:1130 +-#, fuzzy + msgid "plugin missing" +-msgstr "データがありません" ++msgstr "プラグインがありません" + + #: ../clients/cli/general.c:1135 + msgid "sw" +-msgstr "" ++msgstr "sw" + + #: ../clients/cli/general.c:1137 +-#, fuzzy + msgid "hw" +-msgstr "表示する" ++msgstr "hw" + + #: ../clients/cli/general.c:1142 + msgid "iface" +-msgstr "" ++msgstr "iface" + + #: ../clients/cli/general.c:1145 +-#, fuzzy + msgid "port" +-msgstr "ポータル" ++msgstr "ポート" + + #: ../clients/cli/general.c:1148 + msgid "mtu" +-msgstr "" ++msgstr "mtu" + + #: ../clients/cli/general.c:1165 +-#, fuzzy + msgid "master" +-msgstr "マスター: " ++msgstr "マスター" + + #: ../clients/cli/general.c:1171 +-#, fuzzy + msgid "ip4 default" +-msgstr "デフォルト" ++msgstr "ip4 デフォルト" + + #: ../clients/cli/general.c:1173 +-#, fuzzy + msgid "ip6 default" +-msgstr "デフォルト" ++msgstr "ip6 デフォルト" + + #: ../clients/cli/general.c:1253 +-#, fuzzy, c-format ++#, c-format + msgid "%s VPN connection" +-msgstr "VPN 接続" ++msgstr "%s VPN 接続" + + #: ../clients/cli/general.c:1323 + #, c-format +@@ -5261,6 +5292,13 @@ msgid "" + "Consult nmcli(1) and nmcli-examples(5) manual pages for complete usage " + "details.\n" + msgstr "" ++"既知のデバイスに関する情報を取得するには、\"nmcli device show\" を使用しま" ++"す。\n" ++"アクティブな接続プロファイルの概要を取得するには、\"nmcli connection show\" " ++"を使用します。\n" ++"\n" ++"使用方法の詳細情報については、nmcli(1) と nmcli-examples(5) の man ページを参" ++"照してください。\n" + + #: ../clients/cli/general.c:1344 + #, c-format +@@ -5272,7 +5310,7 @@ msgid "Networkmanager is not running (waiting for it)\n" + msgstr "Networkmanager が実行されていません (待機中)\n" + + #: ../clients/cli/nmcli.c:171 +-#, fuzzy, c-format ++#, c-format + msgid "" + "Usage: nmcli [OPTIONS] OBJECT { COMMAND | help }\n" + "\n" +@@ -5304,35 +5342,34 @@ msgid "" + " m[onitor] monitor NetworkManager changes\n" + "\n" + msgstr "" +-"使い方: %s [オプション] オブジェクト { コマンド | help }\n" ++"使い方: nmcli [OPTIONS] OBJECT { COMMAND | help }\n" + "\n" +-"オプション\n" +-" -t[erse] 簡潔な出力\n" +-" -p[retty] 人間が読みやすい出力\n" +-" -m[ode] tabular|multiline 出力モード\n" +-" -c[olors] auto|yes|no 出力で色を使用するかどうか\n" +-" -f[ields] |all|common 出力フィールドの指定\n" +-" -e[scape] yes|no 値内のコラムセパレーターをエス" +-"ケープ\n" +-" -n[ocheck] nmcli および NetworkManager の" +-"バージョンをチェックしない\n" +-" -a[sk] 足りないパラメーターを問い合わせ" +-"る\n" +-" -s[how-secrets] パスワードの表示を許可\n" +-" -w[ait] 動作の完了を待機する場合のタイム" +-"アウトを設定\n" +-" -v[ersion] プログラムバージョンを表示\n" +-" -h[elp] このヘルプを出力\n" +-"\n" +-"オブジェクト\n" +-" g[eneral] NetworkManager の全般的な状態と動作\n" +-" n[etworking] 全体的なネットワーク制御\n" +-" r[adio] NetworkManager ラジオスイッチ\n" +-" c[onnection] NetworkManager の接続\n" +-" d[evice] NetworkManager で管理しているデバイス\n" +-" a[gent] NetworkManager シークレットエージェントまたは polkit エー" +-"ジェント\n" +-" m[onitor] NetworkManager の変更を監視\n" ++"OPTIONS\n" ++" -t[erse] terse output\n" ++" -p[retty] pretty output\n" ++" -m[ode] tabular|multiline output mode\n" ++" -c[olors] auto|yes|no whether to use colors in " ++"output\n" ++" -f[ields] |all|common specify fields to output\n" ++" -g[et-values] |all|common shortcut for -m tabular -t -" ++"f\n" ++" -e[scape] yes|no escape columns separators " ++"in values\n" ++" -a[sk] ask for missing parameters\n" ++" -s[how-secrets] allow displaying passwords\n" ++" -w[ait] set timeout waiting for " ++"finishing operations\n" ++" -v[ersion] show program version\n" ++" -h[elp] print this help\n" ++"\n" ++"OBJECT\n" ++" g[eneral] NetworkManager's general status and operations\n" ++" n[etworking] overall networking control\n" ++" r[adio] NetworkManager radio switches\n" ++" c[onnection] NetworkManager's connections\n" ++" d[evice] devices managed by NetworkManager\n" ++" a[gent] NetworkManager secret agent or polkit agent\n" ++" m[onitor] monitor NetworkManager changes\n" + "\n" + + #: ../clients/cli/nmcli.c:249 +@@ -5388,11 +5425,9 @@ msgid "Error: Option '%s' is unknown, try 'nmcli -help'." + msgstr "エラー: オプション '%s' は不明です、'nmcli -help' を確認してください。" + + #: ../clients/cli/nmcli.c:433 ../clients/cli/nmcli.c:440 +-#, fuzzy, c-format ++#, c-format + msgid "Error: nmcli terminated by signal %s (%d)\n" +-msgstr "" +-"\n" +-"Error: nmcli がシグナル %s (%d) で終了しました\n" ++msgstr "Error: nmcli がシグナル %s (%d) で終了しました\n" + + #: ../clients/cli/nmcli.c:538 + msgid "Success" +@@ -5712,9 +5747,9 @@ msgstr "" + " ab 4 55 0xa6 ea 3a 74 C2\n" + + #: ../clients/cli/settings.c:2243 +-#, fuzzy, c-format ++#, c-format + msgid "invalid option '%s', use a combination of [%s]" +-msgstr "無効なオプション '%s' です。[%s] のいずれかを使用してください" ++msgstr "無効なオプション '%s' です。[%s] の組み合わせを使用してください" + + #: ../clients/cli/settings.c:2411 + #, c-format +@@ -5748,9 +5783,9 @@ msgstr "" + "例: mode=2,miimon=120\n" + + #: ../clients/cli/settings.c:2486 +-#, fuzzy, c-format ++#, c-format + msgid "%d (forever)" +-msgstr "%d (no)" ++msgstr "%d (forever)" + + #. Don't allow setting type unless the connection is brand new. + #. * Just because it's a bad idea and the user wouldn't probably want that. +@@ -5760,9 +5795,9 @@ msgstr "%d (no)" + #. * nmc_setting_set_property() is called only after the property + #. * we're setting (type) has been removed. + #: ../clients/cli/settings.c:2542 +-#, fuzzy, c-format ++#, c-format + msgid "Can not change the connection type" +-msgstr "不明な/未処理の Bluetooth 接続タイプ" ++msgstr "接続タイプを変更できません" + + #: ../clients/cli/settings.c:2566 ../libnm-core/nm-setting-connection.c:887 + #: ../libnm-util/nm-setting-connection.c:791 +@@ -6121,9 +6156,9 @@ msgid "'%s' is not a valid channel; use <1-13>" + msgstr "'%s' は有効なチャンネルではありません; <1-13> を使用してください" + + #: ../clients/cli/settings.c:4563 +-#, fuzzy, c-format ++#, c-format + msgid "invalid method '%s', use one of %s" +-msgstr "無効なモード '%s' です。%s のいずれかを使用してください" ++msgstr "無効なメソッド '%s' です。%s のいずれかを使用してください" + + #: ../clients/cli/settings.c:4628 + #, c-format +@@ -6462,20 +6497,18 @@ msgid "Wired 802.1X authentication" + msgstr "有線 802.1X の認証" + + #: ../clients/common/nm-secret-agent-simple.c:475 +-#, fuzzy, c-format ++#, c-format + msgid "Secrets are required to access the wired network '%s'" +-msgstr "" +-"ワイヤレスネットワーク '%s' へのアクセスにはパスワードまたは暗号キーが必要で" +-"す。" ++msgstr "有線ネットワーク '%s' へのアクセスにはシークレットが必要です" + + #: ../clients/common/nm-secret-agent-simple.c:480 + msgid "DSL authentication" + msgstr "DSL 認証" + + #: ../clients/common/nm-secret-agent-simple.c:481 +-#, fuzzy, c-format ++#, c-format + msgid "Secrets are required for the DSL connection '%s'" +-msgstr "タイプ '%s' の接続には設定が必要です" ++msgstr "DSL 接続 '%s' にはシークレットが必要です" + + #: ../clients/common/nm-secret-agent-simple.c:489 + msgid "PIN code required" +@@ -6506,50 +6539,50 @@ msgstr "'%s' への接続にはパスワードが必要です。" + #: ../clients/common/nm-secret-agent-simple.c:515 + #, c-format + msgid "Secrets are required to access the MACsec network '%s'" +-msgstr "" ++msgstr "MACsec ネットワーク '%s' へのアクセスにはシークレットが必要です" + + #: ../clients/common/nm-secret-agent-simple.c:519 + msgid "MACsec PSK authentication" +-msgstr "" ++msgstr "MACsec PSK 認証" + + #: ../clients/common/nm-secret-agent-simple.c:528 + msgid "MACsec EAP authentication" +-msgstr "" ++msgstr "MACsec EAP 認証" + + #: ../clients/common/nm-secret-agent-simple.c:568 + msgid "VPN password required" +-msgstr "PIN パスワードが必要です" ++msgstr "VPN パスワードが必要です" + + #: ../clients/common/nm-vpn-helpers.c:48 +-#, fuzzy, c-format ++#, c-format + msgid "unknown VPN plugin \"%s\"" +-msgstr "プラグイン %s をロードできません" ++msgstr "不明な VPNプラグイン '%s'" + + #: ../clients/common/nm-vpn-helpers.c:59 +-#, fuzzy, c-format ++#, c-format + msgid "cannot load legacy-only VPN plugin \"%s\" for \"%s\"" +-msgstr "プラグイン %s をロードできません" ++msgstr "'%s' 向けレガシー専用 VPN プラグイン '%s' を読み込めません" + + #: ../clients/common/nm-vpn-helpers.c:64 +-#, fuzzy, c-format ++#, c-format + msgid "" + "cannot load VPN plugin \"%s\" due to missing \"%s\". Missing client plugin?" +-msgstr "'%s' で VPN プラグインをロードできません: 不明なプラグイン名" ++msgstr "" ++"'%s' がないため VPN プラグイン '%s' を読み込めません。クライアントプラグイン" ++"がありませんか?" + + #: ../clients/common/nm-vpn-helpers.c:69 +-#, fuzzy, c-format ++#, c-format + msgid "failed to load VPN plugin \"%s\": %s" +-msgstr "エラー: VPN プラグインのロードに失敗しました: %s。" ++msgstr "VPN プラグイン '%s' の読み込みに失敗しました: %s" + + #: ../clients/common/nm-vpn-helpers.c:121 +-#, fuzzy + msgid "Certificate password" +-msgstr "プライベートキーのパスワード" ++msgstr "証明書のパスワード" + + #: ../clients/common/nm-vpn-helpers.c:122 +-#, fuzzy + msgid "HTTP proxy password" +-msgstr "グループパスワード" ++msgstr "HTTP プロキシのパスワード" + + #: ../clients/common/nm-vpn-helpers.c:125 + #: ../clients/common/nm-vpn-helpers.c:128 +@@ -6574,14 +6607,14 @@ msgid "Connecting" + msgstr "接続中" + + #: ../clients/nm-online.c:189 +-#, fuzzy, c-format ++#, c-format + msgid "Error: timeout creating NMClient object\n" +-msgstr "エラー: NMClient オブジェクトを作成できませんでした: %s。" ++msgstr "エラー: NMClient オブジェクトの作成でタイムアウト\n" + + #: ../clients/nm-online.c:209 +-#, fuzzy, c-format ++#, c-format + msgid "Error: Could not create NMClient object: %s\n" +-msgstr "エラー: NMClient オブジェクトを作成できませんでした: %s。" ++msgstr "エラー: NMClient オブジェクトを作成できませんでした: %s\n" + + #: ../clients/nm-online.c:235 + msgid "" +@@ -6740,14 +6773,13 @@ msgid "VLAN connection %d" + msgstr "VLAN 接続 %d" + + #: ../clients/tui/nm-editor-utils.c:225 ../clients/tui/nmt-page-ip-tunnel.c:136 +-#, fuzzy + msgid "IP tunnel" + msgstr "IP トンネル" + + #: ../clients/tui/nm-editor-utils.c:229 +-#, fuzzy, c-format ++#, c-format + msgid "IP tunnel connection %d" +-msgstr "IP トンネル接続" ++msgstr "IP トンネル接続 %d" + + #: ../clients/tui/nm-editor-utils.c:244 + #, c-format +@@ -6792,7 +6824,6 @@ msgid "Could not create editor for invalid connection '%s'." + msgstr "無効な接続 '%s' のエディタを作成できませんでした。" + + #: ../clients/tui/nmt-editor.c:112 +-#, fuzzy + msgid "Edit Connection" + msgstr "接続の編集" + +@@ -7061,39 +7092,39 @@ msgstr "この接続には IPv6 アドレス設定が必要になります" + #. The order must match the NM_IP_TUNNEL_MODE_* enum + #: ../clients/tui/nmt-page-ip-tunnel.c:78 + msgid "IPIP" +-msgstr "" ++msgstr "IPIP" + + #: ../clients/tui/nmt-page-ip-tunnel.c:79 + msgid "GRE" +-msgstr "" ++msgstr "GRE" + + #: ../clients/tui/nmt-page-ip-tunnel.c:80 + msgid "SIT" +-msgstr "" ++msgstr "SIT" + + #: ../clients/tui/nmt-page-ip-tunnel.c:81 + msgid "ISATAP" +-msgstr "" ++msgstr "ISATAP" + + #: ../clients/tui/nmt-page-ip-tunnel.c:82 + msgid "VTI" +-msgstr "" ++msgstr "VTI" + + #: ../clients/tui/nmt-page-ip-tunnel.c:83 + msgid "IP6IP6" +-msgstr "" ++msgstr "IP6IP6" + + #: ../clients/tui/nmt-page-ip-tunnel.c:84 + msgid "IPIP6" +-msgstr "" ++msgstr "IPIP6" + + #: ../clients/tui/nmt-page-ip-tunnel.c:85 + msgid "IP6GRE" +-msgstr "" ++msgstr "IP6GRE" + + #: ../clients/tui/nmt-page-ip-tunnel.c:86 + msgid "VTI6" +-msgstr "" ++msgstr "VTI6" + + #: ../clients/tui/nmt-page-ip-tunnel.c:150 ../clients/tui/nmt-page-vlan.c:99 + msgid "Parent" +@@ -7101,20 +7132,19 @@ msgstr "親" + + #: ../clients/tui/nmt-page-ip-tunnel.c:157 + msgid "Local IP" +-msgstr "" ++msgstr "ローカル IP" + + #: ../clients/tui/nmt-page-ip-tunnel.c:163 +-#, fuzzy + msgid "Remote IP" +-msgstr "リモート: " ++msgstr "リモート IP" + + #: ../clients/tui/nmt-page-ip-tunnel.c:169 + msgid "Input key" +-msgstr "" ++msgstr "入力キー" + + #: ../clients/tui/nmt-page-ip-tunnel.c:176 + msgid "Output key" +-msgstr "" ++msgstr "出力キー" + + #: ../clients/tui/nmt-page-ppp.c:131 + msgid "PPP CONFIGURATION" +@@ -7392,7 +7422,7 @@ msgstr "終了" + + #: ../clients/tui/nmtui-connect.c:416 ../clients/tui/nmtui-edit.c:120 + msgid "Back" +-msgstr "" ++msgstr "戻る" + + #: ../clients/tui/nmtui-connect.c:439 + #, c-format +@@ -7965,7 +7995,7 @@ msgstr "無効なキー/証明書値パス \"%s\"" + #: ../libnm-core/nm-keyfile-reader.c:1030 + #, c-format + msgid "invalid PKCS#11 URI \"%s\"" +-msgstr "" ++msgstr "無効な PKCS#11 URI \"%s\"" + + #: ../libnm-core/nm-keyfile-reader.c:1068 + msgid "invalid key/cert value data:;base64, is not base64" +@@ -7989,9 +8019,9 @@ msgid "invalid parity value '%s'" + msgstr "無効なパリティー値 '%s'" + + #: ../libnm-core/nm-keyfile-reader.c:1298 +-#, fuzzy, c-format ++#, c-format + msgid "ignoring invalid team configuration: %s" +-msgstr "無効な %s ルートを無視: %s" ++msgstr "無効な team 設定を無視: %s" + + #: ../libnm-core/nm-keyfile-reader.c:1504 + #, c-format +@@ -8037,19 +8067,16 @@ msgid "binary data missing" + msgstr "バイナリーデータがありません" + + #: ../libnm-core/nm-setting-8021x.c:500 +-#, fuzzy + msgid "URI not NUL terminated" +-msgstr "file:// URI が NUL で終了していません" ++msgstr "URI が NUL でないため終了しました" + + #: ../libnm-core/nm-setting-8021x.c:509 +-#, fuzzy + msgid "URI is empty" +-msgstr "file:// URI が空です" ++msgstr "URI が空です" + + #: ../libnm-core/nm-setting-8021x.c:517 +-#, fuzzy + msgid "URI is not valid UTF-8" +-msgstr "file:// URI が有効な UTF-8 ではありません" ++msgstr "URI が有効な UTF-8 ではありません" + + #: ../libnm-core/nm-setting-8021x.c:753 ../libnm-util/nm-setting-8021x.c:639 + msgid "CA certificate must be in X.509 format" +@@ -8120,7 +8147,7 @@ msgstr "証明書が無効です: %s" + #: ../libnm-core/nm-setting-8021x.c:3198 + #, c-format + msgid "password is not supported when certificate is not on a PKCS#11 token" +-msgstr "" ++msgstr "証明書が PKCS#11 トークンにない場合は、パスワードはサポートされません" + + #: ../libnm-core/nm-setting-8021x.c:3235 + #: ../libnm-core/nm-setting-bluetooth.c:129 +@@ -8178,9 +8205,8 @@ msgid "'%s' is not a valid value for the property" + msgstr "'%s' は有効なプロパティの値ではありません" + + #: ../libnm-core/nm-setting-8021x.c:3290 +-#, fuzzy + msgid "invalid auth flags" +-msgstr "無効なルート: %s" ++msgstr "無効な auth フラグ" + + #: ../libnm-core/nm-setting-bluetooth.c:168 + #, c-format +@@ -8213,9 +8239,9 @@ msgid "'%s=%s' is incompatible with '%s > 0'" + msgstr "'%s=%s' は '%s > 0' とは互換性がありません" + + #: ../libnm-core/nm-setting-bond.c:629 +-#, fuzzy, c-format ++#, c-format + msgid "'%s' is not a valid for '%s' option: %s" +-msgstr "'%s' は '%s' オプション用の有効な IPv4 アドレスではありません" ++msgstr "'%s' は '%s' オプションに無効です: %s" + + #: ../libnm-core/nm-setting-bond.c:640 ../libnm-util/nm-setting-bond.c:577 + #, c-format +@@ -8342,11 +8368,9 @@ msgstr "" + "'%s' に設定する必要があります" + + #: ../libnm-core/nm-setting-connection.c:1077 +-#, fuzzy, c-format ++#, c-format + msgid "A slave connection with '%s' set to '%s' cannot have a '%s' setting" +-msgstr "" +-"'%s' が設定され、ポートタイプが '%s' のスレーブ接続を検出します。'%s' は " +-"'%s' に設定する必要があります" ++msgstr "'%s' に設定されている '%s' とのスレーブ接続には、'%s' 設定ができません" + + #: ../libnm-core/nm-setting-dcb.c:522 ../libnm-util/nm-setting-dcb.c:594 + msgid "flags invalid" +@@ -8439,12 +8463,12 @@ msgid "Missing IPv6 address" + msgstr "不明な IPv6 アドレス" + + #: ../libnm-core/nm-setting-ip-config.c:138 +-#, fuzzy, c-format ++#, c-format + msgid "Invalid IPv4 address '%s'" + msgstr "無効な IPv4 アドレス '%s'" + + #: ../libnm-core/nm-setting-ip-config.c:138 +-#, fuzzy, c-format ++#, c-format + msgid "Invalid IPv6 address '%s'" + msgstr "無効な IPv6 アドレス '%s'" + +@@ -8464,41 +8488,40 @@ msgid "Invalid routing metric '%s'" + msgstr "無効なルーティングメトリック '%s'" + + #: ../libnm-core/nm-setting-ip-config.c:1260 +-#, fuzzy + msgid "unknown attribute" +-msgstr "不明な設定名" ++msgstr "不明な属性" + + #: ../libnm-core/nm-setting-ip-config.c:1270 +-#, fuzzy, c-format ++#, c-format + msgid "invalid attribute type '%s'" +-msgstr "無効なパリティー値 '%s'" ++msgstr "無効な属性タイプ '%s'" + + #: ../libnm-core/nm-setting-ip-config.c:1281 + #, c-format + msgid "attribute is not valid for a IPv4 route" +-msgstr "" ++msgstr "属性は IPv4 ルートには無効です" + + #: ../libnm-core/nm-setting-ip-config.c:1282 + #, c-format + msgid "attribute is not valid for a IPv6 route" +-msgstr "" ++msgstr "属性は IPv6 ルートには無効です" + + #: ../libnm-core/nm-setting-ip-config.c:1298 + #: ../libnm-core/nm-setting-ip-config.c:1322 +-#, fuzzy, c-format ++#, c-format + msgid "'%s' is not a valid IPv4 address" +-msgstr "'%s' は有効な IP アドレスではありません" ++msgstr "'%s' は有効な IPv4 アドレスではありません" + + #: ../libnm-core/nm-setting-ip-config.c:1299 + #: ../libnm-core/nm-setting-ip-config.c:1323 +-#, fuzzy, c-format ++#, c-format + msgid "'%s' is not a valid IPv6 address" +-msgstr "'%s' は有効な IP アドレスではありません" ++msgstr "'%s' は有効な IPv6 アドレスではありません" + + #: ../libnm-core/nm-setting-ip-config.c:1313 +-#, fuzzy, c-format ++#, c-format + msgid "invalid prefix %s" +-msgstr "無効なルート: %s" ++msgstr "無効なプレフィックス %s" + + #: ../libnm-core/nm-setting-ip-config.c:2429 + #, c-format +@@ -8539,9 +8562,9 @@ msgid "%d. route cannot be a default route" + msgstr "%d. ルートをデフォルトルートにすることはできません" + + #: ../libnm-core/nm-setting-ip-config.c:2523 +-#, fuzzy, c-format ++#, c-format + msgid "a gateway is incompatible with '%s'" +-msgstr "'%s=%s' は '%s > 0' とは互換性がありません" ++msgstr "ゲートウェイは '%s' と互換性がありません" + + #: ../libnm-core/nm-setting-ip4-config.c:143 + #: ../libnm-core/nm-setting-ip6-config.c:167 +@@ -8577,32 +8600,29 @@ msgid "property cannot be set when dhcp-hostname is also set" + msgstr "dhcp-hostname も設定されている場合は、プロパティーを設定できません" + + #: ../libnm-core/nm-setting-ip4-config.c:235 +-#, fuzzy, c-format ++#, c-format + msgid "multiple addresses are not allowed for '%s=%s'" +-msgstr "このプロパティは '%s=%s' には許可されていません" ++msgstr "'%s=%s' では複数のアドレスは許可されていません" + + #: ../libnm-core/nm-setting-ip4-config.c:249 +-#, fuzzy + msgid "property should be TRUE when method is set to disabled" +-msgstr "プロパティータイプは '%s' に設定する必要があります" ++msgstr "メソッドが無効に設定されている場合は、プロパティーは TRUE にします" + + #: ../libnm-core/nm-setting-ip6-config.c:241 +-#, fuzzy + msgid "value is not a valid token" +-msgstr "値 '%s' は有効な UUID ではありません" ++msgstr "値 は有効なトークンではありません" + + #: ../libnm-core/nm-setting-ip6-config.c:252 +-#, fuzzy + msgid "only makes sense with EUI64 address generation mode" +-msgstr "IPv6 SLAAC アドレス生成モード" ++msgstr "EUI64 アドレス生成モードでのみ、意味が通じます" + + #: ../libnm-core/nm-setting-ip6-config.c:264 + msgid "token is not in canonical form" +-msgstr "" ++msgstr "トークンが正規形式ではありません" + + #: ../libnm-core/nm-setting-ip6-config.c:276 + msgid "property should be TRUE when method is set to ignore" +-msgstr "" ++msgstr "メソッドが ignore に設定されている場合は、プロパティーは TRUE にします" + + #: ../libnm-core/nm-setting-ip-tunnel.c:318 + #, c-format +@@ -8639,17 +8659,16 @@ msgstr "固定 TTL は、パス MTU 検出が有効な場合のみ許可され + + #: ../libnm-core/nm-setting-macsec.c:235 + msgid "the key is empty" +-msgstr "" ++msgstr "キーが空です" + + #: ../libnm-core/nm-setting-macsec.c:246 + #, c-format + msgid "the key must be %d characters" +-msgstr "" ++msgstr "キーは %d 文字にする必要があります" + + #: ../libnm-core/nm-setting-macsec.c:254 +-#, fuzzy + msgid "the key contains non-hexadecimal characters" +-msgstr "IV は 16進法でない数字を含んでいます。" ++msgstr "キーは 16進法でない文字が含まれています" + + #: ../libnm-core/nm-setting-macsec.c:291 ../libnm-core/nm-setting-vlan.c:634 + #: ../libnm-util/nm-setting-vlan.c:556 +@@ -8666,12 +8685,12 @@ msgstr "プロパティ、'%s:%s' いずれも指定されていません" + #: ../libnm-core/nm-setting-macsec.c:333 + #, c-format + msgid "EAP key management requires '%s' setting presence" +-msgstr "" ++msgstr "EAP キー管理には '%s' 設定が必要です" + + #: ../libnm-core/nm-setting-macsec.c:344 + #, c-format + msgid "invalid port %d" +-msgstr "" ++msgstr "無効なポート %d" + + #: ../libnm-core/nm-setting-macvlan.c:192 + msgid "non promiscuous operation is allowed only in passthru mode" +@@ -8703,34 +8722,34 @@ msgid "setting this property requires non-zero '%s' property" + msgstr "このプロパティを設定するにはゼロ以外の '%s' プロパティが必要です" + + #: ../libnm-core/nm-setting-proxy.c:163 +-#, fuzzy, c-format ++#, c-format + msgid "invalid proxy method" +-msgstr "無効な優先度マップ '%s'" ++msgstr "無効なプロキシメソッド" + + #: ../libnm-core/nm-setting-proxy.c:173 ../libnm-core/nm-setting-proxy.c:182 +-#, fuzzy, c-format ++#, c-format + msgid "this property is not allowed for method none" +-msgstr "このプロパティは '%s=%s' には許可されていません" ++msgstr "このプロパティはメソッド none には許可されていません" + + #: ../libnm-core/nm-setting-proxy.c:193 + #, c-format + msgid "the script is too large" +-msgstr "" ++msgstr "スクリプトが長すぎます" + + #: ../libnm-core/nm-setting-proxy.c:201 +-#, fuzzy, c-format ++#, c-format + msgid "the script is not valid utf8" +-msgstr "インデックス '%s' は無効です" ++msgstr "スクリプトは有効な utf8 ではありません" + + #: ../libnm-core/nm-setting-proxy.c:209 + #, c-format + msgid "the script lacks FindProxyForURL function" +-msgstr "" ++msgstr "スクリプトには FindProxyForURL 関数がありません" + + #: ../libnm-core/nm-setting-team.c:94 ../libnm-core/nm-setting-team-port.c:122 + #, c-format + msgid "team config exceeds size limit" +-msgstr "" ++msgstr "team 設定が制限サイズを超えています" + + #: ../libnm-core/nm-setting-tun.c:187 + #, c-format +@@ -8748,66 +8767,59 @@ msgid "'%s': invalid group ID" + msgstr "'%s': 無効なグループ ID" + + #: ../libnm-core/nm-setting-user.c:111 +-#, fuzzy + msgid "missing key" +-msgstr "不明な設定" ++msgstr "キーがみつかりません" + + #: ../libnm-core/nm-setting-user.c:117 +-#, fuzzy + msgid "key is too long" +-msgstr "エラー: ssid が長すぎます。" ++msgstr "キーが長すぎます" + + #: ../libnm-core/nm-setting-user.c:122 +-#, fuzzy + msgid "key must be UTF8" +-msgstr "パスワードは UTF-8 である必要があります" ++msgstr "キーは UTF-8 である必要があります" + + #: ../libnm-core/nm-setting-user.c:145 + msgid "key requires a '.' for a namespace" +-msgstr "" ++msgstr "キーはネームスペースに '.' が必要です" + + #: ../libnm-core/nm-setting-user.c:158 + msgid "key cannot contain \"..\"" +-msgstr "" ++msgstr "キーに \"..\" を含めることはできません" + + #: ../libnm-core/nm-setting-user.c:163 +-#, fuzzy + msgid "key contains invalid characters" +-msgstr "IV は 16進法でない数字を含んでいます。" ++msgstr "キーに無効な文字が含まれています" + + #: ../libnm-core/nm-setting-user.c:188 +-#, fuzzy + msgid "value is missing" +-msgstr "エラー: %s 引数がありません。" ++msgstr "値がありません" + + #: ../libnm-core/nm-setting-user.c:195 +-#, fuzzy + msgid "value is too large" +-msgstr "シークレット値が空でした" ++msgstr "値が長すぎます" + + #: ../libnm-core/nm-setting-user.c:201 +-#, fuzzy + msgid "value is not valid UTF8" +-msgstr "file:// URI が有効な UTF-8 ではありません" ++msgstr "値が有効な UTF-8 ではありません" + + #: ../libnm-core/nm-setting-user.c:338 + msgid "maximum number of user data entries reached" +-msgstr "" ++msgstr "ユーザーデータエントリーが最大数に達しました" + + #: ../libnm-core/nm-setting-user.c:379 +-#, fuzzy, c-format ++#, c-format + msgid "invalid key \"%s\": %s" +-msgstr "無効なルート: %s" ++msgstr "無効なキー '%s': %s" + + #: ../libnm-core/nm-setting-user.c:383 +-#, fuzzy, c-format ++#, c-format + msgid "invalid value for \"%s\": %s" +-msgstr "'%s' は有効な '%s' の値ではありません" ++msgstr "'%s' の無効な値: %s" + + #: ../libnm-core/nm-setting-user.c:398 + #, c-format + msgid "maximum number of user data entries reached (%u instead of %u)" +-msgstr "" ++msgstr "ユーザーデータエントリーが最大数に達しました (%u ではなく %u)" + + #: ../libnm-core/nm-setting-vlan.c:670 ../libnm-util/nm-setting-vlan.c:600 + #, c-format +@@ -8820,7 +8832,7 @@ msgstr "フラグが無効です" + + #: ../libnm-core/nm-setting-vlan.c:691 + msgid "vlan setting should have a ethernet setting as well" +-msgstr "" ++msgstr "vlan 設定にはイーサネット設定も必要です" + + #: ../libnm-core/nm-setting-vpn.c:460 + #, c-format +@@ -8865,9 +8877,9 @@ msgid "%d is greater than local port max %d" + msgstr "%d はローカルポートの最大 %d よりも大きいです" + + #: ../libnm-core/nm-setting-wired.c:632 ../libnm-util/nm-setting-wired.c:613 +-#, fuzzy, c-format ++#, c-format + msgid "'%s' is not a valid Ethernet port value" +-msgstr "'%s' は有効な Ethernet ポート値ではありません" ++msgstr "'%s' は有効なイーサネットポート値ではありません" + + #: ../libnm-core/nm-setting-wired.c:642 ../libnm-util/nm-setting-wired.c:623 + #, c-format +@@ -8889,16 +8901,15 @@ msgstr "Wake-on-LAN パスワードはマジックパケットモードでのみ + + #: ../libnm-core/nm-setting-wired.c:770 + msgid "when link autonegotiation is enabled no duplex value is accepted" +-msgstr "" ++msgstr "リンク autonegotiation が有効になっていると、二重値は承認されません" + + #: ../libnm-core/nm-setting-wired.c:778 + msgid "when link autonegotiation is enabled speed should be 0" +-msgstr "" ++msgstr "リンク autonegotiation が有効になっている場合は、スピードは 0 にします" + + #: ../libnm-core/nm-setting-wired.c:788 +-#, fuzzy + msgid "both speed and duplex are required for static link configuration" +-msgstr "VPN サービスは無効な設定を返しました" ++msgstr "スピードと二重の両方が静的リンク設定に必要です" + + #: ../libnm-core/nm-setting-wireless-security.c:882 + #: ../libnm-util/nm-setting-wireless-security.c:912 +@@ -8948,14 +8959,14 @@ msgid "'%s' requires setting '%s' property" + msgstr "'%s' の場合は '%s' プロパティーを設定する必要があります" + + #: ../libnm-core/nm-setting-wireless.c:883 +-#, fuzzy, c-format ++#, c-format + msgid "invalid value" +-msgstr "無効なキー/証明書値" ++msgstr "無効な値" + + #: ../libnm-core/nm-setting-wireless.c:904 + #, c-format + msgid "conflicting value of mac-address-randomization and cloned-mac-address" +-msgstr "" ++msgstr "mac-address-randomization と cloned-mac-address の値の競合" + + #: ../libnm-core/nm-setting.c:838 + #, c-format +@@ -9001,9 +9012,9 @@ msgid "not a file (%s)" + msgstr "ファイルではありません (%s)" + + #: ../libnm-core/nm-utils.c:2464 +-#, fuzzy, c-format ++#, c-format + msgid "invalid file owner %d for %s" +-msgstr "'%s' は無効なフィールドです; 許可されているのは次のフィールドです: %s" ++msgstr "'%s' の無効なファイル所有者 %d" + + #: ../libnm-core/nm-utils.c:2475 + #, c-format +@@ -9041,94 +9052,91 @@ msgid "Could not find \"%s\" binary" + msgstr "\"%s\" バイナリーを見つけることができませんでした" + + #: ../libnm-core/nm-utils.c:3665 +-#, fuzzy, c-format ++#, c-format + msgid "not a valid ethernet MAC address for mask at position %lld" +-msgstr "'%s' は '%s' オプション用の有効な IPv4 アドレスではありません" ++msgstr "%lld の場所でマスク用に有効なイーサネット MAC アドレスではありません" + + #: ../libnm-core/nm-utils.c:3680 + #, c-format + msgid "not a valid ethernet MAC address #%u at position %lld" +-msgstr "" ++msgstr "%lld の場所で有効なイーサネット MAC アドレス #%u ではありません" + + #: ../libnm-core/nm-utils.c:3714 +-#, fuzzy + msgid "interface name is too short" +-msgstr "インターフェース名 [*]: " ++msgstr "インターフェース名が短すぎます" + + #: ../libnm-core/nm-utils.c:3720 + msgid "interface name is longer than 15 characters" +-msgstr "" ++msgstr "インターフェース名が 15 文字を超えています" + + #: ../libnm-core/nm-utils.c:3726 +-#, fuzzy + msgid "interface name is reserved" +-msgstr "インターフェース名と UUID が’必要です\n" ++msgstr "インターフェース名が予約されています" + + #: ../libnm-core/nm-utils.c:3733 + msgid "interface name contains an invalid character" +-msgstr "" ++msgstr "インターフェース名に無効な文字が含まれています" + + #: ../libnm-core/nm-utils.c:4534 ../libnm-core/nm-utils.c:4668 + msgid "value is NULL" +-msgstr "" ++msgstr "値が NULL です" + + #: ../libnm-core/nm-utils.c:4534 ../libnm-core/nm-utils.c:4668 +-#, fuzzy + msgid "value is empty" +-msgstr "シークレット値が空でした" ++msgstr "値が空です" + + #: ../libnm-core/nm-utils.c:4543 +-#, fuzzy, c-format ++#, c-format + msgid "invalid JSON at position %d (%s)" +-msgstr "無効なオプション '%s'" ++msgstr "%d (%s) で無効な JSON" + + #: ../libnm-core/nm-utils.c:4555 ../libnm-core/nm-utils.c:4687 + msgid "is not a JSON object" +-msgstr "" ++msgstr "JSON オブジェクトではありません" + + #: ../libnm-core/nm-utils.c:4657 + msgid "not valid utf-8" +-msgstr "" ++msgstr "utf-8 ではありません" + + #: ../libnm-core/nm-utils.c:4782 ../libnm-core/nm-utils.c:4800 + #, c-format + msgid "unterminated escape sequence" +-msgstr "" ++msgstr "未終了のエスケープシーケンス" + + #: ../libnm-core/nm-utils.c:4810 + #, c-format + msgid "missing key-value separator '%c'" +-msgstr "" ++msgstr "キー-値のセパレーター '%c' がありません" + + #: ../libnm-core/nm-utils.c:4827 +-#, fuzzy, c-format ++#, c-format + msgid "unknown attribute '%s'" +-msgstr "不明なデバイス '%s' です。" ++msgstr "不明な属性 '%s'" + + #: ../libnm-core/nm-utils.c:4837 +-#, fuzzy, c-format ++#, c-format + msgid "invalid uint32 value '%s' for attribute '%s'" +-msgstr "無効なオプション '%s'、またはその値 '%s' です" ++msgstr "属性 '%s' の無効な uint32 値 '%s'" + + #: ../libnm-core/nm-utils.c:4846 +-#, fuzzy, c-format ++#, c-format + msgid "invalid uint8 value '%s' for attribute '%s'" +-msgstr "無効なオプション '%s'、またはその値 '%s' です" ++msgstr "属性 '%s' の無効な uint8 値 '%s'" + + #: ../libnm-core/nm-utils.c:4859 +-#, fuzzy, c-format ++#, c-format + msgid "invalid boolean value '%s' for attribute '%s'" +-msgstr "無効なオプション '%s'、またはその値 '%s' です" ++msgstr "属性 '%s' の無効なブール値 '%s'" + + #: ../libnm-core/nm-utils.c:4867 + #, c-format + msgid "unsupported attribute '%s' of type '%s'" +-msgstr "" ++msgstr "タイプ '%s' のサポートされていない属性 '%s'" + + #: ../libnm-core/nm-vpn-editor-plugin.c:296 +-#, fuzzy, c-format ++#, c-format + msgid "cannot load plugin \"%s\": %s" +-msgstr "プラグイン %s をロードできません" ++msgstr "プラグイン '%s' を読み込めません: %s" + + #: ../libnm-core/nm-vpn-editor-plugin.c:307 + #, c-format +@@ -9389,9 +9397,8 @@ msgid "" + msgstr "デバイスには接続に必要な Bluetooth 機能がありません。" + + #: ../libnm/nm-device-dummy.c:46 +-#, fuzzy + msgid "The connection was not a dummy connection." +-msgstr "接続はモデム接続ではありませんでした。" ++msgstr "接続はダミー接続ではありませんでした。" + + #: ../libnm/nm-device-dummy.c:53 ../libnm/nm-device-generic.c:97 + msgid "The connection did not specify an interface name." +@@ -9406,9 +9413,9 @@ msgid "The connection and device differ in S390 subchannels." + msgstr "接続とデバイスは S390 サブチャネルで異なります。" + + #: ../libnm/nm-device-ethernet.c:236 +-#, fuzzy, c-format ++#, c-format + msgid "Invalid device MAC address %s." +-msgstr "無効なデバイス MAC アドレスです。" ++msgstr "無効なデバイス MAC アドレス %s。" + + #: ../libnm/nm-device-ethernet.c:241 + msgid "The MACs of the device and the connection do not match." +@@ -9516,11 +9523,11 @@ msgstr "接続は WiMAX 接続ではありませんでした。" + + #: ../libnm/nm-device.c:1651 + msgid "MACsec" +-msgstr "" ++msgstr "MACsec" + + #: ../libnm/nm-device.c:1653 + msgid "Dummy" +-msgstr "" ++msgstr "ダミー" + + #: ../libnm/nm-device.c:2544 + #, c-format +@@ -9555,16 +9562,12 @@ msgstr "" + "れます" + + #: ../data/org.freedesktop.NetworkManager.policy.in.in.h:3 +-#, fuzzy + msgid "Reload NetworkManager configuration" +-msgstr "NetworkManager の設定を表示して終了する" ++msgstr "NetworkManager 設定をリロード" + + #: ../data/org.freedesktop.NetworkManager.policy.in.in.h:4 +-#, fuzzy + msgid "System policy prevents reloading NetworkManager" +-msgstr "" +-"システムポリシーによりシステムのネットワーキングの有効化または無効化が阻止さ" +-"れます" ++msgstr "システムポリシーにより NetworkManager のリロードが回避されます" + + #: ../data/org.freedesktop.NetworkManager.policy.in.in.h:5 + msgid "" +@@ -9674,23 +9677,21 @@ msgstr "システムポリシーにより永続的なグローバル DNS 設定 + + #: ../data/org.freedesktop.NetworkManager.policy.in.in.h:27 + msgid "Perform a checkpoint or rollback of interfaces configuration" +-msgstr "" ++msgstr "インターフェース設定のチェックポイントまたはロールバックを実行" + + #: ../data/org.freedesktop.NetworkManager.policy.in.in.h:28 +-#, fuzzy + msgid "System policy prevents the creation of a checkpoint or its rollback" +-msgstr "システムポリシーにより永続的なシステムのホスト名の修正が阻止されます" ++msgstr "" ++"システムポリシーによりチェックポイントまたはそのロールバックの作成が回避され" ++"ます" + + #: ../data/org.freedesktop.NetworkManager.policy.in.in.h:29 +-#, fuzzy + msgid "Enable or disable device statistics" +-msgstr "Wi-Fi デバイスを有効または無効にする" ++msgstr "デバイスの統計値を有効または無効にする" + + #: ../data/org.freedesktop.NetworkManager.policy.in.in.h:30 +-#, fuzzy + msgid "System policy prevents enabling or disabling device statistics" +-msgstr "" +-"システムポリシーにより Wi-Fi デバイスの有効化または無効化が阻止されます" ++msgstr "システムポリシーによりデバイス統計値の有効化または無効化が阻止されます" + + #: ../shared/nm-utils/nm-shared-utils.c:312 + #, c-format +@@ -9913,9 +9914,8 @@ msgid "Bridge connection" + msgstr "ブリッジ接続" + + #: ../src/devices/nm-device-dummy.c:70 +-#, fuzzy + msgid "Dummy connection" +-msgstr "ADSL 接続" ++msgstr "ダミー接続" + + #: ../src/devices/nm-device-ethernet.c:1435 + msgid "PPPoE connection" +@@ -10173,9 +10173,8 @@ msgid "Connection UUID" + msgstr "接続 UUID" + + #: ../src/nm-iface-helper.c:293 +-#, fuzzy + msgid "Connection Token for Stable IDs" +-msgstr "接続プロファイルの詳細" ++msgstr "安定 ID の接続トークン" + + #: ../src/nm-iface-helper.c:294 + msgid "Whether to manage IPv6 SLAAC" +@@ -10281,16 +10280,3 @@ msgstr "不明なログレベル '%s'" + #, c-format + msgid "Unknown log domain '%s'" + msgstr "不明なログドメイン '%s'" +- +-#, fuzzy +-#~ msgid "unrecognized option '%s'" +-#~ msgstr "無効なオプション '%s'" +- +-#~ msgid "Option '--terse' requires specifying '--fields'" +-#~ msgstr "オプション '--terse' には '--fields' の指定が必要です" +- +-#~ msgid "" +-#~ "Option '--terse' requires specific '--fields' option values , not '%s'" +-#~ msgstr "" +-#~ "オプション'--terse' には特定の '--fields' オプションの値が必要で、 '%s' で" +-#~ "はありません" +-- +2.13.0 + +From 82b97f68923936b4af74dc602fa2eb3ae1f9d0ac Mon Sep 17 00:00:00 2001 +From: Lubomir Rintel +Date: Mon, 29 May 2017 15:25:34 +0200 +Subject: [PATCH 1/2] 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..644c06b +--- /dev/null ++++ b/zanata.xml +@@ -0,0 +1,16 @@ ++ ++ ++ ++ ++ ++ https://vendors.zanata.redhat.com/ ++ networkmanager ++ RHEL-7.4 ++ gettext ++ po ++ po ++ ++ +-- +2.13.0 + diff --git a/0027-cli-fix-interface-overview-rh1460219.patch b/0027-cli-fix-interface-overview-rh1460219.patch new file mode 100644 index 0000000..bfa80a5 --- /dev/null +++ b/0027-cli-fix-interface-overview-rh1460219.patch @@ -0,0 +1,63 @@ +From 8850e02a3d3b6442c7b0f5e658892e167a74f81d Mon Sep 17 00:00:00 2001 +From: Thomas Haller +Date: Fri, 9 Jun 2017 15:18:20 +0200 +Subject: [PATCH 1/2] cli: fix output of iface in overview output + +Fixes: f14845cc200e21ed3aafadc2f9456cb0e2791f56 + +https://bugzilla.redhat.com/show_bug.cgi?id=1460219 +(cherry picked from commit 126b0874f19fa3647c0343d73dfdb48d6154bc08) +(cherry picked from commit be4e1000e8c88753e9ca0fee38c15712e5c1dd16) +--- + clients/cli/general.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/clients/cli/general.c b/clients/cli/general.c +index 12e76ef..4406c84 100644 +--- a/clients/cli/general.c ++++ b/clients/cli/general.c +@@ -1139,7 +1139,7 @@ device_overview (NmCli *nmc, NMDevice *device) + if ( nm_device_get_ip_iface (device) + && g_strcmp0 (nm_device_get_ip_iface (device), nm_device_get_iface (device)) + && g_strcmp0 (nm_device_get_ip_iface (device), "")) +- g_string_append_printf (outbuf, "%s %s,", _("iface"), nm_device_get_ip_iface (device)); ++ g_string_append_printf (outbuf, "%s %s, ", _("iface"), nm_device_get_ip_iface (device)); + + if (nm_device_get_physical_port_id (device)) + g_string_append_printf (outbuf, "%s %s, ", _("port"), nm_device_get_physical_port_id (device)); +-- +2.9.3 + +From d37fefb8b9ee7c6beacf8ea49acbcad83453553d Mon Sep 17 00:00:00 2001 +From: Thomas Haller +Date: Fri, 9 Jun 2017 15:23:44 +0200 +Subject: [PATCH 2/2] cli: minor refactoring of if-condition in device_overview + +Note that nm_device_get_ip_iface() never returns an emptry string "". + +(cherry picked from commit ee5fdcbfb50ec19b82715440e1c45f3c8e6ee5ea) +(cherry picked from commit c9c0a138294819d1c987d420918fa10d18e9a353) +--- + clients/cli/general.c | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +diff --git a/clients/cli/general.c b/clients/cli/general.c +index 4406c84..68fab6e 100644 +--- a/clients/cli/general.c ++++ b/clients/cli/general.c +@@ -1136,9 +1136,9 @@ device_overview (NmCli *nmc, NMDevice *device) + else + g_string_append_printf (outbuf, "%s, ", _("hw")); + +- if ( nm_device_get_ip_iface (device) +- && g_strcmp0 (nm_device_get_ip_iface (device), nm_device_get_iface (device)) +- && g_strcmp0 (nm_device_get_ip_iface (device), "")) ++ if (!NM_IN_STRSET (nm_device_get_ip_iface (device), ++ NULL, ++ nm_device_get_iface (device))) + g_string_append_printf (outbuf, "%s %s, ", _("iface"), nm_device_get_ip_iface (device)); + + if (nm_device_get_physical_port_id (device)) +-- +2.9.3 + diff --git a/0028-ppp-unexport-ppp-manager-on-dispose.patch b/0028-ppp-unexport-ppp-manager-on-dispose.patch new file mode 100644 index 0000000..36f48eb --- /dev/null +++ b/0028-ppp-unexport-ppp-manager-on-dispose.patch @@ -0,0 +1,526 @@ +From 6f9227609de574d1e69154d30025429a78aea4a9 Mon Sep 17 00:00:00 2001 +From: Thomas Haller +Date: Wed, 7 Jun 2017 16:09:18 +0200 +Subject: [PATCH 1/8] ppp: cast int argument for variadic + g_signal_emit(NM_PPP_MANAGER_STATE_CHANGE) call + +(cherry picked from commit 7b5251b35c23a625959aac9a1ff617a955b3daa3) +(cherry picked from commit 2aa4239cba745c67c6b4fa165c5c366d51c961a9) +--- + src/ppp/nm-ppp-manager.c | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +diff --git a/src/ppp/nm-ppp-manager.c b/src/ppp/nm-ppp-manager.c +index c7836a8..37d7a46 100644 +--- a/src/ppp/nm-ppp-manager.c ++++ b/src/ppp/nm-ppp-manager.c +@@ -365,7 +365,7 @@ impl_ppp_manager_set_state (NMPPPManager *manager, + GDBusMethodInvocation *context, + guint32 state) + { +- g_signal_emit (manager, signals[STATE_CHANGED], 0, state); ++ g_signal_emit (manager, signals[STATE_CHANGED], 0, (guint) state); + + g_dbus_method_invocation_return_value (context, NULL); + } +@@ -692,7 +692,7 @@ ppp_watch_cb (GPid pid, gint status, gpointer user_data) + _LOGD ("pppd pid %d cleaned up", priv->pid); + priv->pid = 0; + priv->ppp_watch_id = 0; +- g_signal_emit (manager, signals[STATE_CHANGED], 0, NM_PPP_STATUS_DEAD); ++ g_signal_emit (manager, signals[STATE_CHANGED], 0, (guint) NM_PPP_STATUS_DEAD); + } + + static gboolean +@@ -704,7 +704,7 @@ pppd_timed_out (gpointer data) + _ppp_cleanup (manager); + _ppp_kill (manager); + +- g_signal_emit (manager, signals[STATE_CHANGED], 0, NM_PPP_STATUS_DEAD); ++ g_signal_emit (manager, signals[STATE_CHANGED], 0, (guint) NM_PPP_STATUS_DEAD); + + return FALSE; + } +-- +2.9.3 + +From 7d485d2b0eec62a4b8345e261c958b9e15423220 Mon Sep 17 00:00:00 2001 +From: Thomas Haller +Date: Wed, 7 Jun 2017 16:28:18 +0200 +Subject: [PATCH 2/8] ppp: unexport NMPPPManager instance on dispose() + +Let's explicitly unexports on dispose(). Probably that already +happened, because NMExportedObject asserts that it is unexported +during !quitting. + +During quitting, we probably don't tear down the manager. + +Anyway, we should always unexport. + +(cherry picked from commit f07dca941dc327e11c4252688020d5fd0b9b3567) +(cherry picked from commit 5e656b5872e6399d6536e3fb043ca9c63e298774) +--- + src/ppp/nm-ppp-manager.c | 4 ++++ + 1 file changed, 4 insertions(+) + +diff --git a/src/ppp/nm-ppp-manager.c b/src/ppp/nm-ppp-manager.c +index 37d7a46..fd0b991 100644 +--- a/src/ppp/nm-ppp-manager.c ++++ b/src/ppp/nm-ppp-manager.c +@@ -1234,8 +1234,12 @@ static void + dispose (GObject *object) + { + NMPPPManager *self = (NMPPPManager *) object; ++ NMExportedObject *exported = NM_EXPORTED_OBJECT (self); + NMPPPManagerPrivate *priv = NM_PPP_MANAGER_GET_PRIVATE (self); + ++ if (nm_exported_object_is_exported (exported)) ++ nm_exported_object_unexport (exported); ++ + _ppp_cleanup (self); + _ppp_kill (self); + +-- +2.9.3 + +From ca9bd14f512a060df129da9d490591886ce22ef7 Mon Sep 17 00:00:00 2001 +From: Thomas Haller +Date: Fri, 9 Jun 2017 13:57:47 +0200 +Subject: [PATCH 3/8] ppp: inline and drop trivial function + remove_timeout_handler() + +(cherry picked from commit 0f16649ba27942e12c550449cc1669355118890f) +(cherry picked from commit 620adbcc7b2eb630299b9c0595b48e4823ccecde) +--- + src/ppp/nm-ppp-manager.c | 12 ++---------- + 1 file changed, 2 insertions(+), 10 deletions(-) + +diff --git a/src/ppp/nm-ppp-manager.c b/src/ppp/nm-ppp-manager.c +index fd0b991..efaf73a 100644 +--- a/src/ppp/nm-ppp-manager.c ++++ b/src/ppp/nm-ppp-manager.c +@@ -179,14 +179,6 @@ monitor_stats (NMPPPManager *manager) + /*****************************************************************************/ + + static void +-remove_timeout_handler (NMPPPManager *manager) +-{ +- NMPPPManagerPrivate *priv = NM_PPP_MANAGER_GET_PRIVATE (manager); +- +- nm_clear_g_source (&priv->ppp_timeout_handler); +-} +- +-static void + cancel_get_secrets (NMPPPManager *self) + { + NMPPPManagerPrivate *priv = NM_PPP_MANAGER_GET_PRIVATE (self); +@@ -415,7 +407,7 @@ impl_ppp_manager_set_ip4_config (NMPPPManager *manager, + + _LOGI ("(IPv4 Config Get) reply received."); + +- remove_timeout_handler (manager); ++ nm_clear_g_source (&priv->ppp_timeout_handler); + + config = nm_ip4_config_new (nm_platform_link_get_ifindex (NM_PLATFORM_GET, priv->ip_iface)); + +@@ -511,7 +503,7 @@ impl_ppp_manager_set_ip6_config (NMPPPManager *manager, + + _LOGI ("(IPv6 Config Get) reply received."); + +- remove_timeout_handler (manager); ++ nm_clear_g_source (&priv->ppp_timeout_handler); + + config = nm_ip6_config_new (nm_platform_link_get_ifindex (NM_PLATFORM_GET, priv->ip_iface)); + +-- +2.9.3 + +From 848af80037e21e9cc6bf9459f39f10ad314217eb Mon Sep 17 00:00:00 2001 +From: Thomas Haller +Date: Fri, 9 Jun 2017 14:00:14 +0200 +Subject: [PATCH 4/8] ppp/trivial: fix whitespace + +(cherry picked from commit 5c5fbe0a9f90c53215c70cc7a76ea011560172b8) +(cherry picked from commit 105ef99cbf7f503f05826430df0f8acf1d1f3af9) +--- + src/ppp/nm-ppp-manager.c | 76 ++++++++++++++++++++++++------------------------ + 1 file changed, 38 insertions(+), 38 deletions(-) + +diff --git a/src/ppp/nm-ppp-manager.c b/src/ppp/nm-ppp-manager.c +index efaf73a..558082f 100644 +--- a/src/ppp/nm-ppp-manager.c ++++ b/src/ppp/nm-ppp-manager.c +@@ -595,64 +595,64 @@ ppp_exit_code (guint pppd_exit_status, GPid pid) + const char *msg; + + switch (pppd_exit_status) { +- case 1: +- msg = "Fatal pppd error"; ++ case 1: ++ msg = "Fatal pppd error"; + break; +- case 2: +- msg = "pppd options error"; ++ case 2: ++ msg = "pppd options error"; + break; +- case 3: +- msg = "No root priv error"; ++ case 3: ++ msg = "No root priv error"; + break; +- case 4: +- msg = "No ppp module error"; ++ case 4: ++ msg = "No ppp module error"; + break; +- case 5: +- msg = "pppd received a signal"; ++ case 5: ++ msg = "pppd received a signal"; + break; +- case 6: +- msg = "Serial port lock failed"; ++ case 6: ++ msg = "Serial port lock failed"; + break; +- case 7: +- msg = "Serial port open failed"; ++ case 7: ++ msg = "Serial port open failed"; + break; +- case 8: +- msg = "Connect script failed"; ++ case 8: ++ msg = "Connect script failed"; + break; +- case 9: +- msg = "Pty program error"; ++ case 9: ++ msg = "Pty program error"; + break; +- case 10: +- msg = "PPP negotiation failed"; ++ case 10: ++ msg = "PPP negotiation failed"; + break; +- case 11: +- msg = "Peer didn't authenticatie itself"; ++ case 11: ++ msg = "Peer didn't authenticatie itself"; + break; +- case 12: +- msg = "Link idle: Idle Seconds reached."; ++ case 12: ++ msg = "Link idle: Idle Seconds reached."; + break; +- case 13: +- msg = "Connect time limit reached."; ++ case 13: ++ msg = "Connect time limit reached."; + break; +- case 14: ++ case 14: + msg = "Callback negotiated, call should come back."; + break; +- case 15: +- msg = "Lack of LCP echo responses"; ++ case 15: ++ msg = "Lack of LCP echo responses"; + break; +- case 16: +- msg = "A modem hung up the phone"; ++ case 16: ++ msg = "A modem hung up the phone"; + break; +- case 17: +- msg = "Loopback detected"; ++ case 17: ++ msg = "Loopback detected"; + break; +- case 18: +- msg = "The init script failed"; ++ case 18: ++ msg = "The init script failed"; + break; +- case 19: ++ case 19: + msg = "Authentication error.\n" +- "We failed to authenticate ourselves to the peer.\n" +- "Maybe bad account or password?"; ++ "We failed to authenticate ourselves to the peer.\n" ++ "Maybe bad account or password?"; + break; + default: + msg = "Unknown error"; +-- +2.9.3 + +From e2f6a3d1900949971adc1d44eb7c78465c11fb17 Mon Sep 17 00:00:00 2001 +From: Thomas Haller +Date: Fri, 9 Jun 2017 14:12:58 +0200 +Subject: [PATCH 5/8] ppp: refactor ppp_exit_code() to split out error to + string conversion + +ppp_exit_code() does too much or too little. Either it should log +about all reasons why pppd exited, including signals, or it should +just do the status to string conversion. Split it. + +(cherry picked from commit 3f64910b5249a8535deffddd0fd574c25b28dcea) +(cherry picked from commit ccda61b6fc0eb90a32ea2a4bc360c82406a26331) +--- + src/ppp/nm-ppp-manager.c | 89 ++++++++++++++---------------------------------- + 1 file changed, 26 insertions(+), 63 deletions(-) + +diff --git a/src/ppp/nm-ppp-manager.c b/src/ppp/nm-ppp-manager.c +index 558082f..d9044a4 100644 +--- a/src/ppp/nm-ppp-manager.c ++++ b/src/ppp/nm-ppp-manager.c +@@ -589,74 +589,37 @@ nm_cmd_line_add_int (NMCmdLine *cmd, int i) + + /*****************************************************************************/ + ++NM_UTILS_LOOKUP_STR_DEFINE_STATIC (pppd_exit_code_to_str, int, ++ NM_UTILS_LOOKUP_DEFAULT ("Unknown error"), ++ NM_UTILS_LOOKUP_STR_ITEM ( 1, "Fatal pppd error"); ++ NM_UTILS_LOOKUP_STR_ITEM ( 2, "pppd options error"), ++ NM_UTILS_LOOKUP_STR_ITEM ( 3, "No root priv error"), ++ NM_UTILS_LOOKUP_STR_ITEM ( 4, "No ppp module error"), ++ NM_UTILS_LOOKUP_STR_ITEM ( 5, "pppd received a signal"), ++ NM_UTILS_LOOKUP_STR_ITEM ( 6, "Serial port lock failed"), ++ NM_UTILS_LOOKUP_STR_ITEM ( 7, "Serial port open failed"), ++ NM_UTILS_LOOKUP_STR_ITEM ( 8, "Connect script failed"), ++ NM_UTILS_LOOKUP_STR_ITEM ( 9, "Pty program error"), ++ NM_UTILS_LOOKUP_STR_ITEM (10, "PPP negotiation failed"), ++ NM_UTILS_LOOKUP_STR_ITEM (11, "Peer didn't authenticatie itself"), ++ NM_UTILS_LOOKUP_STR_ITEM (12, "Link idle: Idle Seconds reached."), ++ NM_UTILS_LOOKUP_STR_ITEM (13, "Connect time limit reached."), ++ NM_UTILS_LOOKUP_STR_ITEM (14, "Callback negotiated, call should come back."), ++ NM_UTILS_LOOKUP_STR_ITEM (15, "Lack of LCP echo responses"), ++ NM_UTILS_LOOKUP_STR_ITEM (16, "A modem hung up the phone"), ++ NM_UTILS_LOOKUP_STR_ITEM (17, "Loopback detected"), ++ NM_UTILS_LOOKUP_STR_ITEM (18, "The init script failed"), ++ NM_UTILS_LOOKUP_STR_ITEM (19, "Authentication error.\n" ++ "We failed to authenticate ourselves to the peer.\n" ++ "Maybe bad account or password?"), ++); ++ + static void + ppp_exit_code (guint pppd_exit_status, GPid pid) + { + const char *msg; + +- switch (pppd_exit_status) { +- case 1: +- msg = "Fatal pppd error"; +- break; +- case 2: +- msg = "pppd options error"; +- break; +- case 3: +- msg = "No root priv error"; +- break; +- case 4: +- msg = "No ppp module error"; +- break; +- case 5: +- msg = "pppd received a signal"; +- break; +- case 6: +- msg = "Serial port lock failed"; +- break; +- case 7: +- msg = "Serial port open failed"; +- break; +- case 8: +- msg = "Connect script failed"; +- break; +- case 9: +- msg = "Pty program error"; +- break; +- case 10: +- msg = "PPP negotiation failed"; +- break; +- case 11: +- msg = "Peer didn't authenticatie itself"; +- break; +- case 12: +- msg = "Link idle: Idle Seconds reached."; +- break; +- case 13: +- msg = "Connect time limit reached."; +- break; +- case 14: +- msg = "Callback negotiated, call should come back."; +- break; +- case 15: +- msg = "Lack of LCP echo responses"; +- break; +- case 16: +- msg = "A modem hung up the phone"; +- break; +- case 17: +- msg = "Loopback detected"; +- break; +- case 18: +- msg = "The init script failed"; +- break; +- case 19: +- msg = "Authentication error.\n" +- "We failed to authenticate ourselves to the peer.\n" +- "Maybe bad account or password?"; +- break; +- default: +- msg = "Unknown error"; +- } ++ msg = pppd_exit_code_to_str (pppd_exit_status); + + _LOGW ("pppd pid %d exited with error: %s", pid, msg); + } +-- +2.9.3 + +From b2b6bf1cecc61d82590041aadee52cb9e95064b2 Mon Sep 17 00:00:00 2001 +From: Thomas Haller +Date: Fri, 9 Jun 2017 14:13:36 +0200 +Subject: [PATCH 6/8] ppp: don't log newlines + +(cherry picked from commit a814b96ebf02fa88f1a431d0a7459723a3af670d) +(cherry picked from commit 38b5d356de300f717df9c262c4fbf7ea0053aee6) +--- + src/ppp/nm-ppp-manager.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/src/ppp/nm-ppp-manager.c b/src/ppp/nm-ppp-manager.c +index d9044a4..93660ef 100644 +--- a/src/ppp/nm-ppp-manager.c ++++ b/src/ppp/nm-ppp-manager.c +@@ -609,8 +609,8 @@ NM_UTILS_LOOKUP_STR_DEFINE_STATIC (pppd_exit_code_to_str, int, + NM_UTILS_LOOKUP_STR_ITEM (16, "A modem hung up the phone"), + NM_UTILS_LOOKUP_STR_ITEM (17, "Loopback detected"), + NM_UTILS_LOOKUP_STR_ITEM (18, "The init script failed"), +- NM_UTILS_LOOKUP_STR_ITEM (19, "Authentication error.\n" +- "We failed to authenticate ourselves to the peer.\n" ++ NM_UTILS_LOOKUP_STR_ITEM (19, "Authentication error. " ++ "We failed to authenticate ourselves to the peer. " + "Maybe bad account or password?"), + ); + +-- +2.9.3 + +From 13d2ba85f0ea1835cd5b18fe2844d49d0a1f5592 Mon Sep 17 00:00:00 2001 +From: Thomas Haller +Date: Fri, 9 Jun 2017 14:19:05 +0200 +Subject: [PATCH 7/8] ppp: cleanup logging pppd exit reason in ppp_watch_cb + +- don't use assert but be more graceful with g_return_if_fail(). +- in case of failure, don't log a debug message after the warning. + One message is sufficient, drop "pppd pid %d cleaned up". +- print GPid type as long long. +- increase log level to warning. pppd dying unexpectedly warrants a + warning. + +(cherry picked from commit 250e7239511f4c8de6831e3c16d8d5f6fac383dc) +(cherry picked from commit b87327a5fea4e80a33849b8ff9735c4b61b9434d) +--- + src/ppp/nm-ppp-manager.c | 36 ++++++++++++++++-------------------- + 1 file changed, 16 insertions(+), 20 deletions(-) + +diff --git a/src/ppp/nm-ppp-manager.c b/src/ppp/nm-ppp-manager.c +index 93660ef..575bf11 100644 +--- a/src/ppp/nm-ppp-manager.c ++++ b/src/ppp/nm-ppp-manager.c +@@ -615,36 +615,32 @@ NM_UTILS_LOOKUP_STR_DEFINE_STATIC (pppd_exit_code_to_str, int, + ); + + static void +-ppp_exit_code (guint pppd_exit_status, GPid pid) +-{ +- const char *msg; +- +- msg = pppd_exit_code_to_str (pppd_exit_status); +- +- _LOGW ("pppd pid %d exited with error: %s", pid, msg); +-} +- +-static void +-ppp_watch_cb (GPid pid, gint status, gpointer user_data) ++ppp_watch_cb (GPid pid, int status, gpointer user_data) + { + NMPPPManager *manager = NM_PPP_MANAGER (user_data); + NMPPPManagerPrivate *priv = NM_PPP_MANAGER_GET_PRIVATE (manager); +- guint err; ++ int err; ++ const long long lpid = (long long) pid; + +- g_assert (pid == priv->pid); ++ g_return_if_fail (pid == priv->pid); + + if (WIFEXITED (status)) { + err = WEXITSTATUS (status); +- if (err != 0) +- ppp_exit_code (err, priv->pid); ++ if (err) { ++ _LOGW ("pppd pid %lld exited with error %d: %s", ++ lpid, err, ++ pppd_exit_code_to_str (err)); ++ } else ++ _LOGD ("pppd pid %lld exited with success", lpid); + } else if (WIFSTOPPED (status)) { +- _LOGI ("pppd pid %d stopped unexpectedly with signal %d", priv->pid, WSTOPSIG (status)); ++ _LOGW ("pppd pid %lld stopped unexpectedly with signal %d", ++ lpid, WSTOPSIG (status)); + } else if (WIFSIGNALED (status)) { +- _LOGI ("pppd pid %d died with signal %d", priv->pid, WTERMSIG (status)); ++ _LOGW ("pppd pid %lld died with signal %d", ++ lpid, WTERMSIG (status)); + } else +- _LOGI ("pppd pid %d died from an unknown cause", priv->pid); ++ _LOGW ("pppd pid %lld died from an unknown cause", lpid); + +- _LOGD ("pppd pid %d cleaned up", priv->pid); + priv->pid = 0; + priv->ppp_watch_id = 0; + g_signal_emit (manager, signals[STATE_CHANGED], 0, (guint) NM_PPP_STATUS_DEAD); +@@ -971,7 +967,7 @@ _ppp_manager_start (NMPPPManager *manager, + goto out; + } + +- _LOGI ("pppd started with pid %d", priv->pid); ++ _LOGI ("pppd started with pid %lld", (long long) priv->pid); + + priv->ppp_watch_id = g_child_watch_add (priv->pid, (GChildWatchFunc) ppp_watch_cb, manager); + priv->ppp_timeout_handler = g_timeout_add_seconds (timeout_secs, pppd_timed_out, manager); +-- +2.9.3 + +From baf5a6b24119671bb8a0edea2fc4830750c16305 Mon Sep 17 00:00:00 2001 +From: Thomas Haller +Date: Fri, 9 Jun 2017 15:11:24 +0200 +Subject: [PATCH 8/8] ppp: fix cancelling timeout when pppd process exits + +Otherwise, we get pppd_timed_out() later, which will +emit a DEAD state change at unexpected times. + +(cherry picked from commit b9af32b056ae7c93b33644b8a24641a86bf66e2c) +(cherry picked from commit 1b954fe09b3b968aa883bba1027f47487ac4808e) +--- + src/ppp/nm-ppp-manager.c | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/src/ppp/nm-ppp-manager.c b/src/ppp/nm-ppp-manager.c +index 575bf11..6343df8 100644 +--- a/src/ppp/nm-ppp-manager.c ++++ b/src/ppp/nm-ppp-manager.c +@@ -643,6 +643,7 @@ ppp_watch_cb (GPid pid, int status, gpointer user_data) + + priv->pid = 0; + priv->ppp_watch_id = 0; ++ _ppp_cleanup (manager); + g_signal_emit (manager, signals[STATE_CHANGED], 0, (guint) NM_PPP_STATUS_DEAD); + } + +-- +2.9.3 + diff --git a/0029-cli-wifi-spurious-output.patch b/0029-cli-wifi-spurious-output.patch new file mode 100644 index 0000000..69db5f5 --- /dev/null +++ b/0029-cli-wifi-spurious-output.patch @@ -0,0 +1,49 @@ +From 7e13e49f15a43f54391380c76f7074bdaa300d03 Mon Sep 17 00:00:00 2001 +From: Beniamino Galvani +Date: Sun, 11 Jun 2017 22:31:43 +0200 +Subject: [PATCH] cli: remove spurious device names from output + +When running one of: + + nmcli device wifi list ifname wlan0 + nmcli device wifi connect ... ifname wlan0 + +nmcli wrongly adds the device name to the output. + +Do the completion only when requested. + +Fixes: 8679793f6b711847d3209ab3cfbd95ab4a2e2488 +Fixes: 1a0dfd31c4af5f3e42b4fc8363a2065d8c5a325b +(cherry picked from commit d2b4332b36686dd5d7382d996743f0ffa1a0fdda) +(cherry picked from commit 73e664e3b15e47b20dcdc92d4cde7f8492069f17) +--- + clients/cli/devices.c | 6 ++++-- + 1 file changed, 4 insertions(+), 2 deletions(-) + +diff --git a/clients/cli/devices.c b/clients/cli/devices.c +index 387edef..50983de 100644 +--- a/clients/cli/devices.c ++++ b/clients/cli/devices.c +@@ -2653,7 +2653,8 @@ do_device_wifi_list (NmCli *nmc, int argc, char **argv) + return NMC_RESULT_ERROR_USER_INPUT; + } + ifname = *argv; +- complete_device (devices, ifname, TRUE); ++ if (argc == 1 && nmc->complete) ++ complete_device (devices, ifname, TRUE); + } else if (strcmp (*argv, "bssid") == 0 || strcmp (*argv, "hwaddr") == 0) { + /* hwaddr is deprecated and will be removed later */ + argc--; +@@ -2900,7 +2901,8 @@ do_device_wifi_connect_network (NmCli *nmc, int argc, char **argv) + goto finish; + } + ifname = *argv; +- complete_device (devices, ifname, TRUE); ++ if (argc == 1 && nmc->complete) ++ complete_device (devices, ifname, TRUE); + } else if (strcmp (*argv, "bssid") == 0) { + argc--; + argv++; +-- +2.9.3 + diff --git a/0030-device-mtu-preserve-rh1460760.patch b/0030-device-mtu-preserve-rh1460760.patch new file mode 100644 index 0000000..e09ba79 --- /dev/null +++ b/0030-device-mtu-preserve-rh1460760.patch @@ -0,0 +1,135 @@ +From a222f7e0554fe8057a6d9c6749acbd066798fa9d Mon Sep 17 00:00:00 2001 +From: Thomas Haller +Date: Tue, 13 Jun 2017 12:26:51 +0200 +Subject: [PATCH 1/1] device: don't set MTU of device unless explicitly + configured + +Since commit 2b51d3967 "device: merge branch 'th/device-mtu-bgo777251'", +we always set the MTU for certain device types during activation. Even +if the MTU is neither specified via the connection nor other means, like +DHCP. + +Revert that change. On activation, if nothing explicitly configures the +MTU, leave it unchanged. This is like what we do with ethernet's +cloned-mac-address, which has a default value "preserve". +So, as last resort the default value for MTU is now 0 (don't change), +instead of depending on the device type. + +Note that you also can override the default value in global +configuration via NetworkManager.conf. + +This behavior makes sense, because whenever NM actively resets the MTU, +it remembers the previous value and restores it when deactivating +the connection. That wasn't implemented before 2b51d3967, and the +MTU would depend on which connection was previously active. That +is no longer an issue as the MTU gets reset when deactivating. + +https://bugzilla.redhat.com/show_bug.cgi?id=1460760 +(cherry picked from commit 4ca3002b86948847711cd5b1937008baef3c30da) +(cherry picked from commit 588841f2e086774420a7ff4452d87e45ffae578a) +--- + man/NetworkManager.conf.xml | 2 +- + src/devices/nm-device-infiniband.c | 2 +- + src/devices/nm-device-ip-tunnel.c | 2 +- + src/devices/nm-device-private.h | 4 ---- + src/devices/nm-device-vlan.c | 2 +- + src/devices/nm-device.c | 2 +- + src/devices/wifi/nm-device-wifi.c | 2 +- + 7 files changed, 6 insertions(+), 10 deletions(-) + +diff --git a/man/NetworkManager.conf.xml b/man/NetworkManager.conf.xml +index 5e76c0ace..71c62cc15 100644 +--- a/man/NetworkManager.conf.xml ++++ b/man/NetworkManager.conf.xml +@@ -655,7 +655,7 @@ ipv6.ip6-privacy=0 + + + ethernet.mtu +- If configured explicitly to 0, the MTU is not reconfigured during device activation unless it is required due to IPv6 constraints. If left unspecified, a DHCP/IPv6 SLAAC provided value is used or a default of 1500. ++ If configured explicitly to 0, the MTU is not reconfigured during device activation unless it is required due to IPv6 constraints. If left unspecified, a DHCP/IPv6 SLAAC provided value is used or the MTU is not reconfigured during activation. + + + ethernet.wake-on-lan +diff --git a/src/devices/nm-device-infiniband.c b/src/devices/nm-device-infiniband.c +index f7875d099..7e0412703 100644 +--- a/src/devices/nm-device-infiniband.c ++++ b/src/devices/nm-device-infiniband.c +@@ -139,7 +139,7 @@ get_configured_mtu (NMDevice *device, gboolean *out_is_user_config) + } + } + *out_is_user_config = (mtu != 0); +- return mtu ?: NM_DEVICE_DEFAULT_MTU_INFINIBAND; ++ return mtu; + } + + static gboolean +diff --git a/src/devices/nm-device-ip-tunnel.c b/src/devices/nm-device-ip-tunnel.c +index 53b7cf4e5..2f505ef4c 100644 +--- a/src/devices/nm-device-ip-tunnel.c ++++ b/src/devices/nm-device-ip-tunnel.c +@@ -767,7 +767,7 @@ get_configured_mtu (NMDevice *self, gboolean *out_is_user_config) + } + } + *out_is_user_config = (mtu != 0); +- return mtu ?: NM_DEVICE_DEFAULT_MTU_WIRED; ++ return mtu; + } + + static NMDeviceCapabilities +diff --git a/src/devices/nm-device-private.h b/src/devices/nm-device-private.h +index a4067f9c2..9eccafdc6 100644 +--- a/src/devices/nm-device-private.h ++++ b/src/devices/nm-device-private.h +@@ -116,10 +116,6 @@ gboolean nm_device_ipv6_sysctl_set (NMDevice *self, const char *property, const + + /*****************************************************************************/ + +-#define NM_DEVICE_DEFAULT_MTU_WIRED ((guint32) 1500) +-#define NM_DEVICE_DEFAULT_MTU_WIRELESS ((guint32) 1500) +-#define NM_DEVICE_DEFAULT_MTU_INFINIBAND ((guint32) 0) +- + gint64 nm_device_get_configured_mtu_from_connection_default (NMDevice *self, + const char *property_name); + +diff --git a/src/devices/nm-device-vlan.c b/src/devices/nm-device-vlan.c +index 06db64465..a74da8f22 100644 +--- a/src/devices/nm-device-vlan.c ++++ b/src/devices/nm-device-vlan.c +@@ -586,7 +586,7 @@ get_configured_mtu (NMDevice *self, gboolean *out_is_user_config) + if (ifindex > 0) + mtu = nm_platform_link_get_mtu (nm_device_get_platform (NM_DEVICE (self)), ifindex); + +- return mtu ?: NM_DEVICE_DEFAULT_MTU_WIRED; ++ return mtu; + } + + /*****************************************************************************/ +diff --git a/src/devices/nm-device.c b/src/devices/nm-device.c +index e60995d57..e37b24bff 100644 +--- a/src/devices/nm-device.c ++++ b/src/devices/nm-device.c +@@ -7150,7 +7150,7 @@ nm_device_get_configured_mtu_for_wired (NMDevice *self, gboolean *out_is_user_co + } + + *out_is_user_config = FALSE; +- return NM_DEVICE_DEFAULT_MTU_WIRED; ++ return 0; + } + + /*****************************************************************************/ +diff --git a/src/devices/wifi/nm-device-wifi.c b/src/devices/wifi/nm-device-wifi.c +index 7359be96e..20692ed9e 100644 +--- a/src/devices/wifi/nm-device-wifi.c ++++ b/src/devices/wifi/nm-device-wifi.c +@@ -2742,7 +2742,7 @@ get_configured_mtu (NMDevice *device, gboolean *out_is_user_config) + } + } + *out_is_user_config = (mtu != 0); +- return mtu ?: NM_DEVICE_DEFAULT_MTU_WIRELESS; ++ return mtu; + } + + static gboolean +-- +2.13.0 + diff --git a/0031-don-t-remove-ext-ipv4-addresses-rh1459813.patch b/0031-don-t-remove-ext-ipv4-addresses-rh1459813.patch new file mode 100644 index 0000000..e145e89 --- /dev/null +++ b/0031-don-t-remove-ext-ipv4-addresses-rh1459813.patch @@ -0,0 +1,51 @@ +From 59aa2a26b4a712131b38e155d3c1d70a74183636 Mon Sep 17 00:00:00 2001 +From: Beniamino Galvani +Date: Tue, 13 Jun 2017 14:44:22 +0200 +Subject: [PATCH] core: sort addresses in captured IPv4 configuration + +When IPv4 addresses are synchronized to platform, the order of IPv4 +addresses matters because the first address is considered the primary +one. Thus, nm_ip4_config_capture() should put the primary address as +first, otherwise during synchronization addresses will be removed and +added back with a different primary/secondary role. + +https://bugzilla.redhat.com/show_bug.cgi?id=1459813 +(cherry picked from commit b6fa87a4c07c968614d123750be47a74de62f04d) +(cherry picked from commit 9819ffe7d42f08bb082ae2d9e125a7dd3bfe6420) +--- + src/nm-ip4-config.c | 12 ++++++++++++ + 1 file changed, 12 insertions(+) + +diff --git a/src/nm-ip4-config.c b/src/nm-ip4-config.c +index 20532e8..ae6af9c 100644 +--- a/src/nm-ip4-config.c ++++ b/src/nm-ip4-config.c +@@ -248,6 +248,16 @@ notify_addresses (NMIP4Config *self) + _notify (self, PROP_ADDRESSES); + } + ++static gint ++sort_captured_addresses (gconstpointer a, gconstpointer b) ++{ ++ const NMPlatformIP4Address *addr_a = a, *addr_b = b; ++ ++ /* Primary addresses first */ ++ return NM_FLAGS_HAS (addr_a->n_ifa_flags, IFA_F_SECONDARY) - ++ NM_FLAGS_HAS (addr_b->n_ifa_flags, IFA_F_SECONDARY); ++} ++ + NMIP4Config * + nm_ip4_config_capture (NMPlatform *platform, int ifindex, gboolean capture_resolv_conf) + { +@@ -269,6 +279,8 @@ nm_ip4_config_capture (NMPlatform *platform, int ifindex, gboolean capture_resol + g_array_unref (priv->routes); + + priv->addresses = nm_platform_ip4_address_get_all (platform, ifindex); ++ g_array_sort (priv->addresses, sort_captured_addresses); ++ + priv->routes = nm_platform_ip4_route_get_all (platform, ifindex, NM_PLATFORM_GET_ROUTE_FLAGS_WITH_DEFAULT | NM_PLATFORM_GET_ROUTE_FLAGS_WITH_NON_DEFAULT); + + /* Extract gateway from default route */ +-- +2.9.3 + diff --git a/NetworkManager.spec b/NetworkManager.spec index 30c8293..ecae27f 100644 --- a/NetworkManager.spec +++ b/NetworkManager.spec @@ -9,7 +9,7 @@ %global epoch_version 1 %global rpm_version 1.8.0 %global real_version 1.8.0 -%global release_version 5 +%global release_version 6 %global snapshot %{nil} %global git_sha %{nil} @@ -92,7 +92,9 @@ Patch8: 0008-utf8safe-fixes-rh1443114.patch Patch9: 0009-ifcfg-rh-fix-null-next-hop.patch Patch10: 0010-bluetooth-nap-crash-rh1454385.patch Patch11: 0011-device-release-removed-slaves-rh1448907.patch +Patch12: 0012-config-slaves-order-rh1452585.patch Patch13: 0013-nmcli-fix-8021x-password-raw-rh1456362.patch +Patch14: 0014-translations-rh1382625.patch Patch15: 0015-ifcfg-rh-legacy-netmask-rh1445414.patch Patch16: 0016-tui-connect-crash-rh1456826.patch Patch17: 0017-libnm-fix-reject-vlan-id-4095-rh1456911.patch @@ -105,6 +107,11 @@ Patch23: 0023-persist-nm-owned-in-device-state-rh1376199.patch Patch24: 0024-fix-delayed-assume-master-rh1452062.patch Patch25: 0025-improve-logging-assume-rh1452062.patch Patch26: 0026-apply-route-penality-only-with-defroute-rh1459604.patch +Patch27: 0027-cli-fix-interface-overview-rh1460219.patch +Patch28: 0028-ppp-unexport-ppp-manager-on-dispose.patch +Patch29: 0029-cli-wifi-spurious-output.patch +Patch30: 0030-device-mtu-preserve-rh1460760.patch +Patch31: 0031-don-t-remove-ext-ipv4-addresses-rh1459813.patch Requires(post): systemd Requires(preun): systemd @@ -369,7 +376,9 @@ by nm-connection-editor and nm-applet in a non-graphical environment. %patch9 -p1 %patch10 -p1 %patch11 -p1 +%patch12 -p1 %patch13 -p1 +%patch14 -p1 %patch15 -p1 %patch16 -p1 %patch17 -p1 @@ -382,6 +391,11 @@ by nm-connection-editor and nm-applet in a non-graphical environment. %patch24 -p1 %patch25 -p1 %patch26 -p1 +%patch27 -p1 +%patch28 -p1 +%patch29 -p1 +%patch30 -p1 +%patch31 -p1 %build %if %{with regen_docs} @@ -694,6 +708,13 @@ fi %endif %changelog +* Thu Jun 22 2017 Lubomir Rintel - 1:1.8.0-6 +- device: don't change MTU unless explicitly configured (rh #1460760) +- core: don't remove external IPv4 addresses (rh #1459813) +- cli: fix output of iface in overview output (rh#1460219) +- ppp: unexport NMPPPManager instance on dispose (rh#1459579) +- cli: remove spurious device names from wifi subcommands output (rh#1460527) + * Fri Jun 9 2017 Lubomir Rintel - 1:1.8.0-5 - bond: fix crash comparing mode while generating bond connection (rh #1459580) - connectivity: fix route penalty if WWAN and BT device using ip-ifindex (rh #1459932)