git: e2fc32562362 - main - dns/knot3: Add options
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Wed, 07 Aug 2024 15:27:02 UTC
The branch main has been updated by fernape: URL: https://cgit.FreeBSD.org/ports/commit/?id=e2fc32562362f319e2dea0c9310b52a251af6d9e commit e2fc32562362f319e2dea0c9310b52a251af6d9e Author: Leo Vandewoestijne <freebsd@dns.company> AuthorDate: 2024-08-06 09:50:24 +0000 Commit: Fernando Apesteguía <fernape@FreeBSD.org> CommitDate: 2024-08-07 15:26:49 +0000 dns/knot3: Add options And prepare to replace knot3-lib which will be deprecated. PR: 277332 Reported by: trashcan@ellael.org --- dns/knot3/Makefile | 148 +++++++++++++++++++++++++++++++++++----------------- dns/knot3/pkg-plist | 57 ++++++++++---------- 2 files changed, 129 insertions(+), 76 deletions(-) diff --git a/dns/knot3/Makefile b/dns/knot3/Makefile index cf30506e6998..82b54685fe52 100644 --- a/dns/knot3/Makefile +++ b/dns/knot3/Makefile @@ -24,76 +24,122 @@ 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 <bsd.port.options.mk> @@ -102,7 +148,7 @@ 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\@|' \ @@ -111,13 +157,19 @@ post-patch: .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 <bsd.port.mk> 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,11 +1,11 @@ -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 @@ -87,26 +87,27 @@ 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%%