summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGrant Goodyear <g2boojum@gentoo.org>2002-07-16 17:17:05 +0000
committerGrant Goodyear <g2boojum@gentoo.org>2002-07-16 17:17:05 +0000
commit57df4b11ad8243bdb8c9c4ddd0859ce2b4ab078f (patch)
tree28cfc80d8dd46454e2ca9e0806d8ad51f2013cbb /sys-apps/net-tools
parentAdded new package: sbcl. (diff)
downloadhistorical-57df4b11ad8243bdb8c9c4ddd0859ce2b4ab078f.tar.gz
historical-57df4b11ad8243bdb8c9c4ddd0859ce2b4ab078f.tar.bz2
historical-57df4b11ad8243bdb8c9c4ddd0859ce2b4ab078f.zip
Added some RH patches
Diffstat (limited to 'sys-apps/net-tools')
-rw-r--r--sys-apps/net-tools/ChangeLog8
-rw-r--r--sys-apps/net-tools/files/digest-net-tools-1.60-r51
-rw-r--r--sys-apps/net-tools/files/ether-wake.c340
-rw-r--r--sys-apps/net-tools/files/net-tools-1.57-bug22040.patch50
-rw-r--r--sys-apps/net-tools/files/net-tools-1.60-config.h74
-rw-r--r--sys-apps/net-tools/files/net-tools-1.60-config.make35
-rw-r--r--sys-apps/net-tools/files/net-tools-1.60-manydevs.patch13
-rw-r--r--sys-apps/net-tools/files/net-tools-1.60-miiioctl.patch17
-rw-r--r--sys-apps/net-tools/net-tools-1.60-r5.ebuild80
9 files changed, 617 insertions, 1 deletions
diff --git a/sys-apps/net-tools/ChangeLog b/sys-apps/net-tools/ChangeLog
index c8d7ea746592..dc2ccb34aa32 100644
--- a/sys-apps/net-tools/ChangeLog
+++ b/sys-apps/net-tools/ChangeLog
@@ -1,6 +1,12 @@
# ChangeLog for sys-apps/net-tools
# Copyright 2002 Gentoo Technologies, Inc.; Distributed under the GPL
-# $Header: /var/cvsroot/gentoo-x86/sys-apps/net-tools/ChangeLog,v 1.5 2002/07/14 19:20:18 aliz Exp $
+# $Header: /var/cvsroot/gentoo-x86/sys-apps/net-tools/ChangeLog,v 1.6 2002/07/16 17:17:05 g2boojum Exp $
+
+*net-tools-1.60-r5 (16 Jul 2002)
+
+ 16 Jul 2002; Grant Goodyear <g2boojum@gentoo.org> ChangeLog :
+
+ added some RH patches
*net-tools-1.60-r4 (21 Jun 2002)
diff --git a/sys-apps/net-tools/files/digest-net-tools-1.60-r5 b/sys-apps/net-tools/files/digest-net-tools-1.60-r5
new file mode 100644
index 000000000000..909d0b74ea6f
--- /dev/null
+++ b/sys-apps/net-tools/files/digest-net-tools-1.60-r5
@@ -0,0 +1 @@
+MD5 888774accab40217dde927e21979c165 net-tools-1.60.tar.bz2 198520
diff --git a/sys-apps/net-tools/files/ether-wake.c b/sys-apps/net-tools/files/ether-wake.c
new file mode 100644
index 000000000000..3d63e73c9c61
--- /dev/null
+++ b/sys-apps/net-tools/files/ether-wake.c
@@ -0,0 +1,340 @@
+/* ether-wake.c: Send a magic packet to wake up sleeping machines. */
+
+static char version_msg[] =
+"ether-wake.c: v1.05 12/28/2000 Donald Becker, http://www.scyld.com/";
+static char brief_usage_msg[] =
+"usage: ether-wake [-i <ifname>] [-p aa:bb:cc:dd[:ee:ff]] 00:11:22:33:44:55\n"
+" Use '-u' to see the complete set of options.\n";
+static char usage_msg[] =
+"usage: ether-wake [-i <ifname>] [-p aa:bb:cc:dd[:ee:ff]] 00:11:22:33:44:55
+
+ This program generates and transmits a Wake-On-LAN (WOL) \"Magic Packet\",
+ used for restarting machines that have been soft-powered-down
+ (ACPI D3-warm state). It currently generates the standard AMD Magic Packet
+ format, with an optional password appended.
+
+ The single required parameter is the Ethernet MAC (station) address
+ of the machine to wake. This is typically retrieved with the 'arp'
+ program while the target machine is awake.
+
+ Options:
+ -b Send wake-up packet to the broadcast address.
+ -D Increase the debug level.
+ -i ifname Use interface IFNAME instead of the default 'eth0'.
+ -p <pw> Append the four or six byte password PW to the packet.
+ A password is only required for a few adapter types.
+ The password may be specified in ethernet hex format
+ or dotted decimal (Internet address)
+ -p 00:22:44:66:88:aa
+ -p 192.168.1.1
+";
+
+/*
+ This program generates and transmits a Wake-On-LAN (WOL) "Magic Packet",
+ used for restarting machines that have been soft-powered-down
+ (ACPI D3-warm state). It currently generates the standard AMD Magic Packet
+ format, with an optional password appended.
+
+ This software may be used and distributed according to the terms
+ of the GNU Public License, incorporated herein by reference.
+ Contact the author for use under other terms.
+
+ This source file is part of the network tricks package.
+
+ The author may be reached as becker@scyld, or C/O
+ Scyld Computing Corporation
+ 410 Severn Ave., Suite 210
+ Annapolis MD 21403
+
+ The single required parameter is the Ethernet MAC (station) address
+ of the machine to wake. This is typically retrieved with the 'arp'
+ program while the target machine is awake.
+
+ Options:
+ -b Send wake-up packet to the broadcast address.
+ -D Increase the debug level.
+ -i ifname Use interface IFNAME instead of the default "eth0".
+ -p <pw> Append the four or six byte password PW to the packet.
+ A password is only required for a few adapter types.
+ The password may be specified in ethernet hex format
+ or dotted decimal (Internet address)
+ -p 00:22:44:66:88:aa
+ -p 192.168.1.1
+
+ Note: On some systems dropping root capability allows the process to be
+ dumped, traced or debugged.
+ If someone traces this program, they get control of a raw socket.
+ Linux handles this safely, but beware when porting this program.
+
+*/
+
+#include <unistd.h>
+#include <stdlib.h>
+#include <stdio.h>
+#include <errno.h>
+#include <ctype.h>
+#include <string.h>
+
+#if 0 /* Only exists on some versions. */
+#include <ioctls.h>
+#endif
+
+#include <sys/socket.h>
+
+#include <sys/types.h>
+#include <sys/ioctl.h>
+#include <linux/if.h>
+
+#ifdef UIO_MAXIOV
+/*extern int setsockopt __P ((int __fd, int __level, int __optname,
+ __ptr_t __optval, int __optlen));*/
+#else /* New, correct head files. */
+#include <sys/socket.h>
+#endif
+#ifdef USE_SENDMSG
+#include <iovec.h>
+#endif
+
+u_char outpack[1000];
+int outpack_sz = 0;
+int debug = 0;
+u_char wol_passwd[6];
+int wol_passwd_sz = 0;
+
+static int opt_no_src_addr = 0, opt_broadcast = 0;
+
+static int get_fill(unsigned char *pkt, char *arg);
+static int get_wol_pw(const char *optarg);
+
+int main(int argc, char *argv[])
+{
+ struct sockaddr whereto; /* who to wake up */
+ char *ifname = "eth0";
+ int one = 1; /* True, for socket options. */
+ int s; /* Raw socket */
+ int errflag = 0, verbose = 0, do_version = 0;
+ int i, c, pktsize;
+
+ while ((c = getopt(argc, argv, "bDi:p:uvV")) != -1)
+ switch (c) {
+ case 'b': opt_broadcast++; break;
+ case 'D': debug++; break;
+ case 'i': ifname = optarg; break;
+ case 'p': get_wol_pw(optarg); break;
+ case 'u': printf(usage_msg); return 0;
+ case 'v': verbose++; break;
+ case 'V': do_version++; break;
+ case '?':
+ errflag++;
+ }
+ if (verbose || do_version)
+ printf("%s\n", version_msg);
+ if (errflag) {
+ fprintf(stderr, brief_usage_msg);
+ return 3;
+ }
+
+ if (optind == argc) {
+ fprintf(stderr, "Specify the Ethernet address as 00:11:22:33:44:55.\n");
+ return 3;
+ }
+
+ /* Note: PF_INET, SOCK_DGRAM, IPPROTO_UDP would allow SIOCGIFHWADDR to
+ work as non-root, but we need SOCK_PACKET to specify the Ethernet
+ destination address. */
+ if ((s = socket(AF_INET, SOCK_PACKET, SOCK_PACKET)) < 0) {
+ if (errno == EPERM)
+ fprintf(stderr, "ether-wake must run as root\n");
+ else
+ perror("ether-wake: socket");
+ if (! debug)
+ return 2;
+ }
+ /* Don't revert if debugging allows a normal user to get the raw socket. */
+ setuid(getuid());
+
+ pktsize = get_fill(outpack, argv[optind]);
+
+ /* Fill in the source address, if possible.
+ The code to retrieve the local station address is Linux specific. */
+ if (! opt_no_src_addr){
+ struct ifreq if_hwaddr;
+ unsigned char *hwaddr = if_hwaddr.ifr_hwaddr.sa_data;
+
+ strcpy(if_hwaddr.ifr_name, ifname);
+ if (ioctl(s, SIOCGIFHWADDR, &if_hwaddr) < 0) {
+ fprintf(stderr, "SIOCGIFHWADDR on %s failed: %s\n", ifname,
+ strerror(errno));
+ return 1;
+ }
+ memcpy(outpack+6, if_hwaddr.ifr_hwaddr.sa_data, 6);
+
+ if (verbose) {
+ printf("The hardware address (SIOCGIFHWADDR) of %s is type %d "
+ "%2.2x:%2.2x:%2.2x:%2.2x:%2.2x:%2.2x.\n", ifname,
+ if_hwaddr.ifr_hwaddr.sa_family, hwaddr[0], hwaddr[1],
+ hwaddr[2], hwaddr[3], hwaddr[4], hwaddr[5]);
+ }
+ }
+
+ if (wol_passwd_sz > 0) {
+ memcpy(outpack+pktsize, wol_passwd, wol_passwd_sz);
+ pktsize += wol_passwd_sz;
+ }
+
+ if (verbose > 1) {
+ printf("The final packet is: ");
+ for (i = 0; i < pktsize; i++)
+ printf(" %2.2x", outpack[i]);
+ printf(".\n");
+ }
+
+ /* This is necessary for broadcasts to work */
+ if (setsockopt(s, SOL_SOCKET, SO_BROADCAST, (char *)&one, sizeof(one)) < 0)
+ perror("setsockopt: SO_BROADCAST");
+
+ whereto.sa_family = 0;
+ strcpy(whereto.sa_data, ifname);
+
+ if ((i = sendto(s, outpack, pktsize, 0, &whereto, sizeof(whereto))) < 0)
+ perror("sendto");
+ else if (debug)
+ printf("Sendto worked ! %d.\n", i);
+
+#ifdef USE_SEND
+ if (bind(s, &whereto, sizeof(whereto)) < 0)
+ perror("bind");
+ else if (send(s, outpack, 100, 0) < 0)
+ perror("send");
+#endif
+#ifdef USE_SENDMSG
+ {
+ struct msghdr msghdr;
+ struct iovec iovector[1];
+ msghdr.msg_name = &whereto;
+ msghdr.msg_namelen = sizeof(whereto);
+ msghdr.msg_iov = iovector;
+ msghdr.msg_iovlen = 1;
+ iovector[0].iov_base = outpack;
+ iovector[0].iov_len = pktsize;
+ if ((i = sendmsg(s, &msghdr, 0)) < 0)
+ perror("sendmsg");
+ else if (debug)
+ printf("sendmsg worked, %d (%d).\n", i, errno);
+ }
+#endif
+
+ return 0;
+}
+
+static int get_fill(unsigned char *pkt, char *arg)
+{
+ int sa[6];
+ unsigned char station_addr[6];
+ int byte_cnt;
+ int offset, i;
+ char *cp;
+
+ for (cp = arg; *cp; cp++)
+ if (*cp != ':' && !isxdigit(*cp)) {
+ (void)fprintf(stderr,
+ "ping: patterns must be specified as hex digits.\n");
+ exit(2);
+ }
+
+ byte_cnt = sscanf(arg, "%2x:%2x:%2x:%2x:%2x:%2x",
+ &sa[0], &sa[1], &sa[2], &sa[3], &sa[4], &sa[5]);
+ for (i = 0; i < 6; i++)
+ station_addr[i] = sa[i];
+ if (debug)
+ fprintf(stderr, "Command line stations address is "
+ "%2.2x:%2.2x:%2.2x:%2.2x:%2.2x:%2.2x.\n",
+ sa[0], sa[1], sa[2], sa[3], sa[4], sa[5]);
+
+ if (byte_cnt != 6) {
+ (void)fprintf(stderr,
+ "ping: The Magic Packet address must be specified as "
+ "00:11:22:33:44:55.\n");
+ exit(2);
+ }
+
+ if (opt_broadcast)
+ memset(pkt+0, 0xff, 6);
+ else
+ memcpy(pkt, station_addr, 6);
+ memcpy(pkt+6, station_addr, 6);
+ pkt[12] = 0x08; /* Or 0x0806 for ARP, 0x8035 for RARP */
+ pkt[13] = 0x42;
+ offset = 14;
+
+ memset(pkt+offset, 0xff, 6);
+ offset += 6;
+
+ for (i = 0; i < 16; i++) {
+ memcpy(pkt+offset, station_addr, 6);
+ offset += 6;
+ }
+ if (debug) {
+ fprintf(stderr, "Packet is ");
+ for (i = 0; i < offset; i++)
+ fprintf(stderr, " %2.2x", pkt[i]);
+ fprintf(stderr, ".\n");
+ }
+ return offset;
+}
+
+static int get_wol_pw(const char *optarg)
+{
+ int passwd[6];
+ int byte_cnt;
+ int i;
+
+ byte_cnt = sscanf(optarg, "%2x:%2x:%2x:%2x:%2x:%2x",
+ &passwd[0], &passwd[1], &passwd[2],
+ &passwd[3], &passwd[4], &passwd[5]);
+ if (byte_cnt < 4)
+ byte_cnt = sscanf(optarg, "%d.%d.%d.%d",
+ &passwd[0], &passwd[1], &passwd[2], &passwd[3]);
+ if (byte_cnt < 4) {
+ fprintf(stderr, "Unable to read the Wake-On-LAN password.\n");
+ return 0;
+ }
+ printf(" The Magic packet password is %2.2x %2.2x %2.2x %2.2x (%d).\n",
+ passwd[0], passwd[1], passwd[2], passwd[3], byte_cnt);
+ for (i = 0; i < byte_cnt; i++)
+ wol_passwd[i] = passwd[i];
+ return wol_passwd_sz = byte_cnt;
+}
+
+#if 0
+{
+ to = (struct sockaddr_in *)&whereto;
+ to->sin_family = AF_INET;
+ if (inet_aton(target, &to->sin_addr)) {
+ hostname = target;
+ }
+ memset (&sa, 0, sizeof sa);
+ sa.sa_family = AF_INET;
+ strncpy (sa.sa_data, interface, sizeof sa.sa_data);
+ sendto (sock, buf, bufix + len, 0, &sa, sizeof sa);
+ strncpy (sa.sa_data, interface, sizeof sa.sa_data);
+#if 1
+ sendto (sock, buf, bufix + len, 0, &sa, sizeof sa);
+#else
+ bind (sock, &sa, sizeof sa);
+ connect();
+ send (sock, buf, bufix + len, 0);
+#endif
+}
+#endif
+
+
+/*
+ * Local variables:
+ * compile-command: "gcc -O -Wall -o ether-wake ether-wake.c"
+ * c-indent-level: 4
+ * c-basic-offset: 4
+ * c-indent-level: 4
+ * tab-width: 4
+ * End:
+ */
diff --git a/sys-apps/net-tools/files/net-tools-1.57-bug22040.patch b/sys-apps/net-tools/files/net-tools-1.57-bug22040.patch
new file mode 100644
index 000000000000..76f04d542119
--- /dev/null
+++ b/sys-apps/net-tools/files/net-tools-1.57-bug22040.patch
@@ -0,0 +1,50 @@
+--- net-tools-1.57/arp.c.orig Sun May 14 17:57:41 2000
++++ net-tools-1.57/arp.c Sat Nov 25 15:05:27 2000
+@@ -618,6 +618,7 @@
+ fprintf(stderr, _(" arp [-v] [<HW>] [-i <if>] -Ds <hostname> <if> [netmask <nm>] pub <-''-\n\n"));
+
+ fprintf(stderr, _(" -a display (all) hosts in alternative (BSD) style\n"));
++ fprintf(stderr, _(" -e display (all) hosts in default (Linux) style\n"));
+ fprintf(stderr, _(" -s, --set set a new ARP entry\n"));
+ fprintf(stderr, _(" -d, --delete delete a specified entry\n"));
+ fprintf(stderr, _(" -v, --verbose be verbose\n"));
+--- net-tools-1.57/man/en_US/arp.8.orig Sat Nov 25 15:13:26 2000
++++ net-tools-1.57/man/en_US/arp.8 Sat Nov 25 15:15:12 2000
+@@ -3,7 +3,7 @@
+ arp \- manipulate the system ARP cache
+ .SH SYNOPSIS
+ .B arp
+-.RB [ \-vn ]
++.RB [ \-evn ]
+ .RB [ "\-H type" ]
+ .RB [ "-i if" ]
+ .B -a
+@@ -60,7 +60,7 @@
+ shows numerical addresses instead of trying to determine symbolic host, port
+ or user names.
+ .TP
+-.B "\-H type, \-\-hw-type type"
++.B "\-H type, \-\-hw-type type, \-t type"
+ When setting or reading the ARP cache, this optional parameter tells
+ .B arp
+ which class of entries it should check for. The default value of
+@@ -81,7 +81,8 @@
+ .B hostname
+ parameter is not used,
+ .B all
+-entries will be displayed.
++entries will be displayed.
++The entries will be displayed in alternate (BSD) style.
+ .TP
+ .B "\-d hostname, \-\-delete hostname"
+ Remove any entry for the specified host. This can be used if the
+@@ -91,6 +92,9 @@
+ Use the interface
+ .BR ifa "'s"
+ hardware address.
++.TP
++.B "\-e"
++Shows the entries in default (Linux) style.
+ .TP
+ .B "\-i If, \-\-device If"
+ Select an interface. When dumping the ARP cache only entries matching
diff --git a/sys-apps/net-tools/files/net-tools-1.60-config.h b/sys-apps/net-tools/files/net-tools-1.60-config.h
new file mode 100644
index 000000000000..71c7592cc9e0
--- /dev/null
+++ b/sys-apps/net-tools/files/net-tools-1.60-config.h
@@ -0,0 +1,74 @@
+/*
+* config.h Automatically generated configuration includefile
+*
+* NET-TOOLS A collection of programs that form the base set of the
+* NET-3 Networking Distribution for the LINUX operating
+* system.
+*
+* DO NOT EDIT DIRECTLY
+*
+*/
+
+/*
+ *
+ * Internationalization
+ *
+ * The net-tools package has currently been translated to French,
+ * German and Brazilian Portugese. Other translations are, of
+ * course, welcome. Answer `n' here if you have no support for
+ * internationalization on your system.
+ *
+ */
+#define I18N 1
+
+/*
+ *
+ * Protocol Families.
+ *
+ */
+#define HAVE_AFUNIX 1
+#define HAVE_AFINET 1
+#define HAVE_AFINET6 1
+#define HAVE_AFIPX 1
+#define HAVE_AFATALK 1
+#define HAVE_AFAX25 1
+#define HAVE_AFNETROM 1
+#define HAVE_AFROSE 1
+#define HAVE_AFX25 1
+#define HAVE_AFECONET 1
+#define HAVE_AFDECnet 0
+#define HAVE_AFASH 1
+
+/*
+ *
+ * Device Hardware types.
+ *
+ */
+#define HAVE_HWETHER 1
+#define HAVE_HWARC 1
+#define HAVE_HWSLIP 1
+#define HAVE_HWPPP 1
+#define HAVE_HWTUNNEL 1
+#define HAVE_HWSTRIP 1
+#define HAVE_HWTR 1
+#define HAVE_HWAX25 1
+#define HAVE_HWROSE 1
+#define HAVE_HWNETROM 1
+#define HAVE_HWX25 1
+#define HAVE_HWFR 1
+#define HAVE_HWSIT 1
+#define HAVE_HWFDDI 1
+#define HAVE_HWHIPPI 1
+#define HAVE_HWASH 1
+#define HAVE_HWHDLCLAPB 1
+#define HAVE_HWIRDA 1
+#define HAVE_HWEC 1
+
+/*
+ *
+ * Other Features.
+ *
+ */
+#define HAVE_FW_MASQUERADE 1
+#define HAVE_IP_TOOLS 1
+#define HAVE_MII 1
diff --git a/sys-apps/net-tools/files/net-tools-1.60-config.make b/sys-apps/net-tools/files/net-tools-1.60-config.make
new file mode 100644
index 000000000000..e6561c2867f8
--- /dev/null
+++ b/sys-apps/net-tools/files/net-tools-1.60-config.make
@@ -0,0 +1,35 @@
+I18N=1
+HAVE_AFUNIX=1
+HAVE_AFINET=1
+HAVE_AFINET6=1
+HAVE_AFIPX=1
+HAVE_AFATALK=1
+HAVE_AFAX25=1
+HAVE_AFNETROM=1
+HAVE_AFROSE=1
+HAVE_AFX25=1
+HAVE_AFECONET=1
+# HAVE_AFDECnet=0
+HAVE_AFASH=1
+HAVE_HWETHER=1
+HAVE_HWARC=1
+HAVE_HWSLIP=1
+HAVE_HWPPP=1
+HAVE_HWTUNNEL=1
+HAVE_HWSTRIP=1
+HAVE_HWTR=1
+HAVE_HWAX25=1
+HAVE_HWROSE=1
+HAVE_HWNETROM=1
+HAVE_HWX25=1
+HAVE_HWFR=1
+HAVE_HWSIT=1
+HAVE_HWFDDI=1
+HAVE_HWHIPPI=1
+HAVE_HWASH=1
+HAVE_HWHDLCLAPB=1
+HAVE_HWIRDA=1
+HAVE_HWEC=1
+HAVE_FW_MASQUERADE=1
+HAVE_IP_TOOLS=1
+HAVE_MII=1
diff --git a/sys-apps/net-tools/files/net-tools-1.60-manydevs.patch b/sys-apps/net-tools/files/net-tools-1.60-manydevs.patch
new file mode 100644
index 000000000000..d07ffbacb3d6
--- /dev/null
+++ b/sys-apps/net-tools/files/net-tools-1.60-manydevs.patch
@@ -0,0 +1,13 @@
+--- lib/nstrcmp.c.bak Fri Apr 12 00:15:01 2002
++++ lib/nstrcmp.c Fri Apr 12 00:15:29 2002
+@@ -16,8 +16,8 @@
+ b++;
+ }
+ if (isdigit(*a)) {
+- if (!isdigit(*b))
+- return -1;
++ if (!isdigit(*b))
++ return 1;
+ while (a > astr) {
+ a--;
+ if (!isdigit(*a)) {
diff --git a/sys-apps/net-tools/files/net-tools-1.60-miiioctl.patch b/sys-apps/net-tools/files/net-tools-1.60-miiioctl.patch
new file mode 100644
index 000000000000..4859273ede2c
--- /dev/null
+++ b/sys-apps/net-tools/files/net-tools-1.60-miiioctl.patch
@@ -0,0 +1,17 @@
+--- net-tools-1.60/include/mii.h.bar Tue Jul 31 11:49:39 2001
++++ net-tools-1.60/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>
diff --git a/sys-apps/net-tools/net-tools-1.60-r5.ebuild b/sys-apps/net-tools/net-tools-1.60-r5.ebuild
new file mode 100644
index 000000000000..1445e3844953
--- /dev/null
+++ b/sys-apps/net-tools/net-tools-1.60-r5.ebuild
@@ -0,0 +1,80 @@
+# Copyright 1999-2002 Gentoo Technologies, Inc.
+# Distributed under the terms of the GNU General Public License, v2 or later
+# $Header: /var/cvsroot/gentoo-x86/sys-apps/net-tools/net-tools-1.60-r5.ebuild,v 1.1 2002/07/16 17:17:05 g2boojum Exp $
+
+S=${WORKDIR}/${P}
+DESCRIPTION="standard Linux network tools"
+SRC_URI="http://www.tazenda.demon.co.uk/phil/net-tools/${P}.tar.bz2"
+HOMEPAGE="http://sites.inka.de/lina/linux/NetTools/"
+KEYWORDS="x86"
+SLOT="0"
+LICENSE="GPL-2"
+
+DEPEND="virtual/glibc
+ nls? ( sys-devel/gettext )"
+
+src_unpack() {
+ unpack ${A}
+ # some redhat patches
+ cat ${FILESDIR}/net-tools-1.57-bug22040.patch | patch -d ${S} -p1
+ cat ${FILESDIR}/net-tools-1.60-manydevs.patch | patch -d ${S} -p0
+ cat ${FILESDIR}/net-tools-1.60-miiioctl.patch | patch -d ${S} -p1
+ cd ${S}
+ cp ${FILESDIR}/net-tools-1.60-config.h config.h
+ cp ${FILESDIR}/net-tools-1.60-config.make config.make
+ cp Makefile Makefile.orig
+ sed -e "s/-O2 -Wall -g/${CFLAGS}/" Makefile.orig > Makefile
+ cd man
+ cp Makefile Makefile.orig
+ sed -e "s:/usr/man:/usr/share/man:" Makefile.orig > Makefile
+ cp ${FILESDIR}/ether-wake.c ${S}
+
+ if [ -z "`use nls`" ]
+ then
+ cd ${S}
+ mv config.h config.h.orig
+ sed 's:\(#define I18N\) 1:\1 0:' config.h.orig > config.h
+
+ mv config.make config.make.orig
+ sed 's:I18N=1:I18N=0:' config.make.orig > config.make
+ fi
+
+}
+
+src_compile() {
+ # Changing "emake" to "make" closes half of bug #820; configure is run from *inside*
+ # the Makefile, sometimes breaking parallel makes (if ./configure doesn't finish first)
+
+ make || die
+
+ if [ "`use nls`" ]
+ then
+ cd po
+ make || die
+ fi
+ cd ${S}
+ gcc ${CFLAGS} -o ether-wake ether-wake.c || die
+}
+
+src_install() {
+ make BASEDIR=${D} install || die
+ dosbin ether-wake
+ mv ${D}/bin/* ${D}/sbin
+ for i in hostname domainname netstat dnsdomainname ypdomainname nisdomainname
+ do
+ mv ${D}/sbin/${i} ${D}/bin
+ done
+ dodir /usr/bin
+ dosym /bin/hostname /usr/bin/hostname
+ if [ -z "`use bootcd`" ] && [ -z "`use build`" ]
+ then
+ dodoc COPYING README README.ipv6 TODO
+ else
+ #only install /bin/hostname
+ rm -rf ${D}/usr
+ rm -rf ${D}/sbin
+ rm -f ${D}/bin/{domainname,netstat,dnsdomainname}
+ rm -f ${D}/bin/{ypdomainname,nisdomainname}
+ fi
+}
+