diff --git a/dns/powerdns/Makefile b/dns/powerdns/Makefile index 116274e16d63..5ba71d23a5c8 100644 --- a/dns/powerdns/Makefile +++ b/dns/powerdns/Makefile @@ -1,8 +1,7 @@ # $FreeBSD$ PORTNAME= powerdns -DISTVERSION= 4.2.1 -PORTREVISION= 1 +DISTVERSION= 4.3.0 CATEGORIES= dns MASTER_SITES= https://downloads.powerdns.com/releases/ DISTNAME= pdns-${DISTVERSION} @@ -37,10 +36,10 @@ SCRIPTS_ENV= CURDIR2="${.CURDIR}" DISTNAME="${DISTNAME}" MKDIR="${MKDIR}" \ WRKDIRPREFIX="${WRKDIRPREFIX}" SUB_FILES= pkg-message -OPTIONS_DEFINE= DOCS EXAMPLES GEOIP LUABACKEND LUAJIT MYDNS \ - MYSQL OPENDBX OPENLDAP PGSQL PROTOBUF REMOTE \ +OPTIONS_DEFINE= DOCS EXAMPLES GEOIP LMDB LUABACKEND LUAJIT \ + MYSQL OPENLDAP PGSQL PROTOBUF REMOTE \ SQLITE3 TINYDNS TOOLS UNIXODBC -OPTIONS_DEFAULT= MYSQL PGSQL SQLITE3 +OPTIONS_DEFAULT= LMDB MYSQL PGSQL SQLITE3 OPTIONS_GROUP= GEOIPOPT REMOTEOPT OPTIONS_GROUP_REMOTEOPT= ZEROMQ @@ -48,11 +47,10 @@ OPTIONS_SUB= yes GEOIPOPT_DESC= GeoIP DB options GEOIP_DESC= GeoIP backend (GeoIP2 DB) +LMDB_DESC= LMDB backend LUABACKEND_DESC= Lua2 backend LUAJIT_DESC= Use LuaJIT instead of Lua -MYDNS_DESC= MyDNS backend MYSQL_DESC= MySQL backend -OPENDBX_DESC= OpenDBX backend OPENLDAP_DESC= OpenLDAP backend PGSQL_DESC= PostgreSQL backend PROTOBUF_DESC= Protobuf support @@ -67,24 +65,22 @@ GEOIP_LIB_DEPENDS= libmaxminddb.so:net/libmaxminddb \ libyaml-cpp.so:devel/yaml-cpp GEOIP_VARS= MODULES+=geoip +LMDB_LIB_DEPENDS= liblmdb.so:databases/lmdb +LMDB_CONFIGURE_OFF= --without-lmdb +LMDB_CONFIGURE_ON= --with-lmdb=${LOCALBASE} +LMDB_VARS= MODULES+=lmdb + LUABACKEND_VARS= MODULES+=lua2 LUAJIT_LIB_DEPENDS= libluajit-5.1.so.2:lang/luajit-openresty LUAJIT_USES_OFF= lua LUAJIT_CONFIGURE_ON= --with-lua=luajit -MYDNS_USES= mysql -MYDNS_CONFIGURE_ON= --with-mysql=${LOCALBASE} -MYDNS_VARS= MODULES+=mydns - MYSQL_USES= mysql MYSQL_CONFIGURE_OFF= --without-mysql MYSQL_CONFIGURE_ON= --with-mysql=${LOCALBASE} MYSQL_VARS= MODULES+=gmysql -OPENDBX_LIB_DEPENDS= libopendbx.so:databases/opendbx -OPENDBX_VARS= MODULES+=opendbx - OPENLDAP_USE= OPENLDAP=YES OPENLDAP_CXXFLAGS= -DLDAP_DEPRECATED=1 OPENLDAP_VARS= MODULES+=ldap @@ -125,7 +121,7 @@ LIB_DEPENDS+= libdecaf.so:security/libdecaf \ .endif post-install:: - @${MKDIR} ${STAGEDIR}${EXAMPLESDIR} + @${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 @${REINPLACE_CMD} -e 's;${STAGEDIR};;' -i '' ${STAGEDIR}${EXAMPLESDIR}/pdns.conf diff --git a/dns/powerdns/distinfo b/dns/powerdns/distinfo index b7431a3307d7..4105b4864188 100644 --- a/dns/powerdns/distinfo +++ b/dns/powerdns/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1575879679 -SHA256 (pdns-4.2.1.tar.bz2) = f65019986b8fcbb1c6fffebcded04b2b397b84395830f4c63e8d119bcfa1aa28 -SIZE (pdns-4.2.1.tar.bz2) = 1252829 +TIMESTAMP = 1588788036 +SHA256 (pdns-4.3.0.tar.bz2) = 6be2e70f100df6f32cb431d5f57ca0aabde1fba6c11d947eccc86d44bdf95d08 +SIZE (pdns-4.3.0.tar.bz2) = 1211536 diff --git a/dns/powerdns/files/patch-configure b/dns/powerdns/files/patch-configure index b2c9c59bbe06..0609f085515a 100644 --- a/dns/powerdns/files/patch-configure +++ b/dns/powerdns/files/patch-configure @@ -1,6 +1,6 @@ ---- configure.orig 2019-11-29 19:23:06 UTC -+++ configure -@@ -19757,8 +19757,10 @@ fi +--- configure.orig 2020-02-18 21:26:30.000000000 -0500 ++++ configure 2020-02-18 21:26:30.000000000 -0500 +@@ -19774,8 +19774,10 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for openssl/crypto.h in $ssldir" >&5 $as_echo_n "checking for openssl/crypto.h in $ssldir... " >&6; } if test -f "$ssldir/include/openssl/crypto.h"; then diff --git a/dns/powerdns/files/patch-fix_memleak_bindbackend b/dns/powerdns/files/patch-fix_memleak_bindbackend deleted file mode 100644 index 0da1f968f76d..000000000000 --- a/dns/powerdns/files/patch-fix_memleak_bindbackend +++ /dev/null @@ -1,80 +0,0 @@ ------------------------------------------------------------------------------------------- -bind backend: pthread_mutex_t should be inited and destroyed and not be copied #8350 - -To make our live easier, use a native C++ mutex. -Fixes #8161 - -https://github.com/PowerDNS/pdns/pull/8350 ------------------------------------------------------------------------------------------- ---- modules/bindbackend/bindbackend2.cc.orig 2019-11-29 15:11:44 UTC -+++ modules/bindbackend/bindbackend2.cc -@@ -80,6 +80,9 @@ pthread_mutex_t Bind2Backend::s_supermaster_config_loc - pthread_mutex_t Bind2Backend::s_startup_lock=PTHREAD_MUTEX_INITIALIZER; - string Bind2Backend::s_binddirectory; - -+template -+std::mutex LookButDontTouch::s_lock; -+ - BB2DomainInfo::BB2DomainInfo() - { - d_loaded=false; ---- modules/bindbackend/bindbackend2.hh.orig 2019-11-29 15:11:44 UTC -+++ modules/bindbackend/bindbackend2.hh -@@ -29,6 +29,7 @@ - #include - #include - #include -+#include - #include - - #include -@@ -103,22 +104,18 @@ template - class LookButDontTouch // : public boost::noncopyable - { - public: -- LookButDontTouch() -+ LookButDontTouch() - { -- pthread_mutex_init(&d_lock, 0); -- pthread_mutex_init(&d_swaplock, 0); - } - LookButDontTouch(shared_ptr records) : d_records(records) - { -- pthread_mutex_init(&d_lock, 0); -- pthread_mutex_init(&d_swaplock, 0); - } - - shared_ptr get() - { - shared_ptr ret; - { -- Lock l(&d_lock); -+ std::lock_guard lock(s_lock); - ret = d_records; - } - return ret; -@@ -128,22 +125,14 @@ class LookButDontTouch // : public boost::noncopyable - { - shared_ptr ret; - { -- Lock l(&d_lock); -+ std::lock_guard lock(s_lock); - ret = d_records; - } - return ret; - } - -- -- void swap(shared_ptr records) -- { -- Lock l(&d_lock); -- Lock l2(&d_swaplock); -- d_records.swap(records); -- } -- pthread_mutex_t d_lock; -- pthread_mutex_t d_swaplock; - private: -+ static std::mutex s_lock; - shared_ptr d_records; - }; - diff --git a/dns/powerdns/files/patch-pdns_dns__random.cc b/dns/powerdns/files/patch-pdns_dns__random.cc deleted file mode 100644 index 27df80423c0a..000000000000 --- a/dns/powerdns/files/patch-pdns_dns__random.cc +++ /dev/null @@ -1,12 +0,0 @@ ---- pdns/dns_random.cc.orig 2018-11-29 12:53:42 UTC -+++ pdns/dns_random.cc -@@ -40,7 +40,9 @@ - #include - #endif - #if defined(HAVE_GETRANDOM) -+extern "C" { - #include -+} - #endif - - static enum DNS_RNG { diff --git a/dns/powerdns/files/pdns.in b/dns/powerdns/files/pdns.in index f79c82f862d0..32c9ef8cce0d 100644 --- a/dns/powerdns/files/pdns.in +++ b/dns/powerdns/files/pdns.in @@ -21,18 +21,18 @@ name=pdns rcvar=pdns_enable -command=%%PREFIX%%/sbin/pdns_server - -# set defaults +load_rc_config ${name} pdns_enable=${pdns_enable:-"NO"} pdns_conf=${pdns_conf:-"%%PREFIX%%/etc/pdns/pdns.conf"} -pdns_flags=${pdns_flags:-"--daemon=yes --guardian=yes"} - -load_rc_config ${name} required_files=${pdns_conf} +pidfile=/var/run/pdns/pdns_server.pid + +command=%%PREFIX%%/sbin/pdns_server +command_args="--daemon --guardian" + monitor_cmd="${command} --daemon=no --guardian=no --control-console --loglevel=9" extra_commands="monitor" diff --git a/dns/powerdns/files/pkg-message.in b/dns/powerdns/files/pkg-message.in index 2ab12e27424f..54dfbc25c118 100644 --- a/dns/powerdns/files/pkg-message.in +++ b/dns/powerdns/files/pkg-message.in @@ -1,7 +1,8 @@ [ { type: install message: <