aboutsummaryrefslogtreecommitdiffstats
path: root/main/ebtables
diff options
context:
space:
mode:
Diffstat (limited to 'main/ebtables')
-rw-r--r--main/ebtables/0001-link-with-gcc.patch25
-rw-r--r--main/ebtables/APKBUILD58
-rw-r--r--main/ebtables/ebtables.confd15
-rw-r--r--main/ebtables/ebtables.initd97
4 files changed, 195 insertions, 0 deletions
diff --git a/main/ebtables/0001-link-with-gcc.patch b/main/ebtables/0001-link-with-gcc.patch
new file mode 100644
index 0000000000..88aba09f3f
--- /dev/null
+++ b/main/ebtables/0001-link-with-gcc.patch
@@ -0,0 +1,25 @@
+--- a/Makefile Sun Jun 21 13:13:25 2009
++++ b/Makefile Wed Oct 28 02:42:43 2009
+@@ -85,7 +85,7 @@
+
+ .PHONY: libebtc
+ libebtc: $(OBJECTS2)
+- $(LD) -shared -soname libebtc.so -o libebtc.so -lc $(OBJECTS2)
++ $(CC) -shared -Wl,-soname,libebtc.so -o libebtc.so -lc $(OBJECTS2)
+
+ ebtables: $(OBJECTS) ebtables-standalone.o libebtc
+ $(CC) $(CFLAGS) $(CFLAGS_SH_LIB) -o $@ ebtables-standalone.o -I$(KERNEL_INCLUDES) -L. -Lextensions -lebtc $(EXT_LIBSI) \
+@@ -153,10 +153,13 @@
+ tmp3:=$(shell printf $(PIPE) | sed 's/\//\\\//g')
+ .PHONY: scripts
+ scripts: ebtables-save ebtables.sysv ebtables-config
++ mkdir -p $(DESTDIR)$(BINDIR)
+ cat ebtables-save | sed 's/__EXEC_PATH__/$(tmp1)/g' > ebtables-save_
+ install -m 0755 -o root -g root ebtables-save_ $(DESTDIR)$(BINDIR)/ebtables-save
++ mkdir -p $(DESTDIR)$(INITDIR)
+ cat ebtables.sysv | sed 's/__EXEC_PATH__/$(tmp1)/g' | sed 's/__SYSCONFIG__/$(tmp2)/g' > ebtables.sysv_
+ install -m 0755 -o root -g root ebtables.sysv_ $(DESTDIR)$(INITDIR)/ebtables
++ mkdir -p $(DESTDIR)$(SYSCONFIGDIR)
+ cat ebtables-config | sed 's/__SYSCONFIG__/$(tmp2)/g' > ebtables-config_
+ install -m 0600 -o root -g root ebtables-config_ $(DESTDIR)$(SYSCONFIGDIR)/ebtables-config
+ rm -f ebtables-save_ ebtables.sysv_ ebtables-config_
diff --git a/main/ebtables/APKBUILD b/main/ebtables/APKBUILD
new file mode 100644
index 0000000000..b92839eb25
--- /dev/null
+++ b/main/ebtables/APKBUILD
@@ -0,0 +1,58 @@
+# Contributor: Andrew Manison <amanison@anselsystems.com>
+# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
+pkgname=ebtables
+pkgver=2.0.9.1
+_realver=v2.0.9-1
+pkgrel=2
+pkgdesc="Ethernet bridge tables - Linux Ethernet filter for the Linux bridge."
+url="http://ebtables.sourceforge.net/"
+license="GPL"
+depends=
+makedepends=
+install=
+subpackages="$pkgname-doc"
+source="http://downloads.sourceforge.net/$pkgname/$pkgname-$_realver.tar.gz
+ 0001-link-with-gcc.patch
+ ebtables.initd
+ ebtables.confd"
+
+prepare() {
+ cd "$srcdir"/$pkgname-$_realver
+ # patches
+ for i in ../*.patch; do
+ msg "Applying $i"
+ if ! patch --verbose -p1 -i $i; then
+ error "$i failed"
+ return 1
+ fi
+ done
+
+ sed -i -e "s,^MANDIR:=.*,MANDIR:=/usr/share/man," \
+ -e "s,^BINDIR:=.*,BINDIR:=/sbin," \
+ -e "s,^INITDIR:=.*,INITDIR:=/usr/share/doc/ebtables," \
+ -e "s,^SYSCONFIGDIR:=.*,SYSCONFIGDIR:=/usr/share/doc/ebtables,"\
+ -e "s,^LIBDIR:=.*,LIBDIR:=/usr/lib/\$(PROGNAME)," \
+ -e "s/^CFLAGS:=/CFLAGS+=/" \
+ -e "s,^CC:=,CC?=," Makefile
+}
+
+build() {
+ cd "$srcdir"/$pkgname-$_realver
+
+ # This package uses _init functions to initialise extensions. With
+ # --as-needed this will not work.
+ export LDFLAGS="$LDFLAGS -Wl,--no-as-needed"
+ make || return 1
+}
+
+package() {
+ cd "$srcdir"/$pkgname-$_realver
+ make DESTDIR="$pkgdir" install
+ install -D -m755 ../ebtables.initd "$pkgdir"/etc/init.d/ebtables
+ install -D -m644 ../ebtables.confd "$pkgdir"/etc/conf.d/ebtables
+}
+
+md5sums="0e0c20adf2bba6d91dbd0b74a1a38c33 ebtables-v2.0.9-1.tar.gz
+91a565a5906dc1fd4103f03c6a88e0e1 0001-link-with-gcc.patch
+92e13b3bc1d47d7c00636ebb78c905d5 ebtables.initd
+285089ba2d846e72e321a12e3da3cc96 ebtables.confd"
diff --git a/main/ebtables/ebtables.confd b/main/ebtables/ebtables.confd
new file mode 100644
index 0000000000..db46ffb587
--- /dev/null
+++ b/main/ebtables/ebtables.confd
@@ -0,0 +1,15 @@
+# /etc/conf.d/ebtables
+
+# Location in which ebtables initscript will save set rules on
+# service shutdown
+EBTABLES_SAVE="/var/lib/ebtables/rules-save"
+
+# Options to pass to ebtables-save and ebtables-restore
+SAVE_RESTORE_OPTIONS=""
+
+# Save state on stopping ebtables
+SAVE_ON_STOP="yes"
+
+# Tables to be saved and restored. If you have built ebtables as modules, you
+# may leave it blank. Otherwise, you MUST define which to control.
+TABLE_NAMES="filter nat broute"
diff --git a/main/ebtables/ebtables.initd b/main/ebtables/ebtables.initd
new file mode 100644
index 0000000000..27c743c910
--- /dev/null
+++ b/main/ebtables/ebtables.initd
@@ -0,0 +1,97 @@
+#!/sbin/runscript
+# Copyright 1999-2007 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/net-firewall/ebtables/files/ebtables.initd,v 1.2 2007/09/28 19:22:14 pva Exp $
+
+opts="save reload panic"
+
+ebtables_bin="/sbin/ebtables"
+ebtables_save=${EBTABLES_SAVE}
+ebtables_tables=$(grep -E '^ebtable_' /proc/modules | cut -f1 -d' ' | sed s/ebtable_//)
+if [ "$ebtables_tables" == "" ] ; then
+ ebtables_tables=${TABLE_NAMES}
+fi
+
+depend() {
+ before net
+ use logger
+}
+
+set_table_policy() {
+ local chains table=$1 policy=$2
+ case ${table} in
+ nat) chains="PREROUTING POSTROUTING OUTPUT";;
+ broute) chains="BROUTING";;
+ filter) chains="INPUT FORWARD OUTPUT";;
+ *) chains="";;
+ esac
+ local chain
+ for chain in ${chains} ; do
+ ${ebtables_bin} -t ${table} -P ${chain} ${policy}
+ done
+}
+
+checkconfig() {
+ if [ ! -f ${ebtables_save} ] ; then
+ eerror "Not starting ebtables. First create some rules then run:"
+ eerror "/etc/init.d/ebtables save"
+ return 1
+ fi
+ return 0
+}
+
+start() {
+ checkconfig || return 1
+ ebegin "Loading ebtables state and starting bridge firewall"
+ ${ebtables_bin}-restore ${SAVE_RESTORE_OPTIONS} < "${ebtables_save}"
+ eend $?
+}
+
+stop() {
+ if [ "${SAVE_ON_STOP}" = "yes" ] ; then
+ save || return 1
+ fi
+ ebegin "Stopping bridge firewall"
+ local a
+ for a in ${ebtables_tables}; do
+ set_table_policy $a ACCEPT
+
+ ${ebtables_bin} -t $a -F
+ ${ebtables_bin} -t $a -X
+ done
+ eend $?
+}
+
+reload() {
+ ebegin "Flushing bridge firewall"
+ local a
+ for a in ${ebtables_tables}; do
+ ${ebtables_bin} -t $a -F
+ ${ebtables_bin} -t $a -X
+ done
+ eend $?
+
+ start
+}
+
+save() {
+ ebegin "Saving ebtables state"
+ touch "${ebtables_save}"
+ chmod 0600 "${ebtables_save}"
+ ${ebtables_bin}-save ${ebtables_tables} ${SAVE_RESTORE_OPTIONS} > "${ebtables_save}"
+ eend $?
+}
+
+panic() {
+ service_started ebtables && svc_stop
+
+ local a
+ ebegin "Dropping all packets forwarded on bridges"
+ for a in ${ebtables_tables}; do
+ ${ebtables_bin} -t $a -F
+ ${ebtables_bin} -t $a -X
+
+ set_table_policy $a DROP
+ done
+ eend $?
+}