Source: dnsmasq Version: 2.80-1 Severity: wishlist Tags: patch User: ru...@packages.debian.org Usertags: runscript
Dear maintainer, please include native script for runit init system into 'dnsmasq'. Below is diff aganist latest package release (2.80-1). Here are some links: * http://smarden.org/runit -- more information about 'runit' * https://bugs.debian.org/746715 -- technical committe position on support of init systems, other then sysvinit. From 3c516dde2b8dd552b141196ed98379800b3e0611 Mon Sep 17 00:00:00 2001 From: Dmitry Bogatov <kact...@debian.org> Date: Sun, 26 May 2019 18:54:36 +0000 Subject: [PATCH] Add integration script for runit init --- debian/control | 5 ++-- debian/dnsmasq.runit | 1 + debian/dnsmasq.runscript/finish | 5 ++++ debian/dnsmasq.runscript/run | 43 +++++++++++++++++++++++++++++++++ debian/rules | 7 +++++- 5 files changed, 58 insertions(+), 3 deletions(-) create mode 100644 debian/dnsmasq.runit create mode 100755 debian/dnsmasq.runscript/finish create mode 100755 debian/dnsmasq.runscript/run diff --git a/debian/control b/debian/control index 9d4d7e8..40ad6c6 100644 --- a/debian/control +++ b/debian/control @@ -4,7 +4,7 @@ Priority: optional Build-depends: gettext, libnetfilter-conntrack-dev [linux-any], libidn11-dev, libdbus-1-dev (>=0.61), libgmp-dev, nettle-dev (>=2.4-3), libbsd-dev [!linux-any], - liblua5.2-dev + liblua5.2-dev, dh-runit, debhelper-compat (= 10) Maintainer: Simon Kelley <si...@thekelleys.org.uk> Homepage: http://www.thekelleys.org.uk/dnsmasq/doc.html Standards-Version: 3.9.8 @@ -12,8 +12,9 @@ Standards-Version: 3.9.8 Package: dnsmasq Architecture: all Depends: netbase, dnsmasq-base, - init-system-helpers (>= 1.18~), lsb-base (>= 3.0-6) + init-system-helpers (>= 1.18~), lsb-base (>= 3.0-6), ${misc:Depends} Suggests: resolvconf +Breaks: ${runit:Breaks} Conflicts: resolvconf (<<1.15) Description: Small caching DNS proxy and DHCP/TFTP server Dnsmasq is a lightweight, easy to configure, DNS forwarder and DHCP diff --git a/debian/dnsmasq.runit b/debian/dnsmasq.runit new file mode 100644 index 0000000..6a457f7 --- /dev/null +++ b/debian/dnsmasq.runit @@ -0,0 +1 @@ +debian/dnsmasq.runscript name=dnsmasq,logscript,since=2.80-1+runit diff --git a/debian/dnsmasq.runscript/finish b/debian/dnsmasq.runscript/finish new file mode 100755 index 0000000..cf35240 --- /dev/null +++ b/debian/dnsmasq.runscript/finish @@ -0,0 +1,5 @@ +#!/bin/sh -eu +if [ -x /sbin/resolvconf ] ; then + /sbin/resolvconf -d lo.dnsmasq +fi + diff --git a/debian/dnsmasq.runscript/run b/debian/dnsmasq.runscript/run new file mode 100755 index 0000000..1a43393 --- /dev/null +++ b/debian/dnsmasq.runscript/run @@ -0,0 +1,43 @@ +#!/lib/runit/invoke-run + +readonly name=dnsmasq +readonly daemon=/usr/sbin/dnsmasq +readonly marker=/usr/share/dnsmasq/installed-marker + +test -e "${marker}" || exec sv down "${name}" +test -x "${daemon}" || exec sv down "${name}" + +if [ ! "${RESOLV_CONF:-}" ] && + [ "${IGNORE_RESOLVCONF:-}" != "yes" ] && + [ -x /sbin/resolvconf ] +then + RESOLV_CONF=/run/dnsmasq/resolv.conf +fi + +# This tells dnsmasq to ignore DNS requests that don't come from a local network. +# It's automatically ignored if --interface --except-interface, --listen-address +# or --auth-server exist in the configuration, so for most installations, it will +# have no effect, but for otherwise-unconfigured installations, it stops dnsmasq +# from being vulnerable to DNS-reflection attacks. + +DNSMASQ_OPTS="${DNSMASQ_OPTS:-} --local-service" + +# If the dns-root-data package is installed, then the trust anchors will be +# available in $ROOT_DS, in BIND zone-file format. Reformat as dnsmasq +# --trust-anchor options. + +ROOT_DS="/usr/share/dns/root.ds" + +if [ -f $ROOT_DS ]; then + DNSMASQ_OPTS="$DNSMASQ_OPTS `env LC_ALL=C sed -rne "s/^([.a-zA-Z0-9]+)([[:space:]]+[0-9]+)*([[:space:]]+IN)*[[:space:]]+DS[[:space:]]+/--trust-anchor=\1,/;s/[[:space:]]+/,/gp" $ROOT_DS | tr '\n' ' '`" +fi + +mkdir -p /run/dnsmasq +chown dnsmasq:nogroup /run/dnsmasq +[ -x /sbin/restorecon ] && /sbin/restorecon /run/dnsmasq +exec "${daemon}" \ + --keep-in-foreground \ + --log-facility=/dev/stdout \ + ${RESOLV_CONF:+ -r $RESOLV_CONF} \ + ${DNSMASQ_OPTS} \ + -u dnsmasq diff --git a/debian/rules b/debian/rules index b4ec4e9..f8d84fd 100755 --- a/debian/rules +++ b/debian/rules @@ -159,6 +159,9 @@ clean: binary-indep: checkroot $(checkdir) rm -rf debian/trees/daemon + mkdir -p debian/trees + dh_runit -pdnsmasq + mv debian/dnsmasq/ debian/trees/daemon install -m 755 \ -d debian/trees/daemon/DEBIAN \ -d debian/trees/daemon/usr/share/doc \ @@ -173,6 +176,8 @@ binary-indep: checkroot -d debian/trees/daemon/etc/insserv.conf.d install -m 644 debian/conffiles debian/trees/daemon/DEBIAN install -m 755 debian/postinst debian/postrm debian/prerm debian/trees/daemon/DEBIAN + cat debian/dnsmasq.postinst.debhelper >> debian/trees/daemon/DEBIAN/postinst + cat debian/dnsmasq.postrm.debhelper >> debian/trees/daemon/DEBIAN/postrm install -m 755 debian/init debian/trees/daemon/etc/init.d/dnsmasq install -m 755 debian/resolvconf debian/trees/daemon/etc/resolvconf/update.d/dnsmasq install -m 755 debian/resolvconf-package debian/trees/daemon/usr/lib/resolvconf/dpkg-event.d/dnsmasq @@ -185,7 +190,7 @@ binary-indep: checkroot install -m 644 debian/insserv debian/trees/daemon/etc/insserv.conf.d/dnsmasq ln -s $(package) debian/trees/daemon/usr/share/doc/dnsmasq cd debian/trees/daemon && find . -type f ! -regex '.*DEBIAN/.*' -printf '%P\0' | LC_ALL=C sort -z | xargs -r0 md5sum > DEBIAN/md5sums - dpkg-gencontrol $(PACKAGE_VERSION) -T -pdnsmasq -Pdebian/trees/daemon + dpkg-gencontrol $(PACKAGE_VERSION) -Tdebian/dnsmasq.substvars -pdnsmasq -Pdebian/trees/daemon find debian/trees/daemon -depth -newermt '$(BUILD_DATE)' -print0 | xargs -0r touch --no-dereference --date='$(BUILD_DATE)' chown -R root.root debian/trees/daemon chmod -R g-ws debian/trees/daemon