> -----Original Message-----
> From: Yoann Congal <[email protected]>
> Sent: Tuesday, March 3, 2026 16:38
> To: Marko, Peter (FT D EU SK BFS1) <[email protected]>;
> [email protected]
> Subject: Re: [OE-core][scarthgap][RFC PATCH 1/1] openssl: upgrade 3.2.6 ->
> 3.5.4
>
> On Fri Jan 23, 2026 at 1:33 PM CET, Peter Marko via lists.openembedded.org
> wrote:
> > From: Peter Marko <[email protected]>
> >
> > Openssl 3.2 has reached EOL.
> > Some projects would like to use LTS version due to criticality and
> > exposure of this component, so upgrade to 3.5 branch.
> >
> > Copy recipe from current master and add UNPACKDIR definition at end of
> > it as this variable does not exist in scarthgap yet.
> >
> > Dislaimers:
> > * this is a testing branch not intended to be merged in current form
> > * running builds implementing following Yocto AB testsuites showed only
> > intermittent failures of python ptest, otherwise the builds were ok:
> > * qemuarm64
> > * qemuarm64-alt
> > * qemuarm64-ptest
> > * qemuarm64-ptest-fast
> > * qemuppc
> > * qemuppc-tc
> > * qemux64-world
> > * qemux64-world-alt
> >
> > Signed-off-by: Peter Marko <[email protected]>
> > ---
> > .../openssl/files/environment.d-openssl.sh | 9 ++-
> > ...ke-history-reporting-when-test-fails.patch | 19 +++--
> > ...1-Configure-do-not-tweak-mips-cflags.patch | 4 +-
> > ...sysroot-and-debug-prefix-map-from-co.patch | 26 ++++---
> > .../0001-extend-check_cwm-test-timeout.patch | 32 ++++++++
> > .../openssl/openssl/CVE-2024-41996.patch | 44 -----------
> > .../{openssl_3.2.6.bb => openssl_3.5.4.bb} | 76 +++++++++++++------
> > 7 files changed, 116 insertions(+), 94 deletions(-)
> > create mode 100644 meta/recipes-connectivity/openssl/openssl/0001-extend-
> check_cwm-test-timeout.patch
> > delete mode 100644 meta/recipes-connectivity/openssl/openssl/CVE-2024-
> 41996.patch
> > rename meta/recipes-connectivity/openssl/{openssl_3.2.6.bb =>
> openssl_3.5.4.bb} (75%)
>
> The TSC has approved merging this 3.5 Openssl upgrade to scarthgap :)
>
> Can you send an updated non-RFC patch?
Great news!
I'll send a new patch in the evening.
It will be now 3.5.5.
Peter
>
> Thanks!
>
> > diff --git
> > a/meta/recipes-connectivity/openssl/files/environment.d-openssl.sh
> b/meta/recipes-connectivity/openssl/files/environment.d-openssl.sh
> > index d72edcb5ed..77747c1fda 100644
> > --- a/meta/recipes-connectivity/openssl/files/environment.d-openssl.sh
> > +++ b/meta/recipes-connectivity/openssl/files/environment.d-openssl.sh
> > @@ -1,14 +1,15 @@
> > -export
> OPENSSL_CONF="$OECORE_NATIVE_SYSROOT/usr/lib/ssl/openssl.cnf"
> > +export OPENSSL_CONF="$OECORE_NATIVE_SYSROOT/usr/lib/ssl-
> 3/openssl.cnf"
> > export OPENSSL_MODULES="$OECORE_NATIVE_SYSROOT/usr/lib/ossl-
> modules/"
> > export OPENSSL_ENGINES="$OECORE_NATIVE_SYSROOT/usr/lib/engines-3"
> > +export
> BB_ENV_PASSTHROUGH_ADDITIONS="${BB_ENV_PASSTHROUGH_ADDITION
> S:-} OPENSSL_CONF OPENSSL_MODULES OPENSSL_ENGINES"
> >
> > # Respect host env SSL_CERT_FILE/SSL_CERT_DIR first, then auto-detected
> host cert, then cert in buildtools
> > -# CAFILE/CAPATH is auto-deteced when source buildtools
> > +# CAFILE/CAPATH is auto-detected when source buildtools
> > if [ -z "${SSL_CERT_FILE:-}" ]; then
> > if [ -n "${CAFILE:-}" ];then
> > export SSL_CERT_FILE="$CAFILE"
> > elif [ -e "${OECORE_NATIVE_SYSROOT}/etc/ssl/certs/ca-certificates.crt"
> ];then
> > - export
> SSL_CERT_FILE="$OECORE_NATIVE_SYSROOT/usr/lib/ssl/certs/ca-
> certificates.crt"
> > + export
> SSL_CERT_FILE="$OECORE_NATIVE_SYSROOT/usr/lib/ssl-3/certs/ca-
> certificates.crt"
> > fi
> > fi
> >
> > @@ -16,7 +17,7 @@ if [ -z "${SSL_CERT_DIR:-}" ]; then
> > if [ -n "${CAPATH:-}" ];then
> > export SSL_CERT_DIR="$CAPATH"
> > elif [ -e "${OECORE_NATIVE_SYSROOT}/etc/ssl/certs/ca-certificates.crt"
> ];then
> > - export
> SSL_CERT_DIR="$OECORE_NATIVE_SYSROOT/usr/lib/ssl/certs"
> > + export
> SSL_CERT_DIR="$OECORE_NATIVE_SYSROOT/usr/lib/ssl-3/certs"
> > fi
> > fi
> >
> > diff --git a/meta/recipes-connectivity/openssl/openssl/0001-Added-handshake-
> history-reporting-when-test-fails.patch b/meta/recipes-
> connectivity/openssl/openssl/0001-Added-handshake-history-reporting-when-test-
> fails.patch
> > index b05d7abf7c..5b7365a353 100644
> > ---
> > a/meta/recipes-connectivity/openssl/openssl/0001-Added-handshake-history-
> reporting-when-test-fails.patch
> > +++ b/meta/recipes-connectivity/openssl/openssl/0001-Added-handshake-
> history-reporting-when-test-fails.patch
> > @@ -6,7 +6,6 @@ Subject: [PATCH] Added handshake history reporting when
> test fails
> > Upstream-Status: Submitted [https://github.com/openssl/openssl/pull/22481]
> >
> > Signed-off-by: William Lyu <[email protected]>
> > -Signed-off-by: Siddharth Doshi <[email protected]>
> > ---
> > test/helpers/handshake.c | 137 +++++++++++++++++++++++++++++----------
> > test/helpers/handshake.h | 70 +++++++++++++++++++-
> > @@ -14,10 +13,10 @@ Signed-off-by: Siddharth Doshi <[email protected]>
> > 3 files changed, 217 insertions(+), 34 deletions(-)
> >
> > diff --git a/test/helpers/handshake.c b/test/helpers/handshake.c
> > -index e0422469e4..ae2ad59dd4 100644
> > +index f611b3a..5703b48 100644
> > --- a/test/helpers/handshake.c
> > +++ b/test/helpers/handshake.c
> > -@@ -24,6 +24,102 @@
> > +@@ -25,6 +25,102 @@
> > #include <netinet/sctp.h>
> > #endif
> >
> > @@ -120,7 +119,7 @@ index e0422469e4..ae2ad59dd4 100644
> > HANDSHAKE_RESULT *HANDSHAKE_RESULT_new(void)
> > {
> > HANDSHAKE_RESULT *ret;
> > -@@ -725,15 +821,6 @@ static void configure_handshake_ssl(SSL *server, SSL
> *client,
> > +@@ -726,15 +822,6 @@ static void configure_handshake_ssl(SSL *server,
> SSL *client,
> > SSL_set_post_handshake_auth(client, 1);
> > }
> >
> > @@ -136,7 +135,7 @@ index e0422469e4..ae2ad59dd4 100644
> > /* An SSL object and associated read-write buffers. */
> > typedef struct peer_st {
> > SSL *ssl;
> > -@@ -1080,17 +1167,6 @@ static void do_shutdown_step(PEER *peer)
> > +@@ -1081,17 +1168,6 @@ static void do_shutdown_step(PEER *peer)
> > }
> > }
> >
> > @@ -154,7 +153,7 @@ index e0422469e4..ae2ad59dd4 100644
> > static int renegotiate_op(const SSL_TEST_CTX *test_ctx)
> > {
> > switch (test_ctx->handshake_mode) {
> > -@@ -1168,19 +1244,6 @@ static void do_connect_step(const SSL_TEST_CTX
> *test_ctx, PEER *peer,
> > +@@ -1169,19 +1245,6 @@ static void do_connect_step(const SSL_TEST_CTX
> *test_ctx, PEER *peer,
> > }
> > }
> >
> > @@ -174,7 +173,7 @@ index e0422469e4..ae2ad59dd4 100644
> > /*
> > * Determine the handshake outcome.
> > * last_status: the status of the peer to have acted last.
> > -@@ -1545,6 +1608,10 @@ static HANDSHAKE_RESULT
> *do_handshake_internal(
> > +@@ -1546,6 +1609,10 @@ static HANDSHAKE_RESULT
> *do_handshake_internal(
> >
> > start = time(NULL);
> >
> > @@ -185,7 +184,7 @@ index e0422469e4..ae2ad59dd4 100644
> > /*
> > * Half-duplex handshake loop.
> > * Client and server speak to each other synchronously in the same
> > process.
> > -@@ -1566,6 +1633,10 @@ static HANDSHAKE_RESULT
> *do_handshake_internal(
> > +@@ -1567,6 +1634,10 @@ static HANDSHAKE_RESULT
> *do_handshake_internal(
> > 0 /* server went last */);
> > }
> >
> > @@ -197,7 +196,7 @@ index e0422469e4..ae2ad59dd4 100644
> > case HANDSHAKE_SUCCESS:
> > client_turn_count = 0;
> > diff --git a/test/helpers/handshake.h b/test/helpers/handshake.h
> > -index 78b03f9f4b..b9967c2623 100644
> > +index 78b03f9..b9967c2 100644
> > --- a/test/helpers/handshake.h
> > +++ b/test/helpers/handshake.h
> > @@ -1,5 +1,5 @@
> > @@ -302,7 +301,7 @@ index 78b03f9f4b..b9967c2623 100644
> > +
> > #endif /* OSSL_TEST_HANDSHAKE_HELPER_H */
> > diff --git a/test/ssl_test.c b/test/ssl_test.c
> > -index ea608518f9..9d6b093c81 100644
> > +index ea60851..9d6b093 100644
> > --- a/test/ssl_test.c
> > +++ b/test/ssl_test.c
> > @@ -26,6 +26,44 @@ static OSSL_LIB_CTX *libctx = NULL;
> > diff --git
> > a/meta/recipes-connectivity/openssl/openssl/0001-Configure-do-not-
> tweak-mips-cflags.patch b/meta/recipes-connectivity/openssl/openssl/0001-
> Configure-do-not-tweak-mips-cflags.patch
> > index 3f6ab97795..cf5ff356ee 100644
> > --- a/meta/recipes-connectivity/openssl/openssl/0001-Configure-do-not-tweak-
> mips-cflags.patch
> > +++ b/meta/recipes-connectivity/openssl/openssl/0001-Configure-do-not-tweak-
> mips-cflags.patch
> > @@ -17,10 +17,10 @@ Signed-off-by: Tim Orling <[email protected]>
> > 1 file changed, 10 deletions(-)
> >
> > diff --git a/Configure b/Configure
> > -index 4569952..adf019b 100755
> > +index fff97bd..5ee54c1 100755
> > --- a/Configure
> > +++ b/Configure
> > -@@ -1485,16 +1485,6 @@ if ($target =~ /^mingw/ && `$config{CC}
> > --target-help
> 2>&1` =~ m/-mno-cygwin/m)
> > +@@ -1552,16 +1552,6 @@ if ($target =~ /^mingw/ && `$config{CC} --target-
> help 2>&1` =~ m/-mno-cygwin/m)
> > push @{$config{shared_ldflag}}, "-mno-cygwin";
> > }
> >
> > diff --git a/meta/recipes-connectivity/openssl/openssl/0001-buildinfo-strip-
> sysroot-and-debug-prefix-map-from-co.patch b/meta/recipes-
> connectivity/openssl/openssl/0001-buildinfo-strip-sysroot-and-debug-prefix-map-
> from-co.patch
> > index ce2acb2462..dadc034c91 100644
> > ---
> > a/meta/recipes-connectivity/openssl/openssl/0001-buildinfo-strip-sysroot-and-
> debug-prefix-map-from-co.patch
> > +++
> > b/meta/recipes-connectivity/openssl/openssl/0001-buildinfo-strip-sysroot-
> and-debug-prefix-map-from-co.patch
> > @@ -30,23 +30,26 @@ Update to fix buildpaths qa issue for
> > '-ffile-prefix-map'.
> > Signed-off-by: Khem Raj <[email protected]>
> >
> > ---
> > - Configurations/unix-Makefile.tmpl | 12 +++++++++++-
> > + Configurations/unix-Makefile.tmpl | 16 +++++++++++++++-
> > crypto/build.info | 2 +-
> > - 2 files changed, 12 insertions(+), 2 deletions(-)
> > + 2 files changed, 16 insertions(+), 2 deletions(-)
> >
> > -Index: openssl-3.0.4/Configurations/unix-Makefile.tmpl
> > -
> =============================================================
> ======
> > ---- openssl-3.0.4.orig/Configurations/unix-Makefile.tmpl
> > -+++ openssl-3.0.4/Configurations/unix-Makefile.tmpl
> > -@@ -481,13 +481,23 @@ BIN_LDFLAGS={- join(' ', $target{bin_lflags} || (),
> > +diff --git a/Configurations/unix-Makefile.tmpl b/Configurations/unix-
> Makefile.tmpl
> > +index 09303c4..011bda1 100644
> > +--- a/Configurations/unix-Makefile.tmpl
> > ++++ b/Configurations/unix-Makefile.tmpl
> > +@@ -513,13 +513,27 @@ BIN_LDFLAGS={- join(' ', $target{bin_lflags} || (),
> > '$(CNF_LDFLAGS)', '$(LDFLAGS)') -}
> > BIN_EX_LIBS=$(CNF_EX_LIBS) $(EX_LIBS)
> >
> > -# CPPFLAGS_Q is used for one thing only: to build up buildinf.h
> > +# *_Q variables are used for one thing only: to build up buildinf.h
> > CPPFLAGS_Q={- $cppflags1 =~ s|([\\"])|\\$1|g;
> > ++ $cppflags1 =~ s|-isystem/[^ ]+/usr/include||g;
> > $cppflags2 =~ s|([\\"])|\\$1|g;
> > ++ $cppflags2 =~ s|-isystem/[^ ]+/usr/include||g;
> > $lib_cppflags =~ s|([\\"])|\\$1|g;
> > ++ $lib_cppflags =~ s|-isystem/[^ ]+/usr/include||g;
> > join(' ', $lib_cppflags || (), $cppflags2 || (),
> > $cppflags1 || ()) -}
> >
> > @@ -54,6 +57,7 @@ Index: openssl-3.0.4/Configurations/unix-Makefile.tmpl
> > + s|-fdebug-prefix-map=[^ ]+|-fdebug-prefix-map=|g;
> > + s|-fmacro-prefix-map=[^ ]+|-fmacro-prefix-map=|g;
> > + s|-ffile-prefix-map=[^ ]+|-ffile-prefix-map=|g;
> > ++ s|-isystem/[^ ]+/usr/include ||g;
> > + }
> > + join(' ', @{$config{CFLAGS}}) -}
> > +
> > @@ -63,10 +67,10 @@ Index: openssl-3.0.4/Configurations/unix-Makefile.tmpl
> > PERLASM_SCHEME= {- $target{perlasm_scheme} -}
> >
> > # For x86 assembler: Set PROCESSOR to 386 if you want to support
> > -Index: openssl-3.0.4/crypto/build.info
> > -
> =============================================================
> ======
> > ---- openssl-3.0.4.orig/crypto/build.info
> > -+++ openssl-3.0.4/crypto/build.info
> > +diff --git a/crypto/build.info b/crypto/build.info
> > +index aee5c46..95c9577 100644
> > +--- a/crypto/build.info
> > ++++ b/crypto/build.info
> > @@ -115,7 +115,7 @@ DEFINE[../libcrypto]=$UPLINKDEF
> >
> > DEPEND[info.o]=buildinf.h
> > diff --git
> > a/meta/recipes-connectivity/openssl/openssl/0001-extend-check_cwm-
> test-timeout.patch b/meta/recipes-connectivity/openssl/openssl/0001-extend-
> check_cwm-test-timeout.patch
> > new file mode 100644
> > index 0000000000..d02d42f1b5
> > --- /dev/null
> > +++ b/meta/recipes-connectivity/openssl/openssl/0001-extend-check_cwm-test-
> timeout.patch
> > @@ -0,0 +1,32 @@
> > +From c7000672296f4c367341aa3415f26c4d9f5e4749 Mon Sep 17 00:00:00 2001
> > +From: Gyorgy Sarvari <[email protected]>
> > +Date: Thu, 23 Oct 2025 11:24:36 +0200
> > +Subject: [PATCH] extend check_cwm test timeout
> > +
> > +The default, 3s long test timeout isn't always enough for this
> > +particular test in case there is a high load on the host machine
> > +(assuming it is running in qemu). Extend the default timeout to 6s
> > +for the check_cwm test to avoid timeouts.
> > +
> > +Upstream-Status: Inappropriate [upstream issue:
> https://github.com/openssl/openssl/issues/28983]
> > +Signed-off-by: Gyorgy Sarvari <[email protected]>
> > +---
> > + test/radix/main.c | 5 +++++
> > + 1 file changed, 5 insertions(+)
> > +
> > +diff --git a/test/radix/main.c b/test/radix/main.c
> > +index 4a1e886a71..39f8c61ef9 100644
> > +--- a/test/radix/main.c
> > ++++ b/test/radix/main.c
> > +@@ -25,6 +25,11 @@ static int test_script(int idx)
> > + int testresult;
> > + TERP_CONFIG cfg = {0};
> > +
> > ++ // check_cwm test sometimes times out, the default 3000ms is
> > ++ // not enough if the test execution starves for CPU
> > ++ if (!strncmp("check_cwm", script_info->name, strlen("check_cwm")))
> > ++ cfg.max_execution_time = ossl_ms2time(6000);
> > ++
> > + if (!TEST_true(bindings_process_init(0, 0)))
> > + return 0;
> > +
> > diff --git a/meta/recipes-connectivity/openssl/openssl/CVE-2024-41996.patch
> b/meta/recipes-connectivity/openssl/openssl/CVE-2024-41996.patch
> > deleted file mode 100644
> > index dc18e0bef1..0000000000
> > --- a/meta/recipes-connectivity/openssl/openssl/CVE-2024-41996.patch
> > +++ /dev/null
> > @@ -1,44 +0,0 @@
> > -From e70e34d857d4003199bcb5d3b52ca8102ccc1b98 Mon Sep 17 00:00:00
> 2001
> > -From: Tomas Mraz <[email protected]>
> > -Date: Mon, 5 Aug 2024 17:54:14 +0200
> > -Subject: [PATCH] dh_kmgmt.c: Avoid expensive public key validation for
> known
> > - safe-prime groups
> > -MIME-Version: 1.0
> > -Content-Type: text/plain; charset=UTF-8
> > -Content-Transfer-Encoding: 8bit
> > -
> > -The partial validation is fully sufficient to check the key validity.
> > -
> > -Thanks to Szilárd Pfeiffer for reporting the issue.
> > -
> > -Reviewed-by: Neil Horman <[email protected]>
> > -Reviewed-by: Matt Caswell <[email protected]>
> > -Reviewed-by: Paul Dale <[email protected]>
> > -(Merged from https://github.com/openssl/openssl/pull/25088)
> > -
> > -CVE: CVE-2024-41996
> > -Upstream-Status: Backport
> [https://github.com/openssl/openssl/commit/e70e34d857d4003199bcb5d3b52ca81
> 02ccc1b98]
> > -Signed-off-by: Peter Marko <[email protected]>
> > ----
> > - providers/implementations/keymgmt/dh_kmgmt.c | 8 +++++---
> > - 1 file changed, 5 insertions(+), 3 deletions(-)
> > -
> > -diff --git a/providers/implementations/keymgmt/dh_kmgmt.c
> b/providers/implementations/keymgmt/dh_kmgmt.c
> > -index 82c3093b12..ebdce76710 100644
> > ---- a/providers/implementations/keymgmt/dh_kmgmt.c
> > -+++ b/providers/implementations/keymgmt/dh_kmgmt.c
> > -@@ -387,9 +387,11 @@ static int dh_validate_public(const DH *dh, int
> checktype)
> > - if (pub_key == NULL)
> > - return 0;
> > -
> > -- /* The partial test is only valid for named group's with q = (p - 1)
> > / 2 */
> > -- if (checktype == OSSL_KEYMGMT_VALIDATE_QUICK_CHECK
> > -- && ossl_dh_is_named_safe_prime_group(dh))
> > -+ /*
> > -+ * The partial test is only valid for named group's with q = (p - 1)
> > / 2
> > -+ * but for that case it is also fully sufficient to check the key
> > validity.
> > -+ */
> > -+ if (ossl_dh_is_named_safe_prime_group(dh))
> > - return ossl_dh_check_pub_key_partial(dh, pub_key, &res);
> > -
> > - return DH_check_pub_key_ex(dh, pub_key);
> > diff --git a/meta/recipes-connectivity/openssl/openssl_3.2.6.bb
> > b/meta/recipes-
> connectivity/openssl/openssl_3.5.4.bb
> > similarity index 75%
> > rename from meta/recipes-connectivity/openssl/openssl_3.2.6.bb
> > rename to meta/recipes-connectivity/openssl/openssl_3.5.4.bb
> > index 4756f5aaa6..377d307203 100644
> > --- a/meta/recipes-connectivity/openssl/openssl_3.2.6.bb
> > +++ b/meta/recipes-connectivity/openssl/openssl_3.5.4.bb
> > @@ -7,19 +7,19 @@ SECTION = "libs/network"
> > LICENSE = "Apache-2.0"
> > LIC_FILES_CHKSUM =
> "file://LICENSE.txt;md5=c75985e733726beaba57bc5253e96d04"
> >
> > -SRC_URI = "https://github.com/openssl/openssl/releases/download/openssl-
> ${PV}/openssl-${PV}.tar.gz \
> > +SRC_URI = "http://www.openssl.org/source/openssl-${PV}.tar.gz \
> > file://run-ptest \
> >
> > file://0001-buildinfo-strip-sysroot-and-debug-prefix-map-from-co.patch \
> > file://0001-Configure-do-not-tweak-mips-cflags.patch \
> >
> > file://0001-Added-handshake-history-reporting-when-test-fails.patch \
> > - file://CVE-2024-41996.patch \
> > + file://0001-extend-check_cwm-test-timeout.patch \
> > "
> >
> > SRC_URI:append:class-nativesdk = " \
> > file://environment.d-openssl.sh \
> > "
> >
> > -SRC_URI[sha256sum] =
> "89681a9ddaa9ed7cf25ea8ef61338db805200bae47d00510490623547380c148"
> > +SRC_URI[sha256sum] =
> "967311f84955316969bdb1d8d4b983718ef42338639c621ec4c34fddef355e99"
> >
> > inherit lib_package multilib_header multilib_script ptest perlnative
> > manpages
> > MULTILIB_SCRIPTS = "${PN}-bin:${bindir}/c_rehash"
> > @@ -32,10 +32,13 @@ PACKAGECONFIG[cryptodev-linux] = "enable-
> devcryptoeng,disable-devcryptoeng,crypt
> > PACKAGECONFIG[no-tls1] = "no-tls1"
> > PACKAGECONFIG[no-tls1_1] = "no-tls1_1"
> > PACKAGECONFIG[manpages] = ""
> > +PACKAGECONFIG[fips] = "enable-fips"
> >
> > B = "${WORKDIR}/build"
> > do_configure[cleandirs] = "${B}"
> >
> > +EXTRA_OECONF = "${@bb.utils.contains('PTEST_ENABLED', '1', '', 'no-tests',
> d)}"
> > +
> > #| ./libcrypto.so: undefined reference to `getcontext'
> > #| ./libcrypto.so: undefined reference to `setcontext'
> > #| ./libcrypto.so: undefined reference to `makecontext'
> > @@ -44,12 +47,15 @@ EXTRA_OECONF:append:libc-musl:powerpc64 = " no-
> asm"
> >
> > # adding devrandom prevents openssl from using getrandom() which is not
> available on older glibc versions
> > # (native versions can be built with newer glibc, but then relocated onto a
> system with older glibc)
> > -EXTRA_OECONF:class-native = "--with-rand-seed=os,devrandom"
> > -EXTRA_OECONF:class-nativesdk = "--with-rand-seed=os,devrandom"
> > +EXTRA_OECONF:append:class-native = " --with-rand-seed=os,devrandom"
> > +EXTRA_OECONF:append:class-nativesdk = " --with-rand-seed=os,devrandom"
> >
> > # Relying on hardcoded built-in paths causes openssl-native to not be
> relocateable from sstate.
> > -CFLAGS:append:class-native = " -DOPENSSLDIR=/not/builtin -
> DENGINESDIR=/not/builtin"
> > -CFLAGS:append:class-nativesdk = " -DOPENSSLDIR=/not/builtin -
> DENGINESDIR=/not/builtin"
> > +EXTRA_OEMAKE:append:task-compile:class-native = '
> OPENSSLDIR="/not/builtin" ENGINESDIR="/not/builtin"
> MODULESDIR="/not/builtin"'
> > +EXTRA_OEMAKE:append:task-compile:class-nativesdk = '
> OPENSSLDIR="/not/builtin" ENGINESDIR="/not/builtin"
> MODULESDIR="/not/builtin"'
> > +
> > +#| threads_pthread.c:(.text+0x372): undefined reference to
> `__atomic_is_lock_free'
> > +EXTRA_OECONF:append:toolchain-clang:x86 = " -latomic"
> >
> > # This allows disabling deprecated or undesirable crypto algorithms.
> > # The default is to trust upstream choices.
> > @@ -136,21 +142,26 @@ do_configure () {
> > ;;
> > esac
> >
> > - useprefix=${prefix}
> > - if [ "x$useprefix" = "x" ]; then
> > - useprefix=/
> > - fi
> > # WARNING: do not set compiler/linker flags (-I/-D etc.) in
> EXTRA_OECONF, as they will fully replace the
> > # environment variables set by bitbake. Adjust the environment variables
> instead.
> > PERLEXTERNAL="$(realpath ${S}/external/perl/Text-Template-*/lib)"
> > test -d "$PERLEXTERNAL" || bberror "PERLEXTERNAL
> '$PERLEXTERNAL' not found!"
> > HASHBANGPERL="/usr/bin/env perl" PERL=perl
> PERL5LIB="$PERLEXTERNAL" \
> > - perl ${S}/Configure ${EXTRA_OECONF}
> ${PACKAGECONFIG_CONFARGS} ${DEPRECATED_CRYPTO_FLAGS} --
> prefix=$useprefix --openssldir=${libdir}/ssl-3 --libdir=${libdir} $target
> > + perl ${S}/Configure ${EXTRA_OECONF}
> ${PACKAGECONFIG_CONFARGS} ${DEPRECATED_CRYPTO_FLAGS} --
> prefix=${prefix} --openssldir=${libdir}/ssl-3 --libdir=${baselib} $target
> > perl ${B}/configdata.pm --dump
> > }
> >
> > +do_compile:append () {
> > + # The test suite binaries are large and we don't need the debugging in
> > them
> > + if test -d ${B}/test; then
> > + find ${B}/test -type f -executable -exec ${STRIP} {} \;
> > + fi
> > +}
> > +
> > do_install () {
> > - oe_runmake DESTDIR="${D}" MANDIR="${mandir}" MANSUFFIX=ssl
> install_sw install_ssldirs ${@bb.utils.contains('PACKAGECONFIG', 'manpages',
> 'install_docs', '', d)}
> > + oe_runmake DESTDIR="${D}" MANDIR="${mandir}" MANSUFFIX=ssl
> install_sw install_ssldirs \
> > + ${@bb.utils.contains('PACKAGECONFIG', 'manpages', 'install_docs',
> > '',
> d)} \
> > + ${@bb.utils.contains('PACKAGECONFIG', 'fips', 'install_fips', '',
> > d)}
> >
> > oe_multilib_header openssl/opensslconf.h
> > oe_multilib_header openssl/configuration.h
> > @@ -168,21 +179,30 @@ do_install () {
> > ln -sf ${@oe.path.relative('${libdir}/ssl-3',
> > '${sysconfdir}/ssl/certs')}
> ${D}${libdir}/ssl-3/certs
> > ln -sf ${@oe.path.relative('${libdir}/ssl-3',
> > '${sysconfdir}/ssl/private')}
> ${D}${libdir}/ssl-3/private
> > ln -sf ${@oe.path.relative('${libdir}/ssl-3',
> > '${sysconfdir}/ssl/openssl.cnf')}
> ${D}${libdir}/ssl-3/openssl.cnf
> > +
> > + # Generate fipsmodule.cnf in pkg_postinst_ontarget
> > + if ${@bb.utils.contains('PACKAGECONFIG', 'fips', 'true', 'false', d)};
> > then
> > + rm -f ${D}${libdir}/ssl-3/fipsmodule.cnf
> > + fi
> > }
> >
> > do_install:append:class-native () {
> > create_wrapper ${D}${bindir}/openssl \
> > - OPENSSL_CONF=${libdir}/ssl-3/openssl.cnf \
> > - SSL_CERT_DIR=${libdir}/ssl-3/certs \
> > - SSL_CERT_FILE=${libdir}/ssl-3/cert.pem \
> > - OPENSSL_ENGINES=${libdir}/engines-3 \
> > - OPENSSL_MODULES=${libdir}/ossl-modules
> > + OPENSSL_CONF=\${OPENSSL_CONF:-${libdir}/ssl-3/openssl.cnf} \
> > + SSL_CERT_DIR=\${SSL_CERT_DIR:-${libdir}/ssl-3/certs} \
> > + SSL_CERT_FILE=\${SSL_CERT_FILE:-${libdir}/ssl-3/cert.pem} \
> > + OPENSSL_ENGINES=\${OPENSSL_ENGINES:-${libdir}/engines-3} \
> > + OPENSSL_MODULES=\${OPENSSL_MODULES:-${libdir}/ossl-
> modules}
> > +
> > + # Setting ENGINESDIR and MODULESDIR to invalid paths prevents host
> contamination,
> > + # but also breaks the generated libcrypto.pc file. Post-Fix it manually
> > here.
> > + sed -i 's|^enginesdir=\($.libdir.\)/.*|enginesdir=\1/engines-3|'
> ${D}${libdir}/pkgconfig/libcrypto.pc
> > + sed -i 's|^modulesdir=\($.libdir.\)/.*|modulesdir=\1/ossl-modules|'
> ${D}${libdir}/pkgconfig/libcrypto.pc
> > }
> >
> > do_install:append:class-nativesdk () {
> > mkdir -p ${D}${SDKPATHNATIVE}/environment-setup.d
> > - install -m 644 ${WORKDIR}/environment.d-openssl.sh
> ${D}${SDKPATHNATIVE}/environment-setup.d/openssl.sh
> > - sed 's|/usr/lib/ssl/|/usr/lib/ssl-3/|g' -i
> > ${D}${SDKPATHNATIVE}/environment-
> setup.d/openssl.sh
> > + install -m 644 ${UNPACKDIR}/environment.d-openssl.sh
> ${D}${SDKPATHNATIVE}/environment-setup.d/openssl.sh
> > }
> >
> > PTEST_BUILD_HOST_FILES += "configdata.pm"
> > @@ -226,12 +246,18 @@ do_install_ptest() {
> > ln -s ${libdir}/ossl-modules/ ${D}${PTEST_PATH}/providers
> > }
> >
> > +pkg_postinst_ontarget:${PN}-ossl-module-fips () {
> > + if test -f ${libdir}/ossl-modules/fips.so; then
> > + ${bindir}/openssl fipsinstall -out
> > ${libdir}/ssl-3/fipsmodule.cnf -
> module ${libdir}/ossl-modules/fips.so
> > + fi
> > +}
> > +
> > # Add the openssl.cnf file to the openssl-conf package. Make the libcrypto
> > # package RRECOMMENDS on this package. This will enable the configuration
> > # file to be installed for both the openssl-bin package and the libcrypto
> > # package since the openssl-bin package depends on the libcrypto package.
> >
> > -PACKAGES =+ "libcrypto libssl openssl-conf ${PN}-engines ${PN}-misc ${PN}-
> ossl-module-legacy"
> > +PACKAGES =+ "libcrypto libssl openssl-conf ${PN}-engines ${PN}-misc ${PN}-
> ossl-module-legacy ${PN}-ossl-module-fips"
> >
> > FILES:libcrypto = "${libdir}/libcrypto${SOLIBS}"
> > FILES:libssl = "${libdir}/libssl${SOLIBS}"
> > @@ -243,6 +269,7 @@ FILES:${PN}-engines = "${libdir}/engines-3"
> > FILES:${PN}-engines:append:mingw32:class-nativesdk = "
> ${prefix}${libdir}/engines-3"
> > FILES:${PN}-misc = "${libdir}/ssl-3/misc ${bindir}/c_rehash"
> > FILES:${PN}-ossl-module-legacy = "${libdir}/ossl-modules/legacy.so"
> > +FILES:${PN}-ossl-module-fips = "${libdir}/ossl-modules/fips.so"
> > FILES:${PN} =+ "${libdir}/ssl-3/* ${libdir}/ossl-modules/"
> > FILES:${PN}:append:class-nativesdk = " ${SDKPATHNATIVE}/environment-
> setup.d/openssl.sh"
> >
> > @@ -254,9 +281,12 @@ RDEPENDS:${PN}-ptest += "openssl-bin perl perl-
> modules bash sed openssl-engines
> >
> > RDEPENDS:${PN}-bin += "openssl-conf"
> >
> > +# The test suite is installed stripped
> > +INSANE_SKIP:${PN} = "already-stripped"
> > +
> > BBCLASSEXTEND = "native nativesdk"
> >
> > CVE_PRODUCT = "openssl:openssl"
> >
> > -CVE_VERSION_SUFFIX = "alphabetical"
> > -
> > +# this does not exist in scarthgap yet
> > +UNPACKDIR = "${WORKDIR}"
>
>
> --
> Yoann Congal
> Smile ECS
-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#232349):
https://lists.openembedded.org/g/openembedded-core/message/232349
Mute This Topic: https://lists.openembedded.org/mt/117416676/21656
Group Owner: [email protected]
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub
[[email protected]]
-=-=-=-=-=-=-=-=-=-=-=-