freebsd-ports/dns/bind99/Makefile

226 lines
6.6 KiB
Makefile
Raw Normal View History

# $FreeBSD$
PORTNAME= bind
PORTVERSION= 9.9.5
PORTREVISION= 18
CATEGORIES= dns net ipv6
MASTER_SITES= ${MASTER_SITE_ISC}
MASTER_SITE_SUBDIR= bind9/${ISCVERSION}
PKGNAMESUFFIX?= 99
DISTNAME= ${PORTNAME}-${ISCVERSION}
MAINTAINER= mat@FreeBSD.org
COMMENT= BIND DNS suite with updated DNSSEC and DNS64
2013-01-04 11:47:28 +01:00
LICENSE= ISCL
# ISC releases things like 9.8.0-P1, which our versioning doesn't like
ISCVERSION= 9.9.5
MAKE_JOBS_UNSAFE= yes
LIB_DEPENDS= libxml2.so:${PORTSDIR}/textproc/libxml2
GNU_CONFIGURE= yes
CONFIGURE_ARGS= --localstatedir=/var --disable-linux-caps \
--disable-symtable \
--with-randomdev=/dev/random \
--with-libxml2=${LOCALBASE} \
--without-python
ETCDIR= ${PREFIX}/etc/namedb
CONFLICTS= bind9*-9.[45678].* bind9*-sdb-9.[45678].* bind-tools-9.*
OPTIONS_DEFAULT= IPV6 SSL THREADS
OPTIONS_DEFINE= SSL IDN REPLACE_BASE LARGE_FILE FIXED_RRSET SIGCHASE \
IPV6 THREADS GSSAPI FILTER_AAAA GOST
.if !defined(BIND_TOOLS_SLAVE)
OPTIONS_DEFINE+= LINKS RPZ_NSIP RPZ_NSDNAME RRL DOCS RPZ_PATCH NEWSTATS
OPTIONS_GROUP= DLZ
OPTIONS_GROUP_DLZ= DLZ_POSTGRESQL DLZ_MYSQL DLZ_BDB \
DLZ_LDAP DLZ_FILESYSTEM DLZ_STUB
.endif # BIND_TOOLS_SLAVE
SSL_DESC= Build with OpenSSL (Required for DNSSEC)
REPLACE_BASE_DESC= Replace base BIND (FreeBSD 9.x and earlier)
LARGE_FILE_DESC= 64-bit file support
FIXED_RRSET_DESC= Enable fixed rrset ordering
SIGCHASE_DESC= dig/host/nslookup will do DNSSEC validation
FILTER_AAAA_DESC= Enable filtering of AAAA records
GOST_DESC= Enable GOST ciphers, needs SSL (see help)
LINKS_DESC= Create conf file symlinks in ${PREFIX}
NEWSTATS_DESC= Enable alternate xml statistics channel format
RPZ_NSIP_DESC= Enable RPZ NSIP trigger rules
RPZ_NSDNAME_DESC= Enable RPZ NSDNAME policy records
RPZ_PATCH_DESC= RPZ improvements
Update to 9.9.4 Note that the Rate Limiting option has been renamed. Security Fixes Previously an error in bounds checking on the private type 'keydata' could be used to deny service through a deliberately triggerable REQUIRE failure (CVE-2013-4854). [RT #34238] Prevents exploitation of a runtime_check which can crash named when satisfying a recursive query for particular malformed zones. (CVE-2013-3919) [RT #33690] New Features Added Response Rate Limiting (RRL) functionality to reduce the effectiveness of DNS as an amplifier for reflected denial-of-service attacks by rate-limiting substantially-identical responses. [RT #28130] Feature Changes rndc status now also shows the build-id. [RT #20422] Improved OPT pseudo-record processing to make it easier to support new EDNS options. [RT #34414] "configure" now finishes by printing a summary of optional BIND features and whether they are active or inactive. ("configure --enable-full-report" increases the verbosity of the summary.) [RT #31777] Addressed compatibility issues with newer versions of Microsoft Visual Studio. [RT #33916] Improved the 'rndc' man page. [RT #33506] 'named -g' now no longer works with an invalid logging configuration. [RT #33473] The default (and minimum) value for tcp-listen-queue is now 10 instead of 3. This is a subtle control setting (not applicable to all OS environments). When there is a high rate of inbound TCP connections, it controls how many connections can be queued before they are accepted by named. Once this limit is exceeded, new TCP connections will be rejected. Note however that a value of 10 does not imply a strict limit of 10 queued TCP connections - the impact of changing this configuration setting will be OS-dependent. Larger values for tcp-listen queue will permit more pending tcp connections, which may be needed where there is a high rate of TCP-based traffic (for example in a dynamic environment where there are frequent zone updates and transfers). For most production servers the new default value of 10 should be adequate. [RT #33029] Added support for OpenSSL versions 0.9.8y, 1.0.0k, and 1.0.1e with PKCS#11. [RT #33463] Added logging messages on slave servers when they forward DDNS updates to a master. [RT #33240] Changed the logging category for RRL events from 'queries' to 'query-errors'. [RT #33540]
2013-09-20 10:22:45 +02:00
RRL_DESC= Response Rate Limiting
DLZ_DESC= Dynamically Loadable Zones
DLZ_POSTGRESQL_DESC= DLZ Postgres driver
DLZ_MYSQL_DESC= DLZ MySQL driver (no threading)
DLZ_BDB_DESC= DLZ BDB driver
DLZ_LDAP_DESC= DLZ LDAP driver
DLZ_FILESYSTEM_DESC= DLZ filesystem driver
DLZ_STUB_DESC= DLZ stub driver
2014-01-06 14:34:48 +01:00
.if !defined(BIND_TOOLS_SLAVE)
CONFLICTS+= bind-tools-9.*
.endif # BIND_TOOLS_SLAVE
2014-01-06 14:34:48 +01:00
SSL_CONFIGURE_ON= --with-openssl=${OPENSSLBASE}
SSL_USE= openssl=yes
SSL_CONFIGURE_OFF= --disable-openssl-version-check --without-openssl
NEWSTATS_CONFIGURE_ENABLE= newstats
2014-01-06 14:34:48 +01:00
IDN_USES= iconv
IDN_CONFIGURE_ON= --with-idn=${LOCALBASE} ${ICONV_CONFIGURE_BASE}
IDN_LIB_DEPENDS= libidnkit.so:${PORTSDIR}/dns/idnkit
IDN_CONFIGURE_OFF= --without-idn
2014-01-06 14:34:48 +01:00
LARGE_FILE_CONFIGURE_ENABLE= largefile
2014-01-06 14:34:48 +01:00
SIGCHASE_CONFIGURE_ON= STD_CDEFINES="-DDIG_SIGCHASE=1"
2014-01-06 14:34:48 +01:00
IPV6_CONFIGURE_ENABLE= ipv6
2014-01-06 14:34:48 +01:00
FILTER_AAAA_CONFIGURE_ENABLE= filter-aaaa
GOST_CONFIGURE_WITH= gost
2014-01-06 14:34:48 +01:00
DLZ_POSTGRESQL_CONFIGURE_ON= --with-dlz-postgres=yes
DLZ_POSTGRESQL_USE= pgsql=yes
2014-01-06 14:34:48 +01:00
FIXED_RRSET_CONFIGURE_ENABLE= fixed-rrset
2014-01-06 14:34:48 +01:00
RPZ_NSIP_CONFIGURE_ENABLE= rpz-nsip
2014-01-06 14:34:48 +01:00
RPZ_NSDNAME_CONFIGURE_ENABLE= rpz-nsdname
RPZ_PATCH_PATCHFILES= 9.9.5-rpz2+rl.14038.05.patch:vix
RPZ_PATCH_PATCH_SITES= http://ss.vix.su/~vjs/:vix
2014-01-06 14:34:48 +01:00
RRL_CONFIGURE_ENABLE= rrl
2014-01-06 14:34:48 +01:00
DLZ_MYSQL_CONFIGURE_ON= --with-dlz-mysql=yes
DLZ_MYSQL_USE= mysql=yes
2014-01-06 14:34:48 +01:00
DLZ_BDB_CONFIGURE_ON= --with-dlz-bdb=yes
DLZ_BDB_USE= bdb=yes
2014-01-06 14:34:48 +01:00
DLZ_LDAP_CONFIGURE_ON= --with-dlz-ldap=yes
DLZ_LDAP_USE= openldap=yes
2014-01-06 14:34:48 +01:00
DLZ_FILESYSTEM_CONFIGURE_ON= --with-dlz-filesystem=yes
2014-01-06 14:34:48 +01:00
DLZ_STUB_CONFIGURE_ON= --with-dlz-stub=yes
.if defined(HEIMDAL_HOME)
GSSAPI_CONFIGURE_ON= --with-gssapi=${HEIMDAL_HOME}
GSSAPI_CONFIGURE_OFF= --without-gssapi
.else
2014-01-06 18:31:55 +01:00
GSSAPI_CONFIGURE_WITH= gssapi
.endif
2014-01-06 14:34:48 +01:00
.include <bsd.port.options.mk>
.if (${ARCH} == "amd64")
ARCH= x86_64
.endif
.if !${PORT_OPTIONS:MLINKS} || ${PORT_OPTIONS:MREPLACE_BASE}
PKGINSTALL=${NONEXISTENT}
.endif
.if ${PORT_OPTIONS:MTHREADS} && !${PORT_OPTIONS:MDLZ_MYSQL}
CONFIGURE_ARGS+= --enable-threads
.else
CONFIGURE_ARGS+= --disable-threads
.endif
.if ${PORT_OPTIONS:MREPLACE_BASE}
.if ${OPSYS} == FreeBSD && ${OSVERSION} >= 1000100
IGNORE= REPLACE_BASE option is not supported on this release
.endif # >= 10.0
PKGNAMESUFFIX= -base
PREFIX= /usr
2014-01-06 14:34:48 +01:00
PLIST_SUB+= SHARE_MAN="share/"
NO_MTREE= yes
BIND_DESTETC= /etc/namedb
.else # REPLACE_BASE
2014-01-06 14:34:48 +01:00
PLIST_SUB+= SHARE_MAN=""
.if ${OPSYS} == FreeBSD && ${OSVERSION} >= 1000100
BIND_DESTETC= ${PREFIX}/etc/namedb
PKGINSTALL= ${NONEXISTENT}
.else # >= 10.0
BIND_DESTETC= ${PREFIX}/etc
.endif # >= 10.0
.endif # REPLACE_BASE
2014-01-06 14:34:48 +01:00
PKGDEINSTALL= ${PKGINSTALL}
CONFIGURE_ARGS+= --prefix=${PREFIX} \
--sysconfdir=${BIND_DESTETC}
SUB_LIST+= BIND_DESTETC="${BIND_DESTETC}"
.if ${OPSYS} == FreeBSD && ${OSVERSION} >= 1000100
PLIST_SUB+= NOBASE="" BASE="@comment "
USE_RC_SUBR+= named
SUB_FILES+= named.conf
.if ${PORT_OPTIONS:MGOST}
WITH_OPENSSL_PORT=yes
.endif
.else
PLIST_SUB+= NOBASE="@comment " BASE=""
.if ${PORT_OPTIONS:MSSL}
WITH_OPENSSL_PORT= yes
.endif
.endif
.if !defined(BIND_TOOLS_SLAVE)
post-patch:
.for FILE in check/named-checkconf.8 named/named.8 nsupdate/nsupdate.1 \
rndc/rndc.8
@${MV} ${WRKSRC}/bin/${FILE} ${WRKSRC}/bin/${FILE}.Dist
@${SED} -e 's#/etc/named.conf#${BIND_DESTETC}/named.conf#g' \
-e 's#/etc/rndc.conf#${BIND_DESTETC}/rndc.conf#g' \
-e "s#/var\/run\/named\/named.pid#/var/run/named/pid#" \
${WRKSRC}/bin/${FILE}.Dist > ${WRKSRC}/bin/${FILE}
.endfor
@${MV} ${WRKSRC}/Makefile.in ${WRKSRC}/Makefile.in.Dist
@${SED} -e 's#.*bind\.keys.*##' ${WRKSRC}/Makefile.in.Dist > \
${WRKSRC}/Makefile.in
@${MV} ${WRKSRC}/bin/named/Makefile.in ${WRKSRC}/bin/named/Makefile.in.Dist
@${SED} -e 's/$${PERL}/#/' -e 's/bind.keys.h/#/g' -e 's/bind9.xsl.h/#/g' \
${WRKSRC}/bin/named/Makefile.in.Dist > \
${WRKSRC}/bin/named/Makefile.in
.if ${PORT_OPTIONS:MDOCS}
PORTDOCS= *
.endif
post-install:
.if ${PORT_OPTIONS:MDOCS}
2014-01-06 14:34:48 +01:00
${MKDIR} ${STAGEDIR}${DOCSDIR}/arm ${STAGEDIR}${DOCSDIR}/misc
${INSTALL_DATA} ${WRKSRC}/doc/arm/*.html ${STAGEDIR}${DOCSDIR}/arm
${INSTALL_DATA} ${WRKSRC}/doc/arm/Bv9ARM.pdf ${STAGEDIR}${DOCSDIR}
${INSTALL_DATA} ${WRKSRC}/doc/misc/[a-z]* ${STAGEDIR}${DOCSDIR}/misc
${INSTALL_DATA} ${WRKSRC}/CHANGES ${WRKSRC}/COPYRIGHT ${WRKSRC}/FAQ \
${WRKSRC}/HISTORY ${WRKSRC}/README ${STAGEDIR}${DOCSDIR}
.endif
2014-01-06 14:34:48 +01:00
.if ${OPSYS} == FreeBSD && ${OSVERSION} >= 1000100
${MKDIR} ${STAGEDIR}${ETCDIR}
2014-01-06 14:34:48 +01:00
.for i in dynamic master slave 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}/master
${INSTALL_DATA} ${FILESDIR}/localhost-forward.db ${STAGEDIR}${ETCDIR}/master
${INSTALL_DATA} ${FILESDIR}/localhost-reverse.db ${STAGEDIR}${ETCDIR}/master
${INSTALL_DATA} ${WRKSRC}/bin/rndc/rndc.conf ${STAGEDIR}${ETCDIR}/rndc.conf.sample
.endif
.endif # BIND_TOOLS_SLAVE
.include <bsd.port.mk>