diff options
Diffstat (limited to 'package/network/utils')
6 files changed, 437 insertions, 0 deletions
| diff --git a/package/network/utils/iputils/Makefile b/package/network/utils/iputils/Makefile new file mode 100644 index 000000000..ff7505b60 --- /dev/null +++ b/package/network/utils/iputils/Makefile @@ -0,0 +1,180 @@ +#  +# Copyright (C) 2006-2010 OpenWrt.org +# +# This is free software, licensed under the GNU General Public License v2. +# See /LICENSE for more information. +# + +include $(TOPDIR)/rules.mk + +PKG_NAME:=iputils +PKG_VERSION:=20101006 +PKG_RELEASE:=1 + +PKG_SOURCE:=$(PKG_NAME)-s$(PKG_VERSION).tar.bz2 +PKG_SOURCE_URL:=http://www.skbuff.net/iputils +PKG_MD5SUM:=a36c25e9ec17e48be514dc0485e7376c + +PKG_MAINTAINER:=Jo-Philipp Wich <jow@openwrt.org> + +PKG_BUILD_DEPENDS:=sysfsutils +PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-s$(PKG_VERSION) + +include $(INCLUDE_DIR)/package.mk + + +define Package/iputils/Default +  SECTION:=net +  CATEGORY:=Network +  URL:=http://www.skbuff.net/iputils +endef + + +define Package/iputils-arping +$(call Package/iputils/Default) +  TITLE:=iputils - arping +  DEPENDS+= +libsysfs +endef + +define Package/iputils-arping/description +  Program arping from iputils. +  Sends ARP REQUEST to a neighbour host. +endef + + +define Package/iputils-clockdiff +$(call Package/iputils/Default) +  TITLE:=iputils - clockdiff +endef + +define Package/iputils-clockdiff/description +  Program clockdiff from iputils. +  Measures clock difference between hosts. +endef + + +define Package/iputils-ping +$(call Package/iputils/Default) +  TITLE:=iputils - ping +endef + +define Package/iputils-ping/description +  Program ping from iputils. +  Sends ICMP ECHO_REQUEST to network hosts (IPv4). +endef + + +define Package/iputils-ping6 +$(call Package/iputils/Default) +  TITLE:=iputils - ping6 +  DEPENDS+= @IPV6 +endef + +define Package/iputils-ping6/description +  Program ping6 from iputils. +  Sends ICMP ECHO_REQUEST to network hosts (IPv6). +endef + + +define Package/iputils-tftpd +$(call Package/iputils/Default) +  TITLE:=iputils - tftpd +endef + +define Package/iputils-tftpd/description +  Program tftpd from iputils +  Trivial File Transfer Protocol server. +endef + + +define Package/iputils-tracepath +$(call Package/iputils/Default) +  TITLE:=iputils - tracepath +endef + +define Package/iputils-tracepath/description +  Program tracepath from iputils. +  Traces path to a network host discovering MTU along this path (IPv4). +endef + + +define Package/iputils-tracepath6 +$(call Package/iputils/Default) +  TITLE:=iputils - tracepath6 +  DEPENDS+= @IPV6 +endef + +define Package/iputils-tracepath6/description +  Program tracepath6 from iputils. +  Traces path to a network host discovering MTU along this path (IPv6). +endef + + +define Package/iputils-traceroute6 +$(call Package/iputils/Default) +  TITLE:=iputils - traceroute6 +  DEPENDS+= @IPV6 +endef + +define Package/iputils-traceroute6/description +  Program traceroute6 from iputils. +  Traces path to a network host (IPv6). +endef + +ifeq ($(BOARD),brcm47xx) +  TARGET_CFLAGS += -O2  +endif + +MAKE_FLAGS += \ +	CFLAGS="$(TARGET_CFLAGS) $(TARGET_CPPFLAGS) $(TARGET_LDFLAGS)" \ +	CONFIG_IPV6="$(CONFIG_IPV6)" \ +	CONFIG_USE_UCLIBC="$(CONFIG_USE_UCLIBC)" \ + +define Package/iputils-arping/install +	$(INSTALL_DIR) $(1)/usr/bin +	$(INSTALL_BIN) $(PKG_BUILD_DIR)/arping $(1)/usr/bin/ +endef + +define Package/iputils-clockdiff/install +	$(INSTALL_DIR) $(1)/usr/bin +	$(INSTALL_BIN) $(PKG_BUILD_DIR)/clockdiff $(1)/usr/bin/ +endef + +define Package/iputils-ping/install +	$(INSTALL_DIR) $(1)/usr/bin +	$(INSTALL_BIN) $(PKG_BUILD_DIR)/ping $(1)/usr/bin/ +endef + +define Package/iputils-ping6/install +	$(INSTALL_DIR) $(1)/usr/bin +	$(INSTALL_BIN) $(PKG_BUILD_DIR)/ping6 $(1)/usr/bin/ +endef + +define Package/iputils-tftpd/install +	$(INSTALL_DIR) $(1)/usr/sbin +	$(INSTALL_BIN) $(PKG_BUILD_DIR)/tftpd $(1)/usr/sbin/ +endef + +define Package/iputils-tracepath/install +	$(INSTALL_DIR) $(1)/usr/bin +	$(INSTALL_BIN) $(PKG_BUILD_DIR)/tracepath $(1)/usr/bin/ +endef + +define Package/iputils-tracepath6/install +	$(INSTALL_DIR) $(1)/usr/bin +	$(INSTALL_BIN) $(PKG_BUILD_DIR)/tracepath6 $(1)/usr/bin/ +endef + +define Package/iputils-traceroute6/install +	$(INSTALL_DIR) $(1)/usr/bin +	$(INSTALL_BIN) $(PKG_BUILD_DIR)/traceroute6 $(1)/usr/bin/ +endef + +$(eval $(call BuildPackage,iputils-arping)) +$(eval $(call BuildPackage,iputils-clockdiff)) +$(eval $(call BuildPackage,iputils-ping)) +$(eval $(call BuildPackage,iputils-tftpd)) +$(eval $(call BuildPackage,iputils-tracepath)) +$(eval $(call BuildPackage,iputils-ping6)) +$(eval $(call BuildPackage,iputils-tracepath6)) +$(eval $(call BuildPackage,iputils-traceroute6)) diff --git a/package/network/utils/iputils/patches/001-iputils.patch b/package/network/utils/iputils/patches/001-iputils.patch new file mode 100644 index 000000000..e57db1379 --- /dev/null +++ b/package/network/utils/iputils/patches/001-iputils.patch @@ -0,0 +1,14 @@ +diff -ur a/Makefile b/Makefile +--- a/Makefile	2002-09-20 18:23:55.000000000 +0000 ++++ b/Makefile	2007-05-17 13:59:55.000000000 +0000 +@@ -16,8 +16,8 @@ + CCOPT=-D_GNU_SOURCE -O2 -Wstrict-prototypes -Wall -g + CFLAGS=$(CCOPT) $(GLIBCFIX) $(DEFINES)  +  +-IPV4_TARGETS=tracepath ping clockdiff rdisc arping tftpd rarpd +-IPV6_TARGETS=tracepath6 traceroute6 ping6 ++IPV4_TARGETS=tracepath ping clockdiff arping tftpd ++IPV6_TARGETS=tracepath6 traceroute6 ping6 + TARGETS=$(IPV4_TARGETS) $(IPV6_TARGETS) +  + LASTTAG:=`git describe HEAD | sed -e 's/-.*//'` diff --git a/package/network/utils/iputils/patches/002-fix-ipv6.patch b/package/network/utils/iputils/patches/002-fix-ipv6.patch new file mode 100644 index 000000000..4411ca7ef --- /dev/null +++ b/package/network/utils/iputils/patches/002-fix-ipv6.patch @@ -0,0 +1,14 @@ +--- a/Makefile ++++ b/Makefile +@@ -18,7 +18,10 @@ CFLAGS=$(CCOPT) $(GLIBCFIX) $(DEFINES) +  + IPV4_TARGETS=tracepath ping clockdiff arping tftpd + IPV6_TARGETS=tracepath6 traceroute6 ping6 +-TARGETS=$(IPV4_TARGETS) $(IPV6_TARGETS) ++TARGETS=$(IPV4_TARGETS) ++ifeq ($(CONFIG_IPV6),y) ++	TARGETS=$(IPV4_TARGETS) $(IPV6_TARGETS) ++endif +  + LASTTAG:=`git describe HEAD | sed -e 's/-.*//'` + TAG:=`date +s%Y%m%d` diff --git a/package/network/utils/iputils/patches/003-fix-makefile.patch b/package/network/utils/iputils/patches/003-fix-makefile.patch new file mode 100644 index 000000000..926c68551 --- /dev/null +++ b/package/network/utils/iputils/patches/003-fix-makefile.patch @@ -0,0 +1,18 @@ +--- a/Makefile ++++ b/Makefile +@@ -30,9 +30,13 @@ all: $(TARGETS) +  +  + tftpd: tftpd.o tftpsubs.o +-arping: arping.o -lsysfs ++arping: arping.o  ++	$(CC) $(CFLAGS) -o $@ arping.o -lsysfs + ping: ping.o ping_common.o +-ping6: ping6.o ping_common.o -lresolv -lcrypto ++ping6: ping6.o ping_common.o ++ifneq ($(CONFIG_USE_UCLIBC),y) ++	$(CC) $(CFLAGS) -o $@ ping6.o ping_common.o -lresolv -lcrypto ++endif + ping.o ping6.o ping_common.o: ping_common.h + tftpd.o tftpsubs.o: tftp.h +  diff --git a/package/network/utils/iputils/patches/010-ping6_uclibc_resolv.patch b/package/network/utils/iputils/patches/010-ping6_uclibc_resolv.patch new file mode 100644 index 000000000..695580347 --- /dev/null +++ b/package/network/utils/iputils/patches/010-ping6_uclibc_resolv.patch @@ -0,0 +1,200 @@ +diff --git a/ping6.c b/ping6.c +index c5ff881..ef2243f 100644 +--- a/ping6.c ++++ b/ping6.c +@@ -71,9 +71,11 @@ char copyright[] = + #include <linux/filter.h> + #include <netinet/ip6.h> + #include <netinet/icmp6.h> ++#ifndef __UCLIBC__ + #include <resolv.h> +  + #include "ping6_niquery.h" ++#endif /* __UCLIBC__ */ +  + #ifndef SOL_IPV6 + #define SOL_IPV6 IPPROTO_IPV6 +@@ -154,6 +156,7 @@ int pmtudisc=-1; +  + static int icmp_sock; +  ++#ifndef __UCLIBC__ + #include <openssl/md5.h> +  + /* Node Information query */ +@@ -165,6 +168,7 @@ int ni_subject_type = 0; + char *ni_group; +  + __u8 ni_nonce[8]; ++#endif /* __UCLIBC__ */ +  + static struct in6_addr in6_anyaddr; + static __inline__ int ipv6_addr_any(struct in6_addr *addr) +@@ -223,6 +227,7 @@ unsigned int if_name2index(const char *ifname) + 	return i; + } +  ++#ifndef __UCLIBC__ + struct niquery_option { + 	char *name; + 	int namelen; +@@ -512,6 +517,7 @@ char *ni_groupaddr(const char *name) + 		strcat(nigroup_buf, q); + 	return nigroup_buf; + } ++#endif /* __UCLIBC__ */ +  + int main(int argc, char *argv[]) + { +@@ -595,12 +601,14 @@ int main(int argc, char *argv[]) + 		case 'V': + 			printf("ping6 utility, iputils-ss%s\n", SNAPSHOT); + 			exit(0); ++#ifndef __UCLIBC__ + 		case 'N': + 			if (niquery_option_handler(optarg) < 0) { + 				usage(); + 				break; + 			} + 			break; ++#endif /* __UCLIBC__ */ + 		COMMON_OPTIONS + 			common_options(ch); + 			break; +@@ -663,6 +671,7 @@ int main(int argc, char *argv[]) + 		argc--; + 	} +  ++#ifndef __UCLIBC__ + 	if (ni_query >= 0) { + 		int i; + 		for (i = 0; i < 8; i++) +@@ -674,15 +683,20 @@ int main(int argc, char *argv[]) + 			ni_subject_type = NI_SUBJ_IPV6; + 		} + 	} ++#endif /* __UCLIBC__ */ +  + 	if (argc > 1) + 		usage(); + 	else if (argc == 1) { + 		target = *argv; + 	} else { ++#ifndef __UCLIBC__ + 		if (ni_query < 0 && ni_subject_type != NI_SUBJ_NAME) ++#endif /* __UCLIBC__ */ + 			usage(); ++#ifndef __UCLIBC__ + 		target = ni_group; ++#endif /* __UCLIBC__ */ + 	} +  + 	memset(&hints, 0, sizeof(hints)); +@@ -817,7 +831,11 @@ int main(int argc, char *argv[]) + 		exit(2); + 	} +  ++#ifndef __UCLIBC__ + 	if (datalen >= sizeof(struct timeval) && (ni_query < 0)) { ++#else ++	if (datalen >= sizeof(struct timeval)) { ++#endif /* __UCLIBC__ */ + 		/* can we time transfer */ + 		timing = 1; + 	} +@@ -866,9 +884,11 @@ int main(int argc, char *argv[]) + 		ICMP6_FILTER_SETPASS(ICMP6_PARAM_PROB, &filter); + 	} +  ++#ifndef __UCLIBC__ + 	if (ni_query >= 0) + 		ICMP6_FILTER_SETPASS(ICMPV6_NI_REPLY, &filter); + 	else ++#endif /* __UCLIBC__ */ + 		ICMP6_FILTER_SETPASS(ICMP6_ECHO_REPLY, &filter); +  + 	err = setsockopt(icmp_sock, IPPROTO_ICMPV6, ICMP6_FILTER, &filter, +@@ -1100,6 +1120,7 @@ int build_echo(__u8 *_icmph) + 	return cc; + } +  ++#ifndef __UCLIBC__ + int build_niquery(__u8 *_nih) + { + 	struct ni_hdr *nih; +@@ -1125,6 +1146,7 @@ int build_niquery(__u8 *_nih) +  + 	return cc; + } ++#endif /* __UCLIBC__ */ +  + int send_probe(void) + { +@@ -1132,9 +1154,11 @@ int send_probe(void) +  + 	CLR((ntransmitted+1) % mx_dup_ck); +  ++#ifndef __UCLIBC__ + 	if (ni_query >= 0) + 		len = build_niquery(outpack); + 	else ++#endif /* __UCLIBC__ */ + 		len = build_echo(outpack); +  + 	if (cmsglen == 0) { +@@ -1176,6 +1200,7 @@ static void putchar_safe(char c) + 		printf("\\%03o", c); + } +  ++#ifndef __UCLIBC__ + void pr_niquery_reply_name(struct ni_hdr *nih, int len) + { + 	__u8 *h = (__u8 *)(nih + 1); +@@ -1304,6 +1329,7 @@ void pr_niquery_reply(__u8 *_nih, int len) + 	} + 	putchar(';'); + } ++#endif /* __UCLIBC__ */ +  + /* +  * parse_reply -- +@@ -1353,6 +1379,7 @@ parse_reply(struct msghdr *msg, int cc, void *addr, struct timeval *tv) + 				      hops, 0, tv, pr_addr(&from->sin6_addr), + 				      pr_echo_reply)) + 			return 0; ++#ifndef __UCLIBC__ + 	} else if (icmph->icmp6_type == ICMPV6_NI_REPLY) { + 		struct ni_hdr *nih = (struct ni_hdr *)icmph; + 		__u16 seq = ntohs(*(__u16 *)nih->ni_nonce); +@@ -1363,6 +1390,7 @@ parse_reply(struct msghdr *msg, int cc, void *addr, struct timeval *tv) + 				      hops, 0, tv, pr_addr(&from->sin6_addr), + 				      pr_niquery_reply)) + 			return 0; ++#endif /* __UCLIBC__ */ + 	} else { + 		int nexthdr; + 		struct ip6_hdr *iph1 = (struct ip6_hdr*)(icmph+1); +@@ -1557,7 +1585,9 @@ void usage(void) + "Usage: ping6 [-LUdfnqrvVaAD] [-c count] [-i interval] [-w deadline]\n" + "             [-p pattern] [-s packetsize] [-t ttl] [-I interface]\n" + "             [-M pmtudisc-hint] [-S sndbuf] [-F flowlabel] [-Q tclass]\n" ++#ifndef __UCLIBC__ + "             [[-N nodeinfo-option] ...]\n" ++#endif /* __UCLIBC__ */ + "             [hop1 ...] destination\n"); + 	exit(2); + } +diff --git a/ping6_niquery.h b/ping6_niquery.h +index 61a5cfa..34c31f8 100644 +--- a/ping6_niquery.h ++++ b/ping6_niquery.h +@@ -1,3 +1,4 @@ ++#ifndef __UCLIBC__ + #include <asm/byteorder.h> +  + /* Node Information Query */ +@@ -45,3 +46,4 @@ struct ni_hdr { + #define NI_IPV4ADDR_F_TRUNCATE		NI_IPV6ADDR_F_TRUNCATE + #define NI_IPV4ADDR_F_ALL		NI_IPV6ADDR_F_ALL +  ++#endif /* __UCLIBC__ */ diff --git a/package/network/utils/iputils/patches/011-ping6_use_gnu_source.patch b/package/network/utils/iputils/patches/011-ping6_use_gnu_source.patch new file mode 100644 index 000000000..dc61b8c22 --- /dev/null +++ b/package/network/utils/iputils/patches/011-ping6_use_gnu_source.patch @@ -0,0 +1,11 @@ +--- a/ping6.c ++++ b/ping6.c +@@ -66,6 +66,8 @@ char copyright[] = +  *	More statistics could always be gathered. +  *	This program has to run SUID to ROOT to access the ICMP socket. +  */ ++ ++#define _GNU_SOURCE + #include "ping_common.h" +  + #include <linux/filter.h> | 
