commit 0a04a4b2e4a1124d61b199a281f37f760a739b10
parent b36fa44d554ceb9e9a481ad439e12712569082e9
Author: Robin Bron <robin.bron@yourhosting.nl>
Date: Fri, 2 Oct 2026 14:22:58 +0200
Add dnsmasq
Diffstat:
6 files changed, 98 insertions(+), 0 deletions(-)
diff --git a/.conductor.yml b/.conductor.yml
@@ -158,6 +158,19 @@ tasks:
- ./mk/build.sh --channel edge curl
- ./mk/publish.sh --channel edge --arch "$ARCH" curl
+ pkg-edge-dnsmasq:
+ needs:
+ - check
+ arch: [x86_64]
+ requires: [unos-sign-key]
+ script:
+ - ./mk/check-revision.sh --channel edge dnsmasq --pkgver 2.93-r0 --repo "$BUCKET_PUBLIC_URL" || { rc=$?; [ "$rc" = 1 ] && exit 0; exit "$rc"; }
+ - ./mk/channel-assemble.sh edge
+ - ./mk/bootstrap-host.sh
+ - ./mk/sysroot.sh --channel edge --arch "$ARCH" --repo "$BUCKET_PUBLIC_URL" dnsmasq
+ - ./mk/build.sh --channel edge dnsmasq
+ - ./mk/publish.sh --channel edge --arch "$ARCH" dnsmasq
+
pkg-edge-dosfstools:
needs:
- check
@@ -517,6 +530,19 @@ tasks:
- ./mk/build.sh --channel lts curl
- ./mk/publish.sh --channel lts --arch "$ARCH" curl
+ pkg-lts-dnsmasq:
+ needs:
+ - check
+ arch: [x86_64]
+ requires: [unos-sign-key]
+ script:
+ - ./mk/check-revision.sh --channel lts dnsmasq --pkgver 2.93-r0 --repo "$BUCKET_PUBLIC_URL" || { rc=$?; [ "$rc" = 1 ] && exit 0; exit "$rc"; }
+ - ./mk/channel-assemble.sh lts
+ - ./mk/bootstrap-host.sh
+ - ./mk/sysroot.sh --channel lts --arch "$ARCH" --repo "$BUCKET_PUBLIC_URL" dnsmasq
+ - ./mk/build.sh --channel lts dnsmasq
+ - ./mk/publish.sh --channel lts --arch "$ARCH" dnsmasq
+
pkg-lts-dosfstools:
needs:
- check
@@ -876,6 +902,19 @@ tasks:
- ./mk/build.sh --channel stable curl
- ./mk/publish.sh --channel stable --arch "$ARCH" curl
+ pkg-stable-dnsmasq:
+ needs:
+ - check
+ arch: [x86_64]
+ requires: [unos-sign-key]
+ script:
+ - ./mk/check-revision.sh --channel stable dnsmasq --pkgver 2.93-r0 --repo "$BUCKET_PUBLIC_URL" || { rc=$?; [ "$rc" = 1 ] && exit 0; exit "$rc"; }
+ - ./mk/channel-assemble.sh stable
+ - ./mk/bootstrap-host.sh
+ - ./mk/sysroot.sh --channel stable --arch "$ARCH" --repo "$BUCKET_PUBLIC_URL" dnsmasq
+ - ./mk/build.sh --channel stable dnsmasq
+ - ./mk/publish.sh --channel stable --arch "$ARCH" dnsmasq
+
pkg-stable-dosfstools:
needs:
- check
@@ -1134,6 +1173,7 @@ tasks:
- pkg-edge-base-files
- pkg-edge-busybox
- pkg-edge-curl
+ - pkg-edge-dnsmasq
- pkg-edge-dosfstools
- pkg-edge-e2fsprogs
- pkg-edge-efivar
@@ -1171,6 +1211,7 @@ tasks:
- pkg-lts-base-files
- pkg-lts-busybox
- pkg-lts-curl
+ - pkg-lts-dnsmasq
- pkg-lts-dosfstools
- pkg-lts-e2fsprogs
- pkg-lts-efivar
@@ -1208,6 +1249,7 @@ tasks:
- pkg-stable-base-files
- pkg-stable-busybox
- pkg-stable-curl
+ - pkg-stable-dnsmasq
- pkg-stable-dosfstools
- pkg-stable-e2fsprogs
- pkg-stable-efivar
diff --git a/channels/base/packages/dnsmasq/files/dnsmasq-check b/channels/base/packages/dnsmasq/files/dnsmasq-check
@@ -0,0 +1,2 @@
+#!/bin/sh
+exec /usr/bin/nc -z -w2 127.0.0.1 53
diff --git a/channels/base/packages/dnsmasq/files/dnsmasq-log-run b/channels/base/packages/dnsmasq/files/dnsmasq-log-run
@@ -0,0 +1,2 @@
+#!/bin/sh
+exec svlogd -tt /var/log/dnsmasq
diff --git a/channels/base/packages/dnsmasq/files/dnsmasq-run b/channels/base/packages/dnsmasq/files/dnsmasq-run
@@ -0,0 +1,3 @@
+#!/bin/sh
+exec 2>&1
+exec /usr/sbin/dnsmasq -k --log-facility=- --pid-file=
diff --git a/channels/base/packages/dnsmasq/files/dnsmasq.conf b/channels/base/packages/dnsmasq/files/dnsmasq.conf
@@ -0,0 +1,3 @@
+local-service
+bind-interfaces
+conf-dir=/etc/dnsmasq.d,*.conf
diff --git a/channels/base/packages/dnsmasq/template b/channels/base/packages/dnsmasq/template
@@ -0,0 +1,46 @@
+# Template file for 'dnsmasq'
+pkgname=dnsmasq
+version=2.93
+revision=0
+short_desc="Lightweight DHCP and caching DNS server"
+maintainer="finwo <finwo@pm.me>"
+license="GPL-2.0-only OR GPL-3.0-only"
+homepage="https://thekelleys.org.uk/dnsmasq/doc.html"
+distfiles="https://thekelleys.org.uk/dnsmasq/dnsmasq-2.93.tar.xz"
+# Upstream .asc verified against Simon Kelley's key
+# D6EACBD6EE46B834248D111215CDDA6AE19135A2 before recording this.
+checksum=0c00d4e5c97c8306e5fb932b348b34269c9c29a0e7df0e8e82958b407092bc19
+depends="glibc busybox"
+
+# No configure script. Every optional (dbus, idn2, dnssec/nettle, conntrack,
+# lua, ubus, nftset) is reached only through COPTS, so an empty COPTS cannot
+# pick up a host library; do_build asserts that.
+do_build() {
+ cd "${WRKSRC}"
+ make -j"$(nproc)" PREFIX=/usr
+ [ -x src/dnsmasq ] || die "dnsmasq: binary missing after build"
+ needed=$(readelf -d src/dnsmasq | sed -n 's/^.*NEEDED.*\[\(.*\)\].*$/\1/p' | sort)
+ for lib in ${needed}; do
+ case "${lib}" in
+ libc.so.*) : ;;
+ *) die "dnsmasq: unexpected NEEDED entry: ${lib}" ;;
+ esac
+ done
+}
+
+do_install() {
+ cd "${WRKSRC}"
+ make install PREFIX=/usr DESTDIR="${DESTDIR}"
+ vinstall ${FILESDIR}/dnsmasq.conf 644 etc dnsmasq.conf
+ vinstall dnsmasq.conf.example 644 usr/share/doc/dnsmasq dnsmasq.conf.example
+ install -d "${DESTDIR}/etc/dnsmasq.d"
+ # compiled-in dhcp-leasefile path; absent, dnsmasq exits once a dhcp-range
+ # is configured
+ install -d "${DESTDIR}/var/lib/misc"
+ vinstall ${FILESDIR}/dnsmasq-run 755 etc/sv/dnsmasq run
+ vinstall ${FILESDIR}/dnsmasq-check 755 etc/sv/dnsmasq check
+ vinstall ${FILESDIR}/dnsmasq-log-run 755 etc/sv/dnsmasq/log run
+ ln -sfn /run/runit/supervise.dnsmasq "${DESTDIR}/etc/sv/dnsmasq/supervise"
+ ln -sfn /run/runit/supervise.dnsmasq-log "${DESTDIR}/etc/sv/dnsmasq/log/supervise"
+ install -d "${DESTDIR}/var/log/dnsmasq"
+}