git: 440d8725ca33 - main - dns/powerdns-recursor: Update to 4.7.0

From: Nuno Teixeira <eduardo_at_FreeBSD.org>
Date: Sat, 04 Jun 2022 20:30:18 UTC
The branch main has been updated by eduardo:

URL: https://cgit.FreeBSD.org/ports/commit/?id=440d8725ca33d43e77d2826f7418fa49fcf793d4

commit 440d8725ca33d43e77d2826f7418fa49fcf793d4
Author:     Ralf van der Enden <tremere@cainites.net>
AuthorDate: 2022-06-04 20:26:14 +0000
Commit:     Nuno Teixeira <eduardo@FreeBSD.org>
CommitDate: 2022-06-04 20:29:52 +0000

    dns/powerdns-recursor: Update to 4.7.0
    
    ChangeLog: https://blog.powerdns.com/2022/05/30/powerdns-recursor-4-7-0-released/
    
    PR:             264427
---
 dns/powerdns-recursor/Makefile                     |   7 +-
 dns/powerdns-recursor/distinfo                     |   6 +-
 dns/powerdns-recursor/files/patch-credentials.cc   | 101 ---------------------
 dns/powerdns-recursor/files/patch-pdns_recursor.cc |  17 ----
 dns/powerdns-recursor/files/patch-rec-main.cc      |  18 ++++
 5 files changed, 24 insertions(+), 125 deletions(-)

diff --git a/dns/powerdns-recursor/Makefile b/dns/powerdns-recursor/Makefile
index be0e030a0d7b..1fddfadafd7c 100644
--- a/dns/powerdns-recursor/Makefile
+++ b/dns/powerdns-recursor/Makefile
@@ -1,8 +1,7 @@
 # Created by: sten@blinkenlights.nl
 
 PORTNAME=	recursor
-DISTVERSION=	4.6.2
-PORTREVISION=	1
+DISTVERSION=	4.7.0
 CATEGORIES=	dns
 MASTER_SITES=	http://downloads.powerdns.com/releases/
 PKGNAMEPREFIX=	powerdns-
@@ -31,9 +30,9 @@ USE_RC_SUBR=	pdns-recursor
 
 GNU_CONFIGURE=	YES
 CONFIGURE_ARGS=	--sysconfdir=${PREFIX}/etc/pdns \
+		--with-libsodium=no \
 		--without-net-snmp \
-		--without-systemd \
-		--with-libsodium=no
+		--without-systemd
 
 SUB_FILES=	pkg-message
 
