Message ID | 20240503105921.3734301-1-ross.burton@arm.com |
---|---|
State | Accepted, archived |
Commit | f5e931c5e5932e35113d13ba053419283f472f43 |
Headers | show |
Series | openssl: fix pkgconfig path problems | expand |
Hi, On Fri, May 03, 2024 at 10:59:21AM +0000, Ross Burton via lists.openembedded.org wrote: > OpenSSL 3.3.0 introduced new pkgconfig generators which interact badly > with our incorrect setting of --libdir, which is documented as being > the name of the directory _under $prefix_, not an absolute path. This > resulted in the pkgconfig files have libdir=/usr which mostly works as > the actual library directory is on the search path, but can break other > recipes (such as tpm2-openssl). This fixes tpm2-openssl build for me. Thanks! Cheers, -Mikko
diff --git a/meta/recipes-connectivity/openssl/openssl_3.3.0.bb b/meta/recipes-connectivity/openssl/openssl_3.3.0.bb index 2cdaf4c75d5..37a2b6e31b4 100644 --- a/meta/recipes-connectivity/openssl/openssl_3.3.0.bb +++ b/meta/recipes-connectivity/openssl/openssl_3.3.0.bb @@ -136,16 +136,12 @@ 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 }
OpenSSL 3.3.0 introduced new pkgconfig generators which interact badly with our incorrect setting of --libdir, which is documented as being the name of the directory _under $prefix_, not an absolute path. This resulted in the pkgconfig files have libdir=/usr which mostly works as the actual library directory is on the search path, but can break other recipes (such as tpm2-openssl). Pass the correct value for --libdir, and also remove the odd handling of an empty ${prefix} which is very historical[1] and can't happen anymore as all build variations have a prefix. [1] Added in oe-classic f725a81c, 2009 Signed-off-by: Ross Burton <ross.burton@arm.com> --- meta/recipes-connectivity/openssl/openssl_3.3.0.bb | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-)