mirror of
https://github.com/gentoo-mirror/gentoo.git
synced 2026-09-24 04:59:14 -07:00
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@gentoo.org>
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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>
|
||||
|
||||
161
net-dns/nsd/nsd-4.10.0.ebuild
Normal file
161
net-dns/nsd/nsd-4.10.0.ebuild
Normal file
@@ -0,0 +1,161 @@
|
||||
# Copyright 1999-2024 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI="8"
|
||||
|
||||
inherit autotools systemd tmpfiles
|
||||
|
||||
DESCRIPTION="An authoritative only, high performance, open source name server"
|
||||
HOMEPAGE="https://www.nlnetlabs.nl/projects/nsd"
|
||||
|
||||
if [[ ${PV} == *9999 ]] ; then
|
||||
inherit git-r3
|
||||
EGIT_REPO_URI="https://github.com/NLnetLabs/nsd.git"
|
||||
else
|
||||
# version voodoo needed only for non-release tarballs: 4.0.0_rc1 => 4.0.0rc1
|
||||
MY_PV="${PV/_beta/b}"
|
||||
MY_PV="${MY_PV/_rc/rc}"
|
||||
MY_P="${PN}-${MY_PV}"
|
||||
|
||||
if [[ ${PV} != *_beta* && ${PV} != *_rc* ]] ; then
|
||||
SRC_URI="https://www.nlnetlabs.nl/downloads/${PN}/${MY_P}.tar.gz"
|
||||
S="${WORKDIR}"/${MY_P}
|
||||
|
||||
KEYWORDS="~amd64 ~x86"
|
||||
fi
|
||||
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 +simdzone ssl systemd +tfo year2038"
|
||||
|
||||
RDEPEND="
|
||||
acct-group/nsd
|
||||
acct-user/nsd
|
||||
dnstap? (
|
||||
dev-libs/fstrm
|
||||
dev-libs/protobuf-c
|
||||
)
|
||||
libevent? ( dev-libs/libevent )
|
||||
munin? ( net-analyzer/munin )
|
||||
ssl? ( dev-libs/openssl:0= )
|
||||
systemd? ( sys-apps/systemd )
|
||||
"
|
||||
DEPEND="${RDEPEND}"
|
||||
BDEPEND="
|
||||
app-alternatives/lex
|
||||
app-alternatives/yacc
|
||||
systemd? ( virtual/pkgconfig )
|
||||
"
|
||||
|
||||
PATCHES=(
|
||||
"${FILESDIR}/${PN}-munin-gentoo-paths.patch"
|
||||
)
|
||||
|
||||
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.
|
||||
|
||||
src_prepare() {
|
||||
default
|
||||
|
||||
# Required to get correct pkg-config macros with USE="systemd".
|
||||
# See bugs #663618 & #758050.
|
||||
eautoreconf
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
local myconf=(
|
||||
$(use_enable bind8-stats)
|
||||
$(use_enable bind8-stats zone-stats)
|
||||
$(use_enable debug checking)
|
||||
$(use_enable default-znow relro-now)
|
||||
$(use_enable dnstap)
|
||||
$(use_enable ipv6)
|
||||
$(use_enable largefile)
|
||||
$(use_enable lto flto)
|
||||
$(use_enable memclean)
|
||||
$(use_enable minimal-responses)
|
||||
$(use_enable mmap)
|
||||
$(use_enable nsec3)
|
||||
$(use_enable packed)
|
||||
$(use_enable pie)
|
||||
$(use_enable radix-tree)
|
||||
$(use_enable ratelimit)
|
||||
$(use_enable recvmmsg)
|
||||
$(use_enable systemd)
|
||||
$(use_enable tfo tcp-fastopen)
|
||||
$(use_with libevent)
|
||||
$(use_with ssl)
|
||||
|
||||
--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}"
|
||||
)
|
||||
|
||||
# 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) )
|
||||
fi
|
||||
|
||||
econf "${myconf[@]}"
|
||||
}
|
||||
|
||||
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
|
||||
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
|
||||
fi
|
||||
|
||||
# Use the upstream-provided systemd service file.
|
||||
systemd_dounit "contrib/nsd.service"
|
||||
|
||||
# Remove the /run directory that usually resides on tmpfs and is
|
||||
# being taken care of by the nsd init script anyway (checkpath).
|
||||
rm -r "${ED}/run" || die "Failed to remove /run"
|
||||
|
||||
keepdir "${NSD_DBDIR}"
|
||||
}
|
||||
|
||||
pkg_postinst() {
|
||||
# See eclass/tmpfiles.eclass for info.
|
||||
tmpfiles_process nsd.conf
|
||||
|
||||
# Database directory
|
||||
# Writable by nsd:nsd for database updates and zone transfers.
|
||||
install -d -m 750 -o nsd -g nsd "${EROOT}/${NSD_DBDIR}"
|
||||
|
||||
# Zones directory
|
||||
# Writable by nsd:nsd for zone file updates (via 'nsd-control write').
|
||||
install -d -m 750 -o nsd -g nsd "${EROOT}/${NSD_ZNDIR}"
|
||||
}
|
||||
@@ -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.
|
||||
|
||||
@@ -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.
|
||||
|
||||
Reference in New Issue
Block a user