diff --git a/dns/powerdns-recursor/distinfo b/dns/powerdns-recursor/distinfo
index f046bdde91f0..a9ce338c1e79 100644
--- a/dns/powerdns-recursor/distinfo
+++ b/dns/powerdns-recursor/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1649243394
-SHA256 (pdns-recursor-4.6.2.tar.bz2) = da649850739fdd7baf2df645acc97752ccd390973b56b8e25171ea7b0d25ad20
-SIZE (pdns-recursor-4.6.2.tar.bz2) = 1552587
+TIMESTAMP = 1653936202
+SHA256 (pdns-recursor-4.7.0.tar.bz2) = e4872a1b11a35fc363f354d69ccb4ec88047bfc7d9308087497dc2ad3af3498c
+SIZE (pdns-recursor-4.7.0.tar.bz2) = 1596954
diff --git a/dns/powerdns-recursor/files/patch-credentials.cc b/dns/powerdns-recursor/files/patch-credentials.cc
deleted file mode 100644
index 4d71e65ad7aa..000000000000
--- a/dns/powerdns-recursor/files/patch-credentials.cc
+++ /dev/null
@@ -1,101 +0,0 @@
---- credentials.cc.orig	2021-11-23 18:39:17 UTC
-+++ credentials.cc
-@@ -28,7 +28,7 @@
- #include <sodium.h>
- #endif
- 
--#ifdef HAVE_EVP_PKEY_CTX_SET1_SCRYPT_SALT
-+#if defined(HAVE_EVP_PKEY_CTX_SET1_SCRYPT_SALT) && defined(EVP_PKEY_SCRYPT)
- #include <openssl/evp.h>
- #include <openssl/kdf.h>
- #include <openssl/rand.h>
-@@ -42,7 +42,7 @@
- #include "credentials.hh"
- #include "misc.hh"
- 
--#ifdef HAVE_EVP_PKEY_CTX_SET1_SCRYPT_SALT
-+#if defined(HAVE_EVP_PKEY_CTX_SET1_SCRYPT_SALT) && defined(EVP_PKEY_SCRYPT)
- static size_t const pwhash_max_size = 128U; /* maximum size of the output */
- static size_t const pwhash_output_size = 32U; /* size of the hashed output (before base64 encoding) */
- static unsigned int const pwhash_salt_size = 16U; /* size of the salt (before base64 encoding */
-@@ -95,7 +95,7 @@ void SensitiveData::clear()
- 
- static std::string hashPasswordInternal(const std::string& password, const std::string& salt, uint64_t workFactor, uint64_t parallelFactor, uint64_t blockSize)
- {
--#ifdef HAVE_EVP_PKEY_CTX_SET1_SCRYPT_SALT
-+#if defined(HAVE_EVP_PKEY_CTX_SET1_SCRYPT_SALT) && defined(EVP_PKEY_SCRYPT)
-   auto pctx = std::unique_ptr<EVP_PKEY_CTX, void (*)(EVP_PKEY_CTX*)>(EVP_PKEY_CTX_new_id(EVP_PKEY_SCRYPT, nullptr), EVP_PKEY_CTX_free);
-   if (!pctx) {
-     throw std::runtime_error("Error getting a scrypt context to hash the supplied password");
-@@ -142,7 +142,7 @@ static std::string hashPasswordInternal(const std::str
- 
- static std::string generateRandomSalt()
- {
--#ifdef HAVE_EVP_PKEY_CTX_SET1_SCRYPT_SALT
-+#if defined(HAVE_EVP_PKEY_CTX_SET1_SCRYPT_SALT) && defined(EVP_PKEY_SCRYPT)
-   /* generate a random salt */
-   std::string salt;
-   salt.resize(pwhash_salt_size);
-@@ -159,7 +159,7 @@ static std::string generateRandomSalt()
- 
- std::string hashPassword(const std::string& password, uint64_t workFactor, uint64_t parallelFactor, uint64_t blockSize)
- {
--#ifdef HAVE_EVP_PKEY_CTX_SET1_SCRYPT_SALT
-+#if defined(HAVE_EVP_PKEY_CTX_SET1_SCRYPT_SALT) && defined(EVP_PKEY_SCRYPT)
-   std::string result;
-   result.reserve(pwhash_max_size);
- 
-@@ -187,7 +187,7 @@ std::string hashPassword(const std::string& password, 
- 
- std::string hashPassword(const std::string& password)
- {
--#ifdef HAVE_EVP_PKEY_CTX_SET1_SCRYPT_SALT
-+#if defined(HAVE_EVP_PKEY_CTX_SET1_SCRYPT_SALT) && defined(EVP_PKEY_SCRYPT)
-   return hashPassword(password, CredentialsHolder::s_defaultWorkFactor, CredentialsHolder::s_defaultParallelFactor, CredentialsHolder::s_defaultBlockSize);
- #else
-   throw std::runtime_error("Hashing a password requires scrypt support in OpenSSL, and it is not available");
-@@ -196,7 +196,7 @@ std::string hashPassword(const std::string& password)
- 
- bool verifyPassword(const std::string& binaryHash, const std::string& salt, uint64_t workFactor, uint64_t parallelFactor, uint64_t blockSize, const std::string& binaryPassword)
- {
--#ifdef HAVE_EVP_PKEY_CTX_SET1_SCRYPT_SALT
-+#if defined(HAVE_EVP_PKEY_CTX_SET1_SCRYPT_SALT) && defined(EVP_PKEY_SCRYPT)
-   auto expected = hashPasswordInternal(binaryPassword, salt, workFactor, parallelFactor, blockSize);
-   return constantTimeStringEquals(expected, binaryHash);
- #else
-@@ -207,7 +207,7 @@ bool verifyPassword(const std::string& binaryHash, con
- /* parse a hashed password in PHC string format */
- static void parseHashed(const std::string& hash, std::string& salt, std::string& hashedPassword, uint64_t& workFactor, uint64_t& parallelFactor, uint64_t& blockSize)
- {
--#ifdef HAVE_EVP_PKEY_CTX_SET1_SCRYPT_SALT
-+#if defined(HAVE_EVP_PKEY_CTX_SET1_SCRYPT_SALT) && defined(EVP_PKEY_SCRYPT)
-   auto parametersEnd = hash.find('$', pwhash_prefix.size());
-   if (parametersEnd == std::string::npos || parametersEnd == hash.size()) {
-     throw std::runtime_error("Invalid hashed password format, no parameters");
-@@ -276,7 +276,7 @@ bool verifyPassword(const std::string& hash, const std
-     return false;
-   }
- 
--#ifdef HAVE_EVP_PKEY_CTX_SET1_SCRYPT_SALT
-+#if defined(HAVE_EVP_PKEY_CTX_SET1_SCRYPT_SALT) && defined(EVP_PKEY_SCRYPT)
-   std::string salt;
-   std::string hashedPassword;
-   uint64_t workFactor = 0;
-@@ -294,7 +294,7 @@ bool verifyPassword(const std::string& hash, const std
- 
- bool isPasswordHashed(const std::string& password)
- {
--#ifdef HAVE_EVP_PKEY_CTX_SET1_SCRYPT_SALT
-+#if defined(HAVE_EVP_PKEY_CTX_SET1_SCRYPT_SALT) && defined(EVP_PKEY_SCRYPT)
-   if (password.size() < pwhash_prefix_size || password.size() > pwhash_max_size) {
-     return false;
-   }
-@@ -389,7 +389,7 @@ bool CredentialsHolder::matches(const std::string& pas
- 
- bool CredentialsHolder::isHashingAvailable()
- {
--#ifdef HAVE_EVP_PKEY_CTX_SET1_SCRYPT_SALT
-+#if defined(HAVE_EVP_PKEY_CTX_SET1_SCRYPT_SALT) && defined(EVP_PKEY_SCRYPT)
-   return true;
- #else
-   return false;
diff --git a/dns/powerdns-recursor/files/patch-pdns_recursor.cc b/dns/powerdns-recursor/files/patch-pdns_recursor.cc
deleted file mode 100644
index 0fbc96f172e0..000000000000
--- a/dns/powerdns-recursor/files/patch-pdns_recursor.cc
+++ /dev/null
@@ -1,17 +0,0 @@
---- pdns_recursor.cc.orig	2020-05-08 09:31:59 UTC
-+++ pdns_recursor.cc
-@@ -4640,12 +4640,12 @@ int main(int argc, char **argv)
- #define SYSTEMD_SETID_MSG ". When running inside systemd, use the User and Group settings in the unit-file!"
-         SYSTEMD_SETID_MSG
- #endif
--        )="";
-+        )="pdns";
-     ::arg().set("setuid","If set, change user id to this uid for more security"
- #ifdef HAVE_SYSTEMD
-         SYSTEMD_SETID_MSG
- #endif
--        )="";
-+        )="pdns_recursor";
-     ::arg().set("network-timeout", "Wait this number of milliseconds for network i/o")="1500";
-     ::arg().set("threads", "Launch this number of threads")="2";
-     ::arg().set("distributor-threads", "Launch this number of distributor threads, distributing queries to other threads")="0";
diff --git a/dns/powerdns-recursor/files/patch-rec-main.cc b/dns/powerdns-recursor/files/patch-rec-main.cc
new file mode 100644
index 000000000000..c6e7894e1e9a
--- /dev/null
+++ b/dns/powerdns-recursor/files/patch-rec-main.cc
@@ -0,0 +1,18 @@
+--- rec-main.cc.orig	2022-05-29 14:07:40 UTC
++++ rec-main.cc
+@@ -2309,13 +2309,13 @@ int main(int argc, char** argv)
+                 SYSTEMD_SETID_MSG
+ #endif
+                 )
+-      = "";
++      = "pdns";
+     ::arg().set("setuid", "If set, change user id to this uid for more security"
+ #ifdef HAVE_SYSTEMD
+                 SYSTEMD_SETID_MSG
+ #endif
+                 )
+-      = "";
++      = "pdns_recursor";
+     ::arg().set("network-timeout", "Wait this number of milliseconds for network i/o") = "1500";
+     ::arg().set("threads", "Launch this number of threads") = "2";
+     ::arg().set("distributor-threads", "Launch this number of distributor threads, distributing queries to other threads") = "0";