freebsd-ports/dns/bind9-devel/Makefile
Matthias Fechner f90ccf6cfc Regenerate all distfiles using gitlab as source.
This regeneration is required as the new gitlab version changed
the address and the directory the source files can be downloaded.

This commit also applies some small fixes to make sure all ports using
gitlab are buildable.

Reviewed by:	mat
Approved by:	portmgr
Differential Revision:	https://reviews.freebsd.org/D29628

(cherry picked from commit 911f04257e)
2021-04-10 13:01:27 +02:00

284 lines
8.3 KiB
Makefile

# pkg-help formatted with fmt 59 63
PORTNAME= bind
PORTVERSION= ${ISCVERSION:S/-P/P/:S/b/.b/:S/a/.a/:S/rc/.rc/}
.if defined(BIND_TOOLS_SLAVE)
# dns/bind-tools here
PORTREVISION= 0
.else
# XXX: correct version
# dns/bind9xx here
PORTREVISION= 0
.endif
CATEGORIES= dns net
# XXX: put the ISC master_site
#MASTER_SITES= ISC/bind9/${ISCVERSION}
MASTER_SITES= LOCAL/mat/bind
.if defined(BIND_TOOLS_SLAVE)
PKGNAMESUFFIX= -tools
.else
# XXX: correct SUFFIX.
PKGNAMESUFFIX= 9-devel
.endif
# XXX: correct DISTNAME.
#DISTNAME= ${PORTNAME}-${ISCVERSION}
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
# 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= libuv.so:devel/libuv \
libnghttp2.so:www/libnghttp2 \
libxml2.so:textproc/libxml2
.if !defined(BIND_TOOLS_SLAVE)
RUN_DEPENDS= bind-tools>0:dns/bind-tools
.endif
# XXX: remove tar:bz2
USES= autoreconf compiler:c11 cpe libedit libtool pkgconfig ssl tar:bz2
# ISC releases things like 9.8.0-P1, which our versioning doesn't like
ISCVERSION= 9.17.11a0.2021.04.02
# XXX: Remove gitlab
USE_GITLAB= yes
GL_SITE= https://gitlab.isc.org
GL_ACCOUNT= isc-projects
GL_PROJECT= bind9
GL_COMMIT= 8556c7f854837facf43a4c57fd03f5d4111b5732
# This is required till https://gitlab.isc.org is upgraded to newer gitlab version
WRKSRC= ${WRKDIR}/${GL_PROJECT}-${GL_COMMIT}-${GL_COMMIT}
CPE_VENDOR= isc
CPE_VERSION= ${ISCVERSION:C/-.*//}
.if ${ISCVERSION:M*-*}
CPE_UPDATE= ${ISCVERSION:C/.*-//:tl}
.endif
GNU_CONFIGURE= yes
CONFIGURE_ARGS= --disable-linux-caps \
--localstatedir=/var \
--sysconfdir=${ETCDIR} \
--with-dlopen=yes \
--with-libxml2 \
--with-openssl=${OPENSSLBASE} \
--enable-dnsrps \
--with-readline=libedit
CONFIGURE_ENV= READLINE_CFLAGS="-L${LOCALBASE}/lib"
ETCDIR= ${PREFIX}/etc/namedb
.if defined(BIND_TOOLS_SLAVE)
EXTRA_PATCHES= ${PATCHDIR}/extrapatch-bind-tools
CONFIGURE_ARGS+= --libdir=${PREFIX}/lib/bind-tools
.else
USE_RC_SUBR= named
# XXX: remove the big warning about it being a development version from pkg-message
SUB_FILES= named.conf pkg-message
EXTRA_PATCHES= ${PATCHDIR}/extrapatch-no-bind-tools
PORTDOCS= *
# XXX: Add -devel
CONFLICTS= bind911 bind912 bind913 bind914 bind916
.endif # BIND_TOOLS_SLAVE
MAKE_JOBS_UNSAFE= yes
OPTIONS_DEFAULT= DLZ_FILESYSTEM GSSAPI_NONE IDN JSON LMDB MANPAGES \
TCP_FASTOPEN DNSTAP
OPTIONS_DEFINE= DNSTAP DOCS FIXED_RRSET GEOIP IDN JSON LARGE_FILE LMDB \
MANPAGES OVERRIDECACHE PORTREVISION QUERYTRACE \
START_LATE TCP_FASTOPEN
OPTIONS_RADIO= CRYPTO
OPTIONS_RADIO_CRYPTO= NATIVE_PKCS11
OPTIONS_GROUP= DLZ
OPTIONS_GROUP_DLZ= DLZ_BDB DLZ_FILESYSTEM DLZ_LDAP DLZ_MYSQL \
DLZ_POSTGRESQL DLZ_STUB
OPTIONS_SINGLE= GSSAPI
OPTIONS_SINGLE_GSSAPI= GSSAPI_BASE GSSAPI_HEIMDAL GSSAPI_MIT GSSAPI_NONE
.if defined(BIND_TOOLS_SLAVE)
OPTIONS_EXCLUDE= ${OPTIONS_GROUP_DLZ} DNSTAP DOCS GEOIP LMDB \
OVERRIDECACHE PORTREVISION QUERYTRACE START_LATE \
TCP_FASTOPEN
.endif # BIND_TOOLS_SLAVE
OPTIONS_SUB= yes
CRYPTO_DESC= Choose which crypto engine to use
DLZ_BDB_DESC= DLZ BDB driver
DLZ_DESC= Dynamically Loadable Zones
DLZ_FILESYSTEM_DESC= DLZ filesystem driver
DLZ_LDAP_DESC= DLZ LDAP driver
DLZ_MYSQL_DESC= DLZ MySQL driver (no threading)
DLZ_POSTGRESQL_DESC= DLZ Postgres driver
DLZ_STUB_DESC= DLZ stub driver
DNSTAP_DESC= Provides fast passive logging of DNS messages
FIXED_RRSET_DESC= Enable fixed rrset ordering
GSSAPI_BASE_DESC= Using Heimdal in base
GSSAPI_HEIMDAL_DESC= Using security/heimdal
GSSAPI_MIT_DESC= Using security/krb5
GSSAPI_NONE_DESC= Disable
LARGE_FILE_DESC= 64-bit file support
LMDB_DESC= Use LMDB for zone management
OVERRIDECACHE_DESC= Use the override-cache patch
NATIVE_PKCS11_DESC= Use PKCS\#11 native API (**READ HELP**)
PORTREVISION_DESC= Show PORTREVISION in the version string
QUERYTRACE_DESC= Enable the very verbose query tracelogging
START_LATE_DESC= Start BIND late in the boot process (see help)
TCP_FASTOPEN_DESC= RFC 7413 support
DLZ_BDB_CONFIGURE_ON= --with-dlz-bdb=yes
DLZ_BDB_USES= bdb
DLZ_FILESYSTEM_CONFIGURE_ON= --with-dlz-filesystem=yes
DLZ_LDAP_CONFIGURE_ON= --with-dlz-ldap=yes
DLZ_LDAP_USE= OPENLDAP=yes
DLZ_MYSQL_CONFIGURE_ON= --with-dlz-mysql=yes
DLZ_MYSQL_USES= mysql
DLZ_POSTGRESQL_CONFIGURE_ON= --with-dlz-postgres=yes
DLZ_POSTGRESQL_USES= pgsql
DLZ_STUB_CONFIGURE_ON= --with-dlz-stub=yes
DNSTAP_CONFIGURE_ENABLE= dnstap
DNSTAP_LIB_DEPENDS= libfstrm.so:devel/fstrm \
libprotobuf-c.so:devel/protobuf-c
FIXED_RRSET_CONFIGURE_ENABLE= fixed-rrset
GEOIP_CONFIGURE_ENABLE= geoip
GEOIP_CONFIGURE_WITH= maxminddb
GEOIP_LIB_DEPENDS= libmaxminddb.so:net/libmaxminddb
GSSAPI_BASE_CONFIGURE_ON= --with-gssapi="${KRB5CONFIG}" \
${GSSAPI_CONFIGURE_ARGS}
GSSAPI_BASE_USES= gssapi
GSSAPI_HEIMDAL_CONFIGURE_ON= --with-gssapi="${KRB5CONFIG}" \
${GSSAPI_CONFIGURE_ARGS}
GSSAPI_HEIMDAL_USES= gssapi:heimdal
GSSAPI_MIT_CONFIGURE_ON= --with-gssapi="${KRB5CONFIG}" \
${GSSAPI_CONFIGURE_ARGS}
GSSAPI_MIT_USES= gssapi:mit
GSSAPI_NONE_CONFIGURE_ON= --without-gssapi
IDN_CONFIGURE_OFF= --without-libidn2
IDN_CONFIGURE_ON= ${ICONV_CONFIGURE_BASE} \
--with-libidn2=${LOCALBASE}
IDN_LIB_DEPENDS= libidn2.so:dns/libidn2
IDN_USES= iconv
JSON_CONFIGURE_WITH= json-c
JSON_LIB_DEPENDS= libjson-c.so:devel/json-c
JSON_LDFLAGS= -L${LOCALBASE}/lib -ljson-c
LARGE_FILE_CONFIGURE_ENABLE= largefile
LMDB_CONFIGURE_WITH= lmdb=${LOCALBASE}
LMDB_LIB_DEPENDS= liblmdb.so:databases/lmdb
MANPAGES_BUILD_DEPENDS= sphinx-build:textproc/py-sphinx
OVERRIDECACHE_EXTRA_PATCHES= ${FILESDIR}/extrapatch-bind-min-override-ttl
NATIVE_PKCS11_CONFIGURE_ENABLE= native-pkcs11
QUERYTRACE_CONFIGURE_ENABLE= querytrace
START_LATE_SUB_LIST= NAMED_BEFORE="LOGIN" \
NAMED_REQUIRE="SERVERS cleanvar"
START_LATE_SUB_LIST_OFF= NAMED_BEFORE="SERVERS" \
NAMED_REQUIRE="NETWORKING ldconfig syslogd"
TCP_FASTOPEN_CONFIGURE_ENABLE= tcp-fastopen
.include <bsd.port.options.mk>
.if defined(WITH_DEBUG)
CONFIGURE_ARGS+= --enable-developer \
--enable-symtable
USES+= perl5
USE_PERL5= build
BUILD_DEPENDS+= cmocka>0:sysutils/cmocka
.endif
.include <bsd.port.pre.mk>
.if ${SSL_DEFAULT} == base
SUB_LIST+= ENGINES=/usr/lib/engines
.else
SUB_LIST+= ENGINES=${LOCALBASE}/lib/engines
.endif
# XXX: Remove first REINPLACE_CMD
post-patch:
@${REINPLACE_CMD} -e '/^m4_define(\[bind_SRCID/s/\[m4.*\]/${GL_COMMIT}/' \
${WRKSRC}/configure.ac
.for FILE in check/named-checkconf.rst named/named.rst nsupdate/nsupdate.rst \
rndc/rndc.rst
@${REINPLACE_CMD} -e 's#/etc/named.conf#${ETCDIR}/named.conf#g' \
-e 's#/etc/rndc.conf#${ETCDIR}/rndc.conf#g' \
-e "s#/var\/run\/named\/named.pid#/var/run/named/pid#" \
${WRKSRC}/bin/${FILE}
.endfor
.if !defined(BIND_TOOLS_SLAVE)
. if ${PORTREVISION:N0}
post-patch-PORTREVISION-on:
@${REINPLACE_CMD} '/^m4_define.*bind_VERSION_EXTRA/s#)#_${PORTREVISION})#' \
${WRKSRC}/configure.ac
. endif
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
${INSTALL_DATA} ${WRKSRC}/bin/rndc/rndc.conf \
${STAGEDIR}${ETCDIR}/rndc.conf.sample
# FIXME: this is strange.
@${RM} -rf ${STAGEDIR}/wrkdirs
post-install-DOCS-on:
${MKDIR} ${STAGEDIR}${DOCSDIR}
${INSTALL_DATA} ${WRKSRC}/CHANGES* ${WRKSRC}/HISTORY.md \
${WRKSRC}/README.md ${STAGEDIR}${DOCSDIR}
.else
do-install:
for dir in bin lib doc/man; do \
(cd ${INSTALL_WRKSRC}/$$dir && ${SETENV} ${MAKE_ENV} ${FAKEROOT} ${MAKE_CMD} ${MAKE_FLAGS} ${MAKEFILE} ${MAKE_ARGS} ${INSTALL_TARGET}) ; \
done
@${RM} -r ${STAGEDIR}${PREFIX}/include
.endif # BIND_TOOLS_SLAVE
.include <bsd.port.post.mk>