commit:     a72f8d7023487bf4f9f0f3e583f7c3760bbfddc1
Author:     Joshua Kinard <kumba <AT> gentoo <DOT> org>
AuthorDate: Tue Jun 18 22:12:02 2024 +0000
Commit:     Joshua Kinard <kumba <AT> gentoo <DOT> org>
CommitDate: Tue Jun 18 22:12:02 2024 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=a72f8d70

net-dns/nsd: Add 4.10.0 ebuild & minor fixes to 4.9.1

Added a new ebuild for nsd-4.10.0, which includes a new local USE
flag 'simdzone' for a new zone parser that debuts w/ 4.10.0 that
utilizes SIMD insns on x86_64 CPU archs.  Also made minor syntax
fixes to nsd-4.9.1's ebuild, and updated nsd-9999's ebuild to
match 4.10.0's.

Signed-off-by: Joshua Kinard <kumba <AT> gentoo.org>

 net-dns/nsd/Manifest                               |  1 +
 net-dns/nsd/metadata.xml                           |  1 +
 .../nsd/{nsd-4.9.1.ebuild => nsd-4.10.0.ebuild}    | 26 ++++++++++----
 net-dns/nsd/nsd-4.9.1.ebuild                       | 10 +++---
 net-dns/nsd/nsd-9999.ebuild                        | 40 ++++++++++++++--------
 5 files changed, 52 insertions(+), 26 deletions(-)

diff --git a/net-dns/nsd/Manifest b/net-dns/nsd/Manifest
index 96c7c9e4d347..b9e253e157d6 100644
--- a/net-dns/nsd/Manifest
+++ b/net-dns/nsd/Manifest
@@ -1,2 +1,3 @@
+DIST nsd-4.10.0.tar.gz 1388963 BLAKE2B 
1ae50e2c2756fbbbabe87ecf88e74c2f9e5bf21dfe8f34a279894499ba5434a9249e5424f511ed0b67d21b3b1c98b7a03e38cd20fd6dd0cd2a6ad4b397d352df
 SHA512 
ebf65d9a3d56ba560b587dc3cf91b0b086c9267c67f4c6a6c415cc062a08a9d0deb50cc44189b741d5b7634fe07038f6a234999f5a0ee7df6609fc026127fb09
 DIST nsd-4.8.0.tar.gz 1273228 BLAKE2B 
d1e6a5e8fb158bb32081bc7674d957e3f5a596ed10ee89dd6a5f6af9a79a8c130f2de7070345bee69cb7798e9f373d856a9336a9e9f65f733ff45e15e94833ff
 SHA512 
13c9cffffe6adfcbabf744ee2effebe6ae265d83476345a1edb60dc9c6d7f838a5e239e9b18e667924e5e76b74b2caac63818fcaecf7f0fa651ff21736174a46
 DIST nsd-4.9.1.tar.gz 1309953 BLAKE2B 
4a43db480be7196c0a177cc6ee2b9cd6eaaaa9af4d0c3dc7b8f07a5b9e24fd4eac816a29f83de870efe012f2f3bbcbb9bdbda903d05bf9d96574bddc97f68547
 SHA512 
65cd38aa8a41aee57a6950747de448bc4007a2d2c095152f1d22006f85faa7f0732ec4aa0aeae9f46bc69bff17164d8fe384bbc3441d0484364c4af938b511c1

diff --git a/net-dns/nsd/metadata.xml b/net-dns/nsd/metadata.xml
index 1afdcd842cc0..0cdd2376e40c 100644
--- a/net-dns/nsd/metadata.xml
+++ b/net-dns/nsd/metadata.xml
@@ -22,6 +22,7 @@
                <flag name="ratelimit">Enables ratelimiting, based on query 
name, type and source</flag>
                <flag name="recvmmsg">Enable recvmmsg and sendmmsg compilation, 
faster but some kernel versions may have implementation problems for IPv6</flag>
                <flag name="root-server">Configure NSD as a root server 
(OBSOLETE: removed in >=4.9.x)</flag>
+               <flag name="simdzone">Leverage SIMD instructions in modern CPUs 
to improve throughput</flag>
                <flag name="tfo">Enable TCP Fast Open</flag>
                <flag name="year2038">Support timestamps after 2038 (glibc 
only!)</flag>
        </use>

diff --git a/net-dns/nsd/nsd-4.9.1.ebuild b/net-dns/nsd/nsd-4.10.0.ebuild
similarity index 83%
copy from net-dns/nsd/nsd-4.9.1.ebuild
copy to net-dns/nsd/nsd-4.10.0.ebuild
index 53cbc4f1d5f1..da8e10d8e3ac 100644
--- a/net-dns/nsd/nsd-4.9.1.ebuild
+++ b/net-dns/nsd/nsd-4.10.0.ebuild
@@ -27,7 +27,7 @@ fi
 
 LICENSE="BSD"
 SLOT="0"
