# Copyright 1999-2024 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/isc.asc inherit flag-o-matic verify-sig MY_PN=${PN//-tools} MY_PV=${PV/_p/-P} MY_PV=${MY_PV/_rc/rc} MY_P="${MY_PN}-${MY_PV}" DESCRIPTION="bind tools: dig, nslookup, host, nsupdate, dnssec-keygen" HOMEPAGE="https://www.isc.org/software/bind https://gitlab.isc.org/isc-projects/bind9" SRC_URI=" https://downloads.isc.org/isc/bind9/${PV}/${MY_P}.tar.xz verify-sig? ( https://downloads.isc.org/isc/bind9/${PV}/${MY_P}.tar.xz.asc ) " S="${WORKDIR}/${MY_P}" LICENSE="MPL-2.0" SLOT="0" KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x64-solaris" IUSE="+caps doc gssapi idn libedit lmdb readline test" # libuv lower bound should be the highest value seen at # https://gitlab.isc.org/isc-projects/bind9/-/blob/bind-9.18/lib/isc/netmgr/netmgr.c?ref_type=heads#L203 # to avoid issues with matching stable/testing, etc RDEPEND=" >=dev-libs/libuv-1.42.0:= dev-libs/jemalloc dev-libs/openssl:= caps? ( sys-libs/libcap ) gssapi? ( virtual/krb5 ) idn? ( net-dns/libidn2:= ) libedit? ( dev-libs/libedit ) !libedit? ( readline? ( sys-libs/readline:= ) ) lmdb? ( dev-db/lmdb ) !net-dns/bind " DEPEND="${RDEPEND}" # sphinx required for man-page and html creation BDEPEND=" virtual/pkgconfig doc? ( dev-python/sphinx ) test? ( dev-util/cmocka dev-util/kyua ) verify-sig? ( sec-keys/openpgp-keys-isc ) " # bug 479092, requires networking RESTRICT="!test? ( test )" src_configure() { local myeconfargs=( --localstatedir="${EPREFIX}"/var --with-jemalloc --with-zlib --without-json-c --without-libxml2 --without-maxminddb --disable-geoip --with-openssl="${ESYSROOT}"/usr $(use_enable caps linux-caps) $(use_with gssapi) $(use_with idn libidn2 "${ESYSROOT}"/usr) $(use_with lmdb) ) # bug 607400 if use libedit ; then myeconfargs+=( --with-readline=libedit ) elif use readline ; then myeconfargs+=( --with-readline ) else myeconfargs+=( --without-readline ) fi # to expose CMSG_* macros from sys/sockets.h [[ ${CHOST} == *-solaris* ]] && append-cflags "-D_XOPEN_SOURCE=600" econf "${myeconfargs[@]}" } src_compile() { emake bind.keys.h emake -C lib/ emake -C bin/delv/ emake -C bin/dig/ emake -C bin/nsupdate/ emake -C bin/dnssec/ emake -C bin/tools/ emake -C doc/man/ man } src_install() { local man_dir="${S}/doc/man" dodoc README.md CHANGES emake DESTDIR="${D}" -C lib/ install emake DESTDIR="${D}" -C bin/delv/ install doman ${man_dir}/delv.1 emake DESTDIR="${D}" -C bin/dig/ install doman ${man_dir}/{dig,host,nslookup}.1 emake DESTDIR="${D}" -C bin/nsupdate/ install doman ${man_dir}/nsupdate.1 emake DESTDIR="${D}" -C bin/dnssec/ install local tool for tool in cds dsfromkey importkey keyfromlabel keygen \ revoke settime signzone verify; do doman ${man_dir}/dnssec-"${tool}".1 done emake DESTDIR="${D}" -C bin/tools/ install doman ${man_dir}/{arpaname,mdig,named-journalprint,named-rrchecker,nsec3hash}.1 # just leave tools to be installed rm -rf "${D}"/usr/include/ }