commit:     9abd5417cc4e665885a352eb1eb15ae0b1652af9
Author:     Lars Wendler <polynomial-c <AT> gentoo <DOT> org>
AuthorDate: Fri Jan 28 15:37:35 2022 +0000
Commit:     Lars Wendler <polynomial-c <AT> gentoo <DOT> org>
CommitDate: Fri Jan 28 15:46:26 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=9abd5417

net-dns/nsd: Add live ebuild

Signed-off-by: Lars Wendler <polynomial-c <AT> gentoo.org>

 net-dns/nsd/nsd-9999.ebuild | 119 ++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 119 insertions(+)

diff --git a/net-dns/nsd/nsd-9999.ebuild b/net-dns/nsd/nsd-9999.ebuild
new file mode 100644
index 000000000000..a41057e6300d
--- /dev/null
+++ b/net-dns/nsd/nsd-9999.ebuild
@@ -0,0 +1,119 @@
+# Copyright 1999-2022 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="http://www.nlnetlabs.nl/projects/nsd";
+LICENSE="BSD"
+SLOT="0"
+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}"
+
+       [[ "${PV}" == *_beta* ]] || [[ "${PV}" == *_rc* ]] || \
+       KEYWORDS="~amd64 ~x86"
+       SRC_URI="http://www.nlnetlabs.nl/downloads/${PN}/${MY_P}.tar.gz";
+       S="${WORKDIR}/${MY_P}"
+fi
+IUSE="bind8-stats dnstap ipv6 libevent minimal-responses mmap munin +nsec3 
ratelimit root-server runtime-checks 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="
+       sys-devel/flex
+       virtual/yacc
+       systemd? ( virtual/pkgconfig )
+"
+
+PATCHES=(
+       # Fix the paths in the munin plugin to match our install
+       "${FILESDIR}"/nsd_munin_.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-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 dnstap)
+               $(use_enable ipv6)
+               $(use_enable minimal-responses)
+               $(use_enable mmap)
+               $(use_enable nsec3)
+               $(use_enable ratelimit)
+               $(use_enable root-server)
+               $(use_enable runtime-checks checking)
+               $(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