diff options
3 files changed, 82 insertions, 6 deletions
diff --git a/meta-oe/recipes-extended/openwsman/openwsman/0001-Fix-to-build-with-GCC-15.patch b/meta-oe/recipes-extended/openwsman/openwsman/0001-Fix-to-build-with-GCC-15.patch new file mode 100644 index 0000000000..32e055c300 --- /dev/null +++ b/meta-oe/recipes-extended/openwsman/openwsman/0001-Fix-to-build-with-GCC-15.patch | |||
@@ -0,0 +1,25 @@ | |||
1 | From f1b4ef78719146d84f16e86bf77de027e608eb17 Mon Sep 17 00:00:00 2001 | ||
2 | From: Vitezslav Crhonek <vcrhonek@redhat.com> | ||
3 | Date: Mon, 3 Feb 2025 11:30:15 +0100 | ||
4 | Subject: [PATCH] Fix to build with GCC 15. | ||
5 | |||
6 | Upstream-Status: Backport [https://github.com/Openwsman/openwsman/pull/209] | ||
7 | Signed-off-by: Vitezslav Crhonek <vcrhonek@redhat.com> | ||
8 | Signed-off-by: Khem Raj <raj.khem@gmail.com> | ||
9 | --- | ||
10 | src/plugins/swig/src/target_ruby.c | 2 +- | ||
11 | 1 file changed, 1 insertion(+), 1 deletion(-) | ||
12 | |||
13 | diff --git a/src/plugins/swig/src/target_ruby.c b/src/plugins/swig/src/target_ruby.c | ||
14 | index bbce398..e17bb44 100644 | ||
15 | --- a/src/plugins/swig/src/target_ruby.c | ||
16 | +++ b/src/plugins/swig/src/target_ruby.c | ||
17 | @@ -49,7 +49,7 @@ | ||
18 | */ | ||
19 | |||
20 | static VALUE | ||
21 | -load_module() | ||
22 | +load_module(VALUE) | ||
23 | { | ||
24 | ruby_script(PLUGIN_FILE); | ||
25 | return rb_require(PLUGIN_FILE); | ||
diff --git a/meta-oe/recipes-extended/openwsman/openwsman/0001-cmake-Avoid-using-absolute-paths-in-dlopen.patch b/meta-oe/recipes-extended/openwsman/openwsman/0001-cmake-Avoid-using-absolute-paths-in-dlopen.patch new file mode 100644 index 0000000000..a9e98ef392 --- /dev/null +++ b/meta-oe/recipes-extended/openwsman/openwsman/0001-cmake-Avoid-using-absolute-paths-in-dlopen.patch | |||
@@ -0,0 +1,54 @@ | |||
1 | From 03d3f19c00f959bb77464dfa90bcb197eb71b27a Mon Sep 17 00:00:00 2001 | ||
2 | From: Khem Raj <raj.khem@gmail.com> | ||
3 | Date: Fri, 25 Jul 2025 20:41:05 -0700 | ||
4 | Subject: [PATCH] cmake: Avoid using absolute paths in dlopen() | ||
5 | |||
6 | This encodes absolutes paths currently, via LIB_SSL | ||
7 | which is detected in cmake and then passed to compiler | ||
8 | via a define in src/server/CMakeLists.txt#L19 | ||
9 | |||
10 | ADD_DEFINITIONS(-DSSL_LIB="${SSL_LIB}") | ||
11 | |||
12 | This define is then used by a dlopen() call in | ||
13 | src/server/shttpd/shttpd.c#L1514 | ||
14 | |||
15 | if ((lib = dlopen(SSL_LIB, RTLD_LAZY)) == NULL) { | ||
16 | |||
17 | This ends up emitting absolute path into openwsmand | ||
18 | binary | ||
19 | |||
20 | It breaks reproducible builds, especially in cross-build | ||
21 | e.g. yocto, where build time install dir will never be same as | ||
22 | runtime install dir, this absolute path will be | ||
23 | non-existent on targets and this call will fail. | ||
24 | |||
25 | Removing path element and leaving libssl.so which will/can be | ||
26 | in /usr/lib on targets | ||
27 | |||
28 | This approach makes your binary more portable | ||
29 | since it doesn't hardcode absolute paths. | ||
30 | |||
31 | Upstream-Status: Submitted [https://github.com/Openwsman/openwsman/pull/213] | ||
32 | Signed-off-by: Khem Raj <raj.khem@gmail.com> | ||
33 | --- | ||
34 | src/server/CMakeLists.txt | 7 ++++++- | ||
35 | 1 file changed, 6 insertions(+), 1 deletion(-) | ||
36 | |||
37 | diff --git a/src/server/CMakeLists.txt b/src/server/CMakeLists.txt | ||
38 | index 79702787..39568504 100644 | ||
39 | --- a/src/server/CMakeLists.txt | ||
40 | +++ b/src/server/CMakeLists.txt | ||
41 | @@ -16,7 +16,12 @@ SET(openwsmand_SOURCES ${openwsmand_SOURCES} gss.c wsmand.c) | ||
42 | IF(USE_OPENSSL) | ||
43 | SET(SSL_LIB ${OPENSSL_SSL_LIBRARY}) | ||
44 | MESSAGE(STATUS "SSL_LIB is at >${SSL_LIB}<") | ||
45 | -ADD_DEFINITIONS(-DSSL_LIB="${SSL_LIB}") | ||
46 | + | ||
47 | +# Extract just the filename from the full path | ||
48 | +get_filename_component(SSL_LIB_NAME ${SSL_LIB} NAME) | ||
49 | +MESSAGE(STATUS "SSL_LIB filename is >${SSL_LIB_NAME}<") | ||
50 | + | ||
51 | +ADD_DEFINITIONS(-DSSL_LIB="${SSL_LIB_NAME}") | ||
52 | ENDIF(USE_OPENSSL) | ||
53 | |||
54 | ADD_DEFINITIONS(-DDELIM_CHARS=", " ) | ||
diff --git a/meta-oe/recipes-extended/openwsman/openwsman_2.8.1.bb b/meta-oe/recipes-extended/openwsman/openwsman_2.8.1.bb index 5abe06d07b..9078f571e6 100644 --- a/meta-oe/recipes-extended/openwsman/openwsman_2.8.1.bb +++ b/meta-oe/recipes-extended/openwsman/openwsman_2.8.1.bb | |||
@@ -20,6 +20,8 @@ SRCREV = "20efbccaf804a5a27a914eb8802b806416c03ece" | |||
20 | SRC_URI = "git://github.com/Openwsman/openwsman.git;branch=main;protocol=https;tag=v${PV} \ | 20 | SRC_URI = "git://github.com/Openwsman/openwsman.git;branch=main;protocol=https;tag=v${PV} \ |
21 | file://openwsmand.service \ | 21 | file://openwsmand.service \ |
22 | file://0001-lock.c-Define-PTHREAD_MUTEX_RECURSIVE_NP-if-undefine.patch \ | 22 | file://0001-lock.c-Define-PTHREAD_MUTEX_RECURSIVE_NP-if-undefine.patch \ |
23 | file://0001-Fix-to-build-with-GCC-15.patch \ | ||
24 | file://0001-cmake-Avoid-using-absolute-paths-in-dlopen.patch \ | ||
23 | " | 25 | " |
24 | 26 | ||
25 | LICENSE = "BSD-3-Clause" | 27 | LICENSE = "BSD-3-Clause" |
@@ -29,21 +31,16 @@ inherit systemd cmake pkgconfig python3native perlnative | |||
29 | 31 | ||
30 | SYSTEMD_SERVICE:${PN} = "openwsmand.service" | 32 | SYSTEMD_SERVICE:${PN} = "openwsmand.service" |
31 | SYSTEMD_AUTO_ENABLE = "disable" | 33 | SYSTEMD_AUTO_ENABLE = "disable" |
32 | |||
33 | EXTRA_OECMAKE = "-DBUILD_BINDINGS=NO \ | 34 | EXTRA_OECMAKE = "-DBUILD_BINDINGS=NO \ |
34 | -DBUILD_LIBCIM=NO \ | 35 | -DBUILD_LIBCIM=NO \ |
35 | -DBUILD_PERL=YES \ | 36 | -DBUILD_PERL=YES \ |
36 | -DBUILD_PYTHON3=YES \ | 37 | -DBUILD_PYTHON3=YES \ |
37 | -DBUILD_PYTHON=NO \ | 38 | -DBUILD_PYTHON=NO \ |
38 | -DCMAKE_INSTALL_PREFIX=${prefix} \ | 39 | -DCMAKE_INSTALL_PREFIX=${prefix} \ |
40 | -DPACKAGE_ARCHITECTURE='${HOST_ARCH}' \ | ||
39 | -DLIB=${baselib} \ | 41 | -DLIB=${baselib} \ |
40 | " | 42 | " |
41 | 43 | ||
42 | do_configure:prepend() { | ||
43 | export STAGING_INCDIR=${STAGING_INCDIR} | ||
44 | export STAGING_LIBDIR=${STAGING_LIBDIR} | ||
45 | } | ||
46 | |||
47 | do_install:append() { | 44 | do_install:append() { |
48 | install -d ${D}/${sysconfdir}/init.d | 45 | install -d ${D}/${sysconfdir}/init.d |
49 | install -m 755 ${B}/etc/init/openwsmand.sh ${D}/${sysconfdir}/init.d/openwsmand | 46 | install -m 755 ${B}/etc/init/openwsmand.sh ${D}/${sysconfdir}/init.d/openwsmand |