new file mode 100644
@@ -0,0 +1,53 @@
+From cf6af9219ba688fcd01d73a392dd1306d2b7a9e6 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Wed, 27 Aug 2025 22:20:09 -0700
+Subject: [PATCH] build: boost 1.89.0 fixes
+
+Upstream-Status: Submitted [https://gitlab.isc.org/isc-projects/kea/-/merge_requests/2771/]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ meson.build | 2 +-
+ src/lib/asiodns/io_fetch.cc | 1 +
+ src/lib/asiolink/interval_timer.cc | 1 +
+ 3 files changed, 3 insertions(+), 1 deletion(-)
+
+--- a/meson.build
++++ b/meson.build
+@@ -189,7 +189,7 @@ message(f'Detected system "@SYSTEM@".')
+
+ #### Dependencies
+
+-boost_dep = dependency('boost', version: '>=1.66', modules: ['system'])
++boost_dep = dependency('boost', version: '>=1.66')
+ dl_dep = dependency('dl')
+ threads_dep = dependency('threads')
+ add_project_dependencies(boost_dep, dl_dep, threads_dep, language: ['cpp'])
+@@ -1094,7 +1094,7 @@ pkg.generate(
+ if TARGETS_GEN_MESSAGES.length() > 0
+ alias_target('messages', TARGETS_GEN_MESSAGES)
+ else
+- error(
++ warning(
+ 'No messages to generate. This is probably an error in the meson.build files.',
+ )
+ endif
+--- a/src/lib/asiodns/io_fetch.cc
++++ b/src/lib/asiodns/io_fetch.cc
+@@ -22,6 +22,7 @@
+ #include <dns/rcode.h>
+ #include <util/io.h>
+
++#include <boost/asio/deadline_timer.hpp>
+ #include <boost/scoped_ptr.hpp>
+ #include <boost/date_time/posix_time/posix_time_types.hpp>
+
+--- a/src/lib/asiolink/interval_timer.cc
++++ b/src/lib/asiolink/interval_timer.cc
+@@ -9,6 +9,7 @@
+ #include <asiolink/interval_timer.h>
+ #include <asiolink/io_service.h>
+
++#include <boost/asio/deadline_timer.hpp>
+ #include <boost/enable_shared_from_this.hpp>
+ #include <boost/noncopyable.hpp>
+ #include <boost/shared_ptr.hpp>
deleted file mode 100644
@@ -1,96 +0,0 @@
-From 72d7e6c0b6b5af4fea2e4db9ed33757984ccdc5b Mon Sep 17 00:00:00 2001
-From: Razvan Becheriu <razvan@isc.org>
-Date: Fri, 14 Jun 2024 17:09:50 +0300
-Subject: [PATCH] make kea environment available to lfc
-
-Upstream-Status: Backport
-[https://gitlab.isc.org/isc-projects/kea/-/commit/f477e8ebcc8b8e1f1adaad4d55031084c0ff6f40]
-
-Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
----
- configure.ac | 2 ++
- src/lib/dhcpsrv/memfile_lease_mgr.cc | 3 ++-
- .../tests/memfile_lease_mgr_unittest.cc | 26 +++++++++++++++++++
- src/lib/dhcpsrv/tests/test_kea_lfc_env.sh.in | 6 +++++
- 4 files changed, 36 insertions(+), 1 deletion(-)
- create mode 100644 src/lib/dhcpsrv/tests/test_kea_lfc_env.sh.in
-
-diff --git a/configure.ac b/configure.ac
-index c00edb5..7b572b0 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -1629,6 +1629,8 @@ AC_CONFIG_FILES([src/lib/dhcp_ddns/tests/Makefile])
- AC_CONFIG_FILES([src/lib/dhcpsrv/Makefile])
- AC_CONFIG_FILES([src/lib/dhcpsrv/tests/Makefile])
- AC_CONFIG_FILES([src/lib/dhcpsrv/tests/test_libraries.h])
-+AC_CONFIG_FILES([src/lib/dhcpsrv/tests/test_kea_lfc_env.sh],
-+ [chmod +x src/lib/dhcpsrv/tests/test_kea_lfc_env.sh])
- AC_CONFIG_FILES([src/lib/dhcpsrv/testutils/Makefile])
- AC_CONFIG_FILES([src/lib/dns/Makefile])
- AC_CONFIG_FILES([src/lib/dns/tests/Makefile])
-diff --git a/src/lib/dhcpsrv/memfile_lease_mgr.cc b/src/lib/dhcpsrv/memfile_lease_mgr.cc
-index db4f5d5..0ecf3e7 100644
---- a/src/lib/dhcpsrv/memfile_lease_mgr.cc
-+++ b/src/lib/dhcpsrv/memfile_lease_mgr.cc
-@@ -209,7 +209,8 @@ LFCSetup::setup(const uint32_t lfc_interval,
- args.push_back("ignored-path");
-
- // Create the process (do not start it yet).
-- process_.reset(new ProcessSpawn(ProcessSpawn::ASYNC, executable, args));
-+ process_.reset(new ProcessSpawn(ProcessSpawn::ASYNC, executable, args,
-+ ProcessEnvVars(), true));
-
- // If we've been told to run it once now, invoke the callback directly.
- if (run_once_now) {
-diff --git a/src/lib/dhcpsrv/tests/memfile_lease_mgr_unittest.cc b/src/lib/dhcpsrv/tests/memfile_lease_mgr_unittest.cc
-index 034f1f5..9edf637 100644
---- a/src/lib/dhcpsrv/tests/memfile_lease_mgr_unittest.cc
-+++ b/src/lib/dhcpsrv/tests/memfile_lease_mgr_unittest.cc
-@@ -534,6 +534,32 @@ TEST_F(MemfileLeaseMgrTest, lfcTimer) {
- EXPECT_EQ(2, lease_mgr->getLFCCount());
- }
-
-+/// @brief Check that the kea environment is accesible to the Lease
-+/// File Cleanup process.
-+TEST_F(MemfileLeaseMgrTest, lfcEnv) {
-+ DatabaseConnection::ParameterMap pmap;
-+ pmap["type"] = "memfile";
-+ pmap["universe"] = "4";
-+ pmap["name"] = getLeaseFilePath("leasefile4_0.csv");
-+ pmap["lfc-interval"] = "1";
-+
-+ std::ostringstream s;
-+ s << DHCP_DATA_DIR << "/test_kea_lfc_env.sh";
-+ setenv("KEA_LFC_EXECUTABLE", s.str().c_str(), 1);
-+
-+ boost::scoped_ptr<NakedMemfileLeaseMgr> lease_mgr(new NakedMemfileLeaseMgr(pmap));
-+
-+ // Try to run the lease file cleanup.
-+ ASSERT_NO_THROW(lease_mgr->lfcCallback());
-+
-+ // Wait for the LFC process to complete.
-+ ASSERT_TRUE(waitForProcess(*lease_mgr, 1));
-+
-+ // And make sure it has returned an exit status of 0.
-+ EXPECT_EQ(0, lease_mgr->getLFCExitStatus())
-+ << "environment not available to LFC";
-+}
-+
- /// @brief This test checks if the LFC timer is disabled (doesn't trigger)
- /// cleanups when the lfc-interval is set to 0.
- TEST_F(MemfileLeaseMgrTest, lfcTimerDisabled) {
-diff --git a/src/lib/dhcpsrv/tests/test_kea_lfc_env.sh.in b/src/lib/dhcpsrv/tests/test_kea_lfc_env.sh.in
-new file mode 100644
-index 0000000..3eb71d5
---- /dev/null
-+++ b/src/lib/dhcpsrv/tests/test_kea_lfc_env.sh.in
-@@ -0,0 +1,6 @@
-+#!/bin/sh
-+
-+if [ $(env | grep -c KEA_LFC_EXECUTABLE) != 0 ]; then
-+ exit 0
-+fi
-+exit 1
-2.25.1
-
new file mode 100644
@@ -0,0 +1,121 @@
+From 5ec5e08edc059ed0c0d430dc8e02cd64bebc8d1c Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Thu, 28 Aug 2025 17:02:49 -0700
+Subject: [PATCH] meson: use a runtime-safe interpreter string
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+In cross builds, python.find_installation() (what
+PYTHON usually comes from) must be a native
+interpreter (since Meson runs it during configure),
+but you don’t want that absolute native path baked
+into target files. You want a runtime/target path
+such as /usr/bin/env python3 (portable) or
+/usr/bin/python3
+
+Upstream-Status: Submitted [https://gitlab.isc.org/isc-projects/kea/-/issues/4087]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ doc/sphinx/meson.build | 8 +++++++-
+ meson.build | 8 +++++++-
+ src/bin/shell/tests/meson.build | 8 +++++++-
+ src/lib/util/python/meson.build | 8 +++++++-
+ 4 files changed, 28 insertions(+), 4 deletions(-)
+
+--- a/doc/sphinx/meson.build
++++ b/doc/sphinx/meson.build
+@@ -70,7 +70,13 @@ doc_conf.set('builddir', meson.current_b
+ doc_conf.set('srcdir', meson.current_source_dir())
+ doc_conf.set('sphinxbuilddir', sphinxbuilddir)
+ doc_conf.set('abs_sphinxbuilddir', abs_sphinxbuilddir)
+-doc_conf.set('PYTHON', PYTHON.full_path())
++# During cross builds, avoid embedding the native Python path into target artifacts.
++# Use a runtime-safe interpreter path for the target.
++py_for_runtime = '/usr/bin/env python3'
++if not meson.is_cross_build()
++ py_for_runtime = PYTHON.full_path()
++endif
++doc_conf.set('PYTHON', py_for_runtime)
+ doc_conf.set('TOP_SOURCE_DIR', TOP_SOURCE_DIR)
+ if PDFLATEX.found()
+ doc_conf.set('HAVE_PDFLATEX', 'yes')
+--- a/meson.build
++++ b/meson.build
+@@ -638,8 +638,11 @@ link_args = []
+ # Also, Meson might use it by default, but might not use it on all systems, so lots of variables...
+ # EXECUTABLE_RPATH = f'$ORIGIN/../@LIBDIR@'
+ # HOOK_RPATH = '$ORIGIN/../..'
+-
++if not meson.is_cross_build()
+ BUILD_RPATH = TOP_BUILD_DIR / 'src/lib'
++else
++BUILD_RPATH = ''
++endif
+ INSTALL_RPATH = LIBDIR_INSTALLED
+
+ # Add rpaths for NETCONF dependencies.
+@@ -759,7 +762,13 @@ report_conf_data.set('CXX_ARGS', ' '.joi
+ report_conf_data.set('LD_ID', cpp.get_linker_id())
+ link_args += get_option('cpp_link_args')
+ report_conf_data.set('LD_ARGS', ' '.join(link_args))
+-report_conf_data.set('PYTHON_PATH', PYTHON.full_path())
++# During cross builds, avoid embedding the native Python path into target artifacts.
++# Use a runtime-safe interpreter path for the target.
++py_for_runtime = '/usr/bin/env python3'
++if not meson.is_cross_build()
++ py_for_runtime = PYTHON.full_path()
++endif
++report_conf_data.set('PYTHON_PATH', py_for_runtime)
+ report_conf_data.set('PYTHON_VERSION', PYTHON.version())
+ report_conf_data.set('PKGPYTHONDIR', PKGPYTHONDIR)
+ result = cpp.run(
+--- a/src/bin/shell/tests/meson.build
++++ b/src/bin/shell/tests/meson.build
+@@ -3,7 +3,13 @@ if not TESTS_OPT.enabled()
+ endif
+
+ shell_tests_conf_data = configuration_data()
+-shell_tests_conf_data.set('PYTHON', PYTHON.full_path())
++# During cross builds, avoid embedding the native Python path into target artifacts.
++# Use a runtime-safe interpreter path for the target.
++py_for_runtime = '/usr/bin/env python3'
++if not meson.is_cross_build()
++ py_for_runtime = PYTHON.full_path()
++endif
++shell_tests_conf_data.set('PYTHON', py_for_runtime)
+ shell_tests_conf_data.set('abs_top_builddir', TOP_BUILD_DIR)
+ shell_tests_conf_data.set('abs_top_srcdir', TOP_SOURCE_DIR)
+ shell_unittest = configure_file(
+--- a/src/lib/util/python/meson.build
++++ b/src/lib/util/python/meson.build
+@@ -4,7 +4,13 @@ endif
+
+ configure_file(input: 'const2hdr.py', output: 'const2hdr.py', copy: true)
+ util_python_conf_data = configuration_data()
+-util_python_conf_data.set('PYTHON', PYTHON.full_path())
++# During cross builds, avoid embedding the native Python path into target artifacts.
++# Use a runtime-safe interpreter path for the target.
++py_for_runtime = '/usr/bin/env python3'
++if not meson.is_cross_build()
++ py_for_runtime = PYTHON.full_path()
++endif
++util_python_conf_data.set('PYTHON', py_for_runtime)
+ configure_file(
+ input: 'gen_wiredata.py.in',
+ output: 'gen_wiredata.py',
+--- a/src/bin/shell/meson.build
++++ b/src/bin/shell/meson.build
+@@ -1,5 +1,11 @@
+ kea_shell_conf_data = configuration_data()
+-kea_shell_conf_data.set('PYTHON', PYTHON.full_path())
++# During cross builds, avoid embedding the native Python path into target artifacts.
++# Use a runtime-safe interpreter path for the target.
++py_for_runtime = '/usr/bin/env python3'
++if not meson.is_cross_build()
++ py_for_runtime = PYTHON.full_path()
++endif
++kea_shell_conf_data.set('PYTHON', py_for_runtime)
+ kea_shell_conf_data.set('PACKAGE_VERSION', PROJECT_VERSION)
+ kea_shell_conf_data.set(
+ 'EXTENDED_VERSION',
new file mode 100644
@@ -0,0 +1,54 @@
+From c8a1f0b9c17c8485bdeac045e5afdcd4467c1c14 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Thu, 28 Aug 2025 17:31:39 -0700
+Subject: [PATCH] mk_cfgrpt.sh: strip prefixes
+
+Add support for a STRIP_PREFIXES env var (colon-separated list).
+The script will pipe its output through sed to remove any of those prefixes.
+
+Upstream-Status: Submitted [https://gitlab.isc.org/isc-projects/kea/-/issues/4087]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ tools/mk_cfgrpt.sh | 22 +++++++++++++++++++++-
+ 1 file changed, 21 insertions(+), 1 deletion(-)
+
+diff --git a/tools/mk_cfgrpt.sh b/tools/mk_cfgrpt.sh
+index bc0cc41..8f41ce1 100755
+--- a/tools/mk_cfgrpt.sh
++++ b/tools/mk_cfgrpt.sh
+@@ -43,6 +43,26 @@ then
+ exit 2
+ fi
+
++# Optional: strip absolute path prefixes from generated output to make
++# cross-builds reproducible (e.g. Yocto sysroot/work dirs).
++# Provide colon-separated prefixes via STRIP_PREFIXES.
++strip_paths() {
++ if [ -z "${STRIP_PREFIXES:-}" ]; then
++ cat
++ return
++ fi
++ # Build a sed script that removes each prefix wherever it appears.
++ SED_SCRIPT=
++ IFS=':'; for p in $STRIP_PREFIXES; do
++ [ -n "$p" ] || continue
++ # Escape forward slashes
++ ep=$(printf '%s' "$p" | sed 's,/,\\/,g')
++ SED_SCRIPT="${SED_SCRIPT}s/${ep}//g;"
++ done
++ IFS=' '
++ sed -e "$SED_SCRIPT"
++}
++
+ # Header
+ cat >> "${dest}" << END
+ // config_report.cc. Generated from config.report by tools/mk_cfgrpt.sh
+@@ -55,7 +75,7 @@ END
+
+ # Body: escape '\'s and '"'s, preprend ' ";;;; ' and append '",'
+ sed -e 's/\\/\\\\/g' -e 's/"/\\"/g' -e 's/^/ ";;;; /' -e 's/$/",/' \
+- < "${report_file}" >> "${dest}"
++ < "${report_file}" | strip_paths >> "${dest}"
+
+ # Trailer
+ cat >> "${dest}" <<END
@@ -13,11 +13,9 @@ Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
src/lib/log/logger_unittest_support.cc | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
-diff --git a/src/lib/log/logger_unittest_support.cc b/src/lib/log/logger_unittest_support.cc
-index fc01c6e..f46d17e 100644
--- a/src/lib/log/logger_unittest_support.cc
+++ b/src/lib/log/logger_unittest_support.cc
-@@ -84,7 +84,7 @@ void initLogger(isc::log::Severity severity, int dbglevel) {
+@@ -84,7 +84,7 @@ void initLogger(isc::log::Severity sever
const char* localfile = getenv("KEA_LOGGER_LOCALMSG");
// Set a directory for creating lockfiles when running tests
@@ -24,11 +24,9 @@ Signed-off-by: Lei Maohui <leimaohui@fujitsu.com>
src/bin/keactrl/kea-dhcp6.conf.pre | 4 ++--
3 files changed, 6 insertions(+), 5 deletions(-)
-diff --git a/src/bin/keactrl/kea-ctrl-agent.conf.pre b/src/bin/keactrl/kea-ctrl-agent.conf.pre
-index e6ae8b8..50a3092 100644
--- a/src/bin/keactrl/kea-ctrl-agent.conf.pre
+++ b/src/bin/keactrl/kea-ctrl-agent.conf.pre
-@@ -51,7 +51,8 @@
+@@ -85,7 +85,8 @@
// Agent will fail to start.
"hooks-libraries": [
// {
@@ -38,8 +36,6 @@ index e6ae8b8..50a3092 100644
// "parameters": {
// "param1": "foo"
// }
-diff --git a/src/bin/keactrl/kea-dhcp4.conf.pre b/src/bin/keactrl/kea-dhcp4.conf.pre
-index 6edb8a1..b2a7385 100644
--- a/src/bin/keactrl/kea-dhcp4.conf.pre
+++ b/src/bin/keactrl/kea-dhcp4.conf.pre
@@ -255,7 +255,7 @@
@@ -49,9 +45,9 @@ index 6edb8a1..b2a7385 100644
- // "library": "@libdir@/kea/hooks/libdhcp_legal_log.so",
+ // "library": "$libdir/kea/hooks/libdhcp_legal_log.so",
// "parameters": {
- // "path": "/var/lib/kea",
// "base-name": "kea-forensic4"
-@@ -272,7 +272,7 @@
+ // }
+@@ -271,7 +271,7 @@
// // of specific options or perhaps even a combination of several
// // options and fields to uniquely identify a client. Those scenarios
// // are addressed by the Flexible Identifiers hook application.
@@ -60,8 +56,6 @@ index 6edb8a1..b2a7385 100644
// "parameters": {
// "identifier-expression": "relay4[2].hex"
// }
-diff --git a/src/bin/keactrl/kea-dhcp6.conf.pre b/src/bin/keactrl/kea-dhcp6.conf.pre
-index 271021b..5b85854 100644
--- a/src/bin/keactrl/kea-dhcp6.conf.pre
+++ b/src/bin/keactrl/kea-dhcp6.conf.pre
@@ -201,7 +201,7 @@
@@ -71,9 +65,9 @@ index 271021b..5b85854 100644
- // "library": "@libdir@/kea/hooks/libdhcp_legal_log.so",
+ // "library": "$libdir/kea/hooks/libdhcp_legal_log.so",
// "parameters": {
- // "path": "/var/lib/kea",
// "base-name": "kea-forensic6"
-@@ -218,7 +218,7 @@
+ // }
+@@ -217,7 +217,7 @@
// // of specific options or perhaps even a combination of several
// // options and fields to uniquely identify a client. Those scenarios
// // are addressed by the Flexible Identifiers hook application.
@@ -15,21 +15,16 @@ Signed-off-by: Trevor Gamblin <tgamblin@baylibre.com>
src/bin/keactrl/keactrl.in | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
-diff --git a/src/bin/keactrl/keactrl.in b/src/bin/keactrl/keactrl.in
-index cccfdac303..20ae2e6ec5 100644
--- a/src/bin/keactrl/keactrl.in
+++ b/src/bin/keactrl/keactrl.in
-@@ -146,8 +146,8 @@ check_running() {
+@@ -157,8 +157,8 @@ check_running() {
# Get the PID from the PID file (if it exists)
get_pid_from_file "${proc_name}"
- if [ ${_pid} -gt 0 ]; then
+ if [ "${_pid}" -gt 0 ]; then
- # Use ps to check if PID is alive
-- if ps -p ${_pid} 1>/dev/null; then
+- if ps -p "${_pid}" 1>/dev/null; then
+ # Use pgrep and grep to check if PID is alive
+ if pgrep -v 1 | grep ${_pid} 1>/dev/null; then
# No error, so PID IS ALIVE
_running=1
fi
-2.39.2
-
similarity index 67%
rename from meta/recipes-connectivity/kea/kea_2.6.4.bb
rename to meta/recipes-connectivity/kea/kea_3.0.1.bb
@@ -3,11 +3,11 @@ DESCRIPTION = "Kea is the next generation of DHCP software developed by ISC. It
HOMEPAGE = "http://kea.isc.org"
SECTION = "connectivity"
LICENSE = "MPL-2.0"
-LIC_FILES_CHKSUM = "file://COPYING;md5=ee16e7280a6cf2a1487717faf33190dc"
+LIC_FILES_CHKSUM = "file://COPYING;md5=fb634ed1d923b8b8fd1ed7ffc9b70ae4"
DEPENDS = "boost log4cplus openssl"
-SRC_URI = "http://ftp.isc.org/isc/kea/${PV}/${BP}.tar.gz \
+SRC_URI = "http://ftp.isc.org/isc/kea/${PV}/${BP}.tar.xz \
file://kea-dhcp4.service \
file://kea-dhcp6.service \
file://kea-dhcp-ddns.service \
@@ -17,11 +17,15 @@ SRC_URI = "http://ftp.isc.org/isc/kea/${PV}/${BP}.tar.gz \
file://fix-multilib-conflict.patch \
file://fix_pid_keactrl.patch \
file://0001-src-lib-log-logger_unittest_support.cc-do-not-write-.patch \
- file://0001-make-kea-environment-available-to-lfc.patch \
+ file://0001-build-boost-1.89.0-fixes.patch \
+ file://0001-meson-use-a-runtime-safe-interpreter-string.patch \
+ file://0001-mk_cfgrpt.sh-strip-prefixes.patch \
"
-SRC_URI[sha256sum] = "6806405e4d559abc10febd2c273dc6e2bc6ac42767afa5ca20b118ffba84a671"
+SRC_URI[sha256sum] = "ec84fec4bb7f6b9d15a82e755a571e9348eb4d6fbc62bb3f6f1296cd7a24c566"
-inherit autotools systemd update-rc.d upstream-version-is-even
+inherit meson pkgconfig systemd update-rc.d upstream-version-is-even
+
+EXTRA_OECONF += "-Dcrypto=openssl -Drunstatedir=${runtimedir} -Dkrb5=disabled -Dnetconf=disabled"
INITSCRIPT_NAME = "kea-dhcp4-server"
INITSCRIPT_PARAMS = "defaults 30"
@@ -40,20 +44,18 @@ BUILD_OPTIMIZATION:remove:mipsel = " -Og"
BUILD_OPTIMIZATION:append:mipsel = " -O"
CXXFLAGS:remove = "-fvisibility-inlines-hidden"
-EXTRA_OECONF = "--with-boost-libs=-lboost_system \
- --with-log4cplus=${STAGING_DIR_TARGET}${prefix} \
- --with-openssl=${STAGING_DIR_TARGET}${prefix}"
do_configure:prepend() {
# replace abs_top_builddir to avoid introducing the build path
# don't expand the abs_top_builddir on the target as the abs_top_builddir is meanlingless on the target
find ${S} -type f -name *.sh.in | xargs sed -i "s:@abs_top_builddir@:@abs_top_builddir_placeholder@:g"
sed -i "s:@abs_top_builddir@:@abs_top_builddir_placeholder@:g" ${S}/src/bin/admin/kea-admin.in
+ export STRIP_PREFIXES="${RECIPE_SYSROOT_NATIVE}:${RECIPE_SYSROOT}:${WORKDIR}:${B}"
}
# patch out build host paths for reproducibility
do_compile:prepend:class-target() {
- sed -i -e "s,${WORKDIR},,g" ${B}/config.report
+ sed -i -e "s,${WORKDIR},,g" ${B}/config.report
}
do_install:append() {
@@ -65,7 +67,13 @@ do_install:append() {
sed -i -e 's,@SBINDIR@,${sbindir},g' -e 's,@BASE_BINDIR@,${base_bindir},g' \
-e 's,@LOCALSTATEDIR@,${localstatedir},g' -e 's,@SYSCONFDIR@,${sysconfdir},g' \
${D}${systemd_system_unitdir}/kea-dhcp*service ${D}${sbindir}/keactrl
- sed -i "s:${B}:@abs_top_builddir_placeholder@:g" ${D}${sbindir}/kea-admin
+ sed -i -e "s:${B}:@abs_top_builddir_placeholder@:g" \
+ -e "s:${S}:@abs_top_srcdir_placeholder@:g" \
+ ${D}${sbindir}/kea-admin
+ sed -i -e 's,${RECIPE_SYSROOT},,g' -e 's,${RECIPE_SYSROOT_NATIVE},,g' \
+ -e 's,${UNINATIVE_STAGING_DIR}-uninative/${BUILD_ARCH}-linux/lib,,g' \
+ -e 's,${WORKDIR},,g' \
+ ${D}${datadir}/${BPN}/meson-info/*.json
}
do_install:append() {
@@ -74,7 +82,9 @@ do_install:append() {
CONFFILES:${PN} = "${sysconfdir}/kea/keactrl.conf"
+PACKAGES =+ "${PN}-python"
+FILES:${PN}-python = "${libdir}/python*/site-packages/*"
+RDEPENDS:${PN}-python = "python3"
+
FILES:${PN}-staticdev += "${libdir}/kea/hooks/*.a ${libdir}/hooks/*.a"
FILES:${PN} += "${libdir}/hooks/*.so"
-
-PARALLEL_MAKEINST = ""
* Drop backported patch and refresh remaining * Add fixes to build with boost 1.89.0 * Switch to meson build system Signed-off-by: Khem Raj <raj.khem@gmail.com> --- v2: same as v1 as no v1 was submitted .../files/0001-build-boost-1.89.0-fixes.patch | 53 ++++++++ ...ake-kea-environment-available-to-lfc.patch | 96 -------------- ...se-a-runtime-safe-interpreter-string.patch | 121 ++++++++++++++++++ .../0001-mk_cfgrpt.sh-strip-prefixes.patch | 54 ++++++++ ...er_unittest_support.cc-do-not-write-.patch | 4 +- .../kea/files/fix-multilib-conflict.patch | 16 +-- .../kea/files/fix_pid_keactrl.patch | 11 +- .../kea/{kea_2.6.4.bb => kea_3.0.1.bb} | 34 +++-- 8 files changed, 259 insertions(+), 130 deletions(-) create mode 100644 meta/recipes-connectivity/kea/files/0001-build-boost-1.89.0-fixes.patch delete mode 100644 meta/recipes-connectivity/kea/files/0001-make-kea-environment-available-to-lfc.patch create mode 100644 meta/recipes-connectivity/kea/files/0001-meson-use-a-runtime-safe-interpreter-string.patch create mode 100644 meta/recipes-connectivity/kea/files/0001-mk_cfgrpt.sh-strip-prefixes.patch rename meta/recipes-connectivity/kea/{kea_2.6.4.bb => kea_3.0.1.bb} (67%)