Add patch by comabug@gmail.com for the -w flag (dont truncate hostnames) #53731....
authorMike Frysinger <vapier@gentoo.org>
Fri, 7 Jan 2005 03:40:06 +0000 (03:40 +0000)
committerMike Frysinger <vapier@gentoo.org>
Fri, 7 Jan 2005 03:40:06 +0000 (03:40 +0000)
sys-apps/net-tools/ChangeLog
sys-apps/net-tools/Manifest
sys-apps/net-tools/files/1.60-appletalk.patch [new file with mode: 0644]
sys-apps/net-tools/files/1.60-man.patch
sys-apps/net-tools/files/1.60-numeric-ports.patch [new file with mode: 0644]
sys-apps/net-tools/files/1.60-wide.patch [new file with mode: 0644]
sys-apps/net-tools/files/digest-net-tools-1.60-r10 [new file with mode: 0644]
sys-apps/net-tools/net-tools-1.60-r10.ebuild [new file with mode: 0644]

index 0aa7a4a0e0950d84d2d271c0eaeeb58fe872067c..37387709626efb57b4d0fde93c6ce5cdd259167a 100644 (file)
@@ -1,6 +1,16 @@
 # ChangeLog for sys-apps/net-tools
 # Copyright 2002-2005 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/sys-apps/net-tools/ChangeLog,v 1.46 2005/01/02 23:43:25 ciaranm Exp $
+# $Header: /var/cvsroot/gentoo-x86/sys-apps/net-tools/ChangeLog,v 1.47 2005/01/07 03:40:06 vapier Exp $
+
+*net-tools-1.60-r10 (06 Jan 2005)
+
+  06 Jan 2005; Mike Frysinger <vapier@gentoo.org>
+  +files/1.60-appletalk.patch, files/1.60-man.patch,
+  +files/1.60-numeric-ports.patch, +files/1.60-wide.patch,
+  +net-tools-1.60-r10.ebuild:
+  Add patch by comabug@gmail.com for the -w flag (dont truncate hostnames)
+  #53731. Fix numeric translation with patch by Mads Martin Joergensen #76756.
+  Ad patch from Debian to parse the appletalk format.
 
   02 Jan 2005; Ciaran McCreesh <ciaranm@gentoo.org> :
   Change encoding to UTF-8 for GLEP 31 compliance
index 9895fd1d36068b3d834c62fb8c42e3fca66a63db..42d9ab2ca57810253cb885f0faca8eb6dd2cf714 100644 (file)
@@ -1,9 +1,24 @@
-MD5 fb13aa838953cd50ff8e73a346f0fca8 ChangeLog 7323
-MD5 34331bb3a0cf59517f6f656296d01317 net-tools-1.60-r9.ebuild 3296
+-----BEGIN PGP SIGNED MESSAGE-----
+Hash: SHA1
+
+MD5 8224cf0be07c251d08f4cbe891777624 ChangeLog 7758
 MD5 9a09f8d531c582e78977dbfd96edc1f2 metadata.xml 164
-MD5 492e3dfd36d8f80cfd73ef58dcb2082e files/net-tools-1.60-get_name.patch 1608
+MD5 201ac629534e1b7f4c80ac33a47db967 net-tools-1.60-r10.ebuild 3521
+MD5 34331bb3a0cf59517f6f656296d01317 net-tools-1.60-r9.ebuild 3296
 MD5 21723cf8906d7431823260022ba2bb12 files/1.60-gcc34.patch 712
-MD5 3d8683073f95e3da2c596bb09c1cbb89 files/1.60-man.patch 737
-MD5 b1288e643ec595e07f37d7fd0d755ba5 files/digest-net-tools-1.60-r9 148
-MD5 e98da89f3a64d4842946223b199fd5c7 files/net-tools-1.60-cleanup-list-handling.patch 1322
+MD5 f8edd79687cbd930b5a5d749b3d8b4f1 files/1.60-man.patch 987
 MD5 51de6eabe2d6d6dc860f72c41cee636b files/net-tools-1.60-2.6-compilefix.patch 784
