diff options
author | Mu Qiao <qiaomuf@gentoo.org> | 2011-01-05 13:41:41 +0800 |
---|---|---|
committer | Mu Qiao <qiaomuf@gentoo.org> | 2011-01-05 14:24:54 +0800 |
commit | 4ca892adf4093512be9686f0e987822519116dcf (patch) | |
tree | 4f2dc4d29b7f3959b3fa813b2f7418420ca4c0a7 | |
parent | add aliedit (diff) | |
download | qiaomuf-4ca892adf4093512be9686f0e987822519116dcf.tar.gz qiaomuf-4ca892adf4093512be9686f0e987822519116dcf.tar.bz2 qiaomuf-4ca892adf4093512be9686f0e987822519116dcf.zip |
Add support for shared connection
Signed-off-by: Mu Qiao <qiaomuf@gentoo.org>
16 files changed, 1048 insertions, 28 deletions
@@ -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 "" +} |