Patches from Archlinux.

--- config.in	2000-05-21 07:32:12.000000000 -0700
+++ config.in	2004-05-31 12:36:00.000000000 -0700
@@ -49,7 +49,7 @@
 * 
 bool 'UNIX protocol family' HAVE_AFUNIX y
 bool 'INET (TCP/IP) protocol family' HAVE_AFINET y
-bool 'INET6 (IPv6) protocol family' HAVE_AFINET6 n
+bool 'INET6 (IPv6) protocol family' HAVE_AFINET6 y
 bool 'Novell IPX/SPX protocol family' HAVE_AFIPX y
 bool 'Appletalk DDP protocol family' HAVE_AFATALK y
 bool 'AX25 (packet radio) protocol family' HAVE_AFAX25 y
@@ -86,6 +86,6 @@
 *
 *           Other Features.
 *
-bool 'IP Masquerading support' HAVE_FW_MASQUERADE n
-bool 'Build iptunnel and ipmaddr' HAVE_IP_TOOLS n
-bool 'Build mii-tool' HAVE_MII n
+bool 'IP Masquerading support' HAVE_FW_MASQUERADE y
+bool 'Build iptunnel and ipmaddr' HAVE_IP_TOOLS y
+bool 'Build mii-tool' HAVE_MII y
--- mii-tool.c	2000-05-21 07:31:17.000000000 -0700
+++ mii-tool.c	2004-05-31 12:35:21.000000000 -0700
@@ -379,16 +379,16 @@
 /*--------------------------------------------------------------------*/
 
 const char *usage =
-"usage: %s [-VvRrwl] [-A media,... | -F media] [interface ...]
-       -V, --version               display version information
-       -v, --verbose               more verbose output
-       -R, --reset                 reset MII to poweron state
-       -r, --restart               restart autonegotiation
-       -w, --watch                 monitor for link status changes
-       -l, --log                   with -w, write events to syslog
-       -A, --advertise=media,...   advertise only specified media
-       -F, --force=media           force specified media technology
-media: 100baseT4, 100baseTx-FD, 100baseTx-HD, 10baseT-FD, 10baseT-HD,
+"usage: %s [-VvRrwl] [-A media,... | -F media] [interface ...]\n\
+       -V, --version               display version information\n\
+       -v, --verbose               more verbose output\n\
+       -R, --reset                 reset MII to poweron state\n\
+       -r, --restart               restart autonegotiation\n\
+       -w, --watch                 monitor for link status changes\n\
+       -l, --log                   with -w, write events to syslog\n\
+       -A, --advertise=media,...   advertise only specified media\n\
+       -F, --force=media           force specified media technology\n\
+media: 100baseT4, 100baseTx-FD, 100baseTx-HD, 10baseT-FD, 10baseT-HD,\n\
        (to advertise both HD and FD) 100baseTx, 10baseT\n";
 
 int main(int argc, char **argv)
--- include/mii.h.bar	Tue Jul 31 11:49:39 2001
+++ include/mii.h	Tue Jul 31 11:49:33 2001
@@ -11,11 +11,9 @@
 
 /* network interface ioctl's for MII commands */
 #ifndef SIOCGMIIPHY
-#define SIOCGMIIPHY (SIOCDEVPRIVATE)	/* Read from current PHY */
-#define SIOCGMIIREG (SIOCDEVPRIVATE+1) 	/* Read any PHY register */
-#define SIOCSMIIREG (SIOCDEVPRIVATE+2) 	/* Write any PHY register */
-#define SIOCGPARAMS (SIOCDEVPRIVATE+3) 	/* Read operational parameters */
-#define SIOCSPARAMS (SIOCDEVPRIVATE+4) 	/* Set operational parameters */
+#define SIOCGMIIPHY 0x8947 	/* Read from current PHY */
+#define SIOCGMIIREG 0x8948 	/* Read any PHY register */
+#define SIOCSMIIREG 0x8949 	/* Write any PHY register */
 #endif
 
 #include <linux/types.h>
--- lib/x25_sr.c	2000-05-20 15:38:10.000000000 +0200
+++ lib/x25_sr.c	2003-10-18 20:33:31.927574928 +0200
@@ -22,6 +22,7 @@
 #include <sys/socket.h>
 #include <sys/ioctl.h>
 #include <linux/x25.h>
+#include <linux/version.h>
 #include <ctype.h>
 #include <errno.h>
 #include <netdb.h>
@@ -77,7 +78,11 @@
   rt.sigdigits=sigdigits;
 
   /* x25_route_struct.address isn't type struct sockaddr_x25, Why? */
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 0)
   memcpy(&rt.address, &sx25.sx25_addr, sizeof(x25_address));
+#else
+  memcpy(&rt.address, &sx25.sx25_addr, sizeof(struct x25_address));
+#endif
 
   while (*args) {
 	if (!strcmp(*args,"device") || !strcmp(*args,"dev")) {
--- hostname.c	2001-04-08 10:04:23.000000000 -0700
+++ hostname.c	2004-05-07 17:22:14.000000000 -0700
@@ -78,6 +78,7 @@
             fprintf(stderr, _("%s: name too long\n"), program_name);
             break;
         default:
+	    ;
         }
 	exit(1);
     }
@@ -98,6 +99,7 @@
 	    fprintf(stderr, _("%s: name too long\n"), program_name);
 	    break;
 	default:
+	    ;
 	}
 	exit(1);
     };
@@ -117,6 +119,7 @@
 	    fprintf(stderr, _("%s: name too long\n"), program_name);
 	    break;
 	default:
