commit: a73124778aa41430c570590ef523bbb4c347ea2a Author: Andreas Sturmlechner <asturm <AT> gentoo <DOT> org> AuthorDate: Thu Jan 15 20:37:20 2026 +0000 Commit: Andreas Sturmlechner <asturm <AT> gentoo <DOT> org> CommitDate: Fri Jan 16 22:25:15 2026 +0000 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=a7312477
net-misc/kea: drop 2.6.3, 2.6.4, 3.0.1-r1, 3.0.2 Clean up dev-libs/botan:2 revdeps. Bug: https://bugs.gentoo.org/967170 Signed-off-by: Andreas Sturmlechner <asturm <AT> gentoo.org> net-misc/kea/Manifest | 4 - net-misc/kea/files/kea-2.2.0-openssl-version.patch | 11 - net-misc/kea/files/kea-2.6.4-boost-1.89.patch | 51 ---- net-misc/kea/files/kea-confd-r2 | 12 - net-misc/kea/files/kea-initd-r2 | 147 ---------- net-misc/kea/kea-2.6.3.ebuild | 253 ----------------- net-misc/kea/kea-2.6.4.ebuild | 269 ------------------ net-misc/kea/kea-3.0.1-r1.ebuild | 307 -------------------- net-misc/kea/kea-3.0.2.ebuild | 308 --------------------- 9 files changed, 1362 deletions(-) diff --git a/net-misc/kea/Manifest b/net-misc/kea/Manifest index dcb876b3f278..4cadf1206dfa 100644 --- a/net-misc/kea/Manifest +++ b/net-misc/kea/Manifest @@ -1,6 +1,2 @@ -DIST kea-2.6.3.tar.gz 10498882 BLAKE2B 7a8549ceb86dccaa2ca8d541cbfd27618ccf8aeedfb8ff26f9d0e10cfd8a103efd70320a55dc318a84094a7764c560c100cf6e10421ae6d40e6c62891570c604 SHA512 d7781c0b95529bfe89c19615c1dd5952fd4c4b60274e187a641992dad81ef5af921dfb15050ec43169a0c2ad267639642b2e294c5d43405f85a5fb11bb1a939a -DIST kea-2.6.4.tar.gz 10498705 BLAKE2B 491a73dd0d4f7ffc068642d14a597158b70a5e6042967fd1f367f3269dd84bc4f1526b4158c7da8a474e385528b74985ac542c1591c458c6a0df42fc627b612d SHA512 f4dce03a30ba5c0a1a0d97730d7cccc0876188fb7d165e8f67cf4df906cdf157049d651d0a38b3a01f33e5b0ac7b9e8b5b479543e06c89da197d6ef9d0937a18 -DIST kea-3.0.1.tar.xz 6632284 BLAKE2B 7fc66680ddfd6805cb8eb7480d552c8fbd29416175cb2b81e0ef68436e1a2ed9c94c50e0a7037402e02620ef047a66c8dcafb3d89a6a0d7d552c5d5da04f5755 SHA512 84e2164aa91c95b2e6e65994a2327fa1233c82b06af69312f55464119d4edc6151a4662a54f4a3ae83e0487dac7b25c5e59e60bcbed653fd30fb32ae7cacddf3 DIST kea-3.0.2.tar.xz 6634300 BLAKE2B 8c7dccbb118f09e0c4dbd0fbb1889fba03bda633bedd6b05f91445d0979bbbedd8c7150ceaad73a280e58401eba4671398c65717f747b661fa0891e310dac1ea SHA512 454081be248d6021aa99bfe027111f093795b123c827c6062e29a215856d29ec827f5757a1a6fc3351e74276563f101b52f26db2098cdd0b4e6f86e1b3449ba3 -DIST kea-manpages-3.0.1.tar.gz 6789 BLAKE2B 37d79b0be3959cc0b12a4f0a782feb4065a7dffd741551f9ab1edfe1c4c3db0dc4fed24881a9e11fa2aeb214e8b094894f48741a5823e13d78fb41837adf0975 SHA512 4930173e93a8ae7ac0a933a8d82a1c90f79321365bf02f3995d8ef0496bddf4f611cf2d23c806ecee5017e7b98c2799d0d3ac00a66535be35898f89cd3f75f86 DIST kea-manpages-3.0.2.tar.gz 6743 BLAKE2B 30d254a0db2b635493a0f9fe5480cf731978532f860d9acf74f8d6114539f0f9e594aa68aeb1181ee05da51707fd35a900be72c79bc7abf31124c1c5ea439ef4 SHA512 cfcf91abfd34e44319d4ea58de15bc068e5c7be7c94f211e85890009ef285ab84ca310dbe4ba8879a4797574715086861755cd528ea90a65e88980adeabc43a1 diff --git a/net-misc/kea/files/kea-2.2.0-openssl-version.patch b/net-misc/kea/files/kea-2.2.0-openssl-version.patch deleted file mode 100644 index 5e323357d7c5..000000000000 --- a/net-misc/kea/files/kea-2.2.0-openssl-version.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- a/m4macros/ax_crypto.m4 -+++ b/m4macros/ax_crypto.m4 -@@ -258,7 +258,7 @@ then - else - CRYPTO_NAME="OpenSSL" - DISABLED_CRYPTO="Botan" -- CRYPTO_PACKAGE="openssl-1.1.0" -+ CRYPTO_PACKAGE="openssl" - DISTCHECK_CRYPTO_CONFIGURE_FLAG="--with-openssl=${use_openssl}" - AC_DEFINE_UNQUOTED([WITH_OPENSSL], [], [Compile with OpenSSL crypto]) - AC_MSG_CHECKING(for OpenSSL library) diff --git a/net-misc/kea/files/kea-2.6.4-boost-1.89.patch b/net-misc/kea/files/kea-2.6.4-boost-1.89.patch deleted file mode 100644 index b35570054187..000000000000 --- a/net-misc/kea/files/kea-2.6.4-boost-1.89.patch +++ /dev/null @@ -1,51 +0,0 @@ -https://bugs.gentoo.org/963975 -Fixes the build with Boost 1.89 -diff --git a/m4macros/ax_boost_for_kea.m4 b/m4macros/ax_boost_for_kea.m4 -index 996413374a..7d616eb03e 100644 ---- a/m4macros/ax_boost_for_kea.m4 -+++ b/m4macros/ax_boost_for_kea.m4 -@@ -205,7 +205,7 @@ AC_ARG_ENABLE([boost-headers-only], - as it may result in non-optimized code on some - platforms or introduce runtime errors on others.])], - [enable_boost_header="yes"; BOOST_LIBS=""], -- [BOOST_LIBS="${BOOST_LIBS} -lboost_system"]) -+ [BOOST_LIBS="${BOOST_LIBS}"]) - - # BOOST_ERROR_CODE_HEADER_ONLY in versions below Boost 1.56.0 can fail - # to find the error_code.cpp file. -diff --git a/src/lib/asiodns/io_fetch.cc b/src/lib/asiodns/io_fetch.cc -index 742abc66e9..d87e4abdcc 100644 ---- a/src/lib/asiodns/io_fetch.cc -+++ b/src/lib/asiodns/io_fetch.cc -@@ -24,6 +24,7 @@ - - #include <boost/scoped_ptr.hpp> - #include <boost/date_time/posix_time/posix_time_types.hpp> -+#include <boost/asio/deadline_timer.hpp> - - #include <functional> - #include <unistd.h> // for some IPC/network system calls -diff --git a/src/lib/asiodns/tests/io_fetch_unittest.cc b/src/lib/asiodns/tests/io_fetch_unittest.cc -index e93e796ae9..c968b45c02 100644 ---- a/src/lib/asiodns/tests/io_fetch_unittest.cc -+++ b/src/lib/asiodns/tests/io_fetch_unittest.cc -@@ -21,6 +21,7 @@ - - #include <gtest/gtest.h> - #include <boost/date_time/posix_time/posix_time_types.hpp> -+#include <boost/asio/deadline_timer.hpp> - - #include <algorithm> - #include <cstdlib> -diff --git a/src/lib/asiolink/interval_timer.cc b/src/lib/asiolink/interval_timer.cc -index fa0d9e1b67..4ac0b20c7d 100644 ---- a/src/lib/asiolink/interval_timer.cc -+++ b/src/lib/asiolink/interval_timer.cc -@@ -12,6 +12,7 @@ - #include <boost/enable_shared_from_this.hpp> - #include <boost/noncopyable.hpp> - #include <boost/shared_ptr.hpp> -+#include <boost/asio/deadline_timer.hpp> - - #include <exceptions/exceptions.h> - diff --git a/net-misc/kea/files/kea-confd-r2 b/net-misc/kea/files/kea-confd-r2 deleted file mode 100644 index 06bc85a5b0ba..000000000000 --- a/net-misc/kea/files/kea-confd-r2 +++ /dev/null @@ -1,12 +0,0 @@ -# Which services should be taken into account? -DHCP4="true" -DHCP6="false" -DDNS="false" -CTRL_AGENT="false" - -# Define your config files here. Otherwise we default to files in /etc/kea -# (see init script) -#DHCP4_CONFIG="/etc/kea/kea-dhcp4.conf" -#DHCP6_CONFIG="/etc/kea/kea-dhcp6.conf" -#DDNS_CONFIG="/etc/kea/kea-dhcp-ddns.conf" -#CTRL_AGENT_CONFIG="/etc/kea/kea-ctrl-agent.conf" diff --git a/net-misc/kea/files/kea-initd-r2 b/net-misc/kea/files/kea-initd-r2 deleted file mode 100644 index 851e21acb3bf..000000000000 --- a/net-misc/kea/files/kea-initd-r2 +++ /dev/null @@ -1,147 +0,0 @@ -#!/sbin/openrc-run -# Copyright 1999-2025 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -description="kea dhcp services" - -dhcp4_command="/usr/sbin/kea-dhcp4" -dhcp6_command="/usr/sbin/kea-dhcp6" -ddns_command="/usr/sbin/kea-dhcp-ddns" -ctrl_agent_command="/usr/sbin/kea-ctrl-agent" -dhcp4_config="${DHCP4_CONFIG:-/etc/kea/kea-dhcp4.conf}" -dhcp6_config="${DHCP6_CONFIG:-/etc/kea/kea-dhcp6.conf}" -ddns_config="${DDNS_CONFIG:-/etc/kea/kea-dhcp-ddns.conf}" -ctrl_agent_config="${CTRL_AGENT_CONFIG:-/etc/kea/kea-ctrl-agent.conf}" -dhcp4_pidfile="/run/kea/$(basename ${dhcp4_config%.conf}).kea-dhcp4.pid" -dhcp6_pidfile="/run/kea/$(basename ${dhcp6_config%.conf}).kea-dhcp6.pid" -ddns_pidfile="/run/kea/$(basename ${ddns_config%.conf}).kea-dhcp-ddns.pid" -ctrl_agent_pidfile="/run/kea/$(basename ${ctrl_agent_config%.conf}).kea-ctrl-agent.pid" -kea_user="${KEA_USER:-dhcp}" -kea_group="${KEA_GROUP:-dhcp}" - -cap_list="^cap_net_bind_service" -cap4_list="${cap_list},^cap_net_raw" - -depend() { - use net -} - -start_pre() { - if ${DHCP4:-false} ; then - if [ ! -f "${dhcp4_config}" ] ; then - eerror "Please create a ${dhcp4_config} config file." - return 1 - fi - if [ $(stat -c "%U:%G" ${dhcp4_config}) != "root:${kea_group}" ] ; then - eerror "${dhcp4_config} config file is not owned by root:${kea_group}" - eerror "you should reset the ownership:" - eerror "chown root:${kea_group} ${dhcp4_config}" - return 1 - fi - if ! ${dhcp4_command} -t ${dhcp4_config} 1>/dev/null 2>/dev/null ; then - eerror "Error in config file ${dhcp4_config}" - return 1 - fi - fi - if ${DHCP6:-false} ; then - if [ ! -f "${dhcp6_config}" ] ; then - eerror "Please create a ${dhcp6_file} config file." - return 1 - fi - if [ $(stat -c "%U:%G" ${dhcp6_config}) != "root:${kea_group}" ] ; then - eerror "${dhcp6_config} config file is not owned by root:${kea_group}" - eerror "you should reset the ownership:" - eerror "chown root:${kea_group} ${dhcp6_config}" - return 1 - fi - if ! ${dhcp6_command} -t ${dhcp6_config} 1>/dev/null 2>/dev/null ; then - eerror "Error in config file ${dhcp6_config}" - return 1 - fi - fi - if ${DDNS:-false} ; then - if [ ! -f "${ddns_config}" ] ; then - eerror "Please create a ${ddns_config} config file." - return 1 - fi - if [ $(stat -c "%U:%G" ${ddns_config}) != "root:${kea_group}" ] ; then - eerror "${ddns_config} config file is not owned by root:${kea_group}" - eerror "you should reset the ownership:" - eerror "chown root:${kea_group} ${ddns_config}" - return 1 - fi - if ! ${ddns_command} -t ${ddns_config} 1>/dev/null 2>/dev/null ; then - eerror "Error in config file ${ddns_config}" - return 1 - fi - fi - if ${CTRL_AGENT:-false} ; then - if [ ! -f "${ctrl_agent_config}" ] ; then - eerror "Please create a ${ctrl_agent_config} config file." - return 1 - fi - if [ $(stat -c "%U:%G" ${ctrl_agent_config}) != "root:${kea_group}" ] ; then - eerror "${ctrl_agent_config} config file is not owned by root:${kea_group}" - eerror "you should reset the ownership:" - eerror "chown root:${kea_group} ${ctrl_agent_config}" - return 1 - fi - if ! ${ctrl_agent_command} -t ${ctrl_agent_config} 1>/dev/null 2>/dev/null ; then - eerror "Error in config file ${ctrl_agent_config}" - return 1 - fi - fi -} - -start() { - einfo "Starting kea dhcp services" - atleastone= - if ${DHCP4:-false} ; then - start-stop-daemon -b --capabilities ${cap4_list} -u ${kea_user} -g ${kea_group} -p ${dhcp4_pidfile} \ - -x ${dhcp4_command} -- -c ${dhcp4_config} \ - || return 1 - atleastone=1 - fi - if ${DHCP6:-false} ; then - start-stop-daemon -b --capabilities ${cap_list} -u ${kea_user} -g ${kea_group} -p ${dhcp6_pidfile} \ - -x ${dhcp6_command} -- -c ${dhcp6_config} \ - || return 1 - atleastone=1 - fi - if ${DDNS:-false} ; then - start-stop-daemon -b --capabilities ${cap_list} -u ${kea_user} -g ${kea_group} -p ${ddns_pidfile} \ - -x ${ddns_command} -- -c ${ddns_config} \ - || return 1 - atleastone=1 - fi - if ${CTRL_AGENT:-false} ; then - start-stop-daemon -b -u ${kea_user} -g ${kea_group} -p ${ctrl_agent_pidfile} \ - -x ${ctrl_agent_command} -- -c ${ctrl_agent_config} \ - || return 1 - atleastone=1 - fi - if [ -z ${atleastone} ] ; then - eerror "No service has been launched!" - return 1 - fi -} - -stop() { - einfo "Stopping kea dhcp services" - if ${DHCP4:-false} ; then - start-stop-daemon --stop -p ${dhcp4_pidfile} \ - || return 1 - fi - if ${DHCP6:-false} ; then - start-stop-daemon --stop -p ${dhcp6_pidfile} \ - || return 1 - fi - if ${DDNS:-false} ; then - start-stop-daemon --stop -p ${ddns_pidfile} \ - || return 1 - fi - if ${CTRL_AGENT:-false} ; then - start-stop-daemon --stop -p ${ctrl_agent_pidfile} \ - || return 1 - fi -} diff --git a/net-misc/kea/kea-2.6.3.ebuild b/net-misc/kea/kea-2.6.3.ebuild deleted file mode 100644 index fbd98907fad9..000000000000 --- a/net-misc/kea/kea-2.6.3.ebuild +++ /dev/null @@ -1,253 +0,0 @@ -# Copyright 1999-2025 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -PYTHON_COMPAT=( python3_{11..14} ) -inherit autotools eapi9-ver flag-o-matic python-r1 systemd tmpfiles - -DESCRIPTION="High-performance production grade DHCPv4 & DHCPv6 server" -HOMEPAGE="https://www.isc.org/kea/" - -if [[ ${PV} == *9999* ]]; then - inherit git-r3 - EGIT_REPO_URI="https://gitlab.isc.org/isc-projects/kea.git" -else - SRC_URI="https://downloads.isc.org/isc/kea/${PV}/${P}.tar.gz" - KEYWORDS="amd64 ~arm64 ~x86" -fi - -LICENSE="MPL-2.0" -SLOT="0" -IUSE="debug doc mysql +openssl postgres shell test" - -REQUIRED_USE="shell? ( ${PYTHON_REQUIRED_USE} )" -RESTRICT="!test? ( test )" - -COMMON_DEPEND=" - >=dev-libs/boost-1.66:= - dev-libs/log4cplus:= - mysql? ( - app-arch/zstd:= - dev-db/mysql-connector-c:= - dev-libs/openssl:= - virtual/zlib:= - ) - !openssl? ( dev-libs/botan:2=[boost] ) - openssl? ( dev-libs/openssl:0= ) - postgres? ( dev-db/postgresql:* ) - shell? ( ${PYTHON_DEPS} ) -" -DEPEND="${COMMON_DEPEND} - test? ( dev-cpp/gtest ) -" -RDEPEND="${COMMON_DEPEND} - acct-group/dhcp - acct-user/dhcp -" -BDEPEND=" - doc? ( - $(python_gen_any_dep ' - dev-python/sphinx[${PYTHON_USEDEP}] - dev-python/sphinx-rtd-theme[${PYTHON_USEDEP}] - ') - ) - virtual/pkgconfig -" - -PATCHES=( - "${FILESDIR}"/${PN}-2.2.0-openssl-version.patch -) - -python_check_deps() { - use doc || return 0; - python_has_version "dev-python/sphinx[${PYTHON_USEDEP}]" \ - "dev-python/sphinx-rtd-theme[${PYTHON_USEDEP}]" -} - -pkg_setup() { - if use doc || use shell; then - python_setup - fi -} - -src_prepare() { - default - - # set shebang before autotools - if use shell; then - sed -e 's:^#!@PYTHON@:#!/usr/bin/env python3:' \ - -i src/bin/shell/kea-shell.in || die - fi - - # fix gtest detection - sed -e "s:dir/lib/:dir/$(get_libdir)/:" \ - -i m4macros/ax_gtest.m4 || die - - # skip shell tests that fail to launch daemon in sandbox - # may fail to find a suitable interface for generating a DUID-LLT - sed -e '/TESTS += $(SHTESTS)$/d' \ - -i src/bin/dhcp4/tests/Makefile.am \ - -i src/bin/dhcp6/tests/Makefile.am || die - sed -e '/TESTS = $(SHTESTS)$/d' \ - -i src/bin/keactrl/tests/Makefile.am || die - - # skip shell tests that require a running instance of MySQL - if use mysql; then - sed -e "/SHTESTS += mysql_tests.sh$/d" \ - -i src/bin/admin/tests/Makefile.am || die - fi - - # skip shell tests that require a running instance of PgSQL - if use postgres; then - sed -e "/SHTESTS += pgsql_tests.sh$/d" \ - -i src/bin/admin/tests/Makefile.am || die - fi - - # do not create /run - sed -e '/$(DESTDIR)${runstatedir}/d' \ - -i Makefile.am || die - - eautoreconf -} - -src_configure() { - # -Werror=odr - # https://bugs.gentoo.org/861617 - # - # I would truly love to submit an upstream bug but their self-hosted gitlab - # won't let me sign up. -- Eli - filter-lto - - local myeconfargs=( - --disable-install-configurations - --disable-rpath - # manually installed - --disable-shell - --disable-static - --enable-generate-messages - --enable-logger-checks - --enable-perfdhcp - --localstatedir="${EPREFIX}/var" - --runstatedir="${EPREFIX}/run" - --without-werror - --with-log4cplus - $(use_enable debug) - $(use_enable doc generate-docs) - $(use_with mysql) - $(use_with openssl) - $(use_with postgres pgsql) - $(usev test --with-gtest="${EPREFIX}/usr") - ) - econf "${myeconfargs[@]}" -} - -src_test() { - local GTEST_SKIP_TESTS=( - # may fail when checking addresses on detected interfaces - IfaceMgrTest* - - # may fail to find a suitable interface for generating a DUID-LLT - JSONFileBackendTest* - CtrlChannelDhcpv6SrvTest* - - # require srv_config_marker_file.txt similarly generated by a disabled test - LoadUnloadDhcpv6SrvTest* - ) - - # tests that require a running instance of MySQL - use mysql && GTEST_SKIP_TESTS+=( - *MySql* - *MySQL* - # conditional tests for MySQL - Dhcpv*SrvTest.checkConfigFiles - ) - - # tests that require a running instance of PgSQL - use postgres && GTEST_SKIP_TESTS+=( - *PgSql* - *PgSQL* - # conditional tests for PgSQL - Dhcpv*SrvTest.checkConfigFiles - ) - - local -x GTEST_FILTER - [[ -n ${GTEST_SKIP_TESTS[*]} ]] && GTEST_FILTER+="-$( IFS=':'; echo "${GTEST_SKIP_TESTS[*]}")" - - default -} - -install_shell() { - python_domodule src/bin/shell/*.py - python_doscript src/bin/shell/kea-shell - - # fix path to import kea modules - sed -e "/^sys.path.append/s|(.*)|('$(python_get_sitedir)/${PN}')|" \ - -i "${ED}"/usr/lib/python-exec/${EPYTHON}/kea-shell || die -} - -src_install() { - emake -j1 install DESTDIR="${D}" - - if use shell; then - python_moduleinto ${PN} - python_foreach_impl install_shell - fi - - dodoc -r doc/examples - - rm -f "${ED}"/usr/share/doc/${P}/COPYING - - diropts -m 0750 -o root -g dhcp - dodir /etc/kea - insopts -m 0640 -o root -g dhcp - insinto /etc/kea - newins doc/examples/agent/comments.json kea-ctrl-agent.conf.sample - newins doc/examples/kea6/simple.json kea-dhcp6.conf.sample - newins doc/examples/kea4/single-subnet.json kea-dhcp4.conf.sample - newins doc/examples/ddns/comments.json kea-dhcp-ddns.conf.sample - - # set log to syslog by default - sed -e 's/"output": "stdout"/"output": "syslog"/' \ - -i "${ED}"/etc/kea/*.conf.sample || die - - newconfd "${FILESDIR}"/${PN}-confd-r2 ${PN} - newinitd "${FILESDIR}"/${PN}-initd-r2 ${PN} - - systemd_dounit "${FILESDIR}"/${PN}-ctrl-agent.service-r2 - systemd_dounit "${FILESDIR}"/${PN}-dhcp-ddns.service-r2 - systemd_dounit "${FILESDIR}"/${PN}-dhcp4.service-r2 - systemd_dounit "${FILESDIR}"/${PN}-dhcp6.service-r2 - - newtmpfiles "${FILESDIR}"/${PN}.tmpfiles.conf ${PN}.conf - - keepdir /var/lib/${PN} /var/log/${PN} - fowners -R dhcp:dhcp /var/lib/${PN} /var/log/${PN} - fperms 750 /var/lib/${PN} /var/log/${PN} - - find "${ED}" -type f -name "*.la" -delete || die -} - -pkg_postinst() { - tmpfiles_process ${PN}.conf - - if ver_replacing -lt 2.6; then - ewarn "Several changes have been made for daemons:" - ewarn " To comply with common practices for this package," - ewarn " config paths by default has been changed as below:" - ewarn " /etc/kea/kea-dhcp4.conf" - ewarn " /etc/kea/kea-dhcp6.conf" - ewarn " /etc/kea/kea-dhcp-ddns.conf" - ewarn " /etc/kea/kea-ctrl-agent.conf" - ewarn - ewarn " Daemons are launched by default with the unprivileged user 'dhcp'" - ewarn - ewarn "Please check your configuration!" - fi - - if ! has_version net-misc/kea; then - elog "See config files in:" - elog " ${EROOT}/etc/kea/*.sample" - elog " ${EROOT}/usr/share/doc/${PF}/examples" - fi -} diff --git a/net-misc/kea/kea-2.6.4.ebuild b/net-misc/kea/kea-2.6.4.ebuild deleted file mode 100644 index cb4376de3923..000000000000 --- a/net-misc/kea/kea-2.6.4.ebuild +++ /dev/null @@ -1,269 +0,0 @@ -# Copyright 1999-2025 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -PYTHON_COMPAT=( python3_{11..14} ) -inherit autotools eapi9-ver flag-o-matic python-r1 systemd tmpfiles toolchain-funcs - -DESCRIPTION="High-performance production grade DHCPv4 & DHCPv6 server" -HOMEPAGE="https://www.isc.org/kea/" - -if [[ ${PV} == *9999* ]]; then - inherit git-r3 - EGIT_REPO_URI="https://gitlab.isc.org/isc-projects/kea.git" -else - SRC_URI="https://downloads.isc.org/isc/kea/${PV}/${P}.tar.gz" - KEYWORDS="amd64 arm arm64 ~x86" -fi - -LICENSE="MPL-2.0" -SLOT="0" -IUSE="debug doc mysql +openssl postgres shell test" - -REQUIRED_USE="shell? ( ${PYTHON_REQUIRED_USE} )" -RESTRICT="!test? ( test )" - -COMMON_DEPEND=" - >=dev-libs/boost-1.66:= - dev-libs/log4cplus:= - mysql? ( - app-arch/zstd:= - dev-db/mysql-connector-c:= - dev-libs/openssl:= - virtual/zlib:= - ) - !openssl? ( dev-libs/botan:2=[boost] ) - openssl? ( dev-libs/openssl:0= ) - postgres? ( dev-db/postgresql:* ) - shell? ( ${PYTHON_DEPS} ) -" -DEPEND="${COMMON_DEPEND} - test? ( dev-cpp/gtest ) -" -RDEPEND="${COMMON_DEPEND} - acct-group/dhcp - acct-user/dhcp -" -BDEPEND=" - doc? ( - $(python_gen_any_dep ' - dev-python/sphinx[${PYTHON_USEDEP}] - dev-python/sphinx-rtd-theme[${PYTHON_USEDEP}] - ') - ) - virtual/pkgconfig -" - -PATCHES=( - "${FILESDIR}"/${PN}-2.2.0-openssl-version.patch - "${FILESDIR}"/${P}-boost-1.89.patch -) - -python_check_deps() { - use doc || return 0; - python_has_version "dev-python/sphinx[${PYTHON_USEDEP}]" \ - "dev-python/sphinx-rtd-theme[${PYTHON_USEDEP}]" -} - -pkg_setup() { - if use doc || use shell; then - python_setup - fi -} - -src_prepare() { - default - - # set shebang before autotools - if use shell; then - sed -e 's:^#!@PYTHON@:#!/usr/bin/env python3:' \ - -i src/bin/shell/kea-shell.in || die - fi - - # fix gtest detection - sed -e "s:dir/lib/:dir/$(get_libdir)/:" \ - -i m4macros/ax_gtest.m4 || die - - # skip shell tests that fail to launch daemon in sandbox - # may fail to find a suitable interface for generating a DUID-LLT - sed -e '/TESTS += $(SHTESTS)$/d' \ - -i src/bin/dhcp4/tests/Makefile.am \ - -i src/bin/dhcp6/tests/Makefile.am || die - sed -e '/TESTS = $(SHTESTS)$/d' \ - -i src/bin/keactrl/tests/Makefile.am || die - - # skip shell tests that require a running instance of MySQL - if use mysql; then - sed -e "/SHTESTS += mysql_tests.sh$/d" \ - -i src/bin/admin/tests/Makefile.am || die - fi - - # skip shell tests that require a running instance of PgSQL - if use postgres; then - sed -e "/SHTESTS += pgsql_tests.sh$/d" \ - -i src/bin/admin/tests/Makefile.am || die - fi - - # do not create /run - sed -e '/$(DESTDIR)${runstatedir}/d' \ - -i Makefile.am || die - - eautoreconf -} - -src_configure() { - # -Werror=odr - # https://bugs.gentoo.org/861617 - # - # I would truly love to submit an upstream bug but their self-hosted gitlab - # won't let me sign up. -- Eli - filter-lto - - local myeconfargs=( - --disable-install-configurations - --disable-rpath - # manually installed - --disable-shell - --disable-static - --enable-generate-messages - --enable-logger-checks - --enable-perfdhcp - --localstatedir="${EPREFIX}/var" - --runstatedir="${EPREFIX}/run" - --without-werror - --with-log4cplus - $(use_enable debug) - $(use_enable doc generate-docs) - $(use_with mysql) - $(use_with openssl) - $(use_with postgres pgsql) - $(usev test --with-gtest="${EPREFIX}/usr") - ) - econf "${myeconfargs[@]}" -} - -src_test() { - local GTEST_SKIP_TESTS=( - # may fail when checking addresses on detected interfaces - IfaceMgrTest* - - # may fail to find a suitable interface for generating a DUID-LLT - JSONFileBackendTest* - CtrlChannelDhcpv6SrvTest* - - # require srv_config_marker_file.txt similarly generated by a disabled test - LoadUnloadDhcpv6SrvTest* - ) - - # tests that require a running instance of MySQL - use mysql && GTEST_SKIP_TESTS+=( - *MySql* - *MySQL* - # conditional tests for MySQL - Dhcpv*SrvTest.checkConfigFiles - ) - - # tests that require a running instance of PgSQL - use postgres && GTEST_SKIP_TESTS+=( - *PgSql* - *PgSQL* - # conditional tests for PgSQL - Dhcpv*SrvTest.checkConfigFiles - ) - - if [ $(tc-get-ptr-size) -eq 4 ]; then - # see https://bugs.gentoo.org/958171 for reason for skipping these tests - GTEST_SKIP_TESTS+=( - BigintTest.int128 - BigintTest.uint128 - ThreadPoolTest.wait - LibDhcpTest.splitOptionNoBufferMultiThreading - LibDhcpTest.splitOptionOneByteLeftBufferMultiThreading - LibDhcpTest.splitOptionWithSuboptionAtLimitMultiThreading - LibDhcpTest.splitLongOptionMultiThreading - LibDhcpTest.splitOptionWithSuboptionWhichOverflowMultiThreading - LibDhcpTest.splitLongOptionWithLongSuboptionMultiThreading - ) - fi - - local -x GTEST_FILTER - [[ -n ${GTEST_SKIP_TESTS[*]} ]] && GTEST_FILTER+="-$( IFS=':'; echo "${GTEST_SKIP_TESTS[*]}")" - - default -} - -install_shell() { - python_domodule src/bin/shell/*.py - python_doscript src/bin/shell/kea-shell - - # fix path to import kea modules - sed -e "/^sys.path.append/s|(.*)|('$(python_get_sitedir)/${PN}')|" \ - -i "${ED}"/usr/lib/python-exec/${EPYTHON}/kea-shell || die -} - -src_install() { - emake -j1 install DESTDIR="${D}" - - if use shell; then - python_moduleinto ${PN} - python_foreach_impl install_shell - fi - - dodoc -r doc/examples - - rm -f "${ED}"/usr/share/doc/${P}/COPYING - - diropts -m 0750 -o root -g dhcp - dodir /etc/kea - insopts -m 0640 -o root -g dhcp - insinto /etc/kea - newins doc/examples/agent/comments.json kea-ctrl-agent.conf.sample - newins doc/examples/kea6/simple.json kea-dhcp6.conf.sample - newins doc/examples/kea4/single-subnet.json kea-dhcp4.conf.sample - newins doc/examples/ddns/comments.json kea-dhcp-ddns.conf.sample - - # set log to syslog by default - sed -e 's/"output": "stdout"/"output": "syslog"/' \ - -i "${ED}"/etc/kea/*.conf.sample || die - - newconfd "${FILESDIR}"/${PN}-confd-r2 ${PN} - newinitd "${FILESDIR}"/${PN}-initd-r2 ${PN} - - systemd_dounit "${FILESDIR}"/${PN}-ctrl-agent.service-r2 - systemd_dounit "${FILESDIR}"/${PN}-dhcp-ddns.service-r2 - systemd_dounit "${FILESDIR}"/${PN}-dhcp4.service-r2 - systemd_dounit "${FILESDIR}"/${PN}-dhcp6.service-r2 - - newtmpfiles "${FILESDIR}"/${PN}.tmpfiles.conf ${PN}.conf - - keepdir /var/lib/${PN} /var/log/${PN} - fowners -R dhcp:dhcp /var/lib/${PN} /var/log/${PN} - fperms 750 /var/lib/${PN} /var/log/${PN} - - find "${ED}" -type f -name "*.la" -delete || die -} - -pkg_postinst() { - tmpfiles_process ${PN}.conf - - if ver_replacing -lt 2.6; then - ewarn "Several changes have been made for daemons:" - ewarn " To comply with common practices for this package," - ewarn " config paths by default has been changed as below:" - ewarn " /etc/kea/kea-dhcp4.conf" - ewarn " /etc/kea/kea-dhcp6.conf" - ewarn " /etc/kea/kea-dhcp-ddns.conf" - ewarn " /etc/kea/kea-ctrl-agent.conf" - ewarn - ewarn " Daemons are launched by default with the unprivileged user 'dhcp'" - ewarn - ewarn "Please check your configuration!" - fi - - if ! has_version net-misc/kea; then - elog "See config files in:" - elog " ${EROOT}/etc/kea/*.sample" - elog " ${EROOT}/usr/share/doc/${PF}/examples" - fi -} diff --git a/net-misc/kea/kea-3.0.1-r1.ebuild b/net-misc/kea/kea-3.0.1-r1.ebuild deleted file mode 100644 index 5bb861819648..000000000000 --- a/net-misc/kea/kea-3.0.1-r1.ebuild +++ /dev/null @@ -1,307 +0,0 @@ -# Copyright 1999-2025 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -PYTHON_COMPAT=( python3_{11..14} ) -inherit eapi9-ver flag-o-matic meson python-r1 systemd tmpfiles toolchain-funcs - -DESCRIPTION="High-performance production grade DHCPv4 & DHCPv6 server" -HOMEPAGE="https://www.isc.org/kea/" - -if [[ ${PV} == 9999 ]]; then - inherit git-r3 - EGIT_REPO_URI="https://gitlab.isc.org/isc-projects/kea.git" -else - SRC_URI=" - https://downloads.isc.org/isc/kea/${PV}/${P}.tar.xz - !doc? ( https://codeberg.org/peter1010/kea-manpages/archive/kea-manpages-${PV}.tar.gz ) - " - KEYWORDS="~amd64 ~arm ~arm64 ~x86" -fi - -LICENSE="MPL-2.0" -SLOT="0" -IUSE="debug doc kerberos mysql +openssl postgres shell test" - -REQUIRED_USE="shell? ( ${PYTHON_REQUIRED_USE} )" -RESTRICT="!test? ( test )" - -COMMON_DEPEND=" - >=dev-libs/boost-1.66:= - dev-libs/log4cplus:= - kerberos? ( virtual/krb5 ) - mysql? ( - app-arch/zstd:= - dev-db/mysql-connector-c:= - dev-libs/openssl:= - virtual/zlib:= - ) - !openssl? ( dev-libs/botan:3=[boost] ) - openssl? ( dev-libs/openssl:0= ) - postgres? ( dev-db/postgresql:* ) - shell? ( ${PYTHON_DEPS} ) -" -DEPEND="${COMMON_DEPEND} - test? ( dev-cpp/gtest ) -" -RDEPEND="${COMMON_DEPEND} - acct-group/dhcp - acct-user/dhcp -" -BDEPEND=" - >=dev-build/meson-1.8 - doc? ( - $(python_gen_any_dep ' - dev-python/sphinx[${PYTHON_USEDEP}] - dev-python/sphinx-rtd-theme[${PYTHON_USEDEP}] - ') - ) - virtual/pkgconfig - ${PYTHON_DEPS} -" - -PATCHES=( - "${FILESDIR}"/${P}-boost-1.89.patch -) - -python_check_deps() { - use doc || return 0; - python_has_version "dev-python/sphinx[${PYTHON_USEDEP}]" \ - "dev-python/sphinx-rtd-theme[${PYTHON_USEDEP}]" -} - -pkg_setup() { - python_setup -} - -src_prepare() { - default - - # Fix up all doc paths, whether or not we are installing full set of docs - sed -e "s:'doc/kea':'doc/${PF}':" \ - -i meson.build || die - sed -e "s:'share/doc/kea':'share/doc/${PF}':" \ - -i doc/meson.build || die - sed -e "s:'doc/kea':'doc/${PF}':" \ - -i doc/sphinx/meson.build || die - sed -e "s:share/doc/kea/:share/doc/${PF}/:" \ - -i doc/sphinx/arm/install.rst || die - sed -e "s:share/doc/kea/examples:share/doc/${PF}/examples:" \ - -i doc/sphinx/arm/config.rst || die - - # set shebang before meson whether or not we are installing the shell - sed -e 's:^#!@PYTHON@:#!/usr/bin/env python3:' \ - -i src/bin/shell/kea-shell.in || die - - # Don't allow meson to install shell, we shall do that if required - sed -e 's:install\: true:install\: false:' \ - -i src/bin/shell/meson.build || die - - # do not create /run - sed -e '/^install_emptydir(RUNSTATEDIR)$/d' \ - -i meson.build || die -} - -src_configure() { - # https://bugs.gentoo.org/861617 - # https://gitlab.isc.org/isc-projects/kea/-/issues/3946 - # - # Kea Devs say no to LTO - filter-lto - - if use !openssl; then - append-cxxflags -std=c++20 - fi - - local emesonargs=( - --localstatedir="${EPREFIX}/var" - -Drunstatedir="${EPREFIX}/run" - $(meson_feature kerberos krb5) - -Dnetconf=disabled - -Dcrypto=$(usex openssl openssl botan) - $(meson_feature mysql) - $(meson_feature postgres postgresql) - $(meson_feature test tests) - ) - if use debug; then - emesonargs+=( - --debug - ) - fi - meson_src_configure -} - -src_compile() { - meson_src_compile - - use doc && meson_src_compile doc -} - -src_test() { - # Get list of all test suites into an associative array - # the meson test --list returns either "kea / test_suite", "kea:shell-tests / test_suite" or - # "kea:python-tests / test_suite" - # Discard the shell tests as we can't run shell tests in sandbox - - pushd "${BUILD_DIR}" || die - local -A TEST_SUITES - while IFS=" / " read -r subsystem test_suite ; do - if [[ ${subsystem} != "kea:shell-tests" ]]; then - TEST_SUITES["$test_suite"]=1 - fi - done < <(meson test --list || die) - popd - - # Some other tests will fail for interface access restrictions, we have to remove the test suites those tests - # belong to - local SKIP_TESTS=( - dhcp-radius-tests - kea-log-buffer_logger_test.sh - kea-log-console_test.sh - dhcp-lease-query-tests - kea-dhcp6-tests - kea-dhcp-tests - ) - - # skip shell tests that require a running instance of MySQL - if use mysql; then - SKIP_TESTS+=( - kea-mysql-tests - dhcp-mysql-lib-tests - dhcp-forensic-log-libloadtests - kea-dhcp4-tests - ) - fi - - # skip shell tests that require a running instance of PgSQL - if use postgres; then - SKIP_TESTS+=( - kea-pgsql-tests - dhcp-pgsql-lib-tests - dhcp-forensic-log-libloadtests - kea-dhcp4-tests - ) - fi - - if use kerberos; then - SKIP_TESTS+=( - ddns-gss-tsig-tests - ) - fi - - if [[ $(tc-get-ptr-size) -eq 4 ]]; then - # see https://bugs.gentoo.org/958171 for reason for skipping these tests - SKIP_TESTS+=( - kea-util-tests - kea-dhcp4-tests - kea-dhcpsrv-tests - dhcp-ha-lib-tests - kea-d2-tests - ) - fi - - for SKIP in ${SKIP_TESTS[@]}; do - unset TEST_SUITES["${SKIP}"] - done - - meson_src_test ${!TEST_SUITES[@]} -} - -install_shell() { - python_domodule ${ORIG_BUILD_DIR}/src/bin/shell/*.py - python_doscript ${ORIG_BUILD_DIR}/src/bin/shell/kea-shell - - # fix path to import kea modules - sed -e "/^sys.path.append/s|(.*)|('$(python_get_sitedir)/${PN}')|" \ - -i "${ED}"/usr/lib/python-exec/${EPYTHON}/kea-shell || die -} - -src_install() { - meson_install - - # Tidy up - rm -r "${ED}"/usr/share/kea/meson-info || die - if use !mysql; then - rm -r "${ED}"/usr/share/kea/scripts/mysql || die - fi - if use !postgres; then - rm -r "${ED}"/usr/share/kea/scripts/pgsql || die - fi - - # No easy way to control how meson_install sets permissions in meson < 1.9 - # So make sure permissions are same as in previous versions of kea - # To avoid any differences between an update vers first time install - fperms -R 0755 /usr/sbin - fperms -R 0755 /usr/bin - fperms -R 0755 /usr/$(get_libdir) - - if use shell; then - python_moduleinto ${PN} - ORIG_BUILD_DIR=${BUILD_DIR} python_foreach_impl install_shell - fi - - # We don't use keactrl.conf so move to reduce confusion - mv "${ED}"/etc/${PN}/keactrl.conf "${ED}"/usr/share/doc/${PF}/examples/keactrl.conf || die - - fowners -R root:dhcp /etc/${PN} - - # Install a conf per service and a linked init script per service - newinitd "${FILESDIR}"/${PN}-initd-r3 ${PN} - local svc - for svc in dhcp4 dhcp6 dhcp-ddns ctrl-agent; do - newconfd "${FILESDIR}"/${PN}-confd-r3 kea-${svc} - sed -e "s:@KEA_SVC@:${svc}:g" \ - -i "${ED}"/etc/conf.d/kea-${svc} || die - dosym kea "${EPREFIX}"/etc/init.d/kea-${svc} - done - - if use !doc; then - doman "${WORKDIR}"/kea-manpages/man/* - fi - - systemd_newunit "${FILESDIR}"/${PN}-ctrl-agent.service-r2 ${PN}-ctrl-agent.service - systemd_newunit "${FILESDIR}"/${PN}-dhcp-ddns.service-r2 ${PN}-dhcp-ddns.service - systemd_newunit "${FILESDIR}"/${PN}-dhcp4.service-r2 ${PN}-dhcp4.service - systemd_newunit "${FILESDIR}"/${PN}-dhcp6.service-r2 ${PN}-dhcp6.service - - newtmpfiles "${FILESDIR}"/${PN}.tmpfiles.conf ${PN}.conf - - keepdir /var/lib/${PN} /var/log/${PN} - fowners -R dhcp:dhcp /var/lib/${PN} /var/log/${PN} - fperms 750 /var/lib/${PN} /var/log/${PN} -} - -pkg_postinst() { - tmpfiles_process ${PN}.conf - - if ver_replacing -lt 2.6; then - ewarn "Several changes have been made for daemons:" - ewarn " To comply with common practices for this package," - ewarn " config paths by default has been changed as below:" - ewarn " /etc/kea/kea-dhcp4.conf" - ewarn " /etc/kea/kea-dhcp6.conf" - ewarn " /etc/kea/kea-dhcp-ddns.conf" - ewarn " /etc/kea/kea-ctrl-agent.conf" - ewarn - ewarn " Daemons are launched by default with the unprivileged user 'dhcp'" - ewarn - ewarn "Please check your configuration!" - fi - - if ver_replacing -lt 3.0; then - ewarn "If using openrc;" - ewarn " There are now separate conf.d scripts and associated init.d per daemon!" - ewarn " Each Daemon needs to be launched separately, i.e. the daemons are" - ewarn " kea-dhcp4" - ewarn " kea-dhcp6" - ewarn " kea-dhcp-ddns" - ewarn " kea-ctrl" - ewarn "Please adjust your service startups appropriately" - fi - - if ! has_version net-misc/kea; then - elog "See examples of config files in:" - elog " ${EROOT}/usr/share/doc/${PF}/examples" - fi -} diff --git a/net-misc/kea/kea-3.0.2.ebuild b/net-misc/kea/kea-3.0.2.ebuild deleted file mode 100644 index 84bc1e88a6f2..000000000000 --- a/net-misc/kea/kea-3.0.2.ebuild +++ /dev/null @@ -1,308 +0,0 @@ -# Copyright 1999-2025 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -PYTHON_COMPAT=( python3_{11..14} ) -inherit eapi9-ver flag-o-matic meson python-r1 systemd tmpfiles toolchain-funcs - -DESCRIPTION="High-performance production grade DHCPv4 & DHCPv6 server" -HOMEPAGE="https://www.isc.org/kea/" - -if [[ ${PV} == 9999 ]]; then - inherit git-r3 - EGIT_REPO_URI="https://gitlab.isc.org/isc-projects/kea.git" -else - SRC_URI=" - https://downloads.isc.org/isc/kea/${PV}/${P}.tar.xz - !doc? ( https://codeberg.org/peter1010/kea-manpages/archive/kea-manpages-${PV}.tar.gz ) - " - KEYWORDS="amd64 arm arm64 ~x86" -fi - -LICENSE="MPL-2.0" -SLOT="0" -IUSE="debug doc kerberos mysql +openssl postgres shell test" - -REQUIRED_USE="shell? ( ${PYTHON_REQUIRED_USE} )" -RESTRICT="!test? ( test )" - -COMMON_DEPEND=" - >=dev-libs/boost-1.66:= - dev-libs/log4cplus:= - kerberos? ( virtual/krb5 ) - mysql? ( - app-arch/zstd:= - dev-db/mysql-connector-c:= - dev-libs/openssl:= - virtual/zlib:= - ) - !openssl? ( dev-libs/botan:3=[boost] ) - openssl? ( dev-libs/openssl:0= ) - postgres? ( dev-db/postgresql:* ) - shell? ( ${PYTHON_DEPS} ) -" -DEPEND="${COMMON_DEPEND} - test? ( dev-cpp/gtest ) -" -RDEPEND="${COMMON_DEPEND} - acct-group/dhcp - acct-user/dhcp -" -BDEPEND=" - >=dev-build/meson-1.8 - doc? ( - $(python_gen_any_dep ' - dev-python/sphinx[${PYTHON_USEDEP}] - dev-python/sphinx-rtd-theme[${PYTHON_USEDEP}] - ') - ) - virtual/pkgconfig - ${PYTHON_DEPS} -" - -PATCHES=( - "${FILESDIR}"/kea-3.0.1-boost-1.89.patch -) - -python_check_deps() { - use doc || return 0; - python_has_version "dev-python/sphinx[${PYTHON_USEDEP}]" \ - "dev-python/sphinx-rtd-theme[${PYTHON_USEDEP}]" -} - -pkg_setup() { - python_setup -} - -src_prepare() { - default - - # Fix up all doc paths, whether or not we are installing full set of docs - sed -e "s:'doc/kea':'doc/${PF}':" \ - -i meson.build || die - sed -e "s:'share/doc/kea':'share/doc/${PF}':" \ - -i doc/meson.build || die - sed -e "s:'doc/kea':'doc/${PF}':" \ - -i doc/sphinx/meson.build || die - sed -e "s:share/doc/kea/:share/doc/${PF}/:" \ - -i doc/sphinx/arm/install.rst || die - sed -e "s:share/doc/kea/examples:share/doc/${PF}/examples:" \ - -i doc/sphinx/arm/config.rst || die - - # set shebang before meson whether or not we are installing the shell - sed -e 's:^#!@PYTHON@:#!/usr/bin/env python3:' \ - -i src/bin/shell/kea-shell.in || die - - # Don't allow meson to install shell, we shall do that if required - sed -e 's:install\: true:install\: false:' \ - -i src/bin/shell/meson.build || die - - # do not create /run - sed -e '/^install_emptydir(RUNSTATEDIR)$/d' \ - -i meson.build || die -} - -src_configure() { - # https://bugs.gentoo.org/861617 - # https://gitlab.isc.org/isc-projects/kea/-/issues/3946 - # - # Kea Devs say no to LTO - filter-lto - - if use !openssl; then - append-cxxflags -std=c++20 - fi - - local emesonargs=( - --localstatedir="${EPREFIX}/var" - -Drunstatedir="${EPREFIX}/run" - $(meson_feature kerberos krb5) - -Dnetconf=disabled - -Dcrypto=$(usex openssl openssl botan) - $(meson_feature mysql) - $(meson_feature postgres postgresql) - $(meson_feature test tests) - ) - if use debug; then - emesonargs+=( - --debug - ) - fi - meson_src_configure -} - -src_compile() { - meson_src_compile - - use doc && meson_src_compile doc -} - -src_test() { - # Get list of all test suites into an associative array - # the meson test --list returns either "kea / test_suite", "kea:shell-tests / test_suite" or - # "kea:python-tests / test_suite" - # Discard the shell tests as we can't run shell tests in sandbox - - pushd "${BUILD_DIR}" || die - local -A TEST_SUITES - while IFS=" / " read -r subsystem test_suite ; do - if [[ ${subsystem} != "kea:shell-tests" ]]; then - TEST_SUITES["$test_suite"]=1 - fi - done < <(meson test --list || die) - popd - - # Some other tests will fail for interface access restrictions, we have to remove the test suites those tests - # belong to - local SKIP_TESTS=( - dhcp-radius-tests - kea-log-buffer_logger_test.sh - kea-log-console_test.sh - dhcp-lease-query-tests - kea-dhcp6-tests - kea-dhcp4-tests - kea-dhcp-tests - ) - - # skip shell tests that require a running instance of MySQL - if use mysql; then - SKIP_TESTS+=( - kea-mysql-tests - dhcp-mysql-lib-tests - dhcp-forensic-log-libloadtests - ) - fi - - # skip shell tests that require a running instance of PgSQL - if use postgres; then - SKIP_TESTS+=( - kea-pgsql-tests - dhcp-pgsql-lib-tests - dhcp-forensic-log-libloadtests - ) - fi - - if use kerberos; then - SKIP_TESTS+=( - ddns-gss-tsig-tests - ) - fi - - if [[ $(tc-get-ptr-size) -eq 4 ]]; then - # see https://bugs.gentoo.org/958171 for reason for skipping these tests - SKIP_TESTS+=( - kea-util-tests - kea-dhcpsrv-tests - dhcp-ha-lib-tests - kea-d2-tests - ) - fi - - for SKIP in ${SKIP_TESTS[@]}; do - unset TEST_SUITES["${SKIP}"] - done - - meson_src_test ${!TEST_SUITES[@]} -} - -install_shell() { - python_domodule ${ORIG_BUILD_DIR}/src/bin/shell/*.py - python_doscript ${ORIG_BUILD_DIR}/src/bin/shell/kea-shell - - # fix path to import kea modules - sed -e "/^sys.path.append/s|(.*)|('$(python_get_sitedir)/${PN}')|" \ - -i "${ED}"/usr/lib/python-exec/${EPYTHON}/kea-shell || die -} - -src_install() { - meson_install - - # Tidy up - rm -r "${ED}"/usr/share/kea/meson-info || die - if use !mysql; then - rm -r "${ED}"/usr/share/kea/scripts/mysql || die - fi - if use !postgres; then - rm -r "${ED}"/usr/share/kea/scripts/pgsql || die - fi - - # No easy way to control how meson_install sets permissions in meson < 1.9 - # So make sure permissions are same as in previous versions of kea - # To avoid any differences between an update vers first time install - fperms -R 0755 /usr/sbin - fperms -R 0755 /usr/bin - fperms -R 0755 /usr/$(get_libdir) - - if use shell; then - python_moduleinto ${PN} - ORIG_BUILD_DIR=${BUILD_DIR} python_foreach_impl install_shell - fi - - # We don't use keactrl.conf so move to reduce confusion - mv "${ED}"/etc/${PN}/keactrl.conf "${ED}"/usr/share/doc/${PF}/examples/keactrl.conf || die - - fowners -R root:dhcp /etc/${PN} - - # Install a conf per service and a linked init script per service - newinitd "${FILESDIR}"/${PN}-initd-r3 ${PN} - local svc - for svc in dhcp4 dhcp6 dhcp-ddns ctrl-agent; do - newconfd "${FILESDIR}"/${PN}-confd-r3 kea-${svc} - sed -e "s:@KEA_SVC@:${svc}:g" \ - -i "${ED}"/etc/conf.d/kea-${svc} || die - dosym kea "${EPREFIX}"/etc/init.d/kea-${svc} - done - - if use !doc; then - doman "${WORKDIR}"/kea-manpages/man/* - fi - - systemd_newunit "${FILESDIR}"/${PN}-ctrl-agent.service-r2 ${PN}-ctrl-agent.service - systemd_newunit "${FILESDIR}"/${PN}-dhcp-ddns.service-r2 ${PN}-dhcp-ddns.service - systemd_newunit "${FILESDIR}"/${PN}-dhcp4.service-r2 ${PN}-dhcp4.service - systemd_newunit "${FILESDIR}"/${PN}-dhcp6.service-r2 ${PN}-dhcp6.service - - newtmpfiles "${FILESDIR}"/${PN}.tmpfiles.conf ${PN}.conf - - keepdir /var/lib/${PN} /var/log/${PN} - fowners -R dhcp:dhcp /var/lib/${PN} /var/log/${PN} - fperms 750 /var/lib/${PN} /var/log/${PN} -} - -pkg_postinst() { - tmpfiles_process ${PN}.conf - - if ver_replacing -lt 2.6; then - ewarn "Several changes have been made for daemons:" - ewarn " To comply with common practices for this package," - ewarn " config paths by default has been changed as below:" - ewarn " /etc/kea/kea-dhcp4.conf" - ewarn " /etc/kea/kea-dhcp6.conf" - ewarn " /etc/kea/kea-dhcp-ddns.conf" - ewarn " /etc/kea/kea-ctrl-agent.conf" - ewarn - ewarn " Daemons are launched by default with the unprivileged user 'dhcp'" - ewarn - ewarn "Please check your configuration!" - fi - - if ver_replacing -lt 3.0; then - ewarn "Make sure that ${EPREFIX}/var/lib/kea and all the files in it are owned by dhcp:" - ewarn "chown -R dhcp:dhcp ${EPREFIX}/var/lib/kea" - ewarn - ewarn "If using openrc;" - ewarn " There are now separate conf.d scripts and associated init.d per daemon!" - ewarn " Each Daemon needs to be launched separately, i.e. the daemons are" - ewarn " kea-dhcp4" - ewarn " kea-dhcp6" - ewarn " kea-dhcp-ddns" - ewarn " kea-ctrl" - ewarn "Please adjust your service startups appropriately" - fi - - if ! has_version net-misc/kea; then - elog "See examples of config files in:" - elog " ${EROOT}/usr/share/doc/${PF}/examples" - fi -}
