pkgsrc-WIP-changes archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
powerdns: Upgrade to version 4.9.9
Module Name: pkgsrc-wip
Committed By: Marcin Gondek <drixter%e-utp.net@localhost>
Pushed By: drixter
Date: Thu Sep 25 08:29:05 2025 +0200
Changeset: c8b8aaa9ca74dbf9ae2b56360a754499622c198c
Modified Files:
Makefile
Added Files:
powerdns/COMMIT_MSG
powerdns/DESCR
powerdns/Makefile
powerdns/Makefile.common
powerdns/PLIST
powerdns/backend.mk
powerdns/distinfo
powerdns/files/pdns.sh
powerdns/files/smf/manifest.xml
powerdns/options.mk
powerdns/patches/patch-configure
powerdns/patches/patch-pdns_dnsscope.cc
powerdns/patches/patch-pdns_misc.hh
powerdns/patches/patch-pdns_qtype.hh
powerdns/patches/patch-pdns_version.cc
Log Message:
powerdns: Upgrade to version 4.9.9
To see a diff of this commit:
https://wip.pkgsrc.org/cgi-bin/gitweb.cgi?p=pkgsrc-wip.git;a=commitdiff;h=c8b8aaa9ca74dbf9ae2b56360a754499622c198c
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
diffstat:
Makefile | 1 +
powerdns/COMMIT_MSG | 13 +++++
powerdns/DESCR | 9 ++++
powerdns/Makefile | 28 +++++++++++
powerdns/Makefile.common | 32 +++++++++++++
powerdns/PLIST | 61 ++++++++++++++++++++++++
powerdns/backend.mk | 23 +++++++++
powerdns/distinfo | 10 ++++
powerdns/files/pdns.sh | 19 ++++++++
powerdns/files/smf/manifest.xml | 29 ++++++++++++
powerdns/options.mk | 26 ++++++++++
powerdns/patches/patch-configure | 84 +++++++++++++++++++++++++++++++++
powerdns/patches/patch-pdns_dnsscope.cc | 21 +++++++++
powerdns/patches/patch-pdns_misc.hh | 16 +++++++
powerdns/patches/patch-pdns_qtype.hh | 17 +++++++
powerdns/patches/patch-pdns_version.cc | 15 ++++++
16 files changed, 404 insertions(+)
diffs:
diff --git a/Makefile b/Makefile
index 52cd698952..c59aecdbb7 100644
--- a/Makefile
+++ b/Makefile
@@ -3312,6 +3312,7 @@ SUBDIR+= postoffice
SUBDIR+= pounce
SUBDIR+= povray
SUBDIR+= powerdevil
+SUBDIR+= powerdns
SUBDIR+= powerdns-recursor52
SUBDIR+= powerdns-recursor53
SUBDIR+= powerlevel10k
diff --git a/powerdns/COMMIT_MSG b/powerdns/COMMIT_MSG
new file mode 100644
index 0000000000..2545d084ae
--- /dev/null
+++ b/powerdns/COMMIT_MSG
@@ -0,0 +1,13 @@
+powerdns: Upgrade to version 4.9.9
+
+Changelogs for 4.9.x
+4.9.9
+Released: 24th of September 2025
+This is release 4.9.9 of the Authoritative Server. It contains a minor feature and a few fixes.
+Please review the Upgrade Notes before upgrading from versions < 4.9.x.
+memory corruption in ODBC plus tweaks to appease coverity
+References: pull request 16158
+Fix EDNS Cookie & Proxy protocol
+References: pull request 16157
+lmdb: optional memory-only notification timestamps (lmdb-write-notification-update)
+References: pull request 16154
diff --git a/powerdns/DESCR b/powerdns/DESCR
new file mode 100644
index 0000000000..f632b69820
--- /dev/null
+++ b/powerdns/DESCR
@@ -0,0 +1,9 @@
+The PowerDNS nameserver is a modern, advanced and high performance
+authoritative-only nameserver. It is written from scratch and conforms
+to all the relevant DNS standards documents. PowerDNS is open source.
+
+The PowerDNS nameserver utilizes a flexible backend architecture that
+can access DNS information from any data source. This includes file
+formats, Bind zone files, relational databases or LDAP directories.
+
+See the net/powerdns-* packages for additional backend modules.
diff --git a/powerdns/Makefile b/powerdns/Makefile
new file mode 100644
index 0000000000..6c3e6bb419
--- /dev/null
+++ b/powerdns/Makefile
@@ -0,0 +1,28 @@
+# $NetBSD: Makefile,v 1.87 2025/06/30 11:00:50 jperkin Exp $
+
+.include "Makefile.common"
+
+PKGNAME= ${DISTNAME:S/pdns/powerdns/}
+COMMENT= Modern, advanced and high performance nameserver
+
+PDNS_MODULES+= bind pipe remote
+
+.include "options.mk"
+
+CONFIGURE_ARGS+= --enable-lua-records
+CONFIGURE_ARGS+= --enable-tools
+CONFIGURE_ARGS+= --with-dynmodules=no
+CONFIGURE_ARGS+= --with-modules="${PDNS_MODULES}"
+
+RCD_SCRIPTS= pdns
+SMF_NAME= pdns
+
+EGDIR= ${PREFIX}/share/examples/pdns
+
+CONF_FILES+= ${EGDIR}/pdns.conf-dist ${PKG_SYSCONFDIR}/pdns.conf
+
+LDFLAGS.SunOS+= -lsocket -lnsl
+
+INSTALL_MAKE_FLAGS+= sysconfdir=${EGDIR}
+
+.include "../../mk/bsd.pkg.mk"
diff --git a/powerdns/Makefile.common b/powerdns/Makefile.common
new file mode 100644
index 0000000000..f6dd81ff2c
--- /dev/null
+++ b/powerdns/Makefile.common
@@ -0,0 +1,32 @@
+# $NetBSD: Makefile.common,v 1.42 2025/09/22 10:51:56 wiz Exp $
+# used by net/powerdns/backend.mk
+
+PDNS_VERSION= 4.9.9
+DISTNAME= pdns-${PDNS_VERSION}
+CATEGORIES= net
+MASTER_SITES= http://downloads.powerdns.com/releases/
+EXTRACT_SUFX= .tar.bz2
+
+MAINTAINER?= pkgsrc-users%NetBSD.org@localhost
+HOMEPAGE= https://www.powerdns.com/
+LICENSE= gnu-gpl-v2
+
+TOOL_DEPENDS+= ragel-[0-9]*:../../devel/ragel
+
+USE_LANGUAGES= c c++
+USE_LIBTOOL= yes
+USE_TOOLS+= bison flex gmake pkg-config
+GNU_CONFIGURE= yes
+CONFIGURE_ARGS+= --with-boost=${BUILDLINK_PREFIX.boost-headers}
+CONFIGURE_ARGS+= --with-lua=lua-${LUA_VERSION_MAJOR}.${LUA_VERSION_MINOR}
+
+USE_CXX_FEATURES+= c++17 filesystem
+
+.include "../../devel/boost-headers/buildlink3.mk"
+.include "../../devel/boost-libs/buildlink3.mk"
+.include "../../lang/lua/buildlink3.mk"
+.include "../../security/openssl/buildlink3.mk"
+.include "../../www/curl/buildlink3.mk"
+.include "../../mk/dlopen.buildlink3.mk"
+.include "../../mk/pthread.buildlink3.mk"
+.include "../../mk/atomic64.mk"
diff --git a/powerdns/PLIST b/powerdns/PLIST
new file mode 100644
index 0000000000..76ee0e4490
--- /dev/null
+++ b/powerdns/PLIST
@@ -0,0 +1,61 @@
+@comment $NetBSD: PLIST,v 1.18 2025/06/30 11:00:50 jperkin Exp $
+bin/calidns
+bin/dnsbulktest
+bin/dnsgram
+bin/dnspcap2calidns
+bin/dnspcap2protobuf
+bin/dnsreplay
+bin/dnsscan
+bin/dnsscope
+bin/dnstcpbench
+bin/dnswasher
+bin/dumresp
+bin/ixplore
+bin/nproxy
+bin/nsec3dig
+bin/pdns_control
+bin/pdns_notify
+bin/pdnsutil
+bin/saxfr
+bin/sdig
+bin/stubquery
+bin/zone2json
+bin/zone2sql
+lib/pdns/libbindbackend.la
+${PLIST.sqlite}lib/pdns/libgsqlite3backend.la
+lib/pdns/libpipebackend.la
+lib/pdns/libremotebackend.la
+man/man1/calidns.1
+man/man1/dnsbulktest.1
+man/man1/dnsgram.1
+man/man1/dnspcap2calidns.1
+man/man1/dnspcap2protobuf.1
+man/man1/dnsreplay.1
+man/man1/dnsscan.1
+man/man1/dnsscope.1
+man/man1/dnstcpbench.1
+man/man1/dnswasher.1
+man/man1/dumresp.1
+man/man1/ixplore.1
+man/man1/nproxy.1
+man/man1/nsec3dig.1
+man/man1/pdns_control.1
+man/man1/pdns_notify.1
+man/man1/pdns_server.1
+man/man1/pdnsutil.1
+man/man1/saxfr.1
+man/man1/sdig.1
+man/man1/zone2json.1
+man/man1/zone2sql.1
+sbin/pdns_server
+${PLIST.sqlite}share/doc/pdns/3.4.0_to_4.0.0_schema.sqlite3.sql
+${PLIST.sqlite}share/doc/pdns/4.0.0_to_4.2.0_schema.sqlite3.sql
+${PLIST.sqlite}share/doc/pdns/4.2.0_to_4.3.0_schema.sqlite3.sql
+${PLIST.sqlite}share/doc/pdns/4.3.0_to_4.3.1_schema.sqlite3.sql
+${PLIST.sqlite}share/doc/pdns/4.3.1_to_4.7.0_schema.sqlite3.sql
+share/doc/pdns/bind-dnssec.4.2.0_to_4.3.0_schema.sqlite3.sql
+share/doc/pdns/bind-dnssec.schema.sqlite3.sql
+${PLIST.sqlite}share/doc/pdns/dnssec-3.x_to_3.4.0_schema.sqlite3.sql
+${PLIST.sqlite}share/doc/pdns/nodnssec-3.x_to_3.4.0_schema.sqlite3.sql
+${PLIST.sqlite}share/doc/pdns/schema.sqlite3.sql
+share/examples/pdns/pdns.conf-dist
diff --git a/powerdns/backend.mk b/powerdns/backend.mk
new file mode 100644
index 0000000000..8a1c07f626
--- /dev/null
+++ b/powerdns/backend.mk
@@ -0,0 +1,23 @@
+# $NetBSD: backend.mk,v 1.1 2025/06/30 11:00:50 jperkin Exp $
+# used by net/powerdns-geoip/Makefile
+# used by net/powerdns-ldap/Makefile
+# used by net/powerdns-mysql/Makefile
+# used by net/powerdns-odbc/Makefile
+# used by net/powerdns-pgsql/Makefile
+
+.include "../../net/powerdns/Makefile.common"
+
+DEPENDS+= powerdns>=${PDNS_VERSION}:../../net/powerdns
+
+DISTINFO_FILE= ${.CURDIR}/../../net/powerdns/distinfo
+PATCHDIR= ${.CURDIR}/../../net/powerdns/patches
+
+CONFIGURE_ARGS+= --disable-lua-records
+CONFIGURE_ARGS+= --disable-pdns_server
+CONFIGURE_ARGS+= --with-modules=""
+
+BUILD_DIRS= modules
+
+# These are required by configure, but not used by the modules
+BUILDLINK_DEPMETHOD.boost-libs= build
+BUILDLINK_DEPMETHOD.openssl= build
diff --git a/powerdns/distinfo b/powerdns/distinfo
new file mode 100644
index 0000000000..2bf298fc2a
--- /dev/null
+++ b/powerdns/distinfo
@@ -0,0 +1,10 @@
+$NetBSD: distinfo,v 1.53 2025/09/22 10:51:56 wiz Exp $
+
+BLAKE2s (pdns-4.9.9.tar.bz2) = 34e2d674c57a3b75511c7233cb52bc2422cfee8d948c270b38416601ab3c3fcc
+SHA512 (pdns-4.9.9.tar.bz2) = e7375c90196fdfc5b9bb5ac5e9b0ba444f8db0072fd865c237384966ce3934533f51a1f824fc607090c1ac808ad4f413b7f6bba90c36e2e4f7c24da5575fd0fd
+Size (pdns-4.9.9.tar.bz2) = 1379076 bytes
+SHA1 (patch-configure) = 9049a1b7edde25fd2304632af338999c32ee7596
+SHA1 (patch-pdns_dnsscope.cc) = 221b860350acad10e0d2f1a854d7930819a598de
+SHA1 (patch-pdns_misc.hh) = ffc2eea374157e25cae17743db900ff6e3101a66
+SHA1 (patch-pdns_qtype.hh) = 4d086e28e7bacc624cf7db199ac16ebafec88e04
+SHA1 (patch-pdns_version.cc) = 0e089c41260546e9ef9647eeb162becf158873d9
diff --git a/powerdns/files/pdns.sh b/powerdns/files/pdns.sh
new file mode 100644
index 0000000000..1f1facb1c8
--- /dev/null
+++ b/powerdns/files/pdns.sh
@@ -0,0 +1,19 @@
+#!@RCD_SCRIPTS_SHELL@
+#
+# $NetBSD: pdns.sh,v 1.2 2020/09/24 19:09:53 otis Exp $
+#
+
+# PROVIDE: pdns
+# REQUIRE: DAEMON
+
+. /etc/rc.subr
+
+name="pdns"
+rcvar=$name
+command="@PREFIX@/sbin/pdns_server"
+command_args="--daemon=yes"
+pidfile=/var/run/${name}/${name}.pid
+required_files="@PKG_SYSCONFDIR@/pdns.conf"
+
+load_rc_config $name
+run_rc_command "$1"
diff --git a/powerdns/files/smf/manifest.xml b/powerdns/files/smf/manifest.xml
new file mode 100644
index 0000000000..aa45d6738d
--- /dev/null
+++ b/powerdns/files/smf/manifest.xml
@@ -0,0 +1,29 @@
+<?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" 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@/sbin/pdns_server --daemon=yes" timeout_seconds="60" />
+ <exec_method type="method" name="stop" exec=":kill" timeout_seconds="60" />
+ <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@/pdns.conf" />
+ </property_group>
+ <template>
+ <common_name>
+ <loctext xml:lang="C">PowerDNS server service</loctext>
+ </common_name>
+ </template>
+ </service>
+</service_bundle>
diff --git a/powerdns/options.mk b/powerdns/options.mk
new file mode 100644
index 0000000000..7f2a6c100e
--- /dev/null
+++ b/powerdns/options.mk
@@ -0,0 +1,26 @@
+# $NetBSD: options.mk,v 1.11 2025/06/30 11:00:50 jperkin Exp $
+
+PKG_OPTIONS_VAR= PKG_OPTIONS.powerdns
+PKG_SUPPORTED_OPTIONS= botan sqlite zeromq
+
+.include "../../mk/bsd.options.mk"
+
+PLIST_VARS+= sqlite
+
+.if !empty(PKG_OPTIONS:Mbotan)
+.include "../../devel/gmp/buildlink3.mk"
+.include "../../security/botan2/buildlink3.mk"
+.endif
+
+.if !empty(PKG_OPTIONS:Msqlite)
+PDNS_MODULES+= gsqlite3
+PLIST.sqlite= yes
+.include "../../databases/sqlite3/buildlink3.mk"
+.endif
+
+.if !empty(PKG_OPTIONS:Mzeromq)
+CONFIGURE_ARGS+= --enable-remotebackend-zeromq=yes
+.include "../../net/zeromq/buildlink3.mk"
+.else
+CONFIGURE_ARGS+= --enable-remotebackend-zeromq=no
+.endif
diff --git a/powerdns/patches/patch-configure b/powerdns/patches/patch-configure
new file mode 100644
index 0000000000..da3d385f23
--- /dev/null
+++ b/powerdns/patches/patch-configure
@@ -0,0 +1,84 @@
+$NetBSD: patch-configure,v 1.14 2025/07/24 07:50:01 wiz Exp $
+
+Fix unportable test(1) operator.
+
+--- configure.orig 2025-07-24 07:47:20.356946188 +0000
++++ configure
+@@ -22199,12 +22199,12 @@ fi
+ then :
+
+
+- if test "x$enable_fortify_source" == "xauto"
++ if test "x$enable_fortify_source" = "xauto"
+ then :
+ enable_fortify_source=3
+ fi
+
+- if test "x$enable_fortify_source" == "x3"
++ if test "x$enable_fortify_source" = "x3"
+ then :
+
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether C++ compiler handles -D_FORTIFY_SOURCE=3" >&5
+@@ -22253,7 +22253,7 @@ fi
+
+ fi
+
+- if test "x$enable_fortify_source" == "x2"
++ if test "x$enable_fortify_source" = "x2"
+ then :
+
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether C++ compiler handles -D_FORTIFY_SOURCE=2" >&5
+@@ -22302,7 +22302,7 @@ fi
+
+ fi
+
+- if test "x$enable_fortify_source" == "x1"
++ if test "x$enable_fortify_source" = "x1"
+ then :
+
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether C++ compiler handles -D_FORTIFY_SOURCE=1" >&5
+@@ -27378,7 +27378,7 @@ fi
+ if test "x$PG_CONFIG" != "x" -o "x$PGSQL_LIBS" = "x"
+ then :
+
+- if test "x$PG_CONFIG" == "x"
++ if test "x$PG_CONFIG" = "x"
+ then :
+
+ # Extract the first word of "pg_config", so it can be a program name with args.
+@@ -27428,7 +27428,7 @@ fi
+
+
+ fi
+- if test "x$PG_CONFIG" == "x"
++ if test "x$PG_CONFIG" = "x"
+ then :
+
+ as_fn_error $? "Can not find pg_config, use --with-pg-config to specify the path to pg_config" "$LINENO" 5
+@@ -31468,7 +31468,7 @@ fi
+ then :
+
+
+- if test "x$enable_lto" == "xthin"
++ if test "x$enable_lto" = "xthin"
+ then :
+
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether C++ compiler handles -flto=thin" >&5
+@@ -31518,7 +31518,7 @@ fi
+
+ fi
+
+- if test "x$enable_lto" == "xauto"
++ if test "x$enable_lto" = "xauto"
+ then :
+
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether C++ compiler handles -flto=auto" >&5
+@@ -31568,7 +31568,7 @@ fi
+
+ fi
+
+- if test "x$enable_lto" == "xyes"
++ if test "x$enable_lto" = "xyes"
+ then :
+
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether C++ compiler handles -flto" >&5
diff --git a/powerdns/patches/patch-pdns_dnsscope.cc b/powerdns/patches/patch-pdns_dnsscope.cc
new file mode 100644
index 0000000000..b16107227a
--- /dev/null
+++ b/powerdns/patches/patch-pdns_dnsscope.cc
@@ -0,0 +1,21 @@
+$NetBSD: patch-pdns_dnsscope.cc,v 1.4 2025/06/30 11:00:50 jperkin Exp $
+
+Support IP_OFFMASK on illumos.
+
+--- pdns/dnsscope.cc.orig 2025-06-20 13:58:07.364067810 +0000
++++ pdns/dnsscope.cc
+@@ -45,6 +45,14 @@
+ #include "dnsrecords.hh"
+ #include "statnode.hh"
+
++/*
++ * illumos defines this in netinet/ip_compat.h but that introduces many more
++ * complications so just define exactly what we need.
++ */
++#if defined(__illumos__) && !defined(IP_OFFMASK)
++#define IP_OFFMASK 0x1fff
++#endif
++
+ namespace po = boost::program_options;
+ po::variables_map g_vm;
+
diff --git a/powerdns/patches/patch-pdns_misc.hh b/powerdns/patches/patch-pdns_misc.hh
new file mode 100644
index 0000000000..43683a20fe
--- /dev/null
+++ b/powerdns/patches/patch-pdns_misc.hh
@@ -0,0 +1,16 @@
+$NetBSD: patch-pdns_misc.hh,v 1.3 2025/06/30 11:00:50 jperkin Exp $
+
+Checking for CLOCK_THREAD_CPUTIME_ID is sufficient, not all systems
+define _POSIX_THREAD_CPUTIME.
+
+--- pdns/misc.hh.orig 2025-06-20 13:40:32.920712323 +0000
++++ pdns/misc.hh
+@@ -187,7 +187,7 @@ string bitFlip(const string &str);
+ void dropPrivs(int uid, int gid);
+ void cleanSlashes(string &str);
+
+-#if defined(_POSIX_THREAD_CPUTIME) && defined(CLOCK_THREAD_CPUTIME_ID)
++#if defined(CLOCK_THREAD_CPUTIME_ID)
+ /** CPUTime measurements */
+ class CPUTime
+ {
diff --git a/powerdns/patches/patch-pdns_qtype.hh b/powerdns/patches/patch-pdns_qtype.hh
new file mode 100644
index 0000000000..9554d68c4f
--- /dev/null
+++ b/powerdns/patches/patch-pdns_qtype.hh
@@ -0,0 +1,17 @@
+$NetBSD: patch-pdns_qtype.hh,v 1.3 2025/06/30 11:00:50 jperkin Exp $
+
+Avoid symbol pollution on SunOS.
+
+--- pdns/qtype.hh.orig 2025-06-20 14:11:31.859917271 +0000
++++ pdns/qtype.hh
+@@ -26,6 +26,10 @@
+
+ #include "namespaces.hh"
+
++#if defined(__sun) && defined(DS)
++#undef DS
++#endif
++
+ /** The QType class is meant to deal easily with the different kind of resource types, like 'A', 'NS',
+ * 'CNAME' etcetera. These types have both a name and a number. This class can seamlessly move between
+ * them. Use it like this:
diff --git a/powerdns/patches/patch-pdns_version.cc b/powerdns/patches/patch-pdns_version.cc
new file mode 100644
index 0000000000..a9f8387ba2
--- /dev/null
+++ b/powerdns/patches/patch-pdns_version.cc
@@ -0,0 +1,15 @@
+$NetBSD: patch-pdns_version.cc,v 1.3 2025/06/30 11:00:50 jperkin Exp $
+
+Do not store configure args, as they contain workdir references.
+
+--- pdns/version.cc.orig 2025-05-07 09:29:28.000000000 +0000
++++ pdns/version.cc
+@@ -160,7 +160,7 @@ void showBuildConfiguration()
+ const auto& modules = BackendMakers().getModules();
+ g_log << Logger::Warning << "Loaded modules: " << boost::join(modules, " ") << endl;
+ #endif
+-#ifdef PDNS_CONFIG_ARGS
++#if 0
+ #define double_escape(s) #s
+ #define escape_quotes(s) double_escape(s)
+ g_log<<Logger::Warning<<"Configured with: "<<escape_quotes(PDNS_CONFIG_ARGS)<<endl;
Home |
Main Index |
Thread Index |
Old Index