From 81f05ada5a529c7ea67d4e89d713a048255e751e Mon Sep 17 00:00:00 2001 From: Chloe Kudryavtsev Date: Tue, 6 Nov 2018 22:24:19 -0500 Subject: main/ferm: add check, documentation, openrc - ferm has a test suite, which passes - ferm has multiple (generated) pieces of documentation - it makes sense to use ferm in-place of iptables-save This patch adds tests, packages docs, and adds an openrc init script that I've been using for about a month now. For well-behaved packages (`need firewall`, rather than `need iptables) it can be an in-place replacement (as it `provide firewall`). --- main/ferm/APKBUILD | 41 ++++++++++++++++++++++++++++++++--------- main/ferm/ferm.confd | 1 + main/ferm/ferm.initd | 40 ++++++++++++++++++++++++++++++++++++++++ 3 files changed, 73 insertions(+), 9 deletions(-) create mode 100644 main/ferm/ferm.confd create mode 100755 main/ferm/ferm.initd (limited to 'main/ferm') diff --git a/main/ferm/APKBUILD b/main/ferm/APKBUILD index d5eccce8b5..1d3e51e73f 100644 --- a/main/ferm/APKBUILD +++ b/main/ferm/APKBUILD @@ -2,26 +2,49 @@ # Maintainer: Michael Mason pkgname=ferm pkgver=2.4.1 -pkgrel=0 +pkgrel=2 pkgdesc="firewall configuration tool" url="http://ferm.foo-projects.org/" arch="noarch" license="GPL" depends="perl iptables" -options="!check" -source="http://ferm.foo-projects.org/download/${pkgver%.*}/$pkgname-$pkgver.tar.xz" +source=" + http://ferm.foo-projects.org/download/${pkgver%.*}/$pkgname-$pkgver.tar.xz + ferm.confd + ferm.initd + " +subpackages="$pkgname-doc $pkgname-openrc" builddir="$srcdir"/$pkgname-$pkgver build() { - return 0 + cd "$builddir" + make +} + +check() { + cd "$builddir" + make check } package() { cd "$builddir" - install -m755 -D "$srcdir"/"$pkgname-$pkgver"/src/ferm \ - "$pkgdir"/usr/sbin/"$pkgname" - install -m755 -D "$srcdir"/"$pkgname-$pkgver"/src/import-ferm \ - "$pkgdir"/usr/sbin/import-ferm + install -m755 -D src/ferm "$pkgdir/usr/sbin/$pkgname" + install -m755 -D src/import-ferm "$pkgdir/usr/sbin/import-$pkgname" + + install -m644 -D doc/ferm.1 "$pkgdir/usr/share/man/man1/ferm.1" + install -m644 -D doc/import-ferm.1 \ + "$pkgdir/usr/share/man/man1/import-ferm.1" + install -m644 -D doc/ferm.txt "$pkgdir/usr/share/doc/ferm.txt" + install -m644 -D doc/ferm.html "$pkgdir/usr/share/html/ferm.html" + + install -m644 -D "$srcdir/ferm.confd" "$pkgdir/etc/conf.d/$pkgname" + install -m755 -D "$srcdir/ferm.initd" "$pkgdir/etc/init.d/$pkgname" } -sha512sums="beea4b8dd04e00662ef380442f8249c2d2dadf6d35b90e415038df807c8d08295d2575efbf3265f48f5e92afa174135a9c662f74d52545dd3e1c55a1436aa5bb ferm-2.4.1.tar.xz" +openrc() { + mkdir -p "$subpkgdir" + mv "$pkgdir/etc" "$subpkgdir/" +} +sha512sums="beea4b8dd04e00662ef380442f8249c2d2dadf6d35b90e415038df807c8d08295d2575efbf3265f48f5e92afa174135a9c662f74d52545dd3e1c55a1436aa5bb ferm-2.4.1.tar.xz +26e4673f7c8d0f77eb1d8fdc2051f1a3729e482b075346c65e39305e29014391c390c682cd597cf3dc67fa0f9fe69818e928c41cb362814a69fc67e8bbdf7ad5 ferm.confd +c36a275d7abeac7dcb17240311b47007aafa8e07e4fd50ce45af3d79e713627624d26eea1bffe7854824f2c174a18524669cedab510ca9cea1565dda4606d394 ferm.initd" diff --git a/main/ferm/ferm.confd b/main/ferm/ferm.confd new file mode 100644 index 0000000000..2a4037d25c --- /dev/null +++ b/main/ferm/ferm.confd @@ -0,0 +1 @@ +inputfile=/etc/ferm/ferm.conf diff --git a/main/ferm/ferm.initd b/main/ferm/ferm.initd new file mode 100755 index 0000000000..d855f6f79a --- /dev/null +++ b/main/ferm/ferm.initd @@ -0,0 +1,40 @@ +#!/sbin/openrc-run + +name="ferm" +description="For Easy Rule Making is a perl-based iptables frontend" +description_checkconfig="Checks script validity" + +extra_commands="checkconfig" + +depend() { + after net sysctl + provide firewall +} + +checkconfig() { + ferm -n "$inputfile" +} + +start_pre() { + if [ "${RC_CMD}" != "restart" ] ; then + checkconfig || return $? + fi +} + +stop_pre() { + if [ "${RC_CMD}" = "restart" ] ; then + checkconfig || return $? + fi +} + +start() { + ebegin "Loading $inputfile rules" + ferm "$inputfile" + eend $? +} + +stop() { + ebegin "Unloading $inputfile rules" + ferm -F "$inputfile" + eend $? +} -- cgit v1.2.3