mailarchive of the ptxdist mailing list
 help / color / mirror / Atom feed
From: Oliver Graute <oliver.graute@gmail.com>
To: ptxdist@pengutronix.de
Cc: Oliver Graute <oliver.graute@neuhaus.de>
Subject: [ptxdist] [PATCH] ebtables: this patch adds ebtables to ptxdist
Date: Thu, 10 Dec 2015 09:45:58 +0100	[thread overview]
Message-ID: <1449737158-21241-1-git-send-email-oliver.graute@neuhaus.de> (raw)

The ebtables program is a filtering tool for a Linux-based bridging firewall.
It enables transparent filtering of network traffic passing through a Linux
bridge.

Signed-off-by: Oliver Graute <oliver.graute@neuhaus.de>
---
 .../ebtables-v2.0.10-4/0001-fixed-returncode.patch |   23 +++++
 .../0002-cross-complile-prep.patch                 |   23 +++++
 .../ebtables-v2.0.10-4/0003-changed-bin-dir.patch  |   21 ++++
 ...004-with-no-as-needed-and-adjust-the-link.patch |   31 ++++++
 patches/ebtables-v2.0.10-4/series                  |    7 ++
 rules/ebtables.in                                  |   12 +++
 rules/ebtables.make                                |  104 ++++++++++++++++++++
 7 files changed, 221 insertions(+)
 create mode 100644 patches/ebtables-v2.0.10-4/0001-fixed-returncode.patch
 create mode 100644 patches/ebtables-v2.0.10-4/0002-cross-complile-prep.patch
 create mode 100644 patches/ebtables-v2.0.10-4/0003-changed-bin-dir.patch
 create mode 100644 patches/ebtables-v2.0.10-4/0004-with-no-as-needed-and-adjust-the-link.patch
 create mode 100644 patches/ebtables-v2.0.10-4/series
 create mode 100644 rules/ebtables.in
 create mode 100644 rules/ebtables.make

