During the compile step, CMake will attempt to generate a test
certificate with openssl-native using a hard-coded path to the openssl
config:

        openssl req -config /etc/ssl/openssl.cnf ...

Thus using the build host's openssl config. If the build host's openssl
is configured with options that openssl-native does not understand or
accept, the test certificate will not be generated:

[log.do_configure on openSUSE 16.0]
        Searching for OpenSSL executable and dlls
        OpenSSL executable: 
.../build/tmp/work/cortexa53-crypto-oe-linux/libwebsockets/4.5.2/recipe-sysroot-native/usr/bin/openssl
         GENCERTS = 1
        Generating SSL Certificates for the test-server...
        Error configuring OpenSSL modules
        4037413D467F0000:error:030000A9:digital envelope 
routines:alg_module_init:unknown 
option:../sources/openssl-3.5.4/crypto/evp/evp_cnf.c:61:name=rh-allow-sha1-signatures,
 value=yes
        4037413D467F0000:error:0700006D:configuration file 
routines:module_run:module initialization 
error:../sources/openssl-3.5.4/crypto/conf/conf_mod.c:288:module=alg_section, 
value=evp_properties retcode=-1
        CMake Warning at lib/tls/CMakeLists.txt:528 (message):
          !!! Failed to generate SSL certificate for Test Server!!!:

          OpenSSL return code = 1

and the subsequent do_install() step will fail:

        | CMake Error at test-apps/cmake_install.cmake:126 (file):
        |   file INSTALL cannot find
        |   
".../build/tmp/work/cortexa53-crypto-oe-linux/libwebsockets/4.5.2/build/libwebsockets-test-server.key.pem":
        |   No such file or directory.

        ERROR: Task 
(.../layers/meta-openembedded/meta-oe/recipes-connectivity/libwebsockets/libwebsockets_4.5.2.bb:do_install)
 failed with exit code '1'

Fix the location where CMake looks for the openssl.cnf file in order
to use the one that comes with the openssl-native that will be used to
generate the certificate. Thus ensuring that they are in step in terms
of which configuration options will be acceptable.

Signed-off-by: Trevor Woerner <[email protected]>
---
 .../recipes-connectivity/libwebsockets/libwebsockets_4.5.2.bb | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/meta-oe/recipes-connectivity/libwebsockets/libwebsockets_4.5.2.bb 
b/meta-oe/recipes-connectivity/libwebsockets/libwebsockets_4.5.2.bb
index 19ac6be8eb41..35545aacee95 100644
--- a/meta-oe/recipes-connectivity/libwebsockets/libwebsockets_4.5.2.bb
+++ b/meta-oe/recipes-connectivity/libwebsockets/libwebsockets_4.5.2.bb
@@ -36,6 +36,10 @@ EXTRA_OECMAKE += " \
     -DLIB_SUFFIX=${@d.getVar('baselib').replace('lib', '')} \
 "
 
+do_compile:prepend() {
+    sed -i -e 's|/etc/ssl|${RECIPE_SYSROOT_NATIVE}/etc/ssl|g' 
${S}/lib/tls/CMakeLists.txt
+}
+
 do_install:append() {
     sed -i -e 's|${STAGING_LIBDIR}/libcrypto.so|crypto|g' 
${D}${libdir}/cmake/libwebsockets/LibwebsocketsTargets.cmake
     sed -i -e 's|${STAGING_LIBDIR}/libssl.so|ssl|g' 
${D}${libdir}/cmake/libwebsockets/LibwebsocketsTargets.cmake
-- 
2.51.0

-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#123089): 
https://lists.openembedded.org/g/openembedded-devel/message/123089
Mute This Topic: https://lists.openembedded.org/mt/117038297/21656
Group Owner: [email protected]
Unsubscribe: https://lists.openembedded.org/g/openembedded-devel/unsub 
[[email protected]]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to