public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
* [gentoo-commits] proj/kde:master commit in: net-misc/networkmanager-vpnc/, net-misc/networkmanager-openvpn/, ...
@ 2011-08-14 22:47 Alexey Shvetsov
  0 siblings, 0 replies; 2+ messages in thread
From: Alexey Shvetsov @ 2011-08-14 22:47 UTC (permalink / raw
  To: gentoo-commits

commit:     98838c11d9002dd0c89ee2d6774bf220d0786d78
Author:     Alexey Shvetsov <alexxy <AT> gentoo <DOT> org>
AuthorDate: Sun Aug 14 22:46:03 2011 +0000
Commit:     Alexey Shvetsov <alexxy <AT> gentoo <DOT> org>
CommitDate: Sun Aug 14 22:46:03 2011 +0000
URL:        http://git.overlays.gentoo.org/gitweb/?p=proj/kde.git;a=commit;h=98838c11

[net-misc] Sync nm ebuilds with gnome overlay

---
 .../networkmanager-openswan-0.8.999.ebuild         |   52 ++
 .../networkmanager-openvpn-0.8.9997.ebuild         |   50 ++
 .../networkmanager-pptp-0.8.999.ebuild             |   54 +++
 .../networkmanager-vpnc-0.8.999.ebuild             |   56 +++
 ...auto-retries-counter-when-cable-is-replug.patch |   80 +++
 ...ix-auto-connect-to-hidden-SSIDs-rh-707406.patch |  502 ++++++++++++++++++++
 ...fix-crash-for-AddAndActivateConnection-D-.patch |   29 ++
 ...ve-invalid-mark-for-failed-connections-af.patch |  109 +++++
 ...tions-failed-due-to-missing-secrets-are-r.patch |  280 +++++++++++
 ...-not-crash-on-GetSecrets-in-case-of-missi.patch |   29 ++
 ...tinguish-better-between-string-x-int-list.patch |   70 +++
 ...-integer-list-SSID-parsing-after-30c41a4b.patch |  211 ++++++++
 ...default-to-allowing-IPv6-connections-to-f.patch |   32 ++
 .../files/networkmanager-fix-tests.patch           |   18 +
 .../files/nm-system-settings.conf-ifnet            |    6 +
 net-misc/networkmanager/metadata.xml               |   15 +-
 ...97.ebuild => networkmanager-0.8.9997-r1.ebuild} |   80 ++--
 net-misc/networkmanager/networkmanager-9999.ebuild |  148 ------
 18 files changed, 1620 insertions(+), 201 deletions(-)

diff --git a/net-misc/networkmanager-openswan/networkmanager-openswan-0.8.999.ebuild b/net-misc/networkmanager-openswan/networkmanager-openswan-0.8.999.ebuild
new file mode 100644
index 0000000..3fe1c4d
--- /dev/null
+++ b/net-misc/networkmanager-openswan/networkmanager-openswan-0.8.999.ebuild
@@ -0,0 +1,52 @@
+# Copyright 1999-2011 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: $
+
+EAPI="4"
+GNOME_TARBALL_SUFFIX="bz2"
+GNOME_ORG_MODULE="NetworkManager-${PN##*-}"
+
+inherit gnome.org
+
+# NetworkManager likes itself with capital letters
+MY_PN="${GNOME_ORG_MODULE}"
+
+DESCRIPTION="NetworkManager Openswan plugin"
+HOMEPAGE="http://www.gnome.org/projects/NetworkManager/"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="gnome"
+
+RDEPEND="
+	>=net-misc/networkmanager-${PV}
+	>=dev-libs/dbus-glib-0.74
+	>=net-misc/vpnc-0.5
+	gnome? (
+		>=x11-libs/gtk+-3.0.0:3
+		gnome-base/gnome-keyring
+	)"
+
+DEPEND="${RDEPEND}
+	sys-devel/gettext
+	dev-util/intltool
+	dev-util/pkgconfig"
+
+S="${WORKDIR}/${MY_PN}-${PV}"
+
+src_configure() {
+	ECONF="--disable-more-warnings
+		--disable-static
+		--with-dist-version=Gentoo
+		--with-gtkver=3.0
+		$(use_with gnome)"
+
+	econf ${ECONF}
+}
+
+src_install() {
+	default
+	# Remove useless .la files
+	find "${D}" -name '*.la' -exec rm -f {} +
+}

diff --git a/net-misc/networkmanager-openvpn/networkmanager-openvpn-0.8.9997.ebuild b/net-misc/networkmanager-openvpn/networkmanager-openvpn-0.8.9997.ebuild
new file mode 100644
index 0000000..e4d0bdd
--- /dev/null
+++ b/net-misc/networkmanager-openvpn/networkmanager-openvpn-0.8.9997.ebuild
@@ -0,0 +1,50 @@
+# Copyright 1999-2011 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: $
+
+EAPI="4"
+GNOME_ORG_MODULE="NetworkManager-${PN##*-}"
+
+inherit gnome.org
+
+DESCRIPTION="NetworkManager OpenVPN plugin"
+HOMEPAGE="http://www.gnome.org/projects/NetworkManager/"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="gnome test"
+
+RDEPEND="
+	>=dev-libs/dbus-glib-0.74
+	>=net-misc/networkmanager-${PV}
+	>=net-misc/openvpn-2.1_rc9
+	gnome? (
+		>=x11-libs/gtk+-2.91.4:3
+		gnome-base/gnome-keyring
+	)"
+
+DEPEND="${RDEPEND}
+	sys-devel/gettext
+	>=dev-util/intltool-0.35
+	dev-util/pkgconfig"
+
+# FAIL: (tls-import-data) unexpected 'ca' secret value
+#RESTRICT="test"
+
+src_configure() {
+	ECONF="--disable-more-warnings
+		--disable-static
+		--with-dist-version=Gentoo
+		--with-gtkver=3.0
+		$(use_with gnome)
+		$(use_with test tests)"
+
+	econf ${ECONF}
+}
+
+src_install() {
+	default
+	# Remove useless .la files
+	find "${D}" -name '*.la' -exec rm -f {} +
+}

diff --git a/net-misc/networkmanager-pptp/networkmanager-pptp-0.8.999.ebuild b/net-misc/networkmanager-pptp/networkmanager-pptp-0.8.999.ebuild
new file mode 100644
index 0000000..8f5d0cb
--- /dev/null
+++ b/net-misc/networkmanager-pptp/networkmanager-pptp-0.8.999.ebuild
@@ -0,0 +1,54 @@
+# Copyright 1999-2011 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: $
+
+EAPI="4"
+GNOME_TARBALL_SUFFIX="bz2"
+GNOME_ORG_MODULE="NetworkManager-${PN##*-}"
+
+inherit gnome.org
+
+# NetworkManager likes itself with capital letters
+MY_PN="${GNOME_ORG_MODULE}"
+
+DESCRIPTION="NetworkManager PPTP plugin"
+HOMEPAGE="http://www.gnome.org/projects/NetworkManager/"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="gnome test"
+
+RDEPEND="
+	>=net-misc/networkmanager-${PV}
+	>=dev-libs/dbus-glib-0.74
+	net-dialup/ppp
+	net-dialup/pptpclient
+	gnome? (
+		>=x11-libs/gtk+-2.91.4:3
+		gnome-base/gnome-keyring
+	)"
+
+DEPEND="${RDEPEND}
+	sys-devel/gettext
+	dev-util/intltool
+	dev-util/pkgconfig"
+
+S="${WORKDIR}/${MY_PN}-${PV}"
+
+src_configure() {
+	ECONF="--disable-more-warnings
+		--disable-static
+		--with-dist-version=Gentoo
+		--with-gtkver=3.0
+		$(use_with gnome)
+		$(use_with test tests)"
+
+	econf ${ECONF}
+}
+
+src_install() {
+	default
+	# Remove useless .la files
+	find "${D}" -name '*.la' -exec rm -f {} +
+}

diff --git a/net-misc/networkmanager-vpnc/networkmanager-vpnc-0.8.999.ebuild b/net-misc/networkmanager-vpnc/networkmanager-vpnc-0.8.999.ebuild
new file mode 100644
index 0000000..fa09413
--- /dev/null
+++ b/net-misc/networkmanager-vpnc/networkmanager-vpnc-0.8.999.ebuild
@@ -0,0 +1,56 @@
+# Copyright 1999-2011 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: $
+
+EAPI="4"
+GNOME_TARBALL_SUFFIX="bz2"
+GNOME_ORG_MODULE="NetworkManager-${PN##*-}"
+
+inherit gnome.org
+
+# NetworkManager likes itself with capital letters
+MY_PN="${GNOME_ORG_MODULE}"
+
+DESCRIPTION="NetworkManager VPNC plugin"
+HOMEPAGE="http://www.gnome.org/projects/NetworkManager/"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="gnome test"
+
+RDEPEND="
+	>=net-misc/networkmanager-${PV}
+	>=dev-libs/dbus-glib-0.74
+	>=net-misc/vpnc-0.5
+	gnome? (
+		>=x11-libs/gtk+-2.91.4:3
+		gnome-base/gnome-keyring
+	)"
+
+DEPEND="${RDEPEND}
+	sys-devel/gettext
+	dev-util/intltool
+	dev-util/pkgconfig"
+
+S="${WORKDIR}/${MY_PN}-${PV}"
+
+# XXX: https://bugzilla.gnome.org/show_bug.cgi?id=608348
+RESTRICT="test"
+
+src_configure() {
+	ECONF="--disable-more-warnings
+		--disable-static
+		--with-dist-version=Gentoo
+		--with-gtkver=3.0
+		$(use_with gnome)
+		$(use_with test tests)"
+
+	econf ${ECONF}
+}
+
+src_install() {
+	default
+	# Remove useless .la files
+	find "${D}" -name '*.la' -exec rm -f {} +
+}

diff --git a/net-misc/networkmanager/files/0.8.9997/0001-core-reset-auto-retries-counter-when-cable-is-replug.patch b/net-misc/networkmanager/files/0.8.9997/0001-core-reset-auto-retries-counter-when-cable-is-replug.patch
new file mode 100644
index 0000000..f6eb6bc
--- /dev/null
+++ b/net-misc/networkmanager/files/0.8.9997/0001-core-reset-auto-retries-counter-when-cable-is-replug.patch
@@ -0,0 +1,80 @@
+From 9aa7efcf28a0230876fc6fc5be6dfee5f35d0630 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Ji=C5=99=C3=AD=20Klime=C5=A1?= <jklimes@redhat.com>
+Date: Mon, 30 May 2011 12:07:41 +0100
+Subject: [PATCH] core: reset auto retries counter when cable is replugged
+
+When re-plugging we may be in a different network. So we should try the
+compatible connections again.
+
+Based on a patch from Mikhail Efremov.
+---
+ src/nm-policy.c |   21 +++++++++++++++------
+ 1 files changed, 15 insertions(+), 6 deletions(-)
+
+diff --git a/src/nm-policy.c b/src/nm-policy.c
+index 194d111..b98fe32 100644
+--- a/src/nm-policy.c
++++ b/src/nm-policy.c
+@@ -817,13 +817,17 @@ hostname_changed (NMManager *manager, GParamSpec *pspec, gpointer user_data)
+ }
+ 
+ static void
+-reset_retries_all (NMSettings *settings)
++reset_retries_all (NMSettings *settings, NMDevice *device)
+ {
+ 	GSList *connections, *iter;
++	GError *error = NULL;
+ 
+ 	connections = nm_settings_get_connections (settings);
+-	for (iter = connections; iter; iter = g_slist_next (iter))
+-		set_connection_auto_retries (NM_CONNECTION (iter->data), RETRIES_DEFAULT);
++	for (iter = connections; iter; iter = g_slist_next (iter)) {
++		if (!device || nm_device_interface_check_connection_compatible (NM_DEVICE_INTERFACE (device), iter->data, &error))
++			set_connection_auto_retries (NM_CONNECTION (iter->data), RETRIES_DEFAULT);
++		g_clear_error (&error);
++	}
+ 	g_slist_free (connections);
+ }
+ 
+@@ -838,7 +842,7 @@ sleeping_changed (NMManager *manager, GParamSpec *pspec, gpointer user_data)
+ 
+ 	/* Reset retries on all connections so they'll checked on wakeup */
+ 	if (sleeping || !enabled)
+-		reset_retries_all (policy->settings);
++		reset_retries_all (policy->settings, NULL);
+ }
+ 
+ static void
+@@ -932,6 +936,11 @@ device_state_changed (NMDevice *device,
+ 		update_routing_and_dns (policy, FALSE);
+ 		break;
+ 	case NM_DEVICE_STATE_DISCONNECTED:
++		/* Clear INVALID_TAG when carrier on. If cable was unplugged
++		 * and plugged again, we should try to reconnect */
++		if (reason == NM_DEVICE_STATE_REASON_CARRIER && old_state == NM_DEVICE_STATE_UNAVAILABLE)
++			reset_retries_all (policy->settings, device);
++
+ 		/* Device is now available for auto-activation */
+ 		update_routing_and_dns (policy, FALSE);
+ 		schedule_activate_check (policy, device, 0);
+@@ -1058,7 +1067,7 @@ connections_loaded (NMSettings *settings, gpointer user_data)
+ 	// that by calling reset_retries_all() in nm_policy_new()
+ 	
+ 	/* Initialize connections' auto-retries */
+-	reset_retries_all (settings);
++	reset_retries_all (settings, NULL);
+ 
+ 	schedule_activate_all ((NMPolicy *) user_data);
+ }
+@@ -1188,7 +1197,7 @@ nm_policy_new (NMManager *manager,
+ 	                          connection_visibility_changed);
+ 
+ 	/* Initialize connections' auto-retries */
+-	reset_retries_all (policy->settings);
++	reset_retries_all (policy->settings, NULL);
+ 
+ 	initialized = TRUE;
+ 	return policy;
+-- 
+1.7.6
+

