Date: Sun, 4 Oct 2020 10:18:00 +0000 (UTC) From: Kurt Jaeger <pi@FreeBSD.org> To: ports-committers@freebsd.org, svn-ports-all@freebsd.org, svn-ports-head@freebsd.org Subject: svn commit: r551373 - in head/dns: . knot3 knot3/files Message-ID: <202010041018.094AI0o8005671@repo.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: pi Date: Sun Oct 4 10:18:00 2020 New Revision: 551373 URL: https://svnweb.freebsd.org/changeset/ports/551373 Log: New port: dns/knot3 Knot DNS is a high-performance authoritative-only DNS server which supports all key features of the domain name system including zone AXFR and IXFR, DDNS and DNSSEC. Its key features: * Open source * High-performance, multi-threaded, and mostly lock-free implementation which scales well on SMPs * Object-oriented design * Support for all important DNS protocols: - Full and incremental zone transfers - EDNS0 and DNSSEC extensions, including NSEC3 - NSID WWW: https://www.knot-dns.cz/ PR: 249363 Submitted by: Leo Vandewoestijne <freebsd@dns.company> Relnotes: https://www.knot-dns.cz/2020-09-09-version-300.html Added: head/dns/knot3/ head/dns/knot3/Makefile (contents, props changed) head/dns/knot3/distinfo (contents, props changed) head/dns/knot3/files/ head/dns/knot3/files/knot.in (contents, props changed) head/dns/knot3/files/pkg-message.in (contents, props changed) head/dns/knot3/pkg-descr (contents, props changed) head/dns/knot3/pkg-plist (contents, props changed) Modified: head/dns/Makefile Modified: head/dns/Makefile ============================================================================== --- head/dns/Makefile Sun Oct 4 09:57:52 2020 (r551372) +++ head/dns/Makefile Sun Oct 4 10:18:00 2020 (r551373) @@ -89,6 +89,7 @@ SUBDIR += knot-resolver SUBDIR += knot2 SUBDIR += knot2-lib + SUBDIR += knot3 SUBDIR += ldapdns SUBDIR += ldns SUBDIR += libasr Added: head/dns/knot3/Makefile ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/dns/knot3/Makefile Sun Oct 4 10:18:00 2020 (r551373) @@ -0,0 +1,122 @@ +# Created by: Leo Vandewoestijne <freebsd@dns.company> +# $FreeBSD$ + +PORTNAME= knot +DISTVERSION= 3.0.0 +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 + +LICENSE= GPLv3 +LICENSE_FILE= ${WRKSRC}/COPYING + +BUILD_DEPENDS= autoconf>=2.65:devel/autoconf \ + gsed:textproc/gsed +LIB_DEPENDS= libgnutls.so:security/gnutls \ + liblmdb.so:databases/lmdb \ + libnghttp2.so:www/libnghttp2 + +CONFLICTS= knot-1.* knot1-[0-6].* knot2-[0-9].* + +USES= alias libtool localbase pkgconfig tar:xz + +HAS_CONFIGURE= yes +BINARY_ALIAS= sed=${LOCALBASE}/bin/gsed +CONFIGURE_ARGS= --enable-recvmmsg=no \ + --with-pkgconfigdir=${PREFIX}/libdata/pkgconfig \ + --mandir=${MANPREFIX}/man + +.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} +#PLIST_FILES= etc/rc.d/${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 + +USE_LDCONFIG= yes +INSTALL_TARGET= install-strip + +USERS= knot +GROUPS= knot +SUB_LIST+= USERS="${USERS}" GROUPS="${GROUPS}" + +PORTDOCS= COPYING NEWS + +OPTIONS_DEFINE= DNSTAP DOCS + +.if !defined(LIB_ONLY) +OPTIONS_DEFINE+= IDN +.endif + +.if !defined(UTILS_ONLY) && !defined(LIB_ONLY) +OPTIONS_DEFINE+= FASTPARSER MAXMINDDB +.endif + +DNSTAP_DESC= dnstap support (see dnstap.info) +DNSTAP_CONFIGURE_ENABLE= dnstap +DNSTAP_CONFIGURE_WITH= module-dnstap=yes +DNSTAP_LIB_DEPENDS= libprotobuf-c.so:devel/protobuf-c \ + libfstrm.so:devel/fstrm + +# 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 + +DOCS_CONFIGURE_OFF= --disable-documentation + +FASTPARSER_DESC= Fast zone parser (demanding compilation) +FASTPARSER_CONFIGURE_ENABLE= fastparser + +IDN_CONFIGURE_WITH= libidn +IDN_CONFIGURE_OFF= --without-libidn +#IDN_LIB_DEPENDS= libidn2.so:dns/libidn2 + +MAXMINDDB_DESC= Enable MaxMind for geodb module +MAXMINDDB_LIB_DEPENDS= libmaxminddb.so:net/libmaxminddb +MAXMINDDB_CONFIGURE_ENABLE= maxminddb + +.include <bsd.port.options.mk> + +.if ${ARCH} == i386 +USES+= autoreconf +EXTRA_PATCHES+= ${PATCHDIR}/extrapatch-configure.ac +.endif + +post-patch: +.if !defined(UTILS_ONLY) && !defined(LIB_ONLY) + @${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 +.endif + @${MKDIR} ${STAGEDIR}${DOCSDIR} + ${INSTALL_DATA} ${PORTDOCS:S,^,${WRKSRC}/,} ${STAGEDIR}${DOCSDIR}/ + +.include <bsd.port.mk> Added: head/dns/knot3/distinfo ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/dns/knot3/distinfo Sun Oct 4 10:18:00 2020 (r551373) @@ -0,0 +1,3 @@ +TIMESTAMP = 1600167854 +SHA256 (knot-3.0.0.tar.xz) = f1c96aff6e873a2f9b1b8c2441d5a7801dd48d3abdb738a4d24b26c2a8fbe6c4 +SIZE (knot-3.0.0.tar.xz) = 1329064 Added: head/dns/knot3/files/knot.in ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/dns/knot3/files/knot.in Sun Oct 4 10:18:00 2020 (r551373) @@ -0,0 +1,118 @@ +#!/bin/sh +# +# $FreeBSD$ +# +# PROVIDE: knot +# REQUIRE: SERVERS cleanvar +# KEYWORD: shutdown +# +# Add the following lines to /etc/rc.conf to enable knot: +# +# knot_enable="YES": Set to NO by default. +# Set it to YES to enable knot. +# knot_config="": Set to %%PREFIX%%/etc/knot/knot.conf +# by default. +# +# ----------------------------------------------------------------------------- +# +# This script supports running multiple instances of knot. +# To run additional instances link this script to something like +# % ln -s knot knot_foo +# and define additional knot_foo_* variables in one of +# /etc/rc.conf, /etc/rc.conf.local or /etc/rc.conf.d/knot_foo +# +# Below NAME should be substituted with the name of this script. By default +# it is knot, so read as knot_enable. If you linked the script to +# knot_foo, then read as knot_foo_enable etc. +# +# The following variables are supported (defaults are shown). +# You can place them in any of +# /etc/rc.conf, /etc/rc.conf.local or /etc/rc.conf.d/NAME +# +# NAME_enable="NO" # set to YES to enable knot +# +# # optional: +# NAME_config="%%PREFIX%%/etc/knot/NAME.conf" # (-c)onfig file +# NAME_config="db:/var/db/knot/confdb" # (-C)onfig database +# NAME_diruser="%%USERS%%" # /var/db/NAME and /var/run/NAME are created if they +# NAME_dirgroup="%%GROUPS%%" # don't exist. These don't control the user/group knot +# # runs as, the config file has a setting for that. +# +# You also need to set the rundir directive in the server section of the +# config file to /var/run/NAME (if using a NAME other than the default) +# and you will want the storage directive(s) declared in the zone section +# to point to /var/db/NAME overriding the default of /var/db/knot. +# +# For further documentation, please see knot.conf(5). + +. /etc/rc.subr + +case "$0" in +/etc/rc*) + # during boot (shutdown) $0 is /etc/rc (/etc/rc.shutdown), + # so get the name of the script from $_file + name="$_file" + ;; +*) + name="$0" + ;; +esac + +name="${name##*/}" +rcvar=${name}_enable + +load_rc_config ${name} + +eval ": \${${name}_enable:=\"NO\"}" +eval ": \${${name}_diruser:=\"%%USERS%%\"}" +eval ": \${${name}_dirgroup:=\"%%GROUPS%%\"}" +eval ": \${${name}_config:=\"%%PREFIX%%/etc/knot/${name}.conf\"}" + +configfile="$(eval echo \${${name}_config})" +diruser="$(eval echo \${${name}_diruser})" +dirgroup="$(eval echo \${${name}_dirgroup})" + +command=%%PREFIX%%/sbin/knotd +case "$configfile" in +db:*) + config_args="-C ${configfile#db:}" + ;; +*) + config_args="-c ${configfile}" + ;; +esac +command_args="${config_args} -d" +control="%%PREFIX%%/sbin/knotc" +pidfile="/var/run/${name}/knot.pid" + +case "$configfile" in +db:*) + required_files=${configfile#db:}/data.mdb + ;; +*) + required_files=${configfile} + ;; +esac + +extra_commands=reload +reload_cmd="knot_reload" +start_precmd="knot_prestart" + +knot_prestart() +{ + if [ ! -d /var/run/${name} ]; then + install -d -o ${diruser} -g ${dirgroup} /var/run/${name} + fi + if [ ! -d /var/db/${name} ]; then + install -d -o ${diruser} -g ${dirgroup} /var/db/${name} + fi + ${control} ${config_args} conf-check +} + +knot_reload() +{ + echo "Reloading ${name}." + ${control} ${config_args} reload +} + +run_rc_command "$1" Added: head/dns/knot3/files/pkg-message.in ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/dns/knot3/files/pkg-message.in Sun Oct 4 10:18:00 2020 (r551373) @@ -0,0 +1,21 @@ +[ +{ type: install + message: <<EOM + To start using Knot DNS, you should complete the following tasks: + + cp %%ETCDIR%%/knot.conf.sample %%ETCDIR%%/knot.conf + $EDITOR %%ETCDIR%%/knot.conf + + sysrc knot_enable=YES + sysrc knot_config=%%ETCDIR%%/knot.conf + service knot start + + Please consult the documentation: + - man knotd + - https://www.knot-dns.cz/documentation/ + + When upgrading from 2.4.x read: + - https://www.knot-dns.cz/docs/3.0/html/migration.html#upgrade-2-9-x-to-3-0-x +EOM +} +] Added: head/dns/knot3/pkg-descr ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/dns/knot3/pkg-descr Sun Oct 4 10:18:00 2020 (r551373) @@ -0,0 +1,14 @@ +Knot DNS is a high-performance authoritative-only DNS server which +supports all key features of the domain name system including zone +AXFR and IXFR, DDNS and DNSSEC. Its key features: + + * Open source + * High-performance, multi-threaded, and mostly lock-free + implementation which scales well on SMPs + * Object-oriented design + * Support for all important DNS protocols: + - Full and incremental zone transfers + - EDNS0 and DNSSEC extensions, including NSEC3 + - NSID + +WWW: https://www.knot-dns.cz/ Added: head/dns/knot3/pkg-plist ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/dns/knot3/pkg-plist Sun Oct 4 10:18:00 2020 (r551373) @@ -0,0 +1,104 @@ +bin/kdig +bin/khost +bin/knsec3hash +bin/knsupdate +bin/kzonecheck +bin/kzonesign +%%ETCDIR%%/example.com.zone +%%ETCDIR%%/knot.conf.sample +include/knot/module.h +include/libdnssec/binary.h +include/libdnssec/crypto.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/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/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/tsig.h +include/libknot/tsig-op.h +include/libknot/tsig.h +include/libknot/version.h +include/libknot/wire.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.8 +lib/libdnssec.so.8.0.0 +lib/libknot.a +lib/libknot.so +lib/libknot.so.11 +lib/libknot.so.11.0.0 +lib/libzscanner.a +lib/libzscanner.so +lib/libzscanner.so.3 +lib/libzscanner.so.3.0.0 +libdata/pkgconfig/knotd.pc +libdata/pkgconfig/libdnssec.pc +libdata/pkgconfig/libknot.pc +libdata/pkgconfig/libzscanner.pc +man/man1/kdig.1.gz +man/man1/khost.1.gz +man/man1/knsec3hash.1.gz +man/man1/knsupdate.1.gz +man/man1/kzonecheck.1.gz +man/man1/kzonesign.1.gz +man/man5/knot.conf.5.gz +man/man8/kcatalogprint.8.gz +man/man8/keymgr.8.gz +man/man8/kjournalprint.8.gz +man/man8/knotc.8.gz +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
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?202010041018.094AI0o8005671>