summaryrefslogtreecommitdiff
blob: ee48c2de7143defbf3c8c6e7ef64562791b164d8 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
# Copyright 1999-2008 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: $

inherit eutils

DESCRIPTION="An authoritative only, high performance, open source name server"
HOMEPAGE="http://www.nlnetlabs.nl/projects/nsd"
SRC_URI="http://www.nlnetlabs.nl/downloads/nsd/${P}.tar.gz"

LICENSE="BSD"
SLOT="0"
KEYWORDS="~amd64 ~x86"
IUSE="bind8-stats dnssec ipv6 largefile nsec3 nsid root-server runtime-checks tsig"

DEPEND="tsig? ( >=dev-libs/openssl-0.9.8f )"

pkg_setup() {
	if use runtime-checks; then
		ewarn "You enabled runtime-checks USE flag, this could lead to a reduced service level"
	fi
	if use nsid; then
		ewarn "You enabled nsid USE flag, this is still experimental"
	fi

	enewuser nsd -1 -1 /var/lib/nsd
}

src_compile() {
	econf \
		--with-dbfile=/var/db/nsd/nsd.db \
		--with-difffile=/var/db/nsd/ixfr.db \
		--with-pidfile=/var/run/nsd.pid \
		--with-xfrdfile=/var/db/nsd/xfrd.state \
		--with-zonesdir=/var/lib/nsd \
		$(use_enable bind8-stats) \
		$(use_enable dnssec) \
		$(use_enable largefile) \
		$(use_enable ipv6) \
		$(use_enable nsec3) \
		$(use_enable nsid) \
		$(use_enable root-server) \
		$(use_enable runtime-checks checking) \
		$(use_enable tsig) || die "econf failed"

	emake || die "emake failed"
}

src_install() {
	emake DESTDIR="${D}" install || die "emake install failed"

	dodoc doc/*
	dodoc contrib/nsd.zones2nsd.conf
	dodoc "${FILESDIR}"/nsd.cron

	dobin nsdc.sh

	newinitd "${FILESDIR}"/nsd.initd nsd

	keepdir /var/db/nsd
	fowners nsd /var/db/nsd
	fperms 750 /var/db/nsd

	keepdir /var/lib/nsd
	fowners nsd /var/lib/nsd
	fperms 750 /var/lib/nsd
}

pkg_postinst() {
	elog "If you are using bind and want to convert (or sync) bind zones"
	elog "you should check out bind2nsd (http://bind2nsd.sourceforge.net)."
	echo
	elog "If you are upgrading from NSD 2, take a look at the provided"
	elog "nsd.zones2nsd.conf script in the doc directory."
	echo
	elog "To automatically merge zone transfer changes back to NSD's"
	elog "zone files using 'nsdc patch', try the nsd.cron in the doc directory"
}