PageRenderTime 50ms CodeModel.GetById 20ms RepoModel.GetById 0ms app.codeStats 0ms

/dns/bind916/Makefile

https://github.com/freebsd/freebsd-ports
Makefile | 230 lines | 173 code | 52 blank | 5 comment | 6 complexity | af48ed1d75bb6c70110a6f6c3288732a MD5 | raw file
  1. # pkg-help formatted with fmt 59 63
  2. PORTNAME= bind
  3. PORTVERSION= ${ISCVERSION:S/-P/P/:S/b/.b/:S/a/.a/:S/rc/.rc/}
  4. PORTREVISION= 0
  5. CATEGORIES= dns net
  6. MASTER_SITES= ISC/bind9/${ISCVERSION}
  7. PKGNAMESUFFIX= 916
  8. DISTNAME= ${PORTNAME}-${ISCVERSION}
  9. MAINTAINER= mat@FreeBSD.org
  10. COMMENT= BIND DNS suite with updated DNSSEC and DNS64
  11. # Uncomment when bind920 comes of age.
  12. # DEPRECATED= End of life, please migrate to a newer version of BIND9
  13. # EXPIRATION_DATE= 2023-12-31
  14. LICENSE= MPL20
  15. LICENSE_FILE= ${WRKSRC}/LICENSE
  16. LIB_DEPENDS= libuv.so:devel/libuv \
  17. libxml2.so:textproc/libxml2
  18. RUN_DEPENDS= bind-tools>0:dns/bind-tools
  19. USES= compiler:c11 cpe libedit pkgconfig ssl tar:xz
  20. # ISC releases things like 9.8.0-P1, which our versioning doesn't like
  21. ISCVERSION= 9.16.30
  22. CPE_VENDOR= isc
  23. CPE_VERSION= ${ISCVERSION:C/-.*//}
  24. .if ${ISCVERSION:M*-*}
  25. CPE_UPDATE= ${ISCVERSION:C/.*-//:tl}
  26. .endif
  27. GNU_CONFIGURE= yes
  28. CONFIGURE_ARGS= --disable-linux-caps \
  29. --localstatedir=/var \
  30. --sysconfdir=${ETCDIR} \
  31. --with-dlopen=yes \
  32. --without-python \
  33. --with-libxml2 \
  34. --with-openssl=${OPENSSLBASE} \
  35. --with-readline="-L${LOCALBASE}/lib -ledit"
  36. ETCDIR= ${PREFIX}/etc/namedb
  37. USE_RC_SUBR= named
  38. SUB_FILES= named.conf pkg-message
  39. PORTDOCS= *
  40. CONFLICTS= bind9[0-9][0-9] bind9-devel
  41. MAKE_JOBS_UNSAFE= yes
  42. OPTIONS_DEFAULT= DLZ_FILESYSTEM GSSAPI_NONE IDN JSON LMDB \
  43. TCP_FASTOPEN MANPAGES DNSTAP
  44. OPTIONS_DEFINE= DNSTAP DOCS FIXED_RRSET GEOIP IDN JSON LARGE_FILE LMDB \
  45. OVERRIDECACHE PORTREVISION QUERYTRACE \
  46. START_LATE TCP_FASTOPEN MANPAGES
  47. OPTIONS_RADIO= CRYPTO
  48. OPTIONS_RADIO_CRYPTO= NATIVE_PKCS11
  49. OPTIONS_GROUP= DLZ
  50. OPTIONS_GROUP_DLZ= DLZ_BDB DLZ_FILESYSTEM DLZ_LDAP DLZ_MYSQL \
  51. DLZ_POSTGRESQL DLZ_STUB
  52. OPTIONS_SINGLE= GSSAPI
  53. OPTIONS_SINGLE_GSSAPI= GSSAPI_BASE GSSAPI_HEIMDAL GSSAPI_MIT GSSAPI_NONE
  54. OPTIONS_SUB= yes
  55. CRYPTO_DESC= Choose which crypto engine to use
  56. DLZ_BDB_DESC= DLZ BDB driver
  57. DLZ_DESC= Dynamically Loadable Zones
  58. DLZ_FILESYSTEM_DESC= DLZ filesystem driver
  59. DLZ_LDAP_DESC= DLZ LDAP driver
  60. DLZ_MYSQL_DESC= DLZ MySQL driver (no threading)
  61. DLZ_POSTGRESQL_DESC= DLZ Postgres driver
  62. DLZ_STUB_DESC= DLZ stub driver
  63. DNSTAP_DESC= Provides fast passive logging of DNS messages
  64. FIXED_RRSET_DESC= Enable fixed rrset ordering
  65. GSSAPI_BASE_DESC= Using Heimdal in base
  66. GSSAPI_HEIMDAL_DESC= Using security/heimdal
  67. GSSAPI_MIT_DESC= Using security/krb5
  68. GSSAPI_NONE_DESC= Disable
  69. LARGE_FILE_DESC= 64-bit file support
  70. LMDB_DESC= Use LMDB for zone management
  71. OVERRIDECACHE_DESC= Use the override-cache patch
  72. NATIVE_PKCS11_DESC= Use PKCS\#11 native API (**READ HELP**)
  73. PORTREVISION_DESC= Show PORTREVISION in the version string
  74. QUERYTRACE_DESC= Enable the very verbose query tracelogging
  75. START_LATE_DESC= Start BIND late in the boot process (see help)
  76. TCP_FASTOPEN_DESC= RFC 7413 support
  77. DLZ_BDB_CONFIGURE_ON= --with-dlz-bdb=yes
  78. DLZ_BDB_USES= bdb
  79. DLZ_FILESYSTEM_CONFIGURE_ON= --with-dlz-filesystem=yes
  80. DLZ_LDAP_CONFIGURE_ON= --with-dlz-ldap=yes
  81. DLZ_LDAP_USE= OPENLDAP=yes
  82. DLZ_MYSQL_CONFIGURE_ON= --with-dlz-mysql=yes
  83. DLZ_MYSQL_USES= mysql
  84. DLZ_POSTGRESQL_CONFIGURE_ON= --with-dlz-postgres=yes
  85. DLZ_POSTGRESQL_USES= pgsql
  86. DLZ_STUB_CONFIGURE_ON= --with-dlz-stub=yes
  87. DOCS_BUILD_DEPENDS= sphinx-build:textproc/py-sphinx \
  88. ${PYTHON_PKGNAMEPREFIX}sphinx_rtd_theme>0:textproc/py-sphinx_rtd_theme@${PY_FLAVOR}
  89. DOCS_USES= python:env
  90. DNSTAP_CONFIGURE_ENABLE= dnstap
  91. DNSTAP_LIB_DEPENDS= libfstrm.so:devel/fstrm \
  92. libprotobuf-c.so:devel/protobuf-c
  93. FIXED_RRSET_CONFIGURE_ENABLE= fixed-rrset
  94. GEOIP_CONFIGURE_ENABLE= geoip
  95. GEOIP_CONFIGURE_WITH= maxminddb
  96. GEOIP_LIB_DEPENDS= libmaxminddb.so:net/libmaxminddb
  97. GSSAPI_BASE_CONFIGURE_ON= --with-gssapi=${GSSAPIBASEDIR} \
  98. ${GSSAPI_CONFIGURE_ARGS}
  99. GSSAPI_BASE_USES= gssapi
  100. GSSAPI_HEIMDAL_CONFIGURE_ON= --with-gssapi=${GSSAPIBASEDIR} \
  101. ${GSSAPI_CONFIGURE_ARGS}
  102. GSSAPI_HEIMDAL_USES= gssapi:heimdal
  103. GSSAPI_MIT_CONFIGURE_ON= --with-gssapi=${GSSAPIBASEDIR} \
  104. ${GSSAPI_CONFIGURE_ARGS}
  105. GSSAPI_MIT_USES= gssapi:mit
  106. GSSAPI_NONE_CONFIGURE_ON= --without-gssapi
  107. IDN_CONFIGURE_OFF= --without-libidn2
  108. IDN_CONFIGURE_ON= ${ICONV_CONFIGURE_BASE} \
  109. --with-libidn2=${LOCALBASE}
  110. IDN_LIB_DEPENDS= libidn2.so:dns/libidn2
  111. IDN_USES= iconv
  112. JSON_CONFIGURE_WITH= json-c
  113. JSON_LIB_DEPENDS= libjson-c.so:devel/json-c
  114. JSON_LDFLAGS= -L${LOCALBASE}/lib -ljson-c
  115. LARGE_FILE_CONFIGURE_ENABLE= largefile
  116. LMDB_CONFIGURE_WITH= lmdb=${LOCALBASE}
  117. LMDB_LIB_DEPENDS= liblmdb.so:databases/lmdb
  118. MANPAGES_BUILD_DEPENDS= sphinx-build:textproc/py-sphinx
  119. OVERRIDECACHE_EXTRA_PATCHES= ${FILESDIR}/extrapatch-bind-min-override-ttl
  120. NATIVE_PKCS11_CONFIGURE_ENABLE= native-pkcs11
  121. QUERYTRACE_CONFIGURE_ENABLE= querytrace
  122. START_LATE_SUB_LIST= NAMED_BEFORE="LOGIN" \
  123. NAMED_REQUIRE="SERVERS cleanvar"
  124. START_LATE_SUB_LIST_OFF= NAMED_BEFORE="SERVERS" \
  125. NAMED_REQUIRE="NETWORKING ldconfig syslogd"
  126. TCP_FASTOPEN_CONFIGURE_ENABLE= tcp-fastopen
  127. .include <bsd.port.options.mk>
  128. .if defined(WITH_DEBUG)
  129. CONFIGURE_ARGS+= --enable-developer \
  130. --enable-symtable
  131. USES+= perl5
  132. USE_PERL5= build
  133. BUILD_DEPENDS+= cmocka>0:sysutils/cmocka
  134. .else
  135. CONFIGURE_ARGS+= --disable-symtable
  136. .endif
  137. .include <bsd.port.pre.mk>
  138. .if ${SSL_DEFAULT} == base
  139. SUB_LIST+= ENGINES=/usr/lib/engines
  140. .else
  141. SUB_LIST+= ENGINES=${LOCALBASE}/lib/engines
  142. .endif
  143. post-patch:
  144. .for FILE in named-checkconf.8 named.8 nsupdate.1 \
  145. rndc.8
  146. @${REINPLACE_CMD} -e 's#/etc/named.conf#${ETCDIR}/named.conf#g' \
  147. -e 's#/etc/rndc.conf#${ETCDIR}/rndc.conf#g' \
  148. -e "s#/var\/run\/named\/named.pid#/var/run/named/pid#" \
  149. ${WRKSRC}/doc/man/${FILE}in
  150. .endfor
  151. . if ${PORTREVISION:N0}
  152. post-patch-PORTREVISION-on:
  153. @${REINPLACE_CMD} -e '/EXTENSIONS/s#=$$#=_${PORTREVISION}#' \
  154. ${WRKSRC}/version
  155. . endif
  156. post-build-DOCS-on:
  157. cd ${WRKSRC}/doc/arm && ${MAKE} html
  158. post-install:
  159. ${MKDIR} ${STAGEDIR}${PREFIX}/etc/mtree
  160. ${MKDIR} ${STAGEDIR}${ETCDIR}
  161. . for i in dynamic master slave working
  162. @${MKDIR} ${STAGEDIR}${ETCDIR}/$i
  163. . endfor
  164. ${INSTALL_DATA} ${WRKDIR}/named.conf ${STAGEDIR}${ETCDIR}/named.conf.sample
  165. ${INSTALL_DATA} ${FILESDIR}/named.root ${STAGEDIR}${ETCDIR}
  166. ${INSTALL_DATA} ${FILESDIR}/empty.db ${STAGEDIR}${ETCDIR}/master
  167. ${INSTALL_DATA} ${FILESDIR}/localhost-forward.db ${STAGEDIR}${ETCDIR}/master
  168. ${INSTALL_DATA} ${FILESDIR}/localhost-reverse.db ${STAGEDIR}${ETCDIR}/master
  169. ${INSTALL_DATA} ${FILESDIR}/BIND.chroot.dist ${STAGEDIR}${PREFIX}/etc/mtree/BIND.chroot.dist.sample
  170. ${INSTALL_DATA} ${FILESDIR}/BIND.chroot.local.dist ${STAGEDIR}${PREFIX}/etc/mtree/BIND.chroot.local.dist.sample
  171. ${INSTALL_DATA} ${WRKSRC}/bin/rndc/rndc.conf \
  172. ${STAGEDIR}${ETCDIR}/rndc.conf.sample
  173. post-install-DOCS-on:
  174. ${MKDIR} ${STAGEDIR}${DOCSDIR}/arm
  175. ${INSTALL_DATA} ${WRKSRC}/CHANGES* ${WRKSRC}/HISTORY.md \
  176. ${WRKSRC}/README.md ${STAGEDIR}${DOCSDIR}
  177. cd ${WRKSRC}/doc/arm/_build/html && ${COPYTREE_SHARE} . ${STAGEDIR}${DOCSDIR}/arm
  178. .include <bsd.port.post.mk>