[NetworkManager/f20] core: diverse fixes
thaller
thaller at fedoraproject.org
Tue Apr 8 18:24:34 UTC 2014
commit a24ad21471e3b8e454cc5bfc6cfed48f46863b44
Author: Thomas Haller <thaller at redhat.com>
Date: Tue Apr 8 19:09:15 2014 +0200
core: diverse fixes
Resolves: #1054364
Resolves: #1061911
Resolves: #1063885
Resolves: #1080474
Resolves: #1084556
0052-rh1054364-fix-nm-online.patch | 272 ++++++
0053-rh1061911-crash-dispose-NMSecretAgent.patch | 81 ++
...3885-extened-address-flags-for-old-kernel.patch | 55 ++
0055-rh1080474-nmcli-show-mbit-s.patch | 873 ++++++++++++++++++++
...h1084556-pending-action-queued-state-lock.patch | 67 ++
0057-emit-property-changed-for-active-conn.patch | 29 +
NetworkManager.spec | 22 +-
7 files changed, 1398 insertions(+), 1 deletions(-)
---
diff --git a/0052-rh1054364-fix-nm-online.patch b/0052-rh1054364-fix-nm-online.patch
new file mode 100644
index 0000000..6519ceb
--- /dev/null
+++ b/0052-rh1054364-fix-nm-online.patch
@@ -0,0 +1,272 @@
+From fafbc0388636379414caa3b8cb9de14b9a60c551 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Ji=C5=99=C3=AD=20Klime=C5=A1?= <jklimes at redhat.com>
+Date: Wed, 12 Mar 2014 13:34:13 +0100
+Subject: [PATCH 1/4] nm-online: fix nm-online to report online status
+ correctly (rh #1054364)
+
+This fixes a behaviour change made by 44ac1020daccfeeb1dc88566adda6e5d8bd87aea.
+That commit make nm-online to wait for NM finishing startup instead of waiting
+for a real connection. So for NetworkManager fully initialized, but
+disconnected nm-online would return 0.
+
+$ nmcli -f RUNNING,STATE,STARTUP,CONNECTIVITY gen status
+RUNNING STATE STARTUP CONNECTIVITY
+running disconnected started none
+
+Revert back to the original behaviour of waiting for a connection. And
+introduce a new option '--wait-for-startup' waiting for NetworkManager
+finishing its startup, which is useful in some cases, like
+NetworkManager-wait-online.service.
+
+https://bugzilla.redhat.com/show_bug.cgi?id=1054364
+(cherry picked from commit 20fb078dd6b10c10539f62449ac2a0b36f0e67ce)
+---
+ man/nm-online.1.in | 7 +++++--
+ test/nm-online.c | 50 ++++++++++++++++++++++++++++++++++++++++++++------
+ 2 files changed, 49 insertions(+), 8 deletions(-)
+
+diff --git a/man/nm-online.1.in b/man/nm-online.1.in
+index 941f006..ddb2b17 100644
+--- a/man/nm-online.1.in
++++ b/man/nm-online.1.in
+@@ -19,9 +19,9 @@
+ .\" with this manual; if not, write to the Free Software Foundation, Inc.,
+ .\" 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ .\"
+-.\" Copyright (C) 2010 Red Hat, Inc.
++.\" Copyright (C) 2010 - 2014 Red Hat, Inc.
+ .\"
+-.TH NM-ONLINE "1" "11 July 2013"
++.TH NM-ONLINE "1" "25 March 2014"
+
+ .SH NAME
+ nm-online \- ask NetworkManager whether the network is connected
+@@ -47,6 +47,9 @@ Exit immediately if NetworkManager is not running or connecting.
+ .TP
+ .B \-q, \-\-quiet
+ Don't print anything.
++.TP
++.B \-s, \-\-wait-for-startup
++Wait for NetworkManager finishing its startup instead of establishing a connection.
+
+ .SH EXIT STATUS
+
+diff --git a/test/nm-online.c b/test/nm-online.c
+index 7df66c2..03737b2 100644
+--- a/test/nm-online.c
++++ b/test/nm-online.c
+@@ -15,6 +15,7 @@
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Copyright (C) 2006 - 2008 Novell, Inc.
++ * Copyright (C) 2008 - 2014 Red Hat, Inc.
+ *
+ */
+
+@@ -42,6 +43,7 @@
+ #include "nm-client.h"
+
+ #define PROGRESS_STEPS 15
++#define WAIT_STARTUP_TAG "wait-startup"
+
+ typedef struct
+ {
+@@ -56,11 +58,22 @@ client_properties_changed (GObject *object,
+ gpointer loop)
+ {
+ NMClient *client = NM_CLIENT (object);
++ NMState state;
++ gboolean wait_startup = GPOINTER_TO_UINT (g_object_get_data (object, WAIT_STARTUP_TAG));
+
+ if (!nm_client_get_manager_running (client))
+ return;
+- if (!nm_client_get_startup (client))
+- g_main_loop_quit (loop);
++
++ if (wait_startup) {
++ if (!nm_client_get_startup (client))
++ g_main_loop_quit (loop);
++ } else {
++ state = nm_client_get_state (client);
++ if ( state == NM_STATE_CONNECTED_LOCAL
++ || state == NM_STATE_CONNECTED_SITE
++ || state == NM_STATE_CONNECTED_GLOBAL)
++ g_main_loop_quit (loop);
++ }
+ }
+
+ static gboolean
+@@ -94,16 +107,19 @@ main (int argc, char *argv[])
+ gint t_secs = -1;
+ gboolean exit_no_nm = FALSE;
+ gboolean quiet = FALSE;
++ gboolean wait_startup = FALSE;
+ Timeout timeout;
+ GOptionContext *opt_ctx = NULL;
+ gboolean success;
+ NMClient *client;
++ NMState state = NM_STATE_UNKNOWN;
+ GMainLoop *loop;
+
+ GOptionEntry options[] = {
+ {"timeout", 't', 0, G_OPTION_ARG_INT, &t_secs, N_("Time to wait for a connection, in seconds (without the option, default value is 30)"), "<timeout>"},
+ {"exit", 'x', 0, G_OPTION_ARG_NONE, &exit_no_nm, N_("Exit immediately if NetworkManager is not running"), NULL},
+ {"quiet", 'q', 0, G_OPTION_ARG_NONE, &quiet, N_("Don't print anything"), NULL},
++ {"wait-for-startup", 's', 0, G_OPTION_ARG_NONE, &wait_startup, N_("Wait for NetworkManager startup instead of a connection"), NULL},
+ {NULL}
+ };
+
+@@ -147,13 +163,35 @@ main (int argc, char *argv[])
+
+ client = nm_client_new ();
+
++ g_object_set_data (G_OBJECT (client), WAIT_STARTUP_TAG, GUINT_TO_POINTER (wait_startup));
++ state = nm_client_get_state (client);
+ if (!nm_client_get_manager_running (client)) {
+- if (exit_no_nm)
++ if (exit_no_nm) {
++ g_object_unref (client);
+ return 1;
+- } else if (!nm_client_get_startup (client))
+- return 0;
+- if (!timeout.value)
++ }
++ } else if (wait_startup) {
++ if (!nm_client_get_startup (client)) {
++ g_object_unref (client);
++ return 0;
++ }
++ } else {
++ if ( state == NM_STATE_CONNECTED_LOCAL
++ || state == NM_STATE_CONNECTED_SITE
++ || state == NM_STATE_CONNECTED_GLOBAL) {
++ g_object_unref (client);
++ return 0;
++ }
++ }
++ if (exit_no_nm && (state != NM_STATE_CONNECTING)) {
++ g_object_unref (client);
+ return 1;
++ }
++
++ if (!timeout.value) {
++ g_object_unref (client);
++ return 1;
++ }
+
+ timeout.norm = (double) timeout.value / (double) PROGRESS_STEPS;
+ g_timeout_add_seconds (1, handle_timeout, &timeout);
+--
+1.9.0
+
+
+From f247a3c86e71d7ae419c3401fff310d2e836a2ab Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Ji=C5=99=C3=AD=20Klime=C5=A1?= <jklimes at redhat.com>
+Date: Wed, 26 Mar 2014 18:14:04 +0100
+Subject: [PATCH 2/4] systemd: update NetworkManager-wait-online.service to
+ wait for startup
+
+(cherry picked from commit 520d2814ba720cf8aee9d6f91fca4e3ea0d8555f)
+---
+ data/NetworkManager-wait-online-systemd-pre200.service.in | 2 +-
+ data/NetworkManager-wait-online.service.in | 2 +-
+ 2 files changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/data/NetworkManager-wait-online-systemd-pre200.service.in b/data/NetworkManager-wait-online-systemd-pre200.service.in
+index fd9be41..d145a79 100644
+--- a/data/NetworkManager-wait-online-systemd-pre200.service.in
++++ b/data/NetworkManager-wait-online-systemd-pre200.service.in
+@@ -7,7 +7,7 @@ Before=network.target
+
+ [Service]
+ Type=oneshot
+-ExecStart=@bindir@/nm-online -q --timeout=30
++ExecStart=@bindir@/nm-online -s -q --timeout=30
+
+ [Install]
+ WantedBy=network.target
+diff --git a/data/NetworkManager-wait-online.service.in b/data/NetworkManager-wait-online.service.in
+index b81c5b0..6ad6942 100644
+--- a/data/NetworkManager-wait-online.service.in
++++ b/data/NetworkManager-wait-online.service.in
+@@ -7,7 +7,7 @@ Before=network.target network-online.target
+
+ [Service]
+ Type=oneshot
+-ExecStart=@bindir@/nm-online -q --timeout=30
++ExecStart=@bindir@/nm-online -s -q --timeout=30
+
+ [Install]
+ WantedBy=multi-user.target
+--
+1.9.0
+
+
+From 749647f7ab034eb7eb43877fe957cc71a82d9773 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Ji=C5=99=C3=AD=20Klime=C5=A1?= <jklimes at redhat.com>
+Date: Tue, 25 Mar 2014 10:13:08 +0100
+Subject: [PATCH 3/4] trivial: correct nm-online's '--exit' option description
+
+(cherry picked from commit ea962ce4112ccf3b25efe5b9661c1a48090dc4e4)
+---
+ test/nm-online.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/test/nm-online.c b/test/nm-online.c
+index 03737b2..53b0465 100644
+--- a/test/nm-online.c
++++ b/test/nm-online.c
+@@ -117,7 +117,7 @@ main (int argc, char *argv[])
+
+ GOptionEntry options[] = {
+ {"timeout", 't', 0, G_OPTION_ARG_INT, &t_secs, N_("Time to wait for a connection, in seconds (without the option, default value is 30)"), "<timeout>"},
+- {"exit", 'x', 0, G_OPTION_ARG_NONE, &exit_no_nm, N_("Exit immediately if NetworkManager is not running"), NULL},
++ {"exit", 'x', 0, G_OPTION_ARG_NONE, &exit_no_nm, N_("Exit immediately if NetworkManager is not running or connecting"), NULL},
+ {"quiet", 'q', 0, G_OPTION_ARG_NONE, &quiet, N_("Don't print anything"), NULL},
+ {"wait-for-startup", 's', 0, G_OPTION_ARG_NONE, &wait_startup, N_("Wait for NetworkManager startup instead of a connection"), NULL},
+ {NULL}
+--
+1.9.0
+
+
+From f3804ce1e2a0229a6ef32cb1ddb0d750822fb2d8 Mon Sep 17 00:00:00 2001
+From: Thomas Haller <thaller at redhat.com>
+Date: Wed, 12 Mar 2014 14:44:27 +0100
+Subject: [PATCH 4/4] nm-online: fix considering the --quiet option
+
+Signed-off-by: Thomas Haller <thaller at redhat.com>
+(cherry picked from commit 0a85bff70a65d5a205b56bc9f74fc2b0237ad05a)
+---
+ test/nm-online.c | 5 +++--
+ 1 file changed, 3 insertions(+), 2 deletions(-)
+
+diff --git a/test/nm-online.c b/test/nm-online.c
+index 53b0465..681df18 100644
+--- a/test/nm-online.c
++++ b/test/nm-online.c
+@@ -106,7 +106,6 @@ main (int argc, char *argv[])
+ {
+ gint t_secs = -1;
+ gboolean exit_no_nm = FALSE;
+- gboolean quiet = FALSE;
+ gboolean wait_startup = FALSE;
+ Timeout timeout;
+ GOptionContext *opt_ctx = NULL;
+@@ -118,11 +117,13 @@ main (int argc, char *argv[])
+ GOptionEntry options[] = {
+ {"timeout", 't', 0, G_OPTION_ARG_INT, &t_secs, N_("Time to wait for a connection, in seconds (without the option, default value is 30)"), "<timeout>"},
+ {"exit", 'x', 0, G_OPTION_ARG_NONE, &exit_no_nm, N_("Exit immediately if NetworkManager is not running or connecting"), NULL},
+- {"quiet", 'q', 0, G_OPTION_ARG_NONE, &quiet, N_("Don't print anything"), NULL},
++ {"quiet", 'q', 0, G_OPTION_ARG_NONE, &timeout.quiet, N_("Don't print anything"), NULL},
+ {"wait-for-startup", 's', 0, G_OPTION_ARG_NONE, &wait_startup, N_("Wait for NetworkManager startup instead of a connection"), NULL},
+ {NULL}
+ };
+
++ timeout.quiet = FALSE;
++
+ /* Set locale to be able to use environment variables */
+ setlocale (LC_ALL, "");
+
+--
+1.9.0
+
diff --git a/0053-rh1061911-crash-dispose-NMSecretAgent.patch b/0053-rh1061911-crash-dispose-NMSecretAgent.patch
new file mode 100644
index 0000000..0190876
--- /dev/null
+++ b/0053-rh1061911-crash-dispose-NMSecretAgent.patch
@@ -0,0 +1,81 @@
+From 2cea29f22882571ac92fedccd3cbe664d31eab10 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Ji=C5=99=C3=AD=20Klime=C5=A1?= <jklimes at redhat.com>
+Date: Tue, 11 Feb 2014 13:58:17 +0100
+Subject: [PATCH 1/1] settings: free memory in finalize(), not in dispose() in
+ NMSecretAgent (rh #1061911)
+
+Even if the code changed in master compared to the bug report, the issues would
+still occur when we freed members in dispose.
+
+https://bugzilla.redhat.com/show_bug.cgi?id=1061911
+(cherry picked from commit 4141e69b3a368f5b450fbc99a37557f77ef2fd08)
+
+Conflicts:
+ src/settings/nm-secret-agent.c
+---
+ src/settings/nm-secret-agent.c | 31 +++++++++++++++----------------
+ 1 file changed, 15 insertions(+), 16 deletions(-)
+
+diff --git a/src/settings/nm-secret-agent.c b/src/settings/nm-secret-agent.c
+index 5a8a73f..c7c1a26 100644
+--- a/src/settings/nm-secret-agent.c
++++ b/src/settings/nm-secret-agent.c
+@@ -40,8 +40,6 @@ G_DEFINE_TYPE (NMSecretAgent, nm_secret_agent, G_TYPE_OBJECT)
+ NMSecretAgentPrivate))
+
+ typedef struct {
+- gboolean disposed;
+-
+ char *description;
+ char *owner;
+ char *identifier;
+@@ -499,25 +497,25 @@ nm_secret_agent_init (NMSecretAgent *self)
+ static void
+ dispose (GObject *object)
+ {
+- NMSecretAgentPrivate *priv = NM_SECRET_AGENT_GET_PRIVATE (object);
+-
+- if (!priv->disposed) {
+- priv->disposed = TRUE;
++ proxy_cleanup (NM_SECRET_AGENT (object));
+
+- g_free (priv->description);
+- g_free (priv->owner);
+- g_free (priv->identifier);
+- g_free (priv->owner_username);
++ G_OBJECT_CLASS (nm_secret_agent_parent_class)->dispose (object);
++}
+
+- g_slist_foreach (priv->permissions, (GFunc) g_free, NULL);
+- g_slist_free (priv->permissions);
++static void
++finalize (GObject *object)
++{
++ NMSecretAgentPrivate *priv = NM_SECRET_AGENT_GET_PRIVATE (object);
+
+- g_hash_table_destroy (priv->requests);
++ g_free (priv->description);
++ g_free (priv->owner);
++ g_free (priv->identifier);
++ g_free (priv->owner_username);
+
+- proxy_cleanup (NM_SECRET_AGENT (object));
+- }
++ g_slist_free_full (priv->permissions, g_free);
++ g_hash_table_destroy (priv->requests);
+
+- G_OBJECT_CLASS (nm_secret_agent_parent_class)->dispose (object);
++ G_OBJECT_CLASS (nm_secret_agent_parent_class)->finalize (object);
+ }
+
+ static void
+@@ -529,5 +527,6 @@ nm_secret_agent_class_init (NMSecretAgentClass *config_class)
+
+ /* virtual methods */
+ object_class->dispose = dispose;
++ object_class->finalize = finalize;
+ }
+
+--
+1.9.0
+
diff --git a/0054-rh1063885-extened-address-flags-for-old-kernel.patch b/0054-rh1063885-extened-address-flags-for-old-kernel.patch
new file mode 100644
index 0000000..8221512
--- /dev/null
+++ b/0054-rh1063885-extened-address-flags-for-old-kernel.patch
@@ -0,0 +1,55 @@
+From d4e54f22ff4550b27f0c2953191f65a69bdb814c Mon Sep 17 00:00:00 2001
+From: Thomas Haller <thaller at redhat.com>
+Date: Fri, 4 Apr 2014 16:14:46 +0200
+Subject: [PATCH 1/1] platform: workaround older kernels that don't accept
+ extended address flags via netlink
+
+Extended address flags are represented by the additional netlink
+attribute IFA_FLAGS. Older kernels don't know this flag and refuse
+the messages RTM_NEWADDR and RTMDEL_ADDR when it contains unknown
+attributes. See net/core/rtnetlink.c, rtnetlink_rcv_msg(). This was
+fixed by kernel commit 661d2967b3f1b34eeaa7e212e7b9bbe8ee072b59.
+
+libnl was fixed in commit 5206c050504f8676a24854519b9c351470fb7cc6 only to
+send the additional netlink attribute, when there are actually flags
+that make this necessary.
+
+This commit changes nm-platform to strip the flags to &= 0xFF, if we detect
+that the kernel does not understand extended address flags.
+
+https://bugzilla.redhat.com/show_bug.cgi?id=1063885
+
+Signed-off-by: Thomas Haller <thaller at redhat.com>
+(cherry picked from commit dac51747ab5853b00557d7d97d4b2eae05968c03)
+---
+ src/platform/nm-linux-platform.c | 13 ++++++++++++-
+ 1 file changed, 12 insertions(+), 1 deletion(-)
+
+diff --git a/src/platform/nm-linux-platform.c b/src/platform/nm-linux-platform.c
+index b5e3618..dacdc16 100644
+--- a/src/platform/nm-linux-platform.c
++++ b/src/platform/nm-linux-platform.c
+@@ -2405,8 +2405,19 @@ build_rtnl_addr (int family,
+ rtnl_addr_set_valid_lifetime (rtnladdr, lifetime);
+ rtnl_addr_set_preferred_lifetime (rtnladdr, preferred);
+ }
+- if (flags)
++ if (flags) {
++ if ((flags & ~0xFF) && !check_support_kernel_extended_ifa_flags (nm_platform_get ())) {
++ /* Older kernels don't accept unknown netlink attributes.
++ *
++ * With commit libnl commit 5206c050504f8676a24854519b9c351470fb7cc6, libnl will only set
++ * the extended address flags attribute IFA_FLAGS when necessary (> 8 bit). But it's up to
++ * us not to shove those extended flags on to older kernels.
++ *
++ * Just silently clear them. The kernel should ignore those unknown flags anyway. */
++ flags &= 0xFF;
++ }
+ rtnl_addr_set_flags (rtnladdr, flags);
++ }
+
+ return (struct nl_object *) rtnladdr;
+ }
+--
+1.9.0
+
diff --git a/0055-rh1080474-nmcli-show-mbit-s.patch b/0055-rh1080474-nmcli-show-mbit-s.patch
new file mode 100644
index 0000000..ed11a26
--- /dev/null
+++ b/0055-rh1080474-nmcli-show-mbit-s.patch
@@ -0,0 +1,873 @@
+From c1dfa412dccec7ce2a27a1da36b2e0e4679cbc6a Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Ji=C5=99=C3=AD=20Klime=C5=A1?= <jklimes at redhat.com>
+Date: Tue, 1 Apr 2014 14:53:00 +0200
+Subject: [PATCH 1/5] trivial: make clear the maximum bitrate is in kbit/s
+
+(cherry picked from commit 759236681ca1d1a472c136aef4c571a0ee954056)
+---
+ libnm-glib/nm-access-point.c | 6 +++---
+ libnm-glib/nm-device-wifi.c | 6 +++---
+ src/nm-wifi-ap.c | 2 +-
+ 3 files changed, 7 insertions(+), 7 deletions(-)
+
+diff --git a/libnm-glib/nm-access-point.c b/libnm-glib/nm-access-point.c
+index 56dcb11..6c090c0 100644
+--- a/libnm-glib/nm-access-point.c
++++ b/libnm-glib/nm-access-point.c
+@@ -236,9 +236,9 @@ nm_access_point_get_mode (NMAccessPoint *ap)
+ * nm_access_point_get_max_bitrate:
+ * @ap: a #NMAccessPoint
+ *
+- * Gets the maximum bit rate of the access point.
++ * Gets the maximum bit rate of the access point in kbit/s.
+ *
+- * Returns: the maximum bit rate
++ * Returns: the maximum bit rate (kbit/s)
+ **/
+ guint32
+ nm_access_point_get_max_bitrate (NMAccessPoint *ap)
+@@ -661,7 +661,7 @@ nm_access_point_class_init (NMAccessPointClass *ap_class)
+ /**
+ * NMAccessPoint:max-bitrate:
+ *
+- * The maximum bit rate of the access point.
++ * The maximum bit rate of the access point in kbit/s.
+ **/
+ g_object_class_install_property
+ (object_class, PROP_MAX_BITRATE,
+diff --git a/libnm-glib/nm-device-wifi.c b/libnm-glib/nm-device-wifi.c
+index cda8eb0..8ffdf42 100644
+--- a/libnm-glib/nm-device-wifi.c
++++ b/libnm-glib/nm-device-wifi.c
+@@ -185,9 +185,9 @@ nm_device_wifi_get_mode (NMDeviceWifi *device)
+ * nm_device_wifi_get_bitrate:
+ * @device: a #NMDeviceWifi
+ *
+- * Gets the bit rate of the #NMDeviceWifi.
++ * Gets the bit rate of the #NMDeviceWifi in kbit/s.
+ *
+- * Returns: the bit rate
++ * Returns: the bit rate (kbit/s)
+ **/
+ guint32
+ nm_device_wifi_get_bitrate (NMDeviceWifi *device)
+@@ -744,7 +744,7 @@ nm_device_wifi_class_init (NMDeviceWifiClass *wifi_class)
+ /**
+ * NMDeviceWifi:bitrate:
+ *
+- * The bit rate of the device.
++ * The bit rate of the device in kbit/s.
+ **/
+ g_object_class_install_property
+ (object_class, PROP_BITRATE,
+diff --git a/src/nm-wifi-ap.c b/src/nm-wifi-ap.c
+index fb12754..06be315 100644
+--- a/src/nm-wifi-ap.c
++++ b/src/nm-wifi-ap.c
+@@ -1023,7 +1023,7 @@ nm_ap_set_freq (NMAccessPoint *ap,
+
+
+ /*
+- * Get/set functions for max bitrate
++ * Get/set functions for max bitrate (in kbit/s)
+ *
+ */
+ guint32 nm_ap_get_max_bitrate (NMAccessPoint *ap)
+--
+1.9.0
+
+
+From 0bcda31fe413ee681b02ce131fa3d47f319861f1 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Ji=C5=99=C3=AD=20Klime=C5=A1?= <jklimes at redhat.com>
+Date: Tue, 1 Apr 2014 14:56:32 +0200
+Subject: [PATCH 2/5] nmcli: use correct Mbit/s units for maximal bitrate (rh
+ #1080474)
+
+https://bugzilla.redhat.com/show_bug.cgi?id=1080474
+(cherry picked from commit c1e5493117dac1c57e02b0f30c12a0f8903133c3)
+---
+ cli/src/devices.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/cli/src/devices.c b/cli/src/devices.c
+index bcbf287..03eefbc 100644
+--- a/cli/src/devices.c
++++ b/cli/src/devices.c
+@@ -433,7 +433,7 @@ fill_output_access_point (gpointer data, gpointer user_data)
+ }
+ channel_str = g_strdup_printf ("%u", nm_utils_wifi_freq_to_channel (freq));
+ freq_str = g_strdup_printf (_("%u MHz"), freq);
+- bitrate_str = g_strdup_printf (_("%u MB/s"), bitrate/1000);
++ bitrate_str = g_strdup_printf (_("%u Mbit/s"), bitrate/1000);
+ strength_str = g_strdup_printf ("%u", strength);
+ wpa_flags_str = ap_wpa_rsn_flags_to_string (wpa_flags);
+ rsn_flags_str = ap_wpa_rsn_flags_to_string (rsn_flags);
+--
+1.9.0
+
+
+From 73abea116465955c64550e49629159ed7098a63f Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Ji=C5=99=C3=AD=20Klime=C5=A1?= <jklimes at redhat.com>
+Date: Tue, 1 Apr 2014 15:07:22 +0200
+Subject: [PATCH 3/5] examples: use correct Mbit/s for bitrates
+
+(cherry picked from commit 7211d82f7726824f7967242a104aa3a1f2fed4b3)
+---
+ examples/C/glib/get-ap-info-libnm-glib.c | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/examples/C/glib/get-ap-info-libnm-glib.c b/examples/C/glib/get-ap-info-libnm-glib.c
+index e72ce54..c144be2 100644
+--- a/examples/C/glib/get-ap-info-libnm-glib.c
++++ b/examples/C/glib/get-ap-info-libnm-glib.c
+@@ -105,7 +105,7 @@ show_access_point_info (NMAccessPoint *ap)
+ /* Convert to strings */
+ ssid_str = nm_utils_ssid_to_utf8 (ssid);
+ freq_str = g_strdup_printf ("%u MHz", freq);
+- bitrate_str = g_strdup_printf ("%u MB/s", bitrate/1000);
++ bitrate_str = g_strdup_printf ("%u Mbit/s", bitrate/1000);
+ strength_str = g_strdup_printf ("%u", strength);
+ wpa_flags_str = ap_wpa_rsn_flags_to_string (wpa_flags);
+ rsn_flags_str = ap_wpa_rsn_flags_to_string (rsn_flags);
+@@ -178,7 +178,7 @@ show_wifi_device_info (NMDevice *device)
+ speed = nm_device_wifi_get_bitrate (NM_DEVICE_WIFI (device));
+ speed /= 1000;
+
+- printf ("Device: %s ---- Driver: %s ---- Speed: %d MB/s ---- Active AP: %s\n",
++ printf ("Device: %s ---- Driver: %s ---- Speed: %d Mbit/s ---- Active AP: %s\n",
+ iface, driver, speed, active_ssid_str ? active_ssid_str : "none");
+ printf ("=================================================================================\n");
+ g_free (active_ssid_str);
+--
+1.9.0
+
+
+From 884fb928636176fd9dc6c6e6bc5e0935c2411e6a Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Ji=C5=99=C3=AD=20Klime=C5=A1?= <jklimes at redhat.com>
+Date: Tue, 1 Apr 2014 15:09:34 +0200
+Subject: [PATCH 4/5] man: use correct Mbit/s for maximum bitrate in
+ nmcli-examples
+
+(cherry picked from commit b3cbb260ef601a37a7d986563f02646e1b00d660)
+
+Conflicts:
+ man/nmcli-examples.xml
+---
+ man/nmcli-examples.5 | 22 +++++++++++-----------
+ 1 file changed, 11 insertions(+), 11 deletions(-)
+
+diff --git a/man/nmcli-examples.5 b/man/nmcli-examples.5
+index 9d05ec6..44b5f4e 100644
+--- a/man/nmcli-examples.5
++++ b/man/nmcli-examples.5
+@@ -64,17 +64,17 @@ $ nmcli device wifi list
+ .\}
+ .nf
+ * SSID MODE CHAN RATE SIGNAL BARS SECURITY
+- netdatacomm_local Infra 6 54 MB/s 37 ▂▄__ WEP
+-* F1 Infra 11 54 MB/s 98 ▂▄▆█ WPA1
+- LoremCorp Infra 1 54 MB/s 62 ▂▄▆_ WPA2 802\&.1X
+- Internet Infra 6 54 MB/s 29 ▂___ WPA1
+- HPB110a\&.F2672A Ad\-Hoc 6 54 MB/s 22 ▂___ \-\-
+- Jozinet Infra 1 54 MB/s 19 ▂___ WEP
+- VOIP Infra 1 54 MB/s 20 ▂___ WEP
+- MARTINA Infra 4 54 MB/s 32 ▂▄__ WPA2
+- N24PU1 Infra 7 11 MB/s 22 ▂___ \-\-
+- alfa Infra 1 54 MB/s 67 ▂▄▆_ WPA2
+- bertnet Infra 5 54 MB/s 20 ▂___ WPA1 WPA2
++ netdatacomm_local Infra 6 54 MBit/s 37 ▂▄__ WEP
++* F1 Infra 11 54 MBit/s 98 ▂▄▆█ WPA1
++ LoremCorp Infra 1 54 MBit/s 62 ▂▄▆_ WPA2 802\&.1X
++ Internet Infra 6 54 MBit/s 29 ▂___ WPA1
++ HPB110a\&.F2672A Ad\-Hoc 6 54 MBit/s 22 ▂___ \-\-
++ Jozinet Infra 1 54 MBit/s 19 ▂___ WEP
++ VOIP Infra 1 54 MBit/s 20 ▂___ WEP
++ MARTINA Infra 4 54 MBit/s 32 ▂▄__ WPA2
++ N24PU1 Infra 7 11 MBit/s 22 ▂___ \-\-
++ alfa Infra 1 54 MBit/s 67 ▂▄▆_ WPA2
++ bertnet Infra 5 54 MBit/s 20 ▂___ WPA1 WPA2
+
+ .fi
+ .if n \{\
+--
+1.9.0
+
+
+From 88c40d47437cfa25d7a5075923096ba6c067bcfa Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Ji=C5=99=C3=AD=20Klime=C5=A1?= <jklimes at redhat.com>
+Date: Tue, 1 Apr 2014 15:12:09 +0200
+Subject: [PATCH 5/5] po: fix "MB/s" -> "Mbit/s"
+
+(cherry picked from commit cb80daa94225b5ef459b503768fa63463b33a5de)
+
+Conflicts:
+ po/as.po
+ po/uk.po
+---
+ po/as.po | 4 ++--
+ po/bg.po | 4 ++--
+ po/bn_IN.po | 2 +-
+ po/ca.po | 4 ++--
+ po/cs.po | 4 ++--
+ po/da.po | 4 ++--
+ po/de.po | 4 ++--
+ po/el.po | 4 ++--
+ po/en_GB.po | 4 ++--
+ po/eo.po | 4 ++--
+ po/es.po | 4 ++--
+ po/eu.po | 4 ++--
+ po/fi.po | 2 +-
+ po/fr.po | 2 +-
+ po/gl.po | 4 ++--
+ po/gu.po | 4 ++--
+ po/hi.po | 4 ++--
+ po/hr.po | 4 ++--
+ po/hu.po | 4 ++--
+ po/id.po | 4 ++--
+ po/it.po | 4 ++--
+ po/ja.po | 4 ++--
+ po/kn.po | 4 ++--
+ po/ko.po | 4 ++--
+ po/lt.po | 4 ++--
+ po/ml.po | 4 ++--
+ po/mr.po | 4 ++--
+ po/or.po | 4 ++--
+ po/pa.po | 4 ++--
+ po/pl.po | 4 ++--
+ po/pt_BR.po | 4 ++--
+ po/ru.po | 2 +-
+ po/sl.po | 4 ++--
+ po/sr.po | 4 ++--
+ po/sr at latin.po | 4 ++--
+ po/sv.po | 4 ++--
+ po/ta.po | 4 ++--
+ po/te.po | 4 ++--
+ po/tr.po | 4 ++--
+ po/uk.po | 2 +-
+ po/zh_CN.po | 4 ++--
+ po/zh_TW.po | 4 ++--
+ 42 files changed, 79 insertions(+), 79 deletions(-)
+
+diff --git a/po/as.po b/po/as.po
+index 2e62dff..c6dc17b 100644
+--- a/po/as.po
++++ b/po/as.po
+@@ -1723,8 +1723,8 @@ msgstr "%u MHz"
+
+ #: ../cli/src/devices.c:417
+ #, c-format
+-msgid "%u MB/s"
+-msgstr "%u MB/s"
++msgid "%u MBit/s"
++msgstr "%u MBit/s"
+
+ #: ../cli/src/devices.c:426
+ msgid "Encrypted: "
+diff --git a/po/bg.po b/po/bg.po
+index cda45f1..0269643 100644
+--- a/po/bg.po
++++ b/po/bg.po
+@@ -774,8 +774,8 @@ msgstr "%u MHz"
+
+ #: ../cli/src/devices.c:431
+ #, c-format
+-msgid "%u MB/s"
+-msgstr "%u MB/s"
++msgid "%u Mbit/s"
++msgstr "%u Mbit/s"
+
+ #: ../cli/src/devices.c:440
+ msgid "Encrypted: "
+diff --git a/po/bn_IN.po b/po/bn_IN.po
+index 6d3f830..02a511d 100644
+--- a/po/bn_IN.po
++++ b/po/bn_IN.po
+@@ -1170,7 +1170,7 @@ msgstr "%u MHz"
+
+ #: ../cli/src/devices.c:401
+ #, c-format
+-msgid "%u MB/s"
++msgid "%u Mbit/s"
+ msgstr "%u মেগাবাইট/সেকেন্ড"
+
+ #: ../cli/src/devices.c:410
+diff --git a/po/ca.po b/po/ca.po
+index d4e6c8e..c3940b9 100644
+--- a/po/ca.po
++++ b/po/ca.po
+@@ -766,8 +766,8 @@ msgstr "%u MHz"
+
+ #: ../cli/src/devices.c:431
+ #, c-format
+-msgid "%u MB/s"
+-msgstr "%u MB/s"
++msgid "%u Mbit/s"
++msgstr "%u Mbit/s"
+
+ #: ../cli/src/devices.c:440
+ msgid "Encrypted: "
+diff --git a/po/cs.po b/po/cs.po
+index 0cb1482..25b2be1 100644
+--- a/po/cs.po
++++ b/po/cs.po
+@@ -820,8 +820,8 @@ msgstr "%u MHz"
+
+ #: ../cli/src/devices.c:461
+ #, c-format
+-msgid "%u MB/s"
+-msgstr "%u MB/s"
++msgid "%u Mbit/s"
++msgstr "%u Mbit/s"
+
+ #: ../cli/src/devices.c:470
+ msgid "Encrypted: "
+diff --git a/po/da.po b/po/da.po
+index bbcde42..82f456c 100644
+--- a/po/da.po
++++ b/po/da.po
+@@ -797,8 +797,8 @@ msgstr "%u MHz"
+
+ #: ../cli/src/devices.c:395
+ #, c-format
+-msgid "%u MB/s"
+-msgstr "%u MB/s"
++msgid "%u Mbit/s"
++msgstr "%u Mbit/s"
+
+ #: ../cli/src/devices.c:404
+ msgid "Encrypted: "
+diff --git a/po/de.po b/po/de.po
+index 3eb730e..2162091 100644
+--- a/po/de.po
++++ b/po/de.po
+@@ -2701,8 +2701,8 @@ msgstr "%u MHz"
+
+ #: ../cli/src/devices.c:433
+ #, c-format
+-msgid "%u MB/s"
+-msgstr "%u MB/s"
++msgid "%u Mbit/s"
++msgstr "%u Mbit/s"
+
+ #: ../cli/src/devices.c:452
+ msgid "WPA1"
+diff --git a/po/el.po b/po/el.po
+index 355249d..db8cf54 100644
+--- a/po/el.po
++++ b/po/el.po
+@@ -1160,8 +1160,8 @@ msgstr "%u MHz"
+
+ #: ../cli/src/devices.c:380
+ #, c-format
+-msgid "%u MB/s"
+-msgstr "%u MB/s"
++msgid "%u Mbit/s"
++msgstr "%u Mbit/s"
+
+ #: ../cli/src/devices.c:389
+ msgid "Encrypted: "
+diff --git a/po/en_GB.po b/po/en_GB.po
+index 32235ce..3997ed5 100644
+--- a/po/en_GB.po
++++ b/po/en_GB.po
+@@ -1157,8 +1157,8 @@ msgstr "%u MHz"
+
+ #: ../cli/src/devices.c:380
+ #, c-format
+-msgid "%u MB/s"
+-msgstr "%u MB/s"
++msgid "%u Mbit/s"
++msgstr "%u Mbit/s"
+
+ #: ../cli/src/devices.c:389
+ msgid "Encrypted: "
+diff --git a/po/eo.po b/po/eo.po
+index 0284ae6..c466a5d 100644
+--- a/po/eo.po
++++ b/po/eo.po
+@@ -1122,8 +1122,8 @@ msgstr "%u MHz"
+
+ #: ../cli/src/devices.c:557
+ #, c-format
+-msgid "%u MB/s"
+-msgstr "%u MB/s"
++msgid "%u Mbit/s"
++msgstr "%u Mbit/s"
+
+ #: ../cli/src/devices.c:566
+ msgid "Encrypted: "
+diff --git a/po/es.po b/po/es.po
+index 5c1bde6..7b72529 100644
+--- a/po/es.po
++++ b/po/es.po
+@@ -814,8 +814,8 @@ msgstr "%u MHz"
+
+ #: ../cli/src/devices.c:461
+ #, c-format
+-msgid "%u MB/s"
+-msgstr "%u MB/s"
++msgid "%u Mbit/s"
++msgstr "%u Mbit/s"
+
+ #: ../cli/src/devices.c:470
+ msgid "Encrypted: "
+diff --git a/po/eu.po b/po/eu.po
+index 68b8204..20026f9 100644
+--- a/po/eu.po
++++ b/po/eu.po
+@@ -638,8 +638,8 @@ msgstr "%u MHz"
+
+ #: ../cli/src/devices.c:863
+ #, c-format
+-msgid "%u MB/s"
+-msgstr "%u MB/s"
++msgid "%u Mbit/s"
++msgstr "%u Mbit/s"
+
+ #: ../cli/src/devices.c:869 ../cli/src/devices.c:871
+ msgid "AP parameters"
+diff --git a/po/fi.po b/po/fi.po
+index 8a7517f..b4deae7 100644
+--- a/po/fi.po
++++ b/po/fi.po
+@@ -761,7 +761,7 @@ msgstr "%u MHz"
+
+ #: ../cli/src/devices.c:461
+ #, c-format
+-msgid "%u MB/s"
++msgid "%u Mbit/s"
+ msgstr ""
+
+ #: ../cli/src/devices.c:470
+diff --git a/po/fr.po b/po/fr.po
+index b56bf3f..378831e 100644
+--- a/po/fr.po
++++ b/po/fr.po
+@@ -787,7 +787,7 @@ msgstr "%u MHz"
+
+ #: ../cli/src/devices.c:461
+ #, c-format
+-msgid "%u MB/s"
++msgid "%u Mbit/s"
+ msgstr "%u Mo/s"
+
+ #: ../cli/src/devices.c:470
+diff --git a/po/gl.po b/po/gl.po
+index 310b66f..5dc613d 100644
+--- a/po/gl.po
++++ b/po/gl.po
+@@ -1210,8 +1210,8 @@ msgstr "%u MHz"
+
+ #: ../cli/src/devices.c:404
+ #, c-format
+-msgid "%u MB/s"
+-msgstr "%u MB/s"
++msgid "%u Mbit/s"
++msgstr "%u Mbit/s"
+
+ #: ../cli/src/devices.c:413
+ msgid "Encrypted: "
+diff --git a/po/gu.po b/po/gu.po
+index 9459218..eb3a185 100644
+--- a/po/gu.po
++++ b/po/gu.po
+@@ -1713,8 +1713,8 @@ msgstr "%u MHz"
+
+ #: ../cli/src/devices.c:417
+ #, c-format
+-msgid "%u MB/s"
+-msgstr "%u MB/s"
++msgid "%u Mbit/s"
++msgstr "%u Mbit/s"
+
+ #: ../cli/src/devices.c:426
+ msgid "Encrypted: "
+diff --git a/po/hi.po b/po/hi.po
+index aa0b3bf..c6e7938 100644
+--- a/po/hi.po
++++ b/po/hi.po
+@@ -1267,8 +1267,8 @@ msgstr "%u MHz"
+
+ #: ../cli/src/devices.c:418
+ #, c-format
+-msgid "%u MB/s"
+-msgstr "%u MB/s"
++msgid "%u Mbit/s"
++msgstr "%u Mbit/s"
+
+ #: ../cli/src/devices.c:427
+ msgid "Encrypted: "
+diff --git a/po/hr.po b/po/hr.po
+index 4e24565..3cc5e45 100644
+--- a/po/hr.po
++++ b/po/hr.po
+@@ -794,8 +794,8 @@ msgstr "%u MHz"
+
+ #: ../cli/src/devices.c:471
+ #, c-format
+-msgid "%u MB/s"
+-msgstr "%u MB/s"
++msgid "%u Mbit/s"
++msgstr "%u Mbit/s"
+
+ #: ../cli/src/devices.c:480
+ msgid "Encrypted: "
+diff --git a/po/hu.po b/po/hu.po
+index 237cce7..00d95bc 100644
+--- a/po/hu.po
++++ b/po/hu.po
+@@ -1257,8 +1257,8 @@ msgstr "%u MHz"
+
+ #: ../cli/src/devices.c:418
+ #, c-format
+-msgid "%u MB/s"
+-msgstr "%u MB/s"
++msgid "%u Mbit/s"
++msgstr "%u Mbit/s"
+
+ #: ../cli/src/devices.c:427
+ msgid "Encrypted: "
+diff --git a/po/id.po b/po/id.po
+index 42cc406..0288338 100644
+--- a/po/id.po
++++ b/po/id.po
+@@ -1135,8 +1135,8 @@ msgstr "%u MHz"
+
+ #: ../cli/src/devices.c:380
+ #, c-format
+-msgid "%u MB/s"
+-msgstr "%u MB/s"
++msgid "%u Mbit/s"
++msgstr "%u Mbit/s"
+
+ #: ../cli/src/devices.c:389
+ msgid "Encrypted: "
+diff --git a/po/it.po b/po/it.po
+index 6b2eb9e..867109a 100644
+--- a/po/it.po
++++ b/po/it.po
+@@ -2400,8 +2400,8 @@ msgstr "%u MHz"
+
+ #: ../cli/src/devices.c:433
+ #, c-format
+-msgid "%u MB/s"
+-msgstr "%u MB/s"
++msgid "%u Mbit/s"
++msgstr "%u Mbit/s"
+
+ #: ../cli/src/devices.c:452
+ msgid "WPA1"
+diff --git a/po/ja.po b/po/ja.po
+index 02d7515..ddf8578 100644
+--- a/po/ja.po
++++ b/po/ja.po
+@@ -2671,8 +2671,8 @@ msgstr "%u MHz"
+
+ #: ../cli/src/devices.c:433
+ #, c-format
+-msgid "%u MB/s"
+-msgstr "%u MB/s"
++msgid "%u Mbit/s"
++msgstr "%u Mbit/s"
+
+ #: ../cli/src/devices.c:452
+ msgid "WPA1"
+diff --git a/po/kn.po b/po/kn.po
+index e19c121..a1891fd 100644
+--- a/po/kn.po
++++ b/po/kn.po
+@@ -1665,8 +1665,8 @@ msgstr "%u MHz"
+
+ #: ../cli/src/devices.c:433
+ #, c-format
+-msgid "%u MB/s"
+-msgstr "%u MB/s"
++msgid "%u Mbit/s"
++msgstr "%u Mbit/s"
+
+ #: ../cli/src/devices.c:452
+ msgid "WPA1"
+diff --git a/po/ko.po b/po/ko.po
+index ba6bb0b..a5e95b4 100644
+--- a/po/ko.po
++++ b/po/ko.po
+@@ -780,8 +780,8 @@ msgstr "%u MHz"
+
+ #: ../cli/src/devices.c:471
+ #, c-format
+-msgid "%u MB/s"
+-msgstr "%u MB/s"
++msgid "%u Mbit/s"
++msgstr "%u Mbit/s"
+
+ #: ../cli/src/devices.c:480
+ msgid "Encrypted: "
+diff --git a/po/lt.po b/po/lt.po
+index 8b17832..bfa26a1 100644
+--- a/po/lt.po
++++ b/po/lt.po
+@@ -2837,8 +2837,8 @@ msgstr "%u MHz"
+
+ #: ../cli/src/devices.c:433
+ #, c-format
+-msgid "%u MB/s"
+-msgstr "%u MB/s"
++msgid "%u Mbit/s"
++msgstr "%u Mbit/s"
+
+ #: ../cli/src/devices.c:452
+ msgid "WPA1"
+diff --git a/po/ml.po b/po/ml.po
+index f5d6841..7a289a2 100644
+--- a/po/ml.po
++++ b/po/ml.po
+@@ -1211,8 +1211,8 @@ msgstr "%u MHz"
+
+ #: ../cli/src/devices.c:418
+ #, c-format
+-msgid "%u MB/s"
+-msgstr "%u MB/s"
++msgid "%u Mbit/s"
++msgstr "%u Mbit/s"
+
+ #: ../cli/src/devices.c:427
+ msgid "Encrypted: "
+diff --git a/po/mr.po b/po/mr.po
+index 45c81fc..e202592 100644
+--- a/po/mr.po
++++ b/po/mr.po
+@@ -2491,8 +2491,8 @@ msgstr "%u MHz"
+
+ #: ../cli/src/devices.c:433
+ #, c-format
+-msgid "%u MB/s"
+-msgstr "%u MB/s"
++msgid "%u Mbit/s"
++msgstr "%u Mbit/s"
+
+ #: ../cli/src/devices.c:452
+ msgid "WPA1"
+diff --git a/po/or.po b/po/or.po
+index ed220ec..5801d61 100644
+--- a/po/or.po
++++ b/po/or.po
+@@ -1727,8 +1727,8 @@ msgstr "%u MHz"
+
+ #: ../cli/src/devices.c:417
+ #, c-format
+-msgid "%u MB/s"
+-msgstr "%u MB/s"
++msgid "%u Mbit/s"
++msgstr "%u Mbit/s"
+
+ #: ../cli/src/devices.c:426
+ msgid "Encrypted: "
+diff --git a/po/pa.po b/po/pa.po
+index 0fd0275..3b8ee45 100644
+--- a/po/pa.po
++++ b/po/pa.po
+@@ -1213,8 +1213,8 @@ msgstr "%u MHz"
+
+ #: ../cli/src/devices.c:380
+ #, c-format
+-msgid "%u MB/s"
+-msgstr "%u MB/s"
++msgid "%u Mbit/s"
++msgstr "%u Mbit/s"
+
+ #: ../cli/src/devices.c:389
+ msgid "Encrypted: "
+diff --git a/po/pl.po b/po/pl.po
+index 7686ae4..9711670 100644
+--- a/po/pl.po
++++ b/po/pl.po
+@@ -2743,8 +2743,8 @@ msgstr "%u MHz"
+
+ #: ../cli/src/devices.c:433
+ #, c-format
+-msgid "%u MB/s"
+-msgstr "%u MB/s"
++msgid "%u Mbit/s"
++msgstr "%u Mbit/s"
+
+ #: ../cli/src/devices.c:452
+ msgid "WPA1"
+diff --git a/po/pt_BR.po b/po/pt_BR.po
+index e188af3..b4008b5 100644
+--- a/po/pt_BR.po
++++ b/po/pt_BR.po
+@@ -2753,8 +2753,8 @@ msgstr "%u MHz"
+
+ #: ../cli/src/devices.c:433
+ #, c-format
+-msgid "%u MB/s"
+-msgstr "%u MB/s"
++msgid "%u Mbit/s"
++msgstr "%u Mbit/s"
+
+ #: ../cli/src/devices.c:452
+ msgid "WPA1"
+diff --git a/po/ru.po b/po/ru.po
+index 56f3fce..490f69d 100644
+--- a/po/ru.po
++++ b/po/ru.po
+@@ -1165,7 +1165,7 @@ msgstr "%u МГц"
+
+ #: ../cli/src/devices.c:400
+ #, c-format
+-msgid "%u MB/s"
++msgid "%u Mbit/s"
+ msgstr "%u МБ/с"
+
+ #: ../cli/src/devices.c:409
+diff --git a/po/sl.po b/po/sl.po
+index 744beb3..ddd4e08 100644
+--- a/po/sl.po
++++ b/po/sl.po
+@@ -1274,8 +1274,8 @@ msgstr "%u MHz"
+
+ #: ../cli/src/devices.c:380
+ #, c-format
+-msgid "%u MB/s"
+-msgstr "%u MB/s"
++msgid "%u Mbit/s"
++msgstr "%u Mbit/s"
+
+ #: ../cli/src/devices.c:389
+ msgid "Encrypted: "
+diff --git a/po/sr.po b/po/sr.po
+index 160630c..baefbaf 100644
+--- a/po/sr.po
++++ b/po/sr.po
+@@ -711,8 +711,8 @@ msgstr "%u MHz"
+
+ #: ../cli/src/devices.c:394
+ #, c-format
+-msgid "%u MB/s"
+-msgstr "%u MB/s"
++msgid "%u Mbit/s"
++msgstr "%u Mbit/s"
+
+ #: ../cli/src/devices.c:403
+ msgid "Encrypted: "
+diff --git a/po/sr at latin.po b/po/sr at latin.po
+index 3158fac..b4f9f28 100644
+--- a/po/sr at latin.po
++++ b/po/sr at latin.po
+@@ -711,8 +711,8 @@ msgstr "%u MHz"
+
+ #: ../cli/src/devices.c:394
+ #, c-format
+-msgid "%u MB/s"
+-msgstr "%u MB/s"
++msgid "%u Mbit/s"
++msgstr "%u Mbit/s"
+
+ #: ../cli/src/devices.c:403
+ msgid "Encrypted: "
+diff --git a/po/sv.po b/po/sv.po
+index 9f66eb6..7bcc960 100644
+--- a/po/sv.po
++++ b/po/sv.po
+@@ -1229,8 +1229,8 @@ msgstr "%u MHz"
+
+ #: ../cli/src/devices.c:557
+ #, c-format
+-msgid "%u MB/s"
+-msgstr "%u MB/s"
++msgid "%u Mbit/s"
++msgstr "%u Mbit/s"
+
+ #: ../cli/src/devices.c:566
+ msgid "Encrypted: "
+diff --git a/po/ta.po b/po/ta.po
+index 058b8fd..16ba218 100644
+--- a/po/ta.po
++++ b/po/ta.po
+@@ -1266,8 +1266,8 @@ msgstr "%u MHz"
+
+ #: ../cli/src/devices.c:418
+ #, c-format
+-msgid "%u MB/s"
+-msgstr "%u MB/s"
++msgid "%u Mbit/s"
++msgstr "%u Mbit/s"
+
+ #: ../cli/src/devices.c:427
+ msgid "Encrypted: "
+diff --git a/po/te.po b/po/te.po
+index 5ba12a0..d4fa28d 100644
+--- a/po/te.po
++++ b/po/te.po
+@@ -1753,8 +1753,8 @@ msgstr "%u MHz"
+
+ #: ../cli/src/devices.c:433
+ #, c-format
+-msgid "%u MB/s"
+-msgstr "%u MB/s"
++msgid "%u Mbit/s"
++msgstr "%u Mbit/s"
+
+ #: ../cli/src/devices.c:452
+ msgid "WPA1"
+diff --git a/po/tr.po b/po/tr.po
+index 867c95e..713163b 100644
+--- a/po/tr.po
++++ b/po/tr.po
+@@ -1231,8 +1231,8 @@ msgstr "%u MHz"
+
+ #: ../cli/src/devices.c:418
+ #, c-format
+-msgid "%u MB/s"
+-msgstr "%u MB/s"
++msgid "%u Mbit/s"
++msgstr "%u Mbit/s"
+
+ #: ../cli/src/devices.c:427
+ msgid "Encrypted: "
+diff --git a/po/uk.po b/po/uk.po
+index 8891829..c92e757 100644
+--- a/po/uk.po
++++ b/po/uk.po
+@@ -1215,7 +1215,7 @@ msgstr "%u МГц"
+
+ #: ../cli/src/devices.c:418
+ #, c-format
+-msgid "%u MB/s"
++msgid "%u MBit/s"
+ msgstr "%u МБ/с"
+
+ #: ../cli/src/devices.c:427
+diff --git a/po/zh_CN.po b/po/zh_CN.po
+index 5f4b64f..742e084 100644
+--- a/po/zh_CN.po
++++ b/po/zh_CN.po
+@@ -708,8 +708,8 @@ msgstr "%u MHz"
+
+ #: ../cli/src/devices.c:394
+ #, c-format
+-msgid "%u MB/s"
+-msgstr "%u MB/s"
++msgid "%u Mbit/s"
++msgstr "%u Mbit/s"
+
+ #: ../cli/src/devices.c:403
+ msgid "Encrypted: "
+diff --git a/po/zh_TW.po b/po/zh_TW.po
+index d6e530f..7d5e1fe 100644
+--- a/po/zh_TW.po
++++ b/po/zh_TW.po
+@@ -698,8 +698,8 @@ msgstr "%u MHz"
+
+ #: ../cli/src/devices.c:350
+ #, c-format
+-msgid "%u MB/s"
+-msgstr "%u MB/s"
++msgid "%u Mbit/s"
++msgstr "%u Mbit/s"
+
+ #: ../cli/src/devices.c:359
+ msgid "Encrypted: "
+--
+1.9.0
+
diff --git a/0056-rh1084556-pending-action-queued-state-lock.patch b/0056-rh1084556-pending-action-queued-state-lock.patch
new file mode 100644
index 0000000..295e693
--- /dev/null
+++ b/0056-rh1084556-pending-action-queued-state-lock.patch
@@ -0,0 +1,67 @@
+From 6e99f5d9850d06cb2743c906843b429cb02173d2 Mon Sep 17 00:00:00 2001
+From: Thomas Haller <thaller at redhat.com>
+Date: Fri, 4 Apr 2014 14:55:37 +0200
+Subject: [PATCH] core: fix hanging pending_action "queued state lock"
+
+This bug caused nm-online to hang because "startup complete" state
+is never reached. Sometimes you also see this error in the logfile:
+
+ <warn> (em1): add_pending_action (3): 'queued state lock' already added
+ file devices/nm-device.c: line 7178 (nm_device_add_pending_action): should not be reached
+
+https://bugzilla.redhat.com/show_bug.cgi?id=1084554
+https://bugzilla.redhat.com/show_bug.cgi?id=1084556
+Related: https://bugzilla.redhat.com/show_bug.cgi?id=1082045
+
+Signed-off-by: Thomas Haller <thaller at redhat.com>
+(cherry picked from commit fc1351504db557b942c121b480fca661162702f7)
+---
+ src/devices/nm-device.c | 22 +++++++++-------------
+ 1 file changed, 9 insertions(+), 13 deletions(-)
+
+diff --git a/src/devices/nm-device.c b/src/devices/nm-device.c
+index c7f72b8..9cb79f2 100644
+--- a/src/devices/nm-device.c
++++ b/src/devices/nm-device.c
+@@ -6485,29 +6485,25 @@ nm_device_queue_state (NMDevice *self,
+
+ priv = NM_DEVICE_GET_PRIVATE (self);
+
+- /* "lock" the pending actions so that if there was a previously
+- * queued action that's about to be cleared, that doesn't drop
+- * the pending actions to 0 before we add the new pending action.
+- */
+- nm_device_add_pending_action (self, "queued state lock");
++ if (priv->queued_state.id && priv->queued_state.state == state)
++ return;
++
++ /* Add pending action for the new state before clearing the queued states, so
++ * that we don't accidently pop all pending states and reach 'startup complete' */
++ nm_device_add_pending_action (self, queued_state_to_string (state));
+
+ /* We should only ever have one delayed state transition at a time */
+ if (priv->queued_state.id) {
+- if (priv->queued_state.state == state)
+- return;
+ nm_log_warn (LOGD_DEVICE, "(%s): overwriting previously queued state change to %s (%s)",
+- nm_device_get_iface (self),
+- state_to_string (priv->queued_state.state),
+- reason_to_string (priv->queued_state.reason));
++ nm_device_get_iface (self),
++ state_to_string (priv->queued_state.state),
++ reason_to_string (priv->queued_state.reason));
+ nm_device_queued_state_clear (self);
+ }
+
+ priv->queued_state.state = state;
+ priv->queued_state.reason = reason;
+ priv->queued_state.id = g_idle_add (queued_set_state, self);
+- nm_device_add_pending_action (self, queued_state_to_string (state));
+-
+- nm_device_remove_pending_action (self, "queued state lock");
+
+ nm_log_dbg (LOGD_DEVICE, "(%s): queued state change to %s due to %s (id %d)",
+ nm_device_get_iface (self), state_to_string (state), reason_to_string (reason),
+--
+1.9.0
+
diff --git a/0057-emit-property-changed-for-active-conn.patch b/0057-emit-property-changed-for-active-conn.patch
new file mode 100644
index 0000000..a76c007
--- /dev/null
+++ b/0057-emit-property-changed-for-active-conn.patch
@@ -0,0 +1,29 @@
+From 12b46b77359115a32ac406794586b886d8cb2587 Mon Sep 17 00:00:00 2001
+From: Dan Williams <dcbw at redhat.com>
+Date: Tue, 18 Mar 2014 15:37:12 -0500
+Subject: [PATCH 1/1] core: emit PropertyChanged signal for ActiveConnection
+ when disconnecting
+
+(cherry picked from commit 73d128bbd17120225bb4986e3f05566f10fab581)
+
+Conflicts:
+ src/devices/nm-device.c
+---
+ src/devices/nm-device.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/src/devices/nm-device.c b/src/devices/nm-device.c
+index 9cb79f2..e50e1c2 100644
+--- a/src/devices/nm-device.c
++++ b/src/devices/nm-device.c
+@@ -4364,6 +4364,7 @@ clear_act_request (NMDevice *self)
+
+ g_object_unref (priv->act_request);
+ priv->act_request = NULL;
++ g_object_notify (G_OBJECT (self), NM_DEVICE_ACTIVE_CONNECTION);
+ }
+
+ static void
+--
+1.9.0
+
diff --git a/NetworkManager.spec b/NetworkManager.spec
index e4dd9a7..b115b3d 100644
--- a/NetworkManager.spec
+++ b/NetworkManager.spec
@@ -42,7 +42,7 @@ Name: NetworkManager
Summary: Network connection manager and user applications
Epoch: 1
Version: 0.9.9.0
-Release: 33%{snapshot}%{?dist}
+Release: 34%{snapshot}%{?dist}
Group: System Environment/Base
License: GPLv2+
URL: http://www.gnome.org/projects/NetworkManager/
@@ -102,6 +102,12 @@ Patch48: 0048-platform-to-string.patch
Patch49: 0049-dbus-bindings.patch
Patch50: 0050-backport-div-fixes.patch
Patch51: 0051-rh1046242-keyfile-crash-fix.patch
+Patch52: 0052-rh1054364-fix-nm-online.patch
+Patch53: 0053-rh1061911-crash-dispose-NMSecretAgent.patch
+Patch54: 0054-rh1063885-extened-address-flags-for-old-kernel.patch
+Patch55: 0055-rh1080474-nmcli-show-mbit-s.patch
+Patch56: 0056-rh1084556-pending-action-queued-state-lock.patch
+Patch57: 0057-emit-property-changed-for-active-conn.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
@@ -318,6 +324,12 @@ by nm-connection-editor and nm-applet in a non-graphical environment.
%patch49 -p1 -b .0049-dbus-bindings.orig
%patch50 -p1 -b .0050-backport-div-fixes.orig
%patch51 -p1 -b .0051-rh1046242-keyfile-crash-fix.orig
+%patch52 -p1 -b .0052-rh1054364-fix-nm-online.orig
+%patch53 -p1 -b .0053-rh1061911-crash-dispose-NMSecretAgent.orig
+%patch54 -p1 -b .0054-rh1063885-extened-address-flags.orig
+%patch55 -p1 -b .0055-rh1080474-nmcli-show-mbit-s.orig
+%patch56 -p1 -b .0056-rh1084556-pending-action-queued-state-lock.orig
+%patch57 -p1 -b .0057-emit-property-changed-for-active-conn.orig
%build
@@ -542,6 +554,14 @@ fi
%endif
%changelog
+* Tue Apr 8 2014 Thomas Haller <thaller at redhat.com> - 0.9.9.0-34.git20131003
+- fix nm-online returning success wrongly (rh #1054364)
+- fix crash in NMSecretAgent dispose (rh #1061911)
+- fix adding addresses with extended address flags for older kernels (rh #1063885)
+- cli: show maximum bitrate in MBit/s (rh #1080474)
+- fix hanging pending action queued-state-lock (rh #1084556)
+- core: emit PropertyChanged signal for ActiveConnection when disconnecting
+
* Fri Mar 21 2014 Jiří Klimeš <jklimes at redhat.com> - 0.9.9.0-33.git20131003
- keyfile: fix crash on reloading connections (rh #1046242)
More information about the scm-commits
mailing list