-IUSE="bind8-stats debug +default-znow dnstap +ipv6 +largefile libevent +lto 
memclean minimal-responses mmap munin +nsec3 packed +pie +radix-tree ratelimit 
recvmmsg ssl systemd +tfo year2038"
+IUSE="bind8-stats debug +default-znow dnstap +ipv6 +largefile libevent +lto 
memclean minimal-responses mmap munin +nsec3 packed +pie +radix-tree ratelimit 
recvmmsg +simdzone ssl systemd +tfo year2038"
 
 RDEPEND="
        acct-group/nsd
@@ -49,7 +49,6 @@ BDEPEND="
 "
 
 PATCHES=(
-       "${FILESDIR}/${P}-systemd-no-pidfile.patch"
        "${FILESDIR}/${PN}-munin-gentoo-paths.patch"
 )
 
@@ -92,15 +91,28 @@ src_configure() {
                $(use_with libevent)
                $(use_with ssl)
 
-               --with-dbfile="${EPREFIX}/${NSD_DBDIR}/nsd.db"
+               --with-dbfile="${EPREFIX}${NSD_DBDIR}/nsd.db"
                --with-logfile="${EPREFIX}/var/log/nsd.log"
                --with-pidfile="${EPREFIX}/run/nsd.pid"
-               --with-xfrdfile="${EPREFIX}/${NSD_DBDIR}/xfrd.state"
-               --with-xfrdir="${EPREFIX}/${NSD_DBDIR}"
-               --with-zonelistfile="${EPREFIX}/${NSD_DBDIR}/zone.list"
-               --with-zonesdir="${EPREFIX}/${NSD_ZNDIR}"
+               --with-xfrdfile="${EPREFIX}${NSD_DBDIR}/xfrd.state"
+               --with-xfrdir="${EPREFIX}${NSD_DBDIR}"
+               --with-zonelistfile="${EPREFIX}${NSD_DBDIR}/zone.list"
+               --with-zonesdir="${EPREFIX}${NSD_ZNDIR}"
        )
 
+       # NSD 4.10.x introduced a new zone parser, "simdzone", which
+       # replaces the older parser that used flex & bison:
+       #   https://github.com/NLnetLabs/simdzone
+       # It leverages SSE4.2 and/or AVX2 instruction sets for faster
+       # zone parsing on x86_64 architectures.  Other CPU archs will
+       # use a fallback implementation.
+       if use amd64; then
+               myconf+=(
+                       $(use_enable simdzone haswell)
+                       $(use_enable simdzone westmere)
+               )
+       fi
+
        # This configure switch is only available on a glibc-based system.
        if use elibc_glibc; then
                myconf+=( $(use_enable year2038) )

diff --git a/net-dns/nsd/nsd-4.9.1.ebuild b/net-dns/nsd/nsd-4.9.1.ebuild
index 53cbc4f1d5f1..8c9ca27a596b 100644
--- a/net-dns/nsd/nsd-4.9.1.ebuild
+++ b/net-dns/nsd/nsd-4.9.1.ebuild
@@ -92,13 +92,13 @@ src_configure() {
                $(use_with libevent)
                $(use_with ssl)
 
-               --with-dbfile="${EPREFIX}/${NSD_DBDIR}/nsd.db"
+               --with-dbfile="${EPREFIX}${NSD_DBDIR}/nsd.db"
                --with-logfile="${EPREFIX}/var/log/nsd.log"
                --with-pidfile="${EPREFIX}/run/nsd.pid"
-               --with-xfrdfile="${EPREFIX}/${NSD_DBDIR}/xfrd.state"
-               --with-xfrdir="${EPREFIX}/${NSD_DBDIR}"
-               --with-zonelistfile="${EPREFIX}/${NSD_DBDIR}/zone.list"
-               --with-zonesdir="${EPREFIX}/${NSD_ZNDIR}"
+               --with-xfrdfile="${EPREFIX}${NSD_DBDIR}/xfrd.state"
+               --with-xfrdir="${EPREFIX}${NSD_DBDIR}"
+               --with-zonelistfile="${EPREFIX}${NSD_DBDIR}/zone.list"
+               --with-zonesdir="${EPREFIX}${NSD_ZNDIR}"
        )
 
        # This configure switch is only available on a glibc-based system.

diff --git a/net-dns/nsd/nsd-9999.ebuild b/net-dns/nsd/nsd-9999.ebuild
index 77ea73ae7afc..da8e10d8e3ac 100644
--- a/net-dns/nsd/nsd-9999.ebuild
+++ b/net-dns/nsd/nsd-9999.ebuild
@@ -27,7 +27,7 @@ fi
 
 LICENSE="BSD"
 SLOT="0"
