aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLeo Vandewoestijne <freebsd@dns.company>2024-08-06 09:50:24 +0000
committerFernando ApesteguĂ­a <fernape@FreeBSD.org>2024-08-07 15:26:49 +0000
commite2fc32562362f319e2dea0c9310b52a251af6d9e (patch)
treee54ada519270dd5e63b21492ed0a633b3d8c90a9
parentb16866aa3994608d31fcc44a3cdc812baaba3fca (diff)
dns/knot3: Add options
And prepare to replace knot3-lib which will be deprecated. PR: 277332 Reported by: trashcan@ellael.org
-rw-r--r--dns/knot3/Makefile148
-rw-r--r--dns/knot3/pkg-plist57
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%%