--- Makefile (revision 519585) +++ Makefile (working copy) @@ -1,7 +1,7 @@ # $FreeBSD$ PORTNAME= powerdns -DISTVERSION= 4.2.0 +DISTVERSION= 4.2.1 CATEGORIES= dns MASTER_SITES= https://downloads.powerdns.com/releases/ DISTNAME= pdns-${DISTVERSION} @@ -68,7 +68,7 @@ LUABACKEND_VARS= MODULES+=lua2 -LUAJIT_LIB_DEPENDS= libluajit-5.1.so.2:lang/luajit +LUAJIT_LIB_DEPENDS= libluajit-5.1.so.2:lang/luajit-openresty LUAJIT_USES_OFF= lua LUAJIT_CONFIGURE_ON= --with-lua=luajit @@ -125,7 +125,7 @@ post-install:: @${MKDIR} ${STAGEDIR}${EXAMPLESDIR} - @${STAGEDIR}${LOCALBASE}/sbin/pdns_server --module-dir=${STAGEDIR}${LOCALBASE}/lib/pdns --launch="pipe bind ${MODULES}" --config > ${STAGEDIR}${EXAMPLESDIR}/pdns.conf + @${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 .include --- distinfo (revision 519585) +++ distinfo (working copy) @@ -1,3 +1,3 @@ -TIMESTAMP = 1567076172 -SHA256 (pdns-4.2.0.tar.bz2) = 222007f25e25aad71ac7d8b7f1797a4bcb30781e456d74ed00396e53828a903a -SIZE (pdns-4.2.0.tar.bz2) = 1249282 +TIMESTAMP = 1575879679 +SHA256 (pdns-4.2.1.tar.bz2) = f65019986b8fcbb1c6fffebcded04b2b397b84395830f4c63e8d119bcfa1aa28 +SIZE (pdns-4.2.1.tar.bz2) = 1252829 --- files/patch-configure (revision 519585) +++ files/patch-configure (working copy) @@ -1,6 +1,6 @@ ---- configure.orig 2019-03-22 11:48:09 UTC +--- configure.orig 2019-11-29 19:23:06 UTC +++ configure -@@ -18170,8 +18170,10 @@ fi +@@ -19757,8 +19757,10 @@ fi { $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 --- files/patch-fix_memleak_bindbackend (nonexistent) +++ files/patch-fix_memleak_bindbackend (working copy) @@ -0,0 +1,80 @@ +------------------------------------------------------------------------------------------ +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; + }; +