public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
From: "Sam James" <sam@gentoo.org>
To: gentoo-commits@lists.gentoo.org
Subject: [gentoo-commits] repo/gentoo:master commit in: net-misc/kea/
Date: Sat, 26 Jul 2025 21:33:11 +0000 (UTC)	[thread overview]
Message-ID: <1753565537.09940bb9388d1b01cdd8ffd6bd03d338ff581665.sam@gentoo> (raw)

commit:     09940bb9388d1b01cdd8ffd6bd03d338ff581665
Author:     Peter Leese <inbox <AT> peterleese <DOT> org>
AuthorDate: Sat Jul 19 20:34:34 2025 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Sat Jul 26 21:32:17 2025 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=09940bb9

net-misc/kea: add 2.6.4

Bug: https://bugs.gentoo.org/960312
Signed-off-by: Peter Leese <inbox <AT> peterleese.org>
Part-of: https://github.com/gentoo/gentoo/pull/43074
Signed-off-by: Sam James <sam <AT> gentoo.org>

 net-misc/kea/Manifest         |   1 +
 net-misc/kea/kea-2.6.4.ebuild | 253 ++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 254 insertions(+)

diff --git a/net-misc/kea/Manifest b/net-misc/kea/Manifest
index a52653a425a3..c96e0d961979 100644
--- a/net-misc/kea/Manifest
+++ b/net-misc/kea/Manifest
@@ -1,2 +1,3 @@
 DIST kea-2.4.1.tar.gz 10487415 BLAKE2B 21037d28f812ebbc65ae34f5151a209e9c74f6aa005e96ed7cbbf6e4250e6c40eecf5d257b852bf01663a0982b5401008dd6a51a16d861b30a83549f827538b6 SHA512 b8a3b6f2cae213fd9826c37568c71d3458f52eed973dbe437a1d0974dafa026635a730d828c6ff03b32e030be57d75a7914a8ca313833e91d9996b6a05b2b224
 DIST kea-2.6.3.tar.gz 10498882 BLAKE2B 7a8549ceb86dccaa2ca8d541cbfd27618ccf8aeedfb8ff26f9d0e10cfd8a103efd70320a55dc318a84094a7764c560c100cf6e10421ae6d40e6c62891570c604 SHA512 d7781c0b95529bfe89c19615c1dd5952fd4c4b60274e187a641992dad81ef5af921dfb15050ec43169a0c2ad267639642b2e294c5d43405f85a5fb11bb1a939a
+DIST kea-2.6.4.tar.gz 10498705 BLAKE2B 491a73dd0d4f7ffc068642d14a597158b70a5e6042967fd1f367f3269dd84bc4f1526b4158c7da8a474e385528b74985ac542c1591c458c6a0df42fc627b612d SHA512 f4dce03a30ba5c0a1a0d97730d7cccc0876188fb7d165e8f67cf4df906cdf157049d651d0a38b3a01f33e5b0ac7b9e8b5b479543e06c89da197d6ef9d0937a18

diff --git a/net-misc/kea/kea-2.6.4.ebuild b/net-misc/kea/kea-2.6.4.ebuild
new file mode 100644
index 000000000000..b52c810909cc
--- /dev/null
+++ b/net-misc/kea/kea-2.6.4.ebuild
@@ -0,0 +1,253 @@
+# 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:=
+		sys-libs/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
+}


             reply	other threads:[~2025-07-26 21:33 UTC|newest]

Thread overview: 94+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-07-26 21:33 Sam James [this message]
  -- strict thread matches above, loose matches on Subject: below --