+MD5 e98da89f3a64d4842946223b199fd5c7 files/net-tools-1.60-cleanup-list-handling.patch 1322
+MD5 7677c2a1d1498eaba49ac1eae30d897a files/1.60-wide.patch 5137
+MD5 492e3dfd36d8f80cfd73ef58dcb2082e files/net-tools-1.60-get_name.patch 1608
+MD5 f0c76a8975a7d82c08059e8f8a24739a files/1.60-numeric-ports.patch 2470
+MD5 b1288e643ec595e07f37d7fd0d755ba5 files/digest-net-tools-1.60-r10 148
+MD5 7af2e1df001555e6624e35e2bf2c9d09 files/1.60-appletalk.patch 3210
+MD5 b1288e643ec595e07f37d7fd0d755ba5 files/digest-net-tools-1.60-r9 148
+-----BEGIN PGP SIGNATURE-----
+Version: GnuPG v1.9.10 (GNU/Linux)
+
+iD8DBQFB3gSproRuSHgZdywRAqKbAJoC6xlqGu1Fs2hu36/mVFfZpseM1ACdGMzv
+AjxkOdlDas1WPxTFtgRGZec=
+=rXlY
+-----END PGP SIGNATURE-----
diff --git a/sys-apps/net-tools/files/1.60-appletalk.patch b/sys-apps/net-tools/files/1.60-appletalk.patch
new file mode 100644 (file)
index 0000000..a7ec3f9
--- /dev/null
@@ -0,0 +1,99 @@
+Ripped from debian's patchset
+
+--- net-tools-1.60.orig/lib/ddp_gr.c
++++ net-tools-1.60/lib/ddp_gr.c
+@@ -1,3 +1,20 @@
++/*
++ * lib/ddp_gr.c         Prinbting of DDP (AppleTalk) routing table
++ *                      used by the NET-LIB.
++ *
++ * NET-LIB      
++ *
++ * Version:     $Id: 1.60-appletalk.patch,v 1.1 2005/01/07 03:40:06 vapier Exp $
++ *
++ * Author:      Ajax <ajax@firest0rm.org>
++ *
++ * Modification:
++ *  2002-06-02 integrated into main source by Bernd Eckenfels
++ *
++ */
++
++/* TODO: name lookups (/etc/atalk.names?  NBP?) */
++
+ #include "config.h"
+ 
+ #if HAVE_AFATALK
+@@ -16,9 +33,61 @@
+ #include "pathnames.h"
+ #include "intl.h"
+ 
++/* stolen from inet_gr.c */
++#define flags_decode(i,o) do {                  \
++        o[0] = '\0';                            \
++        if (i & RTF_UP) strcat(o, "U");         \
++        if (i & RTF_GATEWAY) strcat(o, "G");    \
++        if (i & RTF_REJECT) strcat(o, "!");     \
++        if (i & RTF_HOST) strcat(o, "H");       \
++        if (i & RTF_REINSTATE) strcat(o, "R");  \
++        if (i & RTF_DYNAMIC) strcat(o, "D");    \
++        if (i & RTF_MODIFIED) strcat(o, "M");   \
++        if (i & RTF_DEFAULT) strcat(o, "d");    \
++        if (i & RTF_ALLONLINK) strcat(o, "a");  \
++        if (i & RTF_ADDRCONF) strcat(o, "c");   \
++        if (i & RTF_NONEXTHOP) strcat(o, "o");  \
++        if (i & RTF_EXPIRES) strcat(o, "e");    \
++        if (i & RTF_CACHE) strcat(o, "c");      \
++        if (i & RTF_FLOW) strcat(o, "f");       \
++        if (i & RTF_POLICY) strcat(o, "p");     \
++        if (i & RTF_LOCAL) strcat(o, "l");      \
++        if (i & RTF_MTU) strcat(o, "u");        \
++        if (i & RTF_WINDOW) strcat(o, "w");     \
++        if (i & RTF_IRTT) strcat(o, "i");       \
++        if (i & RTF_NOTCACHED) strcat(o, "n");  \
++    } while (0)
++
+ int DDP_rprint(int options)
+ {
+-    fprintf(stderr, _("Routing table for `ddp' not yet supported.\n"));
+-    return (1);
++    FILE *fp;
++    char *dest, *gw, *dev, *flags;
++    char oflags[32];
++    char *hdr = "Destination     Gateway         Device          Flags";
++
++    fp = fopen(_PATH_PROCNET_ATALK_ROUTE, "r");
++
++    if (!fp) {
++        perror("Error opening " _PATH_PROCNET_ATALK_ROUTE);
++        fprintf(stderr, "DDP (AppleTalk) not configured on this system.\n");
++        return 1;
++    }
++
++    fscanf(fp, "%as %as %as %as\n", &dest, &gw, &flags, &dev);
++    free(dest); free(gw); free(dev); free(flags);
++
++    printf("%s\n", hdr);
++
++    while (fscanf(fp, "%as %as %as %as\n", &dest, &gw, &flags, &dev) == 4) {
++        int iflags = atoi(flags);
++        flags_decode(iflags, oflags);
++        printf("%-16s%-16s%-16s%-s\n", dest, gw, dev, oflags);
++        free(dest); free(gw); free(dev); free(flags);
++    }
++
++    fclose(fp);
++    
++    return 0;
++
+ }
+ #endif
+--- net-tools-1.60.orig/lib/pathnames.h
++++ net-tools-1.60/lib/pathnames.h
+@@ -45,6 +44,7 @@
+ #define _PATH_PROCNET_X25              "/proc/net/x25"
+ #define _PATH_PROCNET_X25_ROUTE                "/proc/net/x25_routes"
+ #define _PATH_PROCNET_DEV_MCAST               "/proc/net/dev_mcast"
++#define _PATH_PROCNET_ATALK_ROUTE     "/proc/net/atalk_route"
+ 
+ /* pathname for the netlink device */
+ #define _PATH_DEV_ROUTE       "/dev/route"
index ebcb09a40b8d38723f648ba8c4411db5e5f82c4e..61e53416a9f02434515baeaf8f5c14d6d96195d1 100644 (file)
@@ -1,3 +1,10 @@
+splite writes:
+The netstat(8) man page in sys-apps/net-tools states that the "-i" and
+"--interfaces" flags to netstat take an optional argument denoting a 
+particular interface when it in fact does not.
+
+http://bugs.gentoo.org/show_bug.cgi?id=29677
+
 --- man/en_US/netstat.8.orig   2003-09-26 10:08:19.000000000 -0500
 +++ man/en_US/netstat.8        2003-09-26 10:25:39.000000000 -0500
 @@ -44,7 +44,6 @@
