summaryrefslogtreecommitdiff
path: root/dns/nsd/Makefile
blob: e6188c8650c4ab055dc84b4b1c033f48a2fd782c (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
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
PORTNAME=	nsd
DISTVERSION=	4.6.0
CATEGORIES=	dns
MASTER_SITES=	https://www.nlnetlabs.nl/downloads/nsd/

MAINTAINER=	jaap@NLnetLabs.nl
COMMENT=	Authoritative only non-recursive name server
WWW=		https://www.nlnetlabs.nl/projects/nsd/about/

LICENSE=	BSD3CLAUSE
LICENSE_FILE=	${WRKSRC}/LICENSE

LIB_DEPENDS=	libevent.so:devel/libevent

USES=		cpe ssl

CPE_VENDOR=	nlnetlabs
USE_RC_SUBR=	nsd

NSDUSER?=	nsd
NSDGROUP?=	nsd
NSDLSDIR=	/var
NSDDBDIR=	/var/db/nsd
NSDRUNDIR=	/var/run/nsd

GNU_CONFIGURE=	yes
CONFIGURE_ARGS=	--localstatedir=${NSDLSDIR} \
		--with-configdir=${ETCDIR} \
		--with-dbfile=${NSDDBDIR}/nsd.db \
		--with-libevent=${LOCALBASE} \
		--with-pidfile=${NSDRUNDIR}/nsd.pid \
		--with-ssl=${OPENSSLBASE} \
		--with-user=${NSDUSER}

USERS=		${NSDUSER}
GROUPS=		${NSDGROUP}

PLIST_SUB=	NSDDBDIR=${NSDDBDIR} \
		NSDGROUP=${NSDGROUP} \
		NSDRUNDIR=${NSDRUNDIR} \
		NSDUSER=${NSDUSER}

PORTDOCS=	CREDITS ChangeLog LICENSE NSD-4-features NSD-DATABASE \
		NSD-DIFFFILE NSD-FOR-BIND-USERS README README.icc RELNOTES \
		REQUIREMENTS TESTPLAN TODO UPGRADING coding-style \
		differences.tex

OPTIONS_DEFINE=		BIND8_STATS CHECKING DNSTAP DOCS IPV6 LARGEFILE \
			MINRESPSIZE MMAP MUNIN_PLUGIN NSEC3 PACKED RADIXTREE \
			ROOT_SERVER RRL ZONE_STATS
OPTIONS_DEFAULT=	BIND8_STATS LARGEFILE MINRESPSIZE NSEC3 RADIXTREE RRL \
			ZONE_STATS
OPTIONS_SUB=		yes

BIND8_STATS_DESC=	BIND8-like NSTATS & XSTATS
CHECKING_DESC=		Internal run-time checks
DNSTAP_DESC=		Enable dnstap logging support
LARGEFILE_DESC=		Largefile support
MINRESPSIZE_DESC=	Minimial response sizing
MMAP_DESC=		Use mmap instead of malloc (experimental)
MUNIN_PLUGIN_DESC=	Install Munin plugin (requires BIND8_STATS)
NSEC3_DESC=		NSEC3 support
PACKED_DESC=		Enable packed structures for reduced memory use
RADIXTREE_DESC=		Enabled: more (15%) memory use but less CPU cycles
ROOT_SERVER_DESC=	Configure as a root server
RRL_DESC=		Response Rate Limiting
ZONE_STATS_DESC=	Separate statistics for each zone

BIND8_STATS_CONFIGURE_ENABLE=	bind8-stats
CHECKING_CONFIGURE_ENABLE=	checking
DNSTAP_LIB_DEPENDS=		libfstrm.so:devel/fstrm \
				libprotobuf-c.so:devel/protobuf-c
DNSTAP_CONFIGURE_ENABLE=	dnstap
IPV6_CONFIGURE_ENABLE=		ipv6
LARGEFILE_CONFIGURE_ENABLE=	largefile
MINRESPSIZE_CONFIGURE_ENABLE=	minimal-responses
MMAP_CONFIGURE_ENABLE=		mmap
MUNIN_PLUGIN_IMPLIES=		BIND8_STATS
NSEC3_CONFIGURE_ENABLE=		nsec3
PACKED_CONFIGURE_ENABLE=	packed
RADIXTREE_CONFIGURE_ENABLE=	radix-tree
ROOT_SERVER_CONFIGURE_ENABLE=	root-server
RRL_CONFIGURE_ENABLE=		ratelimit
ZONE_STATS_CONFIGURE_ENABLE=	zone-stats

NSDMAX_IPS?=	512

post-build-MUNIN_PLUGIN-on:
	${REINPLACE_CMD} \
		-e 's|/usr/local|${LOCALBASE}|g' \
		-e 's|/usr/local/etc/nsd.conf|${ETCDIR}/nsd.conf|g' \
		-e 's|/usr/local/var/munin/plugin-state|/var/munin/plugin-state/root|g' \
		-e '90s|/var/munin/plugin-state/root|$${MUNIN_PLUGSTATE}|' \
		${WRKSRC}/contrib/nsd_munin_

post-install:
	${INSTALL_DATA} ${WRKSRC}/nsd.conf.sample \
		${STAGEDIR}${PREFIX}/etc/nsd/nsd.conf.sample
	${STRIP_CMD} ${STAGEDIR}${PREFIX}/sbin/nsd \
		${STAGEDIR}${PREFIX}/sbin/nsd-checkconf \
		${STAGEDIR}${PREFIX}/sbin/nsd-checkzone \
		${STAGEDIR}${PREFIX}/sbin/nsd-control

post-install-DOCS-on:
	${MKDIR} ${STAGEDIR}${DOCSDIR}
	${INSTALL_DATA} ${PORTDOCS:S|^|${WRKSRC}/doc/|} ${STAGEDIR}${DOCSDIR}

post-install-MUNIN_PLUGIN-on:
	${MKDIR} ${STAGEDIR}${PREFIX}/share/munin/plugins
	${INSTALL_SCRIPT} ${WRKSRC}/contrib/nsd_munin_ \
		${STAGEDIR}${PREFIX}/share/munin/plugins

.include <bsd.port.mk>