diff --git a/patches/ebtables-v2.0.10-4/0001-fixed-returncode.patch b/patches/ebtables-v2.0.10-4/0001-fixed-returncode.patch
new file mode 100644
index 0000000..77cc296
--- /dev/null
+++ b/patches/ebtables-v2.0.10-4/0001-fixed-returncode.patch
@@ -0,0 +1,23 @@
+From: Oliver Graute <oliver.graute@neuhaus.de>
+Date: Fri, 27 Nov 2015 11:13:46 +0100
+Subject: [PATCH] fixed returncode
+
+fixed returncode in store_counters_in_file
+
+---
+ communication.c |    2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/communication.c b/communication.c
+index 62ed667..ba058c0 100644
+--- a/communication.c
++++ b/communication.c
+@@ -282,7 +282,7 @@ static int store_counters_in_file(char *filename, struct ebt_u_replace *repl)
+ 	}
+ close_file:
+ 	fclose(file);
+-	return 0;
++	return ret;
+ }
+ 
+ /* Gets executed after ebt_deliver_table. Delivers the counters to the kernel
diff --git a/patches/ebtables-v2.0.10-4/0002-cross-complile-prep.patch b/patches/ebtables-v2.0.10-4/0002-cross-complile-prep.patch
new file mode 100644
index 0000000..c194969
--- /dev/null
+++ b/patches/ebtables-v2.0.10-4/0002-cross-complile-prep.patch
@@ -0,0 +1,23 @@
+From: Oliver Graute <oliver.graute@neuhaus.de>
+Date: Fri, 27 Nov 2015 11:46:39 +0100
+Subject: [PATCH] cross complile prep
+
+Cross compile patch for arm
+
+---
+ Makefile |    2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/Makefile b/Makefile
+index c1106a4..6b88ff6 100644
+--- a/Makefile
++++ b/Makefile
+@@ -19,7 +19,7 @@ DESTDIR:=
+ 
+ CFLAGS:=-Wall -Wunused -Werror
+ CFLAGS_SH_LIB:=-fPIC -O3
+-CC:=gcc
++CC:=arm-v5te-linux-gnueabi-gcc
+ 
+ ifeq ($(shell uname -m),sparc64)
+ CFLAGS+=-DEBT_MIN_ALIGN=8 -DKERNEL_64_USERSPACE_32
diff --git a/patches/ebtables-v2.0.10-4/0003-changed-bin-dir.patch b/patches/ebtables-v2.0.10-4/0003-changed-bin-dir.patch
new file mode 100644
index 0000000..1173e59
--- /dev/null
+++ b/patches/ebtables-v2.0.10-4/0003-changed-bin-dir.patch
@@ -0,0 +1,21 @@
+From: Oliver Graute <oliver.graute@neuhaus.de>
+Date: Fri, 27 Nov 2015 12:01:59 +0100
+Subject: [PATCH] changed bin dir
+
+---
+ Makefile |    2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/Makefile b/Makefile
+index 6b88ff6..8d735ac 100644
+--- a/Makefile
++++ b/Makefile
+@@ -11,7 +11,7 @@ LOCKDIR:=$(shell echo $(LOCKFILE) | sed 's/\(.*\)\/.*/\1/')/
+ # default paths
+ LIBDIR:=/usr/lib
+ MANDIR:=/usr/local/man
+-BINDIR:=/usr/local/sbin
++BINDIR:=/sbin
+ ETCDIR:=/etc
+ INITDIR:=/etc/rc.d/init.d
+ SYSCONFIGDIR:=/etc/sysconfig
diff --git a/patches/ebtables-v2.0.10-4/0004-with-no-as-needed-and-adjust-the-link.patch b/patches/ebtables-v2.0.10-4/0004-with-no-as-needed-and-adjust-the-link.patch
new file mode 100644
index 0000000..f781e12
--- /dev/null
+++ b/patches/ebtables-v2.0.10-4/0004-with-no-as-needed-and-adjust-the-link.patch
@@ -0,0 +1,31 @@
+From: Khem Raj <raj.khem@gmail.com>
+Date: Tue, 12 Dec 2012 00:00:00 +0100
+Subject: [PATCH] link ebtables with --no-as-needed and adjust the link order
+ to fix runtime crash
+
+Program terminated with signal 11, Segmentation fault.
+0  0x00007ffaa837fb53 in ebt_initialize_entry () from /lib64/ebtables/libebtc.so
+(gdb) bt
+0  0x00007ffaa837fb53 in ebt_initialize_entry () from /lib64/ebtables/libebtc.so
+1  0x00007ffaa83824dc in do_command () from /lib64/ebtables/libebtc.so
+2  0x000000000040065c in ?? ()
+3  0x00007ffaa7fed755 in __libc_start_main () from /lib64/libc.so.6
+4  0x0000000000400691 in ?? ()
+
+---
+ Makefile |    2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/Makefile b/Makefile
+index 8d735ac..7cfe784 100644
+--- a/Makefile
++++ b/Makefile
+@@ -90,7 +90,7 @@ libebtc.so: $(OBJECTS2)
+ 	$(CC) -shared $(LDFLAGS) -Wl,-soname,libebtc.so -o libebtc.so -lc $(OBJECTS2)
+ 
+ ebtables: $(OBJECTS) ebtables-standalone.o libebtc.so
+-	$(CC) $(CFLAGS) $(CFLAGS_SH_LIB) $(LDFLAGS) -o $@ ebtables-standalone.o -I$(KERNEL_INCLUDES) -L. -Lextensions -lebtc $(EXT_LIBSI) \
++	$(CC) $(CFLAGS) $(CFLAGS_SH_LIB) $(LDFLAGS) -o $@ ebtables-standalone.o -I$(KERNEL_INCLUDES) -L. -Lextensions -Wl,--no-as-needed $(EXT_LIBSI) -lebtc \
+ 	-Wl,-rpath,$(LIBDIR)
+ 
+ ebtablesu: ebtablesu.c
diff --git a/patches/ebtables-v2.0.10-4/series b/patches/ebtables-v2.0.10-4/series
new file mode 100644
index 0000000..463b15f
--- /dev/null
+++ b/patches/ebtables-v2.0.10-4/series
@@ -0,0 +1,7 @@
+# generated by git-ptx-patches
+#tag:base --start-number 1
+0001-fixed-returncode.patch
+0002-cross-complile-prep.patch
+0003-changed-bin-dir.patch
+0004-with-no-as-needed-and-adjust-the-link.patch
+# 5247698c8b551a01103d9b67868658de  - git-ptx-patches magic
diff --git a/rules/ebtables.in b/rules/ebtables.in
new file mode 100644
index 0000000..460aed8
--- /dev/null
+++ b/rules/ebtables.in
@@ -0,0 +1,12 @@
+## SECTION=networking
+
+config EBTABLES
+	tristate
+	prompt "ebtables"
+	help
+	  The ebtables program is a filtering tool for a Linux-based bridging
+	  firewall. It enables transparent filtering of network traffic passing
+	  through a Linux bridge. The filtering possibilities are limited to
+	  link layer filtering and some basic filtering on higher network
+	  layers. Advanced logging, MAC DNAT/SNAT and brouter facilities
+	  are also included.
diff --git a/rules/ebtables.make b/rules/ebtables.make
new file mode 100644
index 0000000..12fc426
--- /dev/null
+++ b/rules/ebtables.make
@@ -0,0 +1,104 @@
+# -*-makefile-*-
+#
+# Copyright (C) 2015 Dr. Neuhaus Telekommunikation GmbH, Hamburg Germany, Oliver Graute <oliver.graute@neuhaus.de>
+#
+# See CREDITS for details about who has contributed to this project.
+#
+# For further information about the PTXdist project and license conditions
+# see the README file.
+#
+
+#
+# We provide this package
+#
+PACKAGES-$(PTXCONF_EBTABLES) += ebtables
+
+#
+# Paths and names
+#
+EBTABLES_VERSION	:= v2.0.10-4
+EBTABLES_MD5		:= 506742a3d44b9925955425a659c1a8d0
+EBTABLES		:= ebtables-$(EBTABLES_VERSION)
+EBTABLES_SUFFIX	:= tar.gz
+EBTABLES_URL		:= ftp://ftp.netfilter.org/pub/ebtables/$(EBTABLES).$(EBTABLES_SUFFIX)
+EBTABLES_SOURCE	:= $(SRCDIR)/$(EBTABLES).$(EBTABLES_SUFFIX)
+EBTABLES_DIR		:= $(BUILDDIR)/$(EBTABLES)
+EBTABLES_LICENSE	:= GPLv2
+
+# ----------------------------------------------------------------------------
+# Prepare
+# ----------------------------------------------------------------------------
+
+EBTABLES_CONF_ENV	:= $(CROSS_ENV)
+
+# ----------------------------------------------------------------------------
+# Compile
+# ----------------------------------------------------------------------------
+
+$(STATEDIR)/ebtables.compile:
+	@$(call targetinfo)
+	@$(call world/compile, EBTABLES)
+	@$(call touch)
+
+# ----------------------------------------------------------------------------
+# Install
+# ----------------------------------------------------------------------------
+
+#$(STATEDIR)/ebtables.install:
+#	@$(call targetinfo)
+#	@$(call world/install, EBTABLES)
+#	@$(call touch)
+
+# ----------------------------------------------------------------------------
+# Target-Install
+# ----------------------------------------------------------------------------
+
+$(STATEDIR)/ebtables.targetinstall:
+	@$(call targetinfo)
+
+	@$(call install_init, ebtables)
+	@$(call install_fixup, ebtables,PRIORITY,optional)
+	@$(call install_fixup, ebtables,SECTION,base)
+	@$(call install_fixup, ebtables,AUTHOR,"<oliver.graute@neuhaus.de>")
+	@$(call install_fixup, ebtables,DESCRIPTION,missing)
+
+	@$(call install_copy, ebtables, 0, 0, 0755, $(EBTABLES_DIR)/ebtables, /sbin/ebtables)
+	@$(call install_copy, ebtables, 0, 0, 0755, $(EBTABLES_DIR)/ebtables-restore, /sbin/ebtables-restore)
+	@$(call install_copy, ebtables, 0, 0, 0755, $(EBTABLES_DIR)/ebtables-config, /etc/ebtables-config)
+	@$(call install_copy, ebtables, 0, 0, 0755, $(EBTABLES_DIR)/ethertypes, /etc/ethertypes)
+	@$(call install_lib, ebtables, 0, 0, 0644, libebtc)
+	@$(call install_lib, ebtables, 0, 0, 0644, libebt_802_3)
+	@$(call install_lib, ebtables, 0, 0, 0644, libebtable_broute)
+	@$(call install_lib, ebtables, 0, 0, 0644, libebtable_filter)
+	@$(call install_lib, ebtables, 0, 0, 0644, libebtable_nat)
+	@$(call install_lib, ebtables, 0, 0, 0644, libebt_among)
+	@$(call install_lib, ebtables, 0, 0, 0644, libebt_arpreply)
+	@$(call install_lib, ebtables, 0, 0, 0644, libebt_arp)
+	@$(call install_lib, ebtables, 0, 0, 0644, libebt_ip6)
+	@$(call install_lib, ebtables, 0, 0, 0644, libebt_ip)
+	@$(call install_lib, ebtables, 0, 0, 0644, libebt_limit)
+	@$(call install_lib, ebtables, 0, 0, 0644, libebt_log)
+	@$(call install_lib, ebtables, 0, 0, 0644, libebt_mark_m)
+	@$(call install_lib, ebtables, 0, 0, 0644, libebt_mark)
+	@$(call install_lib, ebtables, 0, 0, 0644, libebt_nat)
+	@$(call install_lib, ebtables, 0, 0, 0644, libebt_nflog)
+	@$(call install_lib, ebtables, 0, 0, 0644, libebt_pkttype)
+	@$(call install_lib, ebtables, 0, 0, 0644, libebt_redirect)
+	@$(call install_lib, ebtables, 0, 0, 0644, libebt_standard)
+	@$(call install_lib, ebtables, 0, 0, 0644, libebt_stp)
+	@$(call install_lib, ebtables, 0, 0, 0644, libebt_ulog)
+	@$(call install_lib, ebtables, 0, 0, 0644, libebt_vlan)
+
+	@$(call install_finish, ebtables)
+
+	@$(call touch)
+
+# ----------------------------------------------------------------------------
+# Clean
+# ----------------------------------------------------------------------------
+
+#$(STATEDIR)/ebtables.clean:
+#	@$(call targetinfo)
+#	@$(call clean_pkg, EBTABLES)
+
+# vim: syntax=make
-- 
1.7.9.5


_______________________________________________
ptxdist mailing list
ptxdist@pengutronix.de

             reply	other threads:[~2015-12-10  8:50 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-12-10  8:45 Oliver Graute [this message]
2015-12-17 10:25 ` Michael Olbrich

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1449737158-21241-1-git-send-email-oliver.graute@neuhaus.de \
    --to=oliver.graute@gmail.com \
    --cc=oliver.graute@neuhaus.de \
    --cc=ptxdist@pengutronix.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox