summaryrefslogtreecommitdiffstats
path: root/meta/recipes-connectivity/kea/files
diff options
context:
space:
mode:
Diffstat (limited to 'meta/recipes-connectivity/kea/files')
-rw-r--r--meta/recipes-connectivity/kea/files/0001-keactrl.in-create-var-lib-kea-and-var-run-kea-folder.patch39
-rw-r--r--meta/recipes-connectivity/kea/files/0001-make-kea-environment-available-to-lfc.patch96
-rw-r--r--meta/recipes-connectivity/kea/files/0001-src-lib-log-logger_unittest_support.cc-do-not-write-.patch28
-rw-r--r--meta/recipes-connectivity/kea/files/fix-multilib-conflict.patch81
-rw-r--r--meta/recipes-connectivity/kea/files/fix_pid_keactrl.patch33
-rw-r--r--meta/recipes-connectivity/kea/files/kea-dhcp-ddns.service1
6 files changed, 202 insertions, 76 deletions
diff --git a/meta/recipes-connectivity/kea/files/0001-keactrl.in-create-var-lib-kea-and-var-run-kea-folder.patch b/meta/recipes-connectivity/kea/files/0001-keactrl.in-create-var-lib-kea-and-var-run-kea-folder.patch
deleted file mode 100644
index ab3fd83946..0000000000
--- a/meta/recipes-connectivity/kea/files/0001-keactrl.in-create-var-lib-kea-and-var-run-kea-folder.patch
+++ /dev/null
@@ -1,39 +0,0 @@
1From 639dc25cdabc9d1846000a542c8cc19158b69994 Mon Sep 17 00:00:00 2001
2From: Mingli Yu <mingli.yu@windriver.com>
3Date: Fri, 18 Sep 2020 08:18:08 +0000
4Subject: [PATCH] keactrl.in: create /var/lib/kea and /var/run/kea folder
5
6Create /var/lib/kea and /var/run/kea folder to fix below error:
7 # keactrl start
8 INFO/keactrl: Starting /usr/sbin/kea-dhcp4 -c /etc/kea/kea-dhcp4.conf
9 INFO/keactrl: Starting /usr/sbin/kea-dhcp6 -c /etc/kea/kea-dhcp6.conf
10 INFO/keactrl: Starting /usr/sbin/kea-ctrl-agent -c /etc/kea/kea-ctrl-agent.conf
11 Unable to use interprocess sync lockfile (No such file or directory): /var/run/kea/logger_lockfile
12 Service failed: Launch failed: Unable to open PID file '/var/run/kea/kea-ctrl-agent.kea-ctrl-agent.pid' for write
13 [snip]
14 ERROR [kea-dhcp4.dhcp4/615.140641792751488] DHCP4_CONFIG_LOAD_FAIL configuration error using file: /etc/kea/kea-dhcp4.conf, reason: Unable to open database: unable to open '/var/lib/kea/kea-leases4.csv'
15 [snip]
16
17Upstream-Status: Inappropriate [config specific]
18
19Signed-off-by: Mingli Yu <mingli.yu@windriver.com>
20---
21 src/bin/keactrl/keactrl.in | 2 ++
22 1 file changed, 2 insertions(+)
23
24diff --git a/src/bin/keactrl/keactrl.in b/src/bin/keactrl/keactrl.in
25index 12b2b3f..47cf6f9 100644
26--- a/src/bin/keactrl/keactrl.in
27+++ b/src/bin/keactrl/keactrl.in
28@@ -482,6 +482,8 @@ case ${command} in
29 # The variables (dhcp4_srv, dhcp6_serv, dhcp_ddns_srv etc) are set in the
30 # keactrl.conf file that shellcheck is unable to read.
31 # shellcheck disable=SC2154
32+ [ -d @LOCALSTATEDIR@/run/kea ] || mkdir -p @LOCALSTATEDIR@/run/kea
33+ [ -d @LOCALSTATEDIR@/lib/kea ] || mkdir -p @LOCALSTATEDIR@/lib/kea
34 run_conditional "dhcp4" "start_server ${dhcp4_srv} -c ${kea_dhcp4_config_file} ${args}" 1
35 run_conditional "dhcp6" "start_server ${dhcp6_srv} -c ${kea_dhcp6_config_file} ${args}" 1
36 # shellcheck disable=SC2154
37--
382.26.2
39
diff --git a/meta/recipes-connectivity/kea/files/0001-make-kea-environment-available-to-lfc.patch b/meta/recipes-connectivity/kea/files/0001-make-kea-environment-available-to-lfc.patch
new file mode 100644
index 0000000000..15c09d4c41
--- /dev/null
+++ b/meta/recipes-connectivity/kea/files/0001-make-kea-environment-available-to-lfc.patch
@@ -0,0 +1,96 @@
1From 72d7e6c0b6b5af4fea2e4db9ed33757984ccdc5b Mon Sep 17 00:00:00 2001
2From: Razvan Becheriu <razvan@isc.org>
3Date: Fri, 14 Jun 2024 17:09:50 +0300
4Subject: [PATCH] make kea environment available to lfc
5
6Upstream-Status: Backport
7[https://gitlab.isc.org/isc-projects/kea/-/commit/f477e8ebcc8b8e1f1adaad4d55031084c0ff6f40]
8
9Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
10---
11 configure.ac | 2 ++
12 src/lib/dhcpsrv/memfile_lease_mgr.cc | 3 ++-
13 .../tests/memfile_lease_mgr_unittest.cc | 26 +++++++++++++++++++
14 src/lib/dhcpsrv/tests/test_kea_lfc_env.sh.in | 6 +++++
15 4 files changed, 36 insertions(+), 1 deletion(-)
16 create mode 100644 src/lib/dhcpsrv/tests/test_kea_lfc_env.sh.in
17
18diff --git a/configure.ac b/configure.ac
19index c00edb5..7b572b0 100644
20--- a/configure.ac
21+++ b/configure.ac
22@@ -1629,6 +1629,8 @@ AC_CONFIG_FILES([src/lib/dhcp_ddns/tests/Makefile])
23 AC_CONFIG_FILES([src/lib/dhcpsrv/Makefile])
24 AC_CONFIG_FILES([src/lib/dhcpsrv/tests/Makefile])
25 AC_CONFIG_FILES([src/lib/dhcpsrv/tests/test_libraries.h])
26+AC_CONFIG_FILES([src/lib/dhcpsrv/tests/test_kea_lfc_env.sh],
27+ [chmod +x src/lib/dhcpsrv/tests/test_kea_lfc_env.sh])
28 AC_CONFIG_FILES([src/lib/dhcpsrv/testutils/Makefile])
29 AC_CONFIG_FILES([src/lib/dns/Makefile])
30 AC_CONFIG_FILES([src/lib/dns/tests/Makefile])
31diff --git a/src/lib/dhcpsrv/memfile_lease_mgr.cc b/src/lib/dhcpsrv/memfile_lease_mgr.cc
32index db4f5d5..0ecf3e7 100644
33--- a/src/lib/dhcpsrv/memfile_lease_mgr.cc
34+++ b/src/lib/dhcpsrv/memfile_lease_mgr.cc
35@@ -209,7 +209,8 @@ LFCSetup::setup(const uint32_t lfc_interval,
36 args.push_back("ignored-path");
37
38 // Create the process (do not start it yet).
39- process_.reset(new ProcessSpawn(ProcessSpawn::ASYNC, executable, args));
40+ process_.reset(new ProcessSpawn(ProcessSpawn::ASYNC, executable, args,
41+ ProcessEnvVars(), true));
42
43 // If we've been told to run it once now, invoke the callback directly.
44 if (run_once_now) {
45diff --git a/src/lib/dhcpsrv/tests/memfile_lease_mgr_unittest.cc b/src/lib/dhcpsrv/tests/memfile_lease_mgr_unittest.cc
46index 034f1f5..9edf637 100644
47--- a/src/lib/dhcpsrv/tests/memfile_lease_mgr_unittest.cc
48+++ b/src/lib/dhcpsrv/tests/memfile_lease_mgr_unittest.cc
49@@ -534,6 +534,32 @@ TEST_F(MemfileLeaseMgrTest, lfcTimer) {
50 EXPECT_EQ(2, lease_mgr->getLFCCount());
51 }
52
53+/// @brief Check that the kea environment is accesible to the Lease
54+/// File Cleanup process.
55+TEST_F(MemfileLeaseMgrTest, lfcEnv) {
56+ DatabaseConnection::ParameterMap pmap;
57+ pmap["type"] = "memfile";
58+ pmap["universe"] = "4";
59+ pmap["name"] = getLeaseFilePath("leasefile4_0.csv");
60+ pmap["lfc-interval"] = "1";
61+
62+ std::ostringstream s;
63+ s << DHCP_DATA_DIR << "/test_kea_lfc_env.sh";
64+ setenv("KEA_LFC_EXECUTABLE", s.str().c_str(), 1);
65+
66+ boost::scoped_ptr<NakedMemfileLeaseMgr> lease_mgr(new NakedMemfileLeaseMgr(pmap));
67+
68+ // Try to run the lease file cleanup.
69+ ASSERT_NO_THROW(lease_mgr->lfcCallback());
70+
71+ // Wait for the LFC process to complete.
72+ ASSERT_TRUE(waitForProcess(*lease_mgr, 1));
73+
74+ // And make sure it has returned an exit status of 0.
75+ EXPECT_EQ(0, lease_mgr->getLFCExitStatus())
76+ << "environment not available to LFC";
77+}
78+
79 /// @brief This test checks if the LFC timer is disabled (doesn't trigger)
80 /// cleanups when the lfc-interval is set to 0.
81 TEST_F(MemfileLeaseMgrTest, lfcTimerDisabled) {
82diff --git a/src/lib/dhcpsrv/tests/test_kea_lfc_env.sh.in b/src/lib/dhcpsrv/tests/test_kea_lfc_env.sh.in
83new file mode 100644
84index 0000000..3eb71d5
85--- /dev/null
86+++ b/src/lib/dhcpsrv/tests/test_kea_lfc_env.sh.in
87@@ -0,0 +1,6 @@
88+#!/bin/sh
89+
90+if [ $(env | grep -c KEA_LFC_EXECUTABLE) != 0 ]; then
91+ exit 0
92+fi
93+exit 1
94--
952.25.1
96
diff --git a/meta/recipes-connectivity/kea/files/0001-src-lib-log-logger_unittest_support.cc-do-not-write-.patch b/meta/recipes-connectivity/kea/files/0001-src-lib-log-logger_unittest_support.cc-do-not-write-.patch
new file mode 100644
index 0000000000..94fbd12737
--- /dev/null
+++ b/meta/recipes-connectivity/kea/files/0001-src-lib-log-logger_unittest_support.cc-do-not-write-.patch
@@ -0,0 +1,28 @@
1From 841924e1fe8db2bff3eab8d37634ef08f86c00ec Mon Sep 17 00:00:00 2001
2From: Alexander Kanavin <alex.kanavin@gmail.com>
3Date: Tue, 10 Nov 2020 15:57:03 +0000
4Subject: [PATCH] src/lib/log/logger_unittest_support.cc: do not write build
5 path into binary
6
7This breaks reproducibility and is needed only in unit testing.
8
9Upstream-Status: Inappropriate [oe-core specific]
10Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
11
12---
13 src/lib/log/logger_unittest_support.cc | 2 +-
14 1 file changed, 1 insertion(+), 1 deletion(-)
15
16diff --git a/src/lib/log/logger_unittest_support.cc b/src/lib/log/logger_unittest_support.cc
17index fc01c6e..f46d17e 100644
18--- a/src/lib/log/logger_unittest_support.cc
19+++ b/src/lib/log/logger_unittest_support.cc
20@@ -84,7 +84,7 @@ void initLogger(isc::log::Severity severity, int dbglevel) {
21 const char* localfile = getenv("KEA_LOGGER_LOCALMSG");
22
23 // Set a directory for creating lockfiles when running tests
24- setenv("KEA_LOCKFILE_DIR", TOP_BUILDDIR, 0);
25+ //setenv("KEA_LOCKFILE_DIR", TOP_BUILDDIR, 0);
26
27 // Initialize logging
28 initLogger(root, severity, dbglevel, localfile);
diff --git a/meta/recipes-connectivity/kea/files/fix-multilib-conflict.patch b/meta/recipes-connectivity/kea/files/fix-multilib-conflict.patch
index 733adf5536..763639327a 100644
--- a/meta/recipes-connectivity/kea/files/fix-multilib-conflict.patch
+++ b/meta/recipes-connectivity/kea/files/fix-multilib-conflict.patch
@@ -1,25 +1,34 @@
1There are conflict of config files between kea and lib32-kea: 1From 06ebd1b2ced426c420ed162980eca194f9f918ae Mon Sep 17 00:00:00 2001
2From: Kai Kang <kai.kang@windriver.com>
3Date: Tue, 22 Sep 2020 15:02:33 +0800
4Subject: [PATCH] There are conflict of config files between kea and lib32-kea:
2 5
3| Error: Transaction test error: 6| Error: Transaction test error:
4| file /etc/kea/kea-ctrl-agent.conf conflicts between attempted installs of 7| file /etc/kea/kea-ctrl-agent.conf conflicts between attempted installs of
5 lib32-kea-1.7.10-r0.core2_32 and kea-1.7.10-r0.core2_64 8 lib32-kea-1.7.10-r0.core2_32 and kea-1.7.10-r0.core2_64
6| file /etc/kea/kea-dhcp4.conf conflicts between attempted installs of 9| file /etc/kea/kea-dhcp4.conf conflicts between attempted installs of
7 lib32-kea-1.7.10-r0.core2_32 and kea-1.7.10-r0.core2_64 10 lib32-kea-1.7.10-r0.core2_32 and kea-1.7.10-r0.core2_64
11| file /etc/kea/kea-dhcp6.conf conflicts between attempted installs of
12 lib32-kea-2.6.1-r0.core2_32 and kea-2.6.1-r0.core2_64
8 13
9Because they are all commented out, replace the expanded libdir path with 14Because they are all commented out, replace the expanded libdir path with
10'$libdir' in the config files to avoid conflict. 15'$libdir' in the config files to avoid conflict.
11 16
17Upstream-Status: Submitted [https://gitlab.isc.org/isc-projects/kea/-/issues/2602]
12Signed-off-by: Kai Kang <kai.kang@windriver.com> 18Signed-off-by: Kai Kang <kai.kang@windriver.com>
19Signed-off-by: Lei Maohui <leimaohui@fujitsu.com>
20
13--- 21---
14 src/bin/keactrl/kea-ctrl-agent.conf.pre | 3 ++- 22 src/bin/keactrl/kea-ctrl-agent.conf.pre | 3 ++-
15 src/bin/keactrl/kea-dhcp4.conf.pre | 6 ++++-- 23 src/bin/keactrl/kea-dhcp4.conf.pre | 4 ++--
16 2 files changed, 6 insertions(+), 3 deletions(-) 24 src/bin/keactrl/kea-dhcp6.conf.pre | 4 ++--
25 3 files changed, 6 insertions(+), 5 deletions(-)
17 26
18diff --git a/src/bin/keactrl/kea-ctrl-agent.conf.pre b/src/bin/keactrl/kea-ctrl-agent.conf.pre 27diff --git a/src/bin/keactrl/kea-ctrl-agent.conf.pre b/src/bin/keactrl/kea-ctrl-agent.conf.pre
19index 211b7ff..d710ec7 100644 28index e6ae8b8..50a3092 100644
20--- a/src/bin/keactrl/kea-ctrl-agent.conf.pre 29--- a/src/bin/keactrl/kea-ctrl-agent.conf.pre
21+++ b/src/bin/keactrl/kea-ctrl-agent.conf.pre 30+++ b/src/bin/keactrl/kea-ctrl-agent.conf.pre
22@@ -45,7 +45,8 @@ 31@@ -51,7 +51,8 @@
23 // Agent will fail to start. 32 // Agent will fail to start.
24 "hooks-libraries": [ 33 "hooks-libraries": [
25 // { 34 // {
@@ -30,26 +39,46 @@ index 211b7ff..d710ec7 100644
30 // "param1": "foo" 39 // "param1": "foo"
31 // } 40 // }
32diff --git a/src/bin/keactrl/kea-dhcp4.conf.pre b/src/bin/keactrl/kea-dhcp4.conf.pre 41diff --git a/src/bin/keactrl/kea-dhcp4.conf.pre b/src/bin/keactrl/kea-dhcp4.conf.pre
33index 5f77a32..70ae3d9 100644 42index 6edb8a1..b2a7385 100644
34--- a/src/bin/keactrl/kea-dhcp4.conf.pre 43--- a/src/bin/keactrl/kea-dhcp4.conf.pre
35+++ b/src/bin/keactrl/kea-dhcp4.conf.pre 44+++ b/src/bin/keactrl/kea-dhcp4.conf.pre
36@@ -252,7 +252,8 @@ 45@@ -255,7 +255,7 @@
37 // // of all devices serviced by Kea, including their identifiers 46 // // of all devices serviced by Kea, including their identifiers
38 // // (like MAC address), their location in the network, times 47 // // (like MAC address), their location in the network, times
39 // // when they were active etc. 48 // // when they were active etc.
40- // "library": "@libdir@/kea/hooks/libdhcp_legal_log.so" 49- // "library": "@libdir@/kea/hooks/libdhcp_legal_log.so",
41+ // // Replace $libdir with real library path /usr/lib or /usr/lib64 50+ // "library": "$libdir/kea/hooks/libdhcp_legal_log.so",
42+ // "library": "$libdir/kea/hooks/libdhcp_legal_log.so" 51 // "parameters": {
43 // "parameters": { 52 // "path": "/var/lib/kea",
44 // "path": "/var/lib/kea", 53 // "base-name": "kea-forensic4"
45 // "base-name": "kea-forensic4" 54@@ -272,7 +272,7 @@
46@@ -269,7 +270,8 @@ 55 // // of specific options or perhaps even a combination of several
47 // // of specific options or perhaps even a combination of several 56 // // options and fields to uniquely identify a client. Those scenarios
48 // // options and fields to uniquely identify a client. Those scenarios 57 // // are addressed by the Flexible Identifiers hook application.
49 // // are addressed by the Flexible Identifiers hook application. 58- // "library": "@libdir@/kea/hooks/libdhcp_flex_id.so",
50- // "library": "@libdir@/kea/hooks/libdhcp_flex_id.so", 59+ // "library": "$libdir/kea/hooks/libdhcp_flex_id.so",
51+ // // Replace $libdir with real library path /usr/lib or /usr/lib64 60 // "parameters": {
52+ // "library": "$libdir/kea/hooks/libdhcp_flex_id.so", 61 // "identifier-expression": "relay4[2].hex"
53 // "parameters": { 62 // }
54 // "identifier-expression": "substring(relay6[0].option[18],0,8)" 63diff --git a/src/bin/keactrl/kea-dhcp6.conf.pre b/src/bin/keactrl/kea-dhcp6.conf.pre
55 // } 64index 271021b..5b85854 100644
65--- a/src/bin/keactrl/kea-dhcp6.conf.pre
66+++ b/src/bin/keactrl/kea-dhcp6.conf.pre
67@@ -201,7 +201,7 @@
68 // // of all devices serviced by Kea, including their identifiers
69 // // (like MAC address), their location in the network, times
70 // // when they were active etc.
71- // "library": "@libdir@/kea/hooks/libdhcp_legal_log.so",
72+ // "library": "$libdir/kea/hooks/libdhcp_legal_log.so",
73 // "parameters": {
74 // "path": "/var/lib/kea",
75 // "base-name": "kea-forensic6"
76@@ -218,7 +218,7 @@
77 // // of specific options or perhaps even a combination of several
78 // // options and fields to uniquely identify a client. Those scenarios
79 // // are addressed by the Flexible Identifiers hook application.
80- // "library": "@libdir@/kea/hooks/libdhcp_flex_id.so",
81+ // "library": "$libdir/kea/hooks/libdhcp_flex_id.so",
82 // "parameters": {
83 // "identifier-expression": "relay6[0].option[37].hex"
84 // }
diff --git a/meta/recipes-connectivity/kea/files/fix_pid_keactrl.patch b/meta/recipes-connectivity/kea/files/fix_pid_keactrl.patch
index eeeb89942b..2f5a217d3f 100644
--- a/meta/recipes-connectivity/kea/files/fix_pid_keactrl.patch
+++ b/meta/recipes-connectivity/kea/files/fix_pid_keactrl.patch
@@ -1,22 +1,35 @@
1Busybox does not support ps -p so use pgrep 1From f5125725e4e2e250ccc78a17a8b77431100e7c15 Mon Sep 17 00:00:00 2001
2From: Armin kuster <akuster808@gmail.com>
3Date: Wed, 14 Oct 2020 22:48:31 -0700
4Subject: [PATCH] Busybox does not support ps -p so use pgrep
2 5
3Upstream-Status: Inappropriate [embedded specific] 6Upstream-Status: Inappropriate [embedded specific]
4Based on changes from Diego Sueiro <Diego.Sueiro@arm.com> 7Based on changes from Diego Sueiro <Diego.Sueiro@arm.com>
5 8
6Signed-off-by: Armin kuster <akuster808@gmail.com> 9Signed-off-by: Armin kuster <akuster808@gmail.com>
7 10
8Index: kea-1.7.10/src/bin/keactrl/keactrl.in 11Refresh to apply on top of 2.6.1.
9=================================================================== 12
10--- kea-1.7.10.orig/src/bin/keactrl/keactrl.in 13Signed-off-by: Trevor Gamblin <tgamblin@baylibre.com>
11+++ kea-1.7.10/src/bin/keactrl/keactrl.in 14---
12@@ -137,8 +137,8 @@ check_running() { 15 src/bin/keactrl/keactrl.in | 4 ++--
16 1 file changed, 2 insertions(+), 2 deletions(-)
17
18diff --git a/src/bin/keactrl/keactrl.in b/src/bin/keactrl/keactrl.in
19index cccfdac303..20ae2e6ec5 100644
20--- a/src/bin/keactrl/keactrl.in
21+++ b/src/bin/keactrl/keactrl.in
22@@ -146,8 +146,8 @@ check_running() {
13 # Get the PID from the PID file (if it exists) 23 # Get the PID from the PID file (if it exists)
14 get_pid_from_file "${proc_name}" 24 get_pid_from_file "${proc_name}"
15 if [ ${_pid} -gt 0 ]; then 25 if [ ${_pid} -gt 0 ]; then
16- # Use ps to check if PID is alive 26- # Use ps to check if PID is alive
17- ps -p ${_pid} 1>/dev/null 27- if ps -p ${_pid} 1>/dev/null; then
18+ # Use pgrep and grep to check if PID is alive 28+ # Use pgrep and grep to check if PID is alive
19+ pgrep -v 1 | grep ${_pid} 1>/dev/null 29+ if pgrep -v 1 | grep ${_pid} 1>/dev/null; then
20 retcode=$?
21 if [ $retcode -eq 0 ]; then
22 # No error, so PID IS ALIVE 30 # No error, so PID IS ALIVE
31 _running=1
32 fi
33--
342.39.2
35
diff --git a/meta/recipes-connectivity/kea/files/kea-dhcp-ddns.service b/meta/recipes-connectivity/kea/files/kea-dhcp-ddns.service
index 91aa2eb14f..f6059d73cb 100644
--- a/meta/recipes-connectivity/kea/files/kea-dhcp-ddns.service
+++ b/meta/recipes-connectivity/kea/files/kea-dhcp-ddns.service
@@ -6,7 +6,6 @@ After=time-sync.target
6 6
7[Service] 7[Service]
8ExecStartPre=@BASE_BINDIR@/mkdir -p @LOCALSTATEDIR@/run/kea/ 8ExecStartPre=@BASE_BINDIR@/mkdir -p @LOCALSTATEDIR@/run/kea/
9ExecStartPre=@BASE_BINDIR@/mkdir -p @LOCALSTATEDIR@/kea
10ExecStart=@SBINDIR@/kea-dhcp-ddns -c @SYSCONFDIR@/kea/kea-dhcp-ddns.conf 9ExecStart=@SBINDIR@/kea-dhcp-ddns -c @SYSCONFDIR@/kea/kea-dhcp-ddns.conf
11 10
12[Install] 11[Install]