summaryrefslogtreecommitdiff
path: root/extra/ebtables
diff options
context:
space:
mode:
Diffstat (limited to 'extra/ebtables')
-rw-r--r--extra/ebtables/PKGBUILD51
-rw-r--r--extra/ebtables/ebtables.install9
-rw-r--r--extra/ebtables/ebtables.service11
-rw-r--r--extra/ebtables/ebtables.systemd21
4 files changed, 92 insertions, 0 deletions
diff --git a/extra/ebtables/PKGBUILD b/extra/ebtables/PKGBUILD
new file mode 100644
index 000000000..ce47a9081
--- /dev/null
+++ b/extra/ebtables/PKGBUILD
@@ -0,0 +1,51 @@
+# $Id: PKGBUILD 217757 2014-07-23 22:33:19Z seblu $
+# Maintainer: Sébastien Luttringer
+# Contributor: Michal Soltys <soltys@ziu.info>
+
+pkgname=ebtables
+pkgver=2.0.10_4
+pkgrel=4
+pkgdesc='Ethernet bridge filtering utilities'
+arch=('i686' 'x86_64')
+url='http://ebtables.sourceforge.net/'
+depends=('perl' 'bash')
+license=('GPL2')
+backup=("etc/$pkgname.conf")
+# ebtables segfault with --as-needed
+options=('!buildflags')
+install=$pkgname.install
+source=("http://downloads.sourceforge.net/${pkgname}/${pkgname}-v${pkgver/_/-}.tar.gz"
+ "$pkgname.systemd"
+ "$pkgname.service")
+md5sums=('506742a3d44b9925955425a659c1a8d0'
+ 'b4c329060809e5b290ae49fbd0ad61f2'
+ 'baf923443c3b16277e50d60d2e68f534')
+
+build() {
+ cd $pkgname-v${pkgver/_/-}
+ make CFLAGS='-Wunused -Wall -Werror -Wno-error=unused-but-set-variable'
+}
+
+package() {
+ pushd $pkgname-v${pkgver/_/-}
+ make install \
+ DESTDIR="$pkgdir" \
+ LIBDIR=/usr/lib \
+ MANDIR=/usr/share/man \
+ BINDIR=/usr/bin \
+ INITDIR=/etc/rc.d \
+ SYSCONFIGDIR=/etc
+ popd
+ # rm package ebtables rc.d scripts
+ rm "$pkgdir/etc/ebtables-config"
+ rm -r "$pkgdir/etc/rc.d"
+ # systemd
+ install -Dm 755 $pkgname.systemd \
+ "$pkgdir/usr/lib/systemd/scripts/$pkgname"
+ install -Dm 644 $pkgname.service \
+ "$pkgdir/usr/lib/systemd/system/$pkgname.service"
+ # default config file
+ install -Dm 644 /dev/null "$pkgdir/etc/$pkgname.conf"
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/extra/ebtables/ebtables.install b/extra/ebtables/ebtables.install
new file mode 100644
index 000000000..7dd6921ed
--- /dev/null
+++ b/extra/ebtables/ebtables.install
@@ -0,0 +1,9 @@
+## arg 1: the new package version
+## arg 2: the old package version
+post_upgrade() {
+ [ $(vercmp "$2" '2.0.10_4-1') -gt 0 ] || cat <<EOF
+Config file have been moved to /etc/ebtables.conf and only support text format.
+EOF
+}
+
+# vim:set ts=2 sw=2 ft=sh et:
diff --git a/extra/ebtables/ebtables.service b/extra/ebtables/ebtables.service
new file mode 100644
index 000000000..25e6b76cc
--- /dev/null
+++ b/extra/ebtables/ebtables.service
@@ -0,0 +1,11 @@
+[Unit]
+Description=Ethernet bridge table
+
+[Service]
+Type=oneshot
+RemainAfterExit=yes
+ExecStart=/usr/lib/systemd/scripts/ebtables start
+ExecStop=/usr/lib/systemd/scripts/ebtables stop
+
+[Install]
+WantedBy=multi-user.target
diff --git a/extra/ebtables/ebtables.systemd b/extra/ebtables/ebtables.systemd
new file mode 100644
index 000000000..7c21ff967
--- /dev/null
+++ b/extra/ebtables/ebtables.systemd
@@ -0,0 +1,21 @@
+#!/bin/bash
+
+CONFIG_FILE='/etc/ebtables.conf'
+
+case $1 in
+ start)
+ ebtables-restore < "$CONFIG_FILE"
+ ;;
+ stop)
+ ebtables -F
+ ;;
+ save)
+ ebtables-save > "$CONFIG_FILE"
+ ;;
+ *)
+ echo "usage: ${0##*/} {start|stop|save}" >&2
+ exit 1
+ ;;
+esac
+
+# vim:set ts=2 sw=2 ft=sh et: