diff options
Diffstat (limited to 'main/ebtables')
-rw-r--r-- | main/ebtables/0001-link-with-gcc.patch | 25 | ||||
-rw-r--r-- | main/ebtables/APKBUILD | 58 | ||||
-rw-r--r-- | main/ebtables/ebtables.confd | 15 | ||||
-rw-r--r-- | main/ebtables/ebtables.initd | 97 |
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 $? +} |