diff --git a/net-misc/networkmanager/files/0.8.9997/0002-core-fix-auto-connect-to-hidden-SSIDs-rh-707406.patch b/net-misc/networkmanager/files/0.8.9997/0002-core-fix-auto-connect-to-hidden-SSIDs-rh-707406.patch
new file mode 100644
index 0000000..565b01b
--- /dev/null
+++ b/net-misc/networkmanager/files/0.8.9997/0002-core-fix-auto-connect-to-hidden-SSIDs-rh-707406.patch
@@ -0,0 +1,502 @@
+From 9549c70d943e3709694c4b0eb2595af11962c0eb Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Ji=C5=99=C3=AD=20Klime=C5=A1?= <jklimes@redhat.com>
+Date: Fri, 27 May 2011 17:32:40 +0200
+Subject: [PATCH] core: fix auto-connect to hidden SSIDs (rh #707406)
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Previously (in NM 0.8.x) most WiFi connection were from user settings service.
+And the service updated 'seen-bssids' property when got connected.
+But the settings service in 0.9 don't do that. That inhibits auto-connecting to
+hidden networks. This commit takes care of updating 'seen-bssids'. However, we
+don't want to write out the conection each time it's activated (touching /etc).
+So, seen BSSIDs are kept separately from the connection in a look-aside file.
+
+Signed-off-by: Jiří Klimeš <jklimes@redhat.com>
+---
+ src/nm-device-wifi.c                  |   30 +++++-
+ src/nm-manager.c                      |   44 ++-----
+ src/settings/nm-settings-connection.c |  216 +++++++++++++++++++++++++++++++--
+ src/settings/nm-settings-connection.h |    9 ++
+ src/settings/nm-settings.c            |    3 +
+ 5 files changed, 256 insertions(+), 46 deletions(-)
+
+diff --git a/src/nm-device-wifi.c b/src/nm-device-wifi.c
+index 7a6e752..7f9b5d2 100644
+--- a/src/nm-device-wifi.c
++++ b/src/nm-device-wifi.c
+@@ -55,6 +55,7 @@
+ #include "nm-setting-ip4-config.h"
+ #include "nm-setting-ip6-config.h"
+ #include "nm-system.h"
++#include "nm-settings-connection.h"
+ 
+ static gboolean impl_device_get_access_points (NMDeviceWifi *device,
+                                                GPtrArray **aps,
+@@ -978,6 +979,28 @@ get_active_ap (NMDeviceWifi *self,
+ }
+ 
+ static void
++update_seen_bssids_cache (NMDeviceWifi *self, NMAccessPoint *ap)
++{
++	NMActRequest *req;
++	NMConnection *connection;
++
++	g_return_if_fail (ap != NULL);
++
++	/* Don't cache the BSSID for Ad-Hoc APs */
++	if (nm_ap_get_mode (ap) != NM_802_11_MODE_INFRA)
++		return;
++
++	if (nm_device_get_state (NM_DEVICE (self)) == NM_DEVICE_STATE_ACTIVATED) {
++		req = nm_device_get_act_request (NM_DEVICE (self));
++		if (req) {
++			connection = nm_act_request_get_connection (req);
++			nm_settings_connection_add_seen_bssid (NM_SETTINGS_CONNECTION (connection),
++			                                       nm_ap_get_address (ap));
++		}
++	}
++}
++
++static void
+ set_current_ap (NMDeviceWifi *self, NMAccessPoint *new_ap)
+ {
+ 	NMDeviceWifiPrivate *priv;
+@@ -1003,6 +1026,9 @@ set_current_ap (NMDeviceWifi *self, NMAccessPoint *new_ap)
+ 		 */
+ 		priv->ap_list = g_slist_remove (priv->ap_list, new_ap);
+ 		priv->ap_list = g_slist_prepend (priv->ap_list, new_ap);
++
++		/* Update seen BSSIDs cache */
++		update_seen_bssids_cache (self, priv->current_ap);
+ 	}
+ 
+ 	/* Unref old AP here to ensure object lives if new_ap == old_ap */
+@@ -3436,11 +3462,13 @@ activation_success_handler (NMDevice *dev)
+ done:
+ 	periodic_update (self);
+ 
++	/* Update seen BSSIDs cache with the connected AP */
++	update_seen_bssids_cache (self, priv->current_ap);
++
+ 	/* Reset scan interval to something reasonable */
+ 	priv->scan_interval = SCAN_INTERVAL_MIN + (SCAN_INTERVAL_STEP * 2);
+ }
+ 
+-
+ static void
+ activation_failure_handler (NMDevice *dev)
+ {
+diff --git a/src/nm-manager.c b/src/nm-manager.c
+index 5a3f7f7..a15e4b7 100644
+--- a/src/nm-manager.c
++++ b/src/nm-manager.c
+@@ -63,6 +63,7 @@
+ #include "nm-settings-connection.h"
+ #include "nm-manager-auth.h"
+ #include "NetworkManagerUtils.h"
++#include "nm-utils.h"
+ 
+ #define NM_AUTOIP_DBUS_SERVICE "org.freedesktop.nm_avahi_autoipd"
+ #define NM_AUTOIP_DBUS_IFACE   "org.freedesktop.nm_avahi_autoipd"
+@@ -1040,52 +1041,27 @@ manager_hidden_ap_found (NMDeviceInterface *device,
+ {
+ 	NMManager *manager = NM_MANAGER (user_data);
+ 	NMManagerPrivate *priv = NM_MANAGER_GET_PRIVATE (manager);
+-	const struct ether_addr *ap_addr;
+-	const GByteArray *ap_ssid;
++	const struct ether_addr *bssid;
+ 	GSList *iter;
+ 	GSList *connections;
+ 	gboolean done = FALSE;
+ 
+-	ap_ssid = nm_ap_get_ssid (ap);
+-	if (ap_ssid && ap_ssid->len)
+-		return;
++	g_return_if_fail (nm_ap_get_ssid (ap) == NULL);
+ 
+-	ap_addr = nm_ap_get_address (ap);
+-	g_assert (ap_addr);
++	bssid = nm_ap_get_address (ap);
++	g_assert (bssid);
+ 
+ 	/* Look for this AP's BSSID in the seen-bssids list of a connection,
+ 	 * and if a match is found, copy over the SSID */
+ 	connections = nm_settings_get_connections (priv->settings);
+-
+ 	for (iter = connections; iter && !done; iter = g_slist_next (iter)) {
+ 		NMConnection *connection = NM_CONNECTION (iter->data);
+-		NMSettingWireless *s_wireless;
+-		const GByteArray *ssid;
+-		guint32 num_bssids;
+-		guint32 i;
+-
+-		s_wireless = (NMSettingWireless *) nm_connection_get_setting (connection, NM_TYPE_SETTING_WIRELESS);
+-		if (!s_wireless)
+-			continue;
+-
+-		num_bssids = nm_setting_wireless_get_num_seen_bssids (s_wireless);
+-		if (num_bssids < 1)
+-			continue;
+-
+-		ssid = nm_setting_wireless_get_ssid (s_wireless);
+-		g_assert (ssid);
+-
+-		for (i = 0; i < num_bssids && !done; i++) {
+-			const char *seen_bssid = nm_setting_wireless_get_seen_bssid (s_wireless, i);
+-			struct ether_addr seen_addr;
++		NMSettingWireless *s_wifi;
+ 
+-			if (ether_aton_r (seen_bssid, &seen_addr)) {
+-				if (memcmp (ap_addr, &seen_addr, sizeof (struct ether_addr)) == 0) {
+-					/* Copy the SSID from the connection to the AP */
+-					nm_ap_set_ssid (ap, ssid);
+-					done = TRUE;
+-				}
+-			}
++		s_wifi = nm_connection_get_setting_wireless (connection);
++		if (s_wifi) {
++			if (nm_settings_connection_has_seen_bssid (NM_SETTINGS_CONNECTION (connection), bssid))
++				nm_ap_set_ssid (ap, nm_setting_wireless_get_ssid (s_wifi));
+ 		}
+ 	}
+ 	g_slist_free (connections);
+diff --git a/src/settings/nm-settings-connection.c b/src/settings/nm-settings-connection.c
+index 828a036..c20ba82 100644
+--- a/src/settings/nm-settings-connection.c
++++ b/src/settings/nm-settings-connection.c
+@@ -22,6 +22,7 @@
+ #include "config.h"
+ 
+ #include <string.h>
++#include <netinet/ether.h>
+ 
+ #include <NetworkManager.h>
+ #include <dbus/dbus-glib-lowlevel.h>
+@@ -38,8 +39,10 @@
+ #include "nm-manager-auth.h"
+ #include "nm-marshal.h"
+ #include "nm-agent-manager.h"
++#include "NetworkManagerUtils.h"
+ 
+ #define SETTINGS_TIMESTAMPS_FILE  LOCALSTATEDIR"/lib/NetworkManager/timestamps"
++#define SETTINGS_SEEN_BSSIDS_FILE LOCALSTATEDIR"/lib/NetworkManager/seen-bssids"
+ 
+ static void impl_settings_connection_get_settings (NMSettingsConnection *connection,
+                                                    DBusGMethodInvocation *context);
+@@ -91,7 +94,8 @@ typedef struct {
+ 	NMSessionMonitor *session_monitor;
+ 	guint session_changed_id;
+ 
+-	guint64 timestamp; /* Up-to-date timestamp of connection use */
++	guint64 timestamp;   /* Up-to-date timestamp of connection use */
++	GHashTable *seen_bssids; /* Up-to-date BSSIDs that's been seen for the connection */
+ } NMSettingsConnectionPrivate;
+ 
+ /**************************************************************/
+@@ -455,12 +459,20 @@ commit_changes (NMSettingsConnection *connection,
+ }
+ 
+ static void
+-remove_timestamp_from_db (NMSettingsConnection *connection)
++remove_entry_from_db (NMSettingsConnection *connection, const char* db_name)
+ {
+-	GKeyFile *timestamps_file;
++	GKeyFile *key_file;
++	const char *db_file;
+ 
+-	timestamps_file = g_key_file_new ();
+-	if (g_key_file_load_from_file (timestamps_file, SETTINGS_TIMESTAMPS_FILE, G_KEY_FILE_KEEP_COMMENTS, NULL)) {
++	if (strcmp (db_name, "timestamps") == 0)
++		db_file = SETTINGS_TIMESTAMPS_FILE;
++	else if (strcmp (db_name, "seen-bssids") == 0)
++		db_file = SETTINGS_SEEN_BSSIDS_FILE;
++	else
++		return;
++
++	key_file = g_key_file_new ();
++	if (g_key_file_load_from_file (key_file, db_file, G_KEY_FILE_KEEP_COMMENTS, NULL)) {
+ 		const char *connection_uuid;
+ 		char *data;
+ 		gsize len;
+@@ -468,18 +480,18 @@ remove_timestamp_from_db (NMSettingsConnection *connection)
+ 
+ 		connection_uuid = nm_connection_get_uuid (NM_CONNECTION (connection));
+ 
+-		g_key_file_remove_key (timestamps_file, "timestamps", connection_uuid, NULL);
+-		data = g_key_file_to_data (timestamps_file, &len, &error);
++		g_key_file_remove_key (key_file, db_name, connection_uuid, NULL);
++		data = g_key_file_to_data (key_file, &len, &error);
+ 		if (data) {
+-			g_file_set_contents (SETTINGS_TIMESTAMPS_FILE, data, len, &error);
++			g_file_set_contents (db_file, data, len, &error);
+ 			g_free (data);
+ 		}
+ 		if (error) {
+-			nm_log_warn (LOGD_SETTINGS, "error writing timestamps file '%s': %s", SETTINGS_TIMESTAMPS_FILE, error->message);
++			nm_log_warn (LOGD_SETTINGS, "error writing %s file '%s': %s", db_name, db_file, error->message);
+ 			g_error_free (error);
+ 		}
+ 	}
+-	g_key_file_free (timestamps_file);
++	g_key_file_free (key_file);
+ }
+ 
+ static void
+@@ -499,7 +511,10 @@ do_delete (NMSettingsConnection *connection,
+ 	nm_agent_manager_delete_secrets (priv->agent_mgr, for_agents, FALSE, 0);
+ 
+ 	/* Remove timestamp from timestamps database file */
+-	remove_timestamp_from_db (connection);
++	remove_entry_from_db (connection, "timestamps");
++
++	/* Remove connection from seen-bssids database file */
++	remove_entry_from_db (connection, "seen-bssids");
+ 
+ 	/* Signal the connection is removed and deleted */
+ 	g_signal_emit (connection, signals[REMOVED], 0);
+@@ -1440,6 +1455,181 @@ nm_settings_connection_read_and_fill_timestamp (NMSettingsConnection *connection
+ 	g_key_file_free (timestamps_file);
+ }
+ 
++static guint
++mac_hash (gconstpointer v)
++{
++	const guint8 *p = v;
++	guint32 i, h = 5381;
++
++	for (i = 0; i < ETH_ALEN; i++)
++		h = (h << 5) + h + p[i];
++	return h;
++}
++
++static gboolean
++mac_equal (gconstpointer a, gconstpointer b)
++{
++	return memcmp (a, b, ETH_ALEN) == 0;
++}
++
++static guint8 *
++mac_dup (const struct ether_addr *old)
++{
++	guint8 *new;
++
++	g_return_val_if_fail (old != NULL, NULL);
++
++	new = g_malloc0 (ETH_ALEN);
++	memcpy (new, old, ETH_ALEN);
++	return new;
++}
++
++/**
++ * nm_settings_connection_has_seen_bssid:
++ * @connection: the #NMSettingsConnection
++ * @bssid: the BSSID to check the seen BSSID list for
++ *
++ * Returns: TRUE if the given @bssid is in the seen BSSIDs list
++ **/
++gboolean
++nm_settings_connection_has_seen_bssid (NMSettingsConnection *connection,
++                                       const struct ether_addr *bssid)
++{
++	g_return_val_if_fail (connection != NULL, FALSE);
++	g_return_val_if_fail (NM_IS_SETTINGS_CONNECTION (connection), FALSE);
++	g_return_val_if_fail (bssid != NULL, FALSE);
++
++	return !!g_hash_table_lookup (NM_SETTINGS_CONNECTION_GET_PRIVATE (connection)->seen_bssids, bssid);
++}
++
++/**
++ * nm_settings_connection_add_seen_bssid:
++ * @connection: the #NMSettingsConnection
++ * @seen_bssid: BSSID to set into the connection and to store into
++ * the seen-bssids database
++ *
++ * Updates the connection and seen-bssids database with the provided BSSID.
++ **/
++void
++nm_settings_connection_add_seen_bssid (NMSettingsConnection *connection,
++                                       const struct ether_addr *seen_bssid)
++{
++	NMSettingsConnectionPrivate *priv = NM_SETTINGS_CONNECTION_GET_PRIVATE (connection);
++	const char *connection_uuid;
++	GKeyFile *seen_bssids_file;
++	char *data, *bssid_str;
++	const char **list;
++	gsize len;
++	GError *error = NULL;
++	GHashTableIter iter;
++	guint n;
++
++	g_return_if_fail (seen_bssid != NULL);
++
++	if (g_hash_table_lookup (priv->seen_bssids, seen_bssid))
++		return;  /* Already in the list */
++
++	/* Add the new BSSID; let the hash take ownership of the allocated BSSID string */
++	bssid_str = nm_ether_ntop (seen_bssid);
++	g_return_if_fail (bssid_str != NULL);
++	g_hash_table_insert (priv->seen_bssids, mac_dup (seen_bssid), bssid_str);
++
++	/* Build up a list of all the BSSIDs in string form */
++	n = 0;
++	list = g_malloc0 (g_hash_table_size (priv->seen_bssids) * sizeof (char *));
++	g_hash_table_iter_init (&iter, priv->seen_bssids);
++	while (g_hash_table_iter_next (&iter, NULL, (gpointer) &bssid_str))
++		list[n++] = bssid_str;
++
++	/* Save BSSID to seen-bssids file */
++	seen_bssids_file = g_key_file_new ();
++	g_key_file_set_list_separator (seen_bssids_file, ',');
++	if (!g_key_file_load_from_file (seen_bssids_file, SETTINGS_SEEN_BSSIDS_FILE, G_KEY_FILE_KEEP_COMMENTS, &error)) {
++		if (!g_error_matches (error, G_FILE_ERROR, G_FILE_ERROR_NOENT)) {
++			nm_log_warn (LOGD_SETTINGS, "error parsing seen-bssids file '%s': %s",
++			             SETTINGS_SEEN_BSSIDS_FILE, error->message);
++		}
++		g_clear_error (&error);
++	}
++
++	connection_uuid = nm_connection_get_uuid (NM_CONNECTION (connection));
++	g_key_file_set_string_list (seen_bssids_file, "seen-bssids", connection_uuid, list, n);
++	g_free (list);
++
++	data = g_key_file_to_data (seen_bssids_file, &len, &error);
++	if (data) {
++		g_file_set_contents (SETTINGS_SEEN_BSSIDS_FILE, data, len, &error);
++		g_free (data);
++	}
++	g_key_file_free (seen_bssids_file);
++
++	if (error) {
++		nm_log_warn (LOGD_SETTINGS, "error saving seen-bssids to file '%s': %s",
++		             SETTINGS_SEEN_BSSIDS_FILE, error->message);
++		g_error_free (error);
++	}
++}
++
++static void
++add_seen_bssid_string (NMSettingsConnection *self, const char *bssid)
++{
++	struct ether_addr mac;
++
++	g_return_if_fail (bssid != NULL);
++	if (ether_aton_r (bssid, &mac)) {
++		g_hash_table_insert (NM_SETTINGS_CONNECTION_GET_PRIVATE (self)->seen_bssids,
++		                     mac_dup (&mac),
++		                     g_strdup (bssid));
++	}
++}
++
++/**
++ * nm_settings_connection_read_and_fill_seen_bssids:
++ * @connection: the #NMSettingsConnection
++ *
++ * Retrieves seen BSSIDs of the connection from database file and stores then into the
++ * connection private data.
++ **/
++void
++nm_settings_connection_read_and_fill_seen_bssids (NMSettingsConnection *connection)
++{
++	NMSettingsConnectionPrivate *priv = NM_SETTINGS_CONNECTION_GET_PRIVATE (connection);
++	const char *connection_uuid;
++	GKeyFile *seen_bssids_file;
++	char **tmp_strv = NULL;
++	gsize i, len = 0;
++	NMSettingWireless *s_wifi;
++
++	/* Get seen BSSIDs from database file */
++	seen_bssids_file = g_key_file_new ();
++	g_key_file_set_list_separator (seen_bssids_file, ',');
++	if (g_key_file_load_from_file (seen_bssids_file, SETTINGS_SEEN_BSSIDS_FILE, G_KEY_FILE_KEEP_COMMENTS, NULL)) {
++		connection_uuid = nm_connection_get_uuid (NM_CONNECTION (connection));
++		tmp_strv = g_key_file_get_string_list (seen_bssids_file, "seen-bssids", connection_uuid, &len, NULL);
++	}
++	g_key_file_free (seen_bssids_file);
++
++	/* Update connection's seen-bssids */
++	if (tmp_strv) {
++		g_hash_table_remove_all (priv->seen_bssids);
++		for (i = 0; i < len; i++)
++			add_seen_bssid_string (connection, tmp_strv[i]);
++		g_strfreev (tmp_strv);
++	} else {
++		/* If this connection didn't have an entry in the seen-bssids database,
++		 * maybe this is the first time we've read it in, so populate the
++		 * seen-bssids list from the deprecated seen-bssids property of the
++		 * wifi setting.
++		 */
++		s_wifi = nm_connection_get_setting_wireless (NM_CONNECTION (connection));
++		if (s_wifi) {
++			len = nm_setting_wireless_get_num_seen_bssids (s_wifi);
++			for (i = 0; i < len; i++)
++				add_seen_bssid_string (connection, nm_setting_wireless_get_seen_bssid (s_wifi, i));
++		}
++	}
++}
++
+ /**************************************************************/
+ 
+ static void
+@@ -1463,6 +1653,8 @@ nm_settings_connection_init (NMSettingsConnection *self)
+ 	                                             self);
+ 
+ 	priv->agent_mgr = nm_agent_manager_get ();
++
++	priv->seen_bssids = g_hash_table_new_full (mac_hash, mac_equal, g_free, g_free);
+ }
+ 
+ static void
+@@ -1490,6 +1682,8 @@ dispose (GObject *object)
+ 		nm_agent_manager_cancel_secrets (priv->agent_mgr, GPOINTER_TO_UINT (iter->data));
+ 	g_slist_free (priv->reqs);
+ 
++	g_hash_table_destroy (priv->seen_bssids);
++
+ 	set_visible (self, FALSE);
+ 
+ 	if (priv->session_changed_id)
+diff --git a/src/settings/nm-settings-connection.h b/src/settings/nm-settings-connection.h
+index 116bfdc..af90c51 100644
+--- a/src/settings/nm-settings-connection.h
++++ b/src/settings/nm-settings-connection.h
+@@ -24,6 +24,7 @@
+ 
+ #include <nm-connection.h>
+ #include "nm-settings-flags.h"
++#include <net/ethernet.h>
+ 
+ G_BEGIN_DECLS
+ 
+@@ -124,6 +125,14 @@ void nm_settings_connection_update_timestamp (NMSettingsConnection *connection,
+ 
+ void nm_settings_connection_read_and_fill_timestamp (NMSettingsConnection *connection);
+ 
++gboolean nm_settings_connection_has_seen_bssid (NMSettingsConnection *connection,
++                                                const struct ether_addr *bssid);
++
++void nm_settings_connection_add_seen_bssid (NMSettingsConnection *connection,
++                                            const struct ether_addr *seen_bssid);
++
++void nm_settings_connection_read_and_fill_seen_bssids (NMSettingsConnection *connection);
++
+ G_END_DECLS
+ 
+ #endif /* NM_SETTINGS_CONNECTION_H */
+diff --git a/src/settings/nm-settings.c b/src/settings/nm-settings.c
+index e23e8d1..8329780 100644
+--- a/src/settings/nm-settings.c
++++ b/src/settings/nm-settings.c
+@@ -773,6 +773,9 @@ claim_connection (NMSettings *self,
+ 	/* Read timestamp from look-aside file and put it into the connection's data */
+ 	nm_settings_connection_read_and_fill_timestamp (connection);
+ 
++	/* Read seen-bssids from look-aside file and put it into the connection's data */
++	nm_settings_connection_read_and_fill_seen_bssids (connection);
++
+ 	/* Ensure it's initial visibility is up-to-date */
+ 	nm_settings_connection_recheck_visibility (connection);
+ 
+-- 
+1.7.6
+

diff --git a/net-misc/networkmanager/files/0.8.9997/0003-libnm-glib-fix-crash-for-AddAndActivateConnection-D-.patch b/net-misc/networkmanager/files/0.8.9997/0003-libnm-glib-fix-crash-for-AddAndActivateConnection-D-.patch
new file mode 100644
index 0000000..8cc16c4
--- /dev/null
+++ b/net-misc/networkmanager/files/0.8.9997/0003-libnm-glib-fix-crash-for-AddAndActivateConnection-D-.patch
@@ -0,0 +1,29 @@
+From b4a72d1ad794aef4c623fd530fc38ceb9b95456d Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Ji=C5=99=C3=AD=20Klime=C5=A1?= <jklimes@redhat.com>
+Date: Tue, 14 Jun 2011 19:39:23 +0200
+Subject: [PATCH] libnm-glib: fix crash for AddAndActivateConnection() D-Bus
+ call (bgo #652512)
+
+When a partial connection is passed to nm_client_add_and_activate_connection(),
+but it doesn't contain any settings, nm_connection_to_hash() returns NULL and
+there's a crash later on the NULL hash.
+---
+ libnm-glib/nm-client.c |    2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+diff --git a/libnm-glib/nm-client.c b/libnm-glib/nm-client.c
+index 644af3e..752510a 100644
+--- a/libnm-glib/nm-client.c
++++ b/libnm-glib/nm-client.c
+@@ -763,7 +763,7 @@ nm_client_add_and_activate_connection (NMClient *client,
+ 
+ 	if (partial)
+ 		hash = nm_connection_to_hash (partial, NM_SETTING_HASH_FLAG_ALL);
+-	else
++	if (!hash)
+ 		hash = g_hash_table_new (g_str_hash, g_str_equal);
+ 
+ 	priv = NM_CLIENT_GET_PRIVATE (client);
+-- 
+1.7.6
+

diff --git a/net-misc/networkmanager/files/0.8.9997/0004-policy-remove-invalid-mark-for-failed-connections-af.patch b/net-misc/networkmanager/files/0.8.9997/0004-policy-remove-invalid-mark-for-failed-connections-af.patch
new file mode 100644
index 0000000..f2af25e
--- /dev/null
+++ b/net-misc/networkmanager/files/0.8.9997/0004-policy-remove-invalid-mark-for-failed-connections-af.patch
@@ -0,0 +1,109 @@
+From fdfbe00aac3f17b19bb8d84cba1c8f210d90e8a0 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Ji=C5=99=C3=AD=20Klime=C5=A1?= <jklimes@redhat.com>
+Date: Fri, 17 Jun 2011 12:43:28 +0200
+Subject: [PATCH] policy: remove "invalid mark" for failed connections after 5
+ mins
+
+If there is a temporary connection failure (e.g. due to unavailable DHCP), the
+connection is marked as invalid after several retries. Reset the flag after
+5 mins to allow next auto-reconnection.
+---
+ src/nm-policy.c |   47 +++++++++++++++++++++++++++++++++++++++++++++--
+ 1 files changed, 45 insertions(+), 2 deletions(-)
+
+diff --git a/src/nm-policy.c b/src/nm-policy.c
+index 3eead41..e3c899f 100644
+--- a/src/nm-policy.c
++++ b/src/nm-policy.c
+@@ -66,12 +66,16 @@ struct NMPolicy {
+ 
+ 	HostnameThread *lookup;
+ 
++	gint reset_retries_id;  /* idle handler for resetting the retries count */
++
+ 	char *orig_hostname; /* hostname at NM start time */
+ 	char *cur_hostname;  /* hostname we want to assign */
+ };
+ 
+ #define RETRIES_TAG "autoconnect-retries"
+ #define RETRIES_DEFAULT	4
++#define RESET_RETRIES_TIMESTAMP_TAG "reset-retries-timestamp-tag"
++#define RESET_RETRIES_TIMER 300
+ 
+ static NMDevice *
+ get_best_ip4_device (NMManager *manager, NMActRequest **out_req)
+@@ -870,6 +874,37 @@ schedule_activate_check (NMPolicy *policy, NMDevice *device, guint delay_seconds
+ 	}
+ }
+ 
++static gboolean
++reset_connections_retries (gpointer user_data)
++{
++	NMPolicy *policy = (NMPolicy *) user_data;
++	GSList *connections, *iter;
++	time_t con_stamp, min_stamp, now;
++
++	policy->reset_retries_id = 0;
++
++	min_stamp = now = time (NULL);
++	connections = nm_settings_get_connections (policy->settings);
++	for (iter = connections; iter; iter = g_slist_next (iter)) {
++		con_stamp = GPOINTER_TO_SIZE (g_object_get_data (G_OBJECT (iter->data), RESET_RETRIES_TIMESTAMP_TAG));
++		if (con_stamp == 0)
++			continue;
++		if (con_stamp + RESET_RETRIES_TIMER <= now) {
++			set_connection_auto_retries (NM_CONNECTION (iter->data), RETRIES_DEFAULT);
++			g_object_set_data (G_OBJECT (iter->data), RESET_RETRIES_TIMESTAMP_TAG, GSIZE_TO_POINTER (0));
++			continue;
++		}
++		if (con_stamp < min_stamp)
++			min_stamp = con_stamp;
++	}
++	g_slist_free (connections);
++
++	/* Schedule the handler again if there are some stamps left */
++	if (min_stamp != now)
++		policy->reset_retries_id = g_timeout_add_seconds (RESET_RETRIES_TIMER - (now - min_stamp), reset_connections_retries, policy);
++	return FALSE;
++}
++
+ static NMConnection *
+ get_device_connection (NMDevice *device)
+ {
+@@ -914,8 +949,13 @@ device_state_changed (NMDevice *device,
+ 				set_connection_auto_retries (connection, tries - 1);
+ 			}
+ 
+-			if (get_connection_auto_retries (connection) == 0)
++			if (get_connection_auto_retries (connection) == 0) {
+ 				nm_log_info (LOGD_DEVICE, "Marking connection '%s' invalid.", nm_connection_get_id (connection));
++				/* Schedule a handler to reset retries count */
++				g_object_set_data (G_OBJECT (connection), RESET_RETRIES_TIMESTAMP_TAG, GSIZE_TO_POINTER ((gsize) time (NULL)));
++				if (!policy->reset_retries_id)
++					policy->reset_retries_id = g_timeout_add_seconds (RESET_RETRIES_TIMER, reset_connections_retries, policy);
++			}
+ 			nm_connection_clear_secrets (connection);
+ 		}
+ 		schedule_activate_check (policy, device, 3);
+@@ -938,7 +978,7 @@ device_state_changed (NMDevice *device,
+ 		update_routing_and_dns (policy, FALSE);
+ 		break;
+ 	case NM_DEVICE_STATE_DISCONNECTED:
+-		/* Clear INVALID_TAG when carrier on. If cable was unplugged
++		/* Reset RETRIES_TAG when carrier on. If cable was unplugged
+ 		 * and plugged again, we should try to reconnect */
+ 		if (reason == NM_DEVICE_STATE_REASON_CARRIER && old_state == NM_DEVICE_STATE_UNAVAILABLE)
+ 			reset_retries_all (policy->settings, device);
+@@ -1246,6 +1286,9 @@ nm_policy_destroy (NMPolicy *policy)
+ 	}
+ 	g_slist_free (policy->dev_ids);
+ 
++	if (policy->reset_retries_id)
++		g_source_remove (policy->reset_retries_id);
++
+ 	g_free (policy->orig_hostname);
+ 	g_free (policy->cur_hostname);
+ 
+-- 
+1.7.6
+

diff --git a/net-misc/networkmanager/files/0.8.9997/0005-core-connections-failed-due-to-missing-secrets-are-r.patch b/net-misc/networkmanager/files/0.8.9997/0005-core-connections-failed-due-to-missing-secrets-are-r.patch
new file mode 100644
index 0000000..f43cf24
--- /dev/null
+++ b/net-misc/networkmanager/files/0.8.9997/0005-core-connections-failed-due-to-missing-secrets-are-r.patch
@@ -0,0 +1,280 @@
+From 69b767bbf0ef8e038dd8bd0bcb35586c0f91ade7 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Ji=C5=99=C3=AD=20Klime=C5=A1?= <jklimes@redhat.com>
+Date: Tue, 28 Jun 2011 15:48:12 +0200
+Subject: [PATCH] core: connections failed due to missing secrets are re-tried
+ when an secret agent registers (rh #706204)
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Use case:
+A user has an auto-activatable connection with secrets in a keyring. While
+booting NM starts and tries to activate the connection, but it fails because of
+missing secrets. Then the user logs in, but the connection is marked as invalid
+and is not tried again.
+
+This commit solves the issue by removing invalid flag and activating the
+connection when a secret agent registers.
+
+Signed-off-by: Jiří Klimeš <jklimes@redhat.com>
+---
+ src/nm-policy.c                 |   40 +++++++++++++++++++++++++++++++++++++++
+ src/settings/nm-agent-manager.c |   22 +++++++++++++++++++++
+ src/settings/nm-agent-manager.h |    4 +++
+ src/settings/nm-settings.c      |   25 ++++++++++++++++++++++++
+ src/settings/nm-settings.h      |    6 ++++-
+ 5 files changed, 96 insertions(+), 1 deletions(-)
+
+diff --git a/src/nm-policy.c b/src/nm-policy.c
+index e3c899f..44f5e1f 100644
+--- a/src/nm-policy.c
++++ b/src/nm-policy.c
+@@ -76,6 +76,7 @@ struct NMPolicy {
+ #define RETRIES_DEFAULT	4
+ #define RESET_RETRIES_TIMESTAMP_TAG "reset-retries-timestamp-tag"
+ #define RESET_RETRIES_TIMER 300
++#define FAILURE_REASON_TAG "failure-reason"
+ 
+ static NMDevice *
+ get_best_ip4_device (NMManager *manager, NMActRequest **out_req)
+@@ -838,6 +839,23 @@ reset_retries_all (NMSettings *settings, NMDevice *device)
+ }
+ 
+ static void
++reset_retries_for_failed_secrets (NMSettings *settings)
++{
++	GSList *connections, *iter;
++
++	connections = nm_settings_get_connections (settings);
++	for (iter = connections; iter; iter = g_slist_next (iter)) {
++		NMDeviceStateReason reason = GPOINTER_TO_UINT (g_object_get_data (G_OBJECT (iter->data), FAILURE_REASON_TAG));
++
++		if (reason == NM_DEVICE_STATE_REASON_NO_SECRETS) {
++			set_connection_auto_retries (NM_CONNECTION (iter->data), RETRIES_DEFAULT);
++			g_object_set_data (G_OBJECT (iter->data), FAILURE_REASON_TAG, GUINT_TO_POINTER (0));
++		}
++	}
++	g_slist_free (connections);
++}
++
++static void
+ sleeping_changed (NMManager *manager, GParamSpec *pspec, gpointer user_data)
+ {
+ 	NMPolicy *policy = user_data;
+@@ -927,6 +945,9 @@ device_state_changed (NMDevice *device,
+ 	NMPolicy *policy = (NMPolicy *) user_data;
+ 	NMConnection *connection = get_device_connection (device);
+ 
++	if (connection)
++		g_object_set_data (G_OBJECT (connection), FAILURE_REASON_TAG, GUINT_TO_POINTER (0));
++
+ 	switch (new_state) {
+ 	case NM_DEVICE_STATE_FAILED:
+ 		/* Mark the connection invalid if it failed during activation so that
+@@ -941,6 +962,11 @@ device_state_changed (NMDevice *device,
+ 				 * automatically retrying because it's just going to fail anyway.
+ 				 */
+ 				set_connection_auto_retries (connection, 0);
++
++				/* Mark the connection as failed due to missing secrets so that we can reset
++				 * RETRIES_TAG and automatically re-try when an secret agent registers.
++				 */
++				g_object_set_data (G_OBJECT (connection), FAILURE_REASON_TAG, GUINT_TO_POINTER (NM_DEVICE_STATE_REASON_NO_SECRETS));
+ 			} else if (tries > 0) {
+ 				/* Otherwise if it's a random failure, just decrease the number
+ 				 * of automatic retries so that the connection gets tried again
+@@ -1173,6 +1199,19 @@ connection_visibility_changed (NMSettings *settings,
+ }
+ 
+ static void
++secret_agent_registered (NMSettings *settings,
++                         NMSecretAgent *agent,
++                         gpointer user_data)
++{
++	/* The registered secret agent may provide some missing secrets. Thus we
++	 * reset retries count here and schedule activation, so that the
++	 * connections failed due to missing secrets may re-try auto-connection.
++	 */
++	reset_retries_for_failed_secrets (settings);
++	schedule_activate_all ((NMPolicy *) user_data);
++}
++
++static void
+ _connect_manager_signal (NMPolicy *policy, const char *name, gpointer callback)
+ {
+ 	guint id;
+@@ -1240,6 +1279,7 @@ nm_policy_new (NMManager *manager,
+ 	_connect_settings_signal (policy, NM_SETTINGS_SIGNAL_CONNECTION_REMOVED, connection_removed);
+ 	_connect_settings_signal (policy, NM_SETTINGS_SIGNAL_CONNECTION_VISIBILITY_CHANGED,
+ 	                          connection_visibility_changed);
++	_connect_settings_signal (policy, NM_SETTINGS_SIGNAL_AGENT_REGISTERED, secret_agent_registered);
+ 
+ 	/* Initialize connections' auto-retries */
+ 	reset_retries_all (policy->settings, NULL);
+diff --git a/src/settings/nm-agent-manager.c b/src/settings/nm-agent-manager.c
+index 9b9e189..1693ae2 100644
+--- a/src/settings/nm-agent-manager.c
++++ b/src/settings/nm-agent-manager.c
+@@ -57,6 +57,14 @@ typedef struct {
+ 	GHashTable *requests;
+ } NMAgentManagerPrivate;
+ 
++enum {
++        AGENT_REGISTERED,
++
++        LAST_SIGNAL
++};
++static guint signals[LAST_SIGNAL] = { 0 };
++
++
+ typedef struct _Request Request;
+ 
+ static void request_add_agent (Request *req,
+@@ -277,6 +285,9 @@ impl_agent_manager_register (NMAgentManager *self,
+ 	            nm_secret_agent_get_description (agent));
+ 	dbus_g_method_return (context);
+ 
++	/* Signal an agent was registered */
++	g_signal_emit (self, signals[AGENT_REGISTERED], 0, agent);
++
+ 	/* Add this agent to any in-progress secrets requests */
+ 	g_hash_table_iter_init (&iter, priv->requests);
+ 	while (g_hash_table_iter_next (&iter, NULL, &data))
+@@ -1363,6 +1374,17 @@ nm_agent_manager_class_init (NMAgentManagerClass *agent_manager_class)
+ 	/* virtual methods */
+ 	object_class->dispose = dispose;
+ 
++	/* Signals */
++	signals[AGENT_REGISTERED] =
++		g_signal_new ("agent-registered",
++		              G_OBJECT_CLASS_TYPE (object_class),
++		              G_SIGNAL_RUN_FIRST,
++		              G_STRUCT_OFFSET (NMAgentManagerClass, agent_registered),
++		              NULL, NULL,
++		              g_cclosure_marshal_VOID__OBJECT,
++		              G_TYPE_NONE, 1,
++		              G_TYPE_OBJECT);
++
+ 	dbus_g_object_type_install_info (G_TYPE_FROM_CLASS (agent_manager_class),
+ 	                                 &dbus_glib_nm_agent_manager_object_info);
+ 
+diff --git a/src/settings/nm-agent-manager.h b/src/settings/nm-agent-manager.h
+index 788a917..287413a 100644
+--- a/src/settings/nm-agent-manager.h
++++ b/src/settings/nm-agent-manager.h
+@@ -25,6 +25,7 @@
+ #include <glib-object.h>
+ #include <nm-connection.h>
+ #include "nm-settings-flags.h"
++#include "nm-secret-agent.h"
+ 
+ #define NM_TYPE_AGENT_MANAGER            (nm_agent_manager_get_type ())
+ #define NM_AGENT_MANAGER(obj)            (G_TYPE_CHECK_INSTANCE_CAST ((obj), NM_TYPE_AGENT_MANAGER, NMAgentManager))
+@@ -39,6 +40,9 @@ typedef struct {
+ 
+ typedef struct {
+ 	GObjectClass parent;
++
++	/* Signals */
++	void (*agent_registered)   (NMAgentManager *agent_mgr, NMSecretAgent *agent);
+ } NMAgentManagerClass;
+ 
+ GType nm_agent_manager_get_type (void);
+diff --git a/src/settings/nm-settings.c b/src/settings/nm-settings.c
+index 8329780..733e914 100644
+--- a/src/settings/nm-settings.c
++++ b/src/settings/nm-settings.c
+@@ -135,6 +135,7 @@ enum {
+ 	CONNECTION_REMOVED,
+ 	CONNECTION_VISIBILITY_CHANGED,
+ 	CONNECTIONS_LOADED,
++	AGENT_REGISTERED,
+ 
+ 	NEW_CONNECTION, /* exported, not used internally */
+ 	LAST_SIGNAL
+@@ -699,6 +700,18 @@ connection_visibility_changed (NMSettingsConnection *connection,
+ 	               connection);
+ }
+ 
++static void
++secret_agent_registered (NMAgentManager *agent_mgr,
++                         NMSecretAgent *agent,
++                         gpointer user_data)
++{
++	/* Re-emit for listeners like NMPolicy */
++	g_signal_emit (NM_SETTINGS (user_data),
++	               signals[AGENT_REGISTERED],
++	               0,
++	               agent);
++}
++
+ #define NM_DBUS_SERVICE_OPENCONNECT    "org.freedesktop.NetworkManager.openconnect"
+ #define NM_OPENCONNECT_KEY_GATEWAY "gateway"
+ #define NM_OPENCONNECT_KEY_COOKIE "cookie"
+@@ -1530,6 +1543,8 @@ nm_settings_init (NMSettings *self)
+ 	 * recreated often.
+ 	 */
+ 	priv->agent_mgr = nm_agent_manager_get ();
++
++	g_signal_connect (priv->agent_mgr, "agent-registered", G_CALLBACK (secret_agent_registered), self);
+ }
+ 
+ static void
+@@ -1693,6 +1708,16 @@ nm_settings_class_init (NMSettingsClass *class)
+ 	                              g_cclosure_marshal_VOID__VOID,
+ 	                              G_TYPE_NONE, 0);
+ 
++	signals[AGENT_REGISTERED] =
++		g_signal_new (NM_SETTINGS_SIGNAL_AGENT_REGISTERED,
++		              G_OBJECT_CLASS_TYPE (object_class),
++		              G_SIGNAL_RUN_FIRST,
++		              G_STRUCT_OFFSET (NMSettingsClass, agent_registered),
++		              NULL, NULL,
++		              g_cclosure_marshal_VOID__OBJECT,
++		              G_TYPE_NONE, 1, G_TYPE_OBJECT);
++
++
+ 	signals[NEW_CONNECTION] = 
+ 	                g_signal_new ("new-connection",
+ 	                              G_OBJECT_CLASS_TYPE (object_class),
+diff --git a/src/settings/nm-settings.h b/src/settings/nm-settings.h
+index a5cb4d7..66d41cc 100644
+--- a/src/settings/nm-settings.h
++++ b/src/settings/nm-settings.h
+@@ -19,7 +19,7 @@
+  * with this program; if not, write to the Free Software Foundation, Inc.,
+  * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+  *
+- * (C) Copyright 2007 - 2010 Red Hat, Inc.
++ * (C) Copyright 2007 - 2011 Red Hat, Inc.
+  * (C) Copyright 2008 Novell, Inc.
+  */
+ 
+@@ -31,6 +31,7 @@
+ #include "nm-settings-connection.h"
+ #include "nm-system-config-interface.h"
+ #include "nm-device.h"
++#include "nm-secret-agent.h"
+ 
+ #define NM_TYPE_SETTINGS            (nm_settings_get_type ())
+ #define NM_SETTINGS(obj)            (G_TYPE_CHECK_INSTANCE_CAST ((obj), NM_TYPE_SETTINGS, NMSettings))
+@@ -48,6 +49,7 @@
+ #define NM_SETTINGS_SIGNAL_CONNECTION_REMOVED            "connection-removed"
+ #define NM_SETTINGS_SIGNAL_CONNECTION_VISIBILITY_CHANGED "connection-visibility-changed"
+ #define NM_SETTINGS_SIGNAL_CONNECTIONS_LOADED            "connections-loaded"
++#define NM_SETTINGS_SIGNAL_AGENT_REGISTERED              "agent-registered"
+ 
+ typedef struct {
+ 	GObject parent_instance;
+@@ -68,6 +70,8 @@ typedef struct {
+ 	void (*connection_visibility_changed) (NMSettings *self, NMSettingsConnection *connection);
+ 
+ 	void (*connections_loaded) (NMSettings *self);
++
++	void (*agent_registered) (NMSettings *self, NMSecretAgent *agent);
+ } NMSettingsClass;
+ 
+ GType nm_settings_get_type (void);
+-- 
+1.7.6
+

diff --git a/net-misc/networkmanager/files/0.8.9997/0006-settings-do-not-crash-on-GetSecrets-in-case-of-missi.patch b/net-misc/networkmanager/files/0.8.9997/0006-settings-do-not-crash-on-GetSecrets-in-case-of-missi.patch
new file mode 100644
index 0000000..b01842f
--- /dev/null
+++ b/net-misc/networkmanager/files/0.8.9997/0006-settings-do-not-crash-on-GetSecrets-in-case-of-missi.patch
@@ -0,0 +1,29 @@
+From 5b650f9ae3c5a2972b0b018b8b75d02d815f2c3a Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Ji=C5=99=C3=AD=20Klime=C5=A1?= <jklimes@redhat.com>
+Date: Thu, 7 Jul 2011 12:51:22 +0200
+Subject: [PATCH] settings: do not crash on GetSecrets() in case of missing
+ secrets
+
+When secrets are flagged as agent-owned in a connection configuration file, but
+actually not available, we have to return an empty hash (nm_connection_to_hash()
+returns NULL).
+---
+ src/settings/nm-settings-connection.c |    2 ++
+ 1 files changed, 2 insertions(+), 0 deletions(-)
+
+diff --git a/src/settings/nm-settings-connection.c b/src/settings/nm-settings-connection.c
+index a14b159..f0f9c1a 100644
+--- a/src/settings/nm-settings-connection.c
++++ b/src/settings/nm-settings-connection.c
+@@ -1339,6 +1339,8 @@ dbus_get_agent_secrets_cb (NMSettingsConnection *self,
+ 		update_secrets_cache (self);
+ 
+ 		hash = nm_connection_to_hash (NM_CONNECTION (self), NM_SETTING_HASH_FLAG_ONLY_SECRETS);
++		if (!hash)
++			hash = g_hash_table_new (NULL, NULL);
+ 		dbus_g_method_return (context, hash);
+ 		g_hash_table_destroy (hash);
+ 	}
+-- 
+1.7.6
+

diff --git a/net-misc/networkmanager/files/0.8.9997/0007-keyfile-distinguish-better-between-string-x-int-list.patch b/net-misc/networkmanager/files/0.8.9997/0007-keyfile-distinguish-better-between-string-x-int-list.patch
new file mode 100644
index 0000000..4206df1
--- /dev/null
+++ b/net-misc/networkmanager/files/0.8.9997/0007-keyfile-distinguish-better-between-string-x-int-list.patch
@@ -0,0 +1,70 @@
+From 30c41a4b800408150edcca9047a3996fa1d6ae68 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Ji=C5=99=C3=AD=20Klime=C5=A1?= <jklimes@redhat.com>
+Date: Thu, 7 Jul 2011 15:25:11 +0200
+Subject: [PATCH] keyfile: distinguish better between string x int list
+ formats (bgo #649422)
+
+This commit enhances get_uchar_array() to better differentiate between string
+ad integer list formats. This allows using ';' character in SSIDs.
+---
+ src/settings/plugins/keyfile/reader.c |   28 +++++++++++++---------------
+ 1 files changed, 13 insertions(+), 15 deletions(-)
+
+diff --git a/src/settings/plugins/keyfile/reader.c b/src/settings/plugins/keyfile/reader.c
+index 4b28965..7da6e1a 100644
+--- a/src/settings/plugins/keyfile/reader.c
++++ b/src/settings/plugins/keyfile/reader.c
+@@ -16,7 +16,7 @@
+  * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+  *
+  * Copyright (C) 2008 - 2009 Novell, Inc.
+- * Copyright (C) 2008 - 2010 Red Hat, Inc.
++ * Copyright (C) 2008 - 2011 Red Hat, Inc.
+  */
+ 
+ #include <errno.h>
+@@ -736,29 +736,27 @@ get_uchar_array (GKeyFile *keyfile,
+                  const char *key)
+ {
+ 	GByteArray *array = NULL;
+-	char *p, *tmp_string;
++	char *tmp_string;
+ 	gint *tmp_list;
+ 	gsize length;
+ 	int i;
+ 
+-	/* New format: just a string.  We try parsing the new format if there are
+-	 * no ';' in the string or it's not just numbers.
++	/* New format: just a string
++	 * Old format: integer list; e.g. 11;25;38
+ 	 */
+-	p = tmp_string = g_key_file_get_string (keyfile, setting_name, key, NULL);
++	tmp_string = g_key_file_get_string (keyfile, setting_name, key, NULL);
+ 	if (tmp_string) {
+ 		gboolean new_format = FALSE;
++		GRegex *regex;
++		GMatchInfo *match_info;
++		const char *pattern = "^[[:space:]]*[[:digit:]]+[[:space:]]*(;[[:space:]]*[[:digit:]]+[[:space:]]*)*(;[[:space:]]*)?$";
+ 
+-		if (strchr (p, ';') == NULL)
+-			new_format = TRUE;
+-		else {
++		regex = g_regex_new (pattern, 0, 0, NULL);
++		g_regex_match (regex, tmp_string, 0, &match_info);
++		if (!g_match_info_matches (match_info))
+ 			new_format = TRUE;
+-			while (p && *p) {
+-				if (!isdigit (*p++)) {
+-					new_format = FALSE;
+-					break;
+-				}
+-			}
+-		}
++		g_match_info_free (match_info);
++		g_regex_unref (regex);
+ 
+ 		if (new_format) {
+ 			array = g_byte_array_sized_new (strlen (tmp_string));
+-- 
+1.7.6
+

diff --git a/net-misc/networkmanager/files/0.8.9997/0008-keyfile-fix-integer-list-SSID-parsing-after-30c41a4b.patch b/net-misc/networkmanager/files/0.8.9997/0008-keyfile-fix-integer-list-SSID-parsing-after-30c41a4b.patch
new file mode 100644
index 0000000..b4e0ef0
--- /dev/null
+++ b/net-misc/networkmanager/files/0.8.9997/0008-keyfile-fix-integer-list-SSID-parsing-after-30c41a4b.patch
@@ -0,0 +1,211 @@
+From 9cdc5021ab0b94dbf1a0d1994bc2e5ba4049caf9 Mon Sep 17 00:00:00 2001
+From: Dan Williams <dcbw@redhat.com>
+Date: Wed, 20 Jul 2011 17:44:14 -0500
+Subject: [PATCH 1/2] keyfile: fix integer list SSID parsing after
+ 30c41a4b800408150edcca9047a3996fa1d6ae68
+
+The regex was capturing integers larger than 3 digits, which aren't
+valid SSID integer list items because each byte of the SSID cannot be
+larger than 255.  Add an explicit testcase for intlist SSIDs too.
+The previous regex was causing a testcase failure with an SSID of
+'1337' which it was interpreting as a single element intlist, but
+should have been interpreted as a string since it's clear > 255.
+---
+ src/settings/plugins/keyfile/reader.c              |    2 +-
+ .../plugins/keyfile/tests/keyfiles/Makefile.am     |    1 +
+ .../keyfile/tests/keyfiles/Test_Intlist_SSID       |   11 ++
+ src/settings/plugins/keyfile/tests/test-keyfile.c  |  128 ++++++++++++++++++++
+ 4 files changed, 141 insertions(+), 1 deletions(-)
+ create mode 100644 src/settings/plugins/keyfile/tests/keyfiles/Test_Intlist_SSID
+
+diff --git a/src/settings/plugins/keyfile/reader.c b/src/settings/plugins/keyfile/reader.c
+index 7da6e1a..c4136e0 100644
+--- a/src/settings/plugins/keyfile/reader.c
++++ b/src/settings/plugins/keyfile/reader.c
+@@ -749,7 +749,7 @@ get_uchar_array (GKeyFile *keyfile,
+ 		gboolean new_format = FALSE;
+ 		GRegex *regex;
+ 		GMatchInfo *match_info;
+-		const char *pattern = "^[[:space:]]*[[:digit:]]+[[:space:]]*(;[[:space:]]*[[:digit:]]+[[:space:]]*)*(;[[:space:]]*)?$";
++		const char *pattern = "^[[:space:]]*[[:digit:]]{1,3}[[:space:]]*(;[[:space:]]*[[:digit:]]{1,3}[[:space:]]*)*(;[[:space:]]*)?$";
+ 
+ 		regex = g_regex_new (pattern, 0, 0, NULL);
+ 		g_regex_match (regex, tmp_string, 0, &match_info);
+diff --git a/src/settings/plugins/keyfile/tests/keyfiles/Makefile.am b/src/settings/plugins/keyfile/tests/keyfiles/Makefile.am
+index ce5ff99..302db86 100644
+--- a/src/settings/plugins/keyfile/tests/keyfiles/Makefile.am
++++ b/src/settings/plugins/keyfile/tests/keyfiles/Makefile.am
+@@ -7,6 +7,7 @@ KEYFILES = \
+ 	ATT_Data_Connect_BT \
+ 	ATT_Data_Connect_Plain \
+ 	Test_String_SSID \
++	Test_Intlist_SSID \
+ 	Test_Wired_TLS_Old \
+ 	Test_Wired_TLS_New \
+ 	Test_Wired_TLS_Blob \
+diff --git a/src/settings/plugins/keyfile/tests/keyfiles/Test_Intlist_SSID b/src/settings/plugins/keyfile/tests/keyfiles/Test_Intlist_SSID
+new file mode 100644
+index 0000000..6d2bc0f
+--- /dev/null
++++ b/src/settings/plugins/keyfile/tests/keyfiles/Test_Intlist_SSID
+@@ -0,0 +1,11 @@
++[connection]
++id=Test 
++uuid=2f962388-e5f3-45af-a62c-ac220b8f7baa
++type=802-11-wireless
++
++[802-11-wireless]
++ssid=98;108;97;104;49;50;51;52;
++
++[ipv4]
++method=auto
++
+diff --git a/src/settings/plugins/keyfile/tests/test-keyfile.c b/src/settings/plugins/keyfile/tests/test-keyfile.c
+index 6cdd198..3bbaaae 100644
+--- a/src/settings/plugins/keyfile/tests/test-keyfile.c
++++ b/src/settings/plugins/keyfile/tests/test-keyfile.c
+@@ -1438,6 +1438,131 @@ test_write_string_ssid (void)
+ 	g_object_unref (connection);
+ }
+ 
++#define TEST_INTLIST_SSID_FILE TEST_KEYFILES_DIR"/Test_Intlist_SSID"
++
++static void
++test_read_intlist_ssid (void)
++{
++	NMConnection *connection;
++	NMSettingWireless *s_wifi;
++	GError *error = NULL;
++	gboolean success;
++	const GByteArray *array;
++	const char *expected_ssid = "blah1234";
++
++	connection = nm_keyfile_plugin_connection_from_file (TEST_INTLIST_SSID_FILE, &error);
++	g_assert_no_error (error);
++	g_assert (connection);
++
++	success = nm_connection_verify (connection, &error);
++	g_assert_no_error (error);
++	g_assert (success);
++
++	/* SSID */
++	s_wifi = nm_connection_get_setting_wireless (connection);
++	g_assert (s_wifi);
++
++	array = nm_setting_wireless_get_ssid (s_wifi);
++	g_assert (array != NULL);
++	g_assert_cmpint (array->len, ==, strlen (expected_ssid));
++	g_assert_cmpint (memcmp (array->data, expected_ssid, strlen (expected_ssid)), ==, 0);
++
++	g_object_unref (connection);
++}
++
++static void
++test_write_intlist_ssid (void)
++{
++	NMConnection *connection;
++	NMSettingConnection *s_con;
++	NMSettingWireless *s_wifi;
++	NMSettingIP4Config *s_ip4;
++	char *uuid, *testfile = NULL;
++	GByteArray *ssid;
++	unsigned char tmpssid[] = { 65, 49, 50, 51, 0, 50, 50 };
++	gboolean success;
++	NMConnection *reread;
++	GError *error = NULL;
++	pid_t owner_grp;
++	uid_t owner_uid;
++	GKeyFile *keyfile;
++	gint *intlist;
++	gsize len = 0, i;
++
++	connection = nm_connection_new ();
++	g_assert (connection);
++
++	/* Connection setting */
++
++	s_con = NM_SETTING_CONNECTION (nm_setting_connection_new ());
++	g_assert (s_con);
++	nm_connection_add_setting (connection, NM_SETTING (s_con));
++
++	uuid = nm_utils_uuid_generate ();
++	g_object_set (s_con,
++	              NM_SETTING_CONNECTION_ID, "Intlist SSID Test",
++	              NM_SETTING_CONNECTION_UUID, uuid,
++	              NM_SETTING_CONNECTION_TYPE, NM_SETTING_WIRELESS_SETTING_NAME,
++	              NULL);
++	g_free (uuid);
++
++	/* Wireless setting */
++	s_wifi = NM_SETTING_WIRELESS (nm_setting_wireless_new ());
++	g_assert (s_wifi);
++	nm_connection_add_setting (connection, NM_SETTING (s_wifi));
++
++	ssid = g_byte_array_sized_new (sizeof (tmpssid));
++	g_byte_array_append (ssid, &tmpssid[0], sizeof (tmpssid));
++	g_object_set (s_wifi, NM_SETTING_WIRELESS_SSID, ssid, NULL);
++	g_byte_array_free (ssid, TRUE);
++
++	/* IP4 setting */
++	s_ip4 = NM_SETTING_IP4_CONFIG (nm_setting_ip4_config_new ());
++	g_assert (s_ip4);
++	nm_connection_add_setting (connection, NM_SETTING (s_ip4));
++	g_object_set (s_ip4, NM_SETTING_IP4_CONFIG_METHOD, NM_SETTING_IP4_CONFIG_METHOD_AUTO, NULL);
++
++	/* Write out the connection */
++	owner_uid = geteuid ();
++	owner_grp = getegid ();
++	success = nm_keyfile_plugin_write_test_connection (connection, TEST_SCRATCH_DIR, owner_uid, owner_grp, &testfile, &error);
++	g_assert_no_error (error);
++	g_assert (success);
++	g_assert (testfile != NULL);
++
++	/* Ensure the SSID was written out as an int list */
++	keyfile = g_key_file_new ();
++	success = g_key_file_load_from_file (keyfile, testfile, 0, &error);
++	g_assert_no_error (error);
++	g_assert (success);
++
++	intlist = g_key_file_get_integer_list (keyfile, NM_SETTING_WIRELESS_SETTING_NAME, NM_SETTING_WIRELESS_SSID, &len, &error);
++	g_assert_no_error (error);
++	g_assert (intlist);
++	g_assert_cmpint (len, ==, sizeof (tmpssid));
++
++	for (i = 0; i < len; i++)
++		g_assert_cmpint (intlist[i], ==, tmpssid[i]);
++	g_free (intlist);
++
++	g_key_file_free (keyfile);
++
++	/* Read the connection back in and compare it to the one we just wrote out */
++	reread = nm_keyfile_plugin_connection_from_file (testfile, &error);
++	g_assert_no_error (error);
++	g_assert (reread);
++
++	success = nm_connection_compare (connection, reread, NM_SETTING_COMPARE_FLAG_EXACT);
++	g_assert (success);
++
++	g_clear_error (&error);
++	unlink (testfile);
++	g_free (testfile);
++
++	g_object_unref (reread);
++	g_object_unref (connection);
++}
++
+ #define TEST_BT_DUN_FILE TEST_KEYFILES_DIR"/ATT_Data_Connect_BT"
+ 
+ static void
+@@ -2488,6 +2613,9 @@ int main (int argc, char **argv)
+ 	test_read_string_ssid ();
+ 	test_write_string_ssid ();
+ 
++	test_read_intlist_ssid ();
++	test_write_intlist_ssid ();
++
+ 	test_read_bt_dun_connection ();
+ 	test_write_bt_dun_connection ();
+ 
+-- 
+1.7.6
+

diff --git a/net-misc/networkmanager/files/0.8.9997/0009-libnm-util-default-to-allowing-IPv6-connections-to-f.patch b/net-misc/networkmanager/files/0.8.9997/0009-libnm-util-default-to-allowing-IPv6-connections-to-f.patch
new file mode 100644
index 0000000..4a3c6fc
--- /dev/null
+++ b/net-misc/networkmanager/files/0.8.9997/0009-libnm-util-default-to-allowing-IPv6-connections-to-f.patch
@@ -0,0 +1,32 @@
+From 36db194ae95e35cc7b8f431ab984780dea24656d Mon Sep 17 00:00:00 2001
+From: Mathieu Trudel-Lapierre <mathieu.tl@gmail.com>
+Date: Wed, 20 Jul 2011 23:56:48 -0500
+Subject: [PATCH 2/2] libnm-util: default to allowing IPv6 connections to fail
+
+Allow IPv6 connections to fail by changing the default value of the may-fail
+property for ipv6 settings to TRUE.
+
+This makes sure connections created manually using nm-connection-editor
+will default to having the "Require ..." checkbox unchecked; in other words,
+IPv6 timing out will still allow the interface to be configured if
+IPv4 succeeds.
+---
+ libnm-util/nm-setting-ip6-config.c |    2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+diff --git a/libnm-util/nm-setting-ip6-config.c b/libnm-util/nm-setting-ip6-config.c
+index e911639..4dc8f46 100644
+--- a/libnm-util/nm-setting-ip6-config.c
++++ b/libnm-util/nm-setting-ip6-config.c
+@@ -1056,7 +1056,7 @@ nm_setting_ip6_config_class_init (NMSettingIP6ConfigClass *setting_class)
+ 						   "this property to TRUE allows the overall network "
+ 						   "configuration to succeed if IPv6 configuration "
+ 						   "fails but IPv4 configuration completes successfully.",
+-						   FALSE,
++						   TRUE,
+ 						   G_PARAM_READWRITE | G_PARAM_CONSTRUCT | NM_SETTING_PARAM_SERIALIZE));
+ }
+ 
+-- 
+1.7.6
+

diff --git a/net-misc/networkmanager/files/networkmanager-fix-tests.patch b/net-misc/networkmanager/files/networkmanager-fix-tests.patch
new file mode 100644
index 0000000..7bd8a2b
--- /dev/null
+++ b/net-misc/networkmanager/files/networkmanager-fix-tests.patch
@@ -0,0 +1,18 @@
+--- configure.ac
++++ configure.ac
+@@ -577,7 +577,6 @@
+ src/settings/plugins/ifupdown/Makefile
+ src/settings/plugins/ifupdown/tests/Makefile
+ src/settings/plugins/ifnet/Makefile
+-src/settings/plugins/ifnet/tests/Makefile
+ src/settings/plugins/ifcfg-rh/Makefile
+ src/settings/plugins/ifcfg-rh/tests/Makefile
+ src/settings/plugins/ifcfg-rh/tests/network-scripts/Makefile
+--- src/settings/plugins/ifnet/Makefile.am
++++ src/settings/plugins/ifnet/Makefile.am
+@@ -1,4 +1,4 @@
+-SUBDIRS = . tests
++SUBDIRS = .
+ INCLUDES = \
+        -I$(top_srcdir)/src/settings \
+        -I$(top_srcdir)/include \

diff --git a/net-misc/networkmanager/files/nm-system-settings.conf-ifnet b/net-misc/networkmanager/files/nm-system-settings.conf-ifnet
new file mode 100644
index 0000000..4d14ee7
--- /dev/null
+++ b/net-misc/networkmanager/files/nm-system-settings.conf-ifnet
@@ -0,0 +1,6 @@
+[main]
+plugins=ifnet,keyfile
+
+[ifnet]
+managed=true
+auto_refresh=false

diff --git a/net-misc/networkmanager/metadata.xml b/net-misc/networkmanager/metadata.xml
index 7d8b3b4..7d32aff 100644
--- a/net-misc/networkmanager/metadata.xml
+++ b/net-misc/networkmanager/metadata.xml
@@ -10,18 +10,17 @@
 		<email>rbu@gentoo.org</email>
 		<name>Robert Buchholz</name>
 	</maintainer>
-        <maintainer>
-                <email>dagger@gentoo.org</email>
-                <name>Robert Piasek</name>
-        </maintainer>
+	<maintainer>
+		<email>dagger@gentoo.org</email>
+		<name>Robert Piasek</name>
+	</maintainer>
 	<use>
-		<flag name="connection-sharing">Use <pkg>net-dns/dnsmasq</pkg> and <pkg>net-firewall/iptables</pkg> for connection sharing </flag>
-                <flag name="dhclient">Use dhclient from <pkg>net-misc/dhcp</pkg> for getting ip.</flag>
+		<flag name="ppp">Enable support for mobile broadband and PPPoE connections using <pkg>net-dialup/ppp</pkg>.</flag>
+		<flag name="dhclient">Use dhclient from <pkg>net-misc/dhcp</pkg> for getting ip.</flag>
 		<flag name="dhcpcd">Use <pkg>net-misc/dhcpcd</pkg> for getting ip.</flag>
-		<flag name="introspection">Use <pkg>dev-libs/gobject-introspection</pkg> for introspection</flag>
 		<flag name="nss">Use <pkg>dev-libs/nss</pkg> for cryptography.</flag>
-		<flag name="ppp">Enable support for mobile broadband and PPPoE connections using <pkg>net-dialup/ppp</pkg>.</flag>
 		<flag name="resolvconf">Use <pkg>net-dns/openresolv</pkg> for managing DNS information</flag>
+		<flag name="connection-sharing">Use <pkg>net-dns/dnsmasq</pkg> and <pkg>net-firewall/iptables</pkg> for connection sharing </flag>
 		<flag name="wimax">Enable WiMAX support. Requires <pkg>net-wireless/wimax</pkg>.</flag>
 	</use>
 </pkgmetadata>

diff --git a/net-misc/networkmanager/networkmanager-0.8.9997.ebuild b/net-misc/networkmanager/networkmanager-0.8.9997-r1.ebuild
similarity index 67%
rename from net-misc/networkmanager/networkmanager-0.8.9997.ebuild
rename to net-misc/networkmanager/networkmanager-0.8.9997-r1.ebuild
index 12617d7..0a1b561 100644
--- a/net-misc/networkmanager/networkmanager-0.8.9997.ebuild
+++ b/net-misc/networkmanager/networkmanager-0.8.9997-r1.ebuild
@@ -1,44 +1,34 @@
 # Copyright 1999-2011 Gentoo Foundation
 # Distributed under the terms of the GNU General Public License v2
-# $Header: $
+# $Header: /var/cvsroot/gentoo-x86/net-misc/networkmanager/networkmanager-0.8.995.ebuild,v 1.1 2011/03/09 07:56:21 qiaomuf Exp $
 
 EAPI="4"
+GNOME_ORG_MODULE="NetworkManager"
 
-# NetworkManager likes itself with capital letters
-MY_PN=${PN/networkmanager/NetworkManager}
-MY_P=${MY_PN}-${PV}
-
-if [[ ${PV} == *9999 ]]; then
-	git_eclass="git-2"
-	EGIT_REPO_URI="git://anongit.freedesktop.org/${MY_PN}/${MY_PN}"
-	KEYWORDS=""
-else
-	SRC_URI="http://cgit.freedesktop.org/${MY_PN}/${MY_PN}/snapshot/${MY_P}.tar.bz2"
-	KEYWORDS="~amd64 ~arm ~x86"
-fi
-
-inherit autotools eutils linux-info ${git_eclass}
+inherit autotools eutils gnome.org linux-info systemd
 
 DESCRIPTION="Network configuration and management in an easy way. Desktop environment independent."
 HOMEPAGE="http://www.gnome.org/projects/NetworkManager/"
-SRC_URI="${SRC_URI}
-		http://dev.gentoo.org/~dagger/files/ifnet-0.9.tar.bz2
-		"
 
 LICENSE="GPL-2"
 SLOT="0"
-IUSE="avahi bluetooth doc +nss gnutls dhclient +dhcpcd +introspection kernel_linux +ppp resolvconf connection-sharing wimax"
+IUSE="avahi bluetooth doc +nss gnutls dhclient +dhcpcd +introspection
+kernel_linux +ppp resolvconf connection-sharing wimax"
+KEYWORDS="~amd64 ~arm ~ppc ~ppc64 ~x86"
 
 REQUIRED_USE="
-	nss? ( !gnutls ) !nss? ( gnutls )
-	dhcpcd? ( !dhclient ) !dhcpcd? ( dhclient )"
+	^^ ( nss gnutls )
+	^^ ( dhclient dhcpcd )"
 
-RDEPEND=">=sys-apps/dbus-1.2
+# gobject-introspection-0.10.3 is needed due to gnome bug 642300
+# wpa_supplicant-0.7.3-r3 is needed due to bug 359271
+# make consolekit and/or polkit support optional ?
+COMMON_DEPEND=">=sys-apps/dbus-1.2
 	>=dev-libs/dbus-glib-0.75
 	>=net-wireless/wireless-tools-28_pre9
-	>=sys-fs/udev-147[extras]
+	|| ( >=sys-fs/udev-171[gudev] >=sys-fs/udev-147[extras] )
 	>=dev-libs/glib-2.26
-	>=sys-auth/polkit-0.96
+	>=sys-auth/polkit-0.97
 	>=dev-libs/libnl-1.1
 	>=net-misc/modemmanager-0.4
 	>=net-wireless/wpa_supplicant-0.7.3-r3[dbus]
@@ -58,14 +48,15 @@ RDEPEND=">=sys-apps/dbus-1.2
 		net-firewall/iptables )
 	wimax? ( >=net-wireless/wimax-1.5.1 )"
 
-DEPEND="${RDEPEND}
+RDEPEND="${COMMON_DEPEND}
+	sys-auth/consolekit"
+
+DEPEND="${COMMON_DEPEND}
 	dev-util/pkgconfig
-	dev-util/intltool
-	>=dev-util/gtk-doc-1.15
+	>=dev-util/intltool-0.40
+	>=sys-devel/gettext-0.17
 	doc? ( >=dev-util/gtk-doc-1.8 )"
 
-S=${WORKDIR}/${MY_P}
-
 sysfs_deprecated_check() {
 	ebegin "Checking for SYSFS_DEPRECATED support"
 
@@ -78,7 +69,7 @@ sysfs_deprecated_check() {
 	eend $?
 }
 
-pkg_setup() {
+pkg_pretend() {
 	if use kernel_linux; then
 		get_version
 		if linux_config_exists; then
@@ -93,10 +84,14 @@ pkg_setup() {
 }
 
 src_prepare() {
-		gtkdocize
-		eautopoint --force
-		intltoolize --force --automake --copy
-		eautoreconf
+	# Add useful patches from upstream git (fixing crashes, SSID parsing bugs,
+	# and significant usability problems).
+	epatch "${FILESDIR}/${PV}/"*.patch
+
+	# Don't build tests
+	epatch "${FILESDIR}/${PN}-fix-tests.patch"
+	eautoreconf
+	default
 }
 
 src_configure() {
@@ -104,7 +99,7 @@ src_configure() {
 		--localstatedir=/var
 		--with-distro=gentoo
 		--with-dbus-sys-dir=/etc/dbus-1/system.d
-		--with-udev-dir=/etc/udev
+		--with-udev-dir=/lib/udev
 		--with-iptables=/sbin/iptables
 		$(use_enable doc gtk-doc)
 		$(use_enable introspection)
@@ -113,7 +108,8 @@ src_configure() {
 		$(use_with dhclient)
 		$(use_with dhcpcd)
 		$(use_with doc docs)
-		$(use_with resolvconf)"
+		$(use_with resolvconf)
+		$(systemd_with_unitdir)"
 
 		if use nss ; then
 			ECONF="${ECONF} $(use_with nss crypto=nss)"
@@ -132,17 +128,11 @@ src_install() {
 	# Need to keep the /etc/NetworkManager/dispatched.d for dispatcher scripts
 	keepdir /etc/NetworkManager/dispatcher.d
 
-	dodoc AUTHORS ChangeLog NEWS README TODO || die "dodoc failed"
-
 	# Add keyfile plugin support
 	keepdir /etc/NetworkManager/system-connections
 	insinto /etc/NetworkManager
-	newins "${FILESDIR}/nm-system-settings.conf" nm-system-settings.conf \
-		|| die "newins failed"
-}
+	newins "${FILESDIR}/nm-system-settings.conf-ifnet" nm-system-settings.conf
 
-pkg_postinst() {
-	elog "You will need to reload DBus if this is your first time installing"
-	elog "NetworkManager, or if you're upgrading from 0.7 or older."
-	elog ""
+	# Remove useless .la files
+	find "${D}" -name '*.la' -exec rm -f {} +
 }

diff --git a/net-misc/networkmanager/networkmanager-9999.ebuild b/net-misc/networkmanager/networkmanager-9999.ebuild
deleted file mode 100644
index 12617d7..0000000
--- a/net-misc/networkmanager/networkmanager-9999.ebuild
+++ /dev/null
@@ -1,148 +0,0 @@
-# Copyright 1999-2011 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Header: $
-
-EAPI="4"
-
-# NetworkManager likes itself with capital letters
-MY_PN=${PN/networkmanager/NetworkManager}
-MY_P=${MY_PN}-${PV}
-
-if [[ ${PV} == *9999 ]]; then
-	git_eclass="git-2"
-	EGIT_REPO_URI="git://anongit.freedesktop.org/${MY_PN}/${MY_PN}"
-	KEYWORDS=""
-else
-	SRC_URI="http://cgit.freedesktop.org/${MY_PN}/${MY_PN}/snapshot/${MY_P}.tar.bz2"
-	KEYWORDS="~amd64 ~arm ~x86"
-fi
-
-inherit autotools eutils linux-info ${git_eclass}
-
-DESCRIPTION="Network configuration and management in an easy way. Desktop environment independent."
-HOMEPAGE="http://www.gnome.org/projects/NetworkManager/"
-SRC_URI="${SRC_URI}
-		http://dev.gentoo.org/~dagger/files/ifnet-0.9.tar.bz2
-		"
-
-LICENSE="GPL-2"
-SLOT="0"
-IUSE="avahi bluetooth doc +nss gnutls dhclient +dhcpcd +introspection kernel_linux +ppp resolvconf connection-sharing wimax"
-
-REQUIRED_USE="
-	nss? ( !gnutls ) !nss? ( gnutls )
-	dhcpcd? ( !dhclient ) !dhcpcd? ( dhclient )"
-
-RDEPEND=">=sys-apps/dbus-1.2
-	>=dev-libs/dbus-glib-0.75
-	>=net-wireless/wireless-tools-28_pre9
-	>=sys-fs/udev-147[extras]
-	>=dev-libs/glib-2.26
-	>=sys-auth/polkit-0.96
-	>=dev-libs/libnl-1.1
-	>=net-misc/modemmanager-0.4
-	>=net-wireless/wpa_supplicant-0.7.3-r3[dbus]
-	bluetooth? ( >=net-wireless/bluez-4.82 )
-	avahi? ( net-dns/avahi[autoipd] )
-	gnutls? (
-		dev-libs/libgcrypt
-		net-libs/gnutls )
-	nss? ( >=dev-libs/nss-3.11 )
-	dhclient? ( net-misc/dhcp )
-	dhcpcd? ( >=net-misc/dhcpcd-4.0.0_rc3 )
-	introspection? ( >=dev-libs/gobject-introspection-0.10.3 )
-	ppp? ( >=net-dialup/ppp-2.4.5 )
-	resolvconf? ( net-dns/openresolv )
-	connection-sharing? (
-		net-dns/dnsmasq
-		net-firewall/iptables )
-	wimax? ( >=net-wireless/wimax-1.5.1 )"
-
-DEPEND="${RDEPEND}
-	dev-util/pkgconfig
-	dev-util/intltool
-	>=dev-util/gtk-doc-1.15
-	doc? ( >=dev-util/gtk-doc-1.8 )"
-
-S=${WORKDIR}/${MY_P}
-
-sysfs_deprecated_check() {
-	ebegin "Checking for SYSFS_DEPRECATED support"
-
-	if { linux_chkconfig_present SYSFS_DEPRECATED_V2; }; then
-		eerror "Please disable SYSFS_DEPRECATED_V2 support in your kernel config and recompile your kernel"
-		eerror "or NetworkManager will not work correctly."
-		eerror "See http://bugs.gentoo.org/333639 for more info."
-		die "CONFIG_SYSFS_DEPRECATED_V2 support detected!"
-	fi
-	eend $?
-}
-
-pkg_setup() {
-	if use kernel_linux; then
-		get_version
-		if linux_config_exists; then
-			sysfs_deprecated_check
-		else
-			ewarn "Was unable to determine your kernel .config"
-			ewarn "Please note that if CONFIG_SYSFS_DEPRECATED_V2 is set in your kernel .config, NetworkManager will not work correctly."
-			ewarn "See http://bugs.gentoo.org/333639 for more info."
-		fi
-
-	fi
-}
-
-src_prepare() {
-		gtkdocize
-		eautopoint --force
-		intltoolize --force --automake --copy
-		eautoreconf
-}
-
-src_configure() {
-	ECONF="--disable-more-warnings
-		--localstatedir=/var
-		--with-distro=gentoo
-		--with-dbus-sys-dir=/etc/dbus-1/system.d
-		--with-udev-dir=/etc/udev
-		--with-iptables=/sbin/iptables
-		$(use_enable doc gtk-doc)
-		$(use_enable introspection)
-		$(use_enable ppp)
-		$(use_enable wimax)
-		$(use_with dhclient)
-		$(use_with dhcpcd)
-		$(use_with doc docs)
-		$(use_with resolvconf)"
-
-		if use nss ; then
-			ECONF="${ECONF} $(use_with nss crypto=nss)"
-		else
-			ECONF="${ECONF} $(use_with gnutls crypto=gnutls)"
-		fi
-
-	econf ${ECONF}
-}
-
-src_install() {
-	default
-	# Need to keep the /var/run/NetworkManager directory
-	keepdir /var/run/NetworkManager
-
-	# Need to keep the /etc/NetworkManager/dispatched.d for dispatcher scripts
-	keepdir /etc/NetworkManager/dispatcher.d
-
-	dodoc AUTHORS ChangeLog NEWS README TODO || die "dodoc failed"
-
-	# Add keyfile plugin support
-	keepdir /etc/NetworkManager/system-connections
-	insinto /etc/NetworkManager
-	newins "${FILESDIR}/nm-system-settings.conf" nm-system-settings.conf \
-		|| die "newins failed"
-}
-
-pkg_postinst() {
-	elog "You will need to reload DBus if this is your first time installing"
-	elog "NetworkManager, or if you're upgrading from 0.7 or older."
-	elog ""
-}



^ permalink raw reply related	[flat|nested] 2+ messages in thread

* [gentoo-commits] proj/kde:master commit in: net-misc/networkmanager-vpnc/, net-misc/networkmanager-openvpn/, ...
@ 2011-09-06 15:48 Alexey Shvetsov
  0 siblings, 0 replies; 2+ messages in thread
From: Alexey Shvetsov @ 2011-09-06 15:48 UTC (permalink / raw
  To: gentoo-commits

commit:     d80678329e6d5e54bd761638db1480698cb88210
Author:     Alexey Shvetsov <alexxy <AT> gentoo <DOT> org>
AuthorDate: Tue Sep  6 15:48:20 2011 +0000
Commit:     Alexey Shvetsov <alexxy <AT> gentoo <DOT> org>
CommitDate: Tue Sep  6 15:48:20 2011 +0000
URL:        http://git.overlays.gentoo.org/gitweb/?p=proj/kde.git;a=commit;h=d8067832

[net-misc] Drop old stuff

---
 net-misc/modemmanager/metadata.xml                 |   13 -
 net-misc/modemmanager/modemmanager-0.4.997.ebuild  |   76 ---
 net-misc/modemmanager/modemmanager-9999.ebuild     |   76 ---
 .../networkmanager-openswan-0.8.999.ebuild         |   52 --
 .../networkmanager-openvpn-0.8.9997.ebuild         |   50 --
 .../networkmanager-pptp-0.8.999.ebuild             |   54 ---
 .../networkmanager-vpnc-0.8.999.ebuild             |   56 ---
 ...auto-retries-counter-when-cable-is-replug.patch |   80 ---
 ...ix-auto-connect-to-hidden-SSIDs-rh-707406.patch |  502 --------------------
 ...fix-crash-for-AddAndActivateConnection-D-.patch |   29 --
 ...ve-invalid-mark-for-failed-connections-af.patch |  109 -----
 ...tions-failed-due-to-missing-secrets-are-r.patch |  280 -----------
 ...-not-crash-on-GetSecrets-in-case-of-missi.patch |   29 --
 ...tinguish-better-between-string-x-int-list.patch |   70 ---
 ...-integer-list-SSID-parsing-after-30c41a4b.patch |  211 --------
 ...default-to-allowing-IPv6-connections-to-f.patch |   32 --
 .../files/networkmanager-fix-tests.patch           |   18 -
 .../networkmanager/files/nm-system-settings.conf   |    6 -
 .../files/nm-system-settings.conf-ifnet            |    6 -
 net-misc/networkmanager/metadata.xml               |   26 -
 .../networkmanager-0.8.9997-r1.ebuild              |  138 ------
 21 files changed, 0 insertions(+), 1913 deletions(-)

diff --git a/net-misc/modemmanager/metadata.xml b/net-misc/modemmanager/metadata.xml
deleted file mode 100644
index 8ea105f..0000000
--- a/net-misc/modemmanager/metadata.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
-<pkgmetadata>
-	<herd>no-herd</herd>
-	<maintainer>
-		<email>dagger@gentoo.org</email>
-		<name>Robert Piasek</name>
-	</maintainer>
-	<maintainer>
-		<email>nirbheek@gentoo.org</email>
-		<name>Nirbheek Chauhan</name>
-	</maintainer>
-</pkgmetadata>

diff --git a/net-misc/modemmanager/modemmanager-0.4.997.ebuild b/net-misc/modemmanager/modemmanager-0.4.997.ebuild
deleted file mode 100644
index 0531696..0000000
--- a/net-misc/modemmanager/modemmanager-0.4.997.ebuild
+++ /dev/null
@@ -1,76 +0,0 @@
-# Copyright 1999-2011 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Header: $
-
-EAPI="4"
-
-# ModemManager likes itself with capital letters
-MY_PN="${PN/modemmanager/ModemManager}"
-MY_P=${MY_PN}-${PV}
-
-if [[ ${PV} == *9999 ]]; then
-	git_eclass="git-2"
-	EGIT_REPO_URI="git://anongit.freedesktop.org/${MY_PN}/${MY_PN}"
-	KEYWORDS=""
-else
-	SRC_URI="http://cgit.freedesktop.org/${MY_PN}/${MY_PN}/snapshot/${MY_P}.tar.bz2"
-	KEYWORDS="~amd64 ~arm ~x86"
-fi
-
-inherit eutils autotools ${git_eclass}
-
-DESCRIPTION="Modem and mobile broadband management libraries"
-HOMEPAGE="http://mail.gnome.org/archives/networkmanager-list/2008-July/msg00274.html"
-
-LICENSE="LGPL-2.1"
-SLOT="0"
-IUSE="doc policykit test"
-
-RDEPEND=">=dev-libs/glib-2.18
-	>=sys-fs/udev-145[extras]
-	>=dev-libs/dbus-glib-0.86
-	net-dialup/ppp
-	policykit? ( >=sys-auth/polkit-0.95 )"
-DEPEND="${RDEPEND}
-	>=dev-util/intltool-0.35.0
-	sys-devel/gettext
-	dev-util/pkgconfig"
-
-S="${WORKDIR}/${MY_PN}-${PV}"
-
-src_prepare() {
-	intltoolize --force --copy --automake || die
-	eautoreconf
-}
-
-src_configure() {
-	# ppp-2.4.5 will change the plugin directory (not added to portage yet)
-	if has_version '=net-dialup/ppp-2.4.4*'; then
-		pppd_plugin_dir="pppd/2.4.4"
-	elif has_version '=net-dialup/ppp-2.4.5*'; then
-		pppd_plugin_dir="pppd/2.4.5"
-	fi
-
-	econf \
-		--disable-more-warnings \
-		--with-udev-base-dir=/etc/udev/ \
-		--disable-static \
-		--with-dist-version=${PVR} \
-		--with-pppd-plugin-dir="/usr/$(get_libdir)/${pppd_plugin_dir}" \
-		$(use_with doc docs) \
-		$(use_with policykit polkit) \
-		$(use_with test tests)
-}
-
-src_install() {
-	emake DESTDIR="${D}" install || die "emake install failed"
-	dodoc AUTHORS ChangeLog NEWS README
-	# Remove useless .la files
-	rm -vf "${D}"/usr/$(get_libdir)/{${MY_PN},${pppd_plugin_dir}}/*.la
-}
-
-pkg_postinst() {
-	elog "If your USB modem shows up as a Flash drive when you plug it in,"
-	elog "You should install sys-apps/usb_modeswitch which will automatically"
-	elog "switch it over to USB modem mode whenever you plug it in."
-}

diff --git a/net-misc/modemmanager/modemmanager-9999.ebuild b/net-misc/modemmanager/modemmanager-9999.ebuild
deleted file mode 100644
index 0531696..0000000
--- a/net-misc/modemmanager/modemmanager-9999.ebuild
+++ /dev/null
@@ -1,76 +0,0 @@
-# Copyright 1999-2011 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Header: $
-
-EAPI="4"
-
-# ModemManager likes itself with capital letters
-MY_PN="${PN/modemmanager/ModemManager}"
-MY_P=${MY_PN}-${PV}
-
-if [[ ${PV} == *9999 ]]; then
-	git_eclass="git-2"
-	EGIT_REPO_URI="git://anongit.freedesktop.org/${MY_PN}/${MY_PN}"
-	KEYWORDS=""
-else
-	SRC_URI="http://cgit.freedesktop.org/${MY_PN}/${MY_PN}/snapshot/${MY_P}.tar.bz2"
-	KEYWORDS="~amd64 ~arm ~x86"
-fi
-
-inherit eutils autotools ${git_eclass}
-
-DESCRIPTION="Modem and mobile broadband management libraries"
-HOMEPAGE="http://mail.gnome.org/archives/networkmanager-list/2008-July/msg00274.html"
-
-LICENSE="LGPL-2.1"
-SLOT="0"
-IUSE="doc policykit test"
-
-RDEPEND=">=dev-libs/glib-2.18
-	>=sys-fs/udev-145[extras]
-	>=dev-libs/dbus-glib-0.86
-	net-dialup/ppp
-	policykit? ( >=sys-auth/polkit-0.95 )"
-DEPEND="${RDEPEND}
-	>=dev-util/intltool-0.35.0
-	sys-devel/gettext
-	dev-util/pkgconfig"
-
-S="${WORKDIR}/${MY_PN}-${PV}"
-
-src_prepare() {
-	intltoolize --force --copy --automake || die
-	eautoreconf
-}
-
-src_configure() {
-	# ppp-2.4.5 will change the plugin directory (not added to portage yet)
-	if has_version '=net-dialup/ppp-2.4.4*'; then
-		pppd_plugin_dir="pppd/2.4.4"
-	elif has_version '=net-dialup/ppp-2.4.5*'; then
-		pppd_plugin_dir="pppd/2.4.5"
-	fi
-
-	econf \
-		--disable-more-warnings \
-		--with-udev-base-dir=/etc/udev/ \
-		--disable-static \
-		--with-dist-version=${PVR} \
-		--with-pppd-plugin-dir="/usr/$(get_libdir)/${pppd_plugin_dir}" \
-		$(use_with doc docs) \
-		$(use_with policykit polkit) \
-		$(use_with test tests)
-}
-
-src_install() {
-	emake DESTDIR="${D}" install || die "emake install failed"
-	dodoc AUTHORS ChangeLog NEWS README
-	# Remove useless .la files
-	rm -vf "${D}"/usr/$(get_libdir)/{${MY_PN},${pppd_plugin_dir}}/*.la
-}
-
-pkg_postinst() {
-	elog "If your USB modem shows up as a Flash drive when you plug it in,"
-	elog "You should install sys-apps/usb_modeswitch which will automatically"
-	elog "switch it over to USB modem mode whenever you plug it in."
-}

diff --git a/net-misc/networkmanager-openswan/networkmanager-openswan-0.8.999.ebuild b/net-misc/networkmanager-openswan/networkmanager-openswan-0.8.999.ebuild
deleted file mode 100644
index 3fe1c4d..0000000
--- a/net-misc/networkmanager-openswan/networkmanager-openswan-0.8.999.ebuild
+++ /dev/null
@@ -1,52 +0,0 @@
-# Copyright 1999-2011 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Header: $
-
-EAPI="4"
-GNOME_TARBALL_SUFFIX="bz2"
-GNOME_ORG_MODULE="NetworkManager-${PN##*-}"
-
-inherit gnome.org
-
-# NetworkManager likes itself with capital letters
-MY_PN="${GNOME_ORG_MODULE}"
-
-DESCRIPTION="NetworkManager Openswan plugin"
-HOMEPAGE="http://www.gnome.org/projects/NetworkManager/"
-
-LICENSE="GPL-2"
-SLOT="0"
-KEYWORDS="~amd64 ~x86"
-IUSE="gnome"
-
-RDEPEND="
-	>=net-misc/networkmanager-${PV}
-	>=dev-libs/dbus-glib-0.74
-	>=net-misc/vpnc-0.5
-	gnome? (
-		>=x11-libs/gtk+-3.0.0:3
-		gnome-base/gnome-keyring
-	)"
-
-DEPEND="${RDEPEND}
-	sys-devel/gettext
-	dev-util/intltool
-	dev-util/pkgconfig"
-
-S="${WORKDIR}/${MY_PN}-${PV}"
-
-src_configure() {
-	ECONF="--disable-more-warnings
-		--disable-static
-		--with-dist-version=Gentoo
-		--with-gtkver=3.0
-		$(use_with gnome)"
-
-	econf ${ECONF}
-}
-
-src_install() {
-	default
-	# Remove useless .la files
-	find "${D}" -name '*.la' -exec rm -f {} +
-}

diff --git a/net-misc/networkmanager-openvpn/networkmanager-openvpn-0.8.9997.ebuild b/net-misc/networkmanager-openvpn/networkmanager-openvpn-0.8.9997.ebuild
deleted file mode 100644
index e4d0bdd..0000000
--- a/net-misc/networkmanager-openvpn/networkmanager-openvpn-0.8.9997.ebuild
+++ /dev/null
@@ -1,50 +0,0 @@
-# Copyright 1999-2011 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Header: $
-
-EAPI="4"
-GNOME_ORG_MODULE="NetworkManager-${PN##*-}"
-
-inherit gnome.org
-
-DESCRIPTION="NetworkManager OpenVPN plugin"
-HOMEPAGE="http://www.gnome.org/projects/NetworkManager/"
-
-LICENSE="GPL-2"
-SLOT="0"
-KEYWORDS="~amd64 ~x86"
-IUSE="gnome test"
-
-RDEPEND="
-	>=dev-libs/dbus-glib-0.74
-	>=net-misc/networkmanager-${PV}
-	>=net-misc/openvpn-2.1_rc9
-	gnome? (
-		>=x11-libs/gtk+-2.91.4:3
-		gnome-base/gnome-keyring
-	)"
-
-DEPEND="${RDEPEND}
-	sys-devel/gettext
-	>=dev-util/intltool-0.35
-	dev-util/pkgconfig"
-
-# FAIL: (tls-import-data) unexpected 'ca' secret value
-#RESTRICT="test"
-
-src_configure() {
-	ECONF="--disable-more-warnings
-		--disable-static
-		--with-dist-version=Gentoo
-		--with-gtkver=3.0
-		$(use_with gnome)
-		$(use_with test tests)"
-
-	econf ${ECONF}
-}
-
-src_install() {
-	default
-	# Remove useless .la files
-	find "${D}" -name '*.la' -exec rm -f {} +
-}

diff --git a/net-misc/networkmanager-pptp/networkmanager-pptp-0.8.999.ebuild b/net-misc/networkmanager-pptp/networkmanager-pptp-0.8.999.ebuild
deleted file mode 100644
index 8f5d0cb..0000000
--- a/net-misc/networkmanager-pptp/networkmanager-pptp-0.8.999.ebuild
+++ /dev/null
@@ -1,54 +0,0 @@
-# Copyright 1999-2011 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Header: $
-
-EAPI="4"
-GNOME_TARBALL_SUFFIX="bz2"
-GNOME_ORG_MODULE="NetworkManager-${PN##*-}"
-
-inherit gnome.org
-
-# NetworkManager likes itself with capital letters
-MY_PN="${GNOME_ORG_MODULE}"
-
-DESCRIPTION="NetworkManager PPTP plugin"
-HOMEPAGE="http://www.gnome.org/projects/NetworkManager/"
-
-LICENSE="GPL-2"
-SLOT="0"
-KEYWORDS="~amd64 ~x86"
-IUSE="gnome test"
-
-RDEPEND="
-	>=net-misc/networkmanager-${PV}
-	>=dev-libs/dbus-glib-0.74
-	net-dialup/ppp
-	net-dialup/pptpclient
-	gnome? (
-		>=x11-libs/gtk+-2.91.4:3
-		gnome-base/gnome-keyring
-	)"
-
-DEPEND="${RDEPEND}
-	sys-devel/gettext
-	dev-util/intltool
-	dev-util/pkgconfig"
-
-S="${WORKDIR}/${MY_PN}-${PV}"
-
-src_configure() {
-	ECONF="--disable-more-warnings
-		--disable-static
-		--with-dist-version=Gentoo
-		--with-gtkver=3.0
-		$(use_with gnome)
-		$(use_with test tests)"
-
-	econf ${ECONF}
-}
-
-src_install() {
-	default
-	# Remove useless .la files
-	find "${D}" -name '*.la' -exec rm -f {} +
-}

diff --git a/net-misc/networkmanager-vpnc/networkmanager-vpnc-0.8.999.ebuild b/net-misc/networkmanager-vpnc/networkmanager-vpnc-0.8.999.ebuild
deleted file mode 100644
index fa09413..0000000
--- a/net-misc/networkmanager-vpnc/networkmanager-vpnc-0.8.999.ebuild
+++ /dev/null
@@ -1,56 +0,0 @@
-# Copyright 1999-2011 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Header: $
-
-EAPI="4"
-GNOME_TARBALL_SUFFIX="bz2"
-GNOME_ORG_MODULE="NetworkManager-${PN##*-}"
-
-inherit gnome.org
-
-# NetworkManager likes itself with capital letters
-MY_PN="${GNOME_ORG_MODULE}"
-
-DESCRIPTION="NetworkManager VPNC plugin"
-HOMEPAGE="http://www.gnome.org/projects/NetworkManager/"
-
-LICENSE="GPL-2"
-SLOT="0"
-KEYWORDS="~amd64 ~x86"
-IUSE="gnome test"
-
-RDEPEND="
-	>=net-misc/networkmanager-${PV}
-	>=dev-libs/dbus-glib-0.74
-	>=net-misc/vpnc-0.5
-	gnome? (
-		>=x11-libs/gtk+-2.91.4:3
-		gnome-base/gnome-keyring
-	)"
-
-DEPEND="${RDEPEND}
-	sys-devel/gettext
-	dev-util/intltool
-	dev-util/pkgconfig"
-
-S="${WORKDIR}/${MY_PN}-${PV}"
-
-# XXX: https://bugzilla.gnome.org/show_bug.cgi?id=608348
-RESTRICT="test"
-
-src_configure() {
-	ECONF="--disable-more-warnings
-		--disable-static
-		--with-dist-version=Gentoo
-		--with-gtkver=3.0
-		$(use_with gnome)
-		$(use_with test tests)"
-
-	econf ${ECONF}
-}
-
-src_install() {
-	default
-	# Remove useless .la files
-	find "${D}" -name '*.la' -exec rm -f {} +
-}

diff --git a/net-misc/networkmanager/files/0.8.9997/0001-core-reset-auto-retries-counter-when-cable-is-replug.patch b/net-misc/networkmanager/files/0.8.9997/0001-core-reset-auto-retries-counter-when-cable-is-replug.patch
deleted file mode 100644
index f6eb6bc..0000000
--- a/net-misc/networkmanager/files/0.8.9997/0001-core-reset-auto-retries-counter-when-cable-is-replug.patch
+++ /dev/null
@@ -1,80 +0,0 @@
-From 9aa7efcf28a0230876fc6fc5be6dfee5f35d0630 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Ji=C5=99=C3=AD=20Klime=C5=A1?= <jklimes@redhat.com>
-Date: Mon, 30 May 2011 12:07:41 +0100
-Subject: [PATCH] core: reset auto retries counter when cable is replugged
-
-When re-plugging we may be in a different network. So we should try the
-compatible connections again.
-
-Based on a patch from Mikhail Efremov.
----
- src/nm-policy.c |   21 +++++++++++++++------
- 1 files changed, 15 insertions(+), 6 deletions(-)
-
-diff --git a/src/nm-policy.c b/src/nm-policy.c
-index 194d111..b98fe32 100644
---- a/src/nm-policy.c
-+++ b/src/nm-policy.c
-@@ -817,13 +817,17 @@ hostname_changed (NMManager *manager, GParamSpec *pspec, gpointer user_data)
- }
- 
- static void
--reset_retries_all (NMSettings *settings)
-+reset_retries_all (NMSettings *settings, NMDevice *device)
- {
- 	GSList *connections, *iter;
-+	GError *error = NULL;
- 
- 	connections = nm_settings_get_connections (settings);
--	for (iter = connections; iter; iter = g_slist_next (iter))
--		set_connection_auto_retries (NM_CONNECTION (iter->data), RETRIES_DEFAULT);
-+	for (iter = connections; iter; iter = g_slist_next (iter)) {
-+		if (!device || nm_device_interface_check_connection_compatible (NM_DEVICE_INTERFACE (device), iter->data, &error))
-+			set_connection_auto_retries (NM_CONNECTION (iter->data), RETRIES_DEFAULT);
-+		g_clear_error (&error);
-+	}
- 	g_slist_free (connections);
- }
- 
-@@ -838,7 +842,7 @@ sleeping_changed (NMManager *manager, GParamSpec *pspec, gpointer user_data)
- 
- 	/* Reset retries on all connections so they'll checked on wakeup */
- 	if (sleeping || !enabled)
--		reset_retries_all (policy->settings);
-+		reset_retries_all (policy->settings, NULL);
- }
- 
- static void
-@@ -932,6 +936,11 @@ device_state_changed (NMDevice *device,
- 		update_routing_and_dns (policy, FALSE);
- 		break;
- 	case NM_DEVICE_STATE_DISCONNECTED:
-+		/* Clear INVALID_TAG when carrier on. If cable was unplugged
-+		 * and plugged again, we should try to reconnect */
-+		if (reason == NM_DEVICE_STATE_REASON_CARRIER && old_state == NM_DEVICE_STATE_UNAVAILABLE)
-+			reset_retries_all (policy->settings, device);
-+
- 		/* Device is now available for auto-activation */
- 		update_routing_and_dns (policy, FALSE);
- 		schedule_activate_check (policy, device, 0);
-@@ -1058,7 +1067,7 @@ connections_loaded (NMSettings *settings, gpointer user_data)
- 	// that by calling reset_retries_all() in nm_policy_new()
- 	
- 	/* Initialize connections' auto-retries */
--	reset_retries_all (settings);
-+	reset_retries_all (settings, NULL);
- 
- 	schedule_activate_all ((NMPolicy *) user_data);
- }
-@@ -1188,7 +1197,7 @@ nm_policy_new (NMManager *manager,
- 	                          connection_visibility_changed);
- 
- 	/* Initialize connections' auto-retries */
--	reset_retries_all (policy->settings);
-+	reset_retries_all (policy->settings, NULL);
- 
- 	initialized = TRUE;
- 	return policy;
--- 
-1.7.6
-

diff --git a/net-misc/networkmanager/files/0.8.9997/0002-core-fix-auto-connect-to-hidden-SSIDs-rh-707406.patch b/net-misc/networkmanager/files/0.8.9997/0002-core-fix-auto-connect-to-hidden-SSIDs-rh-707406.patch
deleted file mode 100644
index 565b01b..0000000
--- a/net-misc/networkmanager/files/0.8.9997/0002-core-fix-auto-connect-to-hidden-SSIDs-rh-707406.patch
+++ /dev/null
@@ -1,502 +0,0 @@
-From 9549c70d943e3709694c4b0eb2595af11962c0eb Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Ji=C5=99=C3=AD=20Klime=C5=A1?= <jklimes@redhat.com>
-Date: Fri, 27 May 2011 17:32:40 +0200
-Subject: [PATCH] core: fix auto-connect to hidden SSIDs (rh #707406)
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-Previously (in NM 0.8.x) most WiFi connection were from user settings service.
-And the service updated 'seen-bssids' property when got connected.
-But the settings service in 0.9 don't do that. That inhibits auto-connecting to
-hidden networks. This commit takes care of updating 'seen-bssids'. However, we
-don't want to write out the conection each time it's activated (touching /etc).
-So, seen BSSIDs are kept separately from the connection in a look-aside file.
-
-Signed-off-by: Jiří Klimeš <jklimes@redhat.com>
----
- src/nm-device-wifi.c                  |   30 +++++-
- src/nm-manager.c                      |   44 ++-----
- src/settings/nm-settings-connection.c |  216 +++++++++++++++++++++++++++++++--
- src/settings/nm-settings-connection.h |    9 ++
- src/settings/nm-settings.c            |    3 +
- 5 files changed, 256 insertions(+), 46 deletions(-)
-
-diff --git a/src/nm-device-wifi.c b/src/nm-device-wifi.c
-index 7a6e752..7f9b5d2 100644
---- a/src/nm-device-wifi.c
-+++ b/src/nm-device-wifi.c
-@@ -55,6 +55,7 @@
- #include "nm-setting-ip4-config.h"
- #include "nm-setting-ip6-config.h"
- #include "nm-system.h"
-+#include "nm-settings-connection.h"
- 
- static gboolean impl_device_get_access_points (NMDeviceWifi *device,
-                                                GPtrArray **aps,
-@@ -978,6 +979,28 @@ get_active_ap (NMDeviceWifi *self,
- }
- 
- static void
-+update_seen_bssids_cache (NMDeviceWifi *self, NMAccessPoint *ap)
-+{
-+	NMActRequest *req;
-+	NMConnection *connection;
-+
-+	g_return_if_fail (ap != NULL);
-+
-+	/* Don't cache the BSSID for Ad-Hoc APs */
-+	if (nm_ap_get_mode (ap) != NM_802_11_MODE_INFRA)
-+		return;
-+
-+	if (nm_device_get_state (NM_DEVICE (self)) == NM_DEVICE_STATE_ACTIVATED) {
-+		req = nm_device_get_act_request (NM_DEVICE (self));
-+		if (req) {
-+			connection = nm_act_request_get_connection (req);
-+			nm_settings_connection_add_seen_bssid (NM_SETTINGS_CONNECTION (connection),
-+			                                       nm_ap_get_address (ap));
-+		}
-+	}
-+}
-+
-+static void
- set_current_ap (NMDeviceWifi *self, NMAccessPoint *new_ap)
- {
- 	NMDeviceWifiPrivate *priv;
-@@ -1003,6 +1026,9 @@ set_current_ap (NMDeviceWifi *self, NMAccessPoint *new_ap)
- 		 */
- 		priv->ap_list = g_slist_remove (priv->ap_list, new_ap);
- 		priv->ap_list = g_slist_prepend (priv->ap_list, new_ap);
-+
-+		/* Update seen BSSIDs cache */
-+		update_seen_bssids_cache (self, priv->current_ap);
- 	}
- 
- 	/* Unref old AP here to ensure object lives if new_ap == old_ap */
-@@ -3436,11 +3462,13 @@ activation_success_handler (NMDevice *dev)
- done:
- 	periodic_update (self);
- 
-+	/* Update seen BSSIDs cache with the connected AP */
-+	update_seen_bssids_cache (self, priv->current_ap);
-+
- 	/* Reset scan interval to something reasonable */
- 	priv->scan_interval = SCAN_INTERVAL_MIN + (SCAN_INTERVAL_STEP * 2);
- }
- 
--
- static void
- activation_failure_handler (NMDevice *dev)
- {
-diff --git a/src/nm-manager.c b/src/nm-manager.c
-index 5a3f7f7..a15e4b7 100644
---- a/src/nm-manager.c
-+++ b/src/nm-manager.c
-@@ -63,6 +63,7 @@
- #include "nm-settings-connection.h"
- #include "nm-manager-auth.h"
- #include "NetworkManagerUtils.h"
-+#include "nm-utils.h"
- 
- #define NM_AUTOIP_DBUS_SERVICE "org.freedesktop.nm_avahi_autoipd"
- #define NM_AUTOIP_DBUS_IFACE   "org.freedesktop.nm_avahi_autoipd"
-@@ -1040,52 +1041,27 @@ manager_hidden_ap_found (NMDeviceInterface *device,
- {
- 	NMManager *manager = NM_MANAGER (user_data);
- 	NMManagerPrivate *priv = NM_MANAGER_GET_PRIVATE (manager);
--	const struct ether_addr *ap_addr;
--	const GByteArray *ap_ssid;
-+	const struct ether_addr *bssid;
- 	GSList *iter;
- 	GSList *connections;
- 	gboolean done = FALSE;
- 
--	ap_ssid = nm_ap_get_ssid (ap);
--	if (ap_ssid && ap_ssid->len)
--		return;
-+	g_return_if_fail (nm_ap_get_ssid (ap) == NULL);
- 
--	ap_addr = nm_ap_get_address (ap);
--	g_assert (ap_addr);
-+	bssid = nm_ap_get_address (ap);
-+	g_assert (bssid);
- 
- 	/* Look for this AP's BSSID in the seen-bssids list of a connection,
- 	 * and if a match is found, copy over the SSID */
- 	connections = nm_settings_get_connections (priv->settings);
--
- 	for (iter = connections; iter && !done; iter = g_slist_next (iter)) {
- 		NMConnection *connection = NM_CONNECTION (iter->data);
--		NMSettingWireless *s_wireless;
--		const GByteArray *ssid;
--		guint32 num_bssids;
--		guint32 i;
--
--		s_wireless = (NMSettingWireless *) nm_connection_get_setting (connection, NM_TYPE_SETTING_WIRELESS);
--		if (!s_wireless)
--			continue;
--
--		num_bssids = nm_setting_wireless_get_num_seen_bssids (s_wireless);
--		if (num_bssids < 1)
--			continue;
--
--		ssid = nm_setting_wireless_get_ssid (s_wireless);
--		g_assert (ssid);
--
--		for (i = 0; i < num_bssids && !done; i++) {
--			const char *seen_bssid = nm_setting_wireless_get_seen_bssid (s_wireless, i);
--			struct ether_addr seen_addr;
-+		NMSettingWireless *s_wifi;
- 
--			if (ether_aton_r (seen_bssid, &seen_addr)) {
--				if (memcmp (ap_addr, &seen_addr, sizeof (struct ether_addr)) == 0) {
--					/* Copy the SSID from the connection to the AP */
--					nm_ap_set_ssid (ap, ssid);
--					done = TRUE;
--				}
--			}
-+		s_wifi = nm_connection_get_setting_wireless (connection);
-+		if (s_wifi) {
-+			if (nm_settings_connection_has_seen_bssid (NM_SETTINGS_CONNECTION (connection), bssid))
-+				nm_ap_set_ssid (ap, nm_setting_wireless_get_ssid (s_wifi));
- 		}
- 	}
- 	g_slist_free (connections);
-diff --git a/src/settings/nm-settings-connection.c b/src/settings/nm-settings-connection.c
-index 828a036..c20ba82 100644
---- a/src/settings/nm-settings-connection.c
-+++ b/src/settings/nm-settings-connection.c
-@@ -22,6 +22,7 @@
- #include "config.h"
- 
- #include <string.h>
-+#include <netinet/ether.h>
- 
- #include <NetworkManager.h>
- #include <dbus/dbus-glib-lowlevel.h>
-@@ -38,8 +39,10 @@
- #include "nm-manager-auth.h"
- #include "nm-marshal.h"
- #include "nm-agent-manager.h"
-+#include "NetworkManagerUtils.h"
- 
- #define SETTINGS_TIMESTAMPS_FILE  LOCALSTATEDIR"/lib/NetworkManager/timestamps"
-+#define SETTINGS_SEEN_BSSIDS_FILE LOCALSTATEDIR"/lib/NetworkManager/seen-bssids"
- 
- static void impl_settings_connection_get_settings (NMSettingsConnection *connection,
-                                                    DBusGMethodInvocation *context);
-@@ -91,7 +94,8 @@ typedef struct {
- 	NMSessionMonitor *session_monitor;
- 	guint session_changed_id;
- 
--	guint64 timestamp; /* Up-to-date timestamp of connection use */
-+	guint64 timestamp;   /* Up-to-date timestamp of connection use */
-+	GHashTable *seen_bssids; /* Up-to-date BSSIDs that's been seen for the connection */
- } NMSettingsConnectionPrivate;
- 
- /**************************************************************/
-@@ -455,12 +459,20 @@ commit_changes (NMSettingsConnection *connection,
- }
- 
- static void
--remove_timestamp_from_db (NMSettingsConnection *connection)
-+remove_entry_from_db (NMSettingsConnection *connection, const char* db_name)
- {
--	GKeyFile *timestamps_file;
-+	GKeyFile *key_file;
-+	const char *db_file;
- 
--	timestamps_file = g_key_file_new ();
--	if (g_key_file_load_from_file (timestamps_file, SETTINGS_TIMESTAMPS_FILE, G_KEY_FILE_KEEP_COMMENTS, NULL)) {
-+	if (strcmp (db_name, "timestamps") == 0)
-+		db_file = SETTINGS_TIMESTAMPS_FILE;
-+	else if (strcmp (db_name, "seen-bssids") == 0)
-+		db_file = SETTINGS_SEEN_BSSIDS_FILE;
-+	else
-+		return;
-+
-+	key_file = g_key_file_new ();
-+	if (g_key_file_load_from_file (key_file, db_file, G_KEY_FILE_KEEP_COMMENTS, NULL)) {
- 		const char *connection_uuid;
- 		char *data;
- 		gsize len;
-@@ -468,18 +480,18 @@ remove_timestamp_from_db (NMSettingsConnection *connection)
- 
- 		connection_uuid = nm_connection_get_uuid (NM_CONNECTION (connection));
- 
--		g_key_file_remove_key (timestamps_file, "timestamps", connection_uuid, NULL);
--		data = g_key_file_to_data (timestamps_file, &len, &error);
-+		g_key_file_remove_key (key_file, db_name, connection_uuid, NULL);
-+		data = g_key_file_to_data (key_file, &len, &error);
- 		if (data) {
--			g_file_set_contents (SETTINGS_TIMESTAMPS_FILE, data, len, &error);
-+			g_file_set_contents (db_file, data, len, &error);
- 			g_free (data);
- 		}
- 		if (error) {
--			nm_log_warn (LOGD_SETTINGS, "error writing timestamps file '%s': %s", SETTINGS_TIMESTAMPS_FILE, error->message);
-+			nm_log_warn (LOGD_SETTINGS, "error writing %s file '%s': %s", db_name, db_file, error->message);
- 			g_error_free (error);
- 		}
- 	}
--	g_key_file_free (timestamps_file);
-+	g_key_file_free (key_file);
- }
- 
- static void
-@@ -499,7 +511,10 @@ do_delete (NMSettingsConnection *connection,
- 	nm_agent_manager_delete_secrets (priv->agent_mgr, for_agents, FALSE, 0);
- 
- 	/* Remove timestamp from timestamps database file */
--	remove_timestamp_from_db (connection);
-+	remove_entry_from_db (connection, "timestamps");
-+
-+	/* Remove connection from seen-bssids database file */
-+	remove_entry_from_db (connection, "seen-bssids");
- 
- 	/* Signal the connection is removed and deleted */
- 	g_signal_emit (connection, signals[REMOVED], 0);
-@@ -1440,6 +1455,181 @@ nm_settings_connection_read_and_fill_timestamp (NMSettingsConnection *connection
- 	g_key_file_free (timestamps_file);
- }
- 
-+static guint
-+mac_hash (gconstpointer v)
-+{
-+	const guint8 *p = v;
-+	guint32 i, h = 5381;
-+
-+	for (i = 0; i < ETH_ALEN; i++)
-+		h = (h << 5) + h + p[i];
-+	return h;
-+}
-+
-+static gboolean
-+mac_equal (gconstpointer a, gconstpointer b)
-+{
-+	return memcmp (a, b, ETH_ALEN) == 0;
-+}
-+
-+static guint8 *
-+mac_dup (const struct ether_addr *old)
-+{
-+	guint8 *new;
-+
-+	g_return_val_if_fail (old != NULL, NULL);
-+
-+	new = g_malloc0 (ETH_ALEN);
-+	memcpy (new, old, ETH_ALEN);
-+	return new;
-+}
-+
-+/**
-+ * nm_settings_connection_has_seen_bssid:
-+ * @connection: the #NMSettingsConnection
-+ * @bssid: the BSSID to check the seen BSSID list for
-+ *
-+ * Returns: TRUE if the given @bssid is in the seen BSSIDs list
-+ **/
-+gboolean
-+nm_settings_connection_has_seen_bssid (NMSettingsConnection *connection,
-+                                       const struct ether_addr *bssid)
-+{
-+	g_return_val_if_fail (connection != NULL, FALSE);
-+	g_return_val_if_fail (NM_IS_SETTINGS_CONNECTION (connection), FALSE);
-+	g_return_val_if_fail (bssid != NULL, FALSE);
-+
-+	return !!g_hash_table_lookup (NM_SETTINGS_CONNECTION_GET_PRIVATE (connection)->seen_bssids, bssid);
-+}
-+
-+/**
-+ * nm_settings_connection_add_seen_bssid:
-+ * @connection: the #NMSettingsConnection
-+ * @seen_bssid: BSSID to set into the connection and to store into
-+ * the seen-bssids database
-+ *
-+ * Updates the connection and seen-bssids database with the provided BSSID.
-+ **/
-+void
-+nm_settings_connection_add_seen_bssid (NMSettingsConnection *connection,
-+                                       const struct ether_addr *seen_bssid)
-+{
-+	NMSettingsConnectionPrivate *priv = NM_SETTINGS_CONNECTION_GET_PRIVATE (connection);
-+	const char *connection_uuid;
-+	GKeyFile *seen_bssids_file;
-+	char *data, *bssid_str;
-+	const char **list;
-+	gsize len;
-+	GError *error = NULL;
-+	GHashTableIter iter;
-+	guint n;
-+
-+	g_return_if_fail (seen_bssid != NULL);
-+
-+	if (g_hash_table_lookup (priv->seen_bssids, seen_bssid))
-+		return;  /* Already in the list */
-+
-+	/* Add the new BSSID; let the hash take ownership of the allocated BSSID string */
-+	bssid_str = nm_ether_ntop (seen_bssid);
-+	g_return_if_fail (bssid_str != NULL);
-+	g_hash_table_insert (priv->seen_bssids, mac_dup (seen_bssid), bssid_str);
-+
-+	/* Build up a list of all the BSSIDs in string form */
-+	n = 0;
-+	list = g_malloc0 (g_hash_table_size (priv->seen_bssids) * sizeof (char *));
-+	g_hash_table_iter_init (&iter, priv->seen_bssids);
-+	while (g_hash_table_iter_next (&iter, NULL, (gpointer) &bssid_str))
-+		list[n++] = bssid_str;
-+
-+	/* Save BSSID to seen-bssids file */
-+	seen_bssids_file = g_key_file_new ();
-+	g_key_file_set_list_separator (seen_bssids_file, ',');
-+	if (!g_key_file_load_from_file (seen_bssids_file, SETTINGS_SEEN_BSSIDS_FILE, G_KEY_FILE_KEEP_COMMENTS, &error)) {
-+		if (!g_error_matches (error, G_FILE_ERROR, G_FILE_ERROR_NOENT)) {
-+			nm_log_warn (LOGD_SETTINGS, "error parsing seen-bssids file '%s': %s",
-+			             SETTINGS_SEEN_BSSIDS_FILE, error->message);
-+		}
-+		g_clear_error (&error);
-+	}
-+
-+	connection_uuid = nm_connection_get_uuid (NM_CONNECTION (connection));
-+	g_key_file_set_string_list (seen_bssids_file, "seen-bssids", connection_uuid, list, n);
-+	g_free (list);
-+
-+	data = g_key_file_to_data (seen_bssids_file, &len, &error);
-+	if (data) {
-+		g_file_set_contents (SETTINGS_SEEN_BSSIDS_FILE, data, len, &error);
-+		g_free (data);
-+	}
-+	g_key_file_free (seen_bssids_file);
-+
-+	if (error) {
-+		nm_log_warn (LOGD_SETTINGS, "error saving seen-bssids to file '%s': %s",
-+		             SETTINGS_SEEN_BSSIDS_FILE, error->message);
-+		g_error_free (error);
-+	}
-+}
-+
-+static void
-+add_seen_bssid_string (NMSettingsConnection *self, const char *bssid)
-+{
-+	struct ether_addr mac;
-+
-+	g_return_if_fail (bssid != NULL);
-+	if (ether_aton_r (bssid, &mac)) {
-+		g_hash_table_insert (NM_SETTINGS_CONNECTION_GET_PRIVATE (self)->seen_bssids,
-+		                     mac_dup (&mac),
-+		                     g_strdup (bssid));
-+	}
-+}
-+
-+/**
-+ * nm_settings_connection_read_and_fill_seen_bssids:
-+ * @connection: the #NMSettingsConnection
-+ *
-+ * Retrieves seen BSSIDs of the connection from database file and stores then into the
-+ * connection private data.
-+ **/
-+void
-+nm_settings_connection_read_and_fill_seen_bssids (NMSettingsConnection *connection)
-+{
-+	NMSettingsConnectionPrivate *priv = NM_SETTINGS_CONNECTION_GET_PRIVATE (connection);
-+	const char *connection_uuid;
-+	GKeyFile *seen_bssids_file;
-+	char **tmp_strv = NULL;
-+	gsize i, len = 0;
-+	NMSettingWireless *s_wifi;
-+
-+	/* Get seen BSSIDs from database file */
-+	seen_bssids_file = g_key_file_new ();
-+	g_key_file_set_list_separator (seen_bssids_file, ',');
-+	if (g_key_file_load_from_file (seen_bssids_file, SETTINGS_SEEN_BSSIDS_FILE, G_KEY_FILE_KEEP_COMMENTS, NULL)) {
-+		connection_uuid = nm_connection_get_uuid (NM_CONNECTION (connection));
-+		tmp_strv = g_key_file_get_string_list (seen_bssids_file, "seen-bssids", connection_uuid, &len, NULL);
-+	}
-+	g_key_file_free (seen_bssids_file);
-+
-+	/* Update connection's seen-bssids */
-+	if (tmp_strv) {
-+		g_hash_table_remove_all (priv->seen_bssids);
-+		for (i = 0; i < len; i++)
-+			add_seen_bssid_string (connection, tmp_strv[i]);
-+		g_strfreev (tmp_strv);
-+	} else {
-+		/* If this connection didn't have an entry in the seen-bssids database,
-+		 * maybe this is the first time we've read it in, so populate the
-+		 * seen-bssids list from the deprecated seen-bssids property of the
-+		 * wifi setting.
-+		 */
-+		s_wifi = nm_connection_get_setting_wireless (NM_CONNECTION (connection));
-+		if (s_wifi) {
-+			len = nm_setting_wireless_get_num_seen_bssids (s_wifi);
-+			for (i = 0; i < len; i++)
-+				add_seen_bssid_string (connection, nm_setting_wireless_get_seen_bssid (s_wifi, i));
-+		}
-+	}
-+}
-+
- /**************************************************************/
- 
- static void
-@@ -1463,6 +1653,8 @@ nm_settings_connection_init (NMSettingsConnection *self)
- 	                                             self);
- 
- 	priv->agent_mgr = nm_agent_manager_get ();
-+
-+	priv->seen_bssids = g_hash_table_new_full (mac_hash, mac_equal, g_free, g_free);
- }
- 
- static void
-@@ -1490,6 +1682,8 @@ dispose (GObject *object)
- 		nm_agent_manager_cancel_secrets (priv->agent_mgr, GPOINTER_TO_UINT (iter->data));
- 	g_slist_free (priv->reqs);
- 
-+	g_hash_table_destroy (priv->seen_bssids);
-+
- 	set_visible (self, FALSE);
- 
- 	if (priv->session_changed_id)
-diff --git a/src/settings/nm-settings-connection.h b/src/settings/nm-settings-connection.h
-index 116bfdc..af90c51 100644
---- a/src/settings/nm-settings-connection.h
-+++ b/src/settings/nm-settings-connection.h
-@@ -24,6 +24,7 @@
- 
- #include <nm-connection.h>
- #include "nm-settings-flags.h"
-+#include <net/ethernet.h>
- 
- G_BEGIN_DECLS
- 
-@@ -124,6 +125,14 @@ void nm_settings_connection_update_timestamp (NMSettingsConnection *connection,
- 
- void nm_settings_connection_read_and_fill_timestamp (NMSettingsConnection *connection);
- 
-+gboolean nm_settings_connection_has_seen_bssid (NMSettingsConnection *connection,
-+                                                const struct ether_addr *bssid);
-+
-+void nm_settings_connection_add_seen_bssid (NMSettingsConnection *connection,
-+                                            const struct ether_addr *seen_bssid);
-+
-+void nm_settings_connection_read_and_fill_seen_bssids (NMSettingsConnection *connection);
-+
- G_END_DECLS
- 
- #endif /* NM_SETTINGS_CONNECTION_H */
-diff --git a/src/settings/nm-settings.c b/src/settings/nm-settings.c
-index e23e8d1..8329780 100644
---- a/src/settings/nm-settings.c
-+++ b/src/settings/nm-settings.c
-@@ -773,6 +773,9 @@ claim_connection (NMSettings *self,
- 	/* Read timestamp from look-aside file and put it into the connection's data */
- 	nm_settings_connection_read_and_fill_timestamp (connection);
- 
-+	/* Read seen-bssids from look-aside file and put it into the connection's data */
-+	nm_settings_connection_read_and_fill_seen_bssids (connection);
-+
- 	/* Ensure it's initial visibility is up-to-date */
- 	nm_settings_connection_recheck_visibility (connection);
- 
--- 
-1.7.6
-

diff --git a/net-misc/networkmanager/files/0.8.9997/0003-libnm-glib-fix-crash-for-AddAndActivateConnection-D-.patch b/net-misc/networkmanager/files/0.8.9997/0003-libnm-glib-fix-crash-for-AddAndActivateConnection-D-.patch
deleted file mode 100644
index 8cc16c4..0000000
--- a/net-misc/networkmanager/files/0.8.9997/0003-libnm-glib-fix-crash-for-AddAndActivateConnection-D-.patch
+++ /dev/null
@@ -1,29 +0,0 @@
-From b4a72d1ad794aef4c623fd530fc38ceb9b95456d Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Ji=C5=99=C3=AD=20Klime=C5=A1?= <jklimes@redhat.com>
-Date: Tue, 14 Jun 2011 19:39:23 +0200
-Subject: [PATCH] libnm-glib: fix crash for AddAndActivateConnection() D-Bus
- call (bgo #652512)
-
-When a partial connection is passed to nm_client_add_and_activate_connection(),
-but it doesn't contain any settings, nm_connection_to_hash() returns NULL and
-there's a crash later on the NULL hash.
----
- libnm-glib/nm-client.c |    2 +-
- 1 files changed, 1 insertions(+), 1 deletions(-)
-
-diff --git a/libnm-glib/nm-client.c b/libnm-glib/nm-client.c
-index 644af3e..752510a 100644
---- a/libnm-glib/nm-client.c
-+++ b/libnm-glib/nm-client.c
-@@ -763,7 +763,7 @@ nm_client_add_and_activate_connection (NMClient *client,
- 
- 	if (partial)
- 		hash = nm_connection_to_hash (partial, NM_SETTING_HASH_FLAG_ALL);
--	else
-+	if (!hash)
- 		hash = g_hash_table_new (g_str_hash, g_str_equal);
- 
- 	priv = NM_CLIENT_GET_PRIVATE (client);
--- 
-1.7.6
-

diff --git a/net-misc/networkmanager/files/0.8.9997/0004-policy-remove-invalid-mark-for-failed-connections-af.patch b/net-misc/networkmanager/files/0.8.9997/0004-policy-remove-invalid-mark-for-failed-connections-af.patch
deleted file mode 100644
index f2af25e..0000000
--- a/net-misc/networkmanager/files/0.8.9997/0004-policy-remove-invalid-mark-for-failed-connections-af.patch
+++ /dev/null
@@ -1,109 +0,0 @@
-From fdfbe00aac3f17b19bb8d84cba1c8f210d90e8a0 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Ji=C5=99=C3=AD=20Klime=C5=A1?= <jklimes@redhat.com>
-Date: Fri, 17 Jun 2011 12:43:28 +0200
-Subject: [PATCH] policy: remove "invalid mark" for failed connections after 5
- mins
-
-If there is a temporary connection failure (e.g. due to unavailable DHCP), the
-connection is marked as invalid after several retries. Reset the flag after
-5 mins to allow next auto-reconnection.
----
- src/nm-policy.c |   47 +++++++++++++++++++++++++++++++++++++++++++++--
- 1 files changed, 45 insertions(+), 2 deletions(-)
-
-diff --git a/src/nm-policy.c b/src/nm-policy.c
-index 3eead41..e3c899f 100644
---- a/src/nm-policy.c
-+++ b/src/nm-policy.c
-@@ -66,12 +66,16 @@ struct NMPolicy {
- 
- 	HostnameThread *lookup;
- 
-+	gint reset_retries_id;  /* idle handler for resetting the retries count */
-+
- 	char *orig_hostname; /* hostname at NM start time */
- 	char *cur_hostname;  /* hostname we want to assign */
- };
- 
- #define RETRIES_TAG "autoconnect-retries"
- #define RETRIES_DEFAULT	4
-+#define RESET_RETRIES_TIMESTAMP_TAG "reset-retries-timestamp-tag"
-+#define RESET_RETRIES_TIMER 300
- 
- static NMDevice *
- get_best_ip4_device (NMManager *manager, NMActRequest **out_req)
-@@ -870,6 +874,37 @@ schedule_activate_check (NMPolicy *policy, NMDevice *device, guint delay_seconds
- 	}
- }
- 
-+static gboolean
-+reset_connections_retries (gpointer user_data)
-+{
-+	NMPolicy *policy = (NMPolicy *) user_data;
-+	GSList *connections, *iter;
-+	time_t con_stamp, min_stamp, now;
-+
-+	policy->reset_retries_id = 0;
-+
-+	min_stamp = now = time (NULL);
-+	connections = nm_settings_get_connections (policy->settings);
-+	for (iter = connections; iter; iter = g_slist_next (iter)) {
-+		con_stamp = GPOINTER_TO_SIZE (g_object_get_data (G_OBJECT (iter->data), RESET_RETRIES_TIMESTAMP_TAG));
-+		if (con_stamp == 0)
-+			continue;
-+		if (con_stamp + RESET_RETRIES_TIMER <= now) {
-+			set_connection_auto_retries (NM_CONNECTION (iter->data), RETRIES_DEFAULT);
-+			g_object_set_data (G_OBJECT (iter->data), RESET_RETRIES_TIMESTAMP_TAG, GSIZE_TO_POINTER (0));
-+			continue;
-+		}
-+		if (con_stamp < min_stamp)
-+			min_stamp = con_stamp;
-+	}
-+	g_slist_free (connections);
-+
-+	/* Schedule the handler again if there are some stamps left */
-+	if (min_stamp != now)
-+		policy->reset_retries_id = g_timeout_add_seconds (RESET_RETRIES_TIMER - (now - min_stamp), reset_connections_retries, policy);
-+	return FALSE;
-+}
-+
- static NMConnection *
- get_device_connection (NMDevice *device)
- {
-@@ -914,8 +949,13 @@ device_state_changed (NMDevice *device,
- 				set_connection_auto_retries (connection, tries - 1);
- 			}
- 
--			if (get_connection_auto_retries (connection) == 0)
-+			if (get_connection_auto_retries (connection) == 0) {
- 				nm_log_info (LOGD_DEVICE, "Marking connection '%s' invalid.", nm_connection_get_id (connection));
-+				/* Schedule a handler to reset retries count */
-+				g_object_set_data (G_OBJECT (connection), RESET_RETRIES_TIMESTAMP_TAG, GSIZE_TO_POINTER ((gsize) time (NULL)));
-+				if (!policy->reset_retries_id)
-+					policy->reset_retries_id = g_timeout_add_seconds (RESET_RETRIES_TIMER, reset_connections_retries, policy);
-+			}
- 			nm_connection_clear_secrets (connection);
- 		}
- 		schedule_activate_check (policy, device, 3);
-@@ -938,7 +978,7 @@ device_state_changed (NMDevice *device,
- 		update_routing_and_dns (policy, FALSE);
- 		break;
- 	case NM_DEVICE_STATE_DISCONNECTED:
--		/* Clear INVALID_TAG when carrier on. If cable was unplugged
-+		/* Reset RETRIES_TAG when carrier on. If cable was unplugged
- 		 * and plugged again, we should try to reconnect */
- 		if (reason == NM_DEVICE_STATE_REASON_CARRIER && old_state == NM_DEVICE_STATE_UNAVAILABLE)
- 			reset_retries_all (policy->settings, device);
-@@ -1246,6 +1286,9 @@ nm_policy_destroy (NMPolicy *policy)
- 	}
- 	g_slist_free (policy->dev_ids);
- 
-+	if (policy->reset_retries_id)
-+		g_source_remove (policy->reset_retries_id);
-+
- 	g_free (policy->orig_hostname);
- 	g_free (policy->cur_hostname);
- 
--- 
-1.7.6
-

diff --git a/net-misc/networkmanager/files/0.8.9997/0005-core-connections-failed-due-to-missing-secrets-are-r.patch b/net-misc/networkmanager/files/0.8.9997/0005-core-connections-failed-due-to-missing-secrets-are-r.patch
deleted file mode 100644
index f43cf24..0000000
--- a/net-misc/networkmanager/files/0.8.9997/0005-core-connections-failed-due-to-missing-secrets-are-r.patch
+++ /dev/null
@@ -1,280 +0,0 @@
-From 69b767bbf0ef8e038dd8bd0bcb35586c0f91ade7 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Ji=C5=99=C3=AD=20Klime=C5=A1?= <jklimes@redhat.com>
-Date: Tue, 28 Jun 2011 15:48:12 +0200
-Subject: [PATCH] core: connections failed due to missing secrets are re-tried
- when an secret agent registers (rh #706204)
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-Use case:
-A user has an auto-activatable connection with secrets in a keyring. While
-booting NM starts and tries to activate the connection, but it fails because of
-missing secrets. Then the user logs in, but the connection is marked as invalid
-and is not tried again.
-
-This commit solves the issue by removing invalid flag and activating the
-connection when a secret agent registers.
-
-Signed-off-by: Jiří Klimeš <jklimes@redhat.com>
----
- src/nm-policy.c                 |   40 +++++++++++++++++++++++++++++++++++++++
- src/settings/nm-agent-manager.c |   22 +++++++++++++++++++++
- src/settings/nm-agent-manager.h |    4 +++
- src/settings/nm-settings.c      |   25 ++++++++++++++++++++++++
- src/settings/nm-settings.h      |    6 ++++-
- 5 files changed, 96 insertions(+), 1 deletions(-)
-
-diff --git a/src/nm-policy.c b/src/nm-policy.c
-index e3c899f..44f5e1f 100644
---- a/src/nm-policy.c
-+++ b/src/nm-policy.c
-@@ -76,6 +76,7 @@ struct NMPolicy {
- #define RETRIES_DEFAULT	4
- #define RESET_RETRIES_TIMESTAMP_TAG "reset-retries-timestamp-tag"
- #define RESET_RETRIES_TIMER 300
-+#define FAILURE_REASON_TAG "failure-reason"
- 
- static NMDevice *
- get_best_ip4_device (NMManager *manager, NMActRequest **out_req)
-@@ -838,6 +839,23 @@ reset_retries_all (NMSettings *settings, NMDevice *device)
- }
- 
- static void
-+reset_retries_for_failed_secrets (NMSettings *settings)
-+{
-+	GSList *connections, *iter;
-+
-+	connections = nm_settings_get_connections (settings);
-+	for (iter = connections; iter; iter = g_slist_next (iter)) {
-+		NMDeviceStateReason reason = GPOINTER_TO_UINT (g_object_get_data (G_OBJECT (iter->data), FAILURE_REASON_TAG));
-+
-+		if (reason == NM_DEVICE_STATE_REASON_NO_SECRETS) {
-+			set_connection_auto_retries (NM_CONNECTION (iter->data), RETRIES_DEFAULT);
-+			g_object_set_data (G_OBJECT (iter->data), FAILURE_REASON_TAG, GUINT_TO_POINTER (0));
-+		}
-+	}
-+	g_slist_free (connections);
-+}
-+
-+static void
- sleeping_changed (NMManager *manager, GParamSpec *pspec, gpointer user_data)
- {
- 	NMPolicy *policy = user_data;
-@@ -927,6 +945,9 @@ device_state_changed (NMDevice *device,
- 	NMPolicy *policy = (NMPolicy *) user_data;
- 	NMConnection *connection = get_device_connection (device);
- 
-+	if (connection)
-+		g_object_set_data (G_OBJECT (connection), FAILURE_REASON_TAG, GUINT_TO_POINTER (0));
-+
- 	switch (new_state) {
- 	case NM_DEVICE_STATE_FAILED:
- 		/* Mark the connection invalid if it failed during activation so that
-@@ -941,6 +962,11 @@ device_state_changed (NMDevice *device,
- 				 * automatically retrying because it's just going to fail anyway.
- 				 */
- 				set_connection_auto_retries (connection, 0);
-+
-+				/* Mark the connection as failed due to missing secrets so that we can reset
-+				 * RETRIES_TAG and automatically re-try when an secret agent registers.
-+				 */
-+				g_object_set_data (G_OBJECT (connection), FAILURE_REASON_TAG, GUINT_TO_POINTER (NM_DEVICE_STATE_REASON_NO_SECRETS));
- 			} else if (tries > 0) {
- 				/* Otherwise if it's a random failure, just decrease the number
- 				 * of automatic retries so that the connection gets tried again
-@@ -1173,6 +1199,19 @@ connection_visibility_changed (NMSettings *settings,
- }
- 
- static void
-+secret_agent_registered (NMSettings *settings,
-+                         NMSecretAgent *agent,
-+                         gpointer user_data)
-+{
-+	/* The registered secret agent may provide some missing secrets. Thus we
-+	 * reset retries count here and schedule activation, so that the
-+	 * connections failed due to missing secrets may re-try auto-connection.
-+	 */
-+	reset_retries_for_failed_secrets (settings);
-+	schedule_activate_all ((NMPolicy *) user_data);
-+}
-+
-+static void
- _connect_manager_signal (NMPolicy *policy, const char *name, gpointer callback)
- {
- 	guint id;
-@@ -1240,6 +1279,7 @@ nm_policy_new (NMManager *manager,
- 	_connect_settings_signal (policy, NM_SETTINGS_SIGNAL_CONNECTION_REMOVED, connection_removed);
- 	_connect_settings_signal (policy, NM_SETTINGS_SIGNAL_CONNECTION_VISIBILITY_CHANGED,
- 	                          connection_visibility_changed);
-+	_connect_settings_signal (policy, NM_SETTINGS_SIGNAL_AGENT_REGISTERED, secret_agent_registered);
- 
- 	/* Initialize connections' auto-retries */
- 	reset_retries_all (policy->settings, NULL);
-diff --git a/src/settings/nm-agent-manager.c b/src/settings/nm-agent-manager.c
-index 9b9e189..1693ae2 100644
---- a/src/settings/nm-agent-manager.c
-+++ b/src/settings/nm-agent-manager.c
-@@ -57,6 +57,14 @@ typedef struct {
- 	GHashTable *requests;
- } NMAgentManagerPrivate;
- 
-+enum {
-+        AGENT_REGISTERED,
-+
-+        LAST_SIGNAL
-+};
-+static guint signals[LAST_SIGNAL] = { 0 };
-+
-+
- typedef struct _Request Request;
- 
- static void request_add_agent (Request *req,
-@@ -277,6 +285,9 @@ impl_agent_manager_register (NMAgentManager *self,
- 	            nm_secret_agent_get_description (agent));
- 	dbus_g_method_return (context);
- 
-+	/* Signal an agent was registered */
-+	g_signal_emit (self, signals[AGENT_REGISTERED], 0, agent);
-+
- 	/* Add this agent to any in-progress secrets requests */
- 	g_hash_table_iter_init (&iter, priv->requests);
- 	while (g_hash_table_iter_next (&iter, NULL, &data))
-@@ -1363,6 +1374,17 @@ nm_agent_manager_class_init (NMAgentManagerClass *agent_manager_class)
- 	/* virtual methods */
- 	object_class->dispose = dispose;
- 
-+	/* Signals */
-+	signals[AGENT_REGISTERED] =
-+		g_signal_new ("agent-registered",
-+		              G_OBJECT_CLASS_TYPE (object_class),
-+		              G_SIGNAL_RUN_FIRST,
-+		              G_STRUCT_OFFSET (NMAgentManagerClass, agent_registered),
-+		              NULL, NULL,
-+		              g_cclosure_marshal_VOID__OBJECT,
-+		              G_TYPE_NONE, 1,
-+		              G_TYPE_OBJECT);
-+
- 	dbus_g_object_type_install_info (G_TYPE_FROM_CLASS (agent_manager_class),
- 	                                 &dbus_glib_nm_agent_manager_object_info);
- 
-diff --git a/src/settings/nm-agent-manager.h b/src/settings/nm-agent-manager.h
-index 788a917..287413a 100644
---- a/src/settings/nm-agent-manager.h
-+++ b/src/settings/nm-agent-manager.h
-@@ -25,6 +25,7 @@
- #include <glib-object.h>
- #include <nm-connection.h>
- #include "nm-settings-flags.h"
-+#include "nm-secret-agent.h"
- 
- #define NM_TYPE_AGENT_MANAGER            (nm_agent_manager_get_type ())
- #define NM_AGENT_MANAGER(obj)            (G_TYPE_CHECK_INSTANCE_CAST ((obj), NM_TYPE_AGENT_MANAGER, NMAgentManager))
-@@ -39,6 +40,9 @@ typedef struct {
- 
- typedef struct {
- 	GObjectClass parent;
-+
-+	/* Signals */
-+	void (*agent_registered)   (NMAgentManager *agent_mgr, NMSecretAgent *agent);
- } NMAgentManagerClass;
- 
- GType nm_agent_manager_get_type (void);
-diff --git a/src/settings/nm-settings.c b/src/settings/nm-settings.c
-index 8329780..733e914 100644
---- a/src/settings/nm-settings.c
-+++ b/src/settings/nm-settings.c
-@@ -135,6 +135,7 @@ enum {
- 	CONNECTION_REMOVED,
- 	CONNECTION_VISIBILITY_CHANGED,
- 	CONNECTIONS_LOADED,
-+	AGENT_REGISTERED,
- 
- 	NEW_CONNECTION, /* exported, not used internally */
- 	LAST_SIGNAL
-@@ -699,6 +700,18 @@ connection_visibility_changed (NMSettingsConnection *connection,
- 	               connection);
- }
- 
-+static void
-+secret_agent_registered (NMAgentManager *agent_mgr,
-+                         NMSecretAgent *agent,
-+                         gpointer user_data)
-+{
-+	/* Re-emit for listeners like NMPolicy */
-+	g_signal_emit (NM_SETTINGS (user_data),
-+	               signals[AGENT_REGISTERED],
-+	               0,
-+	               agent);
-+}
-+
- #define NM_DBUS_SERVICE_OPENCONNECT    "org.freedesktop.NetworkManager.openconnect"
- #define NM_OPENCONNECT_KEY_GATEWAY "gateway"
- #define NM_OPENCONNECT_KEY_COOKIE "cookie"
-@@ -1530,6 +1543,8 @@ nm_settings_init (NMSettings *self)
- 	 * recreated often.
- 	 */
- 	priv->agent_mgr = nm_agent_manager_get ();
-+
-+	g_signal_connect (priv->agent_mgr, "agent-registered", G_CALLBACK (secret_agent_registered), self);
- }
- 
- static void
-@@ -1693,6 +1708,16 @@ nm_settings_class_init (NMSettingsClass *class)
- 	                              g_cclosure_marshal_VOID__VOID,
- 	                              G_TYPE_NONE, 0);
- 
-+	signals[AGENT_REGISTERED] =
-+		g_signal_new (NM_SETTINGS_SIGNAL_AGENT_REGISTERED,
-+		              G_OBJECT_CLASS_TYPE (object_class),
-+		              G_SIGNAL_RUN_FIRST,
-+		              G_STRUCT_OFFSET (NMSettingsClass, agent_registered),
-+		              NULL, NULL,
-+		              g_cclosure_marshal_VOID__OBJECT,
-+		              G_TYPE_NONE, 1, G_TYPE_OBJECT);
-+
-+
- 	signals[NEW_CONNECTION] = 
- 	                g_signal_new ("new-connection",
- 	                              G_OBJECT_CLASS_TYPE (object_class),
-diff --git a/src/settings/nm-settings.h b/src/settings/nm-settings.h
-index a5cb4d7..66d41cc 100644
---- a/src/settings/nm-settings.h
-+++ b/src/settings/nm-settings.h
-@@ -19,7 +19,7 @@
-  * with this program; if not, write to the Free Software Foundation, Inc.,
-  * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-  *
-- * (C) Copyright 2007 - 2010 Red Hat, Inc.
-+ * (C) Copyright 2007 - 2011 Red Hat, Inc.
-  * (C) Copyright 2008 Novell, Inc.
-  */
- 
-@@ -31,6 +31,7 @@
- #include "nm-settings-connection.h"
- #include "nm-system-config-interface.h"
- #include "nm-device.h"
-+#include "nm-secret-agent.h"
- 
- #define NM_TYPE_SETTINGS            (nm_settings_get_type ())
- #define NM_SETTINGS(obj)            (G_TYPE_CHECK_INSTANCE_CAST ((obj), NM_TYPE_SETTINGS, NMSettings))
-@@ -48,6 +49,7 @@
- #define NM_SETTINGS_SIGNAL_CONNECTION_REMOVED            "connection-removed"
- #define NM_SETTINGS_SIGNAL_CONNECTION_VISIBILITY_CHANGED "connection-visibility-changed"
- #define NM_SETTINGS_SIGNAL_CONNECTIONS_LOADED            "connections-loaded"
-+#define NM_SETTINGS_SIGNAL_AGENT_REGISTERED              "agent-registered"
- 
- typedef struct {
- 	GObject parent_instance;
-@@ -68,6 +70,8 @@ typedef struct {
- 	void (*connection_visibility_changed) (NMSettings *self, NMSettingsConnection *connection);
- 
- 	void (*connections_loaded) (NMSettings *self);
-+
-+	void (*agent_registered) (NMSettings *self, NMSecretAgent *agent);
- } NMSettingsClass;
- 
- GType nm_settings_get_type (void);
--- 
-1.7.6
-

diff --git a/net-misc/networkmanager/files/0.8.9997/0006-settings-do-not-crash-on-GetSecrets-in-case-of-missi.patch b/net-misc/networkmanager/files/0.8.9997/0006-settings-do-not-crash-on-GetSecrets-in-case-of-missi.patch
deleted file mode 100644
index b01842f..0000000
--- a/net-misc/networkmanager/files/0.8.9997/0006-settings-do-not-crash-on-GetSecrets-in-case-of-missi.patch
+++ /dev/null
@@ -1,29 +0,0 @@
-From 5b650f9ae3c5a2972b0b018b8b75d02d815f2c3a Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Ji=C5=99=C3=AD=20Klime=C5=A1?= <jklimes@redhat.com>
-Date: Thu, 7 Jul 2011 12:51:22 +0200
-Subject: [PATCH] settings: do not crash on GetSecrets() in case of missing
- secrets
-
-When secrets are flagged as agent-owned in a connection configuration file, but
-actually not available, we have to return an empty hash (nm_connection_to_hash()
-returns NULL).
----
- src/settings/nm-settings-connection.c |    2 ++
- 1 files changed, 2 insertions(+), 0 deletions(-)
-
-diff --git a/src/settings/nm-settings-connection.c b/src/settings/nm-settings-connection.c
-index a14b159..f0f9c1a 100644
---- a/src/settings/nm-settings-connection.c
-+++ b/src/settings/nm-settings-connection.c
-@@ -1339,6 +1339,8 @@ dbus_get_agent_secrets_cb (NMSettingsConnection *self,
- 		update_secrets_cache (self);
- 
- 		hash = nm_connection_to_hash (NM_CONNECTION (self), NM_SETTING_HASH_FLAG_ONLY_SECRETS);
-+		if (!hash)
-+			hash = g_hash_table_new (NULL, NULL);
- 		dbus_g_method_return (context, hash);
- 		g_hash_table_destroy (hash);
- 	}
--- 
-1.7.6
-

diff --git a/net-misc/networkmanager/files/0.8.9997/0007-keyfile-distinguish-better-between-string-x-int-list.patch b/net-misc/networkmanager/files/0.8.9997/0007-keyfile-distinguish-better-between-string-x-int-list.patch
deleted file mode 100644
index 4206df1..0000000
--- a/net-misc/networkmanager/files/0.8.9997/0007-keyfile-distinguish-better-between-string-x-int-list.patch
+++ /dev/null
@@ -1,70 +0,0 @@
-From 30c41a4b800408150edcca9047a3996fa1d6ae68 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Ji=C5=99=C3=AD=20Klime=C5=A1?= <jklimes@redhat.com>
-Date: Thu, 7 Jul 2011 15:25:11 +0200
-Subject: [PATCH] keyfile: distinguish better between string x int list
- formats (bgo #649422)
-
-This commit enhances get_uchar_array() to better differentiate between string
-ad integer list formats. This allows using ';' character in SSIDs.
----
- src/settings/plugins/keyfile/reader.c |   28 +++++++++++++---------------
- 1 files changed, 13 insertions(+), 15 deletions(-)
-
-diff --git a/src/settings/plugins/keyfile/reader.c b/src/settings/plugins/keyfile/reader.c
-index 4b28965..7da6e1a 100644
---- a/src/settings/plugins/keyfile/reader.c
-+++ b/src/settings/plugins/keyfile/reader.c
-@@ -16,7 +16,7 @@
-  * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-  *
-  * Copyright (C) 2008 - 2009 Novell, Inc.
-- * Copyright (C) 2008 - 2010 Red Hat, Inc.
-+ * Copyright (C) 2008 - 2011 Red Hat, Inc.
-  */
- 
- #include <errno.h>
-@@ -736,29 +736,27 @@ get_uchar_array (GKeyFile *keyfile,
-                  const char *key)
- {
- 	GByteArray *array = NULL;
--	char *p, *tmp_string;
-+	char *tmp_string;
- 	gint *tmp_list;
- 	gsize length;
- 	int i;
- 
--	/* New format: just a string.  We try parsing the new format if there are
--	 * no ';' in the string or it's not just numbers.
-+	/* New format: just a string
-+	 * Old format: integer list; e.g. 11;25;38
- 	 */
--	p = tmp_string = g_key_file_get_string (keyfile, setting_name, key, NULL);
-+	tmp_string = g_key_file_get_string (keyfile, setting_name, key, NULL);
- 	if (tmp_string) {
- 		gboolean new_format = FALSE;
-+		GRegex *regex;
-+		GMatchInfo *match_info;
-+		const char *pattern = "^[[:space:]]*[[:digit:]]+[[:space:]]*(;[[:space:]]*[[:digit:]]+[[:space:]]*)*(;[[:space:]]*)?$";
- 
--		if (strchr (p, ';') == NULL)
--			new_format = TRUE;
--		else {
-+		regex = g_regex_new (pattern, 0, 0, NULL);
-+		g_regex_match (regex, tmp_string, 0, &match_info);
-+		if (!g_match_info_matches (match_info))
- 			new_format = TRUE;
--			while (p && *p) {
--				if (!isdigit (*p++)) {
--					new_format = FALSE;
--					break;
--				}
--			}
--		}
-+		g_match_info_free (match_info);
-+		g_regex_unref (regex);
- 
- 		if (new_format) {
- 			array = g_byte_array_sized_new (strlen (tmp_string));
--- 
-1.7.6
-

diff --git a/net-misc/networkmanager/files/0.8.9997/0008-keyfile-fix-integer-list-SSID-parsing-after-30c41a4b.patch b/net-misc/networkmanager/files/0.8.9997/0008-keyfile-fix-integer-list-SSID-parsing-after-30c41a4b.patch
deleted file mode 100644
index b4e0ef0..0000000
--- a/net-misc/networkmanager/files/0.8.9997/0008-keyfile-fix-integer-list-SSID-parsing-after-30c41a4b.patch
+++ /dev/null
@@ -1,211 +0,0 @@
-From 9cdc5021ab0b94dbf1a0d1994bc2e5ba4049caf9 Mon Sep 17 00:00:00 2001
-From: Dan Williams <dcbw@redhat.com>
-Date: Wed, 20 Jul 2011 17:44:14 -0500
-Subject: [PATCH 1/2] keyfile: fix integer list SSID parsing after
- 30c41a4b800408150edcca9047a3996fa1d6ae68
-
-The regex was capturing integers larger than 3 digits, which aren't
-valid SSID integer list items because each byte of the SSID cannot be
-larger than 255.  Add an explicit testcase for intlist SSIDs too.
-The previous regex was causing a testcase failure with an SSID of
-'1337' which it was interpreting as a single element intlist, but
-should have been interpreted as a string since it's clear > 255.
----
- src/settings/plugins/keyfile/reader.c              |    2 +-
- .../plugins/keyfile/tests/keyfiles/Makefile.am     |    1 +
- .../keyfile/tests/keyfiles/Test_Intlist_SSID       |   11 ++
- src/settings/plugins/keyfile/tests/test-keyfile.c  |  128 ++++++++++++++++++++
- 4 files changed, 141 insertions(+), 1 deletions(-)
- create mode 100644 src/settings/plugins/keyfile/tests/keyfiles/Test_Intlist_SSID
-
-diff --git a/src/settings/plugins/keyfile/reader.c b/src/settings/plugins/keyfile/reader.c
-index 7da6e1a..c4136e0 100644
---- a/src/settings/plugins/keyfile/reader.c
-+++ b/src/settings/plugins/keyfile/reader.c
-@@ -749,7 +749,7 @@ get_uchar_array (GKeyFile *keyfile,
- 		gboolean new_format = FALSE;
- 		GRegex *regex;
- 		GMatchInfo *match_info;
--		const char *pattern = "^[[:space:]]*[[:digit:]]+[[:space:]]*(;[[:space:]]*[[:digit:]]+[[:space:]]*)*(;[[:space:]]*)?$";
-+		const char *pattern = "^[[:space:]]*[[:digit:]]{1,3}[[:space:]]*(;[[:space:]]*[[:digit:]]{1,3}[[:space:]]*)*(;[[:space:]]*)?$";
- 
- 		regex = g_regex_new (pattern, 0, 0, NULL);
- 		g_regex_match (regex, tmp_string, 0, &match_info);
-diff --git a/src/settings/plugins/keyfile/tests/keyfiles/Makefile.am b/src/settings/plugins/keyfile/tests/keyfiles/Makefile.am
-index ce5ff99..302db86 100644
---- a/src/settings/plugins/keyfile/tests/keyfiles/Makefile.am
-+++ b/src/settings/plugins/keyfile/tests/keyfiles/Makefile.am
-@@ -7,6 +7,7 @@ KEYFILES = \
- 	ATT_Data_Connect_BT \
- 	ATT_Data_Connect_Plain \
- 	Test_String_SSID \
-+	Test_Intlist_SSID \
- 	Test_Wired_TLS_Old \
- 	Test_Wired_TLS_New \
- 	Test_Wired_TLS_Blob \
-diff --git a/src/settings/plugins/keyfile/tests/keyfiles/Test_Intlist_SSID b/src/settings/plugins/keyfile/tests/keyfiles/Test_Intlist_SSID
-new file mode 100644
-index 0000000..6d2bc0f
---- /dev/null
-+++ b/src/settings/plugins/keyfile/tests/keyfiles/Test_Intlist_SSID
-@@ -0,0 +1,11 @@
-+[connection]
-+id=Test 
-+uuid=2f962388-e5f3-45af-a62c-ac220b8f7baa
-+type=802-11-wireless
-+
-+[802-11-wireless]
-+ssid=98;108;97;104;49;50;51;52;
-+
-+[ipv4]
-+method=auto
-+
-diff --git a/src/settings/plugins/keyfile/tests/test-keyfile.c b/src/settings/plugins/keyfile/tests/test-keyfile.c
-index 6cdd198..3bbaaae 100644
---- a/src/settings/plugins/keyfile/tests/test-keyfile.c
-+++ b/src/settings/plugins/keyfile/tests/test-keyfile.c
-@@ -1438,6 +1438,131 @@ test_write_string_ssid (void)
- 	g_object_unref (connection);
- }
- 
-+#define TEST_INTLIST_SSID_FILE TEST_KEYFILES_DIR"/Test_Intlist_SSID"
-+
-+static void
-+test_read_intlist_ssid (void)
-+{
-+	NMConnection *connection;
-+	NMSettingWireless *s_wifi;
-+	GError *error = NULL;
-+	gboolean success;
-+	const GByteArray *array;
-+	const char *expected_ssid = "blah1234";
-+
-+	connection = nm_keyfile_plugin_connection_from_file (TEST_INTLIST_SSID_FILE, &error);
-+	g_assert_no_error (error);
-+	g_assert (connection);
-+
-+	success = nm_connection_verify (connection, &error);
-+	g_assert_no_error (error);
-+	g_assert (success);
-+
-+	/* SSID */
-+	s_wifi = nm_connection_get_setting_wireless (connection);
-+	g_assert (s_wifi);
-+
-+	array = nm_setting_wireless_get_ssid (s_wifi);
-+	g_assert (array != NULL);
-+	g_assert_cmpint (array->len, ==, strlen (expected_ssid));
-+	g_assert_cmpint (memcmp (array->data, expected_ssid, strlen (expected_ssid)), ==, 0);
-+
-+	g_object_unref (connection);
-+}
-+
-+static void
-+test_write_intlist_ssid (void)
-+{
-+	NMConnection *connection;
-+	NMSettingConnection *s_con;
-+	NMSettingWireless *s_wifi;
-+	NMSettingIP4Config *s_ip4;
-+	char *uuid, *testfile = NULL;
-+	GByteArray *ssid;
-+	unsigned char tmpssid[] = { 65, 49, 50, 51, 0, 50, 50 };
-+	gboolean success;
-+	NMConnection *reread;
-+	GError *error = NULL;
-+	pid_t owner_grp;
-+	uid_t owner_uid;
-+	GKeyFile *keyfile;
-+	gint *intlist;
-+	gsize len = 0, i;
-+
-+	connection = nm_connection_new ();
-+	g_assert (connection);
-+
-+	/* Connection setting */
-+
-+	s_con = NM_SETTING_CONNECTION (nm_setting_connection_new ());
-+	g_assert (s_con);
-+	nm_connection_add_setting (connection, NM_SETTING (s_con));
-+
-+	uuid = nm_utils_uuid_generate ();
-+	g_object_set (s_con,
-+	              NM_SETTING_CONNECTION_ID, "Intlist SSID Test",
-+	              NM_SETTING_CONNECTION_UUID, uuid,
-+	              NM_SETTING_CONNECTION_TYPE, NM_SETTING_WIRELESS_SETTING_NAME,
-+	              NULL);
-+	g_free (uuid);
-+
-+	/* Wireless setting */
-+	s_wifi = NM_SETTING_WIRELESS (nm_setting_wireless_new ());
-+	g_assert (s_wifi);
-+	nm_connection_add_setting (connection, NM_SETTING (s_wifi));
-+
-+	ssid = g_byte_array_sized_new (sizeof (tmpssid));
-+	g_byte_array_append (ssid, &tmpssid[0], sizeof (tmpssid));
-+	g_object_set (s_wifi, NM_SETTING_WIRELESS_SSID, ssid, NULL);
-+	g_byte_array_free (ssid, TRUE);
-+
-+	/* IP4 setting */
-+	s_ip4 = NM_SETTING_IP4_CONFIG (nm_setting_ip4_config_new ());
-+	g_assert (s_ip4);
-+	nm_connection_add_setting (connection, NM_SETTING (s_ip4));
-+	g_object_set (s_ip4, NM_SETTING_IP4_CONFIG_METHOD, NM_SETTING_IP4_CONFIG_METHOD_AUTO, NULL);
-+
-+	/* Write out the connection */
-+	owner_uid = geteuid ();
-+	owner_grp = getegid ();
-+	success = nm_keyfile_plugin_write_test_connection (connection, TEST_SCRATCH_DIR, owner_uid, owner_grp, &testfile, &error);
-+	g_assert_no_error (error);
-+	g_assert (success);
-+	g_assert (testfile != NULL);
-+
-+	/* Ensure the SSID was written out as an int list */
-+	keyfile = g_key_file_new ();
-+	success = g_key_file_load_from_file (keyfile, testfile, 0, &error);
-+	g_assert_no_error (error);
-+	g_assert (success);
-+
-+	intlist = g_key_file_get_integer_list (keyfile, NM_SETTING_WIRELESS_SETTING_NAME, NM_SETTING_WIRELESS_SSID, &len, &error);
-+	g_assert_no_error (error);
-+	g_assert (intlist);
-+	g_assert_cmpint (len, ==, sizeof (tmpssid));
-+
-+	for (i = 0; i < len; i++)
-+		g_assert_cmpint (intlist[i], ==, tmpssid[i]);
-+	g_free (intlist);
-+
-+	g_key_file_free (keyfile);
-+
-+	/* Read the connection back in and compare it to the one we just wrote out */
-+	reread = nm_keyfile_plugin_connection_from_file (testfile, &error);
-+	g_assert_no_error (error);
-+	g_assert (reread);
-+
-+	success = nm_connection_compare (connection, reread, NM_SETTING_COMPARE_FLAG_EXACT);
-+	g_assert (success);
-+
-+	g_clear_error (&error);
-+	unlink (testfile);
-+	g_free (testfile);
-+
-+	g_object_unref (reread);
-+	g_object_unref (connection);
-+}
-+
- #define TEST_BT_DUN_FILE TEST_KEYFILES_DIR"/ATT_Data_Connect_BT"
- 
- static void
-@@ -2488,6 +2613,9 @@ int main (int argc, char **argv)
- 	test_read_string_ssid ();
- 	test_write_string_ssid ();
- 
-+	test_read_intlist_ssid ();
-+	test_write_intlist_ssid ();
-+
- 	test_read_bt_dun_connection ();
- 	test_write_bt_dun_connection ();
- 
--- 
-1.7.6
-

diff --git a/net-misc/networkmanager/files/0.8.9997/0009-libnm-util-default-to-allowing-IPv6-connections-to-f.patch b/net-misc/networkmanager/files/0.8.9997/0009-libnm-util-default-to-allowing-IPv6-connections-to-f.patch
deleted file mode 100644
index 4a3c6fc..0000000
--- a/net-misc/networkmanager/files/0.8.9997/0009-libnm-util-default-to-allowing-IPv6-connections-to-f.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-From 36db194ae95e35cc7b8f431ab984780dea24656d Mon Sep 17 00:00:00 2001
-From: Mathieu Trudel-Lapierre <mathieu.tl@gmail.com>
-Date: Wed, 20 Jul 2011 23:56:48 -0500
-Subject: [PATCH 2/2] libnm-util: default to allowing IPv6 connections to fail
-
-Allow IPv6 connections to fail by changing the default value of the may-fail
-property for ipv6 settings to TRUE.
-
-This makes sure connections created manually using nm-connection-editor
-will default to having the "Require ..." checkbox unchecked; in other words,
-IPv6 timing out will still allow the interface to be configured if
-IPv4 succeeds.
----
- libnm-util/nm-setting-ip6-config.c |    2 +-
- 1 files changed, 1 insertions(+), 1 deletions(-)
-
-diff --git a/libnm-util/nm-setting-ip6-config.c b/libnm-util/nm-setting-ip6-config.c
-index e911639..4dc8f46 100644
---- a/libnm-util/nm-setting-ip6-config.c
-+++ b/libnm-util/nm-setting-ip6-config.c
-@@ -1056,7 +1056,7 @@ nm_setting_ip6_config_class_init (NMSettingIP6ConfigClass *setting_class)
- 						   "this property to TRUE allows the overall network "
- 						   "configuration to succeed if IPv6 configuration "
- 						   "fails but IPv4 configuration completes successfully.",
--						   FALSE,
-+						   TRUE,
- 						   G_PARAM_READWRITE | G_PARAM_CONSTRUCT | NM_SETTING_PARAM_SERIALIZE));
- }
- 
--- 
-1.7.6
-

diff --git a/net-misc/networkmanager/files/networkmanager-fix-tests.patch b/net-misc/networkmanager/files/networkmanager-fix-tests.patch
deleted file mode 100644
index 7bd8a2b..0000000
--- a/net-misc/networkmanager/files/networkmanager-fix-tests.patch
+++ /dev/null
@@ -1,18 +0,0 @@
---- configure.ac
-+++ configure.ac
-@@ -577,7 +577,6 @@
- src/settings/plugins/ifupdown/Makefile
- src/settings/plugins/ifupdown/tests/Makefile
- src/settings/plugins/ifnet/Makefile
--src/settings/plugins/ifnet/tests/Makefile
- src/settings/plugins/ifcfg-rh/Makefile
- src/settings/plugins/ifcfg-rh/tests/Makefile
- src/settings/plugins/ifcfg-rh/tests/network-scripts/Makefile
---- src/settings/plugins/ifnet/Makefile.am
-+++ src/settings/plugins/ifnet/Makefile.am
-@@ -1,4 +1,4 @@
--SUBDIRS = . tests
-+SUBDIRS = .
- INCLUDES = \
-        -I$(top_srcdir)/src/settings \
-        -I$(top_srcdir)/include \

diff --git a/net-misc/networkmanager/files/nm-system-settings.conf b/net-misc/networkmanager/files/nm-system-settings.conf
deleted file mode 100644
index 4d14ee7..0000000
--- a/net-misc/networkmanager/files/nm-system-settings.conf
+++ /dev/null
@@ -1,6 +0,0 @@
-[main]
-plugins=ifnet,keyfile
-
-[ifnet]
-managed=true
-auto_refresh=false

diff --git a/net-misc/networkmanager/files/nm-system-settings.conf-ifnet b/net-misc/networkmanager/files/nm-system-settings.conf-ifnet
deleted file mode 100644
index 4d14ee7..0000000
--- a/net-misc/networkmanager/files/nm-system-settings.conf-ifnet
+++ /dev/null
@@ -1,6 +0,0 @@
-[main]
-plugins=ifnet,keyfile
-
-[ifnet]
-managed=true
-auto_refresh=false

diff --git a/net-misc/networkmanager/metadata.xml b/net-misc/networkmanager/metadata.xml
deleted file mode 100644
index 7d32aff..0000000
--- a/net-misc/networkmanager/metadata.xml
+++ /dev/null
@@ -1,26 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
-<pkgmetadata>
-	<herd>no-herd</herd>
-	<maintainer>
-		<email>steev@gentoo.org</email>
-		<name>Stephen Klimaszewski</name>
-	</maintainer>
-	<maintainer>
-		<email>rbu@gentoo.org</email>
-		<name>Robert Buchholz</name>
-	</maintainer>
-	<maintainer>
-		<email>dagger@gentoo.org</email>
-		<name>Robert Piasek</name>
-	</maintainer>
-	<use>
-		<flag name="ppp">Enable support for mobile broadband and PPPoE connections using <pkg>net-dialup/ppp</pkg>.</flag>
-		<flag name="dhclient">Use dhclient from <pkg>net-misc/dhcp</pkg> for getting ip.</flag>
-		<flag name="dhcpcd">Use <pkg>net-misc/dhcpcd</pkg> for getting ip.</flag>
-		<flag name="nss">Use <pkg>dev-libs/nss</pkg> for cryptography.</flag>
-		<flag name="resolvconf">Use <pkg>net-dns/openresolv</pkg> for managing DNS information</flag>
-		<flag name="connection-sharing">Use <pkg>net-dns/dnsmasq</pkg> and <pkg>net-firewall/iptables</pkg> for connection sharing </flag>
-		<flag name="wimax">Enable WiMAX support. Requires <pkg>net-wireless/wimax</pkg>.</flag>
-	</use>
-</pkgmetadata>

diff --git a/net-misc/networkmanager/networkmanager-0.8.9997-r1.ebuild b/net-misc/networkmanager/networkmanager-0.8.9997-r1.ebuild
deleted file mode 100644
index 0a1b561..0000000
--- a/net-misc/networkmanager/networkmanager-0.8.9997-r1.ebuild
+++ /dev/null
@@ -1,138 +0,0 @@
-# Copyright 1999-2011 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/net-misc/networkmanager/networkmanager-0.8.995.ebuild,v 1.1 2011/03/09 07:56:21 qiaomuf Exp $
-
-EAPI="4"
-GNOME_ORG_MODULE="NetworkManager"
-
-inherit autotools eutils gnome.org linux-info systemd
-
-DESCRIPTION="Network configuration and management in an easy way. Desktop environment independent."
-HOMEPAGE="http://www.gnome.org/projects/NetworkManager/"
-
-LICENSE="GPL-2"
-SLOT="0"
-IUSE="avahi bluetooth doc +nss gnutls dhclient +dhcpcd +introspection
-kernel_linux +ppp resolvconf connection-sharing wimax"
-KEYWORDS="~amd64 ~arm ~ppc ~ppc64 ~x86"
-
-REQUIRED_USE="
-	^^ ( nss gnutls )
-	^^ ( dhclient dhcpcd )"
-
-# gobject-introspection-0.10.3 is needed due to gnome bug 642300
-# wpa_supplicant-0.7.3-r3 is needed due to bug 359271
-# make consolekit and/or polkit support optional ?
-COMMON_DEPEND=">=sys-apps/dbus-1.2
-	>=dev-libs/dbus-glib-0.75
-	>=net-wireless/wireless-tools-28_pre9
-	|| ( >=sys-fs/udev-171[gudev] >=sys-fs/udev-147[extras] )
-	>=dev-libs/glib-2.26
-	>=sys-auth/polkit-0.97
-	>=dev-libs/libnl-1.1
-	>=net-misc/modemmanager-0.4
-	>=net-wireless/wpa_supplicant-0.7.3-r3[dbus]
-	bluetooth? ( >=net-wireless/bluez-4.82 )
-	avahi? ( net-dns/avahi[autoipd] )
-	gnutls? (
-		dev-libs/libgcrypt
-		net-libs/gnutls )
-	nss? ( >=dev-libs/nss-3.11 )
-	dhclient? ( net-misc/dhcp )
-	dhcpcd? ( >=net-misc/dhcpcd-4.0.0_rc3 )
-	introspection? ( >=dev-libs/gobject-introspection-0.10.3 )
-	ppp? ( >=net-dialup/ppp-2.4.5 )
-	resolvconf? ( net-dns/openresolv )
-	connection-sharing? (
-		net-dns/dnsmasq
-		net-firewall/iptables )
-	wimax? ( >=net-wireless/wimax-1.5.1 )"
-
-RDEPEND="${COMMON_DEPEND}
-	sys-auth/consolekit"
-
-DEPEND="${COMMON_DEPEND}
-	dev-util/pkgconfig
-	>=dev-util/intltool-0.40
-	>=sys-devel/gettext-0.17
-	doc? ( >=dev-util/gtk-doc-1.8 )"
-
-sysfs_deprecated_check() {
-	ebegin "Checking for SYSFS_DEPRECATED support"
-
-	if { linux_chkconfig_present SYSFS_DEPRECATED_V2; }; then
-		eerror "Please disable SYSFS_DEPRECATED_V2 support in your kernel config and recompile your kernel"
-		eerror "or NetworkManager will not work correctly."
-		eerror "See http://bugs.gentoo.org/333639 for more info."
-		die "CONFIG_SYSFS_DEPRECATED_V2 support detected!"
-	fi
-	eend $?
-}
-
-pkg_pretend() {
-	if use kernel_linux; then
-		get_version
-		if linux_config_exists; then
-			sysfs_deprecated_check
-		else
-			ewarn "Was unable to determine your kernel .config"
-			ewarn "Please note that if CONFIG_SYSFS_DEPRECATED_V2 is set in your kernel .config, NetworkManager will not work correctly."
-			ewarn "See http://bugs.gentoo.org/333639 for more info."
-		fi
-
-	fi
-}
-
-src_prepare() {
-	# Add useful patches from upstream git (fixing crashes, SSID parsing bugs,
-	# and significant usability problems).
-	epatch "${FILESDIR}/${PV}/"*.patch
-
-	# Don't build tests
-	epatch "${FILESDIR}/${PN}-fix-tests.patch"
-	eautoreconf
-	default
-}
-
-src_configure() {
-	ECONF="--disable-more-warnings
-		--localstatedir=/var
-		--with-distro=gentoo
-		--with-dbus-sys-dir=/etc/dbus-1/system.d
-		--with-udev-dir=/lib/udev
-		--with-iptables=/sbin/iptables
-		$(use_enable doc gtk-doc)
-		$(use_enable introspection)
-		$(use_enable ppp)
-		$(use_enable wimax)
-		$(use_with dhclient)
-		$(use_with dhcpcd)
-		$(use_with doc docs)
-		$(use_with resolvconf)
-		$(systemd_with_unitdir)"
-
-		if use nss ; then
-			ECONF="${ECONF} $(use_with nss crypto=nss)"
-		else
-			ECONF="${ECONF} $(use_with gnutls crypto=gnutls)"
-		fi
-
-	econf ${ECONF}
-}
-
-src_install() {
-	default
-	# Need to keep the /var/run/NetworkManager directory
-	keepdir /var/run/NetworkManager
-
-	# Need to keep the /etc/NetworkManager/dispatched.d for dispatcher scripts
-	keepdir /etc/NetworkManager/dispatcher.d
-
-	# Add keyfile plugin support
-	keepdir /etc/NetworkManager/system-connections
-	insinto /etc/NetworkManager
-	newins "${FILESDIR}/nm-system-settings.conf-ifnet" nm-system-settings.conf
-
-	# Remove useless .la files
-	find "${D}" -name '*.la' -exec rm -f {} +
-}



^ permalink raw reply related	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2011-09-06 15:48 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-09-06 15:48 [gentoo-commits] proj/kde:master commit in: net-misc/networkmanager-vpnc/, net-misc/networkmanager-openvpn/, Alexey Shvetsov
  -- strict thread matches above, loose matches on Subject: below --
2011-08-14 22:47 Alexey Shvetsov

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox