pkgsrc-Changes archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

CVS commit: pkgsrc/net



Module Name:    pkgsrc
Committed By:   drixter
Date:           Tue Oct  6 11:23:18 UTC 2026

Modified Files:
        pkgsrc/net: Makefile
Added Files:
        pkgsrc/net/rcvd: DESCR Makefile PLIST distinfo go-modules.mk
        pkgsrc/net/rcvd/files: rcvd.sh

Log Message:
rcvd: Add version 0.3.1

rcvd is a privacy-first encrypted DNS engine: a single Go binary driven by
purpose-built configuration files. It speaks DNS over QUIC (DoQ), DNS over
TLS (DoT), and DNS over HTTPS (DoH/DoH3), and never falls back to cleartext
DNS. If every encrypted upstream fails it returns SERVFAIL rather than leaking
a query over port 53.

Features include multi-upstream fallback with health checks, DNSSEC
validation, domain blocklists (plain-list and hosts formats, with wildcard
support), a local cache, runtime statistics, and both forwarder and
DoH-service (upstream) modes. TLS can be automated via ACME (certmagic) so a
DoH endpoint presents a real CA certificate with a DNS-ID in its SAN.

rcvd: Update to version 0.3.1

Privacy-first DNS. One binary, encrypted egress only

This is a small bug fix release. There are no new features and no configuration changes.

Fixed: rcvd panicked on shutdown and exited with status 2 instead of 0. This affected every
platform whenever a Mode 1 listener was running.
Clean shutdown
When rcvd received SIGTERM, the server and the main process both closed the upstream resolver
chain. The second close panicked. DNS service was not affected while running, but every stop ended
in a panic: the exit status was 2, and the final RCVD stopped log line was never written.

Service managers notice that. OpenRC and systemd report the stop as a failure, and anything that
watches the exit code or the shutdown log line gets the wrong signal.

Closing the upstream chain is now idempotent, so a second close is a no-op. A new unit test covers
the double close. A shutdown regression check in our container test suite confirms that SIGTERM
now exits 0 and logs RCVD stopped.

The bug was present since v0.1.0 on all platforms. A Mode 2-only configuration was not affected,
because it closes the chain only once.


To generate a diff of this commit:
cvs rdiff -u -r1.1674 -r1.1675 pkgsrc/net/Makefile
cvs rdiff -u -r0 -r1.1 pkgsrc/net/rcvd/DESCR pkgsrc/net/rcvd/Makefile \
    pkgsrc/net/rcvd/PLIST pkgsrc/net/rcvd/distinfo \
    pkgsrc/net/rcvd/go-modules.mk
cvs rdiff -u -r0 -r1.1 pkgsrc/net/rcvd/files/rcvd.sh

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: pkgsrc/net/Makefile
diff -u pkgsrc/net/Makefile:1.1674 pkgsrc/net/Makefile:1.1675
--- pkgsrc/net/Makefile:1.1674  Mon Oct  5 13:18:20 2026
+++ pkgsrc/net/Makefile Tue Oct  6 11:23:17 2026
@@ -1,4 +1,4 @@
-# $NetBSD: Makefile,v 1.1674 2026/10/05 13:18:20 ktnb Exp $
+# $NetBSD: Makefile,v 1.1675 2026/10/06 11:23:17 drixter Exp $
 #
 
 COMMENT=       Networking tools
@@ -840,6 +840,7 @@ SUBDIR+=    ratman
 SUBDIR+=       raven
 SUBDIR+=       rbldnsd
 SUBDIR+=       rclone
+SUBDIR+=        rcvd
 SUBDIR+=       rdesktop
 SUBDIR+=       rdist6
 SUBDIR+=       remmina

Added files:

