]> git.ipfire.org Git - thirdparty/pdns.git/commitdiff
Fix systemd-service option handling
authorOtto Moerbeek <otto.moerbeek@open-xchange.com>
Tue, 27 May 2025 07:48:43 +0000 (09:48 +0200)
committerOtto Moerbeek <otto.moerbeek@open-xchange.com>
Mon, 2 Jun 2025 10:17:37 +0000 (12:17 +0200)
Trixie and oracular are special, they need both systemd and systemd-dev

25 files changed:
builder-support/debian/recursor/debian-buster/control
builder-support/debian/recursor/debian-trixie/compat [new file with mode: 0644]
builder-support/debian/recursor/debian-trixie/configure-helpers/net-snmp-config [new file with mode: 0755]
builder-support/debian/recursor/debian-trixie/control [new file with mode: 0644]
builder-support/debian/recursor/debian-trixie/copyright [new file with mode: 0644]
builder-support/debian/recursor/debian-trixie/gbp.conf [new file with mode: 0644]
builder-support/debian/recursor/debian-trixie/lua-config/rootkeys.lua [new file with mode: 0644]
builder-support/debian/recursor/debian-trixie/pdns-recursor.conffiles [new file with mode: 0644]
builder-support/debian/recursor/debian-trixie/pdns-recursor.dirs [new file with mode: 0644]
builder-support/debian/recursor/debian-trixie/pdns-recursor.examples [new file with mode: 0644]
builder-support/debian/recursor/debian-trixie/pdns-recursor.lintian-overrides [new file with mode: 0644]
builder-support/debian/recursor/debian-trixie/pdns-recursor.logcheck.ignore.server [new file with mode: 0644]
builder-support/debian/recursor/debian-trixie/pdns-recursor.maintscript [new file with mode: 0644]
builder-support/debian/recursor/debian-trixie/pdns-recursor.manpages [new file with mode: 0644]
builder-support/debian/recursor/debian-trixie/pdns-recursor.postinst [new file with mode: 0644]
builder-support/debian/recursor/debian-trixie/pdns-recursor.preinst [new file with mode: 0644]
builder-support/debian/recursor/debian-trixie/recursor.conf [new file with mode: 0644]
builder-support/debian/recursor/debian-trixie/recursor.lua [new file with mode: 0644]
builder-support/debian/recursor/debian-trixie/rules [new file with mode: 0755]
builder-support/debian/recursor/debian-trixie/source/format [new file with mode: 0644]
builder-support/debian/recursor/debian-trixie/tests/control [new file with mode: 0644]
builder-support/debian/recursor/debian-trixie/tests/smoke [new file with mode: 0755]
builder-support/debian/recursor/debian-trixie/watch [new file with mode: 0644]
builder-support/dockerfiles/Dockerfile.target.debian-trixie
builder-support/dockerfiles/Dockerfile.target.ubuntu-oracular

index 81d067f2ee78ccd077082b6c1d435213ab2ad659..af22a1ebb843acb6a7cdedd5e366308130234b87 100644 (file)
@@ -27,7 +27,7 @@ Build-Depends: debhelper (>= 10),
                protobuf-compiler,
                ragel,
                systemd,
-               systemd-dev | systemd,
+               systemd-dev | systemd
 Homepage: https://www.powerdns.com/
 Rules-Requires-Root: no
 
diff --git a/builder-support/debian/recursor/debian-trixie/compat b/builder-support/debian/recursor/debian-trixie/compat
new file mode 100644 (file)
index 0000000..f599e28
--- /dev/null
@@ -0,0 +1 @@
+10
diff --git a/builder-support/debian/recursor/debian-trixie/configure-helpers/net-snmp-config b/builder-support/debian/recursor/debian-trixie/configure-helpers/net-snmp-config
new file mode 100755 (executable)
index 0000000..6d8d6e7
--- /dev/null
@@ -0,0 +1,21 @@
+#!/bin/bash
+
+if [ "$1" = "--cflags" ]; then
+  FLAGS=$(/usr/bin/net-snmp-config --cflags)
+  MYFLAGS=""
+  for flag in $FLAGS; do
+    if [[ "$flag" =~ -DNETSNMP* ]]; then
+      MYFLAGS="$MYFLAGS $flag"
+    fi
+  done
+  echo "$MYFLAGS"
+  exit 0
+
+elif [ "$1" = "--netsnmp-agent-libs" ]; then
+  /usr/bin/net-snmp-config "$@"
+  exit $?
+
+else
+  echo "E: debian/configure-helpers/net-snmp-config: unknown flag $1" >&2
+  exit 1
+fi
diff --git a/builder-support/debian/recursor/debian-trixie/control b/builder-support/debian/recursor/debian-trixie/control
new file mode 100644 (file)
index 0000000..f48aa37
--- /dev/null
@@ -0,0 +1,43 @@
+Source: pdns-recursor
+Section: net
+Maintainer: PowerDNS Autobuilder <powerdns.support@powerdns.com>
+Priority: optional
+Standards-Version: 4.5.1
+Build-Depends: debhelper (>= 10),
+               dh-autoreconf,
+               clang,
+               libboost-context-dev,
+               libboost-dev,
+               libboost-filesystem-dev,
+               libboost-program-options-dev,
+               libboost-system-dev,
+               libboost-test-dev,
+               libboost-thread-dev,
+               libcap-dev,
+               libcurl4-openssl-dev,
+               libfstrm-dev,
+               libluajit-5.1-dev (>= 2.1.0~beta3+dfsg-5.3) [amd64 arm64] | libluajit-5.1-dev [amd64] | liblua5.3-dev,
+               libprotobuf-dev,
+               libsnmp-dev,
+               libsodium-dev,
+               libssl-dev,
+               libsystemd-dev,
+               lld,
+               pkgconf | pkg-config,
+               protobuf-compiler,
+               ragel,
+               systemd,
+               systemd-dev
+Homepage: https://www.powerdns.com/
+Rules-Requires-Root: no
+
+Package: pdns-recursor
+Architecture: any
+Pre-Depends: ${misc:Pre-Depends}
+Depends: adduser,
+         dns-root-data,
+         ${misc:Depends},
+         ${shlibs:Depends}
+Description: PowerDNS Recursor
+ High-performance resolving name server, utilizing multiple
+ processor and including Lua scripting capabilities.
diff --git a/builder-support/debian/recursor/debian-trixie/copyright b/builder-support/debian/recursor/debian-trixie/copyright
new file mode 100644 (file)
index 0000000..b8e649b
--- /dev/null
@@ -0,0 +1,136 @@
+Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
+Upstream-Name: PowerDNS
+Source: https://www.powerdns.com/downloads.html
+Upstream-Contact: https://mailman.powerdns.com/mailman/listinfo/pdns-users
+
+Files: *
+Copyright: 2002 - 2022 PowerDNS.COM BV and contributors
+License: GPL-2 with OpenSSL Exception
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License version 2
+ as published by the Free Software Foundation
+ .
+ In addition, for the avoidance of any doubt, permission is granted to
+ link this program with OpenSSL and to (re)distribute the binaries
+ produced as the result of such linking.
+ .
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+ .
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+ .
+ On Debian systems, the full text of the GNU General Public
+ License version 2 can be found in the file
+ `/usr/share/common-licenses/GPL-2'.
+
+Files: debian/*
+Copyright: 2002 - 2004 Wichert Akkermann <wichert@wiggy.net>
+ 2004 - 2013 Matthijs Möhlmann <matthijs@cacholong.nl>
+ 2012 - 2013 Marc Haber <mh+debian-packages@zugschlus.de>
+ 2014 - 2018 Chris Hofstaedtler <zeha@debian.org>
+ 2016 - 2018 PowerDNS.COM BV and contributors
+License: GPL-2
+
+Files: ext/yahttp/*
+Copyright: 2014 Aki Tuomi
+License: Expat
+
+Files: ext/json11/*
+Copyright: 2013 Dropbox, Inc.
+License: Expat
+
+Files: ext/luawrapper/*
+Copyright: 2013, Pierre KRIEGER
+License: BSD-3
+
+Files: ext/protozero/*
+Copyright: protozero copyright (c) Mapbox.
+License: Protozero
+
+License: BSD-3
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+     * Redistributions of source code must retain the above copyright
+       notice, this list of conditions and the following disclaimer.
+     * Redistributions in binary form must reproduce the above copyright
+       notice, this list of conditions and the following disclaimer in the
+       documentation and/or other materials provided with the distribution.
+     * Neither the name of the <organization> nor the
+       names of its contributors may be used to endorse or promote products
+       derived from this software without specific prior written permission.
+ .
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> BE LIABLE FOR ANY
+ DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+License: Expat
+ Permission is hereby granted, free of charge, to any person obtaining a copy
+ of this software and associated documentation files (the "Software"), to deal
+ in the Software without restriction, including without limitation the rights
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ copies of the Software, and to permit persons to whom the Software is
+ furnished to do so, subject to the following conditions:
+ .
+ The above copyright notice and this permission notice shall be included in
+ all copies or substantial portions of the Software.
+ .
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ THE SOFTWARE.
+
+License: GPL-2
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License.
+ .
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+ .
+ You should have received a copy of the GNU General Public License along
+ with this program; if not, write to the Free Software Foundation, Inc.,
+ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ .
+ On Debian systems, the full text of the GNU General Public
+ License version 2 can be found in the file
+ `/usr/share/common-licenses/GPL-2'.
+
+License: Protozero
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are
+ met:
+ .
+     * Redistributions of source code must retain the above copyright
+       notice, this list of conditions and the following disclaimer.
+     * Redistributions in binary form must reproduce the above copyright
+       notice, this list of conditions and the following disclaimer in
+       the documentation and/or other materials provided with the
+       distribution.
+ .
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
+ IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+ CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+ LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+ NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
diff --git a/builder-support/debian/recursor/debian-trixie/gbp.conf b/builder-support/debian/recursor/debian-trixie/gbp.conf
new file mode 100644 (file)
index 0000000..9eee0d4
--- /dev/null
@@ -0,0 +1,4 @@
+[DEFAULT]
+pristine-tar = True
+multimaint-merge = True
+patch-numbers = False
diff --git a/builder-support/debian/recursor/debian-trixie/lua-config/rootkeys.lua b/builder-support/debian/recursor/debian-trixie/lua-config/rootkeys.lua
new file mode 100644 (file)
index 0000000..bba18fd
--- /dev/null
@@ -0,0 +1,3 @@
+-- readTrustAnchorsFromFile reads the DNSSEC trust anchors from the provided file
+-- and reloads it every 24 hours.
+readTrustAnchorsFromFile("/usr/share/dns/root.key")
diff --git a/builder-support/debian/recursor/debian-trixie/pdns-recursor.conffiles b/builder-support/debian/recursor/debian-trixie/pdns-recursor.conffiles
new file mode 100644 (file)
index 0000000..bde3e64
--- /dev/null
@@ -0,0 +1 @@
+remove-on-upgrade /etc/powerdns/recursor.lua
diff --git a/builder-support/debian/recursor/debian-trixie/pdns-recursor.dirs b/builder-support/debian/recursor/debian-trixie/pdns-recursor.dirs
new file mode 100644 (file)
index 0000000..1e7acad
--- /dev/null
@@ -0,0 +1 @@
+etc/powerdns/recursor.d
diff --git a/builder-support/debian/recursor/debian-trixie/pdns-recursor.examples b/builder-support/debian/recursor/debian-trixie/pdns-recursor.examples
new file mode 100644 (file)
index 0000000..e55528c
--- /dev/null
@@ -0,0 +1 @@
+rrd
diff --git a/builder-support/debian/recursor/debian-trixie/pdns-recursor.lintian-overrides b/builder-support/debian/recursor/debian-trixie/pdns-recursor.lintian-overrides
new file mode 100644 (file)
index 0000000..d6aeec2
--- /dev/null
@@ -0,0 +1,2 @@
+# Source carries OpenSSL Exception
+pdns-recursor: possible-gpl-code-linked-with-openssl
diff --git a/builder-support/debian/recursor/debian-trixie/pdns-recursor.logcheck.ignore.server b/builder-support/debian/recursor/debian-trixie/pdns-recursor.logcheck.ignore.server
new file mode 100644 (file)
index 0000000..f6e86ec
--- /dev/null
@@ -0,0 +1 @@
+^\w{3} [ :0-9]{11} [._[:alnum:]-]+ pdns_recursor\[[0-9]+\]: stats: .*
diff --git a/builder-support/debian/recursor/debian-trixie/pdns-recursor.maintscript b/builder-support/debian/recursor/debian-trixie/pdns-recursor.maintscript
new file mode 100644 (file)
index 0000000..ce9c72d
--- /dev/null
@@ -0,0 +1,4 @@
+# must support Ubuntu focal, with dpkg 1.19.7
+# Enable the line below once we fully moved to YAML configuration
+#rm_conffile /etc/powerdns/recursor.lua 5.1~
+
diff --git a/builder-support/debian/recursor/debian-trixie/pdns-recursor.manpages b/builder-support/debian/recursor/debian-trixie/pdns-recursor.manpages
new file mode 100644 (file)
index 0000000..020a6a1
--- /dev/null
@@ -0,0 +1,2 @@
+pdns_recursor.1
+rec_control.1
diff --git a/builder-support/debian/recursor/debian-trixie/pdns-recursor.postinst b/builder-support/debian/recursor/debian-trixie/pdns-recursor.postinst
new file mode 100644 (file)
index 0000000..5f83e9d
--- /dev/null
@@ -0,0 +1,18 @@
+#!/bin/sh
+set -e
+
+case "$1" in
+  configure)
+    addgroup --system pdns
+    adduser --system --home /var/spool/powerdns --shell /bin/false --ingroup pdns --disabled-password --disabled-login --gecos "PowerDNS" pdns
+  ;;
+
+  *)
+    echo "postinst called with unknown argument \`$1'" >&2
+    exit 1
+  ;;
+esac
+
+#DEBHELPER#
+
+exit 0
diff --git a/builder-support/debian/recursor/debian-trixie/pdns-recursor.preinst b/builder-support/debian/recursor/debian-trixie/pdns-recursor.preinst
new file mode 100644 (file)
index 0000000..691107c
--- /dev/null
@@ -0,0 +1,30 @@
+#!/bin/sh
+set -e
+
+delete_unchanged() {
+  if [ -e "$1" ] && echo "$2 $1" | md5sum --check --status; then
+    echo "Removing unchanged configuration file $1"
+    rm -f "$1"
+  fi
+}
+
+backup_conffile() {
+  if [ -e "$1" ]; then
+    echo "Moving configuration file $1 to $1.dpkg-bak"
+    mv -f "$1" "$1".dpkg-bak
+  fi
+}
+
+case "$1" in
+  install|upgrade)
+    # clean up files we no longer ship
+    delete_unchanged "/etc/default/pdns-recursor" a09916ceb17db9a49ac8cfa84790bf3b
+    delete_unchanged "/etc/default/pdns-recursor" 076b21b9b76d7ffecc918af47d2963c6
+    backup_conffile "/etc/default/pdns-recursor"
+    delete_unchanged "/etc/init.d/pdns-recursor" e2ea0586c3d99fdbafb76483a769b964
+    delete_unchanged "/etc/init.d/pdns-recursor" fb608ec5edc3d068213bac3480782355
+    backup_conffile "/etc/init.d/pdns-recursor"
+  ;;
+esac
+
+#DEBHELPER#
diff --git a/builder-support/debian/recursor/debian-trixie/recursor.conf b/builder-support/debian/recursor/debian-trixie/recursor.conf
new file mode 100644 (file)
index 0000000..c01dd0d
--- /dev/null
@@ -0,0 +1,12 @@
+dnssec:
+  # validation: process # default
+  trustanchorfile: /usr/share/dns/root.key
+recursor:
+  hint_file: /usr/share/dns/root.hints
+  include_dir: /etc/powerdns/recursor.d
+incoming:
+ # listen:
+ # - 127.0.0.1 # default
+outgoing:
+ # source_address:
+ # - 0.0.0.0 # default
diff --git a/builder-support/debian/recursor/debian-trixie/recursor.lua b/builder-support/debian/recursor/debian-trixie/recursor.lua
new file mode 100644 (file)
index 0000000..1d670a5
--- /dev/null
@@ -0,0 +1,7 @@
+-- Debian default Lua configuration file for PowerDNS Recursor
+
+-- Load DNSSEC root keys from dns-root-data package.
+-- Note: If you provide your own Lua configuration file, consider
+-- running rootkeys.lua too.
+dofile("/usr/share/pdns-recursor/lua-config/rootkeys.lua")
+
diff --git a/builder-support/debian/recursor/debian-trixie/rules b/builder-support/debian/recursor/debian-trixie/rules
new file mode 100755 (executable)
index 0000000..87d979e
--- /dev/null
@@ -0,0 +1,82 @@
+#!/usr/bin/make -f
+include /usr/share/dpkg/architecture.mk
+include /usr/share/dpkg/pkg-info.mk
+
+# Turn on all hardening flags, as we're a networked daemon.
+# Note: blhc (build log hardening check) will find these false positives: CPPFLAGS 2 missing, LDFLAGS 1 missing
+export DEB_BUILD_MAINT_OPTIONS = hardening=+bindnow,+pie optimize=-lto
+# see EXAMPLES in dpkg-buildflags(1) and read /usr/share/dpkg/*
+DPKG_EXPORT_BUILDFLAGS = 1
+include /usr/share/dpkg/default.mk
+
+# Only enable systemd integration on Linux operating systems
+ifeq ($(DEB_HOST_ARCH_OS),linux)
+MESON_ARGS += -Dsystemd-service=enabled
+DH_ARGS += --with systemd
+else
+MESON_ARGS += -Dsystemd-service=disabled
+endif
+
+# Only disable luajit on arm64
+#ifneq ($(DEB_HOST_ARCH),arm64)
+#MESON_ARGS += -Dlua=luajit
+#else
+MESON_ARGS += -Dlua=auto
+#endif
+
+%:
+       dh $@ --buildsystem=meson \
+         $(DH_ARGS)
+
+override_dh_auto_clean:
+       dh_auto_clean
+       rm -f dnslabeltext.cc
+       chmod +x mkpubsuffixcc || true
+
+# We need clang (LLVM) to link the Rust static library and the C++ code with LTO enabled
+# build-id SHA1 prevents an issue with the debug symbols ("export: `-Wl,--build-id=sha1': not a valid identifier")
+
+override_dh_auto_configure:
+       LDFLAGS="-latomic -fuse-ld=lld -Wl,--build-id=sha1" \
+       CC=clang \
+       CXX=clang++ \
+       PKG_CONFIG_PATH=/opt/lib/pkgconfig dh_auto_configure -- \
+       --sysconfdir=%{_sysconfdir}/%{name} \
+       -Db_lto=true \
+       -Db_lto_mode=thin \
+       -Db_pie=true \
+       -Dunit-tests=true \
+       -Ddns-over-tls=enabled \
+       -Ddnstap=enabled \
+       -Dlibcap=enabled \
+       -Dsigners-libsodium=enabled \
+       -Dsnmp=enabled \
+       -Dnod=enabled \
+       $(MESON_ARGS)
+
+override_dh_auto_build-arch:
+       dh_auto_build
+
+# Stop installing the Lua config files once we fully moved to YAML configuration
+override_dh_auto_install:
+       dh_auto_install
+       install -d debian/pdns-recursor/usr/share/pdns-recursor/snmp
+       install -m 644 -t debian/pdns-recursor/usr/share/pdns-recursor/snmp RECURSOR-MIB.txt
+       rm -f debian/pdns-recursor/etc/powerdns/recursor.conf-dist
+       rm -f debian/pdns-recursor/etc/powerdns/recursor.yml-dist
+       install -m 644 -t debian/pdns-recursor/etc/powerdns debian/recursor.conf
+
+override_dh_auto_test:
+ifeq (,$(filter nocheck,$(DEB_BUILD_OPTIONS)))
+       dh_auto_test
+       -cat testrunner.log
+endif
+
+override_dh_gencontrol:
+       dh_gencontrol -- $(SUBSTVARS)
+
+# Explicitly set a compression method, as Debian and Ubuntu defaults vary widely,
+# and xz support is not available in all tools yet. Removing this override can
+# make reprepro fail.
+override_dh_builddeb:
+       dh_builddeb -- -Zgzip
diff --git a/builder-support/debian/recursor/debian-trixie/source/format b/builder-support/debian/recursor/debian-trixie/source/format
new file mode 100644 (file)
index 0000000..163aaf8
--- /dev/null
@@ -0,0 +1 @@
+3.0 (quilt)
diff --git a/builder-support/debian/recursor/debian-trixie/tests/control b/builder-support/debian/recursor/debian-trixie/tests/control
new file mode 100644 (file)
index 0000000..2b224a1
--- /dev/null
@@ -0,0 +1,4 @@
+Tests: smoke
+Depends: bind9-dnsutils,
+         @
+Restrictions: needs-root
diff --git a/builder-support/debian/recursor/debian-trixie/tests/smoke b/builder-support/debian/recursor/debian-trixie/tests/smoke
new file mode 100755 (executable)
index 0000000..7132acc
--- /dev/null
@@ -0,0 +1,35 @@
+#!/bin/bash
+exec 2>&1
+set -ex
+
+restart_failed() {
+    echo E: service restart failed
+    journalctl -n200 --no-pager
+    exit 1
+}
+
+sed -e '/recursor:/a \  auth_zones: [{zone: "example.org", file: "/etc/powerdns/example.org.zone"}]' -i /etc/powerdns/recursor.conf
+
+cat <<EOF >/etc/powerdns/example.org.zone
+example.org.           172800  IN      SOA     ns1.example.org. dns.example.org. 1 10800 3600 604800 3600
+example.org.           172800  IN      NS      ns1.example.org.
+smoke.example.org.     172800  IN      A       127.0.0.123
+EOF
+
+service pdns-recursor restart || restart_failed
+
+TMPFILE=$(mktemp)
+cleanup() {
+    rm -f "$TMPFILE"
+}
+trap cleanup EXIT
+
+dig @127.0.0.1 smoke.example.org 2>&1 | tee "$TMPFILE"
+
+if grep -c '127\.0\.0\.123' "$TMPFILE"; then
+    echo success
+else
+    echo smoke could not be resolved
+    exit 1
+fi
+
diff --git a/builder-support/debian/recursor/debian-trixie/watch b/builder-support/debian/recursor/debian-trixie/watch
new file mode 100644 (file)
index 0000000..dbdba00
--- /dev/null
@@ -0,0 +1,3 @@
+# Site         Directory               Pattern                 Version Script
+version=3
+opts="pgpsigurlmangle=s/$/.asc/,versionmangle=s/-(alpha|beta|rc)/~$1/" https://downloads.powerdns.com/releases/        pdns-recursor-(.*)\.tar\.bz2    debian  uupdate
index 117ac53fa49b58500833bf91fa1a73a8de92bb5e..21969f3b8e32138e96c47a5afa9299206c631cf5 100644 (file)
@@ -14,7 +14,7 @@ ADD builder-support/debian/authoritative/debian-buster/ pdns-${BUILDER_VERSION}/
 @ENDIF
 
 @IF [ -n "$M_recursor$M_all" ]
-ADD builder-support/debian/recursor/debian-buster/ pdns-recursor-${BUILDER_VERSION}/debian/
+ADD builder-support/debian/recursor/debian-trixie/ pdns-recursor-${BUILDER_VERSION}/debian/
 @ENDIF
 
 @IF [ -n "$M_dnsdist$M_all" ]
index 2af8721dc710eaae55405f5a446c65d4fefaf2c9..57683c579e930913b1c40fe802f054d3c3798d4a 100644 (file)
@@ -16,7 +16,7 @@ ADD builder-support/debian/authoritative/debian-buster/ pdns-${BUILDER_VERSION}/
 @ENDIF
 
 @IF [ -n "$M_recursor$M_all" ]
-ADD builder-support/debian/recursor/debian-buster/ pdns-recursor-${BUILDER_VERSION}/debian/
+ADD builder-support/debian/recursor/debian-trixie / pdns-recursor-${BUILDER_VERSION}/debian/
 @ENDIF
 
 @IF [ -n "$M_dnsdist$M_all" ]