pkgsrc-WIP-changes archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

net/powerdns-recursor: Update to version 5.4.0



Module Name:	pkgsrc-wip
Committed By:	Marcin Gondek <drixter%e-utp.net@localhost>
Pushed By:	drixter
Date:		Tue Mar 10 09:18:40 2026 +0100
Changeset:	5d5ffb27835cf5f7a1b498a04f957e851c3d2685

Added Files:
	powerdns-recursor/COMMIT_MSG
	powerdns-recursor/DESCR
	powerdns-recursor/Makefile
	powerdns-recursor/PLIST
	powerdns-recursor/cargo-depends.mk
	powerdns-recursor/distinfo
	powerdns-recursor/files/pdns_recursor.sh
	powerdns-recursor/files/smf/manifest.xml
	powerdns-recursor/files/smf/pdns_recursor.sh

Log Message:
net/powerdns-recursor: Update to version 5.4.0

To see a diff of this commit:
https://wip.pkgsrc.org/cgi-bin/gitweb.cgi?p=pkgsrc-wip.git;a=commitdiff;h=5d5ffb27835cf5f7a1b498a04f957e851c3d2685

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

diffstat:
 powerdns-recursor/COMMIT_MSG                 | 234 +++++++++++++++++++++
 powerdns-recursor/DESCR                      |   6 +
 powerdns-recursor/Makefile                   |  51 +++++
 powerdns-recursor/PLIST                      |   6 +
 powerdns-recursor/cargo-depends.mk           | 100 +++++++++
 powerdns-recursor/distinfo                   | 299 +++++++++++++++++++++++++++
 powerdns-recursor/files/pdns_recursor.sh     |  19 ++
 powerdns-recursor/files/smf/manifest.xml     |  30 +++
 powerdns-recursor/files/smf/pdns_recursor.sh |  24 +++
 9 files changed, 769 insertions(+)

