From 99d241e36ea5038652fdc8aed21643de87006edd Mon Sep 17 00:00:00 2001 From: Dominic Date: Sat, 8 Feb 2025 12:42:11 +0100 Subject: [PATCH] testing/crab-hole: new aport --- testing/crab-hole/APKBUILD | 48 +++++++++++++++++++++++++ testing/crab-hole/crab-hole.confd | 2 ++ testing/crab-hole/crab-hole.initd | 18 ++++++++++ testing/crab-hole/crab-hole.pre-install | 7 ++++ 4 files changed, 75 insertions(+) create mode 100644 testing/crab-hole/APKBUILD create mode 100644 testing/crab-hole/crab-hole.confd create mode 100644 testing/crab-hole/crab-hole.initd create mode 100755 testing/crab-hole/crab-hole.pre-install diff --git a/testing/crab-hole/APKBUILD b/testing/crab-hole/APKBUILD new file mode 100644 index 00000000000..8a04ead9fbe --- /dev/null +++ b/testing/crab-hole/APKBUILD @@ -0,0 +1,48 @@ +maintainer="Dominic " +pkgname=crab-hole +pkgver=0.1.12 +pkgrel=0 +pkgdesc="A DNS level ad and spy blocker" +url="https://github.com/LuckyTurtleDev/crab-hole" +# other archs: missing ring support +arch="x86_64 aarch64 x86 armhf armv7" +license="AGPL-3.0-or-later" +makedepends="cargo cargo-auditable" +subpackages="$pkgname-openrc" +source="https://github.com/LuckyTurtleDev/crab-hole/archive/refs/tags/v$pkgver/crab-hole-$pkgver.tar.gz + $pkgname.initd + $pkgname.confd + " +install="$pkgname.pre-install" + +# net: needed for downloading dependencies +options="net" + +prepare() { + default_prepare + + cargo fetch --target="$CTARGET" --locked +} + +build() { + cargo auditable build --target="$CTARGET" --release --frozen +} + +check() { + cargo test --release --frozen +} + +package() { + install -Dm755 target/$CTARGET/release/$pkgname -t "$pkgdir"/usr/bin/ + + install -Dm644 example-config.toml "$pkgdir"/etc/$pkgname.toml + + install -D -m755 "$srcdir"/$pkgname.initd "$pkgdir"/etc/init.d/$pkgname + install -D -m644 "$srcdir"/$pkgname.confd "$pkgdir"/etc/conf.d/$pkgname +} + +sha512sums=" +d00f1bf82baaa0158d7dbc01ce1b015781ab64f1702d088f11a579204663dedfe1a21f76a0e4f7bbbf514c5c7acc9fb635d8935cec3378777ff2e0525f31cfc3 crab-hole-0.1.12.tar.gz +1ec93e6cdf09599ae1b0eca89ed9d6eef5e7b0dc328598151e20211df17aaec790ef0f30d424a5b032ed8a1aec4a073b68f0e6921aa29f1901fc2487e6568586 crab-hole.initd +1ca2464264d938f880460a27dc92325a30fa35c26461bf69dba2f17849b2d6450ba3bec704ead19148daf06f882c2d60f99dc8f970d0229e62040b793aca9517 crab-hole.confd +" diff --git a/testing/crab-hole/crab-hole.confd b/testing/crab-hole/crab-hole.confd new file mode 100644 index 00000000000..232545567d0 --- /dev/null +++ b/testing/crab-hole/crab-hole.confd @@ -0,0 +1,2 @@ +# comment out to not use process supervisor +supervisor=supervise-daemon diff --git a/testing/crab-hole/crab-hole.initd b/testing/crab-hole/crab-hole.initd new file mode 100644 index 00000000000..03be34db00c --- /dev/null +++ b/testing/crab-hole/crab-hole.initd @@ -0,0 +1,18 @@ +#!/sbin/openrc-run + +name="Crab-Hole DNS Server" +description="A DNS level ad and spy blocker" + +command="/usr/bin/crab-hole" +command_background=yes +command_user=crab-hole:crab-hole +capabilities="^cap_net_bind_service" +pidfile="/run/crab-hole.pid" + +depend() { + need net +} + +start_pre() { + checkpath --directory --owner "$command_user" /var/lib/crab-hole +} diff --git a/testing/crab-hole/crab-hole.pre-install b/testing/crab-hole/crab-hole.pre-install new file mode 100755 index 00000000000..808387e95db --- /dev/null +++ b/testing/crab-hole/crab-hole.pre-install @@ -0,0 +1,7 @@ +#!/bin/sh + +_user=crab-hole +addgroup -S $_user 2>/dev/null +adduser -S -D -H -h /var/lib/$_user -s /sbin/nologin -G $_user -g $_user $_user 2>/dev/null + +exit 0