2025-10-09 20:44 [gentoo-commits] repo/gentoo:master commit in: net-misc/kea/ Sam James
2025-10-09 20:44 Sam James
2025-10-09 20:44 Sam James
2025-09-06 14:46 Sam James
2025-09-06 14:30 Sam James
2025-09-06 14:30 Sam James
2025-09-06 14:30 Sam James
2025-08-23  7:33 Sam James
2025-08-21  1:02 Sam James
2025-07-26 21:33 Sam James
2025-07-20 15:53 Sam James
2025-05-28 20:53 Andreas Sturmlechner
2025-05-28  4:56 Dennis Lamm
2025-05-14 19:00 Andreas Sturmlechner
2025-05-14 19:00 Andreas Sturmlechner
2025-02-23  1:45 Sam James
2025-02-20 10:20 Michał Górny
2024-05-08 23:31 Sam James
2024-02-29  5:44 Sam James
2024-01-25 20:31 Dennis Lamm
2023-09-30 11:14 Dennis Lamm
2023-09-30 11:14 Dennis Lamm
2022-10-19  4:48 Dennis Lamm
2022-10-19  4:48 Dennis Lamm
2022-05-18 12:27 Lars Wendler
2022-05-18 12:27 Lars Wendler
2022-05-18 12:27 Lars Wendler
2022-03-14  6:39 Dennis Lamm
2021-10-04 20:40 Sam James
2021-09-08  4:53 Dennis Lamm
2021-08-15  7:56 Lars Wendler
2021-08-15  7:28 Lars Wendler
2021-08-15  7:28 Lars Wendler
2021-08-08 13:15 Dennis Lamm
2021-08-08 13:15 Dennis Lamm
2021-07-08 17:09 Dennis Lamm
2021-07-03  9:43 Lars Wendler
2021-06-16 18:11 Lars Wendler
2021-05-14 10:04 David Seifert
2021-05-13 13:55 David Seifert
2021-02-15 15:14 Thomas Deutschmann
2020-12-19 16:06 Lars Wendler
2020-11-25  9:26 Lars Wendler
2020-07-30  8:05 Lars Wendler
2020-07-30  8:05 Lars Wendler
2020-06-29 14:27 Lars Wendler
2020-06-29 14:27 Lars Wendler
2020-05-27 12:01 Lars Wendler
2020-05-27 12:01 Lars Wendler
2020-04-30  8:21 Lars Wendler
2020-04-30  8:21 Lars Wendler
2020-03-27  8:58 Lars Wendler
2020-03-27  8:58 Lars Wendler
2020-02-27  8:59 Lars Wendler
2020-02-27  8:59 Lars Wendler
2020-02-27  8:59 Lars Wendler
2020-01-31 14:00 Lars Wendler
2020-01-31 14:00 Lars Wendler
2019-12-19 15:37 Lars Wendler
2019-12-19 15:37 Lars Wendler
2019-11-28 12:23 Lars Wendler
2019-11-28 12:23 Lars Wendler
2019-10-31 12:05 Lars Wendler
2019-10-07 15:25 Lars Wendler
2019-10-07 15:25 Lars Wendler
2019-10-07 15:25 Lars Wendler
2019-09-12  6:09 Lars Wendler
2019-08-29 12:50 Lars Wendler
2019-08-29 12:50 Lars Wendler
2019-08-29 12:50 Lars Wendler
2018-12-18  0:51 Thomas Deutschmann
2018-12-10 11:45 Lars Wendler
2018-12-10  9:36 Lars Wendler
2018-12-03 15:07 Lars Wendler
2018-11-27  8:57 Lars Wendler
2018-11-27  8:57 Lars Wendler
2018-11-27  8:57 Lars Wendler
2018-07-12  9:33 Lars Wendler
2018-07-12  9:26 Lars Wendler
2018-07-12  8:06 Lars Wendler
2018-07-12  8:06 Lars Wendler
2018-06-16 21:10 Lars Wendler
2018-06-16 21:10 Lars Wendler
2018-02-14 13:55 Lars Wendler
2018-02-14 10:45 Lars Wendler
2018-02-05 13:46 Lars Wendler
2017-11-06  9:40 Lars Wendler
2017-11-06  9:40 Lars Wendler
2017-10-04  7:42 Alon Bar-Lev
2017-05-08 11:30 Tony Vroon
2016-10-21 12:46 Tony Vroon
2016-01-07 15:56 Tony Vroon
2016-01-07 15:53 Tony Vroon

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1753565537.09940bb9388d1b01cdd8ffd6bd03d338ff581665.sam@gentoo \
    --to=sam@gentoo.org \
    --cc=gentoo-commits@lists.gentoo.org \
    --cc=gentoo-dev@lists.gentoo.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox