aboutsummaryrefslogtreecommitdiff
path: root/dns/dnsdist/Makefile
blob: f20ea19173c410b8e5a7f451827c20b4d0c84dcd (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
PORTNAME=	dnsdist
DISTVERSION=	1.9.0
CATEGORIES=	dns net
MASTER_SITES=	https://downloads.powerdns.com/releases/

MAINTAINER=	tremere@cainites.net
COMMENT=	Highly DNS-, DoS- and abuse-aware loadbalancer
WWW=		https://dnsdist.org/

LICENSE=	GPLv2 ISCL MIT
LICENSE_COMB=	multi
LICENSE_FILE_GPLv2=	${WRKSRC}/COPYING
LICENSE_FILE_ISCL=	${WRKSRC}/ext/ipcrypt/LICENSE
LICENSE_FILE_MIT=	${WRKSRC}/ext/yahttp/LICENSE

NOT_FOR_ARCHS=	i386
NOT_FOR_ARCHS_REASON=	archs with 32-bits time_t are no longer supported by upstream

BUILD_DEPENDS=	${LOCALBASE}/lib/libatomic_ops.a:devel/libatomic_ops
LIB_DEPENDS=	libboost_serialization.so:devel/boost-libs \
		libnghttp2.so:www/libnghttp2 \
		libquiche.so:net/quiche \
		libre2.so:devel/re2 \
		libsodium.so:security/libsodium

USES=		bison:alias compiler:c++14-lang cpe gmake libedit libtool \
		localbase pkgconfig tar:bz2
CPE_VENDOR=	powerdns
USE_RC_SUBR=	dnsdist

GNU_CONFIGURE=	yes
GNU_CONFIGURE_MANPREFIX=	${PREFIX}/share
CONFIGURE_ARGS=	--bindir=${PREFIX}/sbin \
		--enable-dns-over-https \
		--enable-dns-over-quic \
		--enable-dns-over-tls \
		--enable-dnscrypt \
		--sysconfdir=${ETCDIR} \
		--with-libsodium \
		--with-re2
LDFLAGS+=	-Wl,--as-needed

INSTALL_TARGET=	install-strip

USERS=		_dnsdist
GROUPS=		_dnsdist

OPTIONS_DEFINE=		DNSTAP SNMP
OPTIONS_DEFAULT=	CDB GNUTLS LMDB LUA OPENSSL
OPTIONS_GROUP=		KSVOPT
OPTIONS_GROUP_KSVOPT=	CDB LMDB
OPTIONS_MULTI=		TLS
OPTIONS_MULTI_TLS=	GNUTLS OPENSSL
OPTIONS_SINGLE=		EXTLUA
OPTIONS_SINGLE_EXTLUA=	LUA LUAJIT

CDB_DESC=	CDB backend
DNSTAP_DESC=	dnstap support (see dnstap.info)
KSVOPT_DESC=	Key Value Stores
LMDB_DESC=	LMDB backend
LUAJIT_DESC=	Use luajit
LUA_DESC=	Use lang/lua

CDB_LIB_DEPENDS=	libcdb.so:databases/tinycdb
CDB_CONFIGURE_ON=	CDB_CFLAGS="-I${LOCALBASE}/include" \
			CDB_LIBS="-L${LOCALBASE}/lib -lcdb"

DNSTAP_LIB_DEPENDS=		libfstrm.so:devel/fstrm
DNSTAP_CONFIGURE_ENABLE=	dnstap

GNUTLS_LIB_DEPENDS=	libgnutls.so:security/gnutls
GNUTLS_CONFIGURE_WITH=	gnutls

LMDB_LIB_DEPENDS=	liblmdb.so:databases/lmdb
LMDB_CONFIGURE_ON=	--with-lmdb=${LOCALBASE}
LMDB_CONFIGURE_OFF=	--without-lmdb

LUAJIT_USES=		luajit
LUAJIT_CONFIGURE_ON=	--with-lua=luajit

LUA_USES=		lua
LUA_CONFIGURE_ON=	--with-lua=lua-${LUA_VER}

OPENSSL_USES=		ssl
OPENSSL_CONFIGURE_ON=	LIBSSL_CFLAGS=-I${OPENSSLINC} \
			LIBSSL_LIBS="-L${OPENSSLLIB} -lssl"
OPENSSL_CONFIGURE_WITH=	libssl

SNMP_LIB_DEPENDS=	libnetsnmp.so:net-mgmt/net-snmp
SNMP_CONFIGURE_WITH=	net-snmp

post-install:
#	@${MKDIR} ${STAGEDIR}${ETCDIR}
	${MV} ${STAGEDIR}${ETCDIR}/dnsdist.conf-dist ${STAGEDIR}${ETCDIR}/dnsdist.conf.sample

.include <bsd.port.mk>