Index: pkgsrc/net/rcvd/DESCR
diff -u /dev/null pkgsrc/net/rcvd/DESCR:1.1
--- /dev/null   Tue Oct  6 11:23:18 2026
+++ pkgsrc/net/rcvd/DESCR       Tue Oct  6 11:23:17 2026
@@ -0,0 +1,11 @@
+rcvd is a privacy-first encrypted DNS engine: a single Go binary driven by
+purpose-built configuration files. It speaks DNS over QUIC (DoQ), DNS over
+TLS (DoT), and DNS over HTTPS (DoH/DoH3), and never falls back to cleartext
+DNS. If every encrypted upstream fails it returns SERVFAIL rather than leaking
+a query over port 53.
+
+Features include multi-upstream fallback with health checks, DNSSEC
+validation, domain blocklists (plain-list and hosts formats, with wildcard
+support), a local cache, runtime statistics, and both forwarder and
+DoH-service (upstream) modes. TLS can be automated via ACME (certmagic) so a
+DoH endpoint presents a real CA certificate with a DNS-ID in its SAN.
Index: pkgsrc/net/rcvd/Makefile
diff -u /dev/null pkgsrc/net/rcvd/Makefile:1.1
--- /dev/null   Tue Oct  6 11:23:18 2026
+++ pkgsrc/net/rcvd/Makefile    Tue Oct  6 11:23:17 2026
@@ -0,0 +1,74 @@
+# $NetBSD: Makefile,v 1.1 2026/10/06 11:23:17 drixter Exp $
+
+DISTNAME=      rcvd-0.3.1
+CATEGORIES=    net
+MASTER_SITES=  ${MASTER_SITE_GITHUB:=rcvd-dns/}
+GITHUB_PROJECT=        rcvd
+GITHUB_TAG=    v${PKGVERSION_NOREV}
+
+MAINTAINER=    drixter%e-utp.net@localhost
+HOMEPAGE=      https://rcvd.net/
+COMMENT=       Privacy-first encrypted DNS engine (DoQ/DoT/DoH, no cleartext)
+LICENSE=       mit
+
+GO_VERSION_REQD=       127
+
+.include "go-modules.mk"
+.include "../../mk/bsd.prefs.mk"
+
+RCVD_USER?=            rcvd
+RCVD_GROUP?=           rcvd
+
+PKG_GROUPS+=           ${RCVD_GROUP}
+PKG_USERS+=            ${RCVD_USER}:${RCVD_GROUP}
+PKG_GECOS.${RCVD_USER}=        rcvd DNS daemon
+PKG_HOME.${RCVD_USER}= /nonexistent
+PKG_SHELL.${RCVD_USER}=        ${NOLOGIN}
+PKG_GROUPS_VARS+=      RCVD_GROUP
+PKG_USERS_VARS+=       RCVD_USER
+
+RCD_SCRIPTS=           rcvd
+
+BUILD_DEFS+=           VARBASE RCVD_USER RCVD_GROUP
+
+OWN_DIRS_PERMS+=       ${PKG_SYSCONFDIR}/rcvd ${RCVD_USER} ${RCVD_GROUP} 0755
+OWN_DIRS_PERMS+=       ${VARBASE}/log/rcvd ${RCVD_USER} ${RCVD_GROUP} 0755
+
+# The example forwarder profile becomes the default config on first install.
+EGDIR=                 ${PREFIX}/share/examples/rcvd
+CONF_FILES=            ${EGDIR}/rcvd.toml ${PKG_SYSCONFDIR}/rcvd/rcvd.toml
+
+# Stamp version, date, and source into the binary (parity with the release
+# recipe). buildDate is derived from SOURCE_DATE_EPOCH so the build stays
+# reproducible: pkgsrc sets it (to a fixed value) under PKGSRC_MKREPRO=yes;
+# otherwise it is unset and buildDate keeps the source default ("unknown"),
+# never a varying wall-clock time. The release tarball carries no .git, so
+# the commit is "unknown" too, by design.
+GO_LDFLAGS=            -s -w \
+                       -X main.version=${PKGVERSION_NOREV} \
+                       -X main.buildSource=pkgsrc
+.if !empty(SOURCE_DATE_EPOCH)
+BUILD_DATE_cmd=                date -u -d "@${SOURCE_DATE_EPOCH}" +%Y-%m-%dT%H:%M:%SZ 2>/dev/null || \
+                       date -u -r "${SOURCE_DATE_EPOCH}" +%Y-%m-%dT%H:%M:%SZ
+GO_LDFLAGS+=           -X main.buildDate=${BUILD_DATE_cmd:sh}
+.endif
+GOFLAGS+=              -ldflags=${GO_LDFLAGS:Q}
+GO_BUILD_PATTERN=      ./cmd/rcvd
+
+# rcvd is a pure-Go static binary (no cgo), matching the upstream release recipe.
+MAKE_ENV+=             CGO_ENABLED=0
+
+INSTALLATION_DIRS+=    ${EGDIR} share/doc/rcvd/examples ${PKGMANDIR}/man1
+
+post-install:
+       ${INSTALL_DATA} ${WRKSRC}/etc/mode1-forwarder-3providers.toml \
+               ${DESTDIR}${EGDIR}/rcvd.toml
+.for f in flagship-dualmode mode1-forwarder-3providers mode2-doh-service
+       ${INSTALL_DATA} ${WRKSRC}/etc/${f}.toml \
+               ${DESTDIR}${PREFIX}/share/doc/rcvd/examples/${f}.toml
+.endfor
+       ${INSTALL_MAN} ${WRKSRC}/man/rcvd.1 \
+               ${DESTDIR}${PREFIX}/${PKGMANDIR}/man1/rcvd.1
+
+.include "../../lang/go/go-module.mk"
+.include "../../mk/bsd.pkg.mk"
Index: pkgsrc/net/rcvd/PLIST
diff -u /dev/null pkgsrc/net/rcvd/PLIST:1.1
--- /dev/null   Tue Oct  6 11:23:18 2026
+++ pkgsrc/net/rcvd/PLIST       Tue Oct  6 11:23:17 2026
@@ -0,0 +1,8 @@
+@comment $NetBSD: PLIST,v 1.1 2026/10/06 11:23:17 drixter Exp $
+bin/rcvd
+man/man1/rcvd.1
+share/doc/rcvd/examples/flagship-dualmode.toml
+share/doc/rcvd/examples/mode1-forwarder-3providers.toml
+share/doc/rcvd/examples/mode2-doh-service.toml
+share/examples/rc.d/rcvd
+share/examples/rcvd/rcvd.toml
Index: pkgsrc/net/rcvd/distinfo
diff -u /dev/null pkgsrc/net/rcvd/distinfo:1.1
--- /dev/null   Tue Oct  6 11:23:18 2026
+++ pkgsrc/net/rcvd/distinfo    Tue Oct  6 11:23:17 2026
@@ -0,0 +1,113 @@
+$NetBSD: distinfo,v 1.1 2026/10/06 11:23:17 drixter Exp $
+
+BLAKE2s (github.com__burnt_sushi_toml_@v_v1.6.0.mod) = 26f62b858e9ef333fa0b51b46ce83c2d385ddf010431d6415a115aef9a338b35
+SHA512 (github.com__burnt_sushi_toml_@v_v1.6.0.mod) = fb6b4ae74dfdcc39b915f1b5f84f8e52e830d273d29f9225dc5ed4f26e970d9f61921f6f3588249141a82404c3ba180f735b4f23e700050e76a740fbf541ac78
+Size (github.com__burnt_sushi_toml_@v_v1.6.0.mod) = 43 bytes
+BLAKE2s (github.com__burnt_sushi_toml_@v_v1.6.0.zip) = 2f5f362ba4a41907d51f25f4c4b0b3f848eb42b7aa8848b34fb4bb6d41f2e6aa
+SHA512 (github.com__burnt_sushi_toml_@v_v1.6.0.zip) = 6ab4b3d4a0c50299f1d48be5d6b79f6174b2c9c0b27a58123284df543e523ac7da6dd55a626e5732219bc00e68c9b2da2bc098bb1823d0440877d194e8b1f0c3
+Size (github.com__burnt_sushi_toml_@v_v1.6.0.zip) = 462127 bytes
+BLAKE2s (github.com_caddyserver_certmagic_@v_v0.25.6.mod) = 1b5384028c604c2aabbc1436b7288a818ef1b40e0a3d17e06f5018e196475f48
+SHA512 (github.com_caddyserver_certmagic_@v_v0.25.6.mod) = 341c4b05cab12ade0313b49d709abfac97edd4bde59a776e0ceb2143ce47d272af51e22df8f0377a96eebd651f001ad8e8197752a43d5da381d261631dbd0f2d
+Size (github.com_caddyserver_certmagic_@v_v0.25.6.mod) = 498 bytes
+BLAKE2s (github.com_caddyserver_certmagic_@v_v0.25.6.zip) = c8f254ea437b150119ee449ad963baaa53fdde5900e2027c53fa06234f4a9054
+SHA512 (github.com_caddyserver_certmagic_@v_v0.25.6.zip) = 01f88c05efe50107733efc7603d5e8102a7d0c29b7e4c94293f1dcb259690ee5b86dde881806c0a6105c03abfe86b6cc09038d7d182b8520c6f5f9809ca7f319
+Size (github.com_caddyserver_certmagic_@v_v0.25.6.zip) = 284150 bytes
+BLAKE2s (github.com_caddyserver_zerossl_@v_v0.1.6.mod) = 03d2b37f148b5c05b6cdafde5adc541199f63e9faebdd96eab0a711bceeb3e5f
+SHA512 (github.com_caddyserver_zerossl_@v_v0.1.6.mod) = 313c955b432f7b5ea37b9add01111ea26d5c6a74da4d7a8a225404910a0d1d7aae4965e158d70f39a78d1a219cb2cc477e01189419b08811c6542ca629c9c1b7
+Size (github.com_caddyserver_zerossl_@v_v0.1.6.mod) = 49 bytes
+BLAKE2s (github.com_caddyserver_zerossl_@v_v0.1.6.zip) = 7aff8cf5839bdcad037bc7270599583cc88c98a5bbb7b5af58ecaf99b3eff7d4
+SHA512 (github.com_caddyserver_zerossl_@v_v0.1.6.zip) = 6156e7c017ff6b2ec7954b775e2f578b44e2a5a5eb2a26b2101b7ade8b61eb7858d54b020fdc1662722fa311fabceed846497d219d8a0fdceff16d3bd8f07cd8
+Size (github.com_caddyserver_zerossl_@v_v0.1.6.zip) = 9458 bytes
+BLAKE2s (github.com_klauspost_cpuid_v2_@v_v2.4.0.mod) = bfa10370b47c5079e7ab09b76145c1773ce130f60c664374d3a228d3dad52f98
+SHA512 (github.com_klauspost_cpuid_v2_@v_v2.4.0.mod) = 465d88e7ac6359c2dce98fc8ca8485b4cf19aeee874ea2d7be5d661fadd5e27b175323ecf18b60da4f57c4611b05b094dce9a628dacca72a972fa8a102dcd1d6
+Size (github.com_klauspost_cpuid_v2_@v_v2.4.0.mod) = 82 bytes
+BLAKE2s (github.com_klauspost_cpuid_v2_@v_v2.4.0.zip) = 2b6848ce552cca3914d27ebdf1a9913a9e03411e94b7bcb8bcabb7e1283e1327
+SHA512 (github.com_klauspost_cpuid_v2_@v_v2.4.0.zip) = 0558750a3fa65072ca84ee5d1db74b900224bf8c388107f623b4040cea8862d891cbe5dd470c59d6560c1684220d6e8a1cef16a48e73427f03d043d44d6f924a
+Size (github.com_klauspost_cpuid_v2_@v_v2.4.0.zip) = 66828 bytes
+BLAKE2s (github.com_libdns_cloudflare_@v_v0.2.2.mod) = b6bfeb3d845f501b6d63daced5bae8b0ec6f6a229e046d6592cd1bbb85f6b935
+SHA512 (github.com_libdns_cloudflare_@v_v0.2.2.mod) = 625bfe277204917c5bcfc327d5fdb48b519c672d1c0e6b4a4c9c560c6cb47ecf1ddc3529ec92ce1b425bd2a1a8ad6e0cc89c9a43e94509715fd3c73b82ca4bd4
+Size (github.com_libdns_cloudflare_@v_v0.2.2.mod) = 86 bytes
+BLAKE2s (github.com_libdns_cloudflare_@v_v0.2.2.zip) = 9aa97ff3646f1cd811ea7577879df1b896ef41a9282e9b09f8913581c0d32e42
+SHA512 (github.com_libdns_cloudflare_@v_v0.2.2.zip) = 0d912e85a4988f995a6b75a2462445967a8c2dd5e979ac0235a614f4364a540d52320f1b3f8ab7cb5b3443843dd0cd83b66881ca37fa694a1cbf8647628af50f
+Size (github.com_libdns_cloudflare_@v_v0.2.2.zip) = 10855 bytes
+BLAKE2s (github.com_libdns_libdns_@v_v1.1.1.mod) = 1a0ff4b1d6f15590d6d491d1a4b2881c722884c1aff50dbc9302da3a0975dc70
+SHA512 (github.com_libdns_libdns_@v_v1.1.1.mod) = 17fd147b187bf23f0410ad9af61b9113d55a371a06729e186d024232f773e30453426fa578c7f9b3e80c1915261f9c0a6d271782d641522e1f7c5c7bfe22f823
+Size (github.com_libdns_libdns_@v_v1.1.1.mod) = 41 bytes
+BLAKE2s (github.com_libdns_libdns_@v_v1.1.1.zip) = 94c2e9675c4eb7ad51aba39dc8818e297d36a2083ea60708e694dd335adeb279
+SHA512 (github.com_libdns_libdns_@v_v1.1.1.zip) = 401416723c892d57364ed3b8629167e4cef81c98f732285106eb9e25e58c32db57f3cb00bfdb786223e86143aaf15ae6b67d540a363f7d97fde5d7d64e325ab8
+Size (github.com_libdns_libdns_@v_v1.1.1.zip) = 23530 bytes
+BLAKE2s (github.com_mholt_acmez_v3_@v_v3.1.7.mod) = 40bdcfee79c38ba6e4b2b613a78f4514496f4d01b47022219494c620f313b1a2
+SHA512 (github.com_mholt_acmez_v3_@v_v3.1.7.mod) = d11e7c50f67edbc476a42468310c1428c3cf8877efb0b3c4441cb514192e842f59d2054af281590e08ac777898e6ece5fb94093cbb9f5a6e8c06730a2965c3fd
+Size (github.com_mholt_acmez_v3_@v_v3.1.7.mod) = 536 bytes
+BLAKE2s (github.com_mholt_acmez_v3_@v_v3.1.7.zip) = 208af84e54e7ed8fda4d34be884902e060c53a200775a73edda8f0c6dcac574e
+SHA512 (github.com_mholt_acmez_v3_@v_v3.1.7.zip) = 64951b64291edfef27bcdfca8da4fb2cd08151b2eb03ab09059e0259d3dc78f6e78bf12ca35481de2e3edaaf1161ac94268df1b22405a7def019aa2d6e0a2e52
+Size (github.com_mholt_acmez_v3_@v_v3.1.7.zip) = 102852 bytes
+BLAKE2s (github.com_miekg_dns_@v_v1.1.73.mod) = 2166941b2b191cf155b0fef31ec251bfd5b3c75ceb9ab72716c4c863e079d035
+SHA512 (github.com_miekg_dns_@v_v1.1.73.mod) = 31e4c629c91eb2c153d44d8519569650336964ad76e7c9face290f0480303cb1b872e13bdc22995059e1015a304fe0c7770be5e76d8b96a6e5c68b25f3ca72d5
+Size (github.com_miekg_dns_@v_v1.1.73.mod) = 283 bytes
+BLAKE2s (github.com_miekg_dns_@v_v1.1.73.zip) = bb1b16c0bde244b1076537c5dc14b7ec96fadd5caf525ad36c80d77a338e76e3
+SHA512 (github.com_miekg_dns_@v_v1.1.73.zip) = 4da5aa096d40e805ab3aff880492bd9e3968a486eed489aad1fcefeeb7302ea867369af9cadcbf1a6cb362feebf9743420d0e4277256584dcc22cd3f1349a40f
+Size (github.com_miekg_dns_@v_v1.1.73.zip) = 265362 bytes
+BLAKE2s (github.com_quic-go_qpack_@v_v0.6.0.mod) = 00958567444078e3ce71b48acef9ef218b41a116cf598394b9876b4e726be25f
+SHA512 (github.com_quic-go_qpack_@v_v0.6.0.mod) = a331fe10c25947958342ff451bc3574e6412d30b5d35aa2cd1b441e4dcd84872674c764127a022f5db988544fce7495002bf5dd3b2bfb4b99cc71aa757a454f0
+Size (github.com_quic-go_qpack_@v_v0.6.0.mod) = 263 bytes
+BLAKE2s (github.com_quic-go_qpack_@v_v0.6.0.zip) = c2ac8612fce34c9cc9a0f48c235003e5bea4709168e230344c982c774b825e38
+SHA512 (github.com_quic-go_qpack_@v_v0.6.0.zip) = f0e7c9cc648bb42ee6a8ae5487b66ebe43f7d4a3b8c799cbb695159d6ca37834b0fd87859bb5638ee1f24c36552d1a9014af9f373c320a1be575c7ad2a906372
+Size (github.com_quic-go_qpack_@v_v0.6.0.zip) = 48205 bytes
+BLAKE2s (github.com_quic-go_quic-go_@v_v0.63.0.mod) = cbfb6b987f2d3eab572c19c2128d266d4bd1bffbc72c5500a655f156e56103ac
+SHA512 (github.com_quic-go_quic-go_@v_v0.63.0.mod) = bddcff284e52eb629dc7b936ea9cf2d8ac1d4740d13701aed9715d2aa9969d60c1b71c927a1e533477cb1e0cca12c30263b622e53f295114a323303c03d2fe43
+Size (github.com_quic-go_quic-go_@v_v0.63.0.mod) = 636 bytes
+BLAKE2s (github.com_quic-go_quic-go_@v_v0.63.0.zip) = fca5427520eb2fc1a3304d655a4fd1fb341967f0085533f774ac0cf9089eee71
+SHA512 (github.com_quic-go_quic-go_@v_v0.63.0.zip) = 05aa3168a3a45abf72ec5d3328ecc457adf365d7ff8a80dbd6ca601778b5c288382435921a990d80d830a28afd8cedd1440bda687bc8572e464b800182eec3fb
+Size (github.com_quic-go_quic-go_@v_v0.63.0.zip) = 1019911 bytes
+BLAKE2s (github.com_zeebo_blake3_@v_v0.2.4.mod) = bf2b83b407128ac57180f69901d10f41835d297987ea7779e45be10781afebf6
+SHA512 (github.com_zeebo_blake3_@v_v0.2.4.mod) = 73490d67f5027541f74f7843b202c9c6d9ac4ab89118cf64366f18528d54b3cd5a35637e5c97def578d6312b7c37c1b96cb2dfed98164c5dd616b33e907dd73e
+Size (github.com_zeebo_blake3_@v_v0.2.4.mod) = 153 bytes
+BLAKE2s (github.com_zeebo_blake3_@v_v0.2.4.zip) = c9c2b2b904be7f0c2777ed658a9e9e0c4b1132506f20ddbdb1141466f1c32cb7
+SHA512 (github.com_zeebo_blake3_@v_v0.2.4.zip) = 552f2971dccb6828687281ab05c695278bbf9b8941da6469df5bc8e15d785c35650257ddb98435ea4e5954f9e71324bbcec87ac0301517df6301462b68233f15
+Size (github.com_zeebo_blake3_@v_v0.2.4.zip) = 111107 bytes
+BLAKE2s (go.uber.org_multierr_@v_v1.11.0.mod) = af43db525fd91735162b6974a2d5fcd5f747aa82158a7bf08cb4bc6fc8c58ac5
+SHA512 (go.uber.org_multierr_@v_v1.11.0.mod) = f104d72db3ff0496329bf07fa55629a9e8d4f9833769aac37b37bc0b16bc3a88b14f0d249e44f669050275e878c54c35678470e9a99b2f42ae5eb2a2cece9b0e
+Size (go.uber.org_multierr_@v_v1.11.0.mod) = 228 bytes
+BLAKE2s (go.uber.org_multierr_@v_v1.11.0.zip) = 38cc533a0c9eea9b5cc6393d1d24d1c18c1a8e2cbd986575e627372fa23e7389
+SHA512 (go.uber.org_multierr_@v_v1.11.0.zip) = 68040fe6658ae4d8215b807c5ccb00df995cbf6bae56d68beef8335abb38d1008f2814abf71b196ccb1ccde10d5234de2da77055171ae87780816ac20521a662
+Size (go.uber.org_multierr_@v_v1.11.0.zip) = 25681 bytes
+BLAKE2s (go.uber.org_zap_@v_v1.28.0.mod) = 401425875192756be80aa866429f8756cea29017d93614f7077c37a257175683
+SHA512 (go.uber.org_zap_@v_v1.28.0.mod) = 7b8e935bc69d3993283e90816ca4e217d037991f25d86f8785f38955db6d574d7b67371440f41da91f78ea7694ee9b2044a280fca2698a7c16b6b91957745f43
+Size (go.uber.org_zap_@v_v1.28.0.mod) = 351 bytes
+BLAKE2s (go.uber.org_zap_@v_v1.28.0.zip) = 0f1a413c2063d8870d39739e7eab2cf1ea71340aa2e5d9413d4bf57dfd469af2
+SHA512 (go.uber.org_zap_@v_v1.28.0.zip) = d728f6735a668770c2a8d21d5dd6e98a10d095831311ccddd2e92db79dd90bc41e3bfe4ec40c6b82bcb3cbdaa567793ea539c141edc2ac67630e1f540a66b3da
+Size (go.uber.org_zap_@v_v1.28.0.zip) = 290595 bytes
+BLAKE2s (go.uber.org_zap_exp_@v_v0.3.0.mod) = f142715a41460f2a519c5811cc69289a3d2a105a2711a445bd7e7d3acad12062
+SHA512 (go.uber.org_zap_exp_@v_v0.3.0.mod) = 84770c21c6d413f5eb684ffe0b57494126d86aa1815668d3baa0127299bff51dd5f5030790b905e3b071ae3063589b8e39af5433aedaa1c00ec1d6e23bcbfe72
+Size (go.uber.org_zap_exp_@v_v0.3.0.mod) = 331 bytes
+BLAKE2s (go.uber.org_zap_exp_@v_v0.3.0.zip) = 6189599fe3979996466d2222131257d3801d2e3812e1259b847003ace06ced9b
+SHA512 (go.uber.org_zap_exp_@v_v0.3.0.zip) = d83e1b4579e056a90ef7875838ab1bbbaa96bd51e8295ff7295328968c6b88fa645c3f7242a1ad00d8b906a9e056b280458da9c51e53a099eec7e0de9c53c9cd
+Size (go.uber.org_zap_exp_@v_v0.3.0.zip) = 15842 bytes
+BLAKE2s (golang.org_x_crypto_@v_v0.57.0.mod) = 5786d5d9fc2b2a8d2785a6628a5e906adc793cb0f9f5c59566f2118ef13c3b37
+SHA512 (golang.org_x_crypto_@v_v0.57.0.mod) = 7786101b114f79c5fe3c98d3e4fbdf1e40e8f43ad425ebbf45124bd208e3368016e95b0895b2119b84dcbe64123ff5083330e5c9a40527fa324c1313596c8f34
+Size (golang.org_x_crypto_@v_v0.57.0.mod) = 192 bytes
+BLAKE2s (golang.org_x_crypto_@v_v0.57.0.zip) = 8bb0a709d540a75d4d46ad3b1521fe780703418ab87f0cffc0d67898855ef472
+SHA512 (golang.org_x_crypto_@v_v0.57.0.zip) = 94b88bc36708172f117ee56c274217fe934af2139df6e211ee403d6aba465e768d376a9976f9094d6cbf4b36fa598dbf40b1af944e6adb91974c3f2de8ffda01
+Size (golang.org_x_crypto_@v_v0.57.0.zip) = 2312809 bytes
+BLAKE2s (golang.org_x_net_@v_v0.59.0.mod) = 6c90b1cdb361a9f10f26cf944b5ee704ee1a36afcfc4dacd6cd31ffdec872590
+SHA512 (golang.org_x_net_@v_v0.59.0.mod) = b97725b8154f76955df4a1d39457b774fe0e477314c69d5a7cd7a66f786265dea749be72bae8d605ccd4ed77174ab052e92696b16fad9920e0fff24d1c9e5df8
+Size (golang.org_x_net_@v_v0.59.0.mod) = 157 bytes
+BLAKE2s (golang.org_x_net_@v_v0.59.0.zip) = 91b068c6d63e2871c191bd0b0b7bd36418ecec43a29b04e6b94a5a2d6bcccedd
+SHA512 (golang.org_x_net_@v_v0.59.0.zip) = f23a5148d57e68cebacabe20efa6d93a00ba71ea3f8b948a38fc40838728a87328cb31cedd160294ac3645c997c7c05a677000ac6f28e7cbf7be6590d8405694
+Size (golang.org_x_net_@v_v0.59.0.zip) = 1941034 bytes
+BLAKE2s (golang.org_x_sys_@v_v0.48.0.mod) = f609363d838f5ab76912006e45f8be731a32059069f64baeb2b494e4589f0a1c
+SHA512 (golang.org_x_sys_@v_v0.48.0.mod) = a307d84c89d7a12775fcb0274d2c9c5a54315cc6559596ab94b40e0b53f192e55373ca0f5f17768158090a456d23591cf4052a70579a080f2761ee0f62654a4f
+Size (golang.org_x_sys_@v_v0.48.0.mod) = 35 bytes
+BLAKE2s (golang.org_x_sys_@v_v0.48.0.zip) = 336c761f0465b662c71a9742b6e394b6c5590d1cdb3f01a60eb03945300bb4e0
+SHA512 (golang.org_x_sys_@v_v0.48.0.zip) = 2a8305d837186d483786d910d5622318a523b4afcf3187ba87517d227fa289bc876c26e0db3b858c3928a816b30eb16e39c94115438a80c5bc28fff37cbf4501
+Size (golang.org_x_sys_@v_v0.48.0.zip) = 2094772 bytes
+BLAKE2s (golang.org_x_text_@v_v0.42.0.mod) = 3e3ec62ee1da53e5a3cc49d7ebf79918d370b7a7707b314ac198a739f3b07e4a
+SHA512 (golang.org_x_text_@v_v0.42.0.mod) = b77b73acfa718df21d32a839faf829c725b85945f1bc7bc02f6a566df730b00ee61a13fb9138264e1d7f9bec037a8423153aaec19e14b746d7f43dc88a5a6ccc
+Size (golang.org_x_text_@v_v0.42.0.mod) = 190 bytes
+BLAKE2s (golang.org_x_text_@v_v0.42.0.zip) = 4734b150d73173c76b7bd46e8860960bb5314d8324d40a654e794652002f09f3
+SHA512 (golang.org_x_text_@v_v0.42.0.zip) = b717d593e11a7684aafd7f959c21bed82cdd8d98e2ac8824d42e1c6c10a60f21a6da931103d27c5e54980dee4cb8fc05407a9f3329a6754216e7da99f9bf756e
+Size (golang.org_x_text_@v_v0.42.0.zip) = 7337550 bytes
+BLAKE2s (rcvd-0.3.1.tar.gz) = bb8f06f924e95dcbd8466a3063963b61a1504dc0191e1a713bfd3178ef6c52ce
+SHA512 (rcvd-0.3.1.tar.gz) = 711167f18fd37c2aba222cad2742c07d7dc9bfb5d45ba3db5215d00c1c91f7815a1a0192c6cc7050f62eba610182ba22a23a88ceb97bb2c5c32fbaf90733de84
+Size (rcvd-0.3.1.tar.gz) = 370567 bytes
Index: pkgsrc/net/rcvd/go-modules.mk
diff -u /dev/null pkgsrc/net/rcvd/go-modules.mk:1.1
--- /dev/null   Tue Oct  6 11:23:18 2026
+++ pkgsrc/net/rcvd/go-modules.mk       Tue Oct  6 11:23:17 2026
@@ -0,0 +1,37 @@
+# $NetBSD: go-modules.mk,v 1.1 2026/10/06 11:23:17 drixter Exp $
+GO_MODULE_FILES+=      github.com/!burnt!sushi/toml/@v/v1.6.0.mod
+GO_MODULE_FILES+=      github.com/!burnt!sushi/toml/@v/v1.6.0.zip
+GO_MODULE_FILES+=      github.com/caddyserver/certmagic/@v/v0.25.6.mod
+GO_MODULE_FILES+=      github.com/caddyserver/certmagic/@v/v0.25.6.zip
+GO_MODULE_FILES+=      github.com/caddyserver/zerossl/@v/v0.1.6.mod
+GO_MODULE_FILES+=      github.com/caddyserver/zerossl/@v/v0.1.6.zip
+GO_MODULE_FILES+=      github.com/klauspost/cpuid/v2/@v/v2.4.0.mod
+GO_MODULE_FILES+=      github.com/klauspost/cpuid/v2/@v/v2.4.0.zip
+GO_MODULE_FILES+=      github.com/libdns/cloudflare/@v/v0.2.2.mod
+GO_MODULE_FILES+=      github.com/libdns/cloudflare/@v/v0.2.2.zip
+GO_MODULE_FILES+=      github.com/libdns/libdns/@v/v1.1.1.mod
+GO_MODULE_FILES+=      github.com/libdns/libdns/@v/v1.1.1.zip
+GO_MODULE_FILES+=      github.com/mholt/acmez/v3/@v/v3.1.7.mod
+GO_MODULE_FILES+=      github.com/mholt/acmez/v3/@v/v3.1.7.zip
+GO_MODULE_FILES+=      github.com/miekg/dns/@v/v1.1.73.mod
+GO_MODULE_FILES+=      github.com/miekg/dns/@v/v1.1.73.zip
+GO_MODULE_FILES+=      github.com/quic-go/qpack/@v/v0.6.0.mod
+GO_MODULE_FILES+=      github.com/quic-go/qpack/@v/v0.6.0.zip
+GO_MODULE_FILES+=      github.com/quic-go/quic-go/@v/v0.63.0.mod
+GO_MODULE_FILES+=      github.com/quic-go/quic-go/@v/v0.63.0.zip
+GO_MODULE_FILES+=      github.com/zeebo/blake3/@v/v0.2.4.mod
+GO_MODULE_FILES+=      github.com/zeebo/blake3/@v/v0.2.4.zip
+GO_MODULE_FILES+=      go.uber.org/multierr/@v/v1.11.0.mod
+GO_MODULE_FILES+=      go.uber.org/multierr/@v/v1.11.0.zip
+GO_MODULE_FILES+=      go.uber.org/zap/@v/v1.28.0.mod
+GO_MODULE_FILES+=      go.uber.org/zap/@v/v1.28.0.zip
+GO_MODULE_FILES+=      go.uber.org/zap/exp/@v/v0.3.0.mod
+GO_MODULE_FILES+=      go.uber.org/zap/exp/@v/v0.3.0.zip
+GO_MODULE_FILES+=      golang.org/x/crypto/@v/v0.57.0.mod
+GO_MODULE_FILES+=      golang.org/x/crypto/@v/v0.57.0.zip
+GO_MODULE_FILES+=      golang.org/x/net/@v/v0.59.0.mod
+GO_MODULE_FILES+=      golang.org/x/net/@v/v0.59.0.zip
+GO_MODULE_FILES+=      golang.org/x/sys/@v/v0.48.0.mod
+GO_MODULE_FILES+=      golang.org/x/sys/@v/v0.48.0.zip
+GO_MODULE_FILES+=      golang.org/x/text/@v/v0.42.0.mod
+GO_MODULE_FILES+=      golang.org/x/text/@v/v0.42.0.zip

