diff --git a/dns/knot3/Makefile b/dns/knot3/Makefile index cf30506e6998..82b54685fe52 100644 --- a/dns/knot3/Makefile +++ b/dns/knot3/Makefile @@ -1,123 +1,175 @@ PORTNAME= knot DISTVERSION= ${KNOT_VERSION} CATEGORIES= dns MASTER_SITES= https://secure.nic.cz/files/knot-dns/ \ https://dns.company/downloads/knot-dns/ PKGNAMESUFFIX?= 3 MAINTAINER= freebsd@dns.company COMMENT= High performance authoritative-only DNS server WWW= https://www.knot-dns.cz/ LICENSE= GPLv3 LICENSE_FILE= ${WRKSRC}/COPYING BUILD_DEPENDS= gsed:textproc/gsed LIB_DEPENDS= libgnutls.so:security/gnutls \ liblmdb.so:databases/lmdb USES= alias libtool localbase pkgconfig tar:xz USE_LDCONFIG= yes HAS_CONFIGURE= yes CONFIGURE_ARGS= --enable-recvmmsg=no \ --mandir=${PREFIX}/share/man \ --with-pkgconfigdir=${PREFIX}/libdata/pkgconfig -.if !defined(UTILS_ONLY) && !defined(LIB_ONLY) -CONFIGURE_ARGS+= --with-rundir=/var/run/knot \ - --with-storage=/var/db/knot -LIB_DEPENDS+= liburcu.so:sysutils/liburcu -USE_RC_SUBR= ${PORTNAME} -SUB_FILES= pkg-message -USES+= libedit -.endif - -.if defined(UTILS_ONLY) || defined(LIB_ONLY) -CONFIGURE_ARGS+= --disable-daemon \ - --disable-modules -.endif - -.if defined(LIB_ONLY) -CONFIGURE_ARGS+= --disable-utilities -.endif - INSTALL_TARGET= install-strip CONFLICTS= knot-1.* knot1-[0-6].* knot2-[0-9].* +DATADIR= /var/db/${PORTNAME} +RUNDIR= /var/run/${PORTNAME} BINARY_ALIAS= sed=${LOCALBASE}/bin/gsed +SUB_LIST= DATADIR=${DATADIR} \ + ETCDIR=${ETCDIR} \ + GROUPS=${GROUPS} \ + RUNDIR=${RUNDIR} \ + USERS=${USERS} USERS= knot GROUPS= knot -SUB_LIST+= GROUPS="${GROUPS}" \ - USERS="${USERS}" - -PORTDOCS= COPYING NEWS -OPTIONS_DEFINE= DNSTAP DOCS +PLIST_SUB= DATADIR=${DATADIR} \ + ETCDIR=${ETCDIR} \ + GROUPS=${GROUPS} \ + RUNDIR=${RUNDIR} \ + USERS=${USERS} -.if !defined(LIB_ONLY) -OPTIONS_DEFINE+= DOH IDN -OPTIONS_DEFAULT+= DOH IDN -.endif - -.if !defined(UTILS_ONLY) && !defined(LIB_ONLY) -OPTIONS_DEFINE+= FASTPARSER MAXMINDDB -.endif +PORTDOCS= COPYING NEWS +OPTIONS_DEFINE= DAEMON UTILS DOCS EXAMPLES +OPTIONS_DEFAULT= DAEMON UTILS FASTPARSER DOH DOQ IDN MODACL MODAUTH MODCOOKIES +OPTIONS_DEFAULT+= MODPROXY MODNOUDP MODPROBE MODRRL MODSIGN MODSTATS MODSYNTH MODWHOAMI +OPTIONS_GROUP= DAEMONGR UTILGR +OPTIONS_GROUP_DAEMONGR= DNSTAP FASTPARSER MODACL MODAUTH MODCOOKIES MODPROXY MODGEO +OPTIONS_GROUP_DAEMONGR+= MODNOUDP MODPROBE MODRRL MODSIGN MODSTATS MODSYNTH MODWHOAMI +OPTIONS_GROUP_UTILGR= DOH DOQ IDN +NO_OPTIONS_SORT= yes +OPTIONS_SUB= yes + +DAEMONGR_DESC= Options for daemon +DAEMON_DESC= Install daemon DNSTAP_DESC= dnstap support (see dnstap.info) +DOCS_DESC= Install documentation +DOH_DESC= Support for DNS over HTTPS (DoH) +DOQ_DESC= Support for DNS over QUIC (DoQ) +FASTPARSER_DESC= Fast zone parser (demands compiling) +IDN_DESC= Support for International Domain Names (IDN) +MODACL_DESC= Build 'queryacl' module +MODAUTH_DESC= Build 'authsignal' module +MODCOOKIES_DESC= Build 'cookies' module +MODGEO_DESC= Build 'geodb' module +MODNOUDP_DESC= Build 'noudp' module +MODPROBE_DESC= Build 'probe' module +MODPROXY_DESC= Build 'dnsproxy' module +MODRRL_DESC= Build 'rrl' module +MODSIGN_DESC= Build 'onlinesign' module +MODSTATS_DESC= Build 'stats' module +MODSYNTH_DESC= Build 'synthrecord' module +MODWHOAMI_DESC= Build 'whoami' module +UTILGR_DESC= Options for utilities +UTILS_DESC= Install utulities + +DAEMON_LIB_DEPENDS= liburcu.so:sysutils/liburcu +DAEMON_USES= libedit +DAEMON_CONFIGURE_ENABLE= daemon +DAEMON_CONFIGURE_ENABLE+= modules +DAEMON_CONFIGURE_WITH= rundir=${RUNDIR} +DAEMON_CONFIGURE_WITH+= storage=${DATADIR} +DAEMON_SUB_FILES= pkg-message +DAEMON_VARS= USE_RC_SUBR=${PORTNAME} + DNSTAP_LIB_DEPENDS= libfstrm.so:devel/fstrm \ libprotobuf-c.so:devel/protobuf-c DNSTAP_CONFIGURE_ENABLE= dnstap DNSTAP_CONFIGURE_WITH= module-dnstap=yes - +# # XXX: because `kdig_CPPFLAGS += $(DNSTAP_CFLAGS)' line is missing from # `src/Makefile.am' file (and thus pre-generated `src/Makefile.in') which # should contain "$libfstrm_CFLAGS $libprotobuf_c_CFLAGS" set by configure # script, provide it here explicitly as patching those files would result # in higher line count. Ideally this bug should be fixed upstream. -DNSTAP_CPPFLAGS= -I${LOCALBASE}/include +DNSTAP_CPPFLAGS= -I${LOCALBASE}/include + +DOCS_CONFIGURE_ENABLE= documentation -DOCS_CONFIGURE_OFF= --disable-documentation +DOH_LIB_DEPENDS= libnghttp2.so:www/libnghttp2 -DOH_DESC= DoH support in kdig -DOH_LIB_DEPENDS= libnghttp2.so:www/libnghttp2 +DOQ_LIB_DEPENDS= libngtcp2.so:net/libngtcp2 -FASTPARSER_DESC= Fast zone parser (demanding compilation) FASTPARSER_CONFIGURE_ENABLE= fastparser -IDN_LIB_DEPENDS= libidn2.so:dns/libidn2 -IDN_CONFIGURE_OFF= --without-libidn -IDN_CONFIGURE_WITH= libidn +IDN_LIB_DEPENDS= libidn2.so:dns/libidn2 +IDN_CONFIGURE_WITH= libidn -MAXMINDDB_DESC= Enable MaxMind for geodb module -MAXMINDDB_LIB_DEPENDS= libmaxminddb.so:net/libmaxminddb -MAXMINDDB_CONFIGURE_ENABLE= maxminddb +MODACL_CONFIGURE_WITH= module-queryacl=yes + +MODAUTH_CONFIGURE_WITH= module-authsignal=yes + +MODCOOKIES_CONFIGURE_WITH= module-cookies=yes + +MODGEO_LIB_DEPENDS= libmaxminddb.so:net/libmaxminddb +MODGEO_CONFIGURE_ENABLE= maxminddb +MODGEO_CONFIGURE_WITH= module-geoip=yes + +MODNOUDP_CONFIGURE_WITH= module-noudp=yes + +MODPROBE_CONFIGURE_WITH= module-probe=yes + +MODPROXY_CONFIGURE_WITH= module-dnsproxy=yes + +MODRRL_CONFIGURE_WITH= module-rrl=yes + +MODSIGN_CONFIGURE_WITH= module-onlinesign=yes + +MODSTATS_CONFIGURE_WITH= module-stats=yes + +MODSYNTH_CONFIGURE_WITH= module-synthrecord=yes + +MODWHOAMI_CONFIGURE_WITH= module-whoami=yes + +UTILS_CONFIGURE_ENABLE= utilities .include .if ${ARCH} == i386 USES+= autoreconf .endif post-patch: -.if !defined(UTILS_ONLY) && !defined(LIB_ONLY) +.if ${PORT_OPTIONS:MDAEMON} @${REINPLACE_CMD} 's|$$(INSTALL) -d $$(DESTDIR)/\@run_dir\@|#$$(INSTALL) -d $$(DESTDIR)/\@run_dir\@|' \ ${WRKSRC}/src/Makefile.in @${REINPLACE_CMD} 's|$$(INSTALL) -d $$(DESTDIR)/\@storage_dir\@|#$$(INSTALL) -d $$(DESTDIR)/\@storage_dir\@|' \ ${WRKSRC}/src/Makefile.in @${RM} -r ${WRKSRC}/src/zscanner/scanner.c .endif post-install: -.if !defined(UTILS_ONLY) && !defined(LIB_ONLY) - ${MV} ${STAGEDIR}${ETCDIR}/knot.sample.conf \ - ${STAGEDIR}${ETCDIR}/knot.conf.sample - @${MKDIR} ${STAGEDIR}/var/run/knot ${STAGEDIR}/var/db/knot +.if ${PORT_OPTIONS:MDAEMON} + @${MKDIR} ${STAGEDIR}${DATADIR} ${STAGEDIR}${RUNDIR} .endif +.if ${PORT_OPTIONS:MDAEMON} && ${PORT_OPTIONS:MEXAMPLES} + ${MV} ${STAGEDIR}${ETCDIR}/knot.sample.conf ${STAGEDIR}${ETCDIR}/knot.conf.sample +.else + ${RM} ${STAGEDIR}${ETCDIR}/knot.sample.conf +.endif + +.if ${PORT_OPTIONS:MDOCS} @${MKDIR} ${STAGEDIR}${DOCSDIR} ${INSTALL_DATA} ${PORTDOCS:S,^,${WRKSRC}/,} ${STAGEDIR}${DOCSDIR}/ +.endif .include "knotdns.mk" .include diff --git a/dns/knot3/pkg-plist b/dns/knot3/pkg-plist index 7041dc5dce12..cd7c19c79c14 100644 --- a/dns/knot3/pkg-plist +++ b/dns/knot3/pkg-plist @@ -1,112 +1,113 @@ -bin/kdig -bin/khost -bin/knsec3hash -bin/knsupdate -bin/kzonecheck -bin/kzonesign -%%ETCDIR%%/example.com.zone -%%ETCDIR%%/knot.conf.sample +%%UTILS%%bin/kdig +%%UTILS%%bin/khost +%%UTILS%%bin/knsec3hash +%%UTILS%%bin/knsupdate +%%UTILS%%bin/kzonecheck +%%UTILS%%bin/kzonesign +%%DAEMON%%%%ETCDIR%%/example.com.zone +%%DAEMON%%%%EXAMPLES%%@sample %%ETCDIR%%/knot.conf.sample include/knot/module.h include/libdnssec/binary.h include/libdnssec/crypto.h include/libdnssec/digest.h include/libdnssec/dnssec.h include/libdnssec/error.h include/libdnssec/key.h include/libdnssec/keyid.h include/libdnssec/keystore.h include/libdnssec/keytag.h include/libdnssec/nsec.h include/libdnssec/pem.h include/libdnssec/random.h include/libdnssec/sign.h include/libdnssec/tsig.h include/libdnssec/version.h include/libknot/attribute.h include/libknot/codes.h include/libknot/consts.h include/libknot/control/control.h include/libknot/cookies.h include/libknot/db/db.h include/libknot/db/db_lmdb.h include/libknot/db/db_trie.h include/libknot/descriptor.h include/libknot/dname.h include/libknot/dynarray.h include/libknot/endian.h include/libknot/errcode.h include/libknot/error.h include/libknot/libknot.h include/libknot/lookup.h include/libknot/mm_ctx.h include/libknot/packet/compr.h include/libknot/packet/pkt.h include/libknot/packet/rrset-wire.h include/libknot/packet/wire.h include/libknot/probe/data.h include/libknot/probe/probe.h include/libknot/rdata.h include/libknot/rdataset.h include/libknot/rrset-dump.h include/libknot/rrset.h include/libknot/rrtype/dnskey.h include/libknot/rrtype/ds.h include/libknot/rrtype/naptr.h include/libknot/rrtype/nsec.h include/libknot/rrtype/nsec3.h include/libknot/rrtype/nsec3param.h include/libknot/rrtype/opt.h include/libknot/rrtype/rdname.h include/libknot/rrtype/rrsig.h include/libknot/rrtype/soa.h include/libknot/rrtype/svcb.h include/libknot/rrtype/tsig.h include/libknot/rrtype/zonemd.h include/libknot/tsig-op.h include/libknot/tsig.h include/libknot/version.h include/libknot/wire.h include/libknot/xdp.h include/libknot/xdp/tcp_iobuf.h include/libknot/yparser/yparser.h include/libknot/yparser/ypformat.h include/libknot/yparser/ypschema.h include/libknot/yparser/yptrafo.h include/libzscanner/error.h include/libzscanner/scanner.h include/libzscanner/version.h lib/libdnssec.a lib/libdnssec.so lib/libdnssec.so.9 lib/libdnssec.so.9.0.0 lib/libknot.a lib/libknot.so lib/libknot.so.14 lib/libknot.so.14.0.0 lib/libzscanner.a lib/libzscanner.so lib/libzscanner.so.4 lib/libzscanner.so.4.0.0 -libdata/pkgconfig/knotd.pc +%%DAEMON%%libdata/pkgconfig/knotd.pc libdata/pkgconfig/libdnssec.pc libdata/pkgconfig/libknot.pc libdata/pkgconfig/libzscanner.pc -share/man/man1/kdig.1.gz -share/man/man1/khost.1.gz -share/man/man1/knsec3hash.1.gz -share/man/man1/knsupdate.1.gz -share/man/man1/kzonecheck.1.gz -share/man/man1/kzonesign.1.gz -share/man/man5/knot.conf.5.gz -share/man/man8/kcatalogprint.8.gz -share/man/man8/keymgr.8.gz -share/man/man8/kjournalprint.8.gz -share/man/man8/knotc.8.gz -share/man/man8/knotd.8.gz -sbin/kcatalogprint -sbin/keymgr -sbin/kjournalprint -sbin/knotc -sbin/knotd -@dir(knot,knot,750) /var/db/knot -@dir(knot,knot,750) /var/run/knot +%%DOCS%%share/man/man1/kdig.1.gz +%%DOCS%%share/man/man1/khost.1.gz +%%DOCS%%share/man/man1/knsec3hash.1.gz +%%DOCS%%share/man/man1/knsupdate.1.gz +%%DOCS%%share/man/man1/kzonecheck.1.gz +%%DOCS%%share/man/man1/kzonesign.1.gz +%%DOCS%%share/man/man5/knot.conf.5.gz +%%DOCS%%share/man/man8/kcatalogprint.8.gz +%%DOCS%%share/man/man8/keymgr.8.gz +%%DOCS%%share/man/man8/kjournalprint.8.gz +%%DOCS%%share/man/man8/knotc.8.gz +%%DOCS%%share/man/man8/knotd.8.gz +%%DAEMON%%sbin/kcatalogprint +%%DAEMON%%sbin/keymgr +%%DAEMON%%sbin/kjournalprint +%%DAEMON%%sbin/knotc +%%DAEMON%%sbin/knotd +%%DAEMON%%@dir(%%USERS%%,%%GROUPS%%,0750) %%DATADIR%% +%%DAEMON%%@dir(%%USERS%%,%%GROUPS%%,0750) %%ETCDIR%% +%%DAEMON%%@dir(%%USERS%%,%%GROUPS%%,0700) %%RUNDIR%%