aboutsummaryrefslogtreecommitdiffstats
path: root/main
diff options
context:
space:
mode:
authorJakub Jirutka <jakub@jirutka.cz>2019-11-08 10:17:23 +0100
committerJakub Jirutka <jakub@jirutka.cz>2019-11-08 10:17:23 +0100
commit2149037f492af67f78321eb3bf1429cf2c9dc680 (patch)
tree27f1c50b10ac872485a965028e056119d248a0d5 /main
parent1dc36494df07d0ba73534d3211cdeaf1f70d8cf9 (diff)
downloadaports-2149037f492af67f78321eb3bf1429cf2c9dc680.tar.bz2
aports-2149037f492af67f78321eb3bf1429cf2c9dc680.tar.xz
main/knot: move from community
Diffstat (limited to 'main')
-rw-r--r--main/knot/APKBUILD112
-rw-r--r--main/knot/knot.post-install11
-rw-r--r--main/knot/knot.post-upgrade15
-rw-r--r--main/knot/knot.pre-install6
-rw-r--r--main/knot/knotd.confd1
-rw-r--r--main/knot/knotd.initd36
-rw-r--r--main/knot/test_net.patch16
7 files changed, 197 insertions, 0 deletions
diff --git a/main/knot/APKBUILD b/main/knot/APKBUILD
new file mode 100644
index 0000000000..3d9a1e7011
--- /dev/null
+++ b/main/knot/APKBUILD
@@ -0,0 +1,112 @@
+# Contributor: Francesco Colista <fcolista@alpinelinux.org>
+# Contributor: Dennis Przytarski <dennis@przytarski.com>
+# Contributor: Francesco Zanini <francesco@zanini.me>
+# Contributor: Jakub Jirutka <jakub@jirutka.cz>
+# Maintainer: Jakub Jirutka <jakub@jirutka.cz>
+pkgname="knot"
+pkgver=2.9.0
+pkgrel=0
+pkgdesc="An high-performance authoritative-only DNS server"
+url="https://www.knot-dns.cz"
+arch="all"
+license="GPL-3.0-or-later"
+depends=""
+depends_dev="$pkgname $pkgname-libs-static $pkgname-utils"
+checkdepends="softhsm"
+makedepends="
+ bison
+ bsd-compat-headers
+ flex
+ gnutls-dev
+ jansson-dev
+ libcap-ng-dev
+ libedit-dev
+ libidn-dev
+ libtool
+ lmdb-dev
+ m4
+ openssl-dev
+ perl
+ sed
+ userspace-rcu-dev
+ zlib-dev
+ "
+install="$pkgname.pre-install $pkgname.post-install $pkgname.post-upgrade"
+pkgusers="$pkgname"
+pkggroups="$pkgname"
+subpackages="$pkgname-libs
+ $pkgname-libs-static
+ $pkgname-utils
+ $pkgname-dev
+ $pkgname-doc
+ $pkgname-openrc
+ "
+source="https://secure.nic.cz/files/$pkgname-dns/$pkgname-$pkgver.tar.xz
+ test_net.patch
+ knotd.confd
+ knotd.initd
+ "
+
+prepare() {
+ default_prepare
+
+ cd "$builddir"
+ # Make sure embedded LMDB library is not used.
+ rm -rf src/contrib/lmdb
+}
+
+build() {
+ ./configure \
+ --build="$CBUILD" \
+ --host="$CHOST" \
+ --prefix=/usr \
+ --sysconfdir=/etc \
+ --libexecdir="/usr/lib/$pkgname" \
+ --with-rundir="/run/$pkgname" \
+ --with-storage="/var/lib/$pkgname" \
+ --disable-silent-rules
+ make
+}
+
+check() {
+ make check
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+
+ rm -rf "$pkgdir/run"
+ chown "${pkgusers%% *}:${pkggroups%% *}" "$pkgdir/var/lib/$pkgname"
+ chmod 750 "$pkgdir/var/lib/$pkgname"
+
+ install -Dm 644 "$srcdir/knotd.confd" \
+ "$pkgdir/etc/conf.d/knotd"
+ install -Dm 755 "$srcdir/knotd.initd" \
+ "$pkgdir/etc/init.d/knotd"
+}
+
+libs() {
+ pkgdesc="Libraries used by the Knot DNS server and client applications"
+
+ cd "$pkgdir"
+ mkdir -p "$subpkgdir/usr/lib"
+ mv ./usr/lib/libdnssec.so.* \
+ ./usr/lib/libknot.so.* \
+ ./usr/lib/libzscanner.so.* \
+ "$subpkgdir/usr/lib/"
+}
+
+utils() {
+ pkgdesc="DNS client utilities shipped with the Knot DNS server"
+
+ mkdir -p "$subpkgdir/usr"
+ mv "$pkgdir/usr/bin" "$subpkgdir/usr/"
+}
+
+gpg_signature_extensions="asc"
+gpgfingerprints="good:742F A4E9 5829 B6C5 EAC6 B857 10BB 7AF6 FEBB D6AB"
+
+sha512sums="7584152d4fd01cea40a254b05d59971c7341cf612976104ddd857c4a1c637fc83ad93669fc943de3c1514122be793b78f8cc26fef4cc98f5a693640bb766f2b9 knot-2.9.0.tar.xz
+39503d16603eaff04cb34de97bff987952818d229ccb5b190567198505ece8077efdf230d5402e69ca4ab8acb282c53bfaaf495360dc11191c985a48fbb61318 test_net.patch
+471d3c639a8235ba09491c99d36c0a4f1074d6055ccfd3807be02a30d3ed5bbe69a84f0414ea7810db6bbc1e38f5837108e5744fc59f949ed78a262a7de4597e knotd.confd
+979f06a83dd4326920a682f8190319577faf904e0e379b3c55e0420eb43dcb55d86c6727015634fa0c2dff1dddac43bbd5a216ff04f217ad91d670eb899dbefa knotd.initd"
diff --git a/main/knot/knot.post-install b/main/knot/knot.post-install
new file mode 100644
index 0000000000..c9cced828f
--- /dev/null
+++ b/main/knot/knot.post-install
@@ -0,0 +1,11 @@
+#!/bin/sh
+
+cat >&2 <<EOF
+*
+* Before running knot, you must create a knot.conf file.
+* There is an example in the /etc/knot directory.
+* You can rename the example file and make the necessary adjustment.
+*
+EOF
+
+exit 0
diff --git a/main/knot/knot.post-upgrade b/main/knot/knot.post-upgrade
new file mode 100644
index 0000000000..f86b42f941
--- /dev/null
+++ b/main/knot/knot.post-upgrade
@@ -0,0 +1,15 @@
+#!/bin/sh
+
+ver_new="$1"
+ver_old="$2"
+
+if [ "$(apk version -t "$ver_old" "2.3.0-r1")" = "<" ]; then
+ cat 1>&2 <<-EOF
+ *
+ * Knot utilities kdig, khost, knsec3hash, and knsupdate have been moved
+ * to subpackage knot-utils. If you use them, run: apk add knot-utils.
+ *
+ EOF
+fi
+
+exit 0
diff --git a/main/knot/knot.pre-install b/main/knot/knot.pre-install
new file mode 100644
index 0000000000..9313ba5b04
--- /dev/null
+++ b/main/knot/knot.pre-install
@@ -0,0 +1,6 @@
+#!/bin/sh
+
+addgroup -S knot 2>/dev/null
+adduser -S -D -H -h /var/lib/knot -s /sbin/nologin -G knot -g knot knot 2>/dev/null
+
+exit 0
diff --git a/main/knot/knotd.confd b/main/knot/knotd.confd
new file mode 100644
index 0000000000..f7a0c2a47c
--- /dev/null
+++ b/main/knot/knotd.confd
@@ -0,0 +1 @@
+KNOTD_OPTS=""
diff --git a/main/knot/knotd.initd b/main/knot/knotd.initd
new file mode 100644
index 0000000000..781346216c
--- /dev/null
+++ b/main/knot/knotd.initd
@@ -0,0 +1,36 @@
+#!/sbin/openrc-run
+# Copyright 1999-2013 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/net-dns/knot/files/knot.init,v 1.2 2013/08/21 09:23:59 scarabeus Exp $
+
+name="knotd"
+command="/usr/sbin/knotd"
+command_args="-d ${KNOTD_OPTS}"
+start_stop_daemon_args="--wait 5"
+required_files=/etc/knot/knot.conf
+extra_started_commands="reload"
+description_reload="Reload configuration and changed zones"
+
+depend() {
+ need net
+}
+
+start_pre() {
+ checkpath -d -m 0750 -o knot:knot /run/knot/ /var/lib/knot/
+}
+
+stop() {
+ ebegin "Stopping $name"
+ /usr/sbin/knotc stop >/dev/null 2>&1
+ # Mark service as stopped if remote control was successful
+ if [ $? -eq 0 ]; then
+ start-stop-daemon --stop --quiet --pidfile /run/knot/knot.pid
+ fi
+ eend $?
+}
+
+reload() {
+ ebegin "Reloading $name"
+ /usr/sbin/knotc reload >/dev/null
+ eend $?
+}
diff --git a/main/knot/test_net.patch b/main/knot/test_net.patch
new file mode 100644
index 0000000000..70a1ba751d
--- /dev/null
+++ b/main/knot/test_net.patch
@@ -0,0 +1,16 @@
+diff --git a/tests/contrib/test_net.c b/tests/contrib/test_net.c
+index 95833625e..ff028eb99 100644
+--- a/tests/contrib/test_net.c
++++ b/tests/contrib/test_net.c
+@@ -40,10 +40,7 @@ const int TIMEOUT_SHORT = 500;
+ static struct sockaddr_storage addr_local(void)
+ {
+ struct sockaddr_storage addr = { 0 };
+- struct sockaddr_in6 *addr6 = (struct sockaddr_in6 *)&addr;
+-
+- addr6->sin6_family = AF_INET6;
+- addr6->sin6_addr = in6addr_loopback;
++ sockaddr_set(&addr, AF_INET, "127.0.0.1", 0);
+
+ return addr;
+ }