diff options
author | Chloe Kudryavtsev <toast@toastin.space> | 2018-11-06 22:00:38 -0500 |
---|---|---|
committer | Leonardo Arena <rnalrd@alpinelinux.org> | 2018-11-09 13:59:11 +0000 |
commit | 651f6f68959de397bb0de401c03f93cde67fef20 (patch) | |
tree | 17000ef280b2f85e49b943502f45a69a20df06e6 /main | |
parent | 157372b0708efca4eace0b554228ce22d7dce4ff (diff) | |
download | aports-651f6f68959de397bb0de401c03f93cde67fef20.tar.bz2 aports-651f6f68959de397bb0de401c03f93cde67fef20.tar.xz |
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`).
Diffstat (limited to 'main')
-rw-r--r-- | main/ferm/APKBUILD | 40 | ||||
-rw-r--r-- | main/ferm/ferm.confd | 1 | ||||
-rwxr-xr-x | main/ferm/ferm.initd | 40 |
3 files changed, 72 insertions, 9 deletions
diff --git a/main/ferm/APKBUILD b/main/ferm/APKBUILD index d5eccce8b5..05b25ef005 100644 --- a/main/ferm/APKBUILD +++ b/main/ferm/APKBUILD @@ -2,26 +2,48 @@ # Maintainer: Michael Mason <ms13sp@gmail.com> pkgname=ferm pkgver=2.4.1 -pkgrel=0 +pkgrel=1 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() { + 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 $? +} |