Project import
diff --git a/Makefile b/Makefile
new file mode 100644
index 0000000..701767d
--- /dev/null
+++ b/Makefile
@@ -0,0 +1,124 @@
+#
+# Copyright (c) 2010-2011 Nest, Inc.
+# All rights reserved.
+#
+# This document is the property of Nest. It is considered
+# confidential and proprietary information.
+#
+# This document may not be reproduced or transmitted in any form,
+# in whole or in part, without the express written permission of
+# Nest.
+#
+# Description:
+# This file is the make file for iptables, a set of command line
+# program used to configure the Linux IPv4 and IPv6 packet
+# filtering ruleset.
+#
+
+
+include pre.mak
+
+PackageName := iptables
+
+PackageExtension := tar.bz2
+PackageSeparator := -
+
+PackagePatchArgs := -p1
+
+PackageArchive := $(PackageName).$(PackageExtension)
+PackageSourceDir := $(PackageName)$(PackageSeparator)$(PackageVersion)
+
+PackageBuildMakefile = $(call GenerateBuildPaths,Makefile)
+
+CleanPaths += $(PackageLicenseFile)
+
+SOURCEDIRS = $(PackageSourceDir)
+$(PackageSourceDir)_RULE_TARGET = $(BuildDirectory)/configure
+
+all: $(PackageDefaultGoal)
+
+# Generate the package license contents.
+
+$(PackageSourceDir)/COPYING: $(BuildDirectory)/source
+
+$(PackageLicenseFile): $(PackageSourceDir)/COPYING
+ $(copy-result)
+
+# Extract the source from the archive and apply patches, if any.
+
+$(PackageSourceDir): $(PackageArchive) $(PackagePatchPaths)
+ $(expand-and-patch-package)
+
+# Prepare the sources.
+
+$(BuildDirectory)/source: | $(PackageSourceDir) $(BuildDirectory)
+ $(Verbose)touch $@
+
+# Patch the sources, if necessary.
+
+$(BuildDirectory)/patch: $(BuildDirectory)/source
+ $(Verbose)touch $@
+
+# Generate the package build makefile.
+
+# Configure the source for building.
+
+$(BuildDirectory)/configure: $(BuildDirectory)/source | $(PackageSourceDir) $(BuildDirectory) $(ResultDirectory)
+ $(Verbose)cd $(BuildDirectory) && \
+ $(CURDIR)/$(PackageSourceDir)/configure \
+ CC="$(CC) $(CPPOPTFLAGS)" CXX="$(CXX) $(CPPOPTFLAGS)" AR=$(AR) NM=$(NM) RANLIB=$(RANLIB) STRIP=$(STRIP) \
+ INSTALL="$(INSTALL) $(INSTALLFLAGS)" \
+ CFLAGS="-I$(LinuxIncludePath)" \
+ --build=$(HostTuple) \
+ --host=$(TargetTuple) \
+ --disable-static \
+ --enable-shared \
+ --prefix=/usr \
+ --sysconfdir=/etc \
+ --localstatedir=/var
+ $(Verbose)touch $@
+
+# Build the source.
+#
+# We have to unset MAKEFLAGS since they confuse the package build otherwise.
+
+$(BuildDirectory)/build: $(BuildDirectory)/configure
+ $(Verbose)unset MAKEFLAGS && \
+ $(MAKE) $(JOBSFLAG) -C $(BuildDirectory) all
+ $(Verbose)touch $@
+
+# Stage the build to a temporary installation area.
+#
+# We have to unset MAKEFLAGS since they confuse the package build otherwise.
+#
+# We explictly remove 'libfoo.la' because some packages that depend on
+# these libraries use libtool. If libtool finds a 'libfoo.la' file for
+# a library, it uses the value of 'libdir=<dir>' it finds. In our
+# case, since '--prefix=/usr' this value is '/usr/lib'. It then
+# resolves '-lfoo'. In a cross-compilation environment, this is likely
+# to be neither the right architecture nor the right version to link
+# against. In short, we lose.
+#
+# We could also handle this by removing DESTDIR and setting the prefix
+# to $(ResultDirectory); however, that results in libtool hard-coding
+# $(ResultDirectory) as the RPATH in the linked executables which is
+# NOT what we want either. We lose again.
+#
+# By removing the '*.la' file, we win by ensuring neither a misdirected
+# link nor an RPATH.
+
+$(BuildDirectory)/stage: $(BuildDirectory)/build | $(ResultDirectory)
+ $(Verbose)unset MAKEFLAGS && \
+ $(MAKE) $(JOBSFLAG) -C $(BuildDirectory) DESTDIR=$(ResultDirectory) install
+ $(Verbose)$(RM) $(RMFLAGS) $(call GenerateResultPaths,,usr/lib/libip4tc.la usr/lib/libiptc.la usr/lib/libxtables.la usr/lib/libip6tc.la)
+ $(Verbose)touch $@
+
+.PHONY: stage
+stage: $(BuildDirectory)/stage
+
+clean:
+ $(Verbose)$(RM) $(RMFLAGS) -r $(PackageSourceDir)
+ $(Verbose)$(RM) $(RMFLAGS) -r $(BuildDirectory)
+ $(Verbose)$(RM) $(RMFLAGS) -r $(ResultDirectory)
+
+include post.mak
diff --git a/iptables.patches/iptables-50.description b/iptables.patches/iptables-50.description
new file mode 100644
index 0000000..3d99683
--- /dev/null
+++ b/iptables.patches/iptables-50.description
@@ -0,0 +1,7 @@
+Add definition of __aligned_u64 for iptables to build against
+newer version Linux kernel like 3.10.
+
+iptables has its own copy of Linux kernel header files, which is
+weird. The developers of iptables claim they do this so that
+package iptables is self-contained. However this causes issue like
+what this patch has to fix.
diff --git a/iptables.patches/iptables-50.patch b/iptables.patches/iptables-50.patch
new file mode 100644
index 0000000..80fef85
--- /dev/null
+++ b/iptables.patches/iptables-50.patch
@@ -0,0 +1,10 @@
+--- a/include/linux/types.h 2010-08-06 06:28:38.000000000 -0700
++++ b/include/linux/types.h 2014-05-06 13:54:13.911514658 -0700
+@@ -34,5 +34,7 @@
+ typedef __u16 __bitwise __sum16;
+ typedef __u32 __bitwise __wsum;
+
++#define __aligned_u64 __u64 __attribute__((aligned(8)))
++
+ #endif /* __ASSEMBLY__ */
+ #endif /* _LINUX_TYPES_H */
diff --git a/iptables.tar.bz2 b/iptables.tar.bz2
new file mode 100644
index 0000000..8b0198d
--- /dev/null
+++ b/iptables.tar.bz2
Binary files differ
diff --git a/iptables.url b/iptables.url
new file mode 100644
index 0000000..bf37363
--- /dev/null
+++ b/iptables.url
@@ -0,0 +1 @@
+ftp://ftp.netfilter.org/pub/iptables/iptables-1.4.9.1.tar.bz2
diff --git a/iptables.version b/iptables.version
new file mode 100644
index 0000000..8cc8fe0
--- /dev/null
+++ b/iptables.version
@@ -0,0 +1 @@
+1.4.21