| 4 |
4 |
EAPI=8
|
| 5 |
5 |
|
| 6 |
6 |
PYTHON_COMPAT=( python3_{12..15} )
|
| 7 |
|
inherit autotools eapi9-ver python-r1 systemd tmpfiles verify-sig
|
|
7 |
inherit eapi9-ver python-r1 systemd tmpfiles verify-sig
|
| 8 |
8 |
|
| 9 |
9 |
# subslot: libknot major.libdnssec major.libzscanner major
|
| 10 |
10 |
KNOT_SUBSLOT="16.10.5"
|
| ... | ... | |
| 13 |
13 |
HOMEPAGE="https://www.knot-dns.cz/ https://gitlab.nic.cz/knot/knot-dns"
|
| 14 |
14 |
SRC_URI="
|
| 15 |
15 |
https://knot-dns.nic.cz/release/${P}.tar.xz
|
| 16 |
|
!doc? ( https://raw.githubusercontent.com/PPN-SD/gentoo-manpages/refs/tags/${P}/${P}-manpages.tar.xz )
|
| 17 |
16 |
verify-sig? ( https://knot-dns.nic.cz/release/${P}.tar.xz.asc )
|
| 18 |
17 |
"
|
| 19 |
18 |
LICENSE="GPL-2+"
|
| 20 |
19 |
SLOT="0/${KNOT_SUBSLOT}"
|
| 21 |
|
KEYWORDS="amd64 ~arm64 ~riscv x86"
|
|
20 |
KEYWORDS="~amd64 ~arm64 ~riscv ~x86"
|
| 22 |
21 |
|
| 23 |
22 |
# Modules without dep and enabled by default. Built unconditionally.
|
| 24 |
23 |
KNOT_MODULES=(
|
| ... | ... | |
| 57 |
56 |
)
|
| 58 |
57 |
"
|
| 59 |
58 |
RDEPEND="
|
| 60 |
|
dev-db/lmdb:=
|
| 61 |
|
net-libs/gnutls:=[pkcs11?]
|
|
59 |
>=dev-db/lmdb-0.9.15:=
|
|
60 |
>=net-libs/gnutls-3.7.3:=[pkcs11?]
|
| 62 |
61 |
daemon? (
|
| 63 |
62 |
${COMMON_DEPEND}
|
| 64 |
63 |
acct-group/knot
|
| ... | ... | |
| 68 |
67 |
dbus? ( sys-apps/dbus )
|
| 69 |
68 |
geoip? ( dev-libs/libmaxminddb:= )
|
| 70 |
69 |
redis? ( >=dev-libs/hiredis-1.1.0:= )
|
| 71 |
|
systemd? ( sys-apps/systemd:= )
|
|
70 |
systemd? ( >=sys-apps/systemd-221:= )
|
| 72 |
71 |
)
|
| 73 |
72 |
prometheus? (
|
| 74 |
73 |
dev-python/prometheus-client[${PYTHON_USEDEP}]
|
| 75 |
74 |
dev-python/psutil[${PYTHON_USEDEP}]
|
| 76 |
75 |
)
|
| 77 |
76 |
python? ( ${PYTHON_DEPS} )
|
| 78 |
|
quic? ( net-libs/ngtcp2[gnutls] )
|
|
77 |
quic? ( >=net-libs/ngtcp2-0.17.0[gnutls] )
|
| 79 |
78 |
selinux? ( sec-policy/selinux-knot )
|
| 80 |
79 |
utils? (
|
| 81 |
80 |
${COMMON_DEPEND}
|
| ... | ... | |
| 132 |
131 |
default
|
| 133 |
132 |
}
|
| 134 |
133 |
|
| 135 |
|
src_prepare() {
|
| 136 |
|
default
|
| 137 |
|
# avoid the old ltmain.sh modified by upstream which causes a linking issue
|
| 138 |
|
# reproduced with test and musl
|
| 139 |
|
eautoreconf
|
| 140 |
|
}
|
| 141 |
|
|
| 142 |
134 |
src_configure() {
|
| 143 |
|
local u
|
|
135 |
use doc || export ac_cv_path_SPHINXBUILD=
|
|
136 |
|
| 144 |
137 |
local my_conf=(
|
| 145 |
138 |
--with-storage="${EPREFIX}/var/lib/${PN}"
|
| 146 |
|
--with-rundir="${EPREFIX}/var/run/${PN}"
|
|
139 |
--with-rundir="${EPREFIX}/run/${PN}"
|
| 147 |
140 |
$(use_enable caps cap_ng)
|
| 148 |
141 |
$(use_enable daemon)
|
| 149 |
142 |
# enable-dnstap defines support for kdig only
|
| 150 |
143 |
$(use_enable dnstap dnstap $(usex utils))
|
| 151 |
|
$(use_enable doc documentation)
|
|
144 |
# always enable for manpages
|
|
145 |
--enable-documentation
|
| 152 |
146 |
$(use_with doh libnghttp2)
|
| 153 |
147 |
$(use_enable fastparser)
|
| 154 |
148 |
$(use_enable geoip maxminddb)
|
| ... | ... | |
| 162 |
156 |
)
|
| 163 |
157 |
# modules are only used by daemon
|
| 164 |
158 |
# module-dnstap defines support for knotd only
|
|
159 |
local u
|
| 165 |
160 |
if use daemon; then
|
| 166 |
161 |
for u in "${KNOT_MODULES[@]}"; do
|
| 167 |
162 |
my_conf+=( --with-module-${u} )
|
| ... | ... | |
| 193 |
188 |
}
|
| 194 |
189 |
|
| 195 |
190 |
src_install() {
|
| 196 |
|
if use doc; then
|
| 197 |
|
local HTML_DOCS=( doc/_build/html/{*.html,*.js,_sources,_static} )
|
| 198 |
|
else
|
| 199 |
|
# install the manpages only for the activated options, order from doc/Makefile.am
|
| 200 |
|
pushd "${WORKDIR}"/man/ >/dev/null || die
|
| 201 |
|
local manp=()
|
| 202 |
|
if use daemon; then
|
| 203 |
|
manp+=(
|
| 204 |
|
knot.conf.5
|
| 205 |
|
knotc.8
|
| 206 |
|
knotd.8
|
| 207 |
|
)
|
| 208 |
|
fi
|
| 209 |
|
if use utils; then
|
| 210 |
|
use daemon && manp+=(
|
| 211 |
|
kcatalogprint.8
|
| 212 |
|
keymgr.8
|
| 213 |
|
kjournalprint.8
|
| 214 |
|
kzonecheck.1
|
| 215 |
|
kzonesign.1
|
| 216 |
|
)
|
| 217 |
|
manp+=(
|
| 218 |
|
kdig.1
|
| 219 |
|
khost.1
|
| 220 |
|
knsupdate.1
|
| 221 |
|
knsec3hash.1
|
| 222 |
|
)
|
| 223 |
|
use xdp && manp+=(
|
| 224 |
|
kxdpgun.8
|
| 225 |
|
)
|
| 226 |
|
fi
|
| 227 |
|
[[ "${#manp[@]}" -ne 0 ]] && doman "${manp[@]}"
|
| 228 |
|
popd >/dev/null || die
|
| 229 |
|
fi
|
| 230 |
|
|
|
191 |
use doc && local HTML_DOCS=( doc/_build/html/{*.html,*.js,_sources,_static} )
|
| 231 |
192 |
if use python; then
|
| 232 |
193 |
# install only .py files, not build system leftovers (e.g. .in)
|
| 233 |
194 |
python_moduleinto libknot
|
| ... | ... | |
| 247 |
208 |
default
|
| 248 |
209 |
|
| 249 |
210 |
if use daemon; then
|
| 250 |
|
rm -r "${ED}"/var/run/ || die
|
|
211 |
rm -r "${ED}"/run/ || die
|
| 251 |
212 |
|
| 252 |
|
keepdir /var/lib/knot
|
|
213 |
keepdir /var/lib/${PN}
|
|
214 |
|
|
215 |
fowners -R :knot /etc/${PN}
|
|
216 |
fperms 750 /etc/${PN}
|
|
217 |
fperms 640 /etc/${PN}/${PN}.sample.conf
|
|
218 |
fperms 640 /etc/${PN}/example.com.zone
|
| 253 |
219 |
|
| 254 |
220 |
newinitd "${FILESDIR}"/knot-3.init knot
|
| 255 |
221 |
newconfd "${FILESDIR}"/knot.confd knot
|
| 256 |
222 |
|
|
223 |
systemd_dounit distro/common/knot.service
|
|
224 |
|
| 257 |
225 |
newtmpfiles "${FILESDIR}"/${PN}.tmpfile ${PN}.conf
|
| 258 |
226 |
|
| 259 |
|
use systemd && systemd_newunit distro/common/knot.service knot.service
|
|
227 |
if use dbus; then
|
|
228 |
insinto /usr/share/dbus-1/system.d
|
|
229 |
doins distro/common/cz.nic.knotd.conf
|
|
230 |
fi
|
| 260 |
231 |
fi
|
| 261 |
232 |
|
| 262 |
233 |
find "${D}" -name '*.la' -delete || die
|