diff --git a/dns/knot-resolver/Makefile b/dns/knot-resolver/Makefile index 9bb5b7bf6fb0..9de847ea9946 100644 --- a/dns/knot-resolver/Makefile +++ b/dns/knot-resolver/Makefile @@ -1,142 +1,141 @@ PORTNAME= knot-resolver -DISTVERSION= 5.7.2 -PORTREVISION= 1 +DISTVERSION= 5.7.3 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 WWW= https://www.knot-resolver.cz/ LICENSE= GPLv3+ LICENSE_FILE= ${WRKSRC}/COPYING BUILD_DEPENDS= bash:shells/bash \ cmake:devel/cmake-core \ 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 \ 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 luajit meson ncurses ninja \ pkgconfig python: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-archive.sh \ scripts/make-doc.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 \ -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 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} PLIST_SUB= GROUPS=${GROUPS} \ RUNDIR=${RUNDIR} \ USERS=${USERS} 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 TESTUNIT OPTIONS_DEFAULT= ROOTKEYS TRUSTANCHOR DNSTAP_DESC= dnstap support ROOTKEYS_DESC= Install root.keys TESTUNIT_DESC= Build unit 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 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 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} 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 b06f3c43b9c4..837708ed2a7d 100644 --- a/dns/knot-resolver/distinfo +++ b/dns/knot-resolver/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1713104201 -SHA256 (knot-resolver-5.7.2.tar.xz) = 5f6a227390fcd4c2d0a8028a652b55a9d863ec7be01298fe038df1d273fb9a0f -SIZE (knot-resolver-5.7.2.tar.xz) = 1928336 +TIMESTAMP = 1722850725 +SHA256 (knot-resolver-5.7.3.tar.xz) = efc6e45ffc5efd98921ea5cd3fece166a1a5ce9eaa12d41b46268964353dbedb +SIZE (knot-resolver-5.7.3.tar.xz) = 1930732 diff --git a/dns/knot-resolver/files/krescachegc.in b/dns/knot-resolver/files/krescachegc.in index 40334bea0bdc..8b04fc0686e4 100644 --- a/dns/knot-resolver/files/krescachegc.in +++ b/dns/knot-resolver/files/krescachegc.in @@ -1,33 +1,75 @@ #!/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} +load_rc_config_var kresd rundir +load_rc_config_var kresd user -# set defaults -krescachegc_enable=${krescachegc_enable:-"NO"} +: ${krescachegc_enable:="NO"} : ${krescachegc_svcj_options:="net_basic"} -krescachegc_millis=${krescachegc_millis:-"1000"} +: ${krescachegc_millis:="1000"} +: ${kresd_rundir:="/var/run/kresd"} +: ${kresd_user:="%%USERS%%"} -pidfile="%%RUNDIR%%/${name}.pid" procname="%%PREFIX%%/sbin/kres-cache-gc" +start_cmd="${name}_start" +stop_cmd="${name}_stop" +status_cmd="${name}_status" + command=/usr/sbin/daemon -command_args="-c -f -S -r -P ${pidfile} -T ${name} -u %%USERS%% -- ${procname} -d ${krescachegc_millis}" +command_args="-c -f -r -S -u ${kresd_user} -T ${name} -- ${procname} -c ${kresd_rundir} -d ${krescachegc_millis}" + +krescachegc_start() { + /bin/pgrep -f ${procname} > /dev/null && status="$?" || status="$?" + if [ "${status}" -eq 0 ]; then + echo "${name} already seems to be running." + else + echo "starting ${name}..." && \ + ${command} ${command_args} + echo -e "\e[1A\e[K${name} started." + fi + } + +krescachegc_status() { + /bin/pgrep -f ${procname} > /dev/null && status="$?" || status="$?" + if [ "${status}" -eq 0 ]; then + echo "${name} is running:" + echo + /bin/ps -p $(/bin/pgrep -f ${procname}) + else + echo "${name} is not running" + fi + return ${status} + } + +krescachegc_stop() { + /bin/pgrep -f ${procname} > /dev/null && status="$?" || status="$?" + if [ "${status}" -eq 0 ]; then + echo "stopping ${name}..." && \ + /bin/pkill -TERM -f ${procname} + echo -e "\e[1A\e[K${name} stopped." + + else + echo "${name} is not running" + fi + return ${status} + } run_rc_command "$1" diff --git a/dns/knot-resolver/files/kresd.in b/dns/knot-resolver/files/kresd.in index 0ddd5d332466..c322d5e85470 100644 --- a/dns/knot-resolver/files/kresd.in +++ b/dns/knot-resolver/files/kresd.in @@ -1,76 +1,78 @@ #!/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_enable:="NO"} : ${kresd_svcj_options:="net_basic"} -kresd_config=${kresd_config:-"%%ETCDIR%%/${name}.conf"} -kresd_user="%%USERS%%" -kresd_group="%%GROUPS%%" -kresd_rundir="/var/run/${name}" +: ${kresd_config:="%%ETCDIR%%/${name}.conf"} +: ${kresd_user:="%%USERS%%"} +: ${kresd_group:="%%GROUPS%%"} +: ${kresd_rundir:="%%RUNDIR%%"} -pidfile="${kresd_rundir}/${name}.pid" procname="%%PREFIX%%/sbin/${name}" required_files="${kresd_config}" start_cmd="${name}_start" +status_cmd="${name}_status" stop_cmd="${name}_stop" command="/usr/sbin/daemon" -command_args="-c -f -S -r -P ${pidfile} -T ${name} -- ${procname} -c ${kresd_config} -n -q ${kresd_rundir}" +command_args="-c -f -r -S -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 + /bin/pgrep -f ${procname} > /dev/null && status="$?" || status="$?" + if [ "${status}" -eq 0 ]; then + echo "${name} already seems to be running." + else echo "starting ${name}..." && \ ${command} ${command_args} echo -e "\e[1A\e[K${name} started." + fi + } + +kresd_status() { + /bin/pgrep -f ${procname} > /dev/null && status="$?" || status="$?" + if [ "${status}" -eq 0 ]; then + echo "${name} is running:" + echo + /bin/ps -p $(/bin/pgrep -f ${procname}) else - echo "${name} already seems to be running." + echo "${name} is not running" fi + return ${status} } kresd_stop() { - if [ -f "${pidfile}" ]; then + /bin/pgrep -f ${procname} > /dev/null && status="$?" || status="$?" + if [ "${status}" -eq 0 ]; then echo "stopping ${name}..." && \ - for pid in `ps waux | grep ${procname} | grep daemon | awk '{print $2}'`; do \ - kill -TERM $pid - done + /bin/pkill -TERM -f ${procname} echo -e "\e[1A\e[K${name} stopped." else - echo "${name} seems to be not running." + echo "${name} is not running" fi + return ${status} } -kresd_status() { - if [ -e "${pidfile}" ]; then - echo "${name} is running on pid $(cat $pidfile)." - return 1 - else - echo "${name} is not running." - return 0 - fi -} - run_rc_command "$1" diff --git a/dns/knot-resolver/pkg-plist b/dns/knot-resolver/pkg-plist index 769c84a35f19..7ee88fee52b1 100644 --- a/dns/knot-resolver/pkg-plist +++ b/dns/knot-resolver/pkg-plist @@ -1,99 +1,99 @@ @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/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/debug_opensslkeylog.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/extended_error.so 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 share/man/man8/kresd.8.gz sbin/kres-cache-gc sbin/kresc sbin/kresd @dir(%%USERS%%,%%GROUPS%%,0755) %%ETCDIR%% -@dir(%%USERS%%,%%GROUPS%%,0660) %%RUNDIR%% +@dir(%%USERS%%,%%GROUPS%%,0700) %%RUNDIR%%