From: Florian Fainelli Date: Fri, 17 Apr 2009 13:52:19 +0000 (+0000) Subject: [package] update ndisc6 (#3779) X-Git-Url: http://git.openwrt.org/?p=openwrt%2Fsvn-archive%2Farchive.git;a=commitdiff_plain;h=12b3ef21c5eefe33ce8534eb9911825f456269bb [package] update ndisc6 (#3779) SVN-Revision: 15241 --- diff --git a/ipv6/ndisc/Makefile b/ipv6/ndisc/Makefile index 56c0387253..6b1a4a4376 100644 --- a/ipv6/ndisc/Makefile +++ b/ipv6/ndisc/Makefile @@ -9,12 +9,11 @@ include $(TOPDIR)/rules.mk PKG_NAME:=ndisc6 -PKG_VERSION:=0.5.1 +PKG_VERSION:=0.9.8 PKG_RELEASE:=1 -PKG_MD5SUM:=33487fe5505b195eb31468d88ba9ab56 +PKG_MD5SUM:=cb8d70564b8d40aae95e19592c6be183 -PKG_SOURCE_URL:=http://www.remlab.net/files/ndisc6/ \ - http://www.remlab.net/files/ndisc6/archive/ +PKG_SOURCE_URL:=http://www.remlab.net/files/ndisc6/ PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2 PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION) @@ -64,23 +63,23 @@ endef define Build/Compile $(MAKE) -C $(PKG_BUILD_DIR) \ $(TARGET_CONFIGURE_OPTS) \ - CFLAGS="$(TARGET_CFLAGS)" \ + CFLAGS="$(TARGET_CFLAGS) -std=c99" \ all endef define Package/ndisc6/install $(INSTALL_DIR) $(1)/usr/bin - $(INSTALL_BIN) $(PKG_BUILD_DIR)/ndisc6 $(1)/usr/bin/ + $(INSTALL_BIN) $(PKG_BUILD_DIR)/src/ndisc6 $(1)/usr/bin/ endef define Package/rdisc6/install $(INSTALL_DIR) $(1)/usr/bin - $(INSTALL_BIN) $(PKG_BUILD_DIR)/rdisc6 $(1)/usr/bin/ + $(INSTALL_BIN) $(PKG_BUILD_DIR)/src/rdisc6 $(1)/usr/bin/ endef define Package/tcptraceroute6/install $(INSTALL_DIR) $(1)/usr/bin - $(INSTALL_BIN) $(PKG_BUILD_DIR)/tcptraceroute6 $(1)/usr/bin/ + $(INSTALL_BIN) $(PKG_BUILD_DIR)/src/tcptraceroute6 $(1)/usr/bin/ endef $(eval $(call BuildPackage,ndisc6)) diff --git a/ipv6/ndisc/patches/100-favor_bsd.patch b/ipv6/ndisc/patches/100-favor_bsd.patch new file mode 100644 index 0000000000..4c79abcab8 --- /dev/null +++ b/ipv6/ndisc/patches/100-favor_bsd.patch @@ -0,0 +1,22 @@ +diff -urN ndisc6-0.9.8/src/trace-tcp.c ndisc6-0.9.8.new/src/trace-tcp.c +--- ndisc6-0.9.8/src/trace-tcp.c 2008-05-01 14:52:28.000000000 +0200 ++++ ndisc6-0.9.8.new/src/trace-tcp.c 2009-04-17 15:39:54.000000000 +0200 +@@ -24,6 +24,7 @@ + + #undef _GNU_SOURCE + #define _BSD_SOURCE 1 ++#define __FAVOR_BSD 1 + + #include + #include +diff -urN ndisc6-0.9.8/src/trace-udp.c ndisc6-0.9.8.new/src/trace-udp.c +--- ndisc6-0.9.8/src/trace-udp.c 2008-05-01 14:52:28.000000000 +0200 ++++ ndisc6-0.9.8.new/src/trace-udp.c 2009-04-17 15:40:36.000000000 +0200 +@@ -24,6 +24,7 @@ + + #undef _GNU_SOURCE + #define _BSD_SOURCE 1 ++#define __FAVOR_BSD 1 + + #include + #include diff --git a/ipv6/ndisc/patches/100-license.patch b/ipv6/ndisc/patches/100-license.patch deleted file mode 100644 index 8ea76c5160..0000000000 --- a/ipv6/ndisc/patches/100-license.patch +++ /dev/null @@ -1,22 +0,0 @@ -diff -urN ndisc6.old/Makefile ndisc6.dev/Makefile ---- ndisc6.old/Makefile 2005-12-01 15:34:08.000000000 +0100 -+++ ndisc6.dev/Makefile 2006-03-23 13:44:32.000000000 +0100 -@@ -31,7 +31,7 @@ - - sbin_PROGRAMS = ndisc6 rdisc6 traceroute6 - man8_MANS = $(sbin_PROGRAMS:%=%.8) --DOC = COPYING INSTALL NEWS README -+DOC = INSTALL NEWS README - - AM_CPPFLAGS = -DPACKAGE_VERSION=\"$(VERSION)\" $(CPPFLAGS) - ndisc6_CPPFLAGS = $(AM_CPPFLAGS) -@@ -52,9 +52,6 @@ - tcptraceroute6: traceroute6 - ln -sf traceroute6 $@ - --COPYING: /usr/share/common-licenses/GPL-2 -- ln -s $< $@ -- - install: all install-man install-links - mkdir -p $(DESTDIR)$(bindir) - @for f in $(sbin_PROGRAMS); do \ diff --git a/ipv6/ndisc/patches/110-strverscmp.patch b/ipv6/ndisc/patches/110-strverscmp.patch new file mode 100644 index 0000000000..21929585e4 --- /dev/null +++ b/ipv6/ndisc/patches/110-strverscmp.patch @@ -0,0 +1,178 @@ +diff -urN ndisc6-0.9.8/rdnssd/Makefile.am ndisc6-0.9.8.new/rdnssd/Makefile.am +--- ndisc6-0.9.8/rdnssd/Makefile.am 2008-05-01 14:52:28.000000000 +0200 ++++ ndisc6-0.9.8.new/rdnssd/Makefile.am 2009-04-17 15:47:51.000000000 +0200 +@@ -27,7 +27,8 @@ + # rdnssd + rdnssd_SOURCES = rdnssd.c rdnssd.h \ + icmp.c \ +- netlink.c ++ netlink.c \ ++ strverscmp.c + rdnssd_LDADD = $(LIBRT) \ + @top_builddir@/compat/libcompat.a + +diff -urN ndisc6-0.9.8/rdnssd/Makefile.in ndisc6-0.9.8.new/rdnssd/Makefile.in +--- ndisc6-0.9.8/rdnssd/Makefile.in 2008-05-01 14:52:45.000000000 +0200 ++++ ndisc6-0.9.8.new/rdnssd/Makefile.in 2009-04-17 15:47:39.000000000 +0200 +@@ -58,7 +58,7 @@ + am__installdirs = "$(DESTDIR)$(sbindir)" "$(DESTDIR)$(confdir)" + sbinPROGRAMS_INSTALL = $(INSTALL_PROGRAM) + PROGRAMS = $(sbin_PROGRAMS) +-am_rdnssd_OBJECTS = rdnssd.$(OBJEXT) icmp.$(OBJEXT) netlink.$(OBJEXT) ++am_rdnssd_OBJECTS = rdnssd.$(OBJEXT) icmp.$(OBJEXT) netlink.$(OBJEXT) strverscmp.$(OBJEXT) + rdnssd_OBJECTS = $(am_rdnssd_OBJECTS) + am__DEPENDENCIES_1 = + rdnssd_DEPENDENCIES = $(am__DEPENDENCIES_1) \ +@@ -211,7 +211,8 @@ + # rdnssd + rdnssd_SOURCES = rdnssd.c rdnssd.h \ + icmp.c \ +- netlink.c ++ netlink.c \ ++ strverscmp.c + + rdnssd_LDADD = $(LIBRT) \ + @top_builddir@/compat/libcompat.a +@@ -334,6 +335,7 @@ + + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/icmp.Po@am__quote@ + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/netlink.Po@am__quote@ ++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strverscmp.Po@am__quote@ + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/rdnssd.Po@am__quote@ + + .c.o: +diff -urN ndisc6-0.9.8/rdnssd/strverscmp.c ndisc6-0.9.8.new/rdnssd/strverscmp.c +--- ndisc6-0.9.8/rdnssd/strverscmp.c 1970-01-01 01:00:00.000000000 +0100 ++++ ndisc6-0.9.8.new/rdnssd/strverscmp.c 2009-04-17 15:46:24.000000000 +0200 +@@ -0,0 +1,131 @@ ++/* Compare strings while treating digits characters numerically. ++ Copyright (C) 1997, 2000, 2002, 2004 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ Contributed by Jean-François Bignolles , 1997. ++ ++ This program is free software; you can redistribute it and/or modify ++ it under the terms of the GNU General Public License as published by ++ the Free Software Foundation; either version 2, or (at your option) ++ any later version. ++ ++ This program is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ GNU General Public License for more details. ++ ++ You should have received a copy of the GNU General Public License along ++ with this program; if not, write to the Free Software Foundation, ++ Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ ++ ++#ifdef HAVE_CONFIG_H ++# include ++#endif ++ ++#include ++#include ++ ++/* states: S_N: normal, S_I: comparing integral part, S_F: comparing ++ fractional parts, S_Z: idem but with leading Zeroes only */ ++#define S_N 0x0 ++#define S_I 0x4 ++#define S_F 0x8 ++#define S_Z 0xC ++ ++/* result_type: CMP: return diff; LEN: compare using len_diff/diff */ ++#define CMP 2 ++#define LEN 3 ++ ++ ++/* ISDIGIT differs from isdigit, as follows: ++ - Its arg may be any int or unsigned int; it need not be an unsigned char. ++ - It's guaranteed to evaluate its argument exactly once. ++ - It's typically faster. ++ POSIX says that only '0' through '9' are digits. Prefer ISDIGIT to ++ ISDIGIT_LOCALE unless it's important to use the locale's definition ++ of `digit' even when the host does not conform to POSIX. */ ++#define ISDIGIT(c) ((unsigned int) (c) - '0' <= 9) ++ ++#undef __strverscmp ++#undef strverscmp ++ ++#ifndef weak_alias ++# define __strverscmp strverscmp ++#endif ++ ++/* Compare S1 and S2 as strings holding indices/version numbers, ++ returning less than, equal to or greater than zero if S1 is less than, ++ equal to or greater than S2 (for more info, see the texinfo doc). ++*/ ++ ++int ++__strverscmp (const char *s1, const char *s2) ++{ ++ const unsigned char *p1 = (const unsigned char *) s1; ++ const unsigned char *p2 = (const unsigned char *) s2; ++ unsigned char c1, c2; ++ int state; ++ int diff; ++ ++ /* Symbol(s) 0 [1-9] others (padding) ++ Transition (10) 0 (01) d (00) x (11) - */ ++ static const unsigned int next_state[] = ++ { ++ /* state x d 0 - */ ++ /* S_N */ S_N, S_I, S_Z, S_N, ++ /* S_I */ S_N, S_I, S_I, S_I, ++ /* S_F */ S_N, S_F, S_F, S_F, ++ /* S_Z */ S_N, S_F, S_Z, S_Z ++ }; ++ ++ static const int result_type[] = ++ { ++ /* state x/x x/d x/0 x/- d/x d/d d/0 d/- ++ 0/x 0/d 0/0 0/- -/x -/d -/0 -/- */ ++ ++ /* S_N */ CMP, CMP, CMP, CMP, CMP, LEN, CMP, CMP, ++ CMP, CMP, CMP, CMP, CMP, CMP, CMP, CMP, ++ /* S_I */ CMP, -1, -1, CMP, 1, LEN, LEN, CMP, ++ 1, LEN, LEN, CMP, CMP, CMP, CMP, CMP, ++ /* S_F */ CMP, CMP, CMP, CMP, CMP, LEN, CMP, CMP, ++ CMP, CMP, CMP, CMP, CMP, CMP, CMP, CMP, ++ /* S_Z */ CMP, 1, 1, CMP, -1, CMP, CMP, CMP, ++ -1, CMP, CMP, CMP ++ }; ++ ++ if (p1 == p2) ++ return 0; ++ ++ c1 = *p1++; ++ c2 = *p2++; ++ /* Hint: '0' is a digit too. */ ++ state = S_N | ((c1 == '0') + (ISDIGIT (c1) != 0)); ++ ++ while ((diff = c1 - c2) == 0 && c1 != '\0') ++ { ++ state = next_state[state]; ++ c1 = *p1++; ++ c2 = *p2++; ++ state |= (c1 == '0') + (ISDIGIT (c1) != 0); ++ } ++ ++ state = result_type[state << 2 | ((c2 == '0') + (ISDIGIT (c2) != 0))]; ++ ++ switch (state) ++ { ++ case CMP: ++ return diff; ++ ++ case LEN: ++ while (ISDIGIT (*p1++)) ++ if (!ISDIGIT (*p2++)) ++ return 1; ++ ++ return ISDIGIT (*p2) ? -1 : diff; ++ ++ default: ++ return state; ++ } ++} ++#ifdef weak_alias ++weak_alias (__strverscmp, strverscmp) ++#endif