diff --git a/dns/knot-resolver/Makefile b/dns/knot-resolver/Makefile index 9ba9d9959d01..d77c54e75cc2 100644 --- a/dns/knot-resolver/Makefile +++ b/dns/knot-resolver/Makefile @@ -1,159 +1,163 @@ # Created by: Leo Vandewoestijne PORTNAME= knot-resolver -DISTVERSION= 5.3.0 -PORTREVISION= 1 +DISTVERSION= 5.4.0 CATEGORIES= dns MASTER_SITES= https://secure.nic.cz/files/knot-resolver/ \ https://dns.company/downloads/knot-resolver/ MAINTAINER= freebsd@dns.company COMMENT= Caching full resolver implementation LICENSE= GPLv3+ LICENSE_FILE= ${WRKSRC}/COPYING BUILD_DEPENDS= bash:shells/bash \ cmake:devel/cmake \ flake8:devel/py-flake8@${PY_FLAVOR} \ lua51-cqueues>=20200726_1:devel/lua-cqueues@lua51 \ luacheck:devel/lua-luacheck LIB_DEPENDS= libdnssec.so:dns/knot3-lib \ libgnutls.so:security/gnutls \ libknot.so:dns/knot3-lib \ liblmdb.so:databases/lmdb \ libluajit-5.1.so:lang/luajit-openresty \ libnghttp2.so:www/libnghttp2 \ libuv.so:devel/libuv \ libzscanner.so:dns/knot3-lib RUN_DEPENDS= lua51-cqueues>=20200726_1:devel/lua-cqueues@lua51 USES= compiler:c11 libedit libtool meson ncurses ninja pkgconfig \ python:3.5+,build shebangfix tar:xz USE_CXXSTD= c++11 USE_RC_SUBR= krescachegc kresd SHEBANG_FILES= scripts/bench.sh \ scripts/build-in-obs.sh \ scripts/coverage_c_combine.sh \ scripts/coverage_env.sh \ scripts/gen-cdefs.sh \ + scripts/gen-pgp-keyblock.sh \ scripts/get-date.sh \ scripts/luacov_gen_empty.sh \ - scripts/make-dev-archive.sh \ - scripts/make-distrofiles.sh \ + scripts/make-archive.sh \ scripts/make-doc.sh \ - scripts/make-srpm.sh \ - scripts/obs-build.sh \ + scripts/make-obs.sh \ scripts/run-pylint.sh \ + scripts/run-scanbuild-with-args.sh \ scripts/test-config.sh \ scripts/test-integration-prepare.sh \ + scripts/update-authors.sh \ scripts/update-root-hints.sh MESON_ARGS= --buildtype=release \ --default-library=static \ --libdir=${PREFIX}/lib \ --pkg-config-path=${PREFIX}/libdata/pkgconfig \ --prefix=${LOCALBASE} \ -Dclient=enabled \ - -Duser=${USERS} \ -Dgroup=${GROUPS} \ -Dinstall_kresd_conf=enabled \ -Dkeyfile_default=${ETCDIR}/root.keys \ -Droot_hints=${ETCDIR}/root.hints \ -Duser=${USERS} \ -Dutils=enabled LDFLAGS+= -L${LOCALBASE}/lib CONFLICTS= knot-1.* knot1-[0-6].* SUB_FILES= pkg-message -SUB_LIST= USERS=${USERS} \ - GROUPS=${GROUPS} \ - RUNDIR=${RUNDIR} +KRESD_USER= kresd +KRESD_GROUP= kresd +KRESD_RUNDIR= /var/run/kresd + +SUB_LIST= GROUPS=${GROUPS} \ + RUNDIR=${RUNDIR} \ + USERS=${USERS} + +USERS= ${KRESD_USER} +GROUPS= ${KRESD_GROUP} +RUNDIR= ${KRESD_RUNDIR} -USERS= kresd -GROUPS= kresd -RUNDIR= /var/run/kresd +PLIST_SUB= GROUPS=${GROUPS} \ + RUNDIR=${RUNDIR} \ + USERS=${USERS} -PLIST_SUB= USERS=${USERS} \ - GROUPS=${GROUPS} \ - RUNDIR=${RUNDIR} +PORTDOCS= AUTHORS COPYING CodingStyle NEWS README.md +PORTEXAMPLES= config.cluster config.docker config.internal config.isp \ + config.personal config.privacy config.splitview OPTIONS_DEFINE= DOCS EXAMPLES DNSTAP ROOTKEYS TRUSTANCHOR TEST TESTUNIT TESTCONF TESTEXTRA OPTIONS_DEFAULT= DOCS EXAMPLES ROOTKEYS TRUSTANCHOR TEST TESTUNIT DNSTAP_DESC= dnstap support ROOTKEYS_DESC= install root.keys TESTCONF_DESC= Do config tests TESTEXTRA_DESC= Do extra tests TESTUNIT_DESC= Do unit tests TEST_DESC= Do tests TRUSTANCHOR_DESC= Trust anchor bootstrapping, management and stats DNSTAP_LIB_DEPENDS= libfstrm.so:devel/fstrm \ libprotobuf-c.so:devel/protobuf-c \ libprotobuf.so:devel/protobuf DNSTAP_MESON_ON= -Ddnstap=enabled DNSTAP_MESON_OFF= -Ddnstap=disabled DNSTAP_PLIST_FILES= lib/knot-resolver/kres_modules/dnstap.so ROOTKEYS_MESON_ON= -Dinstall_root_keys=enabled ROOTKEYS_MESON_OFF= -Dinstall_root_keys=disabled ROOTKEYS_PLIST_FILES= ${ETCDIR}/root.keys TESTCONF_BROKEN= missing luajit basexx package TESTCONF_MESON_ON= -Dconfig_tests=enabled TESTCONF_MESON_OFF= -Dconfig_tests=disabled TESTEXTRA_BROKEN= CMake Error: The source directory misses CMakeLists.txt TESTEXTRA_BUILD_DEPENDS= git:devel/git TESTEXTRA_USES= cmake python:3 -TESTEXTRA_MESON_ON= -Dextra_tests=enabled -Dsendmmsg=disabled +TESTEXTRA_MESON_ON= -Dextra_tests=enabled \ + -Dsendmmsg=disabled TESTEXTRA_MESON_OFF= -Dextra_tests=disabled TESTUNIT_BUILD_DEPENDS= cmocka>=1.1.1:sysutils/cmocka TESTUNIT_MESON_ON= -Dunit_tests=enabled TESTUNIT_MESON_OFF= -Dunit_tests=disabled TRUSTANCHOR_MESON_ON= -Dmanaged_ta=enabled TRUSTANCHOR_MESON_OFF= -Dmanaged_ta=disabled -PORTDOCS= AUTHORS COPYING CodingStyle NEWS README.md -PORTEXAMPLES= config.cluster config.docker config.internal config.isp \ - config.personal config.privacy config.splitview - STRIP_TARGETS= sbin/kres-cache-gc \ sbin/kresc \ sbin/kresd \ lib/knot-resolver/ahocorasick.so \ lib/knot-resolver/kres_modules/bogus_log.so \ lib/knot-resolver/kres_modules/dnstap.so \ lib/knot-resolver/kres_modules/edns_keepalive.so \ lib/knot-resolver/kres_modules/hints.so \ lib/knot-resolver/kres_modules/lib/knot-resolver/kres_modules/nsid.so \ lib/knot-resolver/kres_modules/refuse_nord.so \ lib/knot-resolver/kres_modules/stats.so pre-install: ${MKDIR} ${STAGEDIR}${DOCSDIR} ${MKDIR} ${STAGEDIR}${RUNDIR} pre-install-TEST-on: do-test post-install: ${MV} ${STAGEDIR}${ETCDIR}/kresd.conf ${STAGEDIR}${ETCDIR}/kresd.conf.sample ${INSTALL_DATA} ${PORTDOCS:S,^,${WRKSRC}/,} ${STAGEDIR}${DOCSDIR}/ .for STRIP_TGT in ${STRIP_TARGETS} if [ -f ${STAGEDIR}${PREFIX}/${STRIP_TGT} ]; then \ ${STRIP_CMD} ${STAGEDIR}${PREFIX}/${STRIP_TGT}; \ fi .endfor .include diff --git a/dns/knot-resolver/distinfo b/dns/knot-resolver/distinfo index 60513e9313d8..4c346a045ffb 100644 --- a/dns/knot-resolver/distinfo +++ b/dns/knot-resolver/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1614684836 -SHA256 (knot-resolver-5.3.0.tar.xz) = fb6cb2c03f4fffbdd8a0098127383d03b14cf7d6abf3a0cd229fb13ff68ee33e -SIZE (knot-resolver-5.3.0.tar.xz) = 1865456 +TIMESTAMP = 1627893046 +SHA256 (knot-resolver-5.4.0.tar.xz) = 534af671b98433b23b57039acc9d7d3c100a4888a8cf9aeba36161774ca0815e +SIZE (knot-resolver-5.4.0.tar.xz) = 1894392 diff --git a/dns/knot-resolver/files/krescachegc.in b/dns/knot-resolver/files/krescachegc.in index 44912be08123..163d4101df9e 100644 --- a/dns/knot-resolver/files/krescachegc.in +++ b/dns/knot-resolver/files/krescachegc.in @@ -1,33 +1,32 @@ #!/bin/sh # PROVIDE: krescachegc # REQUIRE: SERVERS cleanvar # KEYWORD: shutdown # # Add the following lines to /etc/rc.conf to enable knot-resolver: # # krescachegc_enable="YES": Set to YES to enable krescachegc. # Set to NO by default. # krescachegc_millis="1000": Set to garbage collect interval in milliseconds # Set to 1000 by default. # . /etc/rc.subr name=krescachegc rcvar=krescachegc_enable load_rc_config ${name} # set defaults - krescachegc_enable=${krescachegc_enable:-"NO"} krescachegc_millis=${krescachegc_millis:-"1000"} pidfile="%%RUNDIR%%/${name}.pid" procname="%%PREFIX%%/sbin/kres-cache-gc" command=/usr/sbin/daemon -command_args="-c -f -r -P ${pidfile} -u %%USERS%% -- ${procname} -c %%RUNDIR%% -d ${krescachegc_millis}" +command_args="-c -f -S -r -P ${pidfile} -T ${name} -u %%USERS%% -- ${procname} -d ${krescachegc_millis}" run_rc_command "$1" diff --git a/dns/knot-resolver/files/kresd.in b/dns/knot-resolver/files/kresd.in index 1aa44de36514..344bf82f9479 100644 --- a/dns/knot-resolver/files/kresd.in +++ b/dns/knot-resolver/files/kresd.in @@ -1,35 +1,65 @@ #!/bin/sh # PROVIDE: kresd # REQUIRE: NETWORKING # BEFORE: SERVERS # KEYWORD: shutdown # # Add the following lines to /etc/rc.conf to enable knot-resolver: # # kresd_enable="YES": Set to YES to enable kresd. # Set to NO by default. # kresd_config="": Set to %%ETCDIR%%/kresd.conf # by default. # . /etc/rc.subr name=kresd rcvar=kresd_enable load_rc_config ${name} # set defaults - kresd_enable=${kresd_enable:-"NO"} kresd_config=${kresd_config:-"%%ETCDIR%%/${name}.conf"} +kresd_user="%%USERS%%" +kresd_group="%%GROUPS%%" +kresd_rundir="/var/run/${name}" -pidfile="%%RUNDIR%%/${name}.pid" +pidfile="${kresd_rundir}/${name}.pid" procname="%%PREFIX%%/sbin/${name}" required_files="${kresd_config}" +start_cmd="${name}_start" +stop_cmd="${name}_stop" + command="/usr/sbin/daemon" -command_args="-c -f -S -r -P ${pidfile} -- ${procname} -c ${kresd_config} -n -q %%RUNDIR%%" +command_args="-c -f -S -r -P ${pidfile} -T ${name} -- ${procname} -c ${kresd_config} -n -q ${kresd_rundir}" + +kresd_start() { + if [ ! -d /var/run/${name} ]; then + install -d -o ${kresd_user} -g ${kresd_group} -m 700 ${kresd_rundir} + fi + if [ ! -f "${pidfile}" ]; then + echo "starting ${name}..." && \ + ${command} ${command_args} + echo -e "\e[1A\e[K${name} started." + else + echo "${name} already seems to be running." + fi + } + +kresd_stop() { + if [ -f "${pidfile}" ]; then + echo "stopping ${name}..." && \ + for pid in `ps waux | grep ${procname} | grep daemon | awk '{print $2}'`; do \ + kill -TERM $pid + done + echo -e "\e[1A\e[K${name} stopped." + else + echo "${name} seems to be not running." + fi + } run_rc_command "$1" diff --git a/dns/knot-resolver/pkg-plist b/dns/knot-resolver/pkg-plist index 68b5268537ae..69a01c6c04fa 100644 --- a/dns/knot-resolver/pkg-plist +++ b/dns/knot-resolver/pkg-plist @@ -1,97 +1,98 @@ @sample %%ETCDIR%%/kresd.conf.sample %%ETCDIR%%/icann-ca.pem %%ETCDIR%%/root.hints include/libkres/api.h include/libkres/array.h include/libkres/cdb_api.h include/libkres/cdb_lmdb.h include/libkres/defines.h include/libkres/dnssec.h include/libkres/impl.h include/libkres/iterate.h include/libkres/layer.h +include/libkres/log.h include/libkres/lru.h include/libkres/map.h include/libkres/module.h include/libkres/nsec.h include/libkres/nsec3.h include/libkres/pack.h include/libkres/queue.h include/libkres/resolve.h include/libkres/rplan.h include/libkres/selection.h include/libkres/selection_forward.h include/libkres/selection_iter.h include/libkres/signature.h include/libkres/ta.h include/libkres/trie.h include/libkres/utils.h include/libkres/zonecut.h lib/knot-resolver/ahocorasick.so lib/knot-resolver/distro-preconfig.lua lib/knot-resolver/kluautil.lua lib/knot-resolver/kres-gen.lua lib/knot-resolver/kres.lua lib/knot-resolver/kres_modules/bogus_log.so lib/knot-resolver/kres_modules/daf.lua lib/knot-resolver/kres_modules/daf/daf.js lib/knot-resolver/kres_modules/detect_time_jump.lua lib/knot-resolver/kres_modules/detect_time_skew.lua lib/knot-resolver/kres_modules/dns64.lua lib/knot-resolver/kres_modules/edns_keepalive.so lib/knot-resolver/kres_modules/etcd.lua lib/knot-resolver/kres_modules/experimental_dot_auth.lua lib/knot-resolver/kres_modules/graphite.lua lib/knot-resolver/kres_modules/hints.so lib/knot-resolver/kres_modules/http.lua lib/knot-resolver/kres_modules/http/bootstrap-theme.min.css lib/knot-resolver/kres_modules/http/bootstrap.min.css lib/knot-resolver/kres_modules/http/bootstrap.min.js lib/knot-resolver/kres_modules/http/d3.js lib/knot-resolver/kres_modules/http/datamaps.world.min.js lib/knot-resolver/kres_modules/http/dygraph.min.js lib/knot-resolver/kres_modules/http/epoch.css lib/knot-resolver/kres_modules/http/epoch.js lib/knot-resolver/kres_modules/http/favicon.ico lib/knot-resolver/kres_modules/http/glyphicons-halflings-regular.woff2 lib/knot-resolver/kres_modules/http/jquery.js lib/knot-resolver/kres_modules/http/kresd.css lib/knot-resolver/kres_modules/http/kresd.js lib/knot-resolver/kres_modules/http/main.tpl lib/knot-resolver/kres_modules/http/selectize.bootstrap3.css lib/knot-resolver/kres_modules/http/selectize.min.js lib/knot-resolver/kres_modules/http/topojson.js lib/knot-resolver/kres_modules/http_doh.lua lib/knot-resolver/kres_modules/http_tls_cert.lua lib/knot-resolver/kres_modules/http_trace.lua lib/knot-resolver/kres_modules/nsid.so lib/knot-resolver/kres_modules/policy.lua lib/knot-resolver/kres_modules/predict.lua lib/knot-resolver/kres_modules/prefill.lua lib/knot-resolver/kres_modules/priming.lua lib/knot-resolver/kres_modules/prometheus.lua lib/knot-resolver/kres_modules/rebinding.lua lib/knot-resolver/kres_modules/refuse_nord.so lib/knot-resolver/kres_modules/renumber.lua lib/knot-resolver/kres_modules/serve_stale.lua lib/knot-resolver/kres_modules/stats.so lib/knot-resolver/kres_modules/ta_sentinel.lua lib/knot-resolver/kres_modules/ta_signal_query.lua lib/knot-resolver/kres_modules/ta_update.lua lib/knot-resolver/kres_modules/view.lua lib/knot-resolver/kres_modules/watchdog.lua lib/knot-resolver/kres_modules/workarounds.lua lib/knot-resolver/krprint.lua lib/knot-resolver/postconfig.lua lib/knot-resolver/sandbox.lua lib/knot-resolver/trust_anchors.lua lib/knot-resolver/upgrade-4-to-5.lua lib/knot-resolver/zonefile.lua lib/libkres.a libdata/pkgconfig/libkres.pc man/man8/kresd.8.gz sbin/kres-cache-gc sbin/kresc sbin/kresd @dir(%%USERS%%,%%GROUPS%%,0755) %%ETCDIR%% @dir(%%USERS%%,%%GROUPS%%,0755) %%RUNDIR%%