diff options
author | 2011-03-09 13:41:24 +0000 | |
---|---|---|
committer | 2011-03-09 13:41:24 +0000 | |
commit | 9477194d14165f3b991c76de803043af707bf9d6 (patch) | |
tree | 25d929f40b54763fc8965c1a235a86b880752fc8 | |
parent | Fix compilation and installation issues with 6.40.5 release (diff) | |
download | dagger-9477194d14165f3b991c76de803043af707bf9d6.tar.gz dagger-9477194d14165f3b991c76de803043af707bf9d6.tar.bz2 dagger-9477194d14165f3b991c76de803043af707bf9d6.zip |
Add NetworkManager 0.9 beta1
12 files changed, 179 insertions, 884 deletions
diff --git a/net-misc/networkmanager/Manifest b/net-misc/networkmanager/Manifest index fec6d0d..cff00ab 100644 --- a/net-misc/networkmanager/Manifest +++ b/net-misc/networkmanager/Manifest @@ -1,11 +1,7 @@ -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.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-fix-ifnet1.patch 12412 RMD160 9a1d7aac38e5ad6ea05cfd3f2b630a2441ed8d24 SHA1 70f4a874a3c7df88496fc178b6b1486de118cd0a SHA256 d586edbdca90a7ae6a667497d6edf87cd94fb49a20f69df8b8f3bba349dab12e -AUX networkmanager-0.8.1-fix-ifnet2.patch 1080 RMD160 74b692605e05bb228b5e9cbf9aa26a0c51e3427b SHA1 262aa922872876c6bdafdf2f46bf53e6dce33cf2 SHA256 023bfa5f900347bb9391752c6229badd43a77fd1d5b4c0a5fa1833739e1b111f -AUX networkmanager-0.8.1-fix-ifnet3.patch 444 RMD160 a25c11ac6e8dd7856aaf94eb27c4d53ae6ed5135 SHA1 1ca71c290405a833e6fcfda43e31383fb97834ec SHA256 2dc720dcbcc5f602499b0ef91cb6f1e53905c1cd4d6175d6acb10ade7a13f6e8 -AUX networkmanager-0.8.1-glib-2.25.12-workaround.patch 663 RMD160 b4397b17a6148244dedd341b35185c07ca267f06 SHA1 926acbd76076750ab4ec48ac34fe73679693a4ca SHA256 a00523ad7d6bdced76be82b980788af4c313fc59aff8b9d258343e17ad6bf969 +AUX networkmanager-0.9_beta1-fix-tests.patch 1166 RMD160 34f50bc37043a4beba0e30015e73841bb265aeef SHA1 28592f3c7fdebc7838a476b0436bb58e4e561b0a SHA256 a16a3ad7eb1a1a8a3562fbc15b200cfd22fc9444e410ba94399dcff5627f9357 AUX nm-system-settings.conf 70 RMD160 c0d2be147383999b62cead86ab4333169e4ef277 SHA1 679ec8052b610969c148a2d34cd4da7a41484a76 SHA256 34f53d9ac1ad65eda6942dc3059117f60f6321059ca23f4fbfcc2f2edcae151f +DIST NetworkManager-0.8.995.tar.bz2 1793297 RMD160 47c51a3180d5c26c2fbfca183d1d70a0cedaab21 SHA1 b6f1dd23e8976f7f2c68b303081bee0ad8991d58 SHA256 821d37ac75c5327c432a855e26687065459f2b42139f82feebfa6696750ad88a +DIST ifnet-0.9.tar.bz2 5351 RMD160 a936dcd50fca5d8b89cd119223f4c4c9c6a8fc68 SHA1 f2fe16ee3b36698977ac48bbd17d60373336214d SHA256 e23addc579ec2f40ad8babb5073f15abc5f2368c6313e4a983999c54ef9479ed +EBUILD networkmanager-0.9_beta1.ebuild 4188 RMD160 35d941347ea7e707b04d34768e1efd13e401c60f SHA1 438383c061609c272b8b490ce46d1f34dba765b9 SHA256 4bc258d55c9d5560c981d18e3e3bf6a1c0a8a4ef8c52ad184688f47db65e0f20 MISC ChangeLog 13476 RMD160 256bda1edb3eee9931ba76cc17965441895ad031 SHA1 2437530f031257e8d6692f8a6e1ea256159bcdca SHA256 a74203459cecbbb1f6ebd9a3e3158783b5fed1c0eee70053569849472aa5224f -MISC metadata.xml 969 RMD160 c16683ef7fed4b5603029ae39f5872032ec37554 SHA1 813e0b48a78ce50d5257030507d22fd0e9452161 SHA256 e4375eae4ff0d47386780e4d29575e6581f7c9b89168372bb1bb7713a452c02f +MISC metadata.xml 1170 RMD160 287261f1bec5dcf47ceaa9ef0a03e34237c21aec SHA1 9eca24bdf6065a9e2da43a0a41bde0f80b8e0fbe SHA256 c4092b4609340b5e90074fd7574f702c2a035d61c488d477db4c2d024ce5c1b3 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 deleted file mode 100644 index 321be0e..0000000 --- a/net-misc/networkmanager/files/networkmanager-0.8.1-CVE-2010-1172.patch +++ /dev/null @@ -1,177 +0,0 @@ -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 deleted file mode 100644 index e714569..0000000 --- a/net-misc/networkmanager/files/networkmanager-0.8.1-confchanges.patch +++ /dev/null @@ -1,22 +0,0 @@ ---- 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.patch b/net-misc/networkmanager/files/networkmanager-0.8.1-dhclient3.patch deleted file mode 100644 index e00a379..0000000 --- a/net-misc/networkmanager/files/networkmanager-0.8.1-dhclient3.patch +++ /dev/null @@ -1,129 +0,0 @@ -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 deleted file mode 100644 index be5e58a..0000000 --- a/net-misc/networkmanager/files/networkmanager-0.8.1-dhcp-configure.patch +++ /dev/null @@ -1,64 +0,0 @@ -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-fix-ifnet1.patch b/net-misc/networkmanager/files/networkmanager-0.8.1-fix-ifnet1.patch deleted file mode 100644 index b6eda01..0000000 --- a/net-misc/networkmanager/files/networkmanager-0.8.1-fix-ifnet1.patch +++ /dev/null @@ -1,414 +0,0 @@ -From 283dba290ad1dd98526080c2d1ce565c2ff64c41 Mon Sep 17 00:00:00 2001 -From: Mu Qiao <qiaomuf@gmail.com> -Date: Wed, 18 Aug 2010 17:38:38 +0800 -Subject: [PATCH] reading & writing: reserve functions defined in /etc/conf.d/net - Signed-off-by: Mu Qiao <qiaomuf@gmail.com> - ---- - system-settings/plugins/ifnet/net_parser.c | 173 +++++++++++++++++++----- - system-settings/plugins/ifnet/tests/net | 80 +++++++++++ - system-settings/plugins/ifnet/tests/test_all.c | 1 + - 3 files changed, 222 insertions(+), 32 deletions(-) - -diff --git a/system-settings/plugins/ifnet/net_parser.c b/system-settings/plugins/ifnet/net_parser.c -index d4bc461..b4a381d 100644 ---- a/system-settings/plugins/ifnet/net_parser.c -+++ b/system-settings/plugins/ifnet/net_parser.c -@@ -31,6 +31,9 @@ static GHashTable *conn_table; - /* Save global settings which are used for writing*/ - static GHashTable *global_settings_table; - -+/* Save functions */ -+static GList *functions_list; -+ - /* Used to decide whether to write changes to file*/ - static gboolean net_parser_data_changed = FALSE; - -@@ -213,6 +216,71 @@ ifnet_get_global_setting (gchar * group, gchar * key) - return result; - } - -+static void -+strip_function (GIOChannel * channel, gchar * line) -+{ -+ -+ int counter = 0; -+ gchar *p, *tmp; -+ gboolean begin = FALSE; -+ GString *function_str = g_string_new (line); -+ -+ g_string_append (function_str, "\n"); -+ while (1) { -+ p = line; -+ while (*p != '\0') { -+ if (*p == '{') { -+ counter++; -+ begin = TRUE; -+ } else if (*p == '}') -+ counter--; -+ p++; -+ } -+ if (begin && counter == 0) { -+ g_free (line); -+ goto done; -+ } -+ while (1) { -+ g_free (line); -+ if (g_io_channel_read_line -+ (channel, &line, NULL, NULL, -+ NULL) == G_IO_STATUS_EOF) -+ goto done; -+ g_string_append (function_str, line); -+ tmp = g_strdup (line); -+ g_strstrip (tmp); -+ if (tmp[0] != '#' && tmp[0] != '\0') { -+ g_free (tmp); -+ break; -+ } else -+ g_free (tmp); -+ } -+ } -+ done: -+ functions_list = -+ g_list_append (functions_list, g_strdup (function_str->str)); -+ g_string_free (function_str, TRUE); -+} -+ -+static gboolean -+is_function (gchar * line) -+{ -+ static gchar *func_names[] = -+ { "preup", "predown", "postup", "postdown", "failup", "faildown", -+ NULL, -+ }; -+ int i; -+ -+ for (i = 0; func_names[i]; i++) { -+ if (g_str_has_prefix (line, func_names[i])) { -+ PLUGIN_PRINT (IFNET_PLUGIN_NAME, -+ "Ignoring function: %s", func_names[i]); -+ return TRUE; -+ } -+ } -+ return FALSE; -+} -+ - gboolean - ifnet_init (gchar * config_file) - { -@@ -229,12 +297,13 @@ ifnet_init (gchar * config_file) - - conn_table = g_hash_table_new (g_str_hash, g_str_equal); - global_settings_table = g_hash_table_new (g_str_hash, g_str_equal); -+ functions_list = NULL; - - if (g_file_test (config_file, G_FILE_TEST_IS_REGULAR)) - channel = g_io_channel_new_file (config_file, "r", NULL); - if (channel == NULL) { -- PLUGIN_WARN (IFNET_PLUGIN_NAME, "Error: Can't open %s\n", -- config_file); -+ PLUGIN_WARN (IFNET_PLUGIN_NAME, -+ "Error: Can't open %s\n", config_file); - return FALSE; - } - -@@ -244,6 +313,10 @@ ifnet_init (gchar * config_file) - g_strstrip (line); - /* convert multiple lines to a complete line and - * pass it to init_block_by_line() */ -+ if (is_function (line)) { -+ strip_function (channel, line); -+ continue; -+ } - if (line[0] != '#' && line[0] != '\0') { - gchar *pos = NULL; - -@@ -255,15 +328,16 @@ ifnet_init (gchar * config_file) - *pos = '\0'; - g_strstrip (line); - if (line[0] != '\0') { -- g_string_append_printf (buf, " %s", -- line); -+ g_string_append_printf (buf, -+ " %s", line); - } - g_free (line); - if (!complete) - continue; - } else { -- complete = (g_strrstr (line, "(") != NULL -- && g_strrstr (line, ")") != NULL) -+ complete = -+ (g_strrstr (line, "(") != NULL -+ && g_strrstr (line, ")") != NULL) - || g_strrstr (line, "(") == NULL; - if ((pos = strchr (line, '#')) != NULL) - *pos = '\0'; -@@ -305,8 +379,8 @@ ifnet_set_data (gchar * conn_name, gchar * key, gchar * value) - GHashTable *conn = g_hash_table_lookup (conn_table, conn_name); - - if (!conn) { -- PLUGIN_WARN (IFNET_PLUGIN_NAME, "%s does not exsit!", -- conn_name); -+ PLUGIN_WARN (IFNET_PLUGIN_NAME, -+ "%s does not exsit!", conn_name); - return; - } - /* Remove existing key value pair */ -@@ -371,8 +445,8 @@ format_ips (gchar * value, gchar ** out_line, gchar * key, gchar * name) - // Multiple lines - g_string_append_printf (formated_string, "%s_%s=(\n", key, name); - for (i = 0; i < length; i++) -- g_string_append_printf (formated_string, "\t\"%s\"\n", -- ipset[i]); -+ g_string_append_printf (formated_string, -+ "\t\"%s\"\n", ipset[i]); - g_string_append (formated_string, ")\n"); - *out_line = g_strdup (formated_string->str); - done: -@@ -387,6 +461,7 @@ ifnet_flush_to_file (gchar * config_file) - GError **error = NULL; - gpointer key, value, name, network; - GHashTableIter iter, iter_network; -+ GList *list_iter; - gchar *out_line; - gsize bytes_written; - gboolean result = FALSE; -@@ -412,22 +487,22 @@ ifnet_flush_to_file (gchar * config_file) - while (g_hash_table_iter_next (&iter, &key, &value)) { - out_line = - g_strdup_printf ("%s=%s\n", (gchar *) key, (gchar *) value); -- g_io_channel_write_chars (channel, out_line, -1, &bytes_written, -- error); -+ g_io_channel_write_chars (channel, out_line, -1, -+ &bytes_written, error); - if (bytes_written == 0 || (error && *error)) - break; - g_free (out_line); - } - if (error && *error) { -- PLUGIN_WARN (IFNET_PLUGIN_NAME, "Found error: %s", -- (*error)->message); -+ PLUGIN_WARN (IFNET_PLUGIN_NAME, -+ "Found error: %s", (*error)->message); - goto done; - } -+ -+ /* Writing connection data */ - g_io_channel_write_chars (channel, - "\n###### Connection Configuration ######\n", - -1, &bytes_written, error); -- -- /* Writing connection data */ - g_hash_table_iter_init (&iter, conn_table); - while (g_hash_table_iter_next (&iter, &name, &network)) { - g_hash_table_iter_init (&iter_network, (GHashTable *) network); -@@ -439,22 +514,26 @@ ifnet_flush_to_file (gchar * config_file) - if (!g_str_has_prefix ((gchar *) key, "name") - && !g_str_has_prefix ((gchar *) key, "type")) { - /* These keys contain brackets */ -- if (strcmp ((gchar *) key, "config") == 0 -- || strcmp ((gchar *) key, "routes") == 0 -- || strcmp ((gchar *) key, "pppd") == 0 -+ if (strcmp -+ ((gchar *) key, -+ "config") == 0 -+ || strcmp ((gchar *) key, -+ "routes") == 0 -+ || strcmp ((gchar *) key, -+ "pppd") == 0 - || strcmp ((gchar *) key, "chat") == 0) -- format_ips (value, &out_line, -- (gchar *) key, -- (gchar *) name); -+ format_ips (value, &out_line, (gchar *) -+ key, (gchar *) -+ name); - else - out_line = - g_strdup_printf - ("%s_%s=\"%s\"\n", -- (gchar *) key, (gchar *) name, -- (gchar *) value); -- g_io_channel_write_chars (channel, out_line, -1, -- &bytes_written, -- error); -+ (gchar *) key, -+ (gchar *) name, (gchar *) value); -+ g_io_channel_write_chars -+ (channel, out_line, -1, -+ &bytes_written, error); - if (bytes_written == 0 || (error && *error)) - break; - g_free (out_line); -@@ -462,14 +541,38 @@ ifnet_flush_to_file (gchar * config_file) - } - } - if (error && *error) { -- PLUGIN_WARN (IFNET_PLUGIN_NAME, "Found error: %s", -- (*error)->message); -+ PLUGIN_WARN (IFNET_PLUGIN_NAME, -+ "Found error: %s", (*error)->message); - goto done; - } -+ -+ /* Writing reserved functions */ -+ if (functions_list) { -+ g_io_channel_write_chars (channel, -+ "\n###### Reserved Functions ######\n", -+ -1, &bytes_written, error); -+ /* Writing functions */ -+ for (list_iter = functions_list; list_iter; -+ list_iter = g_list_next (list_iter)) { -+ out_line = -+ g_strdup_printf ("%s\n", (gchar *) list_iter->data); -+ g_io_channel_write_chars (channel, out_line, -1, -+ &bytes_written, error); -+ if (bytes_written == 0 || (error && *error)) -+ break; -+ g_free (out_line); -+ } -+ if (error && *error) { -+ PLUGIN_WARN (IFNET_PLUGIN_NAME, -+ "Found error: %s", (*error)->message); -+ goto done; -+ } -+ } -+ - g_io_channel_flush (channel, error); - if (error && *error) { -- PLUGIN_WARN (IFNET_PLUGIN_NAME, "Found error: %s", -- (*error)->message); -+ PLUGIN_WARN (IFNET_PLUGIN_NAME, -+ "Found error: %s", (*error)->message); - goto done; - } - result = TRUE; -@@ -502,12 +605,14 @@ ifnet_destroy (void) - GHashTableIter iter; - gpointer key; - gpointer value; -+ GList *list_iter; - - /* Destroy connection setting */ - if (conn_table) { - g_hash_table_iter_init (&iter, conn_table); - while (g_hash_table_iter_next (&iter, &key, &value)) { -- destroy_connection_config ((GHashTable *) value); -+ destroy_connection_config ((GHashTable *) -+ value); - } - g_hash_table_destroy (conn_table); - conn_table = NULL; -@@ -523,4 +628,8 @@ ifnet_destroy (void) - g_hash_table_destroy (global_settings_table); - global_settings_table = NULL; - } -+ for (list_iter = functions_list; list_iter; -+ list_iter = g_list_next (list_iter)) -+ g_free (list_iter->data); -+ g_list_free (functions_list); - } -diff --git a/system-settings/plugins/ifnet/tests/net b/system-settings/plugins/ifnet/tests/net -index 1d8042c..e755000 100644 ---- a/system-settings/plugins/ifnet/tests/net -+++ b/system-settings/plugins/ifnet/tests/net -@@ -65,3 +65,83 @@ bridge_br0="eth0 kvm0 kvm1" - config_br0=( "192.168.1.10/24" ) - brctl_br0=( "setfd 0") - dhcp_eth1="nosendhost nontp -I" -+ -+predown() { -+ # The default in the script is to test for NFS root and disallow -+ # downing interfaces in that case. Note that if you specify a -+ # predown() function you will override that logic. Here it is, in -+ # case you still want it... -+ if is_net_fs /; then -+ eerror "root filesystem is network mounted -- can't stop ${IFACE}" -+ return 1 -+ fi -+ -+ # Remember to return 0 on success -+ return 0 -+} -+ -+postup() { -+ # This function could be used, for example, to register with a -+ # dynamic DNS service. Another possibility would be to -+ # send/receive mail once the interface is brought up. -+ -+ # Here is an example that allows the use of iproute rules -+ # which have been configured using the rules_eth0 variable. -+ #rules_eth0=" \ -+ # 'from 24.80.102.112/32 to 192.168.1.0/24 table localnet priority 100' \ -+ # 'from 216.113.223.51/32 to 192.168.1.0/24 table localnet priority 100' \ -+ #" -+ eval set -- \$rules_${IFVAR} -+ if [ $# != 0 ]; then -+ einfo "Adding IP policy routing rules" -+ eindent -+ # Ensure that the kernel supports policy routing -+ if ! ip rule list | grep -q "^"; then -+ eerror "You need to enable IP Policy Routing (CONFIG_IP_MULTIPLE_TABLES)" -+ eerror "in your kernel to use ip rules" -+ else -+ for x; do -+ ebegin "${x}" -+ ip rule add ${x} -+ eend $? -+ done -+ fi -+ eoutdent -+ # Flush the cache -+ ip route flush cache dev "${IFACE}" -+ fi -+ -+} -+ -+postdown() { -+ # Enable Wake-On-LAN for every interface except for lo -+ # Probably a good idea to set ifdown="no" in /etc/conf.d/net -+ # as well ;) -+ [ "${IFACE}" != "lo" ] && ethtool -s "${IFACE}" wol g -+ -+ Automatically erase any ip rules created in the example postup above -+ if interface_exists "${IFACE}"; then -+ # Remove any rules for this interface -+ local rule -+ ip rule list | grep " iif ${IFACE}[ ]*" | { -+ while read rule; do -+ rule="${rule#*:}" -+ ip rule del ${rule} -+ done -+ } -+ # Flush the route cache -+ ip route flush cache dev "${IFACE}" -+ fi -+ -+ # Return 0 always -+ return 0 -+} -+ -+failup() { -+ # This function is mostly here for completeness... I haven't -+ # thought of anything nifty to do with it yet ;-) -+} -+ -+faildown() -+{} -+ -diff --git a/system-settings/plugins/ifnet/tests/test_all.c b/system-settings/plugins/ifnet/tests/test_all.c -index a0218bd..ba98397 100644 ---- a/system-settings/plugins/ifnet/tests/test_all.c -+++ b/system-settings/plugins/ifnet/tests/test_all.c -@@ -369,6 +369,7 @@ main (void) - wpa_parser_destroy (); - ifnet_init ("net"); - wpa_parser_init ("wpa_supplicant.conf"); -+ printf("Initialization complete\n"); - - run_all (TRUE); - --- -1.6.1 - diff --git a/net-misc/networkmanager/files/networkmanager-0.8.1-fix-ifnet2.patch b/net-misc/networkmanager/files/networkmanager-0.8.1-fix-ifnet2.patch deleted file mode 100644 index 2d3a22f..0000000 --- a/net-misc/networkmanager/files/networkmanager-0.8.1-fix-ifnet2.patch +++ /dev/null @@ -1,30 +0,0 @@ -From 7cbb17396d6ae1c2292f4a2cedf4f3da2a70435e Mon Sep 17 00:00:00 2001 -From: Mu Qiao <qiaomuf@gmail.com> -Date: Wed, 18 Aug 2010 21:02:04 +0800 -Subject: [PATCH] reading: Completely ignore invalid connections - Signed-off-by: Mu Qiao <qiaomuf@gmail.com> - ---- - system-settings/plugins/ifnet/connection_parser.c | 4 ++-- - 1 files changed, 2 insertions(+), 2 deletions(-) - -diff --git a/system-settings/plugins/ifnet/connection_parser.c b/system-settings/plugins/ifnet/connection_parser.c -index 9634ba4..f9fae51 100644 ---- a/system-settings/plugins/ifnet/connection_parser.c -+++ b/system-settings/plugins/ifnet/connection_parser.c -@@ -1698,10 +1698,10 @@ ifnet_update_connection_from_config_block (gchar * conn_name, GError ** error) - if (error && *error) - PLUGIN_WARN (IFNET_PLUGIN_NAME, - "Found error: %s", (*error)->message); -- if (!success) -- g_object_unref (setting); - PLUGIN_PRINT (IFNET_PLUGIN_NAME, "Connection verified %s:%d", conn_name, - success); -+ if (!success) -+ goto error; - return connection; - error: - g_object_unref (setting); --- -1.6.1 - diff --git a/net-misc/networkmanager/files/networkmanager-0.8.1-fix-ifnet3.patch b/net-misc/networkmanager/files/networkmanager-0.8.1-fix-ifnet3.patch deleted file mode 100644 index 97a84f1..0000000 --- a/net-misc/networkmanager/files/networkmanager-0.8.1-fix-ifnet3.patch +++ /dev/null @@ -1,14 +0,0 @@ -diff --git a/system-settings/plugins/ifnet/plugin.c b/system-settings/plugins/ifnet/plugin.c -index b410315..15b8412 100644 ---- a/system-settings/plugins/ifnet/plugin.c -+++ b/system-settings/plugins/ifnet/plugin.c -@@ -427,6 +427,9 @@ SCPluginIfnet_init (NMSystemConfigInterface * config) - NM_EXPORTED_CONNECTION (value)); - } - } -+ -+ update_system_hostname (self); -+ - PLUGIN_PRINT (IFNET_PLUGIN_NAME, "Initialzation complete!"); - } - 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 deleted file mode 100644 index 822551d..0000000 --- a/net-misc/networkmanager/files/networkmanager-0.8.1-glib-2.25.12-workaround.patch +++ /dev/null @@ -1,24 +0,0 @@ -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.9_beta1-fix-tests.patch b/net-misc/networkmanager/files/networkmanager-0.9_beta1-fix-tests.patch new file mode 100644 index 0000000..0b74152 --- /dev/null +++ b/net-misc/networkmanager/files/networkmanager-0.9_beta1-fix-tests.patch @@ -0,0 +1,23 @@ +diff -urN NetworkManager-0.8.995/configure.ac NetworkManager-0.8.995-patched//configure.ac +--- NetworkManager-0.8.995/configure.ac 2011-03-05 04:39:53.000000000 +0800 ++++ NetworkManager-0.8.995-patched//configure.ac 2011-03-09 15:30:18.831000026 +0800 +@@ -577,7 +577,6 @@ + src/settings/plugins/ifupdown/Makefile + src/settings/plugins/ifupdown/tests/Makefile + src/settings/plugins/ifnet/Makefile +-src/settings/plugins/ifnet/tests/Makefile + src/settings/plugins/ifcfg-rh/Makefile + src/settings/plugins/ifcfg-rh/tests/Makefile + src/settings/plugins/ifcfg-rh/tests/network-scripts/Makefile +diff -urN NetworkManager-0.8.995/src/settings/plugins/ifnet/Makefile.in NetworkManager-0.8.995-patched//src/settings/plugins/ifnet/Makefile.in +--- NetworkManager-0.8.995/src/settings/plugins/ifnet/Makefile.in 2011-03-05 04:40:28.000000000 +0800 ++++ NetworkManager-0.8.995-patched//src/settings/plugins/ifnet/Makefile.in 2011-03-09 15:30:54.228000025 +0800 +@@ -367,7 +367,7 @@ + top_build_prefix = @top_build_prefix@ + top_builddir = @top_builddir@ + top_srcdir = @top_srcdir@ +-SUBDIRS = . tests ++SUBDIRS = . + INCLUDES = \ + -I$(top_srcdir)/src/settings \ + -I$(top_srcdir)/include \ diff --git a/net-misc/networkmanager/metadata.xml b/net-misc/networkmanager/metadata.xml index acb36b2..a79cba9 100644 --- a/net-misc/networkmanager/metadata.xml +++ b/net-misc/networkmanager/metadata.xml @@ -15,10 +15,12 @@ <name>Robert Piasek</name> </maintainer> <use> - <flag name="dhclient">Use dhclient from <pkg>net-misc/dhcp</pkg> for getting ip.</flag> + <flag name="3G">Enable mobile broadband connection. Requires <pkg>net-dialup/ppp</pkg>.</flag> + <flag name="dhclient">Use dhclient from <pkg>net-misc/dhcp</pkg> for getting ip.</flag> <flag name="dhcpcd">Use <pkg>net-misc/dhcpcd</pkg> for getting ip.</flag> <flag name="nss">Use <pkg>dev-libs/nss</pkg> for cryptography.</flag> <flag name="resolvconf">Use <pkg>net-dns/openresolv</pkg> for managing DNS information</flag> <flag name="connection-sharing">Use <pkg>net-dns/dnsmasq</pkg> and <pkg>net-firewall/iptables</pkg> for connection sharing </flag> + <flag name="wimax">Enable WiMAX support. Requires <pkg>net-wireless/wimax</pkg>.</flag> </use> </pkgmetadata> diff --git a/net-misc/networkmanager/networkmanager-0.9_beta1.ebuild b/net-misc/networkmanager/networkmanager-0.9_beta1.ebuild new file mode 100644 index 0000000..1c276ff --- /dev/null +++ b/net-misc/networkmanager/networkmanager-0.9_beta1.ebuild @@ -0,0 +1,148 @@ +# Copyright 1999-2011 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/net-misc/networkmanager/networkmanager-0.8.995.ebuild,v 1.1 2011/03/09 07:56:21 qiaomuf Exp $ + +EAPI="4" + +inherit eutils linux-info +# gnome.org +# once 0.9 is released add gnome.org eclass back + +# NetworkManager likes itself with capital letters +MY_PN=${PN/networkmanager/NetworkManager} +# Use 0.9 beta/rc rather then 0.8.9xx +MY_PV=${PV/0.9_beta1/0.8.995} +MY_P=${MY_PN}-${MY_PV} + +DESCRIPTION="Network configuration and management in an easy way. Desktop environment independent." +HOMEPAGE="http://www.gnome.org/projects/NetworkManager/" + +SRC_URI="mirror://gnome/sources/${MY_PN}/0.8/${MY_P}.tar.bz2 + http://dev.gentoo.org/~dagger/files/ifnet-0.9.tar.bz2" + +# Change once 0.9 is released +#SRC_URI="${SRC_URI//${PN}/${MY_PN}} + +LICENSE="GPL-2" +SLOT="0" +KEYWORDS="~amd64 ~arm ~ppc ~ppc64 ~x86" +IUSE="3G avahi bluetooth doc nss gnutls dhclient dhcpcd kernel_linux resolvconf connection-sharing wimax" + +REQUIRED_USE=" + nss? ( !gnutls ) !nss? ( gnutls ) + dhcpcd? ( !dhclient ) !dhcpcd? ( dhclient )" + +RDEPEND=">=sys-apps/dbus-1.2 + >=dev-libs/dbus-glib-0.75 + >=net-wireless/wireless-tools-28_pre9 + >=sys-fs/udev-145[extras] + >=dev-libs/glib-2.26 + >=sys-auth/polkit-0.96 + >=dev-libs/libnl-1.1 + >=net-misc/modemmanager-0.4 + >=net-wireless/wpa_supplicant-0.7.2[dbus] + bluetooth? ( >=net-wireless/bluez-4.82 ) + 3G? ( >=net-dialup/ppp-2.4.5 ) + 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-5.2 ) + resolvconf? ( net-dns/openresolv ) + connection-sharing? ( + net-dns/dnsmasq + net-firewall/iptables ) + wimax? ( >=net-wireless/wimax-1.5.1 )" + +DEPEND="${RDEPEND} + dev-util/pkgconfig + dev-util/intltool + 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() { + # fix tests + epatch "${FILESDIR}/${P}-fix-tests.patch" + + EPATCH_SOURCE="${WORKDIR}/ifnet-0.9" EPATCH_SUFFIX="diff" EPATCH_FORCE="yes" epatch +} + +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 3G ppp) + $(use_enable doc gtk-doc) + $(use_enable wimax) + $(use_with dhclient) + $(use_with dhcpcd) + $(use_with doc docs) + $(use_with resolvconf)" + + if use nss ; then + $(use_with nss crypto=nss) + else + $(use_with gnutls crypto=gnutls) + 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 "" +} |