aboutsummaryrefslogtreecommitdiff
path: root/dns/unbound/Makefile
blob: 7cd9cb398fd8a6e84e4abb9d70aa0b40da29ecda (plain) (blame)
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
114
115
116
117
118
119
# Created by: Sergey Matveychuk <sem@FreeBSD.org>
# $FreeBSD$

PORTNAME=	unbound
PORTVERSION=	1.13.0
PORTREVISION=	1
CATEGORIES=	dns
MASTER_SITES=	https://www.nlnetlabs.nl/downloads/unbound/ \
		https://distfiles.crux.guru/

MAINTAINER=	jaap@NLnetLabs.nl
COMMENT=	Validating, recursive, and caching DNS resolver

LICENSE=	BSD3CLAUSE
LICENSE_FILE=	${WRKSRC}/LICENSE

LIB_DEPENDS=	libexpat.so:textproc/expat2

USES=		autoreconf cpe libtool pkgconfig ssl

CPE_VENDOR=	nlnetlabs
GNU_CONFIGURE=	yes
CONFIGURE_ARGS=	--with-ssl=${OPENSSLBASE} --with-libexpat=${LOCALBASE}
USE_LDCONFIG=	yes
TEST_TARGET=	test

USERS=		${PORTNAME}
GROUPS=		${PORTNAME}

USE_RC_SUBR=	unbound

PORTDOCS=	CNAME-basedRedirectionDesignNotes.pdf CREDITS Changelog \
		FEATURES IP-BasedActions.pdf LICENSE README README.DNS64 \
		README.ipset.md README.svn README.tests TODO \
		control_proto_spec.txt example.conf ietf67-design-02.odp \
		ietf67-design-02.pdf requirements.txt

OPTIONS_SUB=	yes
OPTIONS_DEFINE=	DNSCRYPT DNSTAP DOCS DOH ECDSA EVAPI FILTER_AAAA GOST \
		HIREDIS LIBEVENT MUNIN_PLUGIN PYTHON SUBNET TFOCL TFOSE \
		THREADS 
OPTIONS_DEFAULT=ECDSA GOST LIBEVENT THREADS

LIBEVENT_DESC=	Build against libevent
GOST_DESC=	Enable GOST support (requires OpenSSL >= 1.0)
ECDSA_DESC=	Enable ECDSA (elliptic curve) support (OpenSSL >= 1.0)
MUNIN_PLUGIN_DESC=	Install Munin plugin
FILTER_AAAA_DESC=	Build with AAAA filter functionality (contrib)
DNSTAP_DESC=	Enable dnstap logging support
DNSCRYPT_DESC=	Enable dnscrypt support
SUBNET_DESC=	Enable client subnet support
EVAPI_DESC=	(Experimental) pluggable event based libunbound API support
TFOCL_DESC=	Enable TCP Fast Open for client mode
TFOSE_DESC=	Enable TCP Fast Open for server mode
HIREDIS_DESC=	Enable hiredis support for the cachedb module
DOH_DESC=	Enable DNS-over-HTTPS supports

STRIP_FILES=	.libs/libunbound.so unbound-checkconf unbound \
		unbound-control .libs/unbound-host .libs/unbound-anchor

DNSTAP_CONFIGURE_ENABLE=dnstap
DNSTAP_LIB_DEPENDS=	libfstrm.so:devel/fstrm \
			libprotobuf-c.so:devel/protobuf-c
DNSCRYPT_CONFIGURE_ENABLE=	dnscrypt
DNSCRYPT_LIB_DEPENDS=	libsodium.so:security/libsodium
SUBNET_CONFIGURE_ENABLE=	subnet
EVAPI_CONFIGURE_ENABLE=	event-api
TFOCL_CONFIGURE_ENABLE=	tfo-client
TFOSE_CONFIGURE_ENABLE=	tfo-server
ECDSA_CONFIGURE_ENABLE=	ecdsa
ECDSA_VARS=		DEPENDS_ARGS+=WITH_ECDSA=yes
GOST_CONFIGURE_ENABLE=	gost
GOST_VARS=		DEPENDS_ARGS+=WITH_GOST=yes
LIBEVENT_CONFIGURE_WITH=libevent
LIBEVENT_CPPFLAGS+=	$$(pkg-config libevent --cflags-only-I)
LIBEVENT_LIB_DEPENDS=	libevent.so:devel/libevent
LIBEVENT_LDFLAGS+=	$$(pkg-config libevent --libs-only-L)
MUNIN_PLUGIN_SUB_FILES=	pkg-message
PYTHON_BUILD_DEPENDS=	swig:devel/swig
PYTHON_CONFIGURE_ON=	--with-pyunbound=yes --with-pythonmodule=yes \
			LDFLAGS="-L${LOCALBASE}/lib" \
			ac_cv_path_SWIG=${LOCALBASE}/bin/swig
PYTHON_USES=		python
PYTHON_VARS=		STRIP_FILES+=.libs/_unbound.so
THREADS_CONFIGURE_WITH=	pthreads
HIREDIS_CONFIGURE_ON=	--enable-cachedb --with-libhiredis
HIREDIS_LIB_DEPENDS=	libhiredis.so:databases/hiredis
DOH_CONFIGURE_ON=	--with-libnghttp2
DOH_LIB_DEPENDS=	libnghttp2.so:www/libnghttp2

post-patch:
	@${RM} ${WRKSRC}/util/configlexer.c
	@${REINPLACE_CMD} -e 's|if test ! -e $$(DESTDIR)$$(configfile); then || ; \
		s|$$(configfile); fi|$$(configfile).sample|' \
		${WRKSRC}/Makefile.in

post-patch-FILTER_AAAA-on:
	 ${CAT} ${WRKSRC}/contrib/aaaa-filter-iterator.patch | ${PATCH} -d ${WRKSRC} -p1 -s

post-build:
	@for s in ${STRIP_FILES}; do ${STRIP_CMD} ${WRKSRC}/$$s; done

post-install-PYTHON-on:
	@${STRIP_CMD} ${STAGEDIR}${PYTHON_SITELIBDIR}/_unbound.so

post-install-MUNIN_PLUGIN-on:
	@${MKDIR} ${STAGEDIR}${PREFIX}/share/munin/plugins
	${INSTALL_SCRIPT} ${WRKDIR}/unbound-${PORTVERSION}/contrib/unbound_munin_ \
		${STAGEDIR}${PREFIX}/share/munin/plugins/
	@${ECHO_MSG}
	@${ECHO_MSG} "============================================================="
	@${CAT} ${WRKDIR}/pkg-message
	@${ECHO_MSG} "============================================================="

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

.include <bsd.port.mk>