net-dns/nsd: Cleanups, add 4.10.1

Clean out older ebuilds and files in FILESDIR and add
a new ebuild for recently released 4.10.1, which includes
fixes for parallelism in the simdzone Makefile and OpenRC
init/conf files sent to upstream by @mjo.

Closes: https://bugs.gentoo.org/936119
Bug: https://bugs.gentoo.org/927552
Co-authored-by: Michael Orlitzky <mjo@gentoo.org>
Signed-off-by: Joshua Kinard <kumba@gentoo.org>
This commit is contained in:
Joshua Kinard
2024-08-04 06:15:21 -04:00
co-authored by Michael Orlitzky
parent 5de7b085ed
commit 9bdd082a7c
9 changed files with 20 additions and 243 deletions
+1 -2
View File
@@ -1,3 +1,2 @@
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.10.1.tar.gz 1404799 BLAKE2B 7b286ac681c1bb8201654cd2e5fac8a98256f6a595dfbb39bcfed92de63b3337e05d219bc766bab01e4aaf3fb1de3c128d7157caeee3a7f21e4132db9ea72cba SHA512 b0f4bdca8a1c6fbbe99096abc8c5f8b34ef2e66dc0da44da253ab164b35ad0aaef5d05eb682b88cc68d8b1671f7b80abafee242a784ed6deb785adee7f6a53a9
DIST nsd-4.9.1.tar.gz 1309953 BLAKE2B 4a43db480be7196c0a177cc6ee2b9cd6eaaaa9af4d0c3dc7b8f07a5b9e24fd4eac816a29f83de870efe012f2f3bbcbb9bdbda903d05bf9d96574bddc97f68547 SHA512 65cd38aa8a41aee57a6950747de448bc4007a2d2c095152f1d22006f85faa7f0732ec4aa0aeae9f46bc69bff17164d8fe384bbc3441d0484364c4af938b511c1
@@ -1,22 +0,0 @@
https://github.com/NLnetLabs/nsd/issues/313
https://github.com/NLnetLabs/nsd/commit/ccc1bbc28abd3a723c25cb8dcc735731926979d0
From ccc1bbc28abd3a723c25cb8dcc735731926979d0 Mon Sep 17 00:00:00 2001
From: "W.C.A. Wijngaards" <wouter@nlnetlabs.nl>
Date: Tue, 6 Feb 2024 11:44:24 +0100
Subject: [PATCH] - Fix #313: nsd 4.8 stats with implausible spikes.
--- a/remote.c
+++ b/remote.c
@@ -2932,7 +2932,9 @@ process_stats(RES* ssl, xfrd_state_type* xfrd, int peek)
process_stats_manage_clear(xfrd, stats, peek);
process_stats_add_total(xfrd, &total, stats);
print_stats(ssl, xfrd, &stattime, !peek, &total, zonestats);
- xfrd->nsd->rc->stats_time = stattime;
+ if(!peek) {
+ xfrd->nsd->rc->stats_time = stattime;
+ }
free(stats);
#ifdef USE_ZONE_STATS
-59
View File
@@ -1,59 +0,0 @@
#!/sbin/openrc-run
# Copyright 1999-2019 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
description="NSD is an authoritative-only, high performance, open source name server"
extra_commands="configtest"
extra_started_commands="reload"
# these can be overridden in /etc/conf.d/nsd if necessary
NSD_CONFIG="${NSD_CONFIG:-/etc/nsd/nsd.conf}"
NSD_CHECKCONF="${NSD_CHECKCONF:-/usr/sbin/nsd-checkconf}"
command="${NSD_BINARY:-/usr/sbin/nsd}"
command_args="-c ${NSD_CONFIG}"
depend() {
need net
use logger
}
get_pidfile() {
printf '%s' "$("${NSD_CHECKCONF}" -o pidfile "${NSD_CONFIG}")"
}
checkconfig() {
if ! test -e "${NSD_CONFIG}"; then
eerror "You need to create an appropriate config file."
eerror "An example can be found in /etc/nsd/nsd.conf.sample"
return 1
elif ! "${NSD_CHECKCONF}" "${NSD_CONFIG}"; then
eerror "You have errors in your configfile (${NSD_CONFIG})"
return $?
fi
return 0
}
configtest() {
ebegin "Checking ${SVCNAME} configuration"
checkconfig
eend $?
}
start_pre() {
checkconfig || return $?
pidfile="$(get_pidfile)"
checkpath --directory --owner nsd:nsd "${pidfile%/*}" || return 1
}
stop_pre() {
checkconfig || return $?
pidfile="$(get_pidfile)"
}
reload() {
checkconfig || return $?
pidfile="$(get_pidfile)"
ebegin "Reloading config and zone files"
kill -s HUP $(cat ${pidfile})
eend $?
}
-14
View File
@@ -1,14 +0,0 @@
[Unit]
Description=NSD authoritative DNS server
Wants=network.target
After=network.target
[Service]
Type=forking
ExecStartPre=/usr/bin/install -d -o nsd -g nsd /run/nsd
ExecStart=/usr/sbin/nsd
KillMode=mixed
PIDFile=/run/nsd/nsd.pid
[Install]
WantedBy=multi-user.target
+4 -5
View File
@@ -5,6 +5,9 @@
<email>kumba@gentoo.org</email>
<name>Joshua Kinard</name>
</maintainer>
<upstream>
<remote-id type="github">NLnetLabs/nsd</remote-id>
</upstream>
<use>
<flag name="bind8-stats">Enables BIND8 like NSTATS and XSTATS and statistics in nsd-control</flag>
<flag name="default-znow">Enable full relocation binding at load-time (RELRO NOW, to protect GOT and .dtor areas)</flag>
@@ -21,12 +24,8 @@
<flag name="radix-tree">Use a radix tree for main lookups instead of a red-black tree</flag>
<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>
<flag name="year2038">Enables support for 64-bit 'time_t' (sets D_TIME_BITS=64; glibc only)</flag>
</use>
<upstream>
<remote-id type="github">NLnetLabs/nsd</remote-id>
</upstream>
</pkgmetadata>
@@ -52,8 +52,6 @@ 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.
@@ -113,7 +111,9 @@ src_configure() {
)
fi
# This configure switch is only available on a glibc-based system.
# This configure switch only appears on glibc-based userlands.
# It enables 64-bit time_t to support timestamps greater than
# the year 2038 (D_TIME_BITS=64).
if use elibc_glibc; then
myconf+=( $(use_enable year2038) )
fi
@@ -125,14 +125,14 @@ 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
newinitd "contrib/nsd.openrc.in" nsd
newconfd "contrib/nsd.openrc.conf" 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_
doexe "contrib/nsd_munin_"
insinto "/etc/munin/plugin-conf.d"
newins "${FILESDIR}/nsd.munin-conf" nsd_munin
fi
-128
View File
@@ -1,128 +0,0 @@
# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
inherit autotools systemd
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 dnstap libevent minimal-responses mmap munin +nsec3 ratelimit root-server ssl systemd"
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=(
# Fix the paths in the munin plugin to match our install
"${FILESDIR}/${PN}-munin-gentoo-paths.patch"
"${FILESDIR}/${P}-implausible-stats.patch"
)
src_prepare() {
default
# Required to get correct pkg-config macros with USE="systemd"
# See bugs #663618 and #758050
eautoreconf
}
src_configure() {
local myeconfargs=(
--enable-ipv6
--enable-largefile
--enable-pie
--enable-relro-now
--enable-tcp-fastopen
--with-dbfile="${EPREFIX}"/var/db/nsd/nsd.db
--with-logfile="${EPREFIX}"/var/log/nsd.log
--with-pidfile="${EPREFIX}"/run/nsd/nsd.pid
--with-xfrdfile="${EPREFIX}"/var/db/nsd/xfrd.state
--with-xfrdir="${EPREFIX}"/var/db/nsd
--with-zonelistfile="${EPREFIX}"/var/db/nsd/zone.list
--with-zonesdir="${EPREFIX}"/var/lib/nsd
$(use_enable bind8-stats)
$(use_enable bind8-stats zone-stats)
$(use_enable debug checking)
$(use_enable dnstap)
$(use_enable minimal-responses)
$(use_enable mmap)
$(use_enable nsec3)
$(use_enable ratelimit)
$(use_enable root-server)
$(use_enable systemd)
$(use_with libevent)
$(use_with ssl)
)
econf "${myeconfargs[@]}"
}
src_install() {
emake DESTDIR="${D}" install
dodoc doc/{ChangeLog,CREDITS,NSD-4-features,NSD-FOR-BIND-USERS,README,RELNOTES,REQUIREMENTS}
newinitd "${FILESDIR}"/nsd.initd-r1 nsd
# Install munin plugin and config
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
systemd_dounit "${FILESDIR}"/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 /var/db/${PN}
}
pkg_postinst() {
# database directory, writable by nsd for database updates and zone transfers
install -d -m 750 -o nsd -g nsd "${EROOT}"/var/db/nsd
# zones directory, writable by nsd for zone file updates (nsd-control write)
install -d -m 750 -o nsd -g nsd "${EROOT}"/var/lib/nsd
}
+3 -1
View File
@@ -101,7 +101,9 @@ src_configure() {
--with-zonesdir="${EPREFIX}${NSD_ZNDIR}"
)
# This configure switch is only available on a glibc-based system.
# This configure switch only appears on glibc-based userlands.
# It enables 64-bit time_t to support timestamps greater than
# the year 2038 (D_TIME_BITS=64).
if use elibc_glibc; then
myconf+=( $(use_enable year2038) )
fi
+6 -6
View File
@@ -52,8 +52,6 @@ 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.
@@ -113,7 +111,9 @@ src_configure() {
)
fi
# This configure switch is only available on a glibc-based system.
# This configure switch only appears on glibc-based userlands.
# It enables 64-bit time_t to support timestamps greater than
# the year 2038 (D_TIME_BITS=64).
if use elibc_glibc; then
myconf+=( $(use_enable year2038) )
fi
@@ -125,14 +125,14 @@ 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
newinitd "contrib/nsd.openrc.in" nsd
newconfd "contrib/nsd.openrc.conf" 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_
doexe "contrib/nsd_munin_"
insinto "/etc/munin/plugin-conf.d"
newins "${FILESDIR}/nsd.munin-conf" nsd_munin
fi