Index: pkgsrc/net/rcvd/files/rcvd.sh
diff -u /dev/null pkgsrc/net/rcvd/files/rcvd.sh:1.1
--- /dev/null   Tue Oct  6 11:23:18 2026
+++ pkgsrc/net/rcvd/files/rcvd.sh       Tue Oct  6 11:23:17 2026
@@ -0,0 +1,40 @@
+#!@RCD_SCRIPTS_SHELL@
+#
+# $NetBSD: rcvd.sh,v 1.1 2026/10/06 11:23:17 drixter Exp $
+#
+# PROVIDE: rcvd
+# REQUIRE: DAEMON SERVERS
+# KEYWORD: shutdown
+#
+# rcvd: privacy-first encrypted DNS engine.
+#
+# The REQUIRE line above matches the pkgsrc convention for a DNS forwarder
+# (as used by dnsmasq and unbound): rcvd starts in the normal daemon batch.
+# If you run rcvd AS THE SYSTEM RESOLVER, so that other local daemons resolve
+# names through it, use the named(8)-style ordering instead so rcvd comes up
+# first (rcvd bootstraps over pinned IPs, needing no cleartext DNS):
+#   # REQUIRE: NETWORKING
+#   # BEFORE:  DAEMON
+#
+# To enable, add the following to /etc/rc.conf:
+#   rcvd=YES
+#
+# Optional overrides (defaults shown):
+#   rcvd_conf="@PKG_SYSCONFDIR@/rcvd/rcvd.toml"
+#   rcvd_user="rcvd"
+#   rcvd_flags="-config ${rcvd_conf}"
+
+. /etc/rc.subr
+
+name="rcvd"
+rcvar=${name}
+command="@PREFIX@/bin/rcvd"
+: ${rcvd_conf:="@PKG_SYSCONFDIR@/rcvd/rcvd.toml"}
+: ${rcvd_user:="rcvd"}
+: ${rcvd_flags:="-config ${rcvd_conf}"}
+
+command_args="&"
+required_files="${rcvd_conf}"
+
+load_rc_config $name
+run_rc_command "$1"



Home | Main Index | Thread Index | Old Index