+	    ;
 	}
 	exit(1);
     };
@@ -174,6 +177,7 @@
 	printf("%s\n", hp->h_name);
 	break;
     default:
+	;
     }
 }
 
--- lib/inet_sr.c	2000-02-20 13:46:45.000000000 -0800
+++ lib/inet_sr.c	2004-05-07 17:20:14.000000000 -0700
@@ -105,6 +105,7 @@
     case 2:
        isnet = 0; break;
     default:
+       ;
     }
 
     /* Fill in the other fields. */
--- nameif.c.nameif	2000-10-18 19:26:29.000000000 +0200
+++ nameif.c	2003-03-19 11:02:01.000000000 +0100
@@ -117,7 +117,8 @@
 }
 
 struct change { 
-	struct change *next,**pprev;
+	struct change *next;
+	int found;
 	char ifname[IFNAMSIZ+1];
 	unsigned char mac[6];
 }; 
@@ -139,10 +140,7 @@
 			ch->ifname, pos); 
 	if (parsemac(p,ch->mac) < 0) 
 		complain(_("cannot parse MAC `%s' at %s"), p, pos); 
-	if (clist) 
-		clist->pprev = &ch->next;
 	ch->next = clist;
-	ch->pprev = &clist;
 	clist = ch;
 	return 0; 
 }
@@ -200,7 +198,7 @@
 
 void usage(void)
 {
-	fprintf(stderr, _("usage: nameif [-c configurationfile] [-s] {ifname macaddress}")); 
+	fprintf(stderr, _("usage: nameif [-c configurationfile] [-s] {ifname macaddress}\n")); 
 	exit(1); 
 }
 
@@ -277,21 +275,21 @@
 		ch = lookupmac(mac); 
 		if (!ch) 
 			continue;
-			
-		*ch->pprev = ch->next;
+		
+		ch->found = 1;	
 		if (strcmp(p, ch->ifname)) { 
 			if (setname(p, ch->ifname) < 0)  
 				complain(_("cannot change name of %s to %s: %s"),
 						p, ch->ifname, strerror(errno)); 
 		} 
-		free(ch);
 	} 
 	fclose(ifh); 
 	
 	while (clist) { 
 		struct change *ch = clist;
 		clist = clist->next;
-		warning(_("interface '%s' not found"), ch->ifname); 
+		if (!ch->found)
+			warning(_("interface '%s' not found"), ch->ifname); 
 		free(ch); 
 	}
 
--- nameif.c.ncpy	2006-10-03 14:24:21.000000000 +0200
+++ nameif.c	2006-10-03 14:22:43.000000000 +0200
@@ -100,8 +100,8 @@
 	struct ifreq ifr;
 	opensock(); 
 	memset(&ifr,0,sizeof(struct ifreq));
-	strcpy(ifr.ifr_name, oldname); 
-	strcpy(ifr.ifr_newname, newname); 
+	strncpy(ifr.ifr_name, oldname, IF_NAMESIZE); 
+	strncpy(ifr.ifr_newname, newname, IF_NAMESIZE); 
 	return ioctl(ctl_sk, SIOCSIFNAME, &ifr);
 }
 
--- Makefile.orig	2009-03-05 17:48:38.050953553 +0100
+++ Makefile	2009-03-05 17:49:47.449932082 +0100
@@ -76,7 +76,7 @@
 NET_LIB_PATH = lib
 NET_LIB_NAME = net-tools
 
-PROGS	:= ifconfig hostname arp netstat route rarp slattach plipconfig nameif
+PROGS	:= ifconfig arp netstat route rarp slattach plipconfig nameif
 
 -include config.make
 ifeq ($(HAVE_IP_TOOLS),1)
@@ -224,7 +224,6 @@ installbin:
 	install -m 0755 -d ${BASEDIR}/sbin
 	install -m 0755 -d ${BASEDIR}/bin
 	install -m 0755 arp        ${BASEDIR}/sbin
-	install -m 0755 hostname   ${BASEDIR}/bin
 	install -m 0755 ifconfig   ${BASEDIR}/sbin
 	install -m 0755 nameif     ${BASEDIR}/sbin
 	install -m 0755 netstat    ${BASEDIR}/bin
@@ -239,21 +238,11 @@ endif
 ifeq ($(HAVE_MII),1)
 	install -m 0755 mii-tool   $(BASEDIR)/sbin
 endif
-	ln -fs hostname $(BASEDIR)/bin/dnsdomainname
-	ln -fs hostname $(BASEDIR)/bin/ypdomainname
-	ln -fs hostname $(BASEDIR)/bin/nisdomainname
-	ln -fs hostname $(BASEDIR)/bin/domainname
-ifeq ($(HAVE_AFDECnet),1)
-	ln -fs hostname $(BASEDIR)/bin/nodename
-endif
 
 savebin:
 	@for i in ${BASEDIR}/sbin/arp ${BASEDIR}/sbin/ifconfig \
                  ${BASEDIR}/bin/netstat \
-		 ${BASEDIR}/sbin/rarp ${BASEDIR}/sbin/route \
-		 ${BASEDIR}/bin/hostname ${BASEDIR}/bin/ypdomainname \
-                 ${BASEDIR}/bin/dnsdomainname ${BASEDIR}/bin/nisdomainname \
-		 ${BASEDIR}/bin/domainname ; do \
+		 ${BASEDIR}/sbin/rarp ${BASEDIR}/sbin/route; do
 		 [ -f $$i ] && cp -f $$i $$i.old ; done ; echo Saved.
 
 installdata:
