6 CATEGORIES= dns net ipv6
7 MASTER_SITES= ${MASTER_SITE_ISC}
8 MASTER_SITE_SUBDIR= bind9/${ISCVERSION}
10 DISTNAME= ${PORTNAME}-${ISCVERSION}
12 MAINTAINER= mat@FreeBSD.org
13 COMMENT= BIND DNS suite with updated DNSSEC and DNS64
17 # ISC releases things like 9.8.0-P1, which our versioning doesn't like
22 LIB_DEPENDS= libxml2.so:${PORTSDIR}/textproc/libxml2
25 CONFIGURE_ARGS= --localstatedir=/var --disable-linux-caps \
27 --with-randomdev=/dev/random \
28 --with-libxml2=${LOCALBASE} \
30 ETCDIR= ${PREFIX}/etc/namedb
32 CONFLICTS= bind9*-9.[45678].* bind9*-sdb-9.[45678].* bind-tools-9.*
34 OPTIONS_DEFAULT= IPV6 SSL THREADS
35 OPTIONS_DEFINE= SSL IDN REPLACE_BASE LARGE_FILE \
36 FIXED_RRSET SIGCHASE IPV6 THREADS GSSAPI FILTER_AAAA
37 .if !defined(BIND_TOOLS_SLAVE)
38 OPTIONS_DEFINE+= LINKS RPZ_NSIP RPZ_NSDNAME RRL DOCS RPZ_PATCH NEWSTATS
40 OPTIONS_GROUP_DLZ= DLZ_POSTGRESQL DLZ_MYSQL DLZ_BDB \
41 DLZ_LDAP DLZ_FILESYSTEM DLZ_STUB
42 .endif # BIND_TOOLS_SLAVE
44 SSL_DESC= Build with OpenSSL (Required for DNSSEC)
45 REPLACE_BASE_DESC= Replace base BIND (FreeBSD 9.x and earlier)
46 LARGE_FILE_DESC= 64-bit file support
47 FIXED_RRSET_DESC= Enable fixed rrset ordering
48 SIGCHASE_DESC= dig/host/nslookup will do DNSSEC validation
49 FILTER_AAAA_DESC= Enable filtering of AAAA records
51 LINKS_DESC= Create conf file symlinks in ${PREFIX}
52 NEWSTATS_DESC= Enable alternate xml statistics channel format
53 RPZ_NSIP_DESC= Enable RPZ NSIP trigger rules
54 RPZ_NSDNAME_DESC= Enable RPZ NSDNAME policy records
55 RPZ_PATCH_DESC= RPZ improvements
56 RRL_DESC= Response Rate Limiting
57 DLZ_DESC= Dynamically Loadable Zones
58 DLZ_POSTGRESQL_DESC= DLZ Postgres driver
59 DLZ_MYSQL_DESC= DLZ MySQL driver (no threading)
60 DLZ_BDB_DESC= DLZ BDB driver
61 DLZ_LDAP_DESC= DLZ LDAP driver
62 DLZ_FILESYSTEM_DESC= DLZ filesystem driver
63 DLZ_STUB_DESC= DLZ stub driver
65 .if !defined(BIND_TOOLS_SLAVE)
66 CONFLICTS+= bind-tools-9.*
67 .endif # BIND_TOOLS_SLAVE
69 SSL_CONFIGURE_ON= --with-openssl=${OPENSSLBASE}
71 SSL_CONFIGURE_OFF= --disable-openssl-version-check --without-openssl
73 NEWSTATS_CONFIGURE_ENABLE= newstats
76 IDN_CONFIGURE_ON= --with-idn=${LOCALBASE} ${ICONV_CONFIGURE_BASE}
77 IDN_LIB_DEPENDS= libidnkit.so:${PORTSDIR}/dns/idnkit
78 IDN_CONFIGURE_OFF= --without-idn
80 LARGE_FILE_CONFIGURE_ENABLE= largefile
82 SIGCHASE_CONFIGURE_ON= STD_CDEFINES="-DDIG_SIGCHASE=1"
84 IPV6_CONFIGURE_ENABLE= ipv6
86 FILTER_AAAA_CONFIGURE_ENABLE= filter-aaaa
88 DLZ_POSTGRESQL_CONFIGURE_ON= --with-dlz-postgres=yes
89 DLZ_POSTGRESQL_USE= pgsql=yes
91 FIXED_RRSET_CONFIGURE_ENABLE= fixed-rrset
93 RPZ_NSIP_CONFIGURE_ENABLE= rpz-nsip
95 RPZ_NSDNAME_CONFIGURE_ENABLE= rpz-nsdname
97 RPZ_PATCH_PATCHFILES= 9.9.5-rpz2+rl.14038.05.patch:vix
98 RPZ_PATCH_PATCH_SITES= http://ss.vix.su/~vjs/:vix
100 RRL_CONFIGURE_ENABLE= rrl
102 DLZ_MYSQL_CONFIGURE_ON= --with-dlz-mysql=yes
103 DLZ_MYSQL_USE= mysql=yes
105 DLZ_BDB_CONFIGURE_ON= --with-dlz-bdb=yes
108 DLZ_LDAP_CONFIGURE_ON= --with-dlz-ldap=yes
109 DLZ_LDAP_USE= openldap=yes
111 DLZ_FILESYSTEM_CONFIGURE_ON= --with-dlz-filesystem=yes
113 DLZ_STUB_CONFIGURE_ON= --with-dlz-stub=yes
115 .if defined(HEIMDAL_HOME)
116 GSSAPI_CONFIGURE_ON= --with-gssapi=${HEIMDAL_HOME}
117 GSSAPI_CONFIGURE_OFF= --without-gssapi
119 GSSAPI_CONFIGURE_WITH= gssapi
122 .include <bsd.port.options.mk>
124 .if (${ARCH} == "x86_64")
128 .if !${PORT_OPTIONS:MLINKS} || ${PORT_OPTIONS:MREPLACE_BASE}
129 PKGINSTALL=${NONEXISTENT}
132 .if ${PORT_OPTIONS:MTHREADS} && !${PORT_OPTIONS:MDLZ_MYSQL}
133 CONFIGURE_ARGS+= --enable-threads
135 CONFIGURE_ARGS+= --disable-threads
138 .if ${PORT_OPTIONS:MREPLACE_BASE}
139 .if ${OPSYS} == FreeBSD && ${OSVERSION} >= 1000100
140 IGNORE= REPLACE_BASE option is not supported on this release
144 PLIST_SUB+= SHARE_MAN="share/"
146 BIND_DESTETC= /etc/namedb
148 PLIST_SUB+= SHARE_MAN=""
149 .if ${OPSYS} == FreeBSD && ${OSVERSION} >= 1000100
150 BIND_DESTETC= ${PREFIX}/etc/namedb
151 PKGINSTALL= ${NONEXISTENT}
153 BIND_DESTETC= ${PREFIX}/etc
157 PKGDEINSTALL= ${PKGINSTALL}
159 CONFIGURE_ARGS+= --prefix=${PREFIX} \
160 --sysconfdir=${BIND_DESTETC}
161 PLIST_SUB+= BIND_DESTETC="${BIND_DESTETC}"
162 SUB_LIST+= BIND_DESTETC="${BIND_DESTETC}"
164 .if ${OPSYS} == FreeBSD && ${OSVERSION} >= 1000100
165 PLIST_SUB+= NOBASE="" BASE="@comment "
167 SUB_FILES+= named.conf
169 PLIST_SUB+= NOBASE="@comment " BASE=""
172 .if !defined(BIND_TOOLS_SLAVE)
174 .for FILE in check/named-checkconf.8 named/named.8 nsupdate/nsupdate.1 \
176 @${MV} ${WRKSRC}/bin/${FILE} ${WRKSRC}/bin/${FILE}.Dist
177 @${SED} -e 's#/etc/named.conf#${BIND_DESTETC}/named.conf#g' \
178 -e 's#/etc/rndc.conf#${BIND_DESTETC}/rndc.conf#g' \
179 -e "s#/var\/run\/named\/named.pid#/var/run/named/pid#" \
180 ${WRKSRC}/bin/${FILE}.Dist > ${WRKSRC}/bin/${FILE}
182 @${MV} ${WRKSRC}/Makefile.in ${WRKSRC}/Makefile.in.Dist
183 @${SED} -e 's#.*bind\.keys.*##' ${WRKSRC}/Makefile.in.Dist > \
184 ${WRKSRC}/Makefile.in
185 @${MV} ${WRKSRC}/bin/named/Makefile.in ${WRKSRC}/bin/named/Makefile.in.Dist
186 @${SED} -e 's/$${PERL}/#/' -e 's/bind.keys.h/#/g' -e 's/bind9.xsl.h/#/g' \
187 ${WRKSRC}/bin/named/Makefile.in.Dist > \
188 ${WRKSRC}/bin/named/Makefile.in
190 .if ${PORT_OPTIONS:MDOCS}
194 .if ${PORT_OPTIONS:MDOCS}
195 ${MKDIR} ${STAGEDIR}${DOCSDIR}/arm ${STAGEDIR}${DOCSDIR}/misc
196 ${INSTALL_DATA} ${WRKSRC}/doc/arm/*.html ${STAGEDIR}${DOCSDIR}/arm
197 ${INSTALL_DATA} ${WRKSRC}/doc/arm/Bv9ARM.pdf ${STAGEDIR}${DOCSDIR}
198 ${INSTALL_DATA} ${WRKSRC}/doc/misc/[a-z]* ${STAGEDIR}${DOCSDIR}/misc
199 ${INSTALL_DATA} ${WRKSRC}/CHANGES ${WRKSRC}/COPYRIGHT ${WRKSRC}/FAQ \
200 ${WRKSRC}/HISTORY ${WRKSRC}/README ${STAGEDIR}${DOCSDIR}
203 .if ${OPSYS} == FreeBSD && ${OSVERSION} >= 1000100
204 ${MKDIR} ${STAGEDIR}${BIND_DESTETC}
205 .for i in dynamic master slave working
206 @${MKDIR} ${STAGEDIR}${BIND_DESTETC}/$i
208 ${INSTALL_DATA} ${WRKDIR}/named.conf ${STAGEDIR}${BIND_DESTETC}/named.conf.sample
209 ${INSTALL_DATA} ${FILESDIR}/named.root ${STAGEDIR}${BIND_DESTETC}
210 ${INSTALL_DATA} ${FILESDIR}/empty.db ${STAGEDIR}${BIND_DESTETC}/master
211 ${INSTALL_DATA} ${FILESDIR}/localhost-forward.db ${STAGEDIR}${BIND_DESTETC}/master
212 ${INSTALL_DATA} ${FILESDIR}/localhost-reverse.db ${STAGEDIR}${BIND_DESTETC}/master
214 ${INSTALL_DATA} ${WRKSRC}/bin/rndc/rndc.conf \
215 ${STAGEDIR}${BIND_DESTETC}/rndc.conf.sample
217 .endif # BIND_TOOLS_SLAVE
219 .include <bsd.port.mk>