[Bug 296118] dns/powerdns-recursor: Update to 5.4.2 and modernize build infrastructure

From: <bugzilla-noreply_at_freebsd.org>
Date: Wed, 17 Jun 2026 20:52:32 UTC
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=296118

            Bug ID: 296118
           Summary: dns/powerdns-recursor: Update to 5.4.2 and modernize
                    build infrastructure
           Product: Ports & Packages
           Version: Latest
          Hardware: Any
                OS: Any
            Status: New
          Severity: Affects Many People
          Priority: ---
         Component: Individual Port(s)
          Assignee: ports-bugs@FreeBSD.org
          Reporter: jordan@ostreff.info
                CC: tremere@cainites.net
                CC: tremere@cainites.net
             Flags: maintainer-feedback?(tremere@cainites.net)

Created attachment 271887
  --> https://bugs.freebsd.org/bugzilla/attachment.cgi?id=271887&action=edit
dns/powerdns-recursor: modernize build infrastructure

The current port infrastructure for dns/powerdns-recursor in the ports tree
relies on an outdated Autotools build framework. Upstream has completely
migrated to the Meson build system and now inherently integrates Cargo/Rust
components into its core architecture.

This patch updates dns/powerdns-recursor to version 5.4.2, bumps PORTREVISION
to 1 to account for the infrastructural changes, and completely modernizes the
build configuration.

### Summary of Changes:
* **Build System Migration:** Converted the build process to use `USES=meson`
and `USES=cargo` (with cargo phases disabled in favor of target-order overrides
for a clean, hybrid workflow).
* **Compiler Requirements:** Bumped compiler standard to `compiler:c++17-lang`
to comply with current `meson.build` definitions.
* **Build Dependencies:** Added `devel/ragel` to `BUILD_DEPENDS` to ensure
clean parsing of internal DNS label tracking generation files.
* **Options Update:** Added a new `NOD` (Newly Observed Domains) configuration
option, which is enabled by default as per upstream defaults. Sorted the
existing options alphabetically.
* **Socket Directory:** Set `-Dsocket-dir=/var/run/pdns-recursor` to align
default socket placements with standard FreeBSD runtime locations.
* **Configuration Modernization (pkg-message):** Updated `pkg-message.in` to
strictly reflect the migration from legacy `recursor.conf-dist` to the modern,
structured YAML `recursor.yml-dist`. Provided clear instructions on utilizing
the built-in configuration converter.

### QA Results:
* `make check-plist` passes cleanly with no missing or orphaned entries.
* `stage-qa` successfully runs without warnings.
* Package builds cleanly via Poudriere on recent FreeBSD releases.
* Binary validation (`pdns_recursor --version`) verifies that all toggled
features (Lua, NOD, Sodium, OpenSSL/DoT, and cURL) are correctly detected and
compiled using Clang.

-- 
You are receiving this mail because:
You are the assignee for the bug.