~alpine/aports

1

[alpine-aports] [PATCH] main/ferm: add check, documentation, openrc

Chloe Kudryavtsev <toast@toastin.space>
Details
Message ID
<20181107030038.8869-1-toast@toastin.space>
Sender timestamp
1541559638
DKIM signature
missing
Download raw message
Patch: +72 -9
- 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   | 40 +++++++++++++++++++++++++++++++---------
 main/ferm/ferm.confd |  1 +
 main/ferm/ferm.initd | 40 ++++++++++++++++++++++++++++++++++++++++
 3 files changed, 72 insertions(+), 9 deletions(-)
 create mode 100644 main/ferm/ferm.confd
 create mode 100755 main/ferm/ferm.initd

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 $?
}
-- 
2.19.1



---
Unsubscribe:  alpine-aports+unsubscribe@lists.alpinelinux.org
Help:         alpine-aports+help@lists.alpinelinux.org
---

[alpine-aports] [PATCH v2] main/ferm: add check, documentation, openrc

Chloe Kudryavtsev <toast@toastin.space>
Details
Message ID
<20181107032419.17219-1-toast@toastin.space>
In-Reply-To
<20181107030038.8869-1-toast@toastin.space> (view parent)
Sender timestamp
1541561059
DKIM signature
missing
Download raw message
Patch: +73 -9
- 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`).
---
Changes v1 -> v2:
 $subpkgdir is not auto-created, which caused /conf.d (etc) to be
 instlled rather than /etc/conf.d.

 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

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 $?
}
-- 
2.19.1



---
Unsubscribe:  alpine-aports+unsubscribe@lists.alpinelinux.org
Help:         alpine-aports+help@lists.alpinelinux.org
---
Reply to thread Export thread (mbox)