mailarchive of the ptxdist mailing list
 help / color / mirror / Atom feed
From: Michael Olbrich <m.olbrich@pengutronix.de>
To: ptxdist@pengutronix.de
Subject: Re: [ptxdist] [PATCH] ebtables: this patch adds ebtables to ptxdist
Date: Thu, 17 Dec 2015 11:25:36 +0100	[thread overview]
Message-ID: <20151217102536.GD27568@pengutronix.de> (raw)
In-Reply-To: <1449737158-21241-1-git-send-email-oliver.graute@neuhaus.de>

On Thu, Dec 10, 2015 at 09:45:58AM +0100, Oliver Graute wrote:
> 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

Please elaborate. What happening upstream here?

> +
> +---
> + 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

No. This breaks with other cross compilers. adding $(CROSS_ENV_PROGS) to
<PKG>_MAKE_OPT should help instead.

> + 
> + 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

Add BINDIR=/sbin to the <PKG>_MAKE_OPT to avoid this patch.

> + 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)

<PKG>_WRAPPER_BLACKLIST := \
	TARGET_LINKER_AS_NEEDED

should help instead.

> + 
> + 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)

remove.

set conf tool

> +
> +# ----------------------------------------------------------------------------
> +# Compile
> +# ----------------------------------------------------------------------------
> +
> +$(STATEDIR)/ebtables.compile:
> +	@$(call targetinfo)
> +	@$(call world/compile, EBTABLES)
> +	@$(call touch)

remove

> +# ----------------------------------------------------------------------------
> +# Install
> +# ----------------------------------------------------------------------------
> +
> +#$(STATEDIR)/ebtables.install:
> +#	@$(call targetinfo)
> +#	@$(call world/install, EBTABLES)
> +#	@$(call touch)
> +

remove

> +# ----------------------------------------------------------------------------
> +# 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)

Again source should be '-'.

> +	@$(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)
> +

remove

Michael

> +# vim: syntax=make
> -- 
> 1.7.9.5
> 
> 
> _______________________________________________
> ptxdist mailing list
> ptxdist@pengutronix.de

-- 
Pengutronix e.K.                           |                             |
Industrial Linux Solutions                 | http://www.pengutronix.de/  |
Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0    |
Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-5555 |

_______________________________________________
ptxdist mailing list
ptxdist@pengutronix.de

      reply	other threads:[~2015-12-17 10:25 UTC|newest]

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

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=20151217102536.GD27568@pengutronix.de \
    --to=m.olbrich@pengutronix.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