-IUSE="bind8-stats debug +default-znow dnstap +ipv6 +largefile libevent +lto 
memclean minimal-responses mmap munin +nsec3 packed +pie +radix-tree ratelimit 
recvmmsg ssl systemd +tfo year2038"
+IUSE="bind8-stats debug +default-znow dnstap +ipv6 +largefile libevent +lto 
memclean minimal-responses mmap munin +nsec3 packed +pie +radix-tree ratelimit 
recvmmsg +simdzone ssl systemd +tfo year2038"
 
 RDEPEND="
        acct-group/nsd
@@ -49,12 +49,12 @@ BDEPEND="
 "
 
 PATCHES=(
-       "${FILESDIR}/${P}-systemd-no-pidfile.patch"
        "${FILESDIR}/${PN}-munin-gentoo-paths.patch"
 )
 
-NSD_INITD_VER="2"              # Current version of NSD's OpenRC init.d script.
-NSD_TMPFILESD_VER="1"          # Current version of NSD's tmpfiles.d config.
+NSD_CONFD_VER="1"              # Cur version of NSD's OpenRC conf.d file.
+NSD_INITD_VER="2"              # Cur version of NSD's OpenRC init.d script.
+NSD_TMPFILESD_VER="1"          # Cur version of NSD's tmpfiles.d config.
 
 NSD_DBDIR="/var/db/nsd"                # Default dir for NSD's databases.
 NSD_ZNDIR="/var/lib/nsd"       # Default dir for NSD's zone files.
@@ -91,15 +91,28 @@ src_configure() {
                $(use_with libevent)
                $(use_with ssl)
 
-               --with-dbfile="${EPREFIX}/${NSD_DBDIR}/nsd.db"
+               --with-dbfile="${EPREFIX}${NSD_DBDIR}/nsd.db"
                --with-logfile="${EPREFIX}/var/log/nsd.log"
-               --with-pidfile="${EPREFIX}/run/nsd/nsd.pid"
-               --with-xfrdfile="${EPREFIX}/${NSD_DBDIR}/xfrd.state"
-               --with-xfrdir="${EPREFIX}/${NSD_DBDIR}"
-               --with-zonelistfile="${EPREFIX}/${NSD_DBDIR}/zone.list"
-               --with-zonesdir="${EPREFIX}/${NSD_ZNDIR}"
+               --with-pidfile="${EPREFIX}/run/nsd.pid"
+               --with-xfrdfile="${EPREFIX}${NSD_DBDIR}/xfrd.state"
+               --with-xfrdir="${EPREFIX}${NSD_DBDIR}"
+               --with-zonelistfile="${EPREFIX}${NSD_DBDIR}/zone.list"
+               --with-zonesdir="${EPREFIX}${NSD_ZNDIR}"
        )
 
+       # NSD 4.10.x introduced a new zone parser, "simdzone", which
+       # replaces the older parser that used flex & bison:
+       #   https://github.com/NLnetLabs/simdzone
+       # It leverages SSE4.2 and/or AVX2 instruction sets for faster
+       # zone parsing on x86_64 architectures.  Other CPU archs will
+       # use a fallback implementation.
+       if use amd64; then
+               myconf+=(
+                       $(use_enable simdzone haswell)
+                       $(use_enable simdzone westmere)
+               )
+       fi
+
        # This configure switch is only available on a glibc-based system.
        if use elibc_glibc; then
                myconf+=( $(use_enable year2038) )
@@ -112,17 +125,16 @@ src_install() {
        emake DESTDIR="${D}" install
 
        dodoc 
doc/{ChangeLog,CREDITS,NSD-4-features,NSD-FOR-BIND-USERS,README,RELNOTES,REQUIREMENTS}
-
        newinitd "${FILESDIR}/nsd.initd-r${NSD_INITD_VER}" nsd
-
-       newtmpfiles "${FILESDIR}/nsd.tmpfilesd-r1" nsd.conf
+       newconfd "${FILESDIR}/nsd.confd-r${NSD_CONFD_VER}" nsd
+       newtmpfiles "${FILESDIR}/nsd.tmpfilesd-r${NSD_TMPFILESD_VER}" nsd.conf
 
        # Install munin plugin and config, if requested.
        if use munin ; then
                exeinto "/usr/libexec/munin/plugins"
                doexe contrib/nsd_munin_
                insinto "/etc/munin/plugin-conf.d"
-               newins "${FILESDIR}/nsd.munin-conf nsd_munin"
+               newins "${FILESDIR}/nsd.munin-conf" nsd_munin
        fi
 
        # Use the upstream-provided systemd service file.

Reply via email to