summaryrefslogtreecommitdiff
path: root/net-dns
diff options
context:
space:
mode:
Diffstat (limited to 'net-dns')
-rw-r--r--net-dns/Manifest.gzbin7873 -> 7872 bytes
-rw-r--r--net-dns/dnsdist/Manifest3
-rw-r--r--net-dns/dnsdist/dnsdist-1.9.8-r2.ebuild (renamed from net-dns/dnsdist/dnsdist-1.9.8-r1.ebuild)5
-rw-r--r--net-dns/dnsdist/files/1.9.8-fix-compat-with-boost-lockfree-1.87.0.patch90
-rw-r--r--net-dns/unbound/Manifest1
-rw-r--r--net-dns/unbound/unbound-1.22.0-r1.ebuild218
6 files changed, 315 insertions, 2 deletions
diff --git a/net-dns/Manifest.gz b/net-dns/Manifest.gz
index c71859d82c82..fbd6a4dc3c60 100644
--- a/net-dns/Manifest.gz
+++ b/net-dns/Manifest.gz
Binary files differ
diff --git a/net-dns/dnsdist/Manifest b/net-dns/dnsdist/Manifest
index 64aef0c0824a..f821684c964c 100644
--- a/net-dns/dnsdist/Manifest
+++ b/net-dns/dnsdist/Manifest
@@ -1,3 +1,4 @@
+AUX 1.9.8-fix-compat-with-boost-lockfree-1.87.0.patch 4001 BLAKE2B 71faa8197304662847af92d634bedc14bea66fd7f031e9c9dc05e547fcf57004c90b125a50db51c56619159c5ff1673303fabcaf3593efe2946e5b98a3006260 SHA512 7ec3c9ee392a498b0903ed221969dd13850d8db782e81c67673590fb21b44e7b23d2649d0726af7fbdc0153456de0c8c62cf3201849900d61ba171aaed747bcf
AUX 1.9.8-quiche-0.23.patch 2511 BLAKE2B 716c858f51be62eccba712feb9ec6c22080ce78667d8ff65c0ebae46e00746da6af1961b718be3c5545f6ded877b23c065f4c12023531ce7a31e6480339b3ee7 SHA512 8ebc9eba5b33dd11e0ed7cfaee7c98efa1209af60bd930871f207db8575a6e76fc1786b10219439f5ce2110b9ab3e6cd6bf3a0dcecd53c715c7f966612a52e56
AUX dnsdist.conf.example 524 BLAKE2B e9d140129dfbd276d1fb927d73bee4e4c29920ae70d587765ea5d432f02694b1a8583340c2e14e191bbdf5ddd5b921274cb2336c3520839d7cfe6f399a4d6c26 SHA512 385bee5725d927feb50fc0f40cd48cd365a495e39c0d947aa53dc454d84b7fe3806cd1d206056c96d111e7251db2cda27570ff8154c70bed145d37bc7d1db01d
AUX dnsdist.confd 266 BLAKE2B c201b0aa3599ea7606e998348d777796ff391f3d4b0e46744160298456c86a9d9bbf65d1a339c0c13db4c796efb7c3adba01110882542fe501c735c9dd190f92 SHA512 935afc768ae56d017f6dee8bed7a3e92615055a0d4d2ae9980afef1b8f353da0e8bd6e20b914602e50b116ad33ef17ba05535b225af8b8da9ad005694edc071f
@@ -5,5 +6,5 @@ AUX dnsdist.initd 1337 BLAKE2B e2619182674439be6942a0a936208326c12cfc2839bba4fd6
DIST dnsdist-1.9.6.tar.bz2 1598874 BLAKE2B adb56707bb768ceae974cd9b725d2bf1f4beaa6e3edc6ede22a7d93920214614f10c82d71dbb773741f56dff04e0f0aa26dc0a0e2d5d405bee89d8ada1130303 SHA512 8d0c88336864b788df320298678e2a8556d7c4ff468ec1b4165b87c2fe5c6c167a2c75cdd2df433346fac12694d8e39d30910b8d1d4be7f35d9e0d85edd5ef5a
DIST dnsdist-1.9.8.tar.bz2 1593902 BLAKE2B 854344eb6b82f98001171830715fe5cf564628405b4c79c07b43fccdbca0a4c9da7e527a748bc2972261a32ed9c51582eac2e6fdbef5c25bd71b161318a62155 SHA512 b89bc1ba62a2cf009a305a71eaa2553810d6d5f25f71098cb34acd86bfe5632e5f9f4b5ce057ea93665f1f5dd65e6a3d67fa364e8cecf0b648559c73061baddd
EBUILD dnsdist-1.9.6.ebuild 2710 BLAKE2B 5148ee3d8471495e0b4aec5a69078afc2f4a931c1c223270b31b59ec98a26ba1dc27dcdc5b264e0bb6978d0f3bd8488c58cbbb18db43d691b0edd307833bb7cd SHA512 3ff14d72f3faf0f828c763b7cd980f51f5390fc34fb3d182cdaec49e2b611e8e0e4104a80dc6b3ee05c92b87cd47da42dad8ccd1733b66f9b0367280def31900
-EBUILD dnsdist-1.9.8-r1.ebuild 2816 BLAKE2B b9905719b8a60b10a421ab15319315bce05f32bdf8f6f263b9be7bb086b24750d90aa846a16fdf982a88a5d476b740b5aead909027a6e3c61158c95361a981b1 SHA512 995b8d9a777bfec1e75fb426eec6855be9ba684ed897f17976f871c70f95ead7766b8931a19038b287c011387826eb4a72f2e7193ac156e71fa9c84f8718c120
+EBUILD dnsdist-1.9.8-r2.ebuild 2882 BLAKE2B 43e9a0fa5b6f8c3fcd389a4845c45cc1b125382bbce3b56180f7f3263297671520efdfb143bc81488137bddf82885f9fe95af6a82a27747f63f9944f4bf463ec SHA512 407d7aa4a764a61dba34eb3d86cd1dd36040371b1740d97913f741c213d0a625588e203aa14c5e68d829d3dc083218c98468269ad5bfb50272f46fbcd353f812
MISC metadata.xml 1861 BLAKE2B c160b636f744acabe9ee303a60f8170bb5474d70e58b858e5585eb60e41b5b9d80f4e6cb8f49304b6ec7f11d0378332f8b9ebdd79d06d6d62cc9299b40e5e4ed SHA512 c034972452c33b6ded417772883af3d91f9b7f8f364fc9536337c91dbb23971592be082e8acac59d03b4b28779c081386e881085c5941b19d95ba3b3c544c65a
diff --git a/net-dns/dnsdist/dnsdist-1.9.8-r1.ebuild b/net-dns/dnsdist/dnsdist-1.9.8-r2.ebuild
index b51d68a3dba2..bebf3ec0d2ed 100644
--- a/net-dns/dnsdist/dnsdist-1.9.8-r1.ebuild
+++ b/net-dns/dnsdist/dnsdist-1.9.8-r2.ebuild
@@ -49,7 +49,10 @@ RDEPEND="acct-group/dnsdist
DEPEND="${RDEPEND}"
BDEPEND="virtual/pkgconfig"
-PATCHES=( "${FILESDIR}/1.9.8-quiche-0.23.patch" )
+PATCHES=(
+ "${FILESDIR}/1.9.8-quiche-0.23.patch"
+ "${FILESDIR}/1.9.8-fix-compat-with-boost-lockfree-1.87.0.patch"
+)
src_prepare() {
default
diff --git a/net-dns/dnsdist/files/1.9.8-fix-compat-with-boost-lockfree-1.87.0.patch b/net-dns/dnsdist/files/1.9.8-fix-compat-with-boost-lockfree-1.87.0.patch
new file mode 100644
index 000000000000..69b03b1047df
--- /dev/null
+++ b/net-dns/dnsdist/files/1.9.8-fix-compat-with-boost-lockfree-1.87.0.patch
@@ -0,0 +1,90 @@
+Patch from: https://github.com/PowerDNS/pdns/pull/15181
+Fixed file paths for dnsdist tarball.
+
+Signed-off-by: Holger Hoffstätte <holger@applied-asynchrony.com>
+
+From: Remi Gacogne <remi.gacogne@powerdns.com>
+Date: Mon, 10 Feb 2025 11:24:28 +0100
+Subject: [PATCH] dnsdist-1.9.x: Fix compatibility with boost::lockfree >= 1.87.0
+
+In https://github.com/boostorg/lockfree/pull/90 `boost::lockfree::spsc_queue`
+introduced moved semantics, which is great, but added restrictions
+to the callback functor that did not exist before, breaking the API.
+This PR fixes that by updating our callbacks to expect an object
+instead of a reference.
+
+(cherry picked from commit 05543aed8ccff2270a65d3f9b75e6e9d894b8b45)
+---
+ dnsdist-xsk.cc | 6 +++---
+ xsk.cc | 4 ++--
+ xsk.hh | 4 ++--
+ 3 files changed, 7 insertions(+), 7 deletions(-)
+
+diff --git a/dnsdist-xsk.cc b/dnsdist-xsk.cc
+index 7e83c510093e..dcbd79459796 100644
+--- a/dnsdist-xsk.cc
++++ b/dnsdist-xsk.cc
+@@ -48,7 +48,7 @@ void XskResponderThread(std::shared_ptr<DownstreamState> dss, std::shared_ptr<Xs
+ if ((pollfds[0].revents & POLLIN) != 0) {
+ needNotify = true;
+ xskInfo->cleanSocketNotification();
+- xskInfo->processIncomingFrames([&](XskPacket& packet) {
++ xskInfo->processIncomingFrames([&](XskPacket packet) {
+ if (packet.getDataLen() < sizeof(dnsheader)) {
+ xskInfo->markAsFree(packet);
+ return;
+@@ -167,7 +167,7 @@ void XskRouter(std::shared_ptr<XskSocket> xsk)
+ if ((fds.at(fdIndex).revents & POLLIN) != 0) {
+ ready--;
+ const auto& info = xsk->getWorkerByDescriptor(fds.at(fdIndex).fd);
+- info->processOutgoingFrames([&](XskPacket& packet) {
++ info->processOutgoingFrames([&](XskPacket packet) {
+ if ((packet.getFlags() & XskPacket::UPDATE) == 0) {
+ xsk->markAsFree(packet);
+ return;
+@@ -202,7 +202,7 @@ void XskClientThread(ClientState* clientState)
+ while (!xskInfo->hasIncomingFrames()) {
+ xskInfo->waitForXskSocket();
+ }
+- xskInfo->processIncomingFrames([&](XskPacket& packet) {
++ xskInfo->processIncomingFrames([&](XskPacket packet) {
+ if (XskProcessQuery(*clientState, holders, packet)) {
+ packet.updatePacket();
+ xskInfo->pushToSendQueue(packet);
+diff --git a/xsk.cc b/xsk.cc
+index 5851f1b9b79e..d246a1d72e83 100644
+--- a/xsk.cc
++++ b/xsk.cc
+@@ -1185,7 +1185,7 @@ bool XskWorker::hasIncomingFrames()
+ return d_incomingPacketsQueue.read_available() != 0U;
+ }
+
+-void XskWorker::processIncomingFrames(const std::function<void(XskPacket& packet)>& callback)
++void XskWorker::processIncomingFrames(const std::function<void(XskPacket packet)>& callback)
+ {
+ if (d_type == Type::OutgoingOnly) {
+ throw std::runtime_error("Looking for incoming packets in an outgoing-only XSK Worker");
+@@ -1194,7 +1194,7 @@ void XskWorker::processIncomingFrames(const std::function<void(XskPacket& packet
+ d_incomingPacketsQueue.consume_all(callback);
+ }
+
+-void XskWorker::processOutgoingFrames(const std::function<void(XskPacket& packet)>& callback)
++void XskWorker::processOutgoingFrames(const std::function<void(XskPacket packet)>& callback)
+ {
+ d_outgoingPacketsQueue.consume_all(callback);
+ }
+diff --git a/xsk.hh b/xsk.hh
+index 2f3e7c372e35..ff36be5ecd96 100644
+--- a/xsk.hh
++++ b/xsk.hh
+@@ -312,8 +312,8 @@ public:
+ void pushToProcessingQueue(XskPacket& packet);
+ void pushToSendQueue(XskPacket& packet);
+ bool hasIncomingFrames();
+- void processIncomingFrames(const std::function<void(XskPacket& packet)>& callback);
+- void processOutgoingFrames(const std::function<void(XskPacket& packet)>& callback);
++ void processIncomingFrames(const std::function<void(XskPacket packet)>& callback);
++ void processOutgoingFrames(const std::function<void(XskPacket packet)>& callback);
+ void markAsFree(const XskPacket& packet);
+ // notify worker that at least one packet is available for processing
+ void notifyWorker() const;
diff --git a/net-dns/unbound/Manifest b/net-dns/unbound/Manifest
index d327f11c7350..72a636028d75 100644
--- a/net-dns/unbound/Manifest
+++ b/net-dns/unbound/Manifest
@@ -15,5 +15,6 @@ DIST unbound-1.22.0.tar.gz 6682466 BLAKE2B 28cf5c6c5e29d4026beb33e8a17b012d1185a
DIST unbound-1.22.0.tar.gz.asc 833 BLAKE2B 02e582f5c77d8aee1a19ebb67ab081972461c298983f407d3e1d4daf6d771f087b95a19c93b7368cb3d76c350e40c3b886088d5772d5c259d0f2672a8f009153 SHA512 afbf5a125f104a25576b1c416b32f68d715b41a025fc3a61e6ee3bc28f9988b4277c7f0dd188c51cbe5641f51ade20f740ea131d1a7b5db38e2d1462a9edbb69
EBUILD unbound-1.19.3.ebuild 6499 BLAKE2B cd4b63183a3c40ae340466593ad65f59b528951b18111e053d49e71826bcff4b7b2cf0d5e92e9597557cc76c08c64bcaadd004224101f2169f6bddda37ed5de6 SHA512 9d2dbf869631feb4b663743e3e243f922ead89501420bc5baeb533ff60f3a6a418836aca62558e69bcb76c27fd16372c3246e80468a6000aaf10085752d86d14
EBUILD unbound-1.20.0.ebuild 6499 BLAKE2B cd4b63183a3c40ae340466593ad65f59b528951b18111e053d49e71826bcff4b7b2cf0d5e92e9597557cc76c08c64bcaadd004224101f2169f6bddda37ed5de6 SHA512 9d2dbf869631feb4b663743e3e243f922ead89501420bc5baeb533ff60f3a6a418836aca62558e69bcb76c27fd16372c3246e80468a6000aaf10085752d86d14
+EBUILD unbound-1.22.0-r1.ebuild 6505 BLAKE2B 162cecf432fb64dcb3e2604cdc42170f2174c53cf9de3e8b3fbe4dfe6aaedf0786f0bf12cb0496e782382cb49b546eb7d8fc2a1caadf9cd52cd76502e31d4af2 SHA512 f659730f6c672da7d18b049756dad49a41c217b0a3f86978580eed39586508cc4aa3ba61841ac50b97d9b26d7958d682341dddd0ecc97680ae6341e9f290a633
EBUILD unbound-1.22.0.ebuild 6499 BLAKE2B f63c49b112dde18a3f3d85139ee15462ca4525b02a4e10f663b69ae576b1c11b3677cbc29f7836ee6c66333dd59bc652c6d100f9a4b51f14d2b7ce26c930e45b SHA512 3cb41567fbea4474a260d6b8a550a553a6cb132517224d1dd102d7a10ef2bcdc1a89fdd2338a61d56e4f58d2485fce0490972d1552b218e0dbe1aaf17449e379
MISC metadata.xml 1475 BLAKE2B d0e34f4ba056c090af979f2686d5dece53a554c7ea7612fee1991ce6838ce161359bd8405d6358c5e184b6721affeee5d6e1bd93095b92765cd38dba928daa5b SHA512 8fba72eba420d4c06fb3a9119c3f324c5679fe268b65fac23878ef15f3c3d784d372874c7d6428d1c7c2eb3a75380ad2e4d5fc1691e7c2d1b426b8cfa381222b
diff --git a/net-dns/unbound/unbound-1.22.0-r1.ebuild b/net-dns/unbound/unbound-1.22.0-r1.ebuild
new file mode 100644
index 000000000000..dd04e5af8bfb
--- /dev/null
+++ b/net-dns/unbound/unbound-1.22.0-r1.ebuild
@@ -0,0 +1,218 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{10..13} )
+VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/unbound.net.asc
+inherit autotools flag-o-matic multilib-minimal python-single-r1 systemd verify-sig
+
+MY_P=${PN}-${PV/_/}
+DESCRIPTION="A validating, recursive and caching DNS resolver"
+HOMEPAGE="https://unbound.net/ https://nlnetlabs.nl/projects/unbound/about/"
+SRC_URI="
+ https://nlnetlabs.nl/downloads/unbound/${MY_P}.tar.gz
+ verify-sig? ( https://nlnetlabs.nl/downloads/unbound/${MY_P}.tar.gz.asc )
+"
+S="${WORKDIR}"/${MY_P}
+
+LICENSE="BSD GPL-2"
+SLOT="0/8" # ABI version of libunbound.so
+if [[ ${PV} != *_rc* ]] ; then
+ KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86"
+fi
+IUSE="debug dnscrypt dnstap +ecdsa ecs gost +http2 python redis selinux static-libs systemd test +tfo threads"
+REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )"
+RESTRICT="!test? ( test )"
+
+# Note: expat is needed by executable only but the Makefile is custom
+# and doesn't make it possible to easily install the library without
+# the executables. MULTILIB_USEDEP may be dropped once build system
+# is fixed.
+DEPEND="
+ acct-group/unbound
+ acct-user/unbound
+ >=dev-libs/expat-2.1.0-r3[${MULTILIB_USEDEP}]
+ >=dev-libs/libevent-2.0.21:0=[${MULTILIB_USEDEP}]
+ >=dev-libs/openssl-1.0.1h-r2:0=[${MULTILIB_USEDEP}]
+ dnscrypt? ( dev-libs/libsodium:=[${MULTILIB_USEDEP}] )
+ dnstap? (
+ dev-libs/fstrm[${MULTILIB_USEDEP}]
+ >=dev-libs/protobuf-c-1.0.2-r1:=[${MULTILIB_USEDEP}]
+ )
+ ecdsa? (
+ dev-libs/openssl:0[-bindist(-)]
+ )
+ http2? ( net-libs/nghttp2:=[${MULTILIB_USEDEP}] )
+ python? ( ${PYTHON_DEPS} )
+ redis? ( dev-libs/hiredis:= )
+ systemd? ( sys-apps/systemd )
+"
+BDEPEND="
+ virtual/pkgconfig
+ python? ( dev-lang/swig )
+ test? (
+ net-libs/ldns[examples(-)]
+ dev-util/splint
+ app-text/wdiff
+ )
+ verify-sig? ( sec-keys/openpgp-keys-unbound )
+"
+RDEPEND="
+ ${DEPEND}
+ net-dns/dnssec-root
+ selinux? ( sec-policy/selinux-bind )
+"
+
+QA_CONFIG_IMPL_DECL_SKIP=(
+ ioctlsocket # not on Linux (bug #900060)
+)
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-1.5.7-trust-anchor-file.patch
+ "${FILESDIR}"/${PN}-1.6.3-pkg-config.patch
+ "${FILESDIR}"/${PN}-1.10.1-find-ar.patch
+)
+
+pkg_setup() {
+ use python && python-single-r1_pkg_setup
+}
+
+src_prepare() {
+ default
+
+ eautoreconf
+
+ # Required for the python part
+ multilib_copy_sources
+}
+
+src_configure() {
+ [[ ${CHOST} == *-darwin* ]] || append-ldflags -Wl,-z,noexecstack
+ multilib-minimal_src_configure
+}
+
+multilib_src_configure() {
+ local myeconfargs=(
+ $(multilib_native_use_enable debug)
+ $(multilib_native_use_enable gost)
+ $(multilib_native_use_enable dnscrypt)
+ $(multilib_native_use_enable dnstap)
+ $(multilib_native_use_enable ecdsa)
+ $(multilib_native_use_enable ecs subnet)
+ $(multilib_native_use_enable redis cachedb)
+ $(multilib_native_use_enable static-libs static)
+ $(multilib_native_use_enable systemd)
+ $(multilib_native_use_with python pythonmodule)
+ $(multilib_native_use_with python pyunbound)
+ $(multilib_native_use_with threads pthreads)
+ $(multilib_native_use_with http2 libnghttp2)
+ $(multilib_native_use_enable tfo tfo-client)
+ $(multilib_native_use_enable tfo tfo-server)
+
+ --disable-flto
+ --disable-rpath
+ --enable-event-api
+ --enable-ipsecmod
+
+ --with-libevent="${ESYSROOT}"/usr
+ $(multilib_native_usex redis --with-libhiredis="${ESYSROOT}/usr" --without-libhiredis)
+
+ --with-pidfile="${EPREFIX}"/run/unbound.pid
+ --with-rootkey-file="${EPREFIX}"/etc/dnssec/root-anchors.txt
+ --with-ssl="${ESYSROOT}"/usr
+ --with-libexpat="${ESYSROOT}"/usr
+
+ # http://unbound.nlnetlabs.nl/pipermail/unbound-users/2011-April/001801.html
+ # $(use_enable debug lock-checks)
+ # $(use_enable debug alloc-checks)
+ # $(use_enable debug alloc-lite)
+ # $(use_enable debug alloc-nonregional)
+ )
+
+ econf "${myeconfargs[@]}"
+}
+
+multilib_src_install() {
+ emake DESTDIR="${D}" install
+ systemd_dounit contrib/unbound.service
+ systemd_dounit contrib/unbound.socket
+}
+
+multilib_src_install_all() {
+ use python && python_optimize
+
+ newinitd "${FILESDIR}"/unbound-r1.initd unbound
+ newconfd "${FILESDIR}"/unbound-r1.confd unbound
+
+ systemd_newunit "${FILESDIR}"/unbound_at.service "unbound@.service"
+ systemd_dounit "${FILESDIR}"/unbound-anchor.service
+
+ dodoc doc/{README,CREDITS,TODO,Changelog,FEATURES}
+
+ # bug #315519
+ dodoc contrib/unbound_munin_
+
+ docinto selinux
+ dodoc contrib/selinux/*
+
+ exeinto /usr/share/${PN}
+ doexe contrib/update-anchor.sh
+
+ # Create space for auto-trust-anchor-file...
+ keepdir /etc/unbound/var
+ fowners root:unbound /etc/unbound/var
+ fperms 0770 /etc/unbound/var
+ # ... and point example config to it
+ sed -i \
+ -e '/# auto-trust-anchor-file:/s,/etc/dnssec/root-anchors.txt,/etc/unbound/var/root-anchors.txt,' \
+ "${ED}/etc/unbound/unbound.conf" \
+ || die
+
+ # Used to store cache data
+ keepdir /var/lib/${PN}
+ fowners root:unbound /var/lib/${PN}
+ fperms 0770 /var/lib/${PN}
+
+ find "${ED}" -name '*.la' -delete || die
+ if ! use static-libs ; then
+ find "${ED}" -name "*.a" -delete || die
+ fi
+}
+
+pkg_postinst() {
+ if [[ ! -f "${EROOT}/etc/unbound/unbound_control.key" ]]; then
+ einfo "Trying to create unbound control key ..."
+ if ! unbound-control-setup &>/dev/null ; then
+ ewarn "Failed to create unbound control key!"
+ fi
+ fi
+
+ if [[ ! -f "${EROOT}/etc/unbound/var/root-anchors.txt" ]]; then
+ einfo ""
+ einfo "If you want unbound to automatically update the root-anchor file for DNSSEC validation"
+ einfo "set 'auto-trust-anchor-file: ${EROOT}/etc/unbound/var/root-anchors.txt' in ${EROOT}/etc/unbound/unbound.conf"
+ einfo "and run"
+ einfo ""
+ einfo " su -s /bin/sh -c '${EROOT}/usr/sbin/unbound-anchor -a ${EROOT}/etc/unbound/var/root-anchors.txt' unbound"
+ einfo ""
+ einfo "as root to create it initially before starting unbound for the first time after enabling this."
+ einfo ""
+ fi
+
+ # Our user is not available on prefix
+ use prefix && return
+
+ local _perm_check_testfile=$(mktemp --dry-run "${EPREFIX}"/etc/unbound/var/.pkg_postinst-perm-check.XXXXXXXXX)
+ su -s /bin/sh -c "touch ${_perm_check_testfile}" unbound &>/dev/null
+ if [[ $? -ne 0 ]]; then
+ ewarn "WARNING: unbound user cannot write to \"${EPREFIX}/etc/unbound/var\"!"
+ ewarn "Run the following commands to restore default permission:"
+ ewarn ""
+ ewarn " chown root:unbound ${EPREFIX}/etc/unbound/var"
+ ewarn " chmod 0770 ${EPREFIX}/etc/unbound/var"
+ else
+ # Cleanup -- no reason to die here!
+ rm -f "${_perm_check_testfile}"
+ fi
+}