Date: Mon, 29 Jun 2026 12:15:45 +0000 From: Yusuf Yaman <nxjoseph@FreeBSD.org> To: ports-committers@FreeBSD.org, dev-commits-ports-all@FreeBSD.org, dev-commits-ports-main@FreeBSD.org Cc: Ralf van der Enden <tremere@cainites.net> Subject: git: 287c9e637e7f - main - dns/powerdns: Security update 5.0.5 => 5.1.2 Message-ID: <6a4261f1.1d0ba.270ab0b6@gitrepo.freebsd.org>
index | next in thread | raw e-mail
The branch main has been updated by nxjoseph: URL: https://cgit.FreeBSD.org/ports/commit/?id=287c9e637e7f0baa9a44f51e56308036925f13e3 commit 287c9e637e7f0baa9a44f51e56308036925f13e3 Author: Ralf van der Enden <tremere@cainites.net> AuthorDate: 2026-06-07 20:34:01 +0000 Commit: Yusuf Yaman <nxjoseph@FreeBSD.org> CommitDate: 2026-06-29 12:15:18 +0000 dns/powerdns: Security update 5.0.5 => 5.1.2 Port changes: - Switch from Autotools to Meson. - Add new GNUTLS option. - Fix build with OPENLDAP option by adding dependency on security/krb5. Upgrade Notes (from 5.0.0 to 5.1.0): - https://doc.powerdns.com/authoritative/upgrading.html#to-5-1-0 Changelogs: - https://doc.powerdns.com/authoritative/changelog/5.0.html#change-5.0.6 - https://doc.powerdns.com/authoritative/changelog/5.1.html#change-5.1.2 Security Advisories: - https://doc.powerdns.com/authoritative/security-advisories/powerdns-advisory-2026-05.html - https://doc.powerdns.com/authoritative/security-advisories/powerdns-advisory-2026-07.html PR: 296312 Reported by: Jordan Ostreff <jordan@ostreff.info> Approved by: osa, vvd (Mentors, implicit) MFH: 2026Q2 Security: CVE-2026-33257 Security: CVE-2026-33260 Security: CVE-2026-33608 Security: CVE-2026-33609 Security: CVE-2026-33610 Security: CVE-2026-33611 Security: CVE-2026-42005 --- dns/powerdns/Makefile | 96 +++++++++++++--------- dns/powerdns/distinfo | 6 +- dns/powerdns/files/patch-fix_missing_symbols | 68 +++++++++++++++ .../files/patch-m4_pdns__check__libcrypto.m4 | 15 ---- dns/powerdns/files/patch-m4_pdns__with__lua.m4 | 11 --- 5 files changed, 126 insertions(+), 70 deletions(-) diff --git a/dns/powerdns/Makefile b/dns/powerdns/Makefile index 7c7367b4d946..cd56040abe02 100644 --- a/dns/powerdns/Makefile +++ b/dns/powerdns/Makefile @@ -1,6 +1,5 @@ PORTNAME= powerdns -DISTVERSION= 5.0.5 -PORTREVISION= 1 +DISTVERSION= 5.1.2 CATEGORIES= dns MASTER_SITES= https://downloads.powerdns.com/releases/ DISTNAME= pdns-${DISTVERSION} @@ -14,47 +13,49 @@ LICENSE= GPLv2 NOT_FOR_ARCHS= i386 NOT_FOR_ARCHS_REASON= archs with 32-bits time_t are no longer supported by upstream +BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}pyyaml>0:devel/py-pyyaml@${PY_FLAVOR} LIB_DEPENDS= libboost_program_options.so:devel/boost-libs \ libcurl.so:ftp/curl \ libsodium.so:security/libsodium -USES= autoreconf compiler:c++11-lib cpe gmake libtool \ - localbase:ldflags pathfix pkgconfig ssl tar:bzip2 +USES= compiler:c++17-lang cpe libtool localbase meson pkgconfig \ + python:build ssl tar:bzip2 USE_RC_SUBR= pdns -USE_SUBMAKE= yes - -GNU_CONFIGURE= yes -CONFIGURE_ARGS= --disable-static \ - --docdir="${PREFIX}/share/doc/powerdns" \ - --sysconfdir="${PREFIX}/etc/pdns" \ - --with-boost="${LOCALBASE}" \ - --with-dynmodules="pipe bind ${MODULES}" \ - --with-libsodium=yes \ - --with-modules="" - -SCRIPTS_ENV= CURDIR2="${.CURDIR}" \ - DISTNAME="${DISTNAME}" \ - MKDIR="${MKDIR}" \ - POWERDNS_OPTIONS="${POWERDNS_OPTIONS}" \ - WRKDIRPREFIX="${WRKDIRPREFIX}" -INSTALL_TARGET= install-strip + +MESON_ARGS= --datadir=${PREFIX}/share/doc \ + --libdir=${PREFIX}/lib \ + --sysconfdir=${PREFIX}/etc/pdns \ + -Ddns-over-tls=enabled \ + -Dhardening=disabled \ + -Dipcipher=enabled \ + -Dmodule-bind=dynamic \ + -Dsigners-libcrypto-path=${OPENSSLBASE} \ + -Dsigners-libcrypto=enabled \ + -Dsigners-libsodium=enabled \ + -Dsystemd-service=disabled \ + -Dtls-libssl-dir=${OPENSSLBASE} \ + -Dtls-libssl=enabled + +DOCSDIR= ${PREFIX}/share/doc/pdns +BINARY_ALIAS= python3=${PYTHON_CMD} SUB_FILES= pkg-message USERS= pdns GROUPS= pdns -OPTIONS_DEFINE= DOCS EXAMPLES GEOIP IXFRDIST LMDB LUABACKEND MYSQL \ - OPENLDAP PGSQL REMOTE SQLITE3 TINYDNS TOOLS UNIXODBC \ - ZEROMQ +OPTIONS_DEFINE= DOCS EXAMPLES GEOIP GNUTLS IXFRDIST LMDB LUABACKEND \ + MYSQL OPENLDAP PGSQL REMOTE SQLITE3 TINYDNS TOOLS \ + UNIXODBC ZEROMQ OPTIONS_DEFAULT= LMDB LUA MYSQL PGSQL SQLITE3 OPTIONS_SINGLE= EXTLUA OPTIONS_SINGLE_EXTLUA= LUA LUAJIT -OPTIONS_SUB= yes +OPTIONS_SUB= yes EXTLUA_DESC= Lua library GEOIP_DESC= GeoIP backend (GeoIP2 DB) +GNUTLS_DESC= DoT support via GnuTLS (sdig only) IXFRDIST_DESC= Build ixfrdist LMDB_DESC= LMDB backend LUABACKEND_DESC= Lua2 backend @@ -71,58 +72,71 @@ ZEROMQ_DESC= Enable ZeroMQ connector (Implies REMOTE enabled) GEOIP_LIB_DEPENDS= libmaxminddb.so:net/libmaxminddb \ libyaml-cpp.so:devel/yaml-cpp +GEOIP_MESON_ON= -Dmodule-geoip=dynamic GEOIP_VARS= MODULES+=geoip +GNUTLS_LIB_DEPENDS= libgnutls.so:security/gnutls +GNUTLS_MESON_ENABLED= tls-gnutls + IXFRDIST_LIB_DEPENDS= libyaml-cpp.so:devel/yaml-cpp -IXFRDIST_CONFIGURE_ENABLE= ixfrdist +IXFRDIST_MESON_TRUE= tools-ixfrdist -LMDB_LIB_DEPENDS= liblmdb.so:databases/lmdb \ - libboost_serialization.so:devel/boost-libs -LMDB_CONFIGURE_ON= --with-lmdb=${LOCALBASE} -LMDB_CONFIGURE_OFF= --without-lmdb +LMDB_LIB_DEPENDS= libboost_serialization.so:devel/boost-libs \ + liblmdb.so:databases/lmdb +LMDB_MESON_ON= -Dmodule-lmdb=dynamic LMDB_VARS= MODULES+=lmdb +LUABACKEND_MESON_ON= -Dmodule-lua2=dynamic +LUABACKEND_MESON_TRUE= lua-records LUABACKEND_VARS= MODULES+=lua2 LUAJIT_USES= luajit -LUAJIT_CONFIGURE_ON= --with-lua=luajit +LUAJIT_MESON_ON= -Dlua=luajit -LUA_USES= lua +LUA_USES= lua +LUA_MESON_ON= -Dlua=lua MYSQL_LIB_DEPENDS= libunwind.so:devel/libunwind MYSQL_USES= mysql -MYSQL_CONFIGURE_ON= --with-mysql=${LOCALBASE} -MYSQL_CONFIGURE_OFF= --without-mysql +MYSQL_MESON_ON= -Dmodule-gmysql=dynamic MYSQL_VARS= MODULES+=gmysql +OPENLDAP_BUILD_DEPENDS= krb5>=0:security/krb5 +OPENLDAP_LIB_DEPENDS= libkrb5.so:security/krb5 OPENLDAP_USES= ldap +OPENLDAP_MESON_ON= -Dmodule-ldap=dynamic OPENLDAP_CXXFLAGS= -DLDAP_DEPRECATED=1 OPENLDAP_VARS= MODULES+=ldap -PGSQL_USES= pgsql -PGSQL_CONFIGURE_ON= --with-pg-config=${LOCALBASE}/bin/pg_config -PGSQL_VARS= MODULES+=gpgsql +PGSQL_USES= pgsql +PGSQL_MESON_ON= -Dmodule-gpgsql=dynamic +PGSQL_VARS= MODULES+=gpgsql +REMOTE_MESON_ON= -Dmodule-remote=dynamic REMOTE_VARS= MODULES+=remote SQLITE3_USES= sqlite:3 +SQLITE3_MESON_ON= -Dmodule-gsqlite3=dynamic SQLITE3_VARS= MODULES+=gsqlite3 TINYDNS_LIB_DEPENDS= libcdb.so:databases/tinycdb -TINYDNS_CONFIGURE_ON= CDB_CFLAGS="-I${LOCALBASE}/include" \ - CDB_LIBS="-L${LOCALBASE}/lib -lcdb" +TINYDNS_MESON_ON= -Dmodule-tinydns=dynamic TINYDNS_VARS= MODULES+=tinydns -TOOLS_CONFIGURE_ENABLE= tools +TOOLS_MESON_TRUE= tools UNIXODBC_LIB_DEPENDS= libodbc.so:databases/unixODBC +UNIXODBC_MESON_ON= -Dmodule-godbc=dynamic UNIXODBC_VARS= MODULES+=godbc ZEROMQ_IMPLIES= REMOTE ZEROMQ_LIB_DEPENDS= libzmq.so:net/libzmq4 -ZEROMQ_CONFIGURE_ON= --enable-remotebackend-zeromq +ZEROMQ_MESON_TRUE= module-remote-zeromq post-install:: +.for bin in dnsdemog kvresp + @${RM} ${STAGEDIR}${PREFIX}/bin/${bin} +.endfor @${MKDIR} ${STAGEDIR}${EXAMPLESDIR} ${STAGEDIR}/var/run/pdns @${STAGEDIR}${PREFIX}/sbin/pdns_server --module-dir=${STAGEDIR}${PREFIX}/lib/pdns \ --launch="pipe bind ${MODULES}" --config > ${STAGEDIR}${EXAMPLESDIR}/pdns.conf diff --git a/dns/powerdns/distinfo b/dns/powerdns/distinfo index 06248d0b87a6..8712da5a1a45 100644 --- a/dns/powerdns/distinfo +++ b/dns/powerdns/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1779540801 -SHA256 (pdns-5.0.5.tar.bz2) = c144feb23cfc2cd47ebf335132aea0afab605adb4ff4f30955be3445034e0def -SIZE (pdns-5.0.5.tar.bz2) = 1490386 +TIMESTAMP = 1782380258 +SHA256 (pdns-5.1.2.tar.bz2) = 6855967a54ad7b5de89f910f05e348e317b2ed839eb498f96c38c1af7a1eaf38 +SIZE (pdns-5.1.2.tar.bz2) = 1549581 diff --git a/dns/powerdns/files/patch-fix_missing_symbols b/dns/powerdns/files/patch-fix_missing_symbols new file mode 100644 index 000000000000..553813ee7634 --- /dev/null +++ b/dns/powerdns/files/patch-fix_missing_symbols @@ -0,0 +1,68 @@ +--- meson.build.orig 2026-06-10 08:51:36 UTC ++++ meson.build +@@ -458,6 +458,14 @@ endif + ) + endif + ++libpdns_sqlbackend = declare_dependency( ++ link_whole: static_library( ++ 'pdns-sqlbackend', ++ sources: files(src_dir / 'backends' / 'gsql' / 'gsqlbackend.cc', src_dir / 'backends' / 'gsql' / 'gsqlbackend.hh', src_dir / 'backends' / 'gsql' / 'ssql.hh'), ++ dependencies: deps, ++ ) ++) ++ + # This needs to be link_whole'd because it's needed by auth backends. + libpdns_ssqlite3 = dependency('', required: false) + if dep_sqlite3.found() +@@ -465,7 +473,7 @@ if dep_sqlite3.found() + link_whole: static_library( + 'pdns-ssqlite3', + sources: files(src_dir / 'ssqlite3.cc', src_dir / 'ssqlite3.hh'), +- dependencies: deps, ++ dependencies: [deps, libpdns_sqlbackend], + ) + ) + endif +@@ -497,9 +505,6 @@ common_sources += files( + src_dir / 'auth-zonecache.hh', + src_dir / 'axfr-retriever.cc', + src_dir / 'axfr-retriever.hh', +- src_dir / 'backends' / 'gsql' / 'gsqlbackend.cc', # TODO Move to a separate module. +- src_dir / 'backends' / 'gsql' / 'gsqlbackend.hh', # TODO Move to a separate module. +- src_dir / 'backends' / 'gsql' / 'ssql.hh', # TODO Move to a separate module. + src_dir / 'base32.cc', + src_dir / 'base32.hh', + src_dir / 'base64.cc', +--- modules/gmysqlbackend/meson.build.orig 2026-06-10 08:51:36 UTC ++++ modules/gmysqlbackend/meson.build +@@ -19,4 +19,4 @@ module_resources = files( + 'schema.mysql.sql', + ) + +-module_deps = [deps, dep_mysql] ++module_deps = [deps, dep_mysql, libpdns_sqlbackend] +--- modules/godbcbackend/meson.build.orig 2026-06-10 08:51:36 UTC ++++ modules/godbcbackend/meson.build +@@ -15,4 +15,4 @@ module_resources = files( + '4.3.0_to_4.7.0_schema.mssql.sql', + ) + +-module_deps = [deps, dep_odbc] ++module_deps = [deps, dep_odbc, libpdns_sqlbackend] +--- modules/gpgsqlbackend/meson.build.orig 2026-06-10 08:51:36 UTC ++++ modules/gpgsqlbackend/meson.build +@@ -18,4 +18,4 @@ module_resources = files( + '4.3.0_to_4.7.0_schema.pgsql.sql', + ) + +-module_deps = [deps, dep_pgsql] ++module_deps = [deps, dep_pgsql, libpdns_sqlbackend] +--- modules/gsqlite3backend/meson.build.orig 2026-06-10 08:51:36 UTC ++++ modules/gsqlite3backend/meson.build +@@ -17,4 +17,4 @@ module_resources = files( + 'schema.sqlite3.sql', + ) + +-module_deps = [deps, dep_sqlite3] ++module_deps = [deps, dep_sqlite3, libpdns_ssqlite3] diff --git a/dns/powerdns/files/patch-m4_pdns__check__libcrypto.m4 b/dns/powerdns/files/patch-m4_pdns__check__libcrypto.m4 deleted file mode 100644 index 93d52cf80054..000000000000 --- a/dns/powerdns/files/patch-m4_pdns__check__libcrypto.m4 +++ /dev/null @@ -1,15 +0,0 @@ ---- m4/pdns_check_libcrypto.m4.orig 2025-08-22 07:51:37 UTC -+++ m4/pdns_check_libcrypto.m4 -@@ -75,8 +75,10 @@ AC_DEFUN([PDNS_CHECK_LIBCRYPTO], [ - for ssldir in $ssldirs; do - AC_MSG_CHECKING([for openssl/crypto.h in $ssldir]) - if test -f "$ssldir/include/openssl/crypto.h"; then -- LIBCRYPTO_INCLUDES="-I$ssldir/include" -- LIBCRYPTO_LDFLAGS="-L$ssldir/lib" -+ if test $ssldir != /usr; then -+ LIBCRYPTO_INCLUDES="-I$ssldir/include" -+ LIBCRYPTO_LDFLAGS="-L$ssldir/lib" -+ fi - LIBCRYPTO_LIBS="-lcrypto" - found=true - AC_MSG_RESULT([yes]) diff --git a/dns/powerdns/files/patch-m4_pdns__with__lua.m4 b/dns/powerdns/files/patch-m4_pdns__with__lua.m4 deleted file mode 100644 index bafc55a676d8..000000000000 --- a/dns/powerdns/files/patch-m4_pdns__with__lua.m4 +++ /dev/null @@ -1,11 +0,0 @@ ---- m4/pdns_with_lua.m4.orig 2025-09-05 09:28:15 UTC -+++ m4/pdns_with_lua.m4 -@@ -40,7 +40,7 @@ AC_DEFUN([PDNS_WITH_LUA],[ - ], [ : ]) - AS_IF([test -z "$LUAPC"], [ - found_lua=n -- m4_foreach_w([luapc], [lua5.3 lua-5.3 lua53 lua5.2 lua-5.2 lua52 lua5.1 lua-5.1 lua51 lua], [ -+ m4_foreach_w([luapc], [lua5.4 lua5.3 lua-5.4 lua-5.3 lua54 lua53 lua5.2 lua-5.2 lua52 lua5.1 lua-5.1 lua51 lua], [ - AS_IF([test "$found_lua" != "y"], [ - PKG_CHECK_MODULES([LUA], [luapc >= ${lua_min_version}], [ - AC_DEFINE([HAVE_LUA], [1], [Define to 1 if you have lua])home | help
Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?6a4261f1.1d0ba.270ab0b6>
