summaryrefslogtreecommitdiff
path: root/net-dns/dnsdist
diff options
context:
space:
mode:
Diffstat (limited to 'net-dns/dnsdist')
-rw-r--r--net-dns/dnsdist/Manifest3
-rw-r--r--net-dns/dnsdist/dnsdist-1.9.8-r2.ebuild (renamed from net-dns/dnsdist/dnsdist-1.9.8-r1.ebuild)5
-rw-r--r--net-dns/dnsdist/files/1.9.8-fix-compat-with-boost-lockfree-1.87.0.patch90
3 files changed, 96 insertions, 2 deletions
diff --git a/net-dns/dnsdist/Manifest b/net-dns/dnsdist/Manifest
index 64aef0c0824a..f821684c964c 100644
--- a/net-dns/dnsdist/Manifest
+++ b/net-dns/dnsdist/Manifest
@@ -1,3 +1,4 @@
+AUX 1.9.8-fix-compat-with-boost-lockfree-1.87.0.patch 4001 BLAKE2B 71faa8197304662847af92d634bedc14bea66fd7f031e9c9dc05e547fcf57004c90b125a50db51c56619159c5ff1673303fabcaf3593efe2946e5b98a3006260 SHA512 7ec3c9ee392a498b0903ed221969dd13850d8db782e81c67673590fb21b44e7b23d2649d0726af7fbdc0153456de0c8c62cf3201849900d61ba171aaed747bcf
AUX 1.9.8-quiche-0.23.patch 2511 BLAKE2B 716c858f51be62eccba712feb9ec6c22080ce78667d8ff65c0ebae46e00746da6af1961b718be3c5545f6ded877b23c065f4c12023531ce7a31e6480339b3ee7 SHA512 8ebc9eba5b33dd11e0ed7cfaee7c98efa1209af60bd930871f207db8575a6e76fc1786b10219439f5ce2110b9ab3e6cd6bf3a0dcecd53c715c7f966612a52e56
AUX dnsdist.conf.example 524 BLAKE2B e9d140129dfbd276d1fb927d73bee4e4c29920ae70d587765ea5d432f02694b1a8583340c2e14e191bbdf5ddd5b921274cb2336c3520839d7cfe6f399a4d6c26 SHA512 385bee5725d927feb50fc0f40cd48cd365a495e39c0d947aa53dc454d84b7fe3806cd1d206056c96d111e7251db2cda27570ff8154c70bed145d37bc7d1db01d
AUX dnsdist.confd 266 BLAKE2B c201b0aa3599ea7606e998348d777796ff391f3d4b0e46744160298456c86a9d9bbf65d1a339c0c13db4c796efb7c3adba01110882542fe501c735c9dd190f92 SHA512 935afc768ae56d017f6dee8bed7a3e92615055a0d4d2ae9980afef1b8f353da0e8bd6e20b914602e50b116ad33ef17ba05535b225af8b8da9ad005694edc071f
@@ -5,5 +6,5 @@ AUX dnsdist.initd 1337 BLAKE2B e2619182674439be6942a0a936208326c12cfc2839bba4fd6
DIST dnsdist-1.9.6.tar.bz2 1598874 BLAKE2B adb56707bb768ceae974cd9b725d2bf1f4beaa6e3edc6ede22a7d93920214614f10c82d71dbb773741f56dff04e0f0aa26dc0a0e2d5d405bee89d8ada1130303 SHA512 8d0c88336864b788df320298678e2a8556d7c4ff468ec1b4165b87c2fe5c6c167a2c75cdd2df433346fac12694d8e39d30910b8d1d4be7f35d9e0d85edd5ef5a
DIST dnsdist-1.9.8.tar.bz2 1593902 BLAKE2B 854344eb6b82f98001171830715fe5cf564628405b4c79c07b43fccdbca0a4c9da7e527a748bc2972261a32ed9c51582eac2e6fdbef5c25bd71b161318a62155 SHA512 b89bc1ba62a2cf009a305a71eaa2553810d6d5f25f71098cb34acd86bfe5632e5f9f4b5ce057ea93665f1f5dd65e6a3d67fa364e8cecf0b648559c73061baddd
EBUILD dnsdist-1.9.6.ebuild 2710 BLAKE2B 5148ee3d8471495e0b4aec5a69078afc2f4a931c1c223270b31b59ec98a26ba1dc27dcdc5b264e0bb6978d0f3bd8488c58cbbb18db43d691b0edd307833bb7cd SHA512 3ff14d72f3faf0f828c763b7cd980f51f5390fc34fb3d182cdaec49e2b611e8e0e4104a80dc6b3ee05c92b87cd47da42dad8ccd1733b66f9b0367280def31900
-EBUILD dnsdist-1.9.8-r1.ebuild 2816 BLAKE2B b9905719b8a60b10a421ab15319315bce05f32bdf8f6f263b9be7bb086b24750d90aa846a16fdf982a88a5d476b740b5aead909027a6e3c61158c95361a981b1 SHA512 995b8d9a777bfec1e75fb426eec6855be9ba684ed897f17976f871c70f95ead7766b8931a19038b287c011387826eb4a72f2e7193ac156e71fa9c84f8718c120
+EBUILD dnsdist-1.9.8-r2.ebuild 2882 BLAKE2B 43e9a0fa5b6f8c3fcd389a4845c45cc1b125382bbce3b56180f7f3263297671520efdfb143bc81488137bddf82885f9fe95af6a82a27747f63f9944f4bf463ec SHA512 407d7aa4a764a61dba34eb3d86cd1dd36040371b1740d97913f741c213d0a625588e203aa14c5e68d829d3dc083218c98468269ad5bfb50272f46fbcd353f812
MISC metadata.xml 1861 BLAKE2B c160b636f744acabe9ee303a60f8170bb5474d70e58b858e5585eb60e41b5b9d80f4e6cb8f49304b6ec7f11d0378332f8b9ebdd79d06d6d62cc9299b40e5e4ed SHA512 c034972452c33b6ded417772883af3d91f9b7f8f364fc9536337c91dbb23971592be082e8acac59d03b4b28779c081386e881085c5941b19d95ba3b3c544c65a
diff --git a/net-dns/dnsdist/dnsdist-1.9.8-r1.ebuild b/net-dns/dnsdist/dnsdist-1.9.8-r2.ebuild
index b51d68a3dba2..bebf3ec0d2ed 100644
--- a/net-dns/dnsdist/dnsdist-1.9.8-r1.ebuild
+++ b/net-dns/dnsdist/dnsdist-1.9.8-r2.ebuild
@@ -49,7 +49,10 @@ RDEPEND="acct-group/dnsdist
DEPEND="${RDEPEND}"
BDEPEND="virtual/pkgconfig"
-PATCHES=( "${FILESDIR}/1.9.8-quiche-0.23.patch" )
+PATCHES=(
+ "${FILESDIR}/1.9.8-quiche-0.23.patch"
+ "${FILESDIR}/1.9.8-fix-compat-with-boost-lockfree-1.87.0.patch"
+)
src_prepare() {
default
diff --git a/net-dns/dnsdist/files/1.9.8-fix-compat-with-boost-lockfree-1.87.0.patch b/net-dns/dnsdist/files/1.9.8-fix-compat-with-boost-lockfree-1.87.0.patch
new file mode 100644
index 000000000000..69b03b1047df
--- /dev/null
+++ b/net-dns/dnsdist/files/1.9.8-fix-compat-with-boost-lockfree-1.87.0.patch
@@ -0,0 +1,90 @@
+Patch from: https://github.com/PowerDNS/pdns/pull/15181
+Fixed file paths for dnsdist tarball.
+
+Signed-off-by: Holger Hoffstätte <holger@applied-asynchrony.com>
+
+From: Remi Gacogne <remi.gacogne@powerdns.com>
+Date: Mon, 10 Feb 2025 11:24:28 +0100
+Subject: [PATCH] dnsdist-1.9.x: Fix compatibility with boost::lockfree >= 1.87.0
+
+In https://github.com/boostorg/lockfree/pull/90 `boost::lockfree::spsc_queue`
+introduced moved semantics, which is great, but added restrictions
+to the callback functor that did not exist before, breaking the API.
+This PR fixes that by updating our callbacks to expect an object
+instead of a reference.
+
+(cherry picked from commit 05543aed8ccff2270a65d3f9b75e6e9d894b8b45)
+---
+ dnsdist-xsk.cc | 6 +++---
+ xsk.cc | 4 ++--
+ xsk.hh | 4 ++--
+ 3 files changed, 7 insertions(+), 7 deletions(-)
+
+diff --git a/dnsdist-xsk.cc b/dnsdist-xsk.cc
+index 7e83c510093e..dcbd79459796 100644
+--- a/dnsdist-xsk.cc
++++ b/dnsdist-xsk.cc
+@@ -48,7 +48,7 @@ void XskResponderThread(std::shared_ptr<DownstreamState> dss, std::shared_ptr<Xs
+ if ((pollfds[0].revents & POLLIN) != 0) {
+ needNotify = true;
+ xskInfo->cleanSocketNotification();
+- xskInfo->processIncomingFrames([&](XskPacket& packet) {
++ xskInfo->processIncomingFrames([&](XskPacket packet) {
+ if (packet.getDataLen() < sizeof(dnsheader)) {
+ xskInfo->markAsFree(packet);
+ return;
+@@ -167,7 +167,7 @@ void XskRouter(std::shared_ptr<XskSocket> xsk)
+ if ((fds.at(fdIndex).revents & POLLIN) != 0) {
+ ready--;
+ const auto& info = xsk->getWorkerByDescriptor(fds.at(fdIndex).fd);
+- info->processOutgoingFrames([&](XskPacket& packet) {
++ info->processOutgoingFrames([&](XskPacket packet) {
+ if ((packet.getFlags() & XskPacket::UPDATE) == 0) {
+ xsk->markAsFree(packet);
+ return;
+@@ -202,7 +202,7 @@ void XskClientThread(ClientState* clientState)
+ while (!xskInfo->hasIncomingFrames()) {
+ xskInfo->waitForXskSocket();
+ }
+- xskInfo->processIncomingFrames([&](XskPacket& packet) {
++ xskInfo->processIncomingFrames([&](XskPacket packet) {
+ if (XskProcessQuery(*clientState, holders, packet)) {
+ packet.updatePacket();
+ xskInfo->pushToSendQueue(packet);
+diff --git a/xsk.cc b/xsk.cc
+index 5851f1b9b79e..d246a1d72e83 100644
+--- a/xsk.cc
++++ b/xsk.cc
+@@ -1185,7 +1185,7 @@ bool XskWorker::hasIncomingFrames()
+ return d_incomingPacketsQueue.read_available() != 0U;
+ }
+
+-void XskWorker::processIncomingFrames(const std::function<void(XskPacket& packet)>& callback)
++void XskWorker::processIncomingFrames(const std::function<void(XskPacket packet)>& callback)
+ {
+ if (d_type == Type::OutgoingOnly) {
+ throw std::runtime_error("Looking for incoming packets in an outgoing-only XSK Worker");
+@@ -1194,7 +1194,7 @@ void XskWorker::processIncomingFrames(const std::function<void(XskPacket& packet
+ d_incomingPacketsQueue.consume_all(callback);
+ }
+
+-void XskWorker::processOutgoingFrames(const std::function<void(XskPacket& packet)>& callback)
++void XskWorker::processOutgoingFrames(const std::function<void(XskPacket packet)>& callback)
+ {
+ d_outgoingPacketsQueue.consume_all(callback);
+ }
+diff --git a/xsk.hh b/xsk.hh
+index 2f3e7c372e35..ff36be5ecd96 100644
+--- a/xsk.hh
++++ b/xsk.hh
+@@ -312,8 +312,8 @@ public:
+ void pushToProcessingQueue(XskPacket& packet);
+ void pushToSendQueue(XskPacket& packet);
+ bool hasIncomingFrames();
+- void processIncomingFrames(const std::function<void(XskPacket& packet)>& callback);
+- void processOutgoingFrames(const std::function<void(XskPacket& packet)>& callback);
++ void processIncomingFrames(const std::function<void(XskPacket packet)>& callback);
++ void processOutgoingFrames(const std::function<void(XskPacket packet)>& callback);
+ void markAsFree(const XskPacket& packet);
+ // notify worker that at least one packet is available for processing
+ void notifyWorker() const;