diffs:
diff --git a/powerdns-recursor/COMMIT_MSG b/powerdns-recursor/COMMIT_MSG
new file mode 100644
index 0000000000..016e95771c
--- /dev/null
+++ b/powerdns-recursor/COMMIT_MSG
@@ -0,0 +1,234 @@
+net/powerdns-recursor: Update to version 5.4.0
+
+Changelogs for 5.4.X
+Before upgrading, it is advised to read the Upgrade Guide.
+
+5.4.0
+Released: 9th of March 2026 with no changes since 5.4.0-rc1 except the version.
+
+5.4.0-rc1
+Released: 17th of February 2026
+Improvements
+Harmonize with dnsdist PR #16741 with respect to OpenTelemetry instance name.
+References: pull request 16756
+Coverity 1644498 Variable copied when it could be moved.
+References: pull request 16784
+Opentelemetry: add flags field in TRACEPARENT EDNS option.
+References: pull request 16786
+No longer allow passing the api-key as a query argument.
+References: #16785, pull request 16790
+Base64 tidy and unit test fix.
+References: #16805, pull request 16817
+Drop usage of libboost-system library (Chris Hofstaedtler).
+References: pull request 16826
+Allowed names should not include names from CNAMEs that cannot be reached (SA 2026-01).
+References: pull request 16836
+Limit amount of work done for a single client query in new ways (SA 2026-01).
+References: pull request 16837
+Limit packet and record cache entry size (SA 2026-01).
+References: pull request 16838
+Bug Fixes
+Correctly compute DNSSEC public key exponent lengths when larger than 255.
+References: pull request 16810
+
+5.4.0-beta1
+Released: 27th of January 2026
+Improvements
+Print irrelevant entries in cookie dump more nicely.
+References: pull request 16651
+Make code boost 1.66 compatible again.
+References: pull request 16655
+Harden SVCB record parsing.
+References: pull request 16710
+dnsrecords: Add RESINFO DNS Record (RFC 9606).
+References: #14983, pull request 16711
+Add REST interface for manipulating Open Telemetry Trace Conditions.
+References: pull request 16727
+Bug Fixes
+Add acquire/release in broadcast pipes to fix TSAN issues seen on trixie.
+References: pull request 16662, pull request 16736
+Handle applicable dynamic parts of YAML-only config when reloading Lua config.
+References: #16673, pull request 16709
+EDNS cookies: fix timestamp handling.
+References: pull request 16730
+
+5.4.0-alpha1
+Released: 16th of December 2025
+Improvements
+Format rust IOErrors in a nicer way instead of using the default formatter.
+References: pull request 16627
+Move away from rustls-pemfile including update of Rust dependencies.
+References: #16606, pull request 16624
+Coverity 20251203.
+References: pull request 16587
+Kill a handful of clang++ warnings, mostly comparing unsigned to a signed constant.
+References: pull request 16588
+Switch trivial usage of boost::optional to std::optional.
+References: pull request 16487
+Always do ANY queries using TCP.
+References: pull request 16553
+Rewrite all unwrap calls in web.rs.
+References: pull request 16570
+Run clippy when CARGO_USE_DEV and CARGO_USE_CLIPPY are set.
+References: #16557, pull request 16565
+Build our Rust lib in dev profile when CARGO_USE_DEV is set.
+References: #16544, pull request 16546
+Remove first set of unused imports (Josh Soref).
+References: pull request 16447
+Tidy tcounter related code.
+References: pull request 16496
+Spelling (Josh Soref).
+References: pull request 16531
+Fix mixed implicit and explicit returns (Josh Soref).
+References: pull request 16530
+Remove unused assignment (Josh Soref).
+References: pull request 16516, pull request 16526
+Remove redundant assignment (Josh Soref).
+References: pull request 16515
+Update to coverallsapp github-action v2.3.7 (Josh Soref).
+References: #16483, pull request 16523
+Remove horrible unused argument with default value (Josh Soref).
+References: pull request 16495
+Use immediate class parent for super (Josh Soref).
+References: pull request 16502
+Fix with open(�) as f: (Josh Soref).
+References: #16500, pull request 16509
+Improve reading of operator expression (Josh Soref).
+References: pull request 16484
+Use with open(�) as f: to ensure file is always closed (Josh Soref).
+References: pull request 16500
+Stop mixing implicit and explicit returns (Josh Soref).
+References: pull request 16501
+Codeql unused loop iterator name (Josh Soref).
+References: pull request 16494
+Fix coverity 1635199, 1643012, 1643013.
+References: pull request 16497
+Codeql use identifiers (Josh Soref).
+References: pull request 16498
+Do not mutate default values (Josh Soref).
+References: pull request 16490
+Only import doqclient once (Josh Soref).
+References: pull request 16491
+Drop unused format argument (Josh Soref).
+References: pull request 16493
+Use assertNotEqual (Josh Soref).
+References: pull request 16492
+Do not catch KeyboardInterrupt or SystemExit (Josh Soref).
+References: pull request 16489
+Do not call sys.exit with a void return (Josh Soref).
+References: pull request 16488
+Convert metrics_table.py to a module (Josh Soref).
+References: pull request 16479
+Switch TestRuleMetricsDefault to pass (Josh Soref).
+References: pull request 16480
+Codeql imprecise assert (Josh Soref).
+References: pull request 16481
+Drop useless lambda (Josh Soref).
+References: pull request 16483
+Fix duplicate key in dict literal (Josh Soref).
+References: pull request 16478
+Contrib/ProtobufLogger.py: Fix syntax error that crept in with 16458.
+References: pull request 16476
+Prep, but do not actually move to C++20.
+References: #14734, pull request 16077
+Implement new feature to only generate OpenTelemetry Traces on certain conditions.
+References: pull request 16362
+rec_control get-parameter: print runtime settings in YAML format if YAML config is active.
+References: pull request 16427
+Chore: Clean up unused variables (Josh Soref).
+References: pull request 16454
+Clean up unreachable code (Josh Soref).
+References: pull request 16457
+Fix try/except/as notation (Josh Soref).
+References: #15336, pull request 16459
+Avoid warning about mixed explicit/implicit returns (Josh Soref).
+References: #16458, pull request 16460
+Cleanup endianness determining code.
+References: #16091, pull request 16440
+Use map for getAppliedPolicyTypeAsString (Josh Soref).
+References: pull request 16458
+Remove options that were deprecated a long time ago.
+References: pull request 16438
+Remember if an answer was received over TCP in record cache.
+References: pull request 16384
+rec-lua-conf.* tidy.
+References: pull request 16426
+Don�t use a vector of string for internal public suffix list.
+References: pull request 16394
+Make version number in rust lib confirm to Rust specifics.
+References: pull request 16392
+Explicit disabling/enabling of tls-gnutls for full and least configs and packages.
+References: pull request 16307
+Allow selecting a specific version of Lua with meson.
+References: pull request 16259
+Fix a few Coverity found issues, all low severity move optimizations.
+References: pull request 16308
+OT tracing: define more Spans with actual duration and add more attributes.
+References: pull request 16190
+Allow ability to validate certificates (and more) for outgoing DoT connections.
+References: pull request 16232
+Move test-protozero-trace.cc to toplevel and add it in the autotools build where it was missing.
+References: pull request 16220
+ProtobufLogger: print OpenTelemetry IDs in hex, add proper command arg parser.
+References: pull request 16219
+Silence rust warning.
+References: pull request 16251
+Docs: Indent list (Josh Soref).
+References: pull request 16236
+Docs: Add trailing period (Josh Soref).
+References: pull request 16237
+Do not include dnsseckeeper.hh and ueberbackend.hh in rec.
+References: pull request 16227
+We need a usable cargo for sdist so do not download (and install) rust but use package.
+References: pull request 16204
+Fix a few issues reported by coverity, all minor.
+References: pull request 16200
+Rework command dispatcher to be table based.
+References: pull request 16194
+Fix release builds by updating the locked Rust lib version.
+References: #16180, pull request 16188
+Move help text to a table so it�s easier to maintain.
+References: pull request 16175
+Update the Rust library version when generating a tarball.
+References: pull request 16167
+Add a few fields in protobuf logs: ede, edeText and OpenTelemetryTraceID.
+References: pull request 16138
+Better error message when reload-yaml fails.
+References: pull request 16104
+Implement DNS cookie support for outgoing requests.
+References: pull request 15412, pull request 16131
+Update cargos for rec and dnsdist.
+References: #16101, pull request 16106
+Warn on passwordless webserver startup and extends docs.
+References: pull request 16103
+Do not hash (or compare) OpenTelemetry Trace EDNS value for packetcache.
+References: pull request 16098
+Some error paths do no create thread 0 so don�t join it.
+References: pull request 16094
+pubsuffix: tidy and use C++ strings.
+References: pull request 15945
+Add tc flag in answer log (zhaojs).
+References: pull request 15943
+Remove SLOG macro usage in rec specific code.
+References: pull request 15997
+Assorted tidy.
+References: pull request 15949
+Reorder fields of record cache entry by size (saves 8 bytes per entry on 64-bit systems).
+References: pull request 15950
+Bug Fixes
+Do proper validation of TCP notifies.
+References: pull request 16615
+Ensure authRecords is empty, as handleHit checks that.
+References: pull request 16614
+Move g_logRPZChanges to proper spot.
+References: #16572, pull request 16580
+fix parsing of webserver loglevel �none�.
+References: #16455, pull request 16461
+Tighten delegation accept.
+References: pull request 16338
+Prevent a potential race condition in cache cleaning.
+References: pull request 16288
+Fix Boost system lib req: it is no longer a lib for boost >= 1.89.
+References: #15972, pull request 15991
+Rec and dnsdist: properly set up env vars for rust build.
+References: #15896, pull request 15915
diff --git a/powerdns-recursor/DESCR b/powerdns-recursor/DESCR
new file mode 100644
index 0000000000..0b861b76b6
--- /dev/null
+++ b/powerdns-recursor/DESCR
@@ -0,0 +1,6 @@
+The PowerDNS recursor is part of the source tarball of the main PowerDNS
+distribution, but it is released separately. Starting from the version 3.0
+pre-releases, there are zero known bugs or issues with the recursor. It is
+known to power the resolving needs of over 2 million internet connections.
+
+PowerDNS recursor can gets names from /etc/hosts.
diff --git a/powerdns-recursor/Makefile b/powerdns-recursor/Makefile
new file mode 100644
index 0000000000..6878eaae62
--- /dev/null
+++ b/powerdns-recursor/Makefile
@@ -0,0 +1,51 @@
+# $NetBSD: Makefile,v 1.56 2026/02/13 10:47:04 wiz Exp $
+
+DISTNAME=	pdns-recursor-5.4.0
+PKGNAME=	${DISTNAME:S/pdns/powerdns/}
+CATEGORIES=	net
+MASTER_SITES=	https://downloads.powerdns.com/releases/
+EXTRACT_SUFX=	.tar.xz
+
+MAINTAINER=	drixter%e-utp.net@localhost
+HOMEPAGE=	https://www.powerdns.com/
+COMMENT=	PowerDNS resolver/recursing nameserver
+LICENSE=	gnu-gpl-v2
+
+GNU_CONFIGURE=		yes
+USE_TOOLS+=		gmake pkg-config
+USE_LIBTOOL=		yes
+USE_LANGUAGES=		c c++
+USE_CXX_FEATURES+=	c++17
+CONFIGURE_ARGS+=	--sysconfdir=${PKG_SYSCONFDIR}
+CONFIGURE_ARGS+=	--with-libsodium
+CONFIGURE_ARGS+=	--enable-dns-over-tls
+CONFIGURE_ARGS+=	--with-boost=${BUILDLINK_PREFIX.boost-headers}
+
+CHECK_WRKREF_SKIP+=	sbin/pdns_recursor
+
+EGDIR=			${PREFIX}/share/examples/powerdns-recursor
+CONF_FILES=		${EGDIR}/recursor.yml-dist ${PKG_SYSCONFDIR}/recursor.yml
+INSTALLATION_DIRS+=	${EGDIR}
+INSTALL_MAKE_FLAGS=	${MAKE_FLAGS} sysconfdir=${EGDIR}
+
+RCD_SCRIPTS=		pdns_recursor
+
+SMF_NAME=		pdns-recursor
+SMF_METHODS=		pdns_recursor
+
+do-build:
+	cd ${WRKSRC} && ${BUILD_MAKE_CMD} ${BUILD_TARGET}
+
+.include "cargo-depends.mk"
+.include "../../devel/boost-headers/buildlink3.mk"
+.include "../../devel/boost-libs/buildlink3.mk"
+.include "../../devel/zlib/buildlink3.mk"
+.include "../../lang/rust/cargo.mk"
+.include "../../lang/lua/buildlink3.mk"
+.include "../../security/openssl/buildlink3.mk"
+.include "../../security/libsodium/buildlink3.mk"
+.include "../../devel/protobuf/buildlink3.mk"
+.include "../../www/curl/buildlink3.mk"
+.include "../../security/gnutls/buildlink3.mk"
+.include "../../net/fstrm/buildlink3.mk"
+.include "../../mk/bsd.pkg.mk"
diff --git a/powerdns-recursor/PLIST b/powerdns-recursor/PLIST
new file mode 100644
index 0000000000..c513ebe0b5
--- /dev/null
+++ b/powerdns-recursor/PLIST
@@ -0,0 +1,6 @@
+@comment $NetBSD: PLIST,v 1.5 2025/10/30 08:29:57 wiz Exp $
+bin/rec_control
+man/man1/pdns_recursor.1
+man/man1/rec_control.1
+sbin/pdns_recursor
+share/examples/powerdns-recursor/recursor.yml-dist
diff --git a/powerdns-recursor/cargo-depends.mk b/powerdns-recursor/cargo-depends.mk
new file mode 100644
index 0000000000..e23f95719c
--- /dev/null
+++ b/powerdns-recursor/cargo-depends.mk
@@ -0,0 +1,100 @@
+# $NetBSD$
+
+CARGO_CRATE_DEPENDS+=	anstyle-1.0.13
+CARGO_CRATE_DEPENDS+=	atomic-waker-1.1.2
+CARGO_CRATE_DEPENDS+=	base64-0.22.1
+CARGO_CRATE_DEPENDS+=	bytes-1.11.1
+CARGO_CRATE_DEPENDS+=	cc-1.2.49
+CARGO_CRATE_DEPENDS+=	cfg-if-1.0.4
+CARGO_CRATE_DEPENDS+=	clap-4.5.53
+CARGO_CRATE_DEPENDS+=	clap_builder-4.5.53
+CARGO_CRATE_DEPENDS+=	clap_lex-0.7.6
+CARGO_CRATE_DEPENDS+=	codespan-reporting-0.13.1
+CARGO_CRATE_DEPENDS+=	cxx-1.0.191
+CARGO_CRATE_DEPENDS+=	cxx-build-1.0.191
+CARGO_CRATE_DEPENDS+=	cxxbridge-cmd-1.0.191
+CARGO_CRATE_DEPENDS+=	cxxbridge-flags-1.0.191
+CARGO_CRATE_DEPENDS+=	cxxbridge-macro-1.0.191
+CARGO_CRATE_DEPENDS+=	equivalent-1.0.2
+CARGO_CRATE_DEPENDS+=	find-msvc-tools-0.1.5
+CARGO_CRATE_DEPENDS+=	foldhash-0.2.0
+CARGO_CRATE_DEPENDS+=	form_urlencoded-1.2.2
+CARGO_CRATE_DEPENDS+=	futures-channel-0.3.31
+CARGO_CRATE_DEPENDS+=	futures-core-0.3.31
+CARGO_CRATE_DEPENDS+=	futures-task-0.3.31
+CARGO_CRATE_DEPENDS+=	futures-util-0.3.31
+CARGO_CRATE_DEPENDS+=	getrandom-0.2.16
+CARGO_CRATE_DEPENDS+=	hashbrown-0.16.1
+CARGO_CRATE_DEPENDS+=	http-1.4.0
+CARGO_CRATE_DEPENDS+=	http-body-1.0.1
+CARGO_CRATE_DEPENDS+=	http-body-util-0.1.3
+CARGO_CRATE_DEPENDS+=	httparse-1.10.1
+CARGO_CRATE_DEPENDS+=	httpdate-1.0.3
+CARGO_CRATE_DEPENDS+=	hyper-1.8.1
+CARGO_CRATE_DEPENDS+=	hyper-rustls-0.27.7
+CARGO_CRATE_DEPENDS+=	hyper-util-0.1.19
+CARGO_CRATE_DEPENDS+=	indexmap-2.12.1
+CARGO_CRATE_DEPENDS+=	ipnet-2.11.0
+CARGO_CRATE_DEPENDS+=	itoa-1.0.15
+CARGO_CRATE_DEPENDS+=	libc-0.2.178
+CARGO_CRATE_DEPENDS+=	link-cplusplus-1.0.12
+CARGO_CRATE_DEPENDS+=	mio-1.1.1
+CARGO_CRATE_DEPENDS+=	once_cell-1.21.3
+CARGO_CRATE_DEPENDS+=	percent-encoding-2.3.2
+CARGO_CRATE_DEPENDS+=	pin-project-lite-0.2.16
+CARGO_CRATE_DEPENDS+=	pin-utils-0.1.0
+CARGO_CRATE_DEPENDS+=	proc-macro2-1.0.103
+CARGO_CRATE_DEPENDS+=	quote-1.0.42
+CARGO_CRATE_DEPENDS+=	ring-0.17.14
+CARGO_CRATE_DEPENDS+=	rustls-0.23.35
+CARGO_CRATE_DEPENDS+=	rustls-pki-types-1.13.1
+CARGO_CRATE_DEPENDS+=	rustls-webpki-0.103.8
+CARGO_CRATE_DEPENDS+=	ryu-1.0.20
+CARGO_CRATE_DEPENDS+=	scratch-1.0.9
+CARGO_CRATE_DEPENDS+=	serde-1.0.228
+CARGO_CRATE_DEPENDS+=	serde_core-1.0.228
+CARGO_CRATE_DEPENDS+=	serde_derive-1.0.228
+CARGO_CRATE_DEPENDS+=	serde_yaml-0.9.34+deprecated
+CARGO_CRATE_DEPENDS+=	shlex-1.3.0
+CARGO_CRATE_DEPENDS+=	smallvec-1.15.1
+CARGO_CRATE_DEPENDS+=	socket2-0.6.1
+CARGO_CRATE_DEPENDS+=	strsim-0.11.1
+CARGO_CRATE_DEPENDS+=	subtle-2.6.1
+CARGO_CRATE_DEPENDS+=	syn-2.0.111
+CARGO_CRATE_DEPENDS+=	termcolor-1.4.1
+CARGO_CRATE_DEPENDS+=	tokio-1.48.0
+CARGO_CRATE_DEPENDS+=	tokio-rustls-0.26.4
+CARGO_CRATE_DEPENDS+=	tower-service-0.3.3
+CARGO_CRATE_DEPENDS+=	tracing-0.1.43
+CARGO_CRATE_DEPENDS+=	tracing-core-0.1.35
+CARGO_CRATE_DEPENDS+=	try-lock-0.2.5
+CARGO_CRATE_DEPENDS+=	unicode-ident-1.0.22
+CARGO_CRATE_DEPENDS+=	unicode-width-0.2.2
+CARGO_CRATE_DEPENDS+=	unsafe-libyaml-0.2.11
+CARGO_CRATE_DEPENDS+=	untrusted-0.9.0
+CARGO_CRATE_DEPENDS+=	want-0.3.1
+CARGO_CRATE_DEPENDS+=	wasi-0.11.1+wasi-snapshot-preview1
+CARGO_CRATE_DEPENDS+=	winapi-util-0.1.11
+CARGO_CRATE_DEPENDS+=	windows-link-0.2.1
+CARGO_CRATE_DEPENDS+=	windows-sys-0.52.0
+CARGO_CRATE_DEPENDS+=	windows-sys-0.60.2
+CARGO_CRATE_DEPENDS+=	windows-sys-0.61.2
+CARGO_CRATE_DEPENDS+=	windows-targets-0.52.6
+CARGO_CRATE_DEPENDS+=	windows-targets-0.53.5
+CARGO_CRATE_DEPENDS+=	windows_aarch64_gnullvm-0.52.6
+CARGO_CRATE_DEPENDS+=	windows_aarch64_gnullvm-0.53.1
+CARGO_CRATE_DEPENDS+=	windows_aarch64_msvc-0.52.6
+CARGO_CRATE_DEPENDS+=	windows_aarch64_msvc-0.53.1
+CARGO_CRATE_DEPENDS+=	windows_i686_gnu-0.52.6
+CARGO_CRATE_DEPENDS+=	windows_i686_gnu-0.53.1
+CARGO_CRATE_DEPENDS+=	windows_i686_gnullvm-0.52.6
+CARGO_CRATE_DEPENDS+=	windows_i686_gnullvm-0.53.1
+CARGO_CRATE_DEPENDS+=	windows_i686_msvc-0.52.6
+CARGO_CRATE_DEPENDS+=	windows_i686_msvc-0.53.1
+CARGO_CRATE_DEPENDS+=	windows_x86_64_gnu-0.52.6
+CARGO_CRATE_DEPENDS+=	windows_x86_64_gnu-0.53.1
+CARGO_CRATE_DEPENDS+=	windows_x86_64_gnullvm-0.52.6
+CARGO_CRATE_DEPENDS+=	windows_x86_64_gnullvm-0.53.1
+CARGO_CRATE_DEPENDS+=	windows_x86_64_msvc-0.52.6
+CARGO_CRATE_DEPENDS+=	windows_x86_64_msvc-0.53.1
+CARGO_CRATE_DEPENDS+=	zeroize-1.8.2
diff --git a/powerdns-recursor/distinfo b/powerdns-recursor/distinfo
new file mode 100644
index 0000000000..8497122390
--- /dev/null
+++ b/powerdns-recursor/distinfo
@@ -0,0 +1,299 @@
+$NetBSD: distinfo,v 1.47 2026/02/13 10:47:04 wiz Exp $
+
+BLAKE2s (anstyle-1.0.13.crate) = 7d55c4634306f10a1cbdca2c99c816b49f90ec4f63c8c1c7592a99ddc233037b
+SHA512 (anstyle-1.0.13.crate) = 1a92c4bf6ff7262c0f5fe72ff66eaf11f0c84e84a06746767918903c0416ba5d33ac54ff9a2c6cde37e26bb2287675d3f0a8a7efa95eb013c9be388b8139661e
+Size (anstyle-1.0.13.crate) = 17651 bytes
+BLAKE2s (atomic-waker-1.1.2.crate) = e102aa7ba61899244085d790d384ccb25f6f95f75eaaf37adadbe894f934c018
+SHA512 (atomic-waker-1.1.2.crate) = e07e58db7955791259d0ec00fc4d53318aefb4506e062914819c4220c6dc75fa11a7af0289b4653aa1f9041eb975a025635190de68b4800a0e91e33cdb0ba11c
+Size (atomic-waker-1.1.2.crate) = 12422 bytes
+BLAKE2s (base64-0.22.1.crate) = fe73b3b9d1780e56d1208d2e9084cafa72d5e488ef081927b03ccae3108e058a
+SHA512 (base64-0.22.1.crate) = 91cf2e4e7fc8815f9b8a86a7fa722a20eee3dc1dd57111b29e420de87ce7836bcdb1db01d3cafb9a977710ef63e7cc41b7772762323e68e0e832156858aace20
+Size (base64-0.22.1.crate) = 81597 bytes
+BLAKE2s (bytes-1.11.1.crate) = e4ce48a397044050caef043589fe6c291f600bf26019ec0443bb9bb963b24789
+SHA512 (bytes-1.11.1.crate) = 7933d18c1a2c1496add2c7193e92c3aa17029c530b7031604ccb7c77c68903f53cf7d41396448b32bdd4f540fef4b37564972dac7b225e6e2ca99cd61179a6ab
+Size (bytes-1.11.1.crate) = 78584 bytes
+BLAKE2s (cc-1.2.49.crate) = 4ad6efb4a1a900885f0907f66c14eb9c13aa1a3fc1c2a4fdd303f983c2f3b525
+SHA512 (cc-1.2.49.crate) = 2bb2913928a5456db746a8cdb78db942392779bad0a20f0c1df1c905f984b84756c2ff9663aa2729ab5d0b83df7a7317c7b86c27917417b5ce4196d29712ffa1
+Size (cc-1.2.49.crate) = 93145 bytes
+BLAKE2s (cfg-if-1.0.4.crate) = 517b7cff4f133f9b02492c0db281822fd02c24941a7aa4f9b1502895dc5e58d9
+SHA512 (cfg-if-1.0.4.crate) = 176e04df7ba783b7143bb84397b777f5c5a1305c08a5c3a218d4a66830620be89ed68992ba27686165bcd3fb2f34b2daf80b2a1d4b481ecc267c988e84d28e9d
+Size (cfg-if-1.0.4.crate) = 9360 bytes
+BLAKE2s (clap-4.5.53.crate) = 8d9dee058ffb7895ee71b3b60860ba01dca73f6bcb62bfcfee54bb06bb0d3cce
+SHA512 (clap-4.5.53.crate) = 2e700a46bdbf2afef7e56933629f3d7fae16021e02aeccf6b862a2c1a876e1f8ef52d927ba5a599ec04eb65d4ccade485d1de6ff50547df6df14bd8ad97daf2c
+Size (clap-4.5.53.crate) = 62036 bytes
+BLAKE2s (clap_builder-4.5.53.crate) = 366f8bfa825d1797b219c0ecd50cfa343e7a8cc18c67a2d07dcf2b40fcbdbfee
+SHA512 (clap_builder-4.5.53.crate) = 3151926fa631c882a6a02381f428feb9e861834469229d53c222cfb2e14be8be1ec3836b57891d960d026e98ed5fab1d9fb12c475fd9cde43db7e621143a5ba8
+Size (clap_builder-4.5.53.crate) = 170811 bytes
+BLAKE2s (clap_lex-0.7.6.crate) = f026bd592438b88645d9021f81686f03ae89162f71d7ad7544c094b6820e1741
+SHA512 (clap_lex-0.7.6.crate) = d248b65234f201b2cb867562ca3d8299e79d348874547639b31883c6eac8416d3d6394e5b0047ad74f1a2c37e7721375c76bcaed1e60d13c3f1937b20ad9c54e
+Size (clap_lex-0.7.6.crate) = 13466 bytes
+BLAKE2s (codespan-reporting-0.13.1.crate) = f0dfafe0e6e500ed6f3c512f63647fdcf3ae985548ec6405a33b1c1835cde8b1
+SHA512 (codespan-reporting-0.13.1.crate) = 876f4ba5dc3d7d0b201f6ea25effb787e01ebffb74bad88810aae8e293c3ac264c8c58bc81a20b29150040ecb755920695457ce8c0bb4a5b382552b5b44e6497
+Size (codespan-reporting-0.13.1.crate) = 57424 bytes
+BLAKE2s (cxx-1.0.191.crate) = 3e2a0e9070d1101bdeaf7e7c17d6db5153fd4ec695ebd39cf254e1cfce159273
+SHA512 (cxx-1.0.191.crate) = 88a3201900e8810b849f65983f6d11c4453792347f75a1a0b7641dde1715389706b7434e025ebee2bf89d4449733434ee7bb0b958c60a041919895b6a7b6fac3
+Size (cxx-1.0.191.crate) = 233693 bytes
+BLAKE2s (cxx-build-1.0.191.crate) = 64aadb064a8339eb972be76051f0e71c85cc549f6ca6213a7ecc65d6c537878a
+SHA512 (cxx-build-1.0.191.crate) = d5ae9c535701f56477b1077120855699ce9628f4ab5a9a58dc292bece46a2e11c948d906c8f77b0bddef9cb08ff9a66aa855d13eb47f6908d302ce78e890cbfc
+Size (cxx-build-1.0.191.crate) = 99802 bytes
+BLAKE2s (cxxbridge-cmd-1.0.191.crate) = 578818e94046975964721b14a95851b1b0160c08e662efaa0d6cddcada48e0d4
+SHA512 (cxxbridge-cmd-1.0.191.crate) = 068a341bcc8c8e315b3af7ee5afe1ec7faa52b41c5069227756c19b68f817960af8ff3106e60dfdaf8c7d32feffd38605f41efe0aba6d94eec812b6a16379d4f
+Size (cxxbridge-cmd-1.0.191.crate) = 86917 bytes
+BLAKE2s (cxxbridge-flags-1.0.191.crate) = 0d81a44252334398919958d4554896af7047d8c06c204e7b48407e661df4b767
+SHA512 (cxxbridge-flags-1.0.191.crate) = 873a9bc565a14cd58db9758606f18b1638f1ccb75d279a3184cd2ebcc9dfe24ae31131f0ca260d8cdfc9b34c3bc26391b95062047676554bb54150726366efe4
+Size (cxxbridge-flags-1.0.191.crate) = 5431 bytes
+BLAKE2s (cxxbridge-macro-1.0.191.crate) = ef2550b584d4622469f08d5a7536dc2e61125f12bf977685bb87b9f994babcdc
+SHA512 (cxxbridge-macro-1.0.191.crate) = 2f8b7c7ab7f74b44d27786440fc66b942062c10856a4d4262c531c43b92f32f77eece3fd4efd07d01ce056ef0f7818fb629641f22add488ccf930e38b9247d58
+Size (cxxbridge-macro-1.0.191.crate) = 71516 bytes
+BLAKE2s (equivalent-1.0.2.crate) = ecc976834a05d886b02d4691be4fa79ccdc19070d8548d36b740fe8f3f137bd6
+SHA512 (equivalent-1.0.2.crate) = 8e0e2dc070794a85b276e93f9e4a65d3bbb8587b33fda211c34479a0b88504c913d8bef9e84d7996254aeabe1efe4ff1ef6259ff4fe3f9ccb90dd90070b3e4d4
+Size (equivalent-1.0.2.crate) = 7419 bytes
+BLAKE2s (find-msvc-tools-0.1.5.crate) = bad20eaaf9e869db7c316234ca5b0aa2d2f0c030994644d142e9642f823533b3
+SHA512 (find-msvc-tools-0.1.5.crate) = 71021ce1a16c454bdd30abbb937c2ca67ab28ffcf88574e3ab758683943b44a96312a53cd6f5b8e76c89284a0cedbf46edb606894af720e3612c812bed189ab8
+Size (find-msvc-tools-0.1.5.crate) = 30942 bytes
+BLAKE2s (foldhash-0.2.0.crate) = 093b2ace06b78950fe9cb5eb123449fc6b9454138ee56a7df3db9b9b46153560
+SHA512 (foldhash-0.2.0.crate) = 1495281089a8a1b7bbacf8004a5e8051bb00bf37718e9ddce9d43e4e198f529135f864b6850ee4422456b0d4731ae58647f0a1aaae0d67921c389f5d108fc163
+Size (foldhash-0.2.0.crate) = 23329 bytes
+BLAKE2s (form_urlencoded-1.2.2.crate) = a2bd40109d330e88635133e0c0fda55eb32549353cef6e88f29f37fe4ef801c6
+SHA512 (form_urlencoded-1.2.2.crate) = 07d27d852504e146d586d007b090e53cbe740da140859dfb7d647c83c1b55265a83ea0a0e514587699b1dc6b6ffea2fc913319bcc83b55ebe191801a3b429c8a
+Size (form_urlencoded-1.2.2.crate) = 9347 bytes
+BLAKE2s (futures-channel-0.3.31.crate) = f03e5a01e367fab8e21b1a5b9cbe7be1f222cfc03a591602bc173dd3361f97c0
+SHA512 (futures-channel-0.3.31.crate) = 87e49e661cb12c1e03a07d3c94ca9bf5954344a51fa11639a118f5a49877c883387343af54639ad80e7196062a77fa7c9b9aff9804fb1e6ea3d0eb09efc53c69
+Size (futures-channel-0.3.31.crate) = 31971 bytes
+BLAKE2s (futures-core-0.3.31.crate) = f84e20f9d5ced305ff7e990075c80d6b4beb1feed31c4ed4cef703a48c377154
+SHA512 (futures-core-0.3.31.crate) = d2f4c2476c4f480f724a880ee16566fcdd545579d3cacd2f16745812eed9ac4a7a88d59d4a38b163ef466c6f6b612b9cb06308a09d52256506a8a90e358db935
+Size (futures-core-0.3.31.crate) = 14318 bytes
+BLAKE2s (futures-task-0.3.31.crate) = fb82779c9b97e6a69214dbdbff570939eed7837e1f92b23571ca97c49385a93d
+SHA512 (futures-task-0.3.31.crate) = 4872fd2f24b07c626efc6fd76c01b44d56efecb9697f972d0877307b38d3ccb06277ff029df38981470ba1f8ac5f93086123ab3af44d3c49bd9c10b6c9158a81
+Size (futures-task-0.3.31.crate) = 11217 bytes
+BLAKE2s (futures-util-0.3.31.crate) = 34b50c0b2fb2b69dcabea6d503c75c8324d704faf1d7d2f00bb192c76f43789b
+SHA512 (futures-util-0.3.31.crate) = 429b1de584546b931b17d475aacbdb0c14824a57d960c44e615aa808e8c0f9c126473e313a7150b3de87ea91b7eebebb1041509f61b3493fee8a9cd2c75c4df3
+Size (futures-util-0.3.31.crate) = 162124 bytes
+BLAKE2s (getrandom-0.2.16.crate) = 8d556c3e6d1449492d42f144e99954f4ff0af1bd7af134f5429e2c1b34f2aeab
+SHA512 (getrandom-0.2.16.crate) = 6391d5322f8ce2ea7d14062d378ae2ffad66622afd58b9f1732e5314b27d3a554c8a008f6d0d133640f11d769ac51ea4acd24e40259e14e2ffce93d5c3c1eb1e
+Size (getrandom-0.2.16.crate) = 40163 bytes
+BLAKE2s (hashbrown-0.16.1.crate) = 008312b14ac41a35952dfcc9eb9e7d5c89ab81567d4251ea5848b6615c7530f4
+SHA512 (hashbrown-0.16.1.crate) = 0739f1b2101488f88778e221d86738ce557b8ae12470e2a4444099eb90d876382030d00e789dd4ee44dcd7833a87a6e570fa11ba5823beb1cab3a56784ec2669
+Size (hashbrown-0.16.1.crate) = 147785 bytes
+BLAKE2s (http-1.4.0.crate) = e661794dab202d28f4ca09677227030c2d75c1b56916900b6ddd2b706358f73f
+SHA512 (http-1.4.0.crate) = f85bed2e41ae4cb97a3bbd69392ec660c66e2f8eda2dadfdff6328986e68e4563fc04c7fbabf08b811f2be3dce3ed2ba84e1ef8974fdb587b11615a288e4c897
+Size (http-1.4.0.crate) = 106978 bytes
+BLAKE2s (http-body-1.0.1.crate) = 095da94c17f05738a7e5e0d6681aa805d14882003a246704cc0b70f19b9206c9
+SHA512 (http-body-1.0.1.crate) = 3d9a711619e5b14d2188fa42bbd43653dceeeb7e172cbd96d36fdf37846fa2c1efa0fad019395a4fa6da2e139875934aa56caf7332dc40546095b0a774ca39bd
+Size (http-body-1.0.1.crate) = 6125 bytes
+BLAKE2s (http-body-util-0.1.3.crate) = 2d88681eb3fc1ba3d1804c35c63076748308554618f255db993c6f8097d252c8
+SHA512 (http-body-util-0.1.3.crate) = 3aa8f63bc489773c01ec7bd8e4012b515d4f037649c405b519051fb43acebb0fafebb4a51a38308c842244e6d869d360885ab64ca7b43e2b9f0c52542c072bcd
+Size (http-body-util-0.1.3.crate) = 16975 bytes
+BLAKE2s (httparse-1.10.1.crate) = 44e82f7d11ccf546de42fd459cf068c77bc46edb05d582de7212455432b38f78
+SHA512 (httparse-1.10.1.crate) = b9988b4657e54931a9f8beab694d938bca7c15783c7181059770e56a7cbff801531e96eaa396615f19b0d99c37f73b39194c6ae06df1309a02097ba13e33ffd0
+Size (httparse-1.10.1.crate) = 45190 bytes
+BLAKE2s (httpdate-1.0.3.crate) = 9d7d481199e2a0a4f61010c28d20a32426605905a9db6ffc707008dfb6328b31
+SHA512 (httpdate-1.0.3.crate) = 0586888fe89f40b838d5ceb083084d0b8058feff1d2933faedb96896dc86eec68b541a0374a508fd11b86eeadab3c62f88568ffe2c53206fad438373a50b2e5a
+Size (httpdate-1.0.3.crate) = 10639 bytes
+BLAKE2s (hyper-1.8.1.crate) = ccb4dab91e189362d4d8e5c512d13ed556ffafd58203b1ea60e3c99e3ccc901f
+SHA512 (hyper-1.8.1.crate) = b7a9638fcd74828b447966025b172899943ac8f9286860646e7fd073a796f32b0ccfea5d656d0e5c0c55b8a15db613370c0cd0341b55bdb15abaaaaf23b4c623
+Size (hyper-1.8.1.crate) = 157353 bytes
+BLAKE2s (hyper-rustls-0.27.7.crate) = 467edcc943756ec28794309a7e4e0acf23e31769bfad7b7e6a8705d5ad2919f4
+SHA512 (hyper-rustls-0.27.7.crate) = d0f4774ff4e0fe51c448a140e76765261d66ce1293c0ce521baa9a2e97731dd0774b2e6c54e19e673f05154daab710818184a440be0a46701bd08310afe8a2c6
+Size (hyper-rustls-0.27.7.crate) = 35435 bytes
+BLAKE2s (hyper-util-0.1.19.crate) = 0c3447367945b8a97b047d58635320535c2bfe7cfe95c40c18d6ed1613b8acfa
+SHA512 (hyper-util-0.1.19.crate) = 23d40ee9baf105025eb20939c27ebcc636498e07f776bc1bb1085647ffd52fda8d019c2967ecdb43cc4d46777941a026ffdfa4eaae37e1f5e8a42228ac6c720c
+Size (hyper-util-0.1.19.crate) = 112744 bytes
+BLAKE2s (indexmap-2.12.1.crate) = f1c952c8944b72477d122a6b9cedcb3478951372240f18eb8ba668024d343612
+SHA512 (indexmap-2.12.1.crate) = 218c1b0f5e117374b73492dae870b0a41a863d5f3fadd1e01adc592fc2d55229ea1f7c428893d02d1be1b768413b07497fa2600606ee6039672a1a8e45bdc5c3
+Size (indexmap-2.12.1.crate) = 100184 bytes
+BLAKE2s (ipnet-2.11.0.crate) = 33825e9ccf819e1a8b8608739e6f6165c1f213b2cce3898a30ad93f96aa98390
+SHA512 (ipnet-2.11.0.crate) = 9d3c42b5bd93a792ac09975b9ced105e6e8b1eb83bfe012aeabcaa3fc388ee2c5a0541d5cd6dae48dfb97cf82aa970316962d231b65298873136335ac3e5ddca
+Size (ipnet-2.11.0.crate) = 29718 bytes
+BLAKE2s (itoa-1.0.15.crate) = 993e1d6f42edf99e7b2f07b1d806f08026a8f2b4067f01701a24f1779847ce40
+SHA512 (itoa-1.0.15.crate) = 158ca5dd4b04cb12d9292a4df63c72443adaf5aab1bd9aacdb964dc58878d847a64251f84897cb25c34648d4c973b44fef5b4c175d7c04cabc2c13b4631c2e42
+Size (itoa-1.0.15.crate) = 11231 bytes
+BLAKE2s (libc-0.2.178.crate) = e2b638596c308e3ff3aabf12ec9098d818e6e8d6e6fa7d51c3c0f7c1161c0e74
+SHA512 (libc-0.2.178.crate) = 968b954e2edde88d14135decd9eaadc31ca1aad80529a6696591c06c4414d615c97ce0873f77bfebe08b862faa5f3cb79a6648ab90734d462bef06e06ea43dde
+Size (libc-0.2.178.crate) = 783720 bytes
+BLAKE2s (link-cplusplus-1.0.12.crate) = 25b47ff7ea0488b171635cc441315235989b42311d27ebb9bda287b187c1c8bc
+SHA512 (link-cplusplus-1.0.12.crate) = ea9fadb4f47de60e7200905f568fc962cd6d2b6fad652f1144ee3f5748874a422e1a3111ba999689f295b7fcc3ef19981d6ea52034ea2759aa23bec355cda911
+Size (link-cplusplus-1.0.12.crate) = 8178 bytes
+BLAKE2s (mio-1.1.1.crate) = fbb7f9607e7a387318c020bee5a544bdfba3ef3e03b1bf35c59eacc25cc82cb1
+SHA512 (mio-1.1.1.crate) = 0b1c82773f5cc3f33ccb80a2cfbd58e48ffac82934afa7d9ec632b36484f8a13a079802dd8a658dbc94fc158e597e4d7a2c02a799f7b506a7de98fe74e80e684
+Size (mio-1.1.1.crate) = 105630 bytes
+BLAKE2s (once_cell-1.21.3.crate) = 5b077d9ff947a795057e5647e50cf1bead07170110d0adb8337b88fa28b9e289
+SHA512 (once_cell-1.21.3.crate) = 32a87506c6f4598f3ca2c88556014ef2093d5db9a08602335e847caa537a866492fa74c894e7e1da2e4289a1d3dbffcb90a9e37a4a1453203832f434b8206990
+Size (once_cell-1.21.3.crate) = 34534 bytes
+BLAKE2s (pdns-recursor-5.4.0.tar.xz) = 6af490a6bfec870ee5877c9f831d2218c72e20baa0599a3afd19a56568e00076
+SHA512 (pdns-recursor-5.4.0.tar.xz) = acc53b1583270302402d8c01a9f215cffda66690c0d11021c5aa6f9821556999246aed34390bfefc01d5d43a77e904800c812acba93ed8e66f99fbf763fbf383
+Size (pdns-recursor-5.4.0.tar.xz) = 1392752 bytes
+BLAKE2s (percent-encoding-2.3.2.crate) = 81bf57454974d77f50aa665cf53179715469e81774d992a2d3769ad118d70d5b
+SHA512 (percent-encoding-2.3.2.crate) = 495b4aac88a7a46420811671d6bd82817e4eb2fe51d5068d11c5b50d0d927895d54c855cb07d4f4ad5a2d42b22f9419ad0183c14781dbfa240804fd49761035a
+Size (percent-encoding-2.3.2.crate) = 11583 bytes
+BLAKE2s (pin-project-lite-0.2.16.crate) = c73e5923caec8a0889155d0689a016b373b9935426ed6c28b63322dd3543e323
+SHA512 (pin-project-lite-0.2.16.crate) = 971adfe54cfed304647fd944c1c915e78b37eaf0de3a582fb984a5e91f1b7d4db2cf0f53a9a64b64427062d4b41c0a36baddef782411a76ae3be0f8ca45f0718
+Size (pin-project-lite-0.2.16.crate) = 30504 bytes
+BLAKE2s (pin-utils-0.1.0.crate) = 5a1cf546c08cd8ad36d3736e337a9865b694de6a636733d252a878aee8b1c204
+SHA512 (pin-utils-0.1.0.crate) = 828422b8440cc82ac6b0743e0112fa7540d437aed457564999092b1462cd7672cd6b1f0201b67075431aeedd3d9c5127468a3dd028744109944f7f023c82fd70
+Size (pin-utils-0.1.0.crate) = 7580 bytes
+BLAKE2s (proc-macro2-1.0.103.crate) = 7af1d794685e37f5f791bb34732816cc0b2ad97ffd6b62dd7a443439d9b7f607
+SHA512 (proc-macro2-1.0.103.crate) = 9a6964a2ad24dbb1108b7018882ddb48cb6e6f652d1c5eed1cac94602539fc71f011a0a276765778df161edbd6387bf03a8505d93565e0c106f09e98d7d6efce
+Size (proc-macro2-1.0.103.crate) = 60024 bytes
+BLAKE2s (quote-1.0.42.crate) = 1396bc647a8df7a630d5375e909cd62a81495bb6b2e3e79d1585c8686c5caa40
+SHA512 (quote-1.0.42.crate) = 6d55047312de6bab660459750c54213e986f0a80b4458fdb706c2fb3bab83b8239cd230dd9291662076d395c818a391142af1228ae3158cfa4960d6c74d531ba
+Size (quote-1.0.42.crate) = 31504 bytes
+BLAKE2s (ring-0.17.14.crate) = 1480ea4de12099a897e831682ebaf48ed6e688e06f58e79e496a06e227ed58bd
+SHA512 (ring-0.17.14.crate) = 88d38205dc1a1f89bd4ae887ec5c168e68a4b749b3ac0612674092331e99d14a9b8d0f4a98d72c1a3853bcc9da420402336da3ee053bedcfd598da8de93afa14
+Size (ring-0.17.14.crate) = 1502610 bytes
+BLAKE2s (rustls-0.23.35.crate) = a49fd1e11ad8c6ed3da0ca594b772ea9997170e1e7e9b9d26a30e15faeff0767
+SHA512 (rustls-0.23.35.crate) = f59f48bded60aad7b23e7c8c0f579713405ed7de45392f7984ceddaca42bc796f86674ec23b4576958042e699dd5a7ed82fac47923ae13dce930b7f3e8c0a039
+Size (rustls-0.23.35.crate) = 373700 bytes
+BLAKE2s (rustls-pki-types-1.13.1.crate) = d7a4ae0ed20e6ad632def80ea16c67cb28336d82548d0f88ad8d993d3373faad
+SHA512 (rustls-pki-types-1.13.1.crate) = 0357a3c66e31447fdf39ed9e29576e2dfbbb012171e71efe322c2cb13856e7441115936375555fb2f700e6a7bc97565c74dc4bc18f8b8b01d335357e220a2c1b
+Size (rustls-pki-types-1.13.1.crate) = 34901 bytes
+BLAKE2s (rustls-webpki-0.103.8.crate) = 023e51aef0a60adabe32ddc328ae6512a3cb65c3afb715db0748aa202a1d7894
+SHA512 (rustls-webpki-0.103.8.crate) = 934f630a0c8be9bdc41d491ff8c6cdeb225f180c77b7f1b242d0c4a61390fce7c925ffa09527e5cf872993384a6197ba4685dd0b7466241b4e1811a557366336
+Size (rustls-webpki-0.103.8.crate) = 85810 bytes
+BLAKE2s (ryu-1.0.20.crate) = 95eb1e552fedfc29ca6a61fa23321101b88bb0037acbe1a13a543b9c7461ea94
+SHA512 (ryu-1.0.20.crate) = 329c581429d9b8baa7d9edd9cf20e23fb8002f339d9fb3d50ed4c7eb68fb19c1ba966d52a9c9602265ca5f59f2bd4393ddcb3a7ac20c64aee3096e137eb2a384
+Size (ryu-1.0.20.crate) = 48738 bytes
+BLAKE2s (scratch-1.0.9.crate) = 5b5511bc167cebe35f6111cdcdca418093ba23719dcf72baf74e21944fb43e0f
+SHA512 (scratch-1.0.9.crate) = 718a3bdcfa9132fc222293d22c9a1b2a867a4d556194f148da60cc8d9bcc62cde9af2dfbfe104073f1b6eaefed19623a1fdf3eaec07835715f01a7c65e9c27bb
+Size (scratch-1.0.9.crate) = 8170 bytes
+BLAKE2s (serde-1.0.228.crate) = 6d35ddc61aef1dd8524d6730c719753730adcf3b2ecc0bb3f54af53f74384a99
+SHA512 (serde-1.0.228.crate) = 9b645d6214203533b303fc5e88ad4f7686c22df084878d18a0209a92304a340fcb62fdde88a7080cf7a7348d47b9b363885c4e1da90dba08cc99ff620f375e97
+Size (serde-1.0.228.crate) = 83652 bytes
+BLAKE2s (serde_core-1.0.228.crate) = c3ea455d91e83c2bd00cc5627f0c256b89e4defeacb70b76aa1f21ed33aabbec
+SHA512 (serde_core-1.0.228.crate) = 43897e3a7ebdc85d81d1cb30cda8f0a11610f6f551529c8a21462c24fb83110652b462846aa3e1bed5fbf8b5d7927018845a524ee9e079e2c8acf2c687efd6c4
+Size (serde_core-1.0.228.crate) = 63111 bytes
+BLAKE2s (serde_derive-1.0.228.crate) = 96ba1b9a1d86ef1d6189da828e4acb22c58e4c75bb851d67131f2b85dd11d75c
+SHA512 (serde_derive-1.0.228.crate) = 8bfdfeee10ee7ef0670972aa963ef63b13e8eb2c8a09b9e0b717f92551aa89b3dd2a0dcbae6ccf20a1caece07e6adb18f0db56fdac020e4e0281b0d24e376003
+Size (serde_derive-1.0.228.crate) = 59605 bytes
+BLAKE2s (serde_yaml-0.9.34+deprecated.crate) = f0555fcf281f63a6db07fbcaa0abf75f4beb4dc12be741c4abf13ae5956dc035
+SHA512 (serde_yaml-0.9.34+deprecated.crate) = 64329436d18bc3b1a0737afff7c8727f7e04c71b2bf6022f597a45f0860fa3a678eac688f61f0bf7a7846f98809f427c9907625e1d00c8691c383043c1cffaca
+Size (serde_yaml-0.9.34+deprecated.crate) = 65290 bytes
+BLAKE2s (shlex-1.3.0.crate) = 00a54f2882a7a2c2170fca55bd1acd51eea79f115f972ce143b5f4c9c974ee43
+SHA512 (shlex-1.3.0.crate) = 5c8cedbe666a14b8a0874defb9208146ce64579cde52ed483e4a794cac5dde6a24bf8d684404edff582f842e1fd4fa3fbeddbe074f191e4ec4aa517aa456fe8a
+Size (shlex-1.3.0.crate) = 18713 bytes
+BLAKE2s (smallvec-1.15.1.crate) = 4cc77213990608a8c3cffe9d6fa5cf81e66038510f1e853a27ca2ed027bb1e1b
+SHA512 (smallvec-1.15.1.crate) = c26b097a063353beedfcc921129cd0fb838c1c9420218993a05b2655b47b6ec16f11e0054312018658b4abd893beee140c5d2739401a5e5aea2e64575f237047
+Size (smallvec-1.15.1.crate) = 38116 bytes
+BLAKE2s (socket2-0.6.1.crate) = a36463e2c1e85349e2213b04ebf48fe1049783bfb1dc842aa4e9f69af186032d
+SHA512 (socket2-0.6.1.crate) = cafaf371870a8d85bee30d1a8341c25ec023f6031eaae96f783f0486e2c9b0ff7a6d742d40500f9c772472805d8de9f36a163405a476c57b254249992a5477de
+Size (socket2-0.6.1.crate) = 58486 bytes
+BLAKE2s (strsim-0.11.1.crate) = e844eaab35b47ce5619649d45ddd88a9821d745590e92864fdc3406c2f621aed
+SHA512 (strsim-0.11.1.crate) = 0cebe0155a92640e56db9a599ae62078cbb32e1d2da8bfa67ed0e8f410a7558dfcf7b3c2720ff5913282e291ecf076aed9fe9bf84c8d44e814a642b1bed3335c
+Size (strsim-0.11.1.crate) = 14266 bytes
+BLAKE2s (subtle-2.6.1.crate) = 20c4da1ee5ba2b0bb1aa9725b78c70ccae98f7b6cab0b57266d539d1b323b636
+SHA512 (subtle-2.6.1.crate) = f5946ebd9bcb8776ee3446abcbf4afb3cca5d8bd847cadda87e864333ac7ded537a3efa773e9648adf20ce4add2c1da85172cff88c1e1a3a6cb051401b00c6bd
+Size (subtle-2.6.1.crate) = 14562 bytes
+BLAKE2s (syn-2.0.111.crate) = 59e384935e8312b487a780865026ad631dfdc775720b9246d94b06af3e5751f4
+SHA512 (syn-2.0.111.crate) = f30fc819fc6c942cde044b6bbe608f96736070717f28da71ab4ff68aa9e780416829152da11a83513fbc0de88337c2157e4fd1e4a029ebcbb64daeaa54dbf768
+Size (syn-2.0.111.crate) = 302117 bytes
+BLAKE2s (termcolor-1.4.1.crate) = 052eddf6925aee94ddd6422f049b834dfc769ebd3b40553e579a82895d10a253
+SHA512 (termcolor-1.4.1.crate) = b66aad157c4fa2985f764321d157dfb1f0325fd633811870db7919b5579bf7bc19fefe99e1c706cdfa67504c37dc2ca3d283e11d1bb516edcfaf1eb7747a778a
+Size (termcolor-1.4.1.crate) = 18773 bytes
+BLAKE2s (tokio-1.48.0.crate) = 57742de499da8ec4d552c7643e105dfe91571004d8aedbf1b8a8374e82cadd10
+SHA512 (tokio-1.48.0.crate) = 7e275ed26e857d42255dd27e8704bcb0a5daa8658c5a00f9798f4522265006a91e04d6a06512a87f30e0ad090a1676c03d3b02fe8d60263e4ba793940a85b98b
+Size (tokio-1.48.0.crate) = 843434 bytes
+BLAKE2s (tokio-rustls-0.26.4.crate) = 2804ecbb0a03ef35fe0bf9ae29dbf4d756383dc63c840dd8931feddbbe69076e
+SHA512 (tokio-rustls-0.26.4.crate) = c72fdd74c4b59ab7c8fe15ed73f827aed91a40360a6d82772d6ae2dc4affc590d2c58c1b7523be7249a2be7e3bc2513a0906c0ce53ce1288d5dac50e01199c7c
+Size (tokio-rustls-0.26.4.crate) = 35430 bytes
+BLAKE2s (tower-service-0.3.3.crate) = 889bc37f167c843f857a31b5fc503a40003b1019a8651d86e61c97b16af913ff
+SHA512 (tower-service-0.3.3.crate) = 770cbca46d8500ff36fe84a9a420beb84a0e893dbeaccdd93a3970e746c893b5d32580182ef3017662f421e4b2d71f079ed2cf1727dcd5fc3443a4484f9b43fd
+Size (tower-service-0.3.3.crate) = 6950 bytes
+BLAKE2s (tracing-0.1.43.crate) = 50a8682d18cde24b3c1448bd0e1d6c3d3874970c1a53cd74f6da35911a0251cf
+SHA512 (tracing-0.1.43.crate) = 5c4add0fff3d0275141edf67924deda84c27677f5e1ebcc23fdc52ba4091e25b5fb341fe0028f0a502e1447b621928dba281100df154e5a33b2f8f4b5dbf4a4b
+Size (tracing-0.1.43.crate) = 90033 bytes
+BLAKE2s (tracing-core-0.1.35.crate) = b9a24973d51ee7bd426299d259c9b00b45b5126e39e2450071fafa519c689552
+SHA512 (tracing-core-0.1.35.crate) = 30afe79d6f1e9ad945245db2ac870f6fdfa1ebd1674139778700dba5c7de2891f7d3cac0644e71c5a286868adb7dd6eb3a255e6e669e1cd06c46ff3d57d22036
+Size (tracing-core-0.1.35.crate) = 63837 bytes
+BLAKE2s (try-lock-0.2.5.crate) = dc461d615e36a08553313c3a3172764749d329fe5dc4707a3de8c54af94d3c31
+SHA512 (try-lock-0.2.5.crate) = 433db3c52f55d78220db414ef6a7367791dd66eac935f41dcda85ec9200f0eefeab6e8342e70aabe35c300069c0e7b7c4f8d63a2334b52a081cc98416371ef08
+Size (try-lock-0.2.5.crate) = 4314 bytes
+BLAKE2s (unicode-ident-1.0.22.crate) = dae907e5a4eab70673562bb74821434a4533a5e7f604301aebef7e28fbcbfe3e
+SHA512 (unicode-ident-1.0.22.crate) = 81666679aaa2eebfe1429827fa2a88ee0b52bd69723067132c24252070133b3731287bcd880ba16d16274f038c7b27bcf637e9150b6cd955fb4ff49642078125
+Size (unicode-ident-1.0.22.crate) = 47919 bytes
+BLAKE2s (unicode-width-0.2.2.crate) = 770d8dc1245680ff01e5014e31cd470f221eded531e5ffdd84823bcd5ceaf62a
+SHA512 (unicode-width-0.2.2.crate) = a0ff6ccc1d154e5a100808d3109fe30afa048c3ff402f0a0de34dbff2d58a7403903002185b33bee7b04dcb578c9dea66225a8697f3cd997205680ae3abce965
+Size (unicode-width-0.2.2.crate) = 282768 bytes
+BLAKE2s (unsafe-libyaml-0.2.11.crate) = 3cd33789ced82ced84c3c400a545b6b07238021976a0a342ba6168820cc4e8f1
+SHA512 (unsafe-libyaml-0.2.11.crate) = a42c95eaed1ae2e438d3ba19ccd92337327c34f6174a43db80e1f37c507154249c7510e93f81726890c6032c89fe21b1876582afb7fbb811e3931480c4727712
+Size (unsafe-libyaml-0.2.11.crate) = 62101 bytes
+BLAKE2s (untrusted-0.9.0.crate) = 48fd20f1ccabe5057140657a1103382efe55b4711cc443e17c503849f38c1589
+SHA512 (untrusted-0.9.0.crate) = 5929e4079c1c2ff933ae8d8f59a2ecc7a424e71a20d1b8821f75925af68bdf82604b024c008e5464b02e25ff093e561a352b685e755b3d0b27e4c30254689416
+Size (untrusted-0.9.0.crate) = 14447 bytes
+BLAKE2s (want-0.3.1.crate) = 488160f86c0f114df758aaa6f64b8a12d9fd7183fec80888469c0ddd4ea9c0e7
+SHA512 (want-0.3.1.crate) = f93f765113f035e134b967e8eb3f4511b8e03e793a47899b614d826afac02348fc02865c298a10410ecec4eb64f35f66c22bcbdbe36ed0c4c1665dca1db4d526
+Size (want-0.3.1.crate) = 6398 bytes
+BLAKE2s (wasi-0.11.1+wasi-snapshot-preview1.crate) = 754465931502b3a96b316c42429cc83d392da7abc889f52a4de4adf5277fb900
+SHA512 (wasi-0.11.1+wasi-snapshot-preview1.crate) = 29e3c903763db2580a15f50db487c5e1d4e90763e48d90a5b3f681e468a24f9df1a01773bd1ffa0e3cd293dd8cb4d6fbabfaa63c0e13889c811a56f4554ada49
+Size (wasi-0.11.1+wasi-snapshot-preview1.crate) = 28477 bytes
+BLAKE2s (winapi-util-0.1.11.crate) = 2f2e40ee4fe0683c2629d04b366f9b7498d7fc096183a40c9a279168f65a71e0
+SHA512 (winapi-util-0.1.11.crate) = cc1511c004c2a81da4d7a0414973f09ab711033fbbadfd597f56df2cc6c99b3c1822f0b8de1952e78400a88462b9050acd85d2e4b36db72254049a2d6f725a01
+Size (winapi-util-0.1.11.crate) = 13368 bytes
+BLAKE2s (windows-link-0.2.1.crate) = b399f8b2d800cac2bef8e258bd19baf94c010ce1b58723ccfda65f4451b8f1a2
+SHA512 (windows-link-0.2.1.crate) = afb0c87beb8914fd9a3e52db6f2f64a840470b9751b66c83892c24cb1c46cda63fb16b1aeafcaa5a1fc7c5ba01da46be63e5227cc108dede8b0bd27785498a6b
+Size (windows-link-0.2.1.crate) = 6133 bytes
+BLAKE2s (windows-sys-0.52.0.crate) = c3fbc4dc1df8d727b7bee308e0c95dcfe190dc3f655d19dc027a7f522d496f79
+SHA512 (windows-sys-0.52.0.crate) = 24ee0df246c2b456a4987a9124786a28acd358768cc7d1305bccd81bc5bb8822b81a03fb18d35174a520b911c6d9b685f81a34ab319fee13da3b985273584f03
+Size (windows-sys-0.52.0.crate) = 2576877 bytes
+BLAKE2s (windows-sys-0.60.2.crate) = daf2bbdf7df252ef06247d9f47faaeb11f0514958a9b8892555986ca2b30fb66
+SHA512 (windows-sys-0.60.2.crate) = a48aa1b66479451e431032737b63dc62eac6f63c251534e258de75bbee4858829faf5e641756566f00e153b08548ba32beb437b5ea42e9531e3fcbd8eb25209d
+Size (windows-sys-0.60.2.crate) = 2518479 bytes
+BLAKE2s (windows-sys-0.61.2.crate) = 88f1c3307e8ff43ad37316780e5d3e475be394aade0aacac6857e305c6120f6e
+SHA512 (windows-sys-0.61.2.crate) = e6c8f61f0724dafca7821ee9b9c07237ccfee69be269be2fa7318eb48b151285ecf63e860aa1fe303639222fe11268e3773f37c2dd79f923029af58c645edb3f
+Size (windows-sys-0.61.2.crate) = 2517186 bytes
+BLAKE2s (windows-targets-0.52.6.crate) = fed2bcf4841033cc3a74ee335a8e3914c4857457f829c88977081182cc6498b9
+SHA512 (windows-targets-0.52.6.crate) = d6d2dbd96096c6c396dba141a9817e377c35877f3b2fe58b2553280c7cfcb1ed6ee75bd4d62c9b882662de67ddaf0c1049b91530d29c94dd709c230e08eb895f
+Size (windows-targets-0.52.6.crate) = 6403 bytes
+BLAKE2s (windows-targets-0.53.5.crate) = 02139ba602d4206335c726bfed1fd085e78b9f7285da19e7b7a5312498055b3f
+SHA512 (windows-targets-0.53.5.crate) = 285a2ad1c370d8485a84c3921b180416c79ad596ace5ce30a1100fe0d9725139e9302f5728d4874789d8abe5c53e9b30ff4738d969da1c07940bde2b01c7a203
+Size (windows-targets-0.53.5.crate) = 7126 bytes
+BLAKE2s (windows_aarch64_gnullvm-0.52.6.crate) = 22fddd2aa2d7419001b540e1cb9c3702ae4fb2972cd94448e325c00729033c87
+SHA512 (windows_aarch64_gnullvm-0.52.6.crate) = f62b2d942bdb3a9353465b07d47b93de179bb706511aa497e4addd74cff95e689a9b633e7801ce786e73b5ae5f30b506b6faa199c5ab86eefdc1d94652df79c5
+Size (windows_aarch64_gnullvm-0.52.6.crate) = 435718 bytes
+BLAKE2s (windows_aarch64_gnullvm-0.53.1.crate) = 1353141a76a7d7ce7deaa1738e827c7ebe68b9195ed9b526d5b1c0b611369813
+SHA512 (windows_aarch64_gnullvm-0.53.1.crate) = 5e480e54af09c142ff75e77f733327dd3862f32620e0b075e02bf8119e955ef2f3acfa00f7c7a4d6a2b034d03d70c45e191a40c8af628484d0e76a0b15870cdc
+Size (windows_aarch64_gnullvm-0.53.1.crate) = 787748 bytes
+BLAKE2s (windows_aarch64_msvc-0.52.6.crate) = 8f50e782f7ff109325620b809e13c08b948f85e0519cf249f70c5b605866d07c
+SHA512 (windows_aarch64_msvc-0.52.6.crate) = a3e21305ad0e6de38f5b5ed5d37ee5825b7521064163bcdf31d63341cd87983f54377865d2daf3bb480d2d0aa66d6f598fa09540ec1d71baea74569c86bd213b
+Size (windows_aarch64_msvc-0.52.6.crate) = 832615 bytes
+BLAKE2s (windows_aarch64_msvc-0.53.1.crate) = 2d25a0e0732513886c89c2f48d92088937a749ddfc854a9e3df02dbf11fa6821
+SHA512 (windows_aarch64_msvc-0.53.1.crate) = 81175036792cab41ede4e3a21ae324e638c39604e14c7a3dae8db4090cec45b385aca32416ccad50ab194ce06d3a71f2e12473767d680348795383dbb2d17426
+Size (windows_aarch64_msvc-0.53.1.crate) = 838009 bytes
+BLAKE2s (windows_i686_gnu-0.52.6.crate) = 2bf3eede03990415b9bd6ab49e4d91d962d8ebe6303560848a2e9ef9f316331a
+SHA512 (windows_i686_gnu-0.52.6.crate) = a1f6b5dd23d17ec3567bc9d11a4be6f35e196eee21ca342e9b88dbaa6a5f7c46e439c834b77e724f32ac22c0d81573746b3b513a6c944a221b92b2c76fe98822
+Size (windows_i686_gnu-0.52.6.crate) = 880402 bytes
+BLAKE2s (windows_i686_gnu-0.53.1.crate) = 27bb7adb47e2d26853b8332e3378428e17ecfd3f30d6c24db7a1f90dd29c98fe
+SHA512 (windows_i686_gnu-0.53.1.crate) = 5af8519d1e0d9947738d5aa339091695467a55b62fe97bac680eb469679180a54e9f65e2ef8d0c34d4e63ede8c16f34a0fbd1f54ff53924ebcd6cef17c3474d2
+Size (windows_i686_gnu-0.53.1.crate) = 939775 bytes
+BLAKE2s (windows_i686_gnullvm-0.52.6.crate) = eafa7c3fdf8ce35ecee51ebf161ba59c582395537555921b94b8af952c9dd38c
+SHA512 (windows_i686_gnullvm-0.52.6.crate) = 95f13af855d530acc0b856214478d4b11b8dbab3f8f79dd223d0b009790c0e46d096fc1773e0277997deb2d5b96c704f17f23c7df11411524629f75415dec99f
+Size (windows_i686_gnullvm-0.52.6.crate) = 475940 bytes
+BLAKE2s (windows_i686_gnullvm-0.53.1.crate) = 8d77cefe6d8f88cff718928ee78ff763611999c490842d7c086af834bbccf302
+SHA512 (windows_i686_gnullvm-0.53.1.crate) = 492bee10b669c799a93b7ad98ee7a15c0ccde4d13697408612cd345cca2b7efc38b85c550eaf1b83470bee53ff3324045b7b751c3a31ac0e214b9965e05bbffc
+Size (windows_i686_gnullvm-0.53.1.crate) = 857396 bytes
+BLAKE2s (windows_i686_msvc-0.52.6.crate) = 085f4ed29405a0351ecf62874780f2692e011dc0cedbd945270fe7d1f032987a
+SHA512 (windows_i686_msvc-0.52.6.crate) = ca97913ce202d73266cf55947b868bea7e964a4516b6a096a81aeab6a60ee73867171032ced35e3afccff741ddfb2def7468343b6eceb95253e4d4f349efbf96
+Size (windows_i686_msvc-0.52.6.crate) = 901163 bytes
+BLAKE2s (windows_i686_msvc-0.53.1.crate) = 6066dfdf129d1012cd8b7a098219713513c36b94567ddecaf349a52cad4e7810
+SHA512 (windows_i686_msvc-0.53.1.crate) = b78f2a21e88adb65bf8a81bfa8a133d6ebe18b8394220421bd5f10b619528f118a255dacf6e78014ddb4db8a27b936be7af6e137133d914e1cc0902139a0e0cd
+Size (windows_i686_msvc-0.53.1.crate) = 907688 bytes
+BLAKE2s (windows_x86_64_gnu-0.52.6.crate) = 72ec3c98937b6cb854cb09a78dabd88a71f56e96cdc99a3b46d4641b395f81ec
+SHA512 (windows_x86_64_gnu-0.52.6.crate) = c4086bb0280042f2bef9b556283b67f8a5cacddd209e1c5fabec63decec6d4fd2d6a7071407973981b98ae0c0cf7034fc612f9e70dc6d3eed9acdec771ae31cb
+Size (windows_x86_64_gnu-0.52.6.crate) = 836363 bytes
+BLAKE2s (windows_x86_64_gnu-0.53.1.crate) = 9759bb6902b53dceeb2d73051de8e4a1c06b717e7ac872e0004ccf2cf6a86b49
+SHA512 (windows_x86_64_gnu-0.53.1.crate) = e4c5bbc49202636c03953aa0fff1f1affed69970aae198cb4d1eeb5dda63b9e07b0cfaf46015bca3b8c48fd90d3552488a6a7b17b53aebf9776e996ccbf9c7d5
+Size (windows_x86_64_gnu-0.53.1.crate) = 903712 bytes
+BLAKE2s (windows_x86_64_gnullvm-0.52.6.crate) = ad13afdffbbdfe4ac64f82de4ee71ba660793294c737412ddc7aa3f47109ddb3
+SHA512 (windows_x86_64_gnullvm-0.52.6.crate) = 67681f5859e249c56b0183181811f6212cc7008d6471dad78aecc7ebe3d027686b19210b8aa9014c554410f69f913d21ce2aca928eea905eab779bea26464cbd
+Size (windows_x86_64_gnullvm-0.52.6.crate) = 435707 bytes
+BLAKE2s (windows_x86_64_gnullvm-0.53.1.crate) = 8474dc0d01d115afbab8ab35d54fdaa130560011b0343e7a45f3ab0d68e2ab38
+SHA512 (windows_x86_64_gnullvm-0.53.1.crate) = 30b8919ee9ad36acfac4e28a3b22378ce11ee73d35de60dd9c9217adf14e85222da5526100b0252372e039e559a5bf734ba134b10f707657d542341056947588
+Size (windows_x86_64_gnullvm-0.53.1.crate) = 787739 bytes
+BLAKE2s (windows_x86_64_msvc-0.52.6.crate) = 5b8f356fbbd3d304c939f19f79a10b72a39c1b27decca9b0449a4af3761e9a79
+SHA512 (windows_x86_64_msvc-0.52.6.crate) = 21944cd8e3a481b514509e73ae3f62722fe7ed380d37ea0c25f8fbdeba79174dd52ff65d898838da5df4197894b74e00f45d47489418e978753b4e55c7e623e7
+Size (windows_x86_64_msvc-0.52.6.crate) = 832564 bytes
+BLAKE2s (windows_x86_64_msvc-0.53.1.crate) = b42857dca5a992ba1d1974fca457c09ce6d0a24913df2a189f65a1d1cd818b7e
+SHA512 (windows_x86_64_msvc-0.53.1.crate) = bb724f4051db90ce49b552021e746769e5dfe3792b522416539960c27f9ace14f63c47f0f240d6563257377129b5f3ba2c262c6fea9610428aa860fe035f189c
+Size (windows_x86_64_msvc-0.53.1.crate) = 837950 bytes
+BLAKE2s (zeroize-1.8.2.crate) = 0242c1584931f4bf8a6ac21efdb45453c03030d2ac36ecc37e8a2a4c174a705b
+SHA512 (zeroize-1.8.2.crate) = ce1fb97ac69cb0792f2f5820919aaa0a9f71c4b410bd0d0c2343d8415d39e3eec3f948cc2769eaf639c14695a3961fb6cd96ba7a77a15a77924d1a8c16497b81
+Size (zeroize-1.8.2.crate) = 20907 bytes
diff --git a/powerdns-recursor/files/pdns_recursor.sh b/powerdns-recursor/files/pdns_recursor.sh
new file mode 100644
index 0000000000..be39601a2d
--- /dev/null
+++ b/powerdns-recursor/files/pdns_recursor.sh
@@ -0,0 +1,19 @@
+#!@RCD_SCRIPTS_SHELL@
+#
+# $NetBSD: pdns_recursor.sh,v 1.3 2025/10/30 08:29:57 wiz Exp $
+#
+
+# PROVIDE: pdns_recursor
+# REQUIRE: DAEMON
+
+. /etc/rc.subr
+
+name="pdns_recursor"
+rcvar=$name
+command="@PREFIX@/sbin/pdns_recursor"
+command_args="--daemon=yes 2>/dev/null"
+pidfile=/var/run/pdns-recursor/${name}.pid
+required_files="@PKG_SYSCONFDIR@/recursor.yml"
+
+load_rc_config $name
+run_rc_command "$1"
diff --git a/powerdns-recursor/files/smf/manifest.xml b/powerdns-recursor/files/smf/manifest.xml
new file mode 100644
index 0000000000..653cb3dca8
--- /dev/null
+++ b/powerdns-recursor/files/smf/manifest.xml
@@ -0,0 +1,30 @@
+<?xml version="1.0"?>
+<!DOCTYPE service_bundle SYSTEM "/usr/share/lib/xml/dtd/service_bundle.dtd.1">
+<service_bundle type="manifest" name="export">
+  <service name="@SMF_PREFIX@/pdns-recursor" type="service" version="1">
+    <create_default_instance enabled="false" />
+    <single_instance />
+    <dependency name="network" grouping="require_all" restart_on="error" type="service">
+      <service_fmri value="svc:/milestone/network:default" />
+    </dependency>
+    <dependency name="filesystem" grouping="require_all" restart_on="error" type="service">
+      <service_fmri value="svc:/system/filesystem/local" />
+    </dependency>
+    <method_context></method_context>
+    <exec_method type='method' name='start' exec='@PREFIX@/@SMF_METHOD_FILE.pdns_recursor@ start' timeout_seconds='30' />
+    <exec_method type='method' name='stop' exec='@PREFIX@/@SMF_METHOD_FILE.pdns_recursor@ stop' timeout_seconds='30' />
+    <exec_method type='method' name='refresh' exec='@PREFIX@/@SMF_METHOD_FILE.pdns_recursor@ refresh' timeout_seconds='30' />
+    <property_group name="startd" type="framework">
+      <propval name="duration" type="astring" value="contract" />
+      <propval name="ignore_error" type="astring" value="core,signal" />
+    </property_group>
+    <property_group name="application" type="application">
+      <propval name="config_file" type="astring" value="@PKG_SYSCONFDIR@/recursor.yml" />
+    </property_group>
+    <template>
+      <common_name>
+        <loctext xml:lang="C">PowerDNS recursor service</loctext>
+      </common_name>
+    </template>
+  </service>
+</service_bundle>
diff --git a/powerdns-recursor/files/smf/pdns_recursor.sh b/powerdns-recursor/files/smf/pdns_recursor.sh
new file mode 100644
index 0000000000..be558dd071
--- /dev/null
+++ b/powerdns-recursor/files/smf/pdns_recursor.sh
@@ -0,0 +1,24 @@
+#!@SMF_METHOD_SHELL@
+#
+# $NetBSD: pdns_recursor.sh,v 1.1 2020/09/30 11:53:07 otis Exp $
+#
+
+. /lib/svc/share/smf_include.sh
+
+if [ ! -d @VARBASE@/run/pdns-recursor ]; then
+	@MKDIR@ @VARBASE@/run/pdns-recursor
+	@CHMOD@ 0755 @VARBASE@/run/pdns-recursor
+fi
+
+case "$1" in
+   start)
+      @PREFIX@/sbin/pdns_recursor --daemon
+      ;;
+   stop)
+      @PREFIX@/bin/rec_control quit
+      ;;
+   refresh)
+      $0 stop
+      $0 start
+      ;;
+esac


Home | Main Index | Thread Index | Old Index