# pkg-help formatted with fmt 59 63
PORTNAME= bind
DISTVERSION= 9.21.14
.if defined(BIND_TOOLS_SLAVE)
# dns/bind-tools here
PORTREVISION= 0
.else
# XXX: correct version
# dns/bind9xx here
PORTREVISION= 0
.endif
CATEGORIES= dns net
MASTER_SITES= ISC/bind9/${DISTVERSION}
.if defined(BIND_TOOLS_SLAVE)
PKGNAMESUFFIX= -tools
.else
# XXX: correct SUFFIX.
PKGNAMESUFFIX= 9-devel
.endif
MAINTAINER= [email protected]
.if defined(BIND_TOOLS_SLAVE)
COMMENT= Command line tools from BIND: delv, dig, host, nslookup...
.else
COMMENT= BIND DNS suite with updated DNSSEC and DNS64
.endif
WWW= https://www.isc.org/bind/
# Uncomment when bind9xx comes of age. +3 years if ESV, +1year otherwise, see
# https://kb.isc.org/docs/aa-00896
# DEPRECATED= End of life, please migrate to a newer version of BIND9
# EXPIRATION_DATE= XXX-12-31
LICENSE= MPL20
LICENSE_FILE= ${WRKSRC}/COPYRIGHT
LIB_DEPENDS= libnghttp2.so:www/libnghttp2 \
liburcu.so:sysutils/liburcu \
libuv.so:devel/libuv
.if !defined(BIND_TOOLS_SLAVE)
RUN_DEPENDS= bind-tools>0:dns/bind-tools
.endif
USES= compiler:c11 cpe gnome libedit meson perl5 pkgconfig \
ssl tar:xz
CPE_VENDOR= isc
CPE_VERSION= ${DISTVERSION:C/-.*//}
.if ${DISTVERSION:M*-*}
CPE_UPDATE= ${DISTVERSION:C/.*-//:tl}
.endif
USE_PERL5= build
.if !defined(BIND_TOOLS_SLAVE)
USE_RC_SUBR= named
.endif # !BIND_TOOLS_SLAVE
MESON_ARGS= --localstatedir=/var \
--sysconfdir=${ETCDIR} \
-Dcap=disabled \
-Ddoh=enabled \
-Djemalloc=disabled
MAKE_JOBS_UNSAFE= yes
.if !defined(BIND_TOOLS_SLAVE)
# XXX: Add -devel
CONFLICTS= bind9[0-9][0-9]
.endif # !BIND_TOOLS_SLAVE
ETCDIR= ${PREFIX}/etc/namedb
# FIXME: figure out why build fails if enabled
MESON_ARGS+= -Dtracing=disabled
.if defined(BIND_TOOLS_SLAVE)
MESON_ARGS+= -Dbind-tools=enabled \
-Dlibdir=${PREFIX}/lib/bind-tools
.else
MESON_ARGS+= -Dbind-tools=disabled
# XXX: remove the big warning about it being a development version from pkg-message
SUB_FILES= named.conf pkg-message
PORTDOCS= *
.endif # BIND_TOOLS_SLAVE
OPTIONS_DEFINE= DNSTAP DOCS GEOIP IDN LMDB OVERRIDECACHE QUERYTRACE \
START_LATE
OPTIONS_DEFAULT= DNSTAP GSSAPI_NONE IDN LMDB STATS_JSON STATS_XML
OPTIONS_GROUP= STATS
OPTIONS_GROUP_STATS= STATS_JSON STATS_XML
OPTIONS_SINGLE= GSSAPI
OPTIONS_SINGLE_GSSAPI= GSSAPI_BASE GSSAPI_HEIMDAL GSSAPI_MIT GSSAPI_NONE
.if defined(BIND_TOOLS_SLAVE)
OPTIONS_EXCLUDE= DOCS GEOIP LMDB OVERRIDECACHE QUERYTRACE START_LATE \
STATS_JSON STATS_XML
.endif # BIND_TOOLS_SLAVE
OPTIONS_SUB= yes
DNSTAP_DESC= Provides fast passive logging of DNS messages
GSSAPI_BASE_DESC= Using Heimdal in base (nsupdate is broken)
GSSAPI_HEIMDAL_DESC= Using security/heimdal (nsupdate is broken)
GSSAPI_MIT_DESC= Using security/krb5
GSSAPI_NONE_DESC= Disable
LMDB_DESC= Use LMDB for zone management
OVERRIDECACHE_DESC= Use the override-cache patch
QUERYTRACE_DESC= Enable the very verbose query tracelogging
START_LATE_DESC= Start BIND late in the boot process (see help)
STATS_DESC= Statistics channels
STATS_JSON_DESC= Enable JSON statistics channel
STATS_XML_DESC= Enable XML statistics channel
DNSTAP_LIB_DEPENDS= libfstrm.so:devel/fstrm \
libprotobuf-c.so:devel/protobuf-c
DNSTAP_MESON_ENABLED= dnstap
DOCS_BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}sphinx_rtd_theme>0:textproc/py-sphinx_rtd_theme@${PY_FLAVOR} \
sphinx-build:textproc/py-sphinx
DOCS_USES= python:env
DOCS_MESON_ENABLED= doc
DOCS_ALL_TARGET= all arm
GEOIP_LIB_DEPENDS= libmaxminddb.so:net/libmaxminddb
GEOIP_MESON_ENABLED= geoip
GSSAPI_BASE_USES= gssapi
GSSAPI_BASE_CONFIGURE_ENV= ${GSSAPI_CONFIGURE_ARGS} \
KRB5_CONFIG="${KRB5CONFIG}"
GSSAPI_BASE_MESON_ON= -Dgssapi=enabled
GSSAPI_HEIMDAL_USES= gssapi:heimdal
GSSAPI_HEIMDAL_CONFIGURE_ENV= ${GSSAPI_CONFIGURE_ARGS} \
KRB5_CONFIG="${KRB5CONFIG}"
GSSAPI_HEIMDAL_MESON_ON= -Dgssapi=enabled
GSSAPI_MIT_USES= gssapi:mit
GSSAPI_MIT_CONFIGURE_ENV= ${GSSAPI_CONFIGURE_ARGS} \
KRB5_CONFIG="${KRB5CONFIG}"
GSSAPI_MIT_MESON_ON= -Dgssapi=enabled
GSSAPI_NONE_MESON_ON= -Dgssapi=disabled
IDN_LIB_DEPENDS= libidn2.so:dns/libidn2
IDN_USES= iconv
IDN_MESON_ENABLED= idn
LMDB_LIB_DEPENDS= liblmdb.so:databases/lmdb
LMDB_MESON_ENABLED= lmdb
OVERRIDECACHE_EXTRA_PATCHES= ${FILESDIR}/extrapatch-bind-min-override-ttl
QUERYTRACE_MESON_ON= -Dtrace-logging=query
START_LATE_SUB_LIST= NAMED_BEFORE="LOGIN" \
NAMED_REQUIRE="SERVERS cleanvar"
START_LATE_SUB_LIST_OFF= NAMED_BEFORE="SERVERS" \
NAMED_REQUIRE="NETWORKING ldconfig syslogd"
STATS_JSON_LIB_DEPENDS= libjson-c.so:devel/json-c
STATS_JSON_MESON_ENABLED= stats-json
STATS_JSON_LDFLAGS= -L${LOCALBASE}/lib -ljson-c
STATS_XML_USE= GNOME=libxml2
STATS_XML_MESON_ENABLED= stats-xml
.include <bsd.port.options.mk>
.if defined(WITH_DEBUG)
MESON_ARGS+= -Ddeveloper=enabled
BUILD_DEPENDS+= cmocka>0:sysutils/cmocka
.else
MESON_ARGS+= -Dcmocka=disabled \
-Ddeveloper=disabled
.endif
.include <bsd.port.pre.mk>
.if ${SSL_DEFAULT} == base
SUB_LIST+= ENGINES=/usr/lib/engines
.else
SUB_LIST+= ENGINES=${LOCALBASE}/lib/engines
.endif
.if !defined(BIND_TOOLS_SLAVE)
post-install:
${MKDIR} ${STAGEDIR}${PREFIX}/etc/mtree
${MKDIR} ${STAGEDIR}${ETCDIR}
. for i in dynamic primary secondary working
@${MKDIR} ${STAGEDIR}${ETCDIR}/$i
. endfor
${INSTALL_DATA} ${WRKDIR}/named.conf ${STAGEDIR}${ETCDIR}/named.conf.sample
${INSTALL_DATA} ${FILESDIR}/named.root ${STAGEDIR}${ETCDIR}
${INSTALL_DATA} ${FILESDIR}/empty.db ${STAGEDIR}${ETCDIR}/primary
${INSTALL_DATA} ${FILESDIR}/localhost-forward.db ${STAGEDIR}${ETCDIR}/primary
${INSTALL_DATA} ${FILESDIR}/localhost-reverse.db ${STAGEDIR}${ETCDIR}/primary
${INSTALL_DATA} ${FILESDIR}/BIND.chroot.dist ${STAGEDIR}${PREFIX}/etc/mtree/BIND.chroot.dist.sample
${INSTALL_DATA} ${FILESDIR}/BIND.chroot.local.dist ${STAGEDIR}${PREFIX}/etc/mtree/BIND.chroot.local.dist.sample
(for dir in ${WRKSRC}/lib/*/include; do \
cd $$dir && ${COPYTREE_SHARE} . ${STAGEDIR}${PREFIX}/include '-name *.h'; \
done)
post-install-DOCS-on:
${MKDIR} ${STAGEDIR}${DOCSDIR}/arm
${INSTALL_DATA} ${WRKSRC}/README.md ${STAGEDIR}${DOCSDIR}
cd ${WRKSRC}/_build/arm && ${COPYTREE_SHARE} . ${STAGEDIR}${DOCSDIR}/arm
.endif # BIND_TOOLS_SLAVE
.include <bsd.port.post.mk>