diff --git a/sys-apps/net-tools/files/1.60-numeric-ports.patch b/sys-apps/net-tools/files/1.60-numeric-ports.patch
new file mode 100644 (file)
index 0000000..c8fbc25
--- /dev/null
@@ -0,0 +1,56 @@
+Mads Martin Joergensen writes:
+According to the manual the option "--numeric-ports" should not 
+affect host resolution, but it does. All connected hosts are displayed 
+with numeric values instead of their FQDN.
+
+http://bugs.gentoo.org/show_bug.cgi?id=76756
+
+--- net-tools-1.60/netstat.c
++++ net-tools-1.60/netstat.c
+@@ -850,8 +850,8 @@
+       txq = 0L;
+     }
+     safe_strncpy(local_addr, ap->sprint((struct sockaddr *) &localaddr, 
+-                                      flag_not), sizeof(local_addr));
++                                      flag_not & FLAG_NUM_HOST), sizeof(local_addr));
+-    safe_strncpy(rem_addr, ap->sprint((struct sockaddr *) &remaddr, flag_not),
++    safe_strncpy(rem_addr, ap->sprint((struct sockaddr *) &remaddr, flag_not & FLAG_NUM_HOST),
+                sizeof(rem_addr));
+     if (flag_all || (flag_lst && !rem_port) || (!flag_lst && rem_port)) {
+       snprintf(buffer, sizeof(buffer), "%s",
+@@ -1004,7 +1004,7 @@
+     if (flag_all || (notnull(remaddr) && !flag_lst) || (!notnull(remaddr) && flag_lst))
+     {
+         safe_strncpy(local_addr, ap->sprint((struct sockaddr *) &localaddr, 
+-                                          flag_not), sizeof(local_addr));
++                                          flag_not & FLAG_NUM_HOST), sizeof(local_addr));
+       snprintf(buffer, sizeof(buffer), "%s",
+                get_sname(htons(local_port), "udp",
+                          flag_not & FLAG_NUM_PORT));
+@@ -1016,7 +1016,7 @@
+       snprintf(buffer, sizeof(buffer), "%s",
+                get_sname(htons(rem_port), "udp", flag_not & FLAG_NUM_PORT));
+         safe_strncpy(rem_addr, ap->sprint((struct sockaddr *) &remaddr, 
+-                                        flag_not), sizeof(rem_addr));
++                                        flag_not & FLAG_NUM_HOST), sizeof(rem_addr));
+       if ((strlen(rem_addr) + strlen(buffer)) > 22)
+           rem_addr[22 - strlen(buffer)] = '\0';
+       strcat(rem_addr, ":");
+@@ -1126,7 +1126,7 @@
+                get_sname(htons(local_port), "raw",
+                          flag_not & FLAG_NUM_PORT));
+         safe_strncpy(local_addr, ap->sprint((struct sockaddr *) &localaddr, 
+-                                          flag_not), sizeof(local_addr));
++                                          flag_not & FLAG_NUM_HOST), sizeof(local_addr));
+       if ((strlen(local_addr) + strlen(buffer)) > 22)
+           local_addr[22 - strlen(buffer)] = '\0';
+       strcat(local_addr, ":");
+@@ -1135,7 +1135,7 @@
+       snprintf(buffer, sizeof(buffer), "%s",
+                get_sname(htons(rem_port), "raw", flag_not & FLAG_NUM_PORT));
+         safe_strncpy(rem_addr, ap->sprint((struct sockaddr *) &remaddr, 
+-                                        flag_not), sizeof(rem_addr));
++                                        flag_not & FLAG_NUM_HOST), sizeof(rem_addr));
+       if ((strlen(rem_addr) + strlen(buffer)) > 22)
+           rem_addr[22 - strlen(buffer)] = '\0';
+       strcat(rem_addr, ":");
diff --git a/sys-apps/net-tools/files/1.60-wide.patch b/sys-apps/net-tools/files/1.60-wide.patch
new file mode 100644 (file)
index 0000000..13b2557
--- /dev/null
@@ -0,0 +1,136 @@
+comabug@gmail.com writes:
+
+net-tools' netstat should have a -W flag like FreeBSD.
+There is currently no way to get the full hostname from netstat 
+for local/remote hostnames.
+
+http://bugs.gentoo.org/show_bug.cgi?id=53731
+
+diff -ru net-tools-1.60.orig/man/en_US/netstat.8 net-tools-1.60/man/en_US/netstat.8
+--- net-tools-1.60.orig/man/en_US/netstat.8    2001-01-07 13:43:57.000000000 +0100
++++ net-tools-1.60/man/en_US/netstat.8 2004-06-12 19:30:55.566822928 +0200
+@@ -24,6 +24,7 @@
+ .RB [ \-\-all | \-a ]
+ .RB [ \-\-numeric | \-n ]
+ .RB [ \-\-numeric-hosts ] [ \-\-numeric-ports ] [ \-\-numeric-ports ]
++.RB [ \-\-wide | \-W]
+ .RB [ \-\-symbolic | \-N ]
+ .RB [ \-\-extend | \-e  [ \-\-extend | \-e] ]
+ .RB [ \-\-timers | \-o ]
+@@ -55,6 +56,7 @@
+ .RB { \-\-groups | \-g }
+ .RB [ \-\-numeric | \-n ]
+ .RB [ \-\-numeric-hosts ] [ \-\-numeric-ports ] [ \-\-numeric-ports ]
++.RB [ \-\-wide | \-W]
+ .RB [ \-\-continuous | \-c]
+ .P
+ .B netstat
+@@ -124,6 +126,8 @@
+ .SS "\-\-numeric-users"
+ shows numerical user IDs but does not affect the resolution of host or
+ port names.
++.SS "\-\-wide , \-W"
++Don't truncate host names.
+ 
+ .SS "\-\-protocol=\fIfamily \fR, \fB\-A"
+ Specifies the address families (perhaps better described as low level
+diff -ru net-tools-1.60.orig/netstat.c net-tools-1.60/netstat.c
+--- net-tools-1.60.orig/netstat.c      2001-04-15 16:41:17.000000000 +0200
++++ net-tools-1.60/netstat.c   2004-06-12 19:50:23.459276288 +0200
+@@ -149,6 +149,7 @@
+ int flag_prg = 0;
+ int flag_arg = 0;
+ int flag_ver = 0;
++int flag_wid = 0;
+ 
+ FILE *procinfo;
+ 
+@@ -772,7 +773,7 @@
+                get_sname(htons(local_port), "tcp",
+                          flag_not & FLAG_NUM_PORT));
+ 
+-      if ((strlen(local_addr) + strlen(buffer)) > 22)
++      if (!flag_wid && ((strlen(local_addr) + strlen(buffer)) > 22))
+           local_addr[22 - strlen(buffer)] = '\0';
+ 
+       strcat(local_addr, ":");
+@@ -780,7 +781,7 @@
+       snprintf(buffer, sizeof(buffer), "%s",
+                get_sname(htons(rem_port), "tcp", flag_not & FLAG_NUM_PORT));
+ 
+-      if ((strlen(rem_addr) + strlen(buffer)) > 22)
++      if (!flag_wid && ((strlen(rem_addr) + strlen(buffer)) > 22))
+           rem_addr[22 - strlen(buffer)] = '\0';
+ 
+       strcat(rem_addr, ":");
+@@ -922,7 +923,7 @@
+       snprintf(buffer, sizeof(buffer), "%s",
+                get_sname(htons(local_port), "udp",
+                          flag_not & FLAG_NUM_PORT));
+-      if ((strlen(local_addr) + strlen(buffer)) > 22)
++      if (!flag_wid && ((strlen(local_addr) + strlen(buffer)) > 22))
+           local_addr[22 - strlen(buffer)] = '\0';
+       strcat(local_addr, ":");
+       strcat(local_addr, buffer);
+@@ -931,7 +932,7 @@
+                get_sname(htons(rem_port), "udp", flag_not & FLAG_NUM_PORT));
+         safe_strncpy(rem_addr, ap->sprint((struct sockaddr *) &remaddr, 
+                                         flag_not & FLAG_NUM_HOST), sizeof(rem_addr));
+-      if ((strlen(rem_addr) + strlen(buffer)) > 22)
++      if (!flag_wid && ((strlen(rem_addr) + strlen(buffer)) > 22))
+           rem_addr[22 - strlen(buffer)] = '\0';
+       strcat(rem_addr, ":");
+       strcat(rem_addr, buffer);
+@@ -1041,7 +1042,7 @@
+                          flag_not & FLAG_NUM_PORT));
+         safe_strncpy(local_addr, ap->sprint((struct sockaddr *) &localaddr, 
+                                           flag_not & FLAG_NUM_HOST), sizeof(local_addr));
+-      if ((strlen(local_addr) + strlen(buffer)) > 22)
++      if (!flag_wid && ((strlen(local_addr) + strlen(buffer)) > 22))
+           local_addr[22 - strlen(buffer)] = '\0';
+       strcat(local_addr, ":");
+       strcat(local_addr, buffer);
+@@ -1050,7 +1051,7 @@
+                get_sname(htons(rem_port), "raw", flag_not & FLAG_NUM_PORT));
+         safe_strncpy(rem_addr, ap->sprint((struct sockaddr *) &remaddr, 
+                                         flag_not & FLAG_NUM_HOST), sizeof(rem_addr));
+-      if ((strlen(rem_addr) + strlen(buffer)) > 22)
++          if (!flag_wid && ((strlen(rem_addr) + strlen(buffer)) > 22))
+           rem_addr[22 - strlen(buffer)] = '\0';
+       strcat(rem_addr, ":");
+       strcat(rem_addr, buffer);
+@@ -1492,6 +1493,7 @@
+     fprintf(stderr, _("        --numeric-hosts          don't resolve host names\n"));
+     fprintf(stderr, _("        --numeric-ports          don't resolve port names\n"));
+     fprintf(stderr, _("        --numeric-users          don't resolve user names\n"));
++    fprintf(stderr, _("        -W, --wide               don't truncate host names\n"));
+     fprintf(stderr, _("        -N, --symbolic           resolve hardware names\n"));
+     fprintf(stderr, _("        -e, --extend             display other/more information\n"));
+     fprintf(stderr, _("        -p, --programs           display PID/Program name for sockets\n"));
+@@ -1541,6 +1543,7 @@
+       {"numeric-hosts", 0, 0, '!'},
+       {"numeric-ports", 0, 0, '@'},
+       {"numeric-users", 0, 0, '#'},
++      {"wide", 0, 0, 'W'},
+       {"symbolic", 0, 0, 'N'},
+       {"cache", 0, 0, 'C'},
+       {"fib", 0, 0, 'F'},
+@@ -1556,7 +1559,7 @@
+     getroute_init();          /* Set up AF routing support */
+ 
+     afname[0] = '\0';
+-    while ((i = getopt_long(argc, argv, "MCFA:acdegphinNorstuVv?wxl", longopts, &lop)) != EOF)
++    while ((i = getopt_long(argc, argv, "MCFA:acdegphinWNorstuVv?wxl", longopts, &lop)) != EOF)
+       switch (i) {
+       case -1:
+           break;
+@@ -1612,6 +1615,9 @@
+       case '#':
+           flag_not |= FLAG_NUM_USER;
+           break;
++      case 'W':
++          flag_wid++;
++          break;
+       case 'N':
+           flag_not |= FLAG_SYM;
+           break;
diff --git a/sys-apps/net-tools/files/digest-net-tools-1.60-r10 b/sys-apps/net-tools/files/digest-net-tools-1.60-r10
new file mode 100644 (file)
index 0000000..0a4ac9e
--- /dev/null
@@ -0,0 +1,2 @@
+MD5 888774accab40217dde927e21979c165 net-tools-1.60.tar.bz2 198520
+MD5 d733ef8b0bad3dbd0cf98e14b45fe1a6 net-tools-1.60-gentoo-extra-1.tar.bz2 10370
diff --git a/sys-apps/net-tools/net-tools-1.60-r10.ebuild b/sys-apps/net-tools/net-tools-1.60-r10.ebuild
new file mode 100644 (file)
index 0000000..6e5f39e
--- /dev/null
@@ -0,0 +1,125 @@
+# Copyright 1999-2005 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/sys-apps/net-tools/net-tools-1.60-r10.ebuild,v 1.1 2005/01/07 03:40:06 vapier Exp $
+
+inherit flag-o-matic toolchain-funcs eutils
+
+DESCRIPTION="Standard Linux networking tools"
+HOMEPAGE="http://sites.inka.de/lina/linux/NetTools/"
+SRC_URI="http://www.tazenda.demon.co.uk/phil/net-tools/${P}.tar.bz2
+       mirror://gentoo/${P}-gentoo-extra-1.tar.bz2"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86"
+IUSE="nls build static uclibc"
+
+RDEPEND=""
+DEPEND="nls? ( sys-devel/gettext )
+       >=sys-apps/sed-4"
+
+src_unpack() {
+       PATCHDIR=${WORKDIR}/${P}-gentoo
+
+       unpack ${A}
+       cd ${S}
+
+       # Compile fix for 2.6 kernels
+       epatch ${FILESDIR}/net-tools-1.60-2.6-compilefix.patch
+       epatch ${FILESDIR}/${PV}-gcc34.patch #48167
+       epatch ${FILESDIR}/net-tools-1.60-cleanup-list-handling.patch
+
+       # Stack smashing attack in if_readlist_proc() from ifconfig - bug #58633
+       epatch ${FILESDIR}/net-tools-1.60-get_name.patch
+
+       # some redhat patches
+       epatch ${PATCHDIR}/net-tools-1.54-ipvs.patch
+       epatch ${PATCHDIR}/net-tools-1.57-bug22040.patch
+       epatch ${PATCHDIR}/net-tools-1.60-manydevs.patch
+       epatch ${PATCHDIR}/net-tools-1.60-miiioctl.patch
+       epatch ${PATCHDIR}/net-tools-1.60-virtualname.patch
+       epatch ${PATCHDIR}/net-tools-1.60-cycle.patch
+
+       # GCC-3.3 Compile Fix
+       epatch ${PATCHDIR}/${P}-multiline-string.patch
+
+       # Misc patches, see headers of patches for more info
+       epatch ${FILESDIR}/${PV}-man.patch #29677
+       epatch ${FILESDIR}/${PV}-numeric-ports.patch #76756
+       epatch ${FILESDIR}/${PV}-appletalk.patch #debian
+       epatch ${FILESDIR}/${PV}-wide.patch #53731
+
+       cp ${PATCHDIR}/net-tools-1.60-config.h config.h
+       cp ${PATCHDIR}/net-tools-1.60-config.make config.make
+
+       if use static ; then
+               append-flags -static
+               append-ldflags -static
+       fi
+
+       sed -i \
+               -e 's/^libdir:/libdir: version.h/' \
+               -e "s:-O2 -Wall -g:${CFLAGS}:" \
+               -e "/^LOPTS =/ s/\$/${CFLAGS}/" \
+               Makefile || die "sed Makefile failed"
+
+       sed -i \
+               -e "s:/usr/man:/usr/share/man:" \
+               man/Makefile || die "sed man/Makefile failed"
+
+       if ! use uclibc ; then
+               cp -f ${PATCHDIR}/ether-wake.c ${S}
+               cp -f ${PATCHDIR}/ether-wake.8 ${S}/man/en_US
+       fi
+
+       if ! use nls ; then
+               sed -i -e 's:\(#define I18N\) 1:\1 0:' config.h || \
+                       die "sed config.h failed"
+
+               sed -i -e 's:I18N=1:I18N=0:' config.make ||
+                       die "sed config.make failed"
+       fi
+
+       # sync timestamps
+       touch config.h
+       touch -r config.h config.make
+}
+
+src_compile() {
+       # configure shouldn't run anymore so bug #820 shouldn't apply...
+       tc-export CC
+       emake libdir || die "emake libdir failed"
+       emake || die "emake failed"
+
+       if use nls ; then
+               emake i18ndir || die "emake i18ndir failed"
+       fi
+
+       if ! use uclibc ; then
+               $(tc-getCC) ${CFLAGS} -o ether-wake ether-wake.c || die "ether-wake failed to build"
+       fi
+}
+
+src_install() {
+       make BASEDIR="${D}" install || die "make install failed"
+
+       if ! use uclibc ; then
+               dosbin ether-wake || die "dosbin failed"
+       fi
+       mv ${D}/bin/* ${D}/sbin || die "mv failed"
+       mv ${D}/sbin/{hostname,domainname,netstat,dnsdomainname,ypdomainname,nisdomainname} ${D}/bin \
+               || die "mv failed"
+       use uclibc && rm -f ${D}/bin/{yp,nis}domainname
+       dodir /usr/bin
+       dosym /bin/hostname /usr/bin/hostname
+
+       if ! use build
+       then
+               dodoc README README.ipv6 TODO
+       else
+               #only install /bin/hostname
+               rm -rf ${D}/usr ${D}/sbin
+               rm -f ${D}/bin/{domainname,netstat,dnsdomainname}
+               rm -f ${D}/bin/{ypdomainname,nisdomainname}
+       fi
+}