Procházet zdrojové kódy

iptables: fix build without ipv6 support in toolchain

Patch by Steffen Schulz <sf@cbg.dyndns.org>, closes #233.
Peter Korsgaard před 16 roky
rodič
revize
4e5ecadd22

+ 70 - 0
package/iptables/iptables-optional-ipv6.patch

@@ -0,0 +1,70 @@
+Make ipv6 support optional. Patch by Steffen Schulz <sf@cbg.dyndns.org>
+
+Submitted upstream as http://bugzilla.netfilter.org/show_bug.cgi?id=588
+diff -ru iptables-1.4.2/configure.ac iptables-1.4.2_patched/configure.ac
+--- iptables-1.4.2/configure.ac	2009-03-29 15:49:24.764299587 +0000
++++ iptables-1.4.2_patched/configure.ac	2009-03-29 15:38:29.082512186 +0000
+@@ -37,6 +37,9 @@
+ 	[enable_devel="$enableval"], [enable_devel="yes"])
+ AC_ARG_ENABLE([libipq],
+ 	AS_HELP_STRING([--enable-libipq], [Build and install libipq]))
++AC_ARG_ENABLE([ipv6],
++    AS_HELP_STRING([--enable-ipv6], [Build and install ip6tables]),
++    [enable_ipv6="$enableval"], [enable_ipv6="yes"])
+ AC_ARG_WITH([pkgconfigdir], AS_HELP_STRING([--with-pkgconfigdir=PATH],
+ 	[Path to the pkgconfig directory [[LIBDIR/pkgconfig]]]),
+ 	[pkgconfigdir="$withval"], [pkgconfigdir='${libdir}/pkgconfig'])
+@@ -53,6 +56,7 @@
+ AM_CONDITIONAL([ENABLE_SHARED], [test "$enable_shared" = "yes"])
+ AM_CONDITIONAL([ENABLE_DEVEL], [test "$enable_devel" = "yes"])
+ AM_CONDITIONAL([ENABLE_LIBIPQ], [test "$enable_libipq" = "yes"])
++AM_CONDITIONAL([ENABLE_IPV6], [test "$enable_ipv6" == "yes"])
+ 
+ regular_CFLAGS="-D_LARGEFILE_SOURCE=1 -D_LARGE_FILES -D_FILE_OFFSET_BITS=64 \
+ 	-D_REENTRANT -Wall -Waggregate-return -Wmissing-declarations \
+Only in iptables-1.4.2: configure.ac.orig
+Only in iptables-1.4.2: configure.ac.rej
+diff -ru iptables-1.4.2/Makefile.am iptables-1.4.2_patched/Makefile.am
+--- iptables-1.4.2/Makefile.am	2008-10-08 16:31:58.000000000 +0000
++++ iptables-1.4.2_patched/Makefile.am	2009-03-29 15:38:29.082512186 +0000
+@@ -80,11 +80,17 @@
+ endif
+ 
+ if ENABLE_STATIC
+-sbin_PROGRAMS += iptables-static ip6tables-static
++sbin_PROGRAMS += iptables-static
++if ENABLE_IPV6
++sbin_PROGRAMS += ip6tables-static
++endif
++
+ endif
+ if ENABLE_SHARED
+-sbin_PROGRAMS += iptables iptables-multi iptables-restore iptables-save \
+-                 ip6tables ip6tables-multi ip6tables-restore ip6tables-save
++sbin_PROGRAMS += iptables iptables-multi iptables-restore iptables-save
++if ENABLE_IPV6
++sbin_PROGRAMS += ip6tables ip6tables-multi ip6tables-restore ip6tables-save
++endif
+ endif
+ 
+ iptables.8: ${srcdir}/iptables.8.in extensions/matches4.man extensions/targets4.man
+diff -ru iptables-1.4.2/xtables.c iptables-1.4.2_patched/xtables.c
+--- iptables-1.4.2/xtables.c	2008-10-08 16:31:58.000000000 +0000
++++ iptables-1.4.2_patched/xtables.c	2009-03-29 15:38:29.082512186 +0000
+@@ -964,6 +964,8 @@
+ 	}
+ }
+ 
++#ifdef ENABLE_IPV6
++
+ const char *ip6addr_to_numeric(const struct in6_addr *addrp)
+ {
+ 	/* 0000:0000:0000:0000:0000:000.000.000.000
+@@ -1189,6 +1191,7 @@
+ 			}
+ 	}
+ }
++#endif
+ 
+ void save_string(const char *value)
+ {

+ 4 - 0
package/iptables/iptables.mk

@@ -8,6 +8,10 @@ IPTABLES_SOURCE = iptables-$(IPTABLES_VERSION).tar.bz2
 IPTABLES_SITE = http://ftp.netfilter.org/pub/iptables
 
 IPTABLES_CONF_OPT = --libexecdir=/usr/lib
+ifneq ($(BR2_INET_IPV6),y)
+IPTABLES_CONF_OPT += --enable-ipv6=no
+endif
+
 IPTABLES_INSTALL_TARGET = YES
 
 IPTABLES_AUTORECONF = YES