224 lines
6.4 KiB
Makefile
224 lines
6.4 KiB
Makefile
# pkg-help formatted with fmt 59 63
|
|
|
|
PORTNAME= bind
|
|
DISTVERSION= 9.21.26
|
|
.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= mat@FreeBSD.org
|
|
.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= liblmdb.so:databases/lmdb0 \
|
|
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} \
|
|
-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 OVERRIDECACHE QUERYTRACE \
|
|
START_LATE
|
|
OPTIONS_DEFAULT= DNSTAP ${${OSREL:R} < 15:?GSSAPI_NONE:GSSAPI_BASE} IDN \
|
|
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 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 ${${OSREL:R} < 15:?Heimdal in base (nsupdate is broken):MIT in base}
|
|
GSSAPI_HEIMDAL_DESC= Using security/heimdal (nsupdate is broken)
|
|
GSSAPI_MIT_DESC= Using security/krb5
|
|
GSSAPI_NONE_DESC= Disable
|
|
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
|
|
|
|
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
|
|
|
|
.if ${OSREL:R} >= 15 && ${PORT_OPTIONS:MGSSAPI_HEIMDAL}
|
|
BROKEN= Does not build
|
|
.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)
|
|
regen-patches:
|
|
cd ${.CURDIR} ; \
|
|
make clean ; \
|
|
mv files/extrapatch-bind-min-override-ttl files/patch-bind-min-override-ttl ; \
|
|
make extract do-patch makepatch BATCH= NO_IGNORE= PATCH_DEBUG=yes EXTRA_PATCHES= || : ; \
|
|
mv files/patch-bind-min-override-ttl files/extrapatch-bind-min-override-ttl
|
|
|
|
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>
|