summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMu Qiao <qiaomuf@gentoo.org>2011-01-05 13:41:41 +0800
committerMu Qiao <qiaomuf@gentoo.org>2011-01-05 14:24:54 +0800
commit4ca892adf4093512be9686f0e987822519116dcf (patch)
tree4f2dc4d29b7f3959b3fa813b2f7418420ca4c0a7
parentadd aliedit (diff)
downloadqiaomuf-4ca892adf4093512be9686f0e987822519116dcf.tar.gz
qiaomuf-4ca892adf4093512be9686f0e987822519116dcf.tar.bz2
qiaomuf-4ca892adf4093512be9686f0e987822519116dcf.zip
Add support for shared connection
Signed-off-by: Mu Qiao <qiaomuf@gentoo.org>
-rw-r--r--.gitignore1
-rw-r--r--net-im/openfetion/Manifest16
-rw-r--r--net-misc/networkmanager/Manifest28
-rw-r--r--net-misc/networkmanager/files/networkmanager-0.8-confchanges.patch19
-rw-r--r--net-misc/networkmanager/files/networkmanager-0.8-nscd-clear-cache.patch42
-rw-r--r--net-misc/networkmanager/files/networkmanager-0.8-read-hostname.patch76
-rw-r--r--net-misc/networkmanager/files/networkmanager-0.8.1-CVE-2010-1172.patch177
-rw-r--r--net-misc/networkmanager/files/networkmanager-0.8.1-confchanges.patch22
-rw-r--r--net-misc/networkmanager/files/networkmanager-0.8.1-dhclient3-fix.patch10
-rw-r--r--net-misc/networkmanager/files/networkmanager-0.8.1-dhclient3.patch129
-rw-r--r--net-misc/networkmanager/files/networkmanager-0.8.1-dhcp-configure.patch64
-rw-r--r--net-misc/networkmanager/files/networkmanager-0.8.1-glib-2.25.12-workaround.patch24
-rw-r--r--net-misc/networkmanager/files/networkmanager-0.8.2-1.patch174
-rw-r--r--net-misc/networkmanager/files/networkmanager-0.8.2-confchanges.patch25
-rw-r--r--net-misc/networkmanager/files/networkmanager-0.8.2-shared-connection.patch117
-rw-r--r--net-misc/networkmanager/networkmanager-0.8.2-r100.ebuild152
16 files changed, 1048 insertions, 28 deletions
diff --git a/.gitignore b/.gitignore
index 7056817..83731a0 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,6 +1,7 @@
*.*
!*/
!*.ebuild
+!*.patch
!*.xml
!licenses/*
!ChangeLog
diff --git a/net-im/openfetion/Manifest b/net-im/openfetion/Manifest
index f86e7f3..962516b 100644
--- a/net-im/openfetion/Manifest
+++ b/net-im/openfetion/Manifest
@@ -1,18 +1,6 @@
------BEGIN PGP SIGNED MESSAGE-----
-Hash: SHA1
-
DIST openfetion-2.0.7.tar.gz 794386 RMD160 15bf83747d9825b4819d90cad7d080d68e85b05b SHA1 5b2a8abfa61928618c033ebc034b4a5f730003a6 SHA256 37bdab942713512ab02d34e1b16a810764e55688c93cd5daee88c64c50c22695
+DIST openfetion-2.1.0.tar.gz 369094 RMD160 f190894863713b916f76f962a3eeecc53f453715 SHA1 3f078bea8a3a2fa198deebd73ded8637a81f0176 SHA256 3bd06731b6bdbeb5a66c65061ca9887b965f835e7fabf6d5da9e72ad38e34d44
EBUILD openfetion-2.0.7.ebuild 920 RMD160 57cd873fa9dfb73a1b5ae749ca0e4b6dc688ed3d SHA1 0ef3a361c038a907c1275a0289313ead7cea47ff SHA256 2a84b85d88b7e98c5c30b1c09850ff3f909494e693c96bf984e1195576a4fea9
+EBUILD openfetion-2.1.0.ebuild 1124 RMD160 cab490716d1a15e18eb66145d0e320eaa4bf8df0 SHA1 a4b0227ee53973d1ced4eadf385ead753d41fa5a SHA256 09d057b21c74b7755ce7bfe5414d5941743ce86a2c64e779221d9e91186de8fa
MISC ChangeLog 246 RMD160 70512a2ada62cc065c03ab67a316916d7817f29b SHA1 ea3a97d6b93113203ce11cdf0239face0da9015d SHA256 7683cc21f892ff43de43abf3b00be6a1465b8353c244c519229cd2e6f1b42543
MISC metadata.xml 216 RMD160 e99c47ba555ab9c5840db973af6b2bdd21127091 SHA1 ea3e97b8a730687767cf13495aeaa94ac17352c1 SHA256 778c8364ef437a2407d3bcda74a4d84b1a29902ac8ef3dd9de78405d7f54f5fb
------BEGIN PGP SIGNATURE-----
-Version: GnuPG v2.0.16 (GNU/Linux)
-
-iQEcBAEBAgAGBQJM8l3zAAoJEDCzDeQXsVfpmkYIAKjvdt+oBoLdKsvtnRAsNAw5
-XHqXBJdLtHf4k0dUb+0omkwIsKMo/vlLjv+WpeLgyfaADx9Ukn8+mjoI3CClITdl
-jv6VSlzz/7obn0jcMBGCmJQftD5PswLGTNGIu0Q8qkssAiyBgtAcmguio7zzsO8c
-r2qylgaKxqLbFMJmpLoWkXdzFecYUeTotx4iRJYhrEtdo1qtxKUuUiKQ6i7tdY5n
-4e5ez7XHu9QM7y1BFcf2I8PNiV+heYWBnmHkp2kdfM9M7369u1Nq0Kuuj9VeuyCT
-+hjny9+Bv5sfS/OXJgYlZ+O5slBoznoVjBuLMlkSRPS2yTApaHw+vTbqjUbMJcc=
-=3YPa
------END PGP SIGNATURE-----
diff --git a/net-misc/networkmanager/Manifest b/net-misc/networkmanager/Manifest
index 8a8250b..758b6d2 100644
--- a/net-misc/networkmanager/Manifest
+++ b/net-misc/networkmanager/Manifest
@@ -1,21 +1,21 @@
------BEGIN PGP SIGNED MESSAGE-----
-Hash: SHA1
-
AUX NetworkManagerDispatcher 1198 RMD160 4345870ab40607b9aed80c8da383b604f032b98e SHA1 1dd2250c746b25566fceaab551f4ef8335fe4f55 SHA256 f8cb5d0470619cf1f0812fffcf1bf2091e3c44a757899c07164f80ddd6a2641e
+AUX networkmanager-0.8-confchanges.patch 1063 RMD160 25a0d45410fa5590098386556e9947dd15507eda SHA1 ba6eaa63188f97f93bbbb327676d8104bbf7e8c8 SHA256 9fcbe0b9ab4cc38c9057a0dde2f5153efc12515ed4d28920a455dad7fc2b1e09
+AUX networkmanager-0.8-nscd-clear-cache.patch 1214 RMD160 2381f455593202a740e634601c0ba8245ecb8fac SHA1 b4a0cec446b6f8fa81c06d5992db61b296f17057 SHA256 2d981bafa96607acb06740d78b8e33afdc675c52b0cf3ce5b098c67566362c99
+AUX networkmanager-0.8-read-hostname.patch 2380 RMD160 8b4349293235d2b63546b4e65d30a94d91ab9a04 SHA1 f7d57c686e9bd1f1ac58e67efcd8255c0fc9a5c5 SHA256 5ee07a0fb949c7ce299f0d2459c4f9840ace765308cd1a208d89eecec51a63fe
+AUX networkmanager-0.8.1-CVE-2010-1172.patch 6034 RMD160 358efedb9265524ee19153599eeb2ef1b51ccff8 SHA1 c3d2318e2eb0c13a2099e91e7a837e8bbcff0e7d SHA256 dfcf6727842250b858968ba6be49a5d6c77d3761cbd30a5cdb82fa3765ed52ed
+AUX networkmanager-0.8.1-confchanges.patch 1145 RMD160 c540696830e311cc9941e55650f7214063f841b9 SHA1 e675fbbf24e5cbf3a2fb53fec3d25db46596a0b4 SHA256 29bdc1ba93aa57450602af49225ede0c535c2cbf5f18777e9eb64d5b09d4d5a3
+AUX networkmanager-0.8.1-dhclient3-fix.patch 295 RMD160 986359b62d5cb7d4ca34b01563a30123415b9ecf SHA1 9d1f586bf3af83694ea5d5ac245de5cf97f9a5f1 SHA256 80af32adce488b29a2ad0d005cd6aeaf39cb0b666cab9d17568139b9ce18c79e
+AUX networkmanager-0.8.1-dhclient3.patch 4658 RMD160 d229c87a41f882a6162520ee3f2afdc5650c283a SHA1 06ca671ba76cd1591556cdcc96a88060ca89e727 SHA256 45b1c302cea8605cc489a77250404e4457d0747ca3cab9ed993eb51551da3290
+AUX networkmanager-0.8.1-dhcp-configure.patch 2447 RMD160 1c222ce867a7f92167b2ffcbc401f8ea83b24193 SHA1 f17b676ad65788b5b665c16b29d01a88e3cdd041 SHA256 7bda5db2d937b2562c98435620774bba487bf8b53da5c035422b2bc2ed21a400
+AUX networkmanager-0.8.1-glib-2.25.12-workaround.patch 663 RMD160 b4397b17a6148244dedd341b35185c07ca267f06 SHA1 926acbd76076750ab4ec48ac34fe73679693a4ca SHA256 a00523ad7d6bdced76be82b980788af4c313fc59aff8b9d258343e17ad6bf969
+AUX networkmanager-0.8.2-1.patch 6642 RMD160 466f7c2bd34043d13d1b265f4a52b172c594430e SHA1 7af80cb4ea3cf1d60566c8dacd3eadc3ef4cc186 SHA256 f29cfa186c9b77452266e9c303711c2368986fb7e5455e388a5dfe064e80b3e3
AUX networkmanager-0.8.2-accept-gw.patch 3679 RMD160 b163afa5215f0eb52ba2562d22c65ec5e0bd3380 SHA1 a71f25413abf0c359439add74a73545790604ac9 SHA256 631ccad5bc4c2d880b5235bc8e6ace494467bad1734023ded9d8bcd52b9177af
+AUX networkmanager-0.8.2-confchanges.patch 1279 RMD160 1ff5b6d663aa4417beaf9c7630d710a17a1812b5 SHA1 634ad19b189509e75362e5cd7f069ca795b4aeba SHA256 7c9ed8dc35b5b6d0414f96902fbe8117408ad556af655c0afc593ec5a1beac28
+AUX networkmanager-0.8.2-shared-connection.patch 4387 RMD160 a4a86f2c1638f08714c92dd096f05156cce8499e SHA1 faf227c1020ab7cc7fd36faaca8e2349dfb2977e SHA256 79cbd6d9d0f82bd404ca00b83e4b275907f837fb11bbda4d80212d1e0370ccf9
AUX nm-system-settings.conf 23 RMD160 6d66c702b345bde668a420a15716feea6005fbd1 SHA1 49ba558d20f5ca5a201e027e13b878dd5ac3569c SHA256 44b048804c7c0b8b3b0c29b8632b6ad613c397d0a1635ec918e10c0fbcdadf21
AUX nm-system-settings.conf-ifnet 70 RMD160 c0d2be147383999b62cead86ab4333169e4ef277 SHA1 679ec8052b610969c148a2d34cd4da7a41484a76 SHA256 34f53d9ac1ad65eda6942dc3059117f60f6321059ca23f4fbfcc2f2edcae151f
+DIST NetworkManager-0.8.2.tar.bz2 1629296 RMD160 d5ef4adfc74db4a77fadcbeb545175b2f49dfd9c SHA1 2c9a9f0317d2ad4fd8a05631211cfd6040070f8e SHA256 58e49dcd83cb641a9dcaad4fd566a08196c862479ad3086c00f28f03768eb4f1
+EBUILD networkmanager-0.8.2-r100.ebuild 4202 RMD160 16fddd8bd4a77905a47850fecb12dd4a2d266931 SHA1 00daba60673f8886fa23efef7ad95193a8a5423d SHA256 78c93c5de6c2b1c1d46b1113f52c87df334a440e34d494d1af9efa6ab96764e2
EBUILD networkmanager-9999.ebuild 4197 RMD160 4a64e0b4141d174eda2716f2a08f6ce5f0a52ed8 SHA1 fd2a1e026e7625312431048ccca94216c3936b76 SHA256 006eea72c4dfc9e605d353c47ad85b8a6a70cbd0eb784aa363b49397b53e393a
MISC ChangeLog 18915 RMD160 6b010bfb98563502a1503c06f962ab2c030043f3 SHA1 88a338f79f4c7980b0322642aa055bb2ffb2adb9 SHA256 c4f984efef8828c8d04cc34ec4b42b187f012515bcb4675ae10fa1005f97f00d
MISC metadata.xml 975 RMD160 7f7f8f54c53fe2098dae8ed0a4cd177900289d3f SHA1 11de32f78915bbc01c6b0665b45233d004d75c25 SHA256 e0ce95394f82f5631ecec62c6595dc4dad9afc52cf5e1bb0f30618edfb79becc
------BEGIN PGP SIGNATURE-----
-Version: GnuPG v2.0.16 (GNU/Linux)
-
-iQEcBAEBAgAGBQJM9PxfAAoJEDCzDeQXsVfpUNcH/jgu8ThoTnMLpsBtFXFdYjvz
-rIyfYJNTFWj6LMfeta8UXTcmolBvciRQoUKqQ6DCoA7Vf98A38C0j26d4LJzIiZI
-iwmgiABW7wwFIm5BNNHt5Y9CgHzMVwaahHAPjFD+VsAy4/J6cj41z0ghyZXqdrlm
-vA5KYKXT9othUYcH+99hRA/JggjSVHCgSjDjxvPikJgXDOemGtBIki53IXuyx3wX
-2LAqvp3evFlkKGabC+mTYhEryY+sCK497fNfF+bjZMEMnwn2d7vZ/qGTHFa/loH+
-a5uR4p09jQQr78iLtPauDmn3k7Diuy9ZgKPyBepu55G6GC3cv4s5yItrLDqDxiQ=
-=Raai
------END PGP SIGNATURE-----
diff --git a/net-misc/networkmanager/files/networkmanager-0.8-confchanges.patch b/net-misc/networkmanager/files/networkmanager-0.8-confchanges.patch
new file mode 100644
index 0000000..039a074
--- /dev/null
+++ b/net-misc/networkmanager/files/networkmanager-0.8-confchanges.patch
@@ -0,0 +1,19 @@
+diff '--exclude-from=/home/dang/.scripts/diffrc' -up -ruN NetworkManager-0.8.orig/src/NetworkManager.conf NetworkManager-0.8/src/NetworkManager.conf
+--- NetworkManager-0.8.orig/src/NetworkManager.conf 2010-02-18 10:47:45.000000000 -0500
++++ NetworkManager-0.8/src/NetworkManager.conf 2010-03-30 11:27:27.751522916 -0400
+@@ -56,6 +56,15 @@
+
+ <allow send_destination="org.freedesktop.NetworkManager"
+ send_interface="org.freedesktop.NetworkManager.VPN.Connection"/>
++
++ <allow send_destination="org.freedesktop.NetworkManager"
++ send_interface="org.freedesktop.NetworkManager.VPN.Plugin"/>
++ </policy>
++ <policy group="plugdev">
++ <allow send_destination="org.freedesktop.NetworkManager"/>
++
++ <deny send_destination="org.freedesktop.NetworkManager"
++ send_interface="org.freedesktop.NetworkManager.PPP"/>
+ </policy>
+ <policy context="default">
+ <deny own="org.freedesktop.NetworkManager"/>
diff --git a/net-misc/networkmanager/files/networkmanager-0.8-nscd-clear-cache.patch b/net-misc/networkmanager/files/networkmanager-0.8-nscd-clear-cache.patch
new file mode 100644
index 0000000..e92c883
--- /dev/null
+++ b/net-misc/networkmanager/files/networkmanager-0.8-nscd-clear-cache.patch
@@ -0,0 +1,42 @@
+From 327e00f06358ef388f4fad5abcb016daa0ec3452 Mon Sep 17 00:00:00 2001
+From: Robert Piasek <dagger@gentoo.org>
+Date: Mon, 22 Feb 2010 10:34:23 +0000
+Subject: [PATCH] fix: use nscd -i to clear cache
+
+
+Signed-off-by: Robert Piasek <dagger@gentoo.org>
+---
+ src/backends/NetworkManagerGentoo.c | 11 +++++------
+ 1 files changed, 5 insertions(+), 6 deletions(-)
+
+diff --git a/src/backends/NetworkManagerGentoo.c b/src/backends/NetworkManagerGentoo.c
+index 7fa1207..aa4b40c 100644
+--- a/src/backends/NetworkManagerGentoo.c
++++ b/src/backends/NetworkManagerGentoo.c
+@@ -34,6 +34,7 @@
+ #include "NetworkManagerGeneric.h"
+ #include "NetworkManagerSystem.h"
+ #include "NetworkManagerUtils.h"
++#include "nm-utils.h"
+
+ /*
+ * nm_system_enable_loopback
+@@ -57,11 +58,9 @@ void nm_system_enable_loopback (void)
+ */
+ void nm_system_update_dns (void)
+ {
+- #ifdef NM_NO_NAMED
+- if (nm_spawn_process ("/etc/init.d/nscd status") == 0)
+- nm_spawn_process ("/etc/init.d/nscd restart");
+- #else
+- nm_spawn_process("/usr/bin/killall -q nscd");
+- #endif
++ if (g_file_test ("/usr/sbin/nscd", G_FILE_TEST_IS_EXECUTABLE)) {
++ nm_info ("Clearing nscd hosts cache.");
++ nm_spawn_process ("/usr/sbin/nscd -i hosts");
++ }
+ }
+
+--
+1.7.0
+
diff --git a/net-misc/networkmanager/files/networkmanager-0.8-read-hostname.patch b/net-misc/networkmanager/files/networkmanager-0.8-read-hostname.patch
new file mode 100644
index 0000000..ac59fe2
--- /dev/null
+++ b/net-misc/networkmanager/files/networkmanager-0.8-read-hostname.patch
@@ -0,0 +1,76 @@
+When reading hostname from NM keyfile, if no hostname is set, read from the
+system file at /etc/conf.d/hostname to set hostname. This patch is not meant to
+be ever upstreamed. Proper fix is to write a gentoo-specific ifcfg plugin.
+
+To change hostname, touch nm-system-settings.conf, which will reload the keyfile
+and cause /etc/conf.d/hostname to be reloaded.
+
+This horrible hack fixes http://bugs.gentoo.org/176873
+
+Author: Nirbheek Chauhan <nirbheek@gentoo.org>
+Reviewed-by: Arun Raghavan <ford_prefect@gentoo.org>
+
+---
+--- system-settings/plugins/keyfile/plugin.c
++++ system-settings/plugins/keyfile/plugin.c
+@@ -43,6 +43,9 @@
+ #define KEYFILE_PLUGIN_INFO "(c) 2007 - 2008 Red Hat, Inc. To report bugs please use the NetworkManager mailing list."
+
+ #define CONF_FILE SYSCONFDIR "/NetworkManager/nm-system-settings.conf"
++#ifdef TARGET_GENTOO
++#define HOSTNAME_FILE SYSCONFDIR "/conf.d/hostname"
++#endif
+
+ static char *plugin_get_hostname (SCPluginKeyfile *plugin);
+ static void system_config_interface_init (NMSystemConfigInterface *system_config_interface_class);
+@@ -381,6 +384,12 @@
+ GKeyFile *key_file;
+ char *hostname = NULL;
+ GError *error = NULL;
++#ifdef TARGET_GENTOO
++ char *contents = NULL;
++ char **lines = NULL, **line;
++ GError *contents_err = NULL;
++ gsize contents_len = 0;
++#endif
+
+ key_file = g_key_file_new ();
+ if (g_key_file_load_from_file (key_file, CONF_FILE, G_KEY_FILE_NONE, &error))
+@@ -392,7 +401,37 @@
+
+ g_key_file_free (key_file);
+
++ if (hostname)
++ goto out;
++#ifdef TARGET_GENTOO
++ /* If hostname is unset in keyfile, read system file to get hostname */
++ if (!g_file_get_contents (HOSTNAME_FILE, &contents,
++ &contents_len, &contents_err))
++ goto out;
++
++ lines = g_strsplit_set (contents, "\n\r", 0);
++ if (!lines)
++ goto out;
++
++ for (line = lines; *line; line++) {
++ if (!g_str_has_prefix (*line, "hostname="))
++ continue;
++ hostname = g_strsplit_set (g_strsplit_set (*line, "=", 0)[1], "#", 0)[0];
++ g_strstrip (hostname);
++ if (!hostname)
++ goto out;
++ /* Remove quotes surrounding hostname */
++ if (hostname[0] == '"' && hostname[strlen(hostname)-1] == '"')
++ contents = g_strndup(&hostname[1], strlen(hostname)-2);
++ /* Un-escape before using to imitate librc behaviour */
++ hostname = g_strcompress (contents);
++ }
++
++out:
++ g_error_free(contents_err);
++
+ return hostname;
++#endif
+ }
+
+ static gboolean
diff --git a/net-misc/networkmanager/files/networkmanager-0.8.1-CVE-2010-1172.patch b/net-misc/networkmanager/files/networkmanager-0.8.1-CVE-2010-1172.patch
new file mode 100644
index 0000000..321be0e
--- /dev/null
+++ b/net-misc/networkmanager/files/networkmanager-0.8.1-CVE-2010-1172.patch
@@ -0,0 +1,177 @@
+From 92babdb658109cab5cdf9fc0280264ef0715f37d Mon Sep 17 00:00:00 2001
+From: Dan Williams <dcbw@redhat.com>
+Date: Wed, 11 Aug 2010 20:40:25 +0000
+Subject: core: work around dbus-glib property access bug (CVE-2010-1172) (rh #585394)
+
+More info:
+https://bugzilla.redhat.com/show_bug.cgi?id=585394
+http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2010-1172
+
+dbus-glib was not properly enforcing the 'access' permissions on
+object properties exported using its API. There were 2 specific bugs:
+
+1) dbus-glib did not enforce the introspection read/write property
+permissions, so if the GObject property definition allowed write
+access (which is sometimes desirable), D-Bus clients could modify
+that value even if the introspection said it was read-only
+
+2) dbus-glib was not filtering out GObject properties that were
+not listed in the introspection XML. Thus, if the GObject defined
+more properties than were listed in the introspection XML (which is
+also often useful, and NM uses this quite a bit) those properties
+would also be exposed to D-Bus clients.
+
+To fix this completely, you need to:
+
+1) get dbus-glib master when the patch is commited, OR grab the
+patch from https://bugzilla.redhat.com/show_bug.cgi?id=585394 and
+build a new dbus-glib
+
+2) rebuild NetworkManager against the new dbus-glib
+---
+diff --git a/configure.ac b/configure.ac
+index e1b9347..3217734 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -203,6 +203,12 @@ dnl
+ AC_CHECK_LIB([dl], [dladdr], LIBDL="-ldl", LIBDL="")
+ AC_SUBST(LIBDL)
+
++dnl
++dnl Checks for new dbus-glib property access function
++dnl
++AC_CHECK_LIB([dbus-glib-1], [dbus_glib_global_set_disable_legacy_property_access], ac_have_dg_prop="1", ac_have_dg_prop="0")
++AC_DEFINE_UNQUOTED(HAVE_DBUS_GLIB_DISABLE_LEGACY_PROP_ACCESS, $ac_have_dg_prop, [Define if you have a dbus-glib with dbus_glib_global_set_disable_legacy_property_access()])
++
+ PKG_CHECK_MODULES(DBUS, dbus-1 >= 1.1 dbus-glib-1 >= 0.75)
+ AC_SUBST(DBUS_CFLAGS)
+ AC_SUBST(DBUS_LIBS)
+diff --git a/src/main.c b/src/main.c
+index c2fb58b..aea2eef 100644
+--- a/src/main.c
++++ b/src/main.c
+@@ -19,10 +19,7 @@
+ * Copyright (C) 2005 - 2008 Novell, Inc.
+ */
+
+-#ifdef HAVE_CONFIG_H
+-# include <config.h>
+-#endif
+-
++#include <config.h>
+ #include <glib.h>
+ #include <dbus/dbus.h>
+ #include <dbus/dbus-glib-lowlevel.h>
+@@ -627,6 +624,17 @@ main (int argc, char *argv[])
+ g_thread_init (NULL);
+ dbus_g_thread_init ();
+
++#ifndef HAVE_DBUS_GLIB_DISABLE_LEGACY_PROP_ACCESS
++#error HAVE_DBUS_GLIB_DISABLE_LEGACY_PROP_ACCESS not defined
++#endif
++
++#if HAVE_DBUS_GLIB_DISABLE_LEGACY_PROP_ACCESS
++ /* Ensure that non-exported properties don't leak out, and that the
++ * introspection 'access' permissions are respected.
++ */
++ dbus_glib_global_set_disable_legacy_property_access ();
++#endif
++
+ setup_signals ();
+
+ nm_logging_start (become_daemon);
+diff --git a/src/nm-wifi-ap.c b/src/nm-wifi-ap.c
+index 8a7e4e8..7770b8b 100644
+--- a/src/nm-wifi-ap.c
++++ b/src/nm-wifi-ap.c
+@@ -153,6 +153,8 @@ set_property (GObject *object, guint prop_id,
+ case PROP_STRENGTH:
+ nm_ap_set_strength (ap, g_value_get_char (value));
+ break;
++ case PROP_HW_ADDRESS:
++ break;
+ default:
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
+ break;
+@@ -242,7 +244,7 @@ nm_ap_class_init (NMAccessPointClass *ap_class)
+ NM_802_11_AP_FLAGS_NONE,
+ NM_802_11_AP_FLAGS_PRIVACY,
+ NM_802_11_AP_FLAGS_NONE,
+- G_PARAM_READWRITE));
++ G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY));
+
+ g_object_class_install_property
+ (object_class, PROP_WPA_FLAGS,
+@@ -252,7 +254,7 @@ nm_ap_class_init (NMAccessPointClass *ap_class)
+ NM_802_11_AP_SEC_NONE,
+ all_sec_flags,
+ NM_802_11_AP_SEC_NONE,
+- G_PARAM_READWRITE));
++ G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY));
+
+ g_object_class_install_property
+ (object_class, PROP_RSN_FLAGS,
+@@ -262,7 +264,7 @@ nm_ap_class_init (NMAccessPointClass *ap_class)
+ NM_802_11_AP_SEC_NONE,
+ all_sec_flags,
+ NM_802_11_AP_SEC_NONE,
+- G_PARAM_READWRITE));
++ G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY));
+
+ g_object_class_install_property
+ (object_class, PROP_SSID,
+@@ -270,7 +272,7 @@ nm_ap_class_init (NMAccessPointClass *ap_class)
+ "SSID",
+ "SSID",
+ DBUS_TYPE_G_UCHAR_ARRAY,
+- G_PARAM_READWRITE));
++ G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY));
+
+ g_object_class_install_property
+ (object_class, PROP_FREQUENCY,
+@@ -278,7 +280,7 @@ nm_ap_class_init (NMAccessPointClass *ap_class)
+ "Frequency",
+ "Frequency",
+ 0, 10000, 0,
+- G_PARAM_READWRITE));
++ G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY));
+
+ g_object_class_install_property
+ (object_class, PROP_HW_ADDRESS,
+@@ -286,7 +288,7 @@ nm_ap_class_init (NMAccessPointClass *ap_class)
+ "MAC Address",
+ "Hardware MAC address",
+ NULL,
+- G_PARAM_READABLE));
++ G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY));
+
+ g_object_class_install_property
+ (object_class, PROP_MODE,
+@@ -294,7 +296,7 @@ nm_ap_class_init (NMAccessPointClass *ap_class)
+ "Mode",
+ "Mode",
+ NM_802_11_MODE_ADHOC, NM_802_11_MODE_INFRA, NM_802_11_MODE_INFRA,
+- G_PARAM_READWRITE));
++ G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY));
+
+ g_object_class_install_property
+ (object_class, PROP_MAX_BITRATE,
+@@ -302,7 +304,7 @@ nm_ap_class_init (NMAccessPointClass *ap_class)
+ "Max Bitrate",
+ "Max Bitrate",
+ 0, G_MAXUINT16, 0,
+- G_PARAM_READWRITE));
++ G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY));
+
+ g_object_class_install_property
+ (object_class, PROP_STRENGTH,
+@@ -310,7 +312,7 @@ nm_ap_class_init (NMAccessPointClass *ap_class)
+ "Strength",
+ "Strength",
+ G_MININT8, G_MAXINT8, 0,
+- G_PARAM_READWRITE));
++ G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY));
+
+ /* Signals */
+ signals[PROPERTIES_CHANGED] =
+--
diff --git a/net-misc/networkmanager/files/networkmanager-0.8.1-confchanges.patch b/net-misc/networkmanager/files/networkmanager-0.8.1-confchanges.patch
new file mode 100644
index 0000000..e714569
--- /dev/null
+++ b/net-misc/networkmanager/files/networkmanager-0.8.1-confchanges.patch
@@ -0,0 +1,22 @@
+--- src/NetworkManager.conf~ 2010-06-30 19:55:33.000000000 +0100
++++ src/NetworkManager.conf 2010-07-28 10:11:06.648872144 +0100
+@@ -57,10 +57,19 @@
+ <allow send_destination="org.freedesktop.NetworkManager"
+ send_interface="org.freedesktop.NetworkManager.VPN.Connection"/>
+
++ <allow send_destination="org.freedesktop.NetworkManager"
++ send_interface="org.freedesktop.NetworkManager.VPN.Plugin"/>
++
+ <deny send_destination="org.freedesktop.NetworkManager"
+ send_interface="org.freedesktop.NetworkManager"
+ send_member="SetLogging"/>
+ </policy>
++ <policy group="plugdev">
++ <allow send_destination="org.freedesktop.NetworkManager"/>
++
++ <deny send_destination="org.freedesktop.NetworkManager"
++ send_interface="org.freedesktop.NetworkManager.PPP"/>
++ </policy>
+ <policy context="default">
+ <deny own="org.freedesktop.NetworkManager"/>
+ <deny own="org.freedesktop.NetworkManagerSystemSettings"/>
diff --git a/net-misc/networkmanager/files/networkmanager-0.8.1-dhclient3-fix.patch b/net-misc/networkmanager/files/networkmanager-0.8.1-dhclient3-fix.patch
new file mode 100644
index 0000000..b94eb7f
--- /dev/null
+++ b/net-misc/networkmanager/files/networkmanager-0.8.1-dhclient3-fix.patch
@@ -0,0 +1,10 @@
+--- configure.ac~ 2010-08-23 16:18:33.000000000 +0100
++++ configure.ac 2010-08-23 16:29:37.578000313 +0100
+@@ -381,6 +381,7 @@
+ AC_MSG_WARN([Falling back to ISC dhclient, ${DHCLIENT_PATH}])
+ fi
+ AC_SUBST(DHCLIENT_PATH)
++AC_SUBST(DHCLIENT_VERSION)
+ AC_SUBST(DHCPCD_PATH)
+
+ # resolvconf support
diff --git a/net-misc/networkmanager/files/networkmanager-0.8.1-dhclient3.patch b/net-misc/networkmanager/files/networkmanager-0.8.1-dhclient3.patch
new file mode 100644
index 0000000..e00a379
--- /dev/null
+++ b/net-misc/networkmanager/files/networkmanager-0.8.1-dhclient3.patch
@@ -0,0 +1,129 @@
+From d39fda772235d967266a25159b877596d636c048 Mon Sep 17 00:00:00 2001
+From: Mathieu Trudel-Lapierre <mathieu.trudel-lapierre@canonical.com>
+Date: Thu, 12 Aug 2010 22:52:20 +0000
+Subject: dhcp: don't fail with dhclient v3
+
+---
+diff --git a/configure.ac b/configure.ac
+index cfc2122..efdef27 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -319,21 +319,30 @@ AC_SUBST(PPPD_PLUGIN_DIR)
+ AC_ARG_WITH([dhclient], AS_HELP_STRING([--with-dhclient=yes|no|path], [Enable dhclient 4.x support]))
+ # If a full path is given, use that and do not test if it works or not.
+ case "${with_dhclient}" in
++ # NM only works with ISC dhclient - other derivatives don't have
++ # the same userland. dhclient 4.x is required for IPv6 support;
++ # with older versions NM won't be able to use DHCPv6.
++
+ /*)
+ DHCLIENT_PATH="${with_dhclient}"
++ DHCLIENT_VERSION=4
++ if test -x "${with_dhclient}"; then
++ case `"${with_dhclient}" --version 2>&1` in
++ "isc-dhclient-4"*) DHCLIENT_VERSION=4; break;;
++ "isc-dhclient-V3"*) DHCLIENT_VERSION=3; break;;
++ esac
++ fi
+ AC_MSG_NOTICE(using dhclient at ${DHCLIENT_PATH})
+ ;;
+ no) AC_MSG_NOTICE(dhclient support disabled)
+ ;;
+ *)
+ AC_MSG_CHECKING(for dhclient)
+- # NM only works with ISC dhclient - other derivatives don't have
+- # the same userland. NM also requires dhclient 4.x since older
+- # versions do not have IPv6 support.
+ for path in /sbin /usr/sbin /usr/pkg/sbin /usr/local/sbin; do
+ test -x "${path}/dhclient" || continue
+ case `"$path/dhclient" --version 2>&1` in
+- "isc-dhclient-4"*) DHCLIENT_PATH="$path/dhclient"; break;;
++ "isc-dhclient-4"*) DHCLIENT_PATH="$path/dhclient"; DHCLIENT_VERSION=4; break;;
++ "isc-dhclient-V3"*) DHCLIENT_PATH="$path/dhclient"; DHCLIENT_VERSION=3; break;;
+ esac
+ done
+ if test -n "${DHCLIENT_PATH}"; then
+@@ -554,6 +563,7 @@ echo
+
+ if test -n "${DHCLIENT_PATH}"; then
+ echo ISC dhclient support: ${DHCLIENT_PATH}
++ echo ISC dhclient version: ${DHCLIENT_VERSION}
+ else
+ echo ISC dhclient support: no
+ fi
+diff --git a/src/dhcp-manager/Makefile.am b/src/dhcp-manager/Makefile.am
+index f75e6b3..4c54087 100644
+--- a/src/dhcp-manager/Makefile.am
++++ b/src/dhcp-manager/Makefile.am
+@@ -29,6 +29,7 @@ libdhcp_manager_la_CPPFLAGS = \
+ -DLIBEXECDIR=\"$(libexecdir)\" \
+ -DLOCALSTATEDIR=\"$(localstatedir)\" \
+ -DDHCLIENT_PATH=\"$(DHCLIENT_PATH)\" \
++ -DDHCLIENT_V$(DHCLIENT_VERSION) \
+ -DDHCPCD_PATH=\"$(DHCPCD_PATH)\"
+
+ libdhcp_manager_la_LIBADD = \
+diff --git a/src/dhcp-manager/nm-dhcp-dhclient.c b/src/dhcp-manager/nm-dhcp-dhclient.c
+index cae7df2..13caa02 100644
+--- a/src/dhcp-manager/nm-dhcp-dhclient.c
++++ b/src/dhcp-manager/nm-dhcp-dhclient.c
+@@ -45,7 +45,11 @@ G_DEFINE_TYPE (NMDHCPDhclient, nm_dhcp_dhclient, NM_TYPE_DHCP_CLIENT)
+ #define NM_DHCP_DHCLIENT_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NM_TYPE_DHCP_DHCLIENT, NMDHCPDhclientPrivate))
+
+ #if defined(TARGET_DEBIAN) || defined(TARGET_SUSE) || defined(TARGET_MANDRIVA)
++#if defined(DHCLIENT_V3)
++#define NM_DHCLIENT_LEASE_DIR LOCALSTATEDIR "/lib/dhcp3"
++#else
+ #define NM_DHCLIENT_LEASE_DIR LOCALSTATEDIR "/lib/dhcp"
++#endif
+ #else
+ #define NM_DHCLIENT_LEASE_DIR LOCALSTATEDIR "/lib/dhclient"
+ #endif
+@@ -437,7 +441,11 @@ create_dhclient_config (const char *iface,
+ #if defined(TARGET_SUSE)
+ orig = g_strdup (SYSCONFDIR "/dhclient.conf");
+ #elif defined(TARGET_DEBIAN) || defined(TARGET_GENTOO)
++#if defined(DHCLIENT_V3)
++ orig = g_strdup (SYSCONFDIR "/dhcp3/dhclient.conf");
++#else
+ orig = g_strdup (SYSCONFDIR "/dhcp/dhclient.conf");
++#endif
+ #else
+ orig = g_strdup_printf (SYSCONFDIR "/dhclient-%s.conf", iface);
+ #endif
+@@ -499,12 +507,20 @@ dhclient_start (NMDHCPClient *client,
+ guint log_domain;
+
+ g_return_val_if_fail (priv->pid_file == NULL, -1);
+- g_return_val_if_fail (ip_opt != NULL, -1);
+
+ iface = nm_dhcp_client_get_iface (client);
+ uuid = nm_dhcp_client_get_uuid (client);
+ ipv6 = nm_dhcp_client_get_ipv6 (client);
+
++#if defined(DHCLIENT_V3)
++ if (ipv6) {
++ nm_log_warn (log_domain, "(%s): ISC dhcp3 does not support IPv6", iface);
++ return -1;
++ }
++#else
++ g_return_val_if_fail (ip_opt != NULL, -1);
++#endif
++
+ log_domain = ipv6 ? LOGD_DHCP6 : LOGD_DHCP4;
+
+ priv->pid_file = g_strdup_printf (LOCALSTATEDIR "/run/dhclient%s-%s.pid",
+@@ -536,10 +552,11 @@ dhclient_start (NMDHCPClient *client,
+
+ g_ptr_array_add (argv, (gpointer) "-d");
+
++#if !defined(DHCLIENT_V3)
+ g_ptr_array_add (argv, (gpointer) ip_opt);
+-
+ if (mode_opt)
+ g_ptr_array_add (argv, (gpointer) mode_opt);
++#endif
+
+ g_ptr_array_add (argv, (gpointer) "-sf"); /* Set script file */
+ g_ptr_array_add (argv, (gpointer) ACTION_SCRIPT_PATH );
+--
diff --git a/net-misc/networkmanager/files/networkmanager-0.8.1-dhcp-configure.patch b/net-misc/networkmanager/files/networkmanager-0.8.1-dhcp-configure.patch
new file mode 100644
index 0000000..be5e58a
--- /dev/null
+++ b/net-misc/networkmanager/files/networkmanager-0.8.1-dhcp-configure.patch
@@ -0,0 +1,64 @@
+From c050e036c3d748970945195ed0fe6c914c439481 Mon Sep 17 00:00:00 2001
+From: Dan Williams <dcbw@redhat.com>
+Date: Thu, 05 Aug 2010 20:25:42 +0000
+Subject: dhcp: make sure disabled DHCP clients aren't used (gentoo #330319)
+
+If the client was disabled with --with-dhclient=no or
+--with-dhcpcd=no, then it's corresponding _PATH will be an empty
+string. In that case we want to ignore that client completely
+since it was disabled at build time.
+---
+diff --git a/src/dhcp-manager/nm-dhcp-manager.c b/src/dhcp-manager/nm-dhcp-manager.c
+index bde874f..a1e3e5e 100644
+--- a/src/dhcp-manager/nm-dhcp-manager.c
++++ b/src/dhcp-manager/nm-dhcp-manager.c
+@@ -265,8 +265,13 @@ get_client_type (const char *client, GError **error)
+ const char *dhclient_path = NULL;
+ const char *dhcpcd_path = NULL;
+
+- dhclient_path = nm_dhcp_dhclient_get_path (DHCLIENT_PATH);
+- dhcpcd_path = nm_dhcp_dhcpcd_get_path (DHCPCD_PATH);
++ /* If a client was disabled at build-time, its *_PATH define will be
++ * an empty string.
++ */
++ if (DHCLIENT_PATH && strlen (DHCLIENT_PATH))
++ dhclient_path = nm_dhcp_dhclient_get_path (DHCLIENT_PATH);
++ if (DHCPCD_PATH && strlen (DHCPCD_PATH))
++ dhcpcd_path = nm_dhcp_dhcpcd_get_path (DHCPCD_PATH);
+
+ if (!client) {
+ if (dhclient_path)
+--
+From 91e90d9d5412223e0252ccff0e3732afae201af6 Mon Sep 17 00:00:00 2001
+From: Mike Auty <ikelos@gentoo.org>
+Date: Thu, 05 Aug 2010 20:25:12 +0000
+Subject: build: fix dhcpcd client detection
+
+---
+diff --git a/configure.ac b/configure.ac
+index 9c260fb..b1d16f2 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -344,10 +344,10 @@ case "${with_dhcpcd}" in
+ AC_MSG_CHECKING(for dhcpcd)
+ # We fully work with upstream dhcpcd-4
+ for path in /sbin /usr/sbin /usr/pkg/sbin /usr/local/sbin; do
+- test -x "${path}/dhclient" || continue
++ test -x "${path}/dhcpcd" || continue
+ case `"$path/dhcpcd" --version 2>/dev/null` in
+ "dhcpcd "[123]*);;
+- "dhcpcd "*) DHCP_CLIENT_PATH="$path/dhcpcd"; break;;
++ "dhcpcd "*) DHCPCD_PATH="$path/dhcpcd"; break;;
+ esac
+ done
+ if test -n "${DHCPCD_PATH}"; then
+@@ -364,7 +364,7 @@ if test -z "$DHCPCD_PATH" -a -z "$DHCLIENT_PATH"; then
+ # in most distros, so use it.
+ AC_MSG_WARN([Could not find a suitable DHCP client])
+ DHCLIENT_PATH=/sbin/dhclient
+- AC_MSG_WARN([Falling back to ISC dhclient, ${DHCP_CLIENT_PATH}])
++ AC_MSG_WARN([Falling back to ISC dhclient, ${DHCLIENT_PATH}])
+ fi
+ AC_SUBST(DHCLIENT_PATH)
+ AC_SUBST(DHCPCD_PATH)
+--
diff --git a/net-misc/networkmanager/files/networkmanager-0.8.1-glib-2.25.12-workaround.patch b/net-misc/networkmanager/files/networkmanager-0.8.1-glib-2.25.12-workaround.patch
new file mode 100644
index 0000000..822551d
--- /dev/null
+++ b/net-misc/networkmanager/files/networkmanager-0.8.1-glib-2.25.12-workaround.patch
@@ -0,0 +1,24 @@
+From 41804010d622dfb7c90c477076608790840149c7 Mon Sep 17 00:00:00 2001
+From: Dan Williams <dcbw@redhat.com>
+Date: Tue, 10 Aug 2010 18:46:18 +0000
+Subject: build: fix compilation with glib >= 2.25.12
+
+WOrk around glib API breakage.
+---
+diff --git a/src/tests/test-policy-hosts.c b/src/tests/test-policy-hosts.c
+index 682c996..e6775f3 100644
+--- a/src/tests/test-policy-hosts.c
++++ b/src/tests/test-policy-hosts.c
+@@ -671,7 +671,11 @@ test_find_token (void)
+ }
+ }
+
++#if GLIB_CHECK_VERSION(2,25,12)
++typedef GTestFixtureFunc TCFunc;
++#else
+ typedef void (*TCFunc)(void);
++#endif
+
+ #define TESTCASE(t, d) g_test_create_case (#t, 0, d, NULL, (TCFunc) t, NULL)
+
+--
diff --git a/net-misc/networkmanager/files/networkmanager-0.8.2-1.patch b/net-misc/networkmanager/files/networkmanager-0.8.2-1.patch
new file mode 100644
index 0000000..1df4019
--- /dev/null
+++ b/net-misc/networkmanager/files/networkmanager-0.8.2-1.patch
@@ -0,0 +1,174 @@
+From d60a988518cb0851488bc21732271a971877cdcd Mon Sep 17 00:00:00 2001
+From: Dan Williams <dcbw@redhat.com>
+Date: Thu, 18 Nov 2010 22:30:00 +0000
+Subject: dhcpcd: prevent dhcpcd from messing with routing (bgo #634983)
+
+Since NM is already handling that.
+---
+diff --git a/src/dhcp-manager/nm-dhcp-dhcpcd.c b/src/dhcp-manager/nm-dhcp-dhcpcd.c
+index 378a97b..4fb703c 100644
+--- a/src/dhcp-manager/nm-dhcp-dhcpcd.c
++++ b/src/dhcp-manager/nm-dhcp-dhcpcd.c
+@@ -128,6 +128,8 @@ real_ip4_start (NMDHCPClient *client,
+
+ g_ptr_array_add (argv, (gpointer) "-L"); /* Disable built-in IPv4LL since we use avahi-autoipd */
+
++ g_ptr_array_add (argv, (gpointer) "-G"); /* Let NM handle routing */
++
+ g_ptr_array_add (argv, (gpointer) "-c"); /* Set script file */
+ g_ptr_array_add (argv, (gpointer) ACTION_SCRIPT_PATH );
+
+--
+cgit v0.8.3-6-g21f6
+From 83e02840b5ce1cf8c122cc70918ddd57396c91db Mon Sep 17 00:00:00 2001
+From: Dan Williams <dcbw@redhat.com>
+Date: Wed, 24 Nov 2010 04:17:21 +0000
+Subject: core: suppress error message when user settings service is not active
+
+Don't bother trying to initialize the user settings proxy when it
+isn't even active. Would trigger a warning to syslog if PolicyKit
+permissions changed via changes to /usr/share/polkit-1/actions/.
+---
+diff --git a/src/nm-manager.c b/src/nm-manager.c
+index 48f2173..afcc6ad 100644
+--- a/src/nm-manager.c
++++ b/src/nm-manager.c
+@@ -1356,6 +1356,12 @@ user_proxy_init (NMManager *self)
+ g_return_if_fail (self != NULL);
+ g_return_if_fail (priv->user_proxy == NULL);
+
++ /* Don't try to initialize the user settings proxy if the user
++ * settings service doesn't actually exist.
++ */
++ if (!nm_dbus_manager_name_has_owner (priv->dbus_mgr, NM_DBUS_SERVICE_USER_SETTINGS))
++ return;
++
+ bus = nm_dbus_manager_get_connection (priv->dbus_mgr);
+ priv->user_proxy = dbus_g_proxy_new_for_name_owner (bus,
+ NM_DBUS_SERVICE_USER_SETTINGS,
+@@ -3975,8 +3981,7 @@ nm_manager_start (NMManager *self)
+ * they will be queried when the user settings service shows up on the
+ * bus in nm_manager_name_owner_changed().
+ */
+- if (nm_dbus_manager_name_has_owner (priv->dbus_mgr, NM_DBUS_SERVICE_USER_SETTINGS))
+- user_proxy_init (self);
++ user_proxy_init (self);
+
+ nm_udev_manager_query_devices (priv->udev_mgr);
+ bluez_manager_resync_devices (self);
+--
+cgit v0.8.3-6-g21f6
+From 45ae52523158f4e7c0cc3fb5af56859c41512f66 Mon Sep 17 00:00:00 2001
+From: Jiří Klimeš <jklimes@redhat.com>
+Date: Wed, 24 Nov 2010 11:51:08 +0000
+Subject: dns: fix a crash due to uninitialized nis_domain (novell #655685)
+
+Reported and tested by Raymond Wooninck. Thanks!
+---
+diff --git a/src/dns-manager/nm-dns-manager.c b/src/dns-manager/nm-dns-manager.c
+index 7a6fbbc..b0cdcc2 100644
+--- a/src/dns-manager/nm-dns-manager.c
++++ b/src/dns-manager/nm-dns-manager.c
+@@ -583,6 +583,7 @@ update_dns (NMDnsManager *self,
+ rc.nameservers = g_ptr_array_new ();
+ rc.domain = NULL;
+ rc.searches = g_ptr_array_new ();
++ rc.nis_domain = NULL;
+ rc.nis_servers = g_ptr_array_new ();
+
+ if (priv->ip4_vpn_config)
+--
+cgit v0.8.3-6-g21f6
+From 71fcccbacd51e939f168d44301393301e9dcb5fe Mon Sep 17 00:00:00 2001
+From: Jiří Klimeš <jklimes@redhat.com>
+Date: Mon, 13 Dec 2010 19:55:02 +0000
+Subject: libnm-util: fix a memory leaks in nm_setting_to_string()
+
+---
+diff --git a/libnm-util/nm-setting.c b/libnm-util/nm-setting.c
+index 06994c7..190199c 100644
+--- a/libnm-util/nm-setting.c
++++ b/libnm-util/nm-setting.c
+@@ -620,6 +620,8 @@ nm_setting_to_string (NMSetting *setting)
+ is_serializable = prop_spec->flags & NM_SETTING_PARAM_SERIALIZE;
+ is_default = g_param_value_defaults (prop_spec, &value);
+
++ g_value_unset (&value);
++
+ if (is_serializable || is_default) {
+ g_string_append (string, " (");
+
+--
+cgit v0.8.3-6-g21f6
+From 7c2ba8a4a55899e4f4bd5bd243e10ce8a0c0f13a Mon Sep 17 00:00:00 2001
+From: Jiří Klimeš <jklimes@redhat.com>
+Date: Thu, 16 Dec 2010 12:49:28 +0000
+Subject: libnm-util: fix nm_utils_security_valid() checks for Ad-Hoc APs (rh #632123)
+
+Without the fix fake Ad-Hoc APs created by nm-applet's "Create New Wireless
+Network..." don't pass the check and nm-applet can crash.
+---
+diff --git a/libnm-util/nm-utils.c b/libnm-util/nm-utils.c
+index ce13da3..9c3662f 100644
+--- a/libnm-util/nm-utils.c
++++ b/libnm-util/nm-utils.c
+@@ -1269,14 +1269,24 @@ nm_utils_security_valid (NMUtilsSecurityType type,
+ if (!(wifi_caps & NM_WIFI_DEVICE_CAP_WPA))
+ return FALSE;
+ if (have_ap) {
+- /* Ad-Hoc WPA APs won't necessarily have the PSK flag set */
+- if ((ap_wpa & NM_802_11_AP_SEC_KEY_MGMT_PSK) || adhoc) {
+- if ( (ap_wpa & NM_802_11_AP_SEC_PAIR_TKIP)
++ /* Ad-Hoc WPA APs won't necessarily have the PSK flag set, and
++ * they don't have any pairwise ciphers. */
++ if (adhoc) {
++ if ( (ap_wpa & NM_802_11_AP_SEC_GROUP_TKIP)
+ && (wifi_caps & NM_WIFI_DEVICE_CAP_CIPHER_TKIP))
+ return TRUE;
+- if ( (ap_wpa & NM_802_11_AP_SEC_PAIR_CCMP)
++ if ( (ap_wpa & NM_802_11_AP_SEC_GROUP_CCMP)
+ && (wifi_caps & NM_WIFI_DEVICE_CAP_CIPHER_CCMP))
+ return TRUE;
++ } else {
++ if (ap_wpa & NM_802_11_AP_SEC_KEY_MGMT_PSK) {
++ if ( (ap_wpa & NM_802_11_AP_SEC_PAIR_TKIP)
++ && (wifi_caps & NM_WIFI_DEVICE_CAP_CIPHER_TKIP))
++ return TRUE;
++ if ( (ap_wpa & NM_802_11_AP_SEC_PAIR_CCMP)
++ && (wifi_caps & NM_WIFI_DEVICE_CAP_CIPHER_CCMP))
++ return TRUE;
++ }
+ }
+ return FALSE;
+ }
+@@ -1285,14 +1295,22 @@ nm_utils_security_valid (NMUtilsSecurityType type,
+ if (!(wifi_caps & NM_WIFI_DEVICE_CAP_RSN))
+ return FALSE;
+ if (have_ap) {
+- /* Ad-Hoc WPA APs won't necessarily have the PSK flag set */
+- if ((ap_rsn & NM_802_11_AP_SEC_KEY_MGMT_PSK) || adhoc) {
+- if ( (ap_rsn & NM_802_11_AP_SEC_PAIR_TKIP)
+- && (wifi_caps & NM_WIFI_DEVICE_CAP_CIPHER_TKIP))
++ /* Ad-Hoc WPA APs won't necessarily have the PSK flag set, and
++ * they don't have any pairwise ciphers, nor any RSA flags yet. */
++ if (adhoc) {
++ if (wifi_caps & NM_WIFI_DEVICE_CAP_CIPHER_TKIP)
+ return TRUE;
+- if ( (ap_rsn & NM_802_11_AP_SEC_PAIR_CCMP)
+- && (wifi_caps & NM_WIFI_DEVICE_CAP_CIPHER_CCMP))
++ if (wifi_caps & NM_WIFI_DEVICE_CAP_CIPHER_CCMP)
+ return TRUE;
++ } else {
++ if (ap_rsn & NM_802_11_AP_SEC_KEY_MGMT_PSK) {
++ if ( (ap_rsn & NM_802_11_AP_SEC_PAIR_TKIP)
++ && (wifi_caps & NM_WIFI_DEVICE_CAP_CIPHER_TKIP))
++ return TRUE;
++ if ( (ap_rsn & NM_802_11_AP_SEC_PAIR_CCMP)
++ && (wifi_caps & NM_WIFI_DEVICE_CAP_CIPHER_CCMP))
++ return TRUE;
++ }
+ }
+ return FALSE;
+ }
+--
+cgit v0.8.3-6-g21f6
diff --git a/net-misc/networkmanager/files/networkmanager-0.8.2-confchanges.patch b/net-misc/networkmanager/files/networkmanager-0.8.2-confchanges.patch
new file mode 100644
index 0000000..a5acc38
--- /dev/null
+++ b/net-misc/networkmanager/files/networkmanager-0.8.2-confchanges.patch
@@ -0,0 +1,25 @@
+--- src/NetworkManager.conf~ 2010-11-03 13:04:05.000000000 +0000
++++ src/NetworkManager.conf 2010-12-17 12:12:48.391177001 +0000
+@@ -57,6 +57,9 @@
+ <allow send_destination="org.freedesktop.NetworkManager"
+ send_interface="org.freedesktop.NetworkManager.VPN.Connection"/>
+
++ <allow send_destination="org.freedesktop.NetworkManager"
++ send_interface="org.freedesktop.NetworkManager.VPN.Plugin"/>
++
+ <deny send_destination="org.freedesktop.NetworkManager"
+ send_interface="org.freedesktop.NetworkManager"
+ send_member="SetLogging"/>
+@@ -73,6 +76,12 @@
+ send_interface="org.freedesktop.NetworkManager"
+ send_member="wake"/>
+ </policy>
++ <policy group="plugdev">
++ <allow send_destination="org.freedesktop.NetworkManager"/>
++
++ <deny send_destination="org.freedesktop.NetworkManager"
++ send_interface="org.freedesktop.NetworkManager.PPP"/>
++ </policy>
+ <policy context="default">
+ <deny own="org.freedesktop.NetworkManager"/>
+ <deny own="org.freedesktop.NetworkManagerSystemSettings"/>
diff --git a/net-misc/networkmanager/files/networkmanager-0.8.2-shared-connection.patch b/net-misc/networkmanager/files/networkmanager-0.8.2-shared-connection.patch
new file mode 100644
index 0000000..3536924
--- /dev/null
+++ b/net-misc/networkmanager/files/networkmanager-0.8.2-shared-connection.patch
@@ -0,0 +1,117 @@
+From 4a495b961aab736fa2881057ecf8a7c5044fb4a3 Mon Sep 17 00:00:00 2001
+From: Mu Qiao <qiaomuf@gentoo.org>
+Date: Wed, 5 Jan 2011 13:30:08 +0800
+Subject: [PATCH] Support shared and link-local method for ipv4
+ Signed-off-by: Mu Qiao <qiaomuf@gentoo.org>
+
+---
+ system-settings/plugins/ifnet/connection_parser.c | 49 ++++++++++++++++-----
+ system-settings/plugins/ifnet/net_utils.c | 4 ++
+ 2 files changed, 42 insertions(+), 11 deletions(-)
+
+diff --git a/system-settings/plugins/ifnet/connection_parser.c b/system-settings/plugins/ifnet/connection_parser.c
+index f9fae51..def5c4a 100644
+--- a/system-settings/plugins/ifnet/connection_parser.c
++++ b/system-settings/plugins/ifnet/connection_parser.c
+@@ -557,7 +557,7 @@ make_ip4_setting (NMConnection * connection, gchar * conn_name, GError ** error)
+
+ NMSettingIP4Config *ip4_setting =
+ NM_SETTING_IP4_CONFIG (nm_setting_ip4_config_new ());
+- gchar *value;
++ gchar *value, *method = NULL;
+ gboolean is_static_block = is_static_ip4 (conn_name);
+ ip_block *iblock = NULL;
+
+@@ -569,12 +569,36 @@ make_ip4_setting (NMConnection * connection, gchar * conn_name, GError ** error)
+ && strstr (value, "nogateway") ? TRUE : FALSE, NULL);
+
+ if (!is_static_block) {
+- g_object_set (ip4_setting,
+- NM_SETTING_IP4_CONFIG_METHOD,
+- NM_SETTING_IP4_CONFIG_METHOD_AUTO,
+- NM_SETTING_IP4_CONFIG_NEVER_DEFAULT, FALSE, NULL);
+- PLUGIN_PRINT (IFNET_PLUGIN_NAME, "Using DHCP for %s",
+- conn_name);
++ method = ifnet_get_data (conn_name, "config");
++ if (!strcmp (method, "dhcp"))
++ g_object_set (ip4_setting,
++ NM_SETTING_IP4_CONFIG_METHOD,
++ NM_SETTING_IP4_CONFIG_METHOD_AUTO,
++ NM_SETTING_IP4_CONFIG_NEVER_DEFAULT, FALSE, NULL);
++ else if (!strcmp (method, "autoip")){
++ g_object_set (ip4_setting,
++ NM_SETTING_IP4_CONFIG_METHOD,
++ NM_SETTING_IP4_CONFIG_METHOD_LINK_LOCAL,
++ NM_SETTING_IP4_CONFIG_NEVER_DEFAULT, FALSE, NULL);
++ nm_connection_add_setting (connection, NM_SETTING (ip4_setting));
++ return;
++ }
++ else if (!strcmp (method, "shared")){
++ g_object_set (ip4_setting,
++ NM_SETTING_IP4_CONFIG_METHOD,
++ NM_SETTING_IP4_CONFIG_METHOD_SHARED,
++ NM_SETTING_IP4_CONFIG_NEVER_DEFAULT, FALSE, NULL);
++ nm_connection_add_setting (connection, NM_SETTING (ip4_setting));
++ return;
++ }
++ else {
++ g_set_error (error, ifnet_plugin_error_quark (), 0,
++ "Unknown config for %s", conn_name);
++ g_object_unref (ip4_setting);
++ return;
++ }
++ PLUGIN_PRINT (IFNET_PLUGIN_NAME, "Using %s method for %s",
++ method, conn_name);
+ } else {
+ iblock = convert_ip4_config_block (conn_name);
+ if (!iblock) {
+@@ -625,7 +649,7 @@ make_ip4_setting (NMConnection * connection, gchar * conn_name, GError ** error)
+ }
+
+ /* add dhcp hostname and client id */
+- if (!is_static_block) {
++ if (method && !strcmp (method, "dhcp")) {
+ gchar *dhcp_hostname, *client_id;
+
+ get_dhcp_hostname_and_client_id (&dhcp_hostname, &client_id);
+@@ -712,7 +736,6 @@ make_ip4_setting (NMConnection * connection, gchar * conn_name, GError ** error)
+ iblock = iblock->next;
+ destroy_ip_block (current_iblock);
+ }
+-
+ /* Finally add setting to connection */
+ nm_connection_add_setting (connection, NM_SETTING (ip4_setting));
+ }
+@@ -2443,8 +2466,12 @@ write_ip4_setting (NMConnection * connection, gchar * conn_name,
+ }
+ ifnet_set_data (conn_name, "config", ips->str);
+ g_string_free (ips, TRUE);
+- } else
+- ifnet_set_data (conn_name, "config", "dhcp");
++ } else if (!strcmp (value, NM_SETTING_IP4_CONFIG_METHOD_SHARED))
++ ifnet_set_data (conn_name, "config", "shared");
++ else if (!strcmp (value, NM_SETTING_IP4_CONFIG_METHOD_LINK_LOCAL))
++ ifnet_set_data (conn_name, "config", "autoip");
++ else
++ ifnet_set_data (conn_name, "config", "dhcp");
+
+ /* DNS Servers */
+ ifnet_set_data (conn_name, "dns_servers", NULL);
+diff --git a/system-settings/plugins/ifnet/net_utils.c b/system-settings/plugins/ifnet/net_utils.c
+index 2dc253c..7e52f10 100644
+--- a/system-settings/plugins/ifnet/net_utils.c
++++ b/system-settings/plugins/ifnet/net_utils.c
+@@ -278,6 +278,10 @@ is_static_ip4 (gchar * conn_name)
+
+ if (!data)
+ return FALSE;
++ if (!strcmp (data, "shared"))
++ return FALSE;
++ if (!strcmp (data, "autoip"))
++ return FALSE;
+ dhcp6 = strstr (data, "dhcp6");
+ if (dhcp6) {
+ gchar *dhcp4;
+--
+1.7.2.2
+
diff --git a/net-misc/networkmanager/networkmanager-0.8.2-r100.ebuild b/net-misc/networkmanager/networkmanager-0.8.2-r100.ebuild
new file mode 100644
index 0000000..8094376
--- /dev/null
+++ b/net-misc/networkmanager/networkmanager-0.8.2-r100.ebuild
@@ -0,0 +1,152 @@
+# Copyright 1999-2011 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: $
+
+EAPI="2"
+
+inherit gnome.org linux-info
+
+# NetworkManager likes itself with capital letters
+MY_PN=${PN/networkmanager/NetworkManager}
+MY_P=${MY_PN}-${PV}
+
+DESCRIPTION="Network configuration and management in an easy way. Desktop environment independent."
+HOMEPAGE="http://www.gnome.org/projects/NetworkManager/"
+SRC_URI="${SRC_URI//${PN}/${MY_PN}}"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~ppc ~ppc64 ~x86"
+IUSE="avahi bluetooth doc nss gnutls dhclient dhcpcd kernel_linux resolvconf connection-sharing"
+
+RDEPEND=">=sys-apps/dbus-1.2
+ >=dev-libs/dbus-glib-0.75
+ >=net-wireless/wireless-tools-28_pre9
+ >=sys-fs/udev-145[extras]
+ >=dev-libs/glib-2.18
+ >=sys-auth/polkit-0.92
+ >=dev-libs/libnl-1.1
+ >=net-misc/modemmanager-0.4
+ >=net-wireless/wpa_supplicant-0.5.10[dbus]
+ bluetooth? ( net-wireless/bluez )
+ || ( sys-libs/e2fsprogs-libs <sys-fs/e2fsprogs-1.41.0 )
+ avahi? ( net-dns/avahi[autoipd] )
+ gnutls? (
+ nss? ( >=dev-libs/nss-3.11 )
+ !nss? ( dev-libs/libgcrypt
+ net-libs/gnutls ) )
+ !gnutls? ( >=dev-libs/nss-3.11 )
+ dhclient? (
+ dhcpcd? ( >=net-misc/dhcpcd-4.0.0_rc3 )
+ !dhcpcd? ( net-misc/dhcp ) )
+ !dhclient? ( >=net-misc/dhcpcd-4.0.0_rc3 )
+ resolvconf? ( net-dns/openresolv )
+ connection-sharing? (
+ net-dns/dnsmasq
+ net-firewall/iptables )"
+
+DEPEND="${RDEPEND}
+ dev-util/pkgconfig
+ dev-util/intltool
+ >=net-dialup/ppp-2.4.5
+ 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() {
+ # dbus policy patch
+ epatch "${FILESDIR}/${P}-confchanges.patch"
+ # accept "gw" in /etc/conf.d/net (bug #339215)
+ epatch "${FILESDIR}/${P}-accept-gw.patch"
+ # wrt bug #350476
+ epatch "${FILESDIR}/${P}-shared-connection.patch"
+ # Backports #1
+ epatch "${FILESDIR}/${P}-1.patch"
+}
+
+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_with doc docs)
+ $(use_with resolvconf)"
+
+ # default is dhcpcd (if none or both are specified), ISC dchclient otherwise
+ if use dhclient ; then
+ if use dhcpcd ; then
+ ECONF="${ECONF} --with-dhcpcd --without-dhclient"
+ else
+ ECONF="${ECONF} --with-dhclient --without-dhcpcd"
+ fi
+ else
+ ECONF="${ECONF} --with-dhcpcd --without-dhclient"
+ fi
+
+ # default is NSS (if none or both are specified), GnuTLS otherwise
+ if use gnutls ; then
+ if use nss ; then
+ ECONF="${ECONF} --with-crypto=nss"
+ else
+ ECONF="${ECONF} --with-crypto=gnutls"
+ fi
+ else
+ ECONF="${ECONF} --with-crypto=nss"
+ fi
+
+ econf ${ECONF}
+}
+
+src_install() {
+ emake DESTDIR="${D}" install || die "emake install failed"
+
+ # 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-ifnet" 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 ""
+}