aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMacRoot <root@mac>2013-01-12 18:49:53 +0100
committerMacRoot <root@mac>2013-01-12 18:49:53 +0100
commit5e541879abdbb36c4532db55b3615bc40042d1b6 (patch)
treea93b629e8d40c5b1ede0334bf8a80319742c529d /net-misc
parentAdded local ebuilds from Aug 2007 - Feb 2012 (diff)
downloadAstroFloyd-5e541879abdbb36c4532db55b3615bc40042d1b6.tar.gz
AstroFloyd-5e541879abdbb36c4532db55b3615bc40042d1b6.tar.bz2
AstroFloyd-5e541879abdbb36c4532db55b3615bc40042d1b6.zip
Added all files to git repo
Diffstat (limited to 'net-misc')
-rw-r--r--net-misc/networkmanager/ChangeLog197
-rw-r--r--net-misc/networkmanager/Manifest10
-rw-r--r--net-misc/networkmanager/files/NetworkManagerDispatcher48
-rw-r--r--net-misc/networkmanager/files/networkmanager-0.6.5-confchanges.patch21
-rw-r--r--net-misc/networkmanager/files/networkmanager-memoryleak_MvdS.patch14
-rw-r--r--net-misc/networkmanager/files/networkmanager-resolvconf-perms.patch19
-rw-r--r--net-misc/networkmanager/files/networkmanager-updatedbackend.patch657
-rw-r--r--net-misc/networkmanager/files/networkmanager-use-kernel-headers.patch12
-rw-r--r--net-misc/networkmanager/metadata.xml13
9 files changed, 991 insertions, 0 deletions
diff --git a/net-misc/networkmanager/ChangeLog b/net-misc/networkmanager/ChangeLog
new file mode 100644
index 0000000..c9a5ca5
--- /dev/null
+++ b/net-misc/networkmanager/ChangeLog
@@ -0,0 +1,197 @@
+# ChangeLog for net-misc/networkmanager
+# Copyright 1999-2008 Gentoo Foundation; Distributed under the GPL v2
+# $Header: /var/cvsroot/gentoo-x86/net-misc/networkmanager/ChangeLog,v 1.33 2008/08/17 16:16:38 maekke Exp $
+
+ 17 Aug 2008; Markus Meier <maekke@gentoo.org> networkmanager-0.6.6.ebuild:
+ x86 stable, bug #228837
+
+ 28 Jul 2008; Kenneth Prugh <ken69267@gentoo.org>
+ networkmanager-0.6.6.ebuild:
+ amd64 stable, bug #228837. Removed unused autotools inherit.
+
+ 26 Jun 2008; Robert Buchholz <rbu@gentoo.org>
+ networkmanager-0.6.5_p20070823.ebuild,
+ -networkmanager-0.6.5_p20080205.ebuild, networkmanager-0.6.6.ebuild:
+ Readd ~ppc which was dropped due to >=hal-0.5.10 dependency, and remove old
+ version. Block latest version of libnl (bug #223381).
+
+ 07 Mar 2008; Steev Klimaszewski <steev@gentoo.org>
+ -files/NM-po-linguas.patch, -networkmanager-0.6.5.98.ebuild,
+ +networkmanager-0.6.6.ebuild:
+ Remove the patches that 0.6.5.98 were using
+
+*networkmanager-0.6.6 (07 Mar 2008)
+
+ 07 Mar 2008; Steev Klimaszewski <steev@gentoo.org>
+ -networkmanager-0.6.5.98.ebuild, +networkmanager-0.6.6.ebuild:
+ New upstream release. Unmentioned changes in the release notes include the
+ updated backend being committed for Gentoo, as well as new init scripts from
+ compnerd.
+
+*networkmanager-0.6.5.98 (14 Feb 2008)
+
+ 14 Feb 2008; Steev Klimaszewski <steev@gentoo.org>
+ +files/NM-po-linguas.patch, +networkmanager-0.6.5.98.ebuild:
+ Add 0.6.5.98 (aka 0.6.6rc1) to the tree, include patch from Debian to use
+ po/LINGUAS.
+
+ 14 Feb 2008; Steev Klimaszewski <steev@gentoo.org>
+ networkmanager-0.6.5_p20070823.ebuild,
+ networkmanager-0.6.5_p20080205.ebuild:
+ Fix the libnotify dependency, this is unneeded in NetworkManager as the
+ graphical bits have been split out.
+
+*networkmanager-0.6.5_p20080205 (10 Feb 2008)
+
+ 10 Feb 2008; Steev Klimaszewski <steev@gentoo.org>
+ -networkmanager-0.6.5_p20080130.ebuild,
+ +networkmanager-0.6.5_p20080205.ebuild:
+ Bump NetworkManager snapshot
+
+ 04 Feb 2008; Steev Klimaszewski <steev@gentoo.org>
+ networkmanager-0.6.5_p20070823.ebuild:
+ Update the dependency to be 1.0_pre6* not just 1.0_pre6.
+
+ 02 Feb 2008; Steev Klimaszewski <steev@gentoo.org>
+ +files/NetworkManagerDispatcher, networkmanager-0.6.5_p20080130.ebuild:
+ Add NetworkManagerDispatcher init script for the latest snapshot
+
+*networkmanager-0.6.5_p20080130 (02 Feb 2008)
+
+ 02 Feb 2008; Steev Klimaszewski <steev@gentoo.org>
+ -files/networkmanager-0.6.4-Gentoo-checklo.patch,
+ -files/networkmanager-0.6.4-confchanges.patch,
+ -files/networkmanager-0.6.4-dbus-1.patch,
+ -files/networkmanager-0.6.4-gentooinitscript.patch,
+ -networkmanager-0.6.4_pre20061028.ebuild,
+ -networkmanager-0.6.4_pre20061028-r1.ebuild, -networkmanager-0.6.5.ebuild,
+ networkmanager-0.6.5_p20070823.ebuild,
+ +networkmanager-0.6.5_p20080130.ebuild:
+ Remove old versions of NetworkManager and add a bump that works with libnl 1.1
+
+ 25 Dec 2007; Christian Heim <phreak@gentoo.org> metadata.xml:
+ Removing metalgod from metadata.xml as per #99350.
+
+ 16 Sep 2007; Markus Meier <maekke@gentoo.org>
+ networkmanager-0.6.5_p20070823.ebuild:
+ x86 stable, bug #191302
+
+ 08 Sep 2007; Joseph Jezak <josejx@gentoo.org>
+ networkmanager-0.6.5_p20070823.ebuild:
+ Marked ppc stable for bug #191302.
+
+ 05 Sep 2007; Robert Buchholz <rbu@gentoo.org>
+ networkmanager-0.6.5_p20070823.ebuild:
+ Add die with iproute minimal build (bug #190046)
+
+ 05 Sep 2007; Wulf C. Krueger <philantrop@gentoo.org>
+ networkmanager-0.6.5_p20070823.ebuild:
+ Marked stable on amd64 as per bug 191302 to make sure stable systems
+ actually work.
+
+ 28 Aug 2007; nixnut <nixnut@gentoo.org> networkmanager-0.6.5.ebuild:
+ Stable on ppc wrt bug 189781
+
+ 26 Aug 2007; Wulf C. Krueger <philantrop@gentoo.org>
+ networkmanager-0.6.5.ebuild:
+ Marked stable on amd64 as per bug 189781.
+
+ 24 Aug 2007; Christian Faulhammer <opfer@gentoo.org>
+ networkmanager-0.6.5.ebuild:
+ stable x86, bug 189781
+
+*networkmanager-0.6.5_p20070823 (23 Aug 2007)
+
+ 23 Aug 2007; Robert Buchholz <rbu@gentoo.org> metadata.xml,
+ +networkmanager-0.6.5_p20070823.ebuild:
+ Version bump to a current 0.6 branch state, adding myself to metadata
+
+ 15 May 2007; Thilo Bangert <bangert@gentoo.org> metadata.xml:
+ add <herd>no-herd</herd>
+
+ 14 May 2007; Steev Klimaszewski <steev@gentoo.org>
+ networkmanager-0.6.5.ebuild:
+ Fix homepage url, fixes bug #178101. Thanks to Pacho Ramos for reporting
+
+ 11 May 2007; Gustavo Zacarias <gustavoz@gentoo.org>
+ networkmanager-0.6.5.ebuild:
+ Keyworded ~ppc
+
+ 03 May 2007; Steev Klimaszewski <steev@gentoo.org>
+ networkmanager-0.6.5.ebuild:
+ Add use_with gnome to G2CONF. Fixes bug #176867, thanks to Ingmar Vanhassel
+ <ingmar.vanhassel@gmail.com> for reporting
+
+*networkmanager-0.6.5 (02 May 2007)
+
+ 02 May 2007; Steev Klimaszewski <steev@gentoo.org>
+ +files/networkmanager-0.6.5-confchanges.patch,
+ +networkmanager-0.6.5.ebuild:
+ New upstream release of NetworkManager.
+
+ 26 Jan 2007; Mart Raudsepp <leio@gentoo.org>
+ networkmanager-0.6.4_pre20061028.ebuild,
+ networkmanager-0.6.4_pre20061028-r1.ebuild:
+ Really fix gnome and gcrypt use on configure
+
+ 14 Jan 2007; Markus Rothe <corsair@gentoo.org>
+ networkmanager-0.6.4_pre20061028-r1.ebuild:
+ Added ~ppc and ~ppc64
+
+ 05 Jan 2007; Diego Pettenò <flameeyes@gentoo.org>
+ networkmanager-0.6.4_pre20061028.ebuild,
+ networkmanager-0.6.4_pre20061028-r1.ebuild:
+ Remove debug.eclass usage.
+
+ 06 Dec 2006; Steev Klimaszewski <steev@gentoo.org>
+ +files/networkmanager-0.6.4-dbus-1.patch,
+ networkmanager-0.6.4_pre20061028-r1.ebuild:
+ Add patch from the NetworkManager mailing list to fix compilation against
+ D-Bus 1.x. Fixes bug #155279. Thanks to Priit Laes for reporting.
+
+ 04 Dec 2006; Luis Medinas <metalgod@gentoo.org>
+ networkmanager-0.6.4_pre20061028.ebuild,
+ networkmanager-0.6.4_pre20061028-r1.ebuild:
+ Fix gnome use on configure. Closes bug #155192.
+
+*networkmanager-0.6.4_pre20061028-r1 (26 Nov 2006)
+
+ 26 Nov 2006; Luis Medinas <metalgod@gentoo.org>
+ +files/networkmanager-updatedbackend.patch,
+ +networkmanager-0.6.4_pre20061028-r1.ebuild:
+ Added a patch with Gentoo backend updated done by Nathan Caldwell
+ <saintdev@gmail.com>. Please test the backend and report any bug.
+
+ 05 Nov 2006; Steev Klimaszewski <steev@gentoo.org>
+ networkmanager-0.6.4_pre20061028.ebuild:
+ Fix the names of patches since epkgmove apparently renamed the patches as
+ well.
+
+*networkmanager-0.6.4_pre20061028 (05 Nov 2006)
+
+ 05 Nov 2006; Steev Klimaszewski <steev@gentoo.org>
+ +files/networkmanager-0.6.4-Gentoo-checklo.patch,
+ +files/networkmanager-0.6.4-confchanges.patch,
+ +files/networkmanager-0.6.4-gentooinitscript.patch,
+ +files/networkmanager-resolvconf-perms.patch,
+ +files/networkmanager-use-kernel-headers.patch, +metadata.xml,
+ +networkmanager-0.6.4_pre20061028.ebuild:
+ Moved from net-misc/NetworkManager to net-misc/networkmanager.
+
+ 04 Nov 2006; Luis Medinas <metalgod@gentoo.org>
+ NetworkManager-0.6.4_pre20061028.ebuild:
+ Remove pam_console from dependencies since our patch makes it work with
+ hal/dbus instead of pam_console.
+
+*NetworkManager-0.6.4_pre20061028 (31 Oct 2006)
+
+ 31 Oct 2006; Luis Medinas <metalgod@gentoo.org>
+ +files/NetworkManager-0.6.4-Gentoo-checklo.patch,
+ +files/NetworkManager-0.6.4-confchanges.patch,
+ +files/NetworkManager-0.6.4-gentooinitscript.patch,
+ +files/NetworkManager-resolvconf-perms.patch,
+ +files/NetworkManager-use-kernel-headers.patch, +metadata.xml,
+ +NetworkManager-0.6.4_pre20061028.ebuild:
+ Initial import. This ebuild was made by Luis Medinas <metalgod@gentoo.org>
+ and Stephen Klimaszewski <steev@gentoo.org>.
+
diff --git a/net-misc/networkmanager/Manifest b/net-misc/networkmanager/Manifest
new file mode 100644
index 0000000..9998884
--- /dev/null
+++ b/net-misc/networkmanager/Manifest
@@ -0,0 +1,10 @@
+AUX NetworkManagerDispatcher 1198 RMD160 4345870ab40607b9aed80c8da383b604f032b98e SHA1 1dd2250c746b25566fceaab551f4ef8335fe4f55 SHA256 f8cb5d0470619cf1f0812fffcf1bf2091e3c44a757899c07164f80ddd6a2641e
+AUX networkmanager-0.6.5-confchanges.patch 1053 RMD160 ae76d5c029090848a9264e7559aaab90e7f3c084 SHA1 4847532aa15316a1a45e8667cd7947b514a1833f SHA256 bf3418ccbf8643d14b0413cf7a9d25290003d4443a7a051bb54f953aebede84f
+AUX networkmanager-memoryleak_MvdS.patch 589 RMD160 699c041dfa6a5a5d94f3c7c43520bc9cdfef9b3c SHA1 42f01e9c6a2722f29db9ae21bbb5a1a43e341df4 SHA256 d160cf690d61224bbf9b7668f4c83f6c5b56ee2ef292c94e6b759b70b6274836
+AUX networkmanager-resolvconf-perms.patch 532 RMD160 453ce19560e1872d1da1fa48e0c9a365025e6b1b SHA1 a81be4e9c9bac854e092b82529c4ae2c12cdf91c SHA256 e1786f34a75d2e0a27ceccb960cf975176260886f70cc3e9b172180f8a1d2e6e
+AUX networkmanager-updatedbackend.patch 17700 RMD160 685132b4a98843416264f06c480ff205fa87f789 SHA1 a83d2b0ea7e4a563af3d14567ba1da3605fbf654 SHA256 ee4a1583db867fd6a1851a9dd243401166f29ee9d00ad6e03e5b677915e5bf43
+AUX networkmanager-use-kernel-headers.patch 466 RMD160 cd16279966d4e3594a20aa0b89d08f3baa3c2e58 SHA1 a9e269c9021888ca058b9fb72f9a71dc25a7488b SHA256 952948f41676fafcf76210cbef46728cbb219d6c851d5417d892b984fd725402
+DIST NetworkManager-0.6.6.tar.gz 984114 RMD160 f0672ee31001f83b06f6b93c30a01f37ee12ed6e SHA1 c5d0bcf7d262e1b600df6dad9f6f4baada293634 SHA256 36d48a11957e1c4f53a685b0fcc7d060e8972b435501c92b10737bb844dd95e2
+EBUILD networkmanager-0.6.6-r01.ebuild 2922 RMD160 078937e404ef8a7b9514bbd5f9de69767835490a SHA1 053a9817070241b9deaf1831c9209225bf5c27b4 SHA256 8b6a77bc80b6fbad1b371706111e460fbbc105aa951d663bfa486c75e7b8aca2
+MISC ChangeLog 7652 RMD160 b513c7f896b3b3be1f2faf0d7cefdf495aacb153 SHA1 0a30614cb5070a123e60084741258086230361b0 SHA256 5044837b5172885dd804ad98dde6aa1c1bbe7420a63c66cf54a4bec55572cb60
+MISC metadata.xml 352 RMD160 dc1d33b6866b7a51fd60cc8508668cb80ccdf797 SHA1 401add51065c746c71da8b5992874c0556cedc04 SHA256 c5b303e6d5dbe90d34284c51a1c7ea8015e87c41d6f63446a1bf7ba5daf0d26d
diff --git a/net-misc/networkmanager/files/NetworkManagerDispatcher b/net-misc/networkmanager/files/NetworkManagerDispatcher
new file mode 100644
index 0000000..24aa37b
--- /dev/null
+++ b/net-misc/networkmanager/files/NetworkManagerDispatcher
@@ -0,0 +1,48 @@
+#!/sbin/runscript
+#
+# NetworkManagerDispatcher: NetworkManagerDispatcher daemon
+#
+# chkconfig: 345 98 02
+# description: This is a daemon for automatically executing certain
+# actions, when switching networks
+#
+# processname: NetworkManagerDispatcher
+# pidfile: /var/run/NetworkManagerDispatcher.pid
+
+prefix=/usr
+exec_prefix=/usr
+sbindir=${exec_prefix}/sbin
+
+NETWORKMANAGERDISPATCHER_BIN=${sbindir}/NetworkManagerDispatcher
+
+# Sanity checks.
+[ -x $NETWORKMANAGERDISPATCHER_BIN ] || exit 0
+
+# so we can rearrange this easily
+processname=$NETWORKMANAGERDISPATCHER_BIN
+pidfile=/var/run/NetworkManagerDispatcher.pid
+
+depend() {
+ need NetworkManager
+}
+
+start()
+{
+ if [ -e ${pidfile} ]; then
+ rm -f ${pidfile}
+ fi
+ ebegin "Starting NetworkManagerDispatcher"
+ start-stop-daemon --start --quiet --exec ${processname}
+ eend $?
+ echo $(/bin/pidof NetworkManagerDispatcher) > ${pidfile}
+}
+
+stop()
+{
+ ebegin "Stopping NetworkManagerDispatcher"
+ start-stop-daemon --stop --quiet --exec ${processname} --pidfile ${pidfile}
+ eend $?
+ if [ -e ${pidfile} ]; then
+ rm -f $pidfile
+ fi
+}
diff --git a/net-misc/networkmanager/files/networkmanager-0.6.5-confchanges.patch b/net-misc/networkmanager/files/networkmanager-0.6.5-confchanges.patch
new file mode 100644
index 0000000..8969cda
--- /dev/null
+++ b/net-misc/networkmanager/files/networkmanager-0.6.5-confchanges.patch
@@ -0,0 +1,21 @@
+--- src/NetworkManager.conf.orig 2006-10-28 04:43:50.426682976 +0100
++++ src/NetworkManager.conf 2006-10-28 04:44:36.883620448 +0100
+@@ -8,14 +8,14 @@
+ <allow send_destination="org.freedesktop.NetworkManager"/>
+ <allow send_interface="org.freedesktop.NetworkManager"/>
+ </policy>
+- <policy at_console="true">
++ <policy group="plugdev">
+ <allow send_destination="org.freedesktop.NetworkManager"/>
+ <allow send_interface="org.freedesktop.NetworkManager"/>
+ </policy>
+ <policy context="default">
+- <deny own="org.freedesktop.NetworkManager"/>
+- <deny send_destination="org.freedesktop.NetworkManager"/>
+- <deny send_interface="org.freedesktop.NetworkManager"/>
++ <allow own="org.freedesktop.NetworkManager"/>
++ <allow send_destination="org.freedesktop.NetworkManager"/>
++ <allow send_interface="org.freedesktop.NetworkManager"/>
+ </policy>
+ </busconfig>
+
diff --git a/net-misc/networkmanager/files/networkmanager-memoryleak_MvdS.patch b/net-misc/networkmanager/files/networkmanager-memoryleak_MvdS.patch
new file mode 100644
index 0000000..c4a753e
--- /dev/null
+++ b/net-misc/networkmanager/files/networkmanager-memoryleak_MvdS.patch
@@ -0,0 +1,14 @@
+Index: NetworkManager-0.6.6/src/nm-dbus-net.c
+===================================================================
+--- NetworkManager-0.6.6.orig/src/nm-dbus-net.c
++++ NetworkManager-0.6.6/src/nm-dbus-net.c
+@@ -70,6 +70,9 @@ static NMAccessPoint *nm_dbus_get_ap_fro
+ compare_path = g_strdup_printf ("%s/%s/Networks/%s",
+ NM_DBUS_PATH_DEVICES, escaped_dev, escaped_ssid);
+
++ g_free(escaped_dev);
++ g_free(escaped_ssid);
++
+ len = strlen (compare_path);
+ if (strncmp (path, compare_path, len) == 0) {
+ /* Differentiate between 'foo' and 'foo-a' */
diff --git a/net-misc/networkmanager/files/networkmanager-resolvconf-perms.patch b/net-misc/networkmanager/files/networkmanager-resolvconf-perms.patch
new file mode 100644
index 0000000..a76c419
--- /dev/null
+++ b/net-misc/networkmanager/files/networkmanager-resolvconf-perms.patch
@@ -0,0 +1,19 @@
+--- src/named-manager/nm-named-manager.c.orig 2006-03-25 00:38:24.000000000 -0500
++++ src/named-manager/nm-named-manager.c 2006-03-25 00:44:15.000000000 -0500
+@@ -31,6 +31,7 @@
+ #include <resolv.h>
+ #include <sys/socket.h>
+ #include <sys/types.h>
++#include <sys/stat.h>
+ #include <arpa/inet.h>
+ #include <syslog.h>
+ #include <glib.h>
+@@ -396,6 +397,8 @@
+ if (rename (tmp_resolv_conf, RESOLV_CONF) < 0)
+ goto lose;
+ nm_system_update_dns ();
++
++ chmod(RESOLV_CONF, S_IREAD | S_IWRITE | S_IRGRP | S_IROTH);
+ return TRUE;
+
+ lose:
diff --git a/net-misc/networkmanager/files/networkmanager-updatedbackend.patch b/net-misc/networkmanager/files/networkmanager-updatedbackend.patch
new file mode 100644
index 0000000..767284a
--- /dev/null
+++ b/net-misc/networkmanager/files/networkmanager-updatedbackend.patch
@@ -0,0 +1,657 @@
+Index: NetworkManager/trunk/src/backends/NetworkManagerGentoo.c
+===================================================================
+--- NetworkManagerGentoo.c (revision 15)
++++ NetworkManagerGentoo.c (revision 38)
+@@ -1,2 +1,3 @@
++
+ /* NetworkManager -- Network link manager
+ *
+@@ -250,8 +251,20 @@
+ */
+ void nm_system_restart_mdns_responder (void)
+-{
+- nm_spawn_process("/etc/init.d/mDNSResponder stop");
+- nm_spawn_process("/etc/init.d/mDNSResponder zap");
+- nm_spawn_process("/etc/init.d/mDNSResponder start");
++{
++ /* Check if the daemon was already running - do not start a new instance */
++ /* Howl */
++ if (g_file_test("/var/run/mDNSResponder.pid", G_FILE_TEST_EXISTS))
++ {
++ nm_info("Restarting mDNSResponder");
++ nm_spawn_process("/etc/init.d/mDNSResponder stop");
++ nm_spawn_process("/etc/init.d/mDNSResponder zap");
++ nm_spawn_process("/etc/init.d/mDNSResponder start");
++ }
++ /* Apple's mDNSResponder */
++ if (g_file_test("/var/run/mDNSResponderPosix.pid", G_FILE_TEST_EXISTS))
++ {
++ nm_info("Restarting mDNSResponderPosix");
++ nm_spawn_process("/etc/init.d/mDNSResponderPosix restart");
++ }
+ }
+
+@@ -266,5 +279,4 @@
+ {
+ char *buf;
+- char *addr;
+ struct ether_addr hw_addr;
+ unsigned char eui[8];
+@@ -288,4 +300,258 @@
+ g_free(buf);
+ }
++/* Get the array associated with the key, and leave the current pointer
++ * pointing at the line containing the key. The char** returned MUST
++ * be freed by the caller.
++ */
++gchar **
++svGetArray(shvarFile *s, const char *key)
++{
++ gchar **values = NULL, **lines, *line, *value;
++ GList *restore;
++ int len, strvlen, i, j;
++
++ g_assert(s);
++ g_assert(key);
++
++ /* Attempt to do things the easy way first */
++ line = svGetValue(s, key);
++ if (!line)
++ return NULL;
++
++ restore = s->current;
++
++ g_strstrip(strtok(line, "#")); /* Remove comments and whitespace */
++
++ if (line[0] != '(')
++ {
++ /* This isn't an array, so pretend it's a one item array. */
++ values = g_renew(char*, values, 2);
++ values[0] = line;
++ values[1] = NULL;
++ return values;
++ }
++
++ while(!strrchr(line, ')'))
++ {
++ s->current = s->current->next;
++ value = g_strjoin(" ", line, g_strstrip(strtok(s->current->data, "#")), NULL);
++ g_free(line);
++ line = value;
++ value = NULL;
++ }
++
++ lines = g_strsplit(line, "\"", 0);
++
++ strvlen = g_strv_length(lines);
++ if (strvlen == 0)
++ {
++ /* didn't split, something's wrong */
++ g_free(line);
++ return NULL;
++ }
++
++ j = 0;
++ for (i = 0; i <= strvlen - 1; i++)
++ {
++ value = lines[i];
++ len = strlen(g_strstrip(value));
++ if ((value[0] == '(') || (value[0] == ')') || (len == 0))
++ continue;
++
++ values = g_renew(char*, values, j + 2);
++ values[j+1] = NULL;
++ values[j++] = g_strdup(value);
++ }
++
++ g_free(line);
++ g_strfreev(lines);
++ s->current = restore;
++
++ return values;
++}
++
++/*
++* GentooReadConfig
++*
++* Most of this comes from the arch backend, no need to re-invent.
++* Read platform dependant config file and fill hash with relevant info
++*/
++static GHashTable * GentooReadConfig(const char* dev)
++{
++ GHashTable *ifs;
++ shvarFile *file;
++ int len, hits, i = 0;
++ guint32 maskval;
++ gchar buf[16], *value, *cidrprefix, *gateway;
++ gchar *config_str, *iface_str, *route_str, *mtu_str, *dnsserver_str, *dnssearch_str; /* Lookup keys */
++ gchar **conf, **config = NULL, **routes = NULL;
++ struct in_addr mask;
++
++ file = svNewFile(SYSCONFDIR"/conf.d/net");
++ if (!file)
++ return NULL;
++
++ ifs = g_hash_table_new_full(g_str_hash, g_str_equal, g_free, g_free);
++ if (ifs == NULL)
++ {
++ nm_debug("Unable to create g_hash_table.");
++ svCloseFile(file);
++ return NULL;
++ }
++
++ /* Keys we will use for lookups later */
++ config_str = g_strdup_printf("config_%s", dev);
++ iface_str = g_strdup_printf("iface_%s", dev);
++ route_str = g_strdup_printf("routes_%s", dev);
++ mtu_str = g_strdup_printf("mtu_%s", dev);
++ dnsserver_str = g_strdup_printf("dns_servers_%s", dev);
++ dnssearch_str = g_strdup_printf("dns_search_%s", dev);
++
++
++ if ((config = svGetArray(file, iface_str)))
++ {
++ /* This isn't tested, (or supported, really) so hopefully it works */
++ nm_info("You are using a deprecated configuration syntax for %s.", dev);
++ nm_info("You are advised to read /etc/conf.d/net.example and upgrade it accordingly.");
++ value = svGetValue(file, "gateway");
++ if ((value) && (gateway = strstr(value, dev)) && strtok(gateway, "/"))
++ {
++ /* Is it possible to specify multiple gateways using this variable? */
++ gateway = strtok(NULL, "/");
++ routes = g_renew(char*, routes, 2);
++ routes[0] = g_strdup_printf("default via %s", gateway);
++ routes[1] = NULL;
++ g_free(value);
++ }
++ }
++ else
++ {
++ config = svGetArray(file, config_str);
++ routes = svGetArray(file, route_str);
++ }
++
++
++ if ((config) && g_ascii_strcasecmp(config[0], "dhcp"))
++ {
++ nm_debug("Found %s in %s.", config_str, SYSCONFDIR"/conf.d/net");
++
++ if (!g_ascii_strcasecmp(config[0], "null"))
++ {
++ nm_debug("Config disables device %s.", dev);
++ g_hash_table_insert(ifs, g_strdup("disabled"), g_strdup("true"));
++ }
++ else
++ {
++ /* TODO: Handle "noop". */
++ conf = g_strsplit(config[0], " ", 0);
++ hits = g_strv_length(conf);
++
++ strtok(conf[0], "/");
++ if ((cidrprefix = strtok(NULL, "/")))
++ {
++ maskval = 0xffffffff;
++ maskval <<= (32 - atoi(cidrprefix));
++ mask.s_addr = htonl(maskval);
++ g_hash_table_insert(ifs, g_strdup("netmask"), g_strdup(inet_ntoa(mask)));
++ }
++
++
++ if ((hits > 0) && inet_aton(conf[0], &mask))
++ {
++ g_hash_table_insert(ifs, g_strdup(dev), g_strdup(conf[i++]));
++ while ((hits -= 2) > 0)
++ {
++ g_hash_table_insert(ifs, g_strdup(conf[i]), g_strdup(conf[i+1]));
++ i += 2;
++ }
++ }
++ else
++ {
++ nm_debug("Unhandled configuration. Switching to DHCP.");
++ nm_debug("\t%s = %s", config_str, config[0]);
++ g_hash_table_insert(ifs, g_strdup("dhcp"), g_strdup("true"));
++ }
++ g_strfreev(conf);
++ }
++ }
++ else
++ {
++ nm_debug("Enabling DHCP for device %s.", dev);
++ g_hash_table_insert(ifs, g_strdup("dhcp"), g_strdup("true"));
++ }
++
++ g_strfreev(config);
++
++ if (routes)
++ {
++ nm_debug("Found %s in config.", route_str);
++
++ len = g_strv_length(routes);
++ for (i = 0; i < len; i++)
++ {
++ if (!sscanf(routes[i], "default via %[0-9.:]", buf))
++ continue;
++
++ g_hash_table_insert(ifs,g_strdup("gateway"),g_strdup( (char*) buf));
++ }
++ }
++
++ g_strfreev(routes);
++
++ if ((value = svGetValue(file, mtu_str)))
++ {
++ nm_debug("Found %s in config.", mtu_str);
++ g_hash_table_insert(ifs, g_strdup("mtu"), g_strdup(value));
++ }
++
++ g_free(value);
++
++ if (!(value = svGetValue(file, dnsserver_str)))
++ {
++ value = svGetValue(file, "dns_servers");
++ }
++ if (value)
++ {
++ nm_debug("Found DNS nameservers in config.");
++ g_hash_table_insert(ifs, g_strdup("nameservers"), g_strdup(value));
++ }
++
++ g_free(value);
++
++ if (!(value = svGetValue(file, dnssearch_str)))
++ {
++ value = svGetValue(file, "dns_search");
++ }
++ if (value)
++ {
++ nm_debug("Found DNS search in config.");
++ g_hash_table_insert(ifs, g_strdup("dnssearch"), g_strdup(value));
++ }
++
++ g_free(value);
++ svCloseFile(file);
++
++ if ((file = svNewFile(SYSCONFDIR"/conf.d/hostname")))
++ {
++ if ((value = svGetValue(file, "HOSTNAME")) && (strlen(value) > 0))
++ {
++ nm_debug("Found hostname.");
++ g_hash_table_insert(ifs, g_strdup("hostname"), g_strdup(value));
++ }
++
++ g_free(value);
++ svCloseFile(file);
++ }
++
++
++ g_free(config_str);
++ g_free(iface_str);
++ g_free(route_str);
++ g_free(mtu_str);
++ g_free(dnsserver_str);
++ g_free(dnssearch_str);
++
++ return ifs;
++}
+
+ typedef struct GentooSystemConfigData
+@@ -293,6 +559,7 @@
+ NMIP4Config * config;
+ gboolean use_dhcp;
++ gboolean system_disabled;
++ guint32 mtu;
+ } GentooSystemConfigData;
+-
+
+ /*
+@@ -304,133 +571,172 @@
+ *
+ */
+-void *nm_system_device_get_system_config (NMDevice *dev, NMData *app_data)
+-{
+- char *cfg_file_path = NULL;
+- FILE *file = NULL;
+- char buffer[100];
+- char confline[100], dhcpline[100], ipline[100];
+- int ipa, ipb, ipc, ipd;
+- int nNext = 0, bNext = 0, count = 0;
+- char *confToken;
+- gboolean data_good = FALSE;
+- gboolean use_dhcp = TRUE;
+- GentooSystemConfigData *sys_data = NULL;
+- guint32 ip4_address = 0;
+- guint32 ip4_netmask = 0;
+- guint32 ip4_gateway = 0;
+- guint32 ip4_broadcast = 0;
+-
+- g_return_val_if_fail (dev != NULL, NULL);
+-
+- sys_data = g_malloc0 (sizeof (GentooSystemConfigData));
+- sys_data->config = nm_device_get_ip4_config(dev);
+- /* We use DHCP on an interface unless told not to */
++void* nm_system_device_get_system_config (NMDevice * dev, NMData *app_data)
++{
++ GHashTable* ifh;
++ gpointer val;
++ gchar **strarr;
++ GentooSystemConfigData* sys_data = NULL;
++ int len, i;
++
++ g_return_val_if_fail(dev != NULL, NULL);
++
++ sys_data = g_malloc0(sizeof (GentooSystemConfigData));
+ sys_data->use_dhcp = TRUE;
+- nm_device_set_use_dhcp (dev, TRUE);
+-// nm_ip4_config_set_address (sys_data->config, 0);
+-// nm_ip4_config_set_gateway (sys_data->config, 0);
+-// nm_ip4_config_set_netmask (sys_data->config, 0);
+-
+- /* Gentoo systems store this information in
+- * /etc/conf.d/net, this is for all interfaces.
+- */
+-
+- cfg_file_path = g_strdup_printf ("/etc/conf.d/net");
+- if (!cfg_file_path)
++ sys_data->system_disabled = FALSE;
++ sys_data->mtu = 0;
++ sys_data->config=NULL;
++
++ ifh = GentooReadConfig(nm_device_get_iface(dev));
++ if (ifh == NULL)
++ {
++ g_free(sys_data);
+ return NULL;
+-
+- if (!(file = fopen (cfg_file_path, "r")))
+- {
+- g_free (cfg_file_path);
+- return NULL;
+- }
+- sprintf(confline, "iface_%s", nm_device_get_iface (dev));
+- sprintf(dhcpline, "iface_%s=\"dhcp\"", nm_device_get_iface (dev));
+- while (fgets (buffer, 499, file) && !feof (file))
+- {
+- /* Kock off newline if any */
+- g_strstrip (buffer);
+-
+- if (strncmp (buffer, confline, strlen(confline)) == 0)
++ }
++
++ val = g_hash_table_lookup(ifh, "disabled");
++ if (val)
++ {
++ if (!strcasecmp (val, "true"))
++ {
++ nm_info ("System configuration disables device %s", nm_device_get_iface (dev));
++ sys_data->system_disabled = TRUE;
++ }
++ }
++
++ val = g_hash_table_lookup(ifh, "mtu");
++ if (val)
++ {
++ guint32 mtu;
++
++ mtu = strtoul(val, NULL, 10);
++ if (mtu > 500 && mtu < INT_MAX)
++ {
++ nm_debug("System configuration specifies a MTU of %i for device %s", mtu, nm_device_get_iface(dev));
++ sys_data->mtu = mtu;
++ }
++ }
++ val = g_hash_table_lookup(ifh, "hostname");
++ if (val)
++ {
++ nm_ip4_config_set_hostname(sys_data->config, val);
++ }
++
++ val = g_hash_table_lookup(ifh, nm_device_get_iface(dev));
++ if (val && !g_hash_table_lookup(ifh, "dhcp"))
++ {
++ /* This device does not use DHCP */
++
++ sys_data->use_dhcp=FALSE;
++ sys_data->config = nm_ip4_config_new();
++
++ nm_ip4_config_set_address (sys_data->config, inet_addr (val));
++
++ val = g_hash_table_lookup(ifh, "gateway");
++ if (val)
++ nm_ip4_config_set_gateway (sys_data->config, inet_addr (val));
++ else
++ {
++ nm_info ("Network configuration for device '%s' does not specify a gateway but is "
++ "statically configured (non-DHCP).", nm_device_get_iface (dev));
++ }
++
++ val = g_hash_table_lookup(ifh, "netmask");
++ if (val)
++ nm_ip4_config_set_netmask (sys_data->config, inet_addr (val));
++ else
++ {
++ guint32 addr = nm_ip4_config_get_address (sys_data->config);
++
++ /* Make a default netmask if we have an IP address */
++ if (((ntohl (addr) & 0xFF000000) >> 24) <= 127)
++ nm_ip4_config_set_netmask (sys_data->config, htonl (0xFF000000));
++ else if (((ntohl (addr) & 0xFF000000) >> 24) <= 191)
++ nm_ip4_config_set_netmask (sys_data->config, htonl (0xFFFF0000));
++ else
++ nm_ip4_config_set_netmask (sys_data->config, htonl (0xFFFFFF00));
++ }
++
++ val = g_hash_table_lookup(ifh, "broadcast");
++ if (val)
++ nm_ip4_config_set_broadcast (sys_data->config, inet_addr (val));
++ else if ((val = g_hash_table_lookup(ifh, "brd")))
++ nm_ip4_config_set_broadcast (sys_data->config, inet_addr (val));
++ else
++ {
++ guint32 broadcast = ((nm_ip4_config_get_address (sys_data->config) & nm_ip4_config_get_netmask (sys_data->config))
++ | ~nm_ip4_config_get_netmask (sys_data->config));
++ nm_ip4_config_set_broadcast (sys_data->config, broadcast);
++ }
++
++ val = g_hash_table_lookup(ifh, "nameservers");
++ if (val)
++ {
++ nm_debug("Using DNS nameservers \"%s\" from config for device %s.", val, nm_device_get_iface(dev));
++ if ((strarr = g_strsplit(val, " ", 0)))
+ {
+- /* Make sure this config file is for this device */
+- if (strncmp (&buffer[strlen(confline) - strlen(nm_device_get_iface (dev))],
+- nm_device_get_iface (dev), strlen(nm_device_get_iface (dev))) != 0)
++ len = g_strv_length(strarr);
++ for(i = 0; i < len; i++)
+ {
+- nm_warning ("System config file '%s' does not define device '%s'\n",
+- cfg_file_path, nm_device_get_iface (dev));
+- break;
+- }
+- else
+- data_good = TRUE;
+-
+- if (strncmp (buffer, dhcpline, strlen(dhcpline)) == 0)
+- {
+- use_dhcp = TRUE;
++ guint32 addr = (guint32) (inet_addr (strarr[i]));
++
++ if (addr != (guint32) -1)
++ nm_ip4_config_add_nameserver(sys_data->config, addr);
++ }
++
++ g_strfreev(strarr);
+ }
+ else
+ {
+- use_dhcp = FALSE;
+- confToken = strtok(&buffer[strlen(confline) + 2], " ");
+- while (count < 3)
+- {
+- if (nNext == 1 && bNext == 1)
+- {
+- ip4_address = inet_addr (confToken);
+- count++;
+- continue;
+- }
+- if (strcmp(confToken, "netmask") == 0)
+- {
+- confToken = strtok(NULL, " ");
+- ip4_netmask = inet_addr (confToken);
+- count++;
+- nNext = 1;
+- }
+- else if (strcmp(confToken, "broadcast") == 0)
+- {
+- confToken = strtok(NULL, " ");
+- count++;
+- bNext = 1;
+- }
+- else
+- {
+- ip4_address = inet_addr (confToken);
+- count++;
+- }
+- confToken = strtok(NULL, " ");
+- }
++ guint32 addr = (guint32) (inet_addr (val));
++
++ if (addr != (guint32) -1)
++ nm_ip4_config_add_nameserver(sys_data->config, addr);
++ }
++ }
++
++ val = g_hash_table_lookup(ifh, "dnssearch");
++ if (val)
++ {
++ nm_debug("Using DNS search \"%s\" from config for device %s.", val, nm_device_get_iface(dev));
++ if ((strarr = g_strsplit(val, " ", 0)))
++ {
++ len = g_strv_length(strarr);
++ for(i = 0; i < len; i++)
++ {
++ if (strarr[i])
++ nm_ip4_config_add_domain(sys_data->config, strarr[i]);
+ }
++
++ g_strfreev(strarr);
+ }
+- /* If we aren't using dhcp, then try to get the gateway */
+- if (!use_dhcp)
++ else
+ {
+- sprintf(ipline, "gateway=\"%s/", nm_device_get_iface (dev));
+- if (strncmp(buffer, ipline, strlen(ipline) - 1) == 0)
++ nm_ip4_config_add_domain(sys_data->config, val);
++ }
++ }
++
++ nm_ip4_config_set_mtu (sys_data->config, sys_data->mtu);
++
++#if 0
++ {
++ int j;
++ nm_debug ("------ Config (%s)", nm_device_get_iface (dev));
++ nm_debug (" ADDR=%d", nm_ip4_config_get_address (sys_data->config));
++ nm_debug (" GW =%d", nm_ip4_config_get_gateway (sys_data->config));
++ nm_debug (" NM =%d", nm_ip4_config_get_netmask (sys_data->config));
++ nm_debug (" NSs =%d",nm_ip4_config_get_num_nameservers(sys_data->config));
++ for (j=0;j<nm_ip4_config_get_num_nameservers(sys_data->config);j++)
+ {
+- sprintf(ipline, "gateway=\"%s/%%d.%%d.%%d.%%d\"", nm_device_get_iface (dev) );
+- sscanf(buffer, ipline, &ipa, &ipb, &ipc, &ipd);
+- sprintf(ipline, "%d.%d.%d.%d", ipa, ipb, ipc, ipd);
+- ip4_gateway = inet_addr (ipline);
++ nm_debug (" NS =%d",nm_ip4_config_get_nameserver(sys_data->config,j));
+ }
+- }
+- }
+- fclose (file);
+- g_free (cfg_file_path);
+-
+- /* If successful, set values on the device */
+- if (data_good)
+- {
+- nm_warning("data good :-)");
+- nm_device_set_use_dhcp (dev, use_dhcp);
+- if (ip4_address)
+- nm_ip4_config_set_address (sys_data->config, ip4_address);
+- if (ip4_gateway)
+- nm_ip4_config_set_gateway (sys_data->config, ip4_gateway);
+- if (ip4_netmask)
+- nm_ip4_config_set_netmask (sys_data->config, ip4_netmask);
+- if (ip4_broadcast)
+- nm_ip4_config_set_broadcast (sys_data->config, ip4_broadcast);
+- }
++ nm_debug ("---------------------\n");
++ }
++#endif
++
++ }
++
++ g_hash_table_destroy(ifh);
++
++
+ return (void *)sys_data;
+ }
+@@ -519,4 +825,11 @@
+ gboolean nm_system_device_get_disabled (NMDevice *dev)
+ {
++ GentooSystemConfigData *sys_data;
++
++ g_return_val_if_fail (dev != NULL, FALSE);
++
++ if ((sys_data = nm_device_get_system_config_data (dev)))
++ return sys_data->system_disabled;
++
+ return FALSE;
+ }
+@@ -576,4 +889,35 @@
+ void nm_system_set_hostname (NMIP4Config *config)
+ {
++ char *h_name = NULL;
++ const char *hostname;
++
++ g_return_if_fail (config != NULL);
++
++ hostname = nm_ip4_config_get_hostname (config);
++ if (!hostname)
++ {
++ struct in_addr temp_addr;
++ struct hostent *host;
++
++ /* try to get hostname via dns */
++ temp_addr.s_addr = nm_ip4_config_get_address (config);
++ host = gethostbyaddr ((char *) &temp_addr, sizeof (temp_addr), AF_INET);
++ if (host)
++ {
++ h_name = g_strdup (host->h_name);
++ hostname = strtok (h_name, ".");
++ }
++ else
++ nm_warning ("nm_system_set_hostname(): gethostbyaddr failed, h_errno = %d", h_errno);
++ }
++
++ if (hostname)
++ {
++ nm_info ("Setting hostname to '%s'", hostname);
++ if (sethostname (hostname, strlen (hostname)) < 0)
++ nm_warning ("Could not set hostname.");
++ }
++
++ g_free (h_name);
+ }
+
+@@ -596,4 +940,11 @@
+ guint32 nm_system_get_mtu (NMDevice *dev)
+ {
++ GentooSystemConfigData *sys_data;
++
++ g_return_val_if_fail (dev != NULL, 0);
++
++ if ((sys_data = nm_device_get_system_config_data (dev)))
++ return sys_data->mtu;
++
+ return 0;
+ }
diff --git a/net-misc/networkmanager/files/networkmanager-use-kernel-headers.patch b/net-misc/networkmanager/files/networkmanager-use-kernel-headers.patch
new file mode 100644
index 0000000..e74c3c5
--- /dev/null
+++ b/net-misc/networkmanager/files/networkmanager-use-kernel-headers.patch
@@ -0,0 +1,12 @@
+diff -urN NetworkManager-0.5.2.orig/src/nm-device-802-3-ethernet.c NetworkManager-0.5.2/src/nm-device-802-3-ethernet.c
+--- NetworkManager-0.5.2.orig/src/nm-device-802-3-ethernet.c 2006-02-04 05:20:00.000000000 -0600
++++ NetworkManager-0.5.2/src/nm-device-802-3-ethernet.c 2006-02-04 05:20:26.000000000 -0600
+@@ -18,7 +18,7 @@
+ *
+ * (C) Copyright 2005 Red Hat, Inc.
+ */
+-
++#define HEADERS_KERNEL
+ #include <glib.h>
+ #include <glib/gi18n.h>
+ #include <dbus/dbus.h>
diff --git a/net-misc/networkmanager/metadata.xml b/net-misc/networkmanager/metadata.xml
new file mode 100644
index 0000000..08c2647
--- /dev/null
+++ b/net-misc/networkmanager/metadata.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>no-herd</herd>
+ <maintainer>
+ <email>steev@gentoo.org</email>
+ <name>Stephen Klimaszewski</name>
+ </maintainer>
+ <maintainer>
+ <email>rbu@gentoo.org</email>
+ <name>Robert Buchholz</name>
+ </maintainer>
+</pkgmetadata>