commit:     d1a4e2715cabf9ac1230d296eab23d44132bf078
Author:     Sam James <sam <AT> gentoo <DOT> org>
AuthorDate: Sun Feb 18 10:29:50 2024 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Sun Feb 18 10:48:23 2024 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=d1a4e271

net-dns/nsd: backport stats fix for 4.8.0

Signed-off-by: Sam James <sam <AT> gentoo.org>

 .../nsd/files/nsd-4.8.0-implausible-stats.patch    |  22 ++++
 net-dns/nsd/nsd-4.8.0-r1.ebuild                    | 128 +++++++++++++++++++++
 2 files changed, 150 insertions(+)

diff --git a/net-dns/nsd/files/nsd-4.8.0-implausible-stats.patch 
b/net-dns/nsd/files/nsd-4.8.0-implausible-stats.patch
new file mode 100644
index 000000000000..318f2a5e2f55
--- /dev/null
+++ b/net-dns/nsd/files/nsd-4.8.0-implausible-stats.patch
@@ -0,0 +1,22 @@
+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" <wou...@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
+

diff --git a/net-dns/nsd/nsd-4.8.0-r1.ebuild b/net-dns/nsd/nsd-4.8.0-r1.ebuild
new file mode 100644
index 000000000000..52ac334d942c
--- /dev/null
+++ b/net-dns/nsd/nsd-4.8.0-r1.ebuild
@@ -0,0 +1,128 @@
+# 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}"/nsd_munin_.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
+}

Reply via email to