aboutsummaryrefslogtreecommitdiffstats
path: root/main
diff options
context:
space:
mode:
authorChloe Kudryavtsev <toast@toastin.space>2018-11-06 22:24:19 -0500
committerLeonardo Arena <rnalrd@alpinelinux.org>2018-11-09 14:10:03 +0000
commit81f05ada5a529c7ea67d4e89d713a048255e751e (patch)
tree13a16832269c6b1cf090c4391137609d1d63d741 /main
parent18dcd89c60ab18efc735c877235502a0dbecaf6b (diff)
downloadaports-81f05ada5a529c7ea67d4e89d713a048255e751e.tar.gz
aports-81f05ada5a529c7ea67d4e89d713a048255e751e.tar.bz2
aports-81f05ada5a529c7ea67d4e89d713a048255e751e.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/APKBUILD41
-rw-r--r--main/ferm/ferm.confd1
-rwxr-xr-xmain/ferm/ferm.initd40
3 files changed, 73 insertions, 9 deletions
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 <ms13sp@gmail.com>
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 $?
+}