From 77669175588c368134ee4783662dd2b21289cf1d Mon Sep 17 00:00:00 2001 From: Ralf Hubert Date: Wed, 21 Jan 2026 14:23:46 +0100 Subject: [PATCH 1/5] openssl: bump to 3.5.4 Update openssl to latest LTS Release. --- recipes/libs/openssl.yaml | 4 +- ...porter-files-to-the-new-vars-from-ut.patch | 96 ------ .../openssl/0003-Fix-cmake-generator.patch | 64 ---- ...ake-OpenSSLConfig.cmake.in-to-work-f.patch | 52 ---- ...allvars.pl-more-fine-grained-control.patch | 206 ------------- ...llvars.pl-mistreated-LDLIBS-on-Unix-.patch | 38 --- ...s-to-work-for-build-config-there-may.patch | 278 ------------------ ...g-config-align-with-the-changes-for-.patch | 94 ------ 8 files changed, 2 insertions(+), 830 deletions(-) delete mode 100644 recipes/libs/openssl/0002-Adapt-all-the-exporter-files-to-the-new-vars-from-ut.patch delete mode 100644 recipes/libs/openssl/0003-Fix-cmake-generator.patch delete mode 100644 recipes/libs/openssl/0004-fix-exporters-cmake-OpenSSLConfig.cmake.in-to-work-f.patch delete mode 100644 recipes/libs/openssl/0005-Give-util-mkinstallvars.pl-more-fine-grained-control.patch delete mode 100644 recipes/libs/openssl/0006-fix-util-mkinstallvars.pl-mistreated-LDLIBS-on-Unix-.patch delete mode 100644 recipes/libs/openssl/0007-fix-for-exporters-to-work-for-build-config-there-may.patch delete mode 100644 recipes/libs/openssl/0008-exporters-for-pkg-config-align-with-the-changes-for-.patch diff --git a/recipes/libs/openssl.yaml b/recipes/libs/openssl.yaml index 38acc107..da799dbb 100644 --- a/recipes/libs/openssl.yaml +++ b/recipes/libs/openssl.yaml @@ -2,7 +2,7 @@ inherit: [cpackage, make, install, patch] metaEnvironment: PKG_LICENSE: "Apache-2.0" - PKG_VERSION: "3.3.1" + PKG_VERSION: "3.5.4" depends: - libs::zlib-dev @@ -14,7 +14,7 @@ depends: checkoutSCM: scm: url url: https://www.openssl.org/source/openssl-${PKG_VERSION}.tar.gz - digestSHA256: 777cd596284c883375a2a7a11bf5d2786fc5413255efab20c50d6ffe6d020b7e + digestSHA256: 967311f84955316969bdb1d8d4b983718ef42338639c621ec4c34fddef355e99 stripComponents: 1 checkoutDeterministic: True diff --git a/recipes/libs/openssl/0002-Adapt-all-the-exporter-files-to-the-new-vars-from-ut.patch b/recipes/libs/openssl/0002-Adapt-all-the-exporter-files-to-the-new-vars-from-ut.patch deleted file mode 100644 index 16bf1534..00000000 --- a/recipes/libs/openssl/0002-Adapt-all-the-exporter-files-to-the-new-vars-from-ut.patch +++ /dev/null @@ -1,96 +0,0 @@ -From 1c437b5704c9ee5f667bc2b11e5fdf176dfb714f Mon Sep 17 00:00:00 2001 -From: Richard Levitte -Date: Thu, 20 Jun 2024 14:33:15 +0200 -Subject: [PATCH] Adapt all the exporter files to the new vars from - util/mkinstallvars.pl - -With this, the pkg-config files take better advantage of relative directory -values. - -Fixes #24298 - -Reviewed-by: Neil Horman -Reviewed-by: Tomas Mraz -(Merged from https://github.com/openssl/openssl/pull/24687) - -(cherry picked from commit 30dc37d798a0428fd477d3763086e7e97b3d596f) ---- - exporters/cmake/OpenSSLConfig.cmake.in | 7 ++++--- - exporters/pkg-config/libcrypto.pc.in | 12 ++++++++---- - exporters/pkg-config/libssl.pc.in | 8 ++++++-- - exporters/pkg-config/openssl.pc.in | 8 ++++++-- - 4 files changed, 24 insertions(+), 11 deletions(-) - -diff --git a/exporters/cmake/OpenSSLConfig.cmake.in b/exporters/cmake/OpenSSLConfig.cmake.in -index 2d2321931d..06f796158b 100644 ---- a/exporters/cmake/OpenSSLConfig.cmake.in -+++ b/exporters/cmake/OpenSSLConfig.cmake.in -@@ -89,9 +89,10 @@ unset(_ossl_undefined_targets) - # Set up the import path, so all other import paths are made relative this file - get_filename_component(_ossl_prefix "${CMAKE_CURRENT_LIST_FILE}" PATH) - {- -- # For each component in $OpenSSL::safe::installdata::CMAKECONFIGDIR_REL, have CMake -- # out the parent directory. -- my $d = unixify($OpenSSL::safe::installdata::CMAKECONFIGDIR_REL); -+ # For each component in $OpenSSL::safe::installdata::CMAKECONFIGDIR relative to -+ # $OpenSSL::safe::installdata::PREFIX, have CMake figure out the parent directory. -+ my $d = join('/', unixify($OpenSSL::safe::installdata::LIBDIR_REL_PREFIX), -+ unixify($OpenSSL::safe::installdata::CMAKECONFIGDIR_REL_LIBDIR)); - $OUT = ''; - $OUT .= 'get_filename_component(_ossl_prefix "${_ossl_prefix}" PATH)' . "\n" - foreach (split '/', $d); -diff --git a/exporters/pkg-config/libcrypto.pc.in b/exporters/pkg-config/libcrypto.pc.in -index 14ed339f3c..fbc8ea4c79 100644 ---- a/exporters/pkg-config/libcrypto.pc.in -+++ b/exporters/pkg-config/libcrypto.pc.in -@@ -1,7 +1,11 @@ --libdir={- $OpenSSL::safe::installdata::LIBDIR -} --includedir={- $OpenSSL::safe::installdata::INCLUDEDIR -} --enginesdir={- $OpenSSL::safe::installdata::ENGINESDIR -} --modulesdir={- $OpenSSL::safe::installdata::MODULESDIR -} -+prefix={- $OpenSSL::safe::installdata::PREFIX -} -+exec_prefix=${prefix} -+libdir={- $OpenSSL::safe::installdata::LIBDIR_REL_PREFIX -+ ? '${exec_prefix}/' . $OpenSSL::safe::installdata::LIBDIR_REL_PREFIX -+ : $OpenSSL::safe::installdata::libdir -} -+includedir=${prefix}/{- $OpenSSL::safe::installdata::INCLUDEDIR_REL_PREFIX -} -+enginesdir=${libdir}/{- $OpenSSL::safe::installdata::ENGINESDIR_REL_LIBDIR -} -+modulesdir=${libdir}/{- $OpenSSL::safe::installdata::MODULESDIR_REL_LIBDIR -} - - Name: OpenSSL-libcrypto - Description: OpenSSL cryptography library -diff --git a/exporters/pkg-config/libssl.pc.in b/exporters/pkg-config/libssl.pc.in -index a7828b3cc6..963538807b 100644 ---- a/exporters/pkg-config/libssl.pc.in -+++ b/exporters/pkg-config/libssl.pc.in -@@ -1,5 +1,9 @@ --libdir={- $OpenSSL::safe::installdata::LIBDIR -} --includedir={- $OpenSSL::safe::installdata::INCLUDEDIR -} -+prefix={- $OpenSSL::safe::installdata::PREFIX -} -+exec_prefix=${prefix} -+libdir={- $OpenSSL::safe::installdata::LIBDIR_REL_PREFIX -+ ? '${exec_prefix}/' . $OpenSSL::safe::installdata::LIBDIR_REL_PREFIX -+ : $OpenSSL::safe::installdata::libdir -} -+includedir=${prefix}/{- $OpenSSL::safe::installdata::INCLUDEDIR_REL_PREFIX -} - - Name: OpenSSL-libssl - Description: Secure Sockets Layer and cryptography libraries -diff --git a/exporters/pkg-config/openssl.pc.in b/exporters/pkg-config/openssl.pc.in -index dbb77aa39a..225bef9e23 100644 ---- a/exporters/pkg-config/openssl.pc.in -+++ b/exporters/pkg-config/openssl.pc.in -@@ -1,5 +1,9 @@ --libdir={- $OpenSSL::safe::installdata::LIBDIR -} --includedir={- $OpenSSL::safe::installdata::INCLUDEDIR -} -+prefix={- $OpenSSL::safe::installdata::PREFIX -} -+exec_prefix=${prefix} -+libdir={- $OpenSSL::safe::installdata::LIBDIR_REL_PREFIX -+ ? '${exec_prefix}/' . $OpenSSL::safe::installdata::LIBDIR_REL_PREFIX -+ : $OpenSSL::safe::installdata::libdir -} -+includedir=${prefix}/{- $OpenSSL::safe::installdata::INCLUDEDIR_REL_PREFIX -} - - Name: OpenSSL - Description: Secure Sockets Layer and cryptography libraries and tools --- -2.39.2 - diff --git a/recipes/libs/openssl/0003-Fix-cmake-generator.patch b/recipes/libs/openssl/0003-Fix-cmake-generator.patch deleted file mode 100644 index f195be29..00000000 --- a/recipes/libs/openssl/0003-Fix-cmake-generator.patch +++ /dev/null @@ -1,64 +0,0 @@ -From 419fb4ea4be4c0b28c63b494ff30fa3510aba06e Mon Sep 17 00:00:00 2001 -From: Neil Horman -Date: Sun, 14 Jul 2024 08:57:25 -0400 -Subject: [PATCH] Fix cmake generator - -PR #24678 modified some environment variables and locations that the -cmake exporter depended on, resulting in empty directory resolution. -Adjust build build.info and input variable names to match up again - -Fixes #24874 - -Reviewed-by: Richard Levitte -Reviewed-by: Tomas Mraz -(Merged from https://github.com/openssl/openssl/pull/24877) - -(cherry picked from commit c1a27bdeb9a4f915aa92ed0e74ed48a1f9b94176) ---- - build.info | 5 +++++ - exporters/cmake/OpenSSLConfig.cmake.in | 12 ++++++------ - 2 files changed, 11 insertions(+), 6 deletions(-) - -diff --git a/build.info b/build.info -index 790f2421e5..b578af4b19 100644 ---- a/build.info -+++ b/build.info -@@ -102,6 +102,11 @@ IF[{- $config{target} =~ /^(?:Cygwin|mingw|VC-|BC-)/ -}] - ENDIF - - # This file sets the build directory up for CMake inclusion -+# Note: This generation of OpenSSLConfig[Version].cmake is used -+# for building openssl locally, and so the build variables are -+# taken from builddata.pm rather than installdata.pm. For exportable -+# versions of these generated files, you'll find them in the exporters -+# directory - GENERATE[OpenSSLConfig.cmake]=exporters/cmake/OpenSSLConfig.cmake.in - DEPEND[OpenSSLConfig.cmake]=builddata.pm - GENERATE[OpenSSLConfigVersion.cmake]=exporters/cmake/OpenSSLConfigVersion.cmake.in -diff --git a/exporters/cmake/OpenSSLConfig.cmake.in b/exporters/cmake/OpenSSLConfig.cmake.in -index 06f796158b..b35a58152d 100644 ---- a/exporters/cmake/OpenSSLConfig.cmake.in -+++ b/exporters/cmake/OpenSSLConfig.cmake.in -@@ -127,13 +127,13 @@ set(OPENSSL_VERSION_FIX "${OpenSSL_VERSION_PATCH}") - set(OPENSSL_FOUND YES) - - # Directories and names --set(OPENSSL_INCLUDE_DIR "${_ossl_prefix}/{- unixify($OpenSSL::safe::installdata::INCLUDEDIR_REL, 1); -}") --set(OPENSSL_LIBRARY_DIR "${_ossl_prefix}/{- unixify($OpenSSL::safe::installdata::LIBDIR_REL, 1); -}") --set(OPENSSL_ENGINES_DIR "${_ossl_prefix}/{- unixify($OpenSSL::safe::installdata::ENGINESDIR_REL, 1); -}") --set(OPENSSL_MODULES_DIR "${_ossl_prefix}/{- unixify($OpenSSL::safe::installdata::MODULESDIR_REL, 1); -}") --set(OPENSSL_RUNTIME_DIR "${_ossl_prefix}/{- unixify($OpenSSL::safe::installdata::BINDIR_REL, 1); -}") -+set(OPENSSL_LIBRARY_DIR "${_ossl_prefix}/{- unixify($OpenSSL::safe::installdata::LIBDIR_REL_PREFIX, 1); -}") -+set(OPENSSL_INCLUDE_DIR "${_ossl_prefix}/{- unixify($OpenSSL::safe::installdata::INCLUDEDIR_REL_PREFIX, 1); -}") -+set(OPENSSL_ENGINES_DIR "${_ossl_prefix}/{- unixify($OpenSSL::safe::installdata::LIBDIR_REL_PREFIX, 1); -}/{- unixify($OpenSSL::safe::installdata::ENGINESDIR_REL_LIBDIR, 1); -}") -+set(OPENSSL_MODULES_DIR "${_ossl_prefix}/{- unixify($OpenSSL::safe::installdata::LIBDIR_REL_PREFIX, 1); -}/{- unixify($OpenSSL::safe::installdata::MODULESDIR_REL_LIBDIR, 1); -}") -+set(OPENSSL_RUNTIME_DIR "${_ossl_prefix}/{- unixify($OpenSSL::safe::installdata::BINDIR_REL_PREFIX, 1); -}") - {- output_off() if $disabled{uplink}; "" -} --set(OPENSSL_APPLINK_SOURCE "${_ossl_prefix}/{- unixify($OpenSSL::safe::installdata::APPLINKDIR_REL, 1); -}/applink.c") -+set(OPENSSL_APPLINK_SOURCE "${_ossl_prefix}/{- unixify($OpenSSL::safe::installdata::APPLINKDIR_REL_PREFIX, 1); -}/applink.c") - {- output_on() if $disabled{uplink}; "" -} - set(OPENSSL_PROGRAM "${OPENSSL_RUNTIME_DIR}/{- platform->bin('openssl') -}") - --- -2.39.2 - diff --git a/recipes/libs/openssl/0004-fix-exporters-cmake-OpenSSLConfig.cmake.in-to-work-f.patch b/recipes/libs/openssl/0004-fix-exporters-cmake-OpenSSLConfig.cmake.in-to-work-f.patch deleted file mode 100644 index 0991691c..00000000 --- a/recipes/libs/openssl/0004-fix-exporters-cmake-OpenSSLConfig.cmake.in-to-work-f.patch +++ /dev/null @@ -1,52 +0,0 @@ -From 27b00ac152a1d6940b9838f81b6daefdfcd84dbe Mon Sep 17 00:00:00 2001 -From: Richard Levitte -Date: Wed, 17 Jul 2024 11:09:11 +0200 -Subject: [PATCH] fix: exporters/cmake/OpenSSLConfig.cmake.in to work for build - config - -This template file is made to make both: - -1. OpenSSLConfig.cmake (CMake config used when building a CMake package - against an uninstalled OpenSSL build) -2. exporters/OpenSSLConfig.cmake (CMake config that's to be installed - alongside OpenSSL, and is used when building a CMake package against - an OpenSSL installation). - -Variant 1 was unfortunately getting the internal '_ossl_prefix' variable -wrong, which is due to how the perl snippet builds the command(s) to figure -out its value. That needed some correction. - -Reviewed-by: Neil Horman -Reviewed-by: Tomas Mraz -(Merged from https://github.com/openssl/openssl/pull/24918) - -(cherry picked from commit a82d9e572cc757e4fa50d484bfbb7115f2d027dd) ---- - exporters/cmake/OpenSSLConfig.cmake.in | 10 ++++++---- - 1 file changed, 6 insertions(+), 4 deletions(-) - -diff --git a/exporters/cmake/OpenSSLConfig.cmake.in b/exporters/cmake/OpenSSLConfig.cmake.in -index b35a58152d..dc9927a762 100644 ---- a/exporters/cmake/OpenSSLConfig.cmake.in -+++ b/exporters/cmake/OpenSSLConfig.cmake.in -@@ -91,11 +91,13 @@ get_filename_component(_ossl_prefix "${CMAKE_CURRENT_LIST_FILE}" PATH) - {- - # For each component in $OpenSSL::safe::installdata::CMAKECONFIGDIR relative to - # $OpenSSL::safe::installdata::PREFIX, have CMake figure out the parent directory. -- my $d = join('/', unixify($OpenSSL::safe::installdata::LIBDIR_REL_PREFIX), -- unixify($OpenSSL::safe::installdata::CMAKECONFIGDIR_REL_LIBDIR)); -+ my $d = join('/', unixify(catdir($OpenSSL::safe::installdata::LIBDIR_REL_PREFIX, -+ $OpenSSL::safe::installdata::CMAKECONFIGDIR_REL_LIBDIR), 1)); - $OUT = ''; -- $OUT .= 'get_filename_component(_ossl_prefix "${_ossl_prefix}" PATH)' . "\n" -- foreach (split '/', $d); -+ if ($d ne '.') { -+ $OUT .= 'get_filename_component(_ossl_prefix "${_ossl_prefix}" PATH)' . "\n" -+ foreach (split '/', $d); -+ } - -} - if(_ossl_prefix STREQUAL "/") - set(_ossl_prefix "") --- -2.39.2 - diff --git a/recipes/libs/openssl/0005-Give-util-mkinstallvars.pl-more-fine-grained-control.patch b/recipes/libs/openssl/0005-Give-util-mkinstallvars.pl-more-fine-grained-control.patch deleted file mode 100644 index 9d8fdafc..00000000 --- a/recipes/libs/openssl/0005-Give-util-mkinstallvars.pl-more-fine-grained-control.patch +++ /dev/null @@ -1,206 +0,0 @@ -From aa099dba7c80c723cf4babf5adc0c801f1c28363 Mon Sep 17 00:00:00 2001 -From: Richard Levitte -Date: Thu, 20 Jun 2024 14:30:16 +0200 -Subject: [PATCH] Give util/mkinstallvars.pl more fine grained control over var - dependencies - -Essentially, we try to do what GNU does. 'prefix' is used to define the -defaults for 'exec_prefix' and 'libdir', and these are then used to define -further directory values. util/mkinstallvars.pl is changed to reflect that -to the best of our ability. - -Reviewed-by: Neil Horman -Reviewed-by: Tomas Mraz -(Merged from https://github.com/openssl/openssl/pull/24687) - -(cherry picked from commit 6e0fd246e7a6e51f92b2ef3520bfc4414b7773c0) ---- - exporters/build.info | 2 +- - util/mkinstallvars.pl | 133 ++++++++++++++++++++++++++---------------- - 2 files changed, 85 insertions(+), 50 deletions(-) - -diff --git a/exporters/build.info b/exporters/build.info -index 86acf2df94..9241dc9b0a 100644 ---- a/exporters/build.info -+++ b/exporters/build.info -@@ -19,7 +19,7 @@ DEPEND[openssl.pc]=libcrypto.pc libssl.pc - DEPEND[""]=openssl.pc - - GENERATE[../installdata.pm]=../util/mkinstallvars.pl \ -- "PREFIX=$(INSTALLTOP)" BINDIR=bin "LIBDIR=$(LIBDIR)" \ -+ "PREFIX=$(INSTALLTOP)" BINDIR=bin "LIBDIR=$(LIBDIR)" "libdir=$(libdir)" \ - INCLUDEDIR=include APPLINKDIR=include/openssl \ - "ENGINESDIR=$(ENGINESDIR)" "MODULESDIR=$(MODULESDIR)" \ - "PKGCONFIGDIR=$(PKGCONFIGDIR)" "CMAKECONFIGDIR=$(CMAKECONFIGDIR)" \ -diff --git a/util/mkinstallvars.pl b/util/mkinstallvars.pl -index 59a432d28c..5fadb708e1 100644 ---- a/util/mkinstallvars.pl -+++ b/util/mkinstallvars.pl -@@ -11,13 +11,25 @@ - # The result is a Perl module creating the package OpenSSL::safe::installdata. - - use File::Spec; -+use List::Util qw(pairs); - - # These are expected to be set up as absolute directories --my @absolutes = qw(PREFIX); -+my @absolutes = qw(PREFIX libdir); - # These may be absolute directories, and if not, they are expected to be set up --# as subdirectories to PREFIX --my @subdirs = qw(BINDIR LIBDIR INCLUDEDIR APPLINKDIR ENGINESDIR MODULESDIR -- PKGCONFIGDIR CMAKECONFIGDIR); -+# as subdirectories to PREFIX or LIBDIR. The order of the pairs is important, -+# since the LIBDIR subdirectories depend on the calculation of LIBDIR from -+# PREFIX. -+my @subdirs = pairs (PREFIX => [ qw(BINDIR LIBDIR INCLUDEDIR APPLINKDIR) ], -+ LIBDIR => [ qw(ENGINESDIR MODULESDIR PKGCONFIGDIR -+ CMAKECONFIGDIR) ]); -+# For completeness, other expected variables -+my @others = qw(VERSION LDLIBS); -+ -+my %all = ( ); -+foreach (@absolutes) { $all{$_} = 1 } -+foreach (@subdirs) { foreach (@{$_->[1]}) { $all{$_} = 1 } } -+foreach (@others) { $all{$_} = 1 } -+print STDERR "DEBUG: all keys: ", join(", ", sort keys %all), "\n"; - - my %keys = (); - foreach (@ARGV) { -@@ -26,29 +38,47 @@ foreach (@ARGV) { - $ENV{$k} = $v; - } - --foreach my $k (sort keys %keys) { -- my $v = $ENV{$k}; -- $v = File::Spec->rel2abs($v) if $v && grep { $k eq $_ } @absolutes; -- $ENV{$k} = $v; -+# warn if there are missing values, and also if there are unexpected values -+foreach my $k (sort keys %all) { -+ warn "No value given for $k\n" unless $keys{$k}; - } - foreach my $k (sort keys %keys) { -+ warn "Unknown variable $k\n" unless $all{$k}; -+} -+ -+# This shouldn't be needed, but just in case we get relative paths that -+# should be absolute, make sure they actually are. -+foreach my $k (@absolutes) { - my $v = $ENV{$k} || '.'; -+ print STDERR "DEBUG: $k = $v => "; -+ $v = File::Spec->rel2abs($v) if $v; -+ $ENV{$k} = $v; -+ print STDERR "$k = $ENV{$k}\n"; -+} - -- # Absolute paths for the subdir variables are computed. This provides -- # the usual form of values for names that have become norm, known as GNU -- # installation paths. -- # For the benefit of those that need it, the subdirectories are preserved -- # as they are, using the same variable names, suffixed with '_REL', if they -- # are indeed subdirectories. -- if (grep { $k eq $_ } @subdirs) { -+# Absolute paths for the subdir variables are computed. This provides -+# the usual form of values for names that have become norm, known as GNU -+# installation paths. -+# For the benefit of those that need it, the subdirectories are preserved -+# as they are, using the same variable names, suffixed with '_REL_{var}', -+# if they are indeed subdirectories. The '{var}' part of the name tells -+# which other variable value they are relative to. -+foreach my $pair (@subdirs) { -+ my ($var, $subdir_vars) = @$pair; -+ foreach my $k (@$subdir_vars) { -+ my $v = $ENV{$k} || '.'; -+ print STDERR "DEBUG: $k = $v => "; - if (File::Spec->file_name_is_absolute($v)) { -- $ENV{"${k}_REL"} = File::Spec->abs2rel($v, $ENV{PREFIX}); -+ my $kr = "${k}_REL_${var}"; -+ $ENV{$kr} = File::Spec->abs2rel($v, $ENV{$var}); -+ print STDERR "$kr = $ENV{$kr}\n"; - } else { -- $ENV{"${k}_REL"} = $v; -- $v = File::Spec->rel2abs($v, $ENV{PREFIX}); -+ my $kr = "${k}_REL_${var}"; -+ $ENV{$kr} = $v; -+ $ENV{$k} = File::Spec->rel2abs($v, $ENV{$var}); -+ print STDERR "$k = $ENV{$k} , $kr = $v\n"; - } - } -- $ENV{$k} = $v; - } - - print <<_____; -@@ -58,36 +88,41 @@ use strict; - use warnings; - use Exporter; - our \@ISA = qw(Exporter); --our \@EXPORT = qw(\$PREFIX -- \$BINDIR \$BINDIR_REL -- \$LIBDIR \$LIBDIR_REL -- \$INCLUDEDIR \$INCLUDEDIR_REL -- \$APPLINKDIR \$APPLINKDIR_REL -- \$ENGINESDIR \$ENGINESDIR_REL -- \$MODULESDIR \$MODULESDIR_REL -- \$PKGCONFIGDIR \$PKGCONFIGDIR_REL -- \$CMAKECONFIGDIR \$CMAKECONFIGDIR_REL -- \$VERSION \@LDLIBS); -- --our \$PREFIX = '$ENV{PREFIX}'; --our \$BINDIR = '$ENV{BINDIR}'; --our \$BINDIR_REL = '$ENV{BINDIR_REL}'; --our \$LIBDIR = '$ENV{LIBDIR}'; --our \$LIBDIR_REL = '$ENV{LIBDIR_REL}'; --our \$INCLUDEDIR = '$ENV{INCLUDEDIR}'; --our \$INCLUDEDIR_REL = '$ENV{INCLUDEDIR_REL}'; --our \$APPLINKDIR = '$ENV{APPLINKDIR}'; --our \$APPLINKDIR_REL = '$ENV{APPLINKDIR_REL}'; --our \$ENGINESDIR = '$ENV{ENGINESDIR}'; --our \$ENGINESDIR_REL = '$ENV{ENGINESDIR_REL}'; --our \$MODULESDIR = '$ENV{MODULESDIR}'; --our \$MODULESDIR_REL = '$ENV{MODULESDIR_REL}'; --our \$PKGCONFIGDIR = '$ENV{PKGCONFIGDIR}'; --our \$PKGCONFIGDIR_REL = '$ENV{PKGCONFIGDIR_REL}'; --our \$CMAKECONFIGDIR = '$ENV{CMAKECONFIGDIR}'; --our \$CMAKECONFIGDIR_REL = '$ENV{CMAKECONFIGDIR_REL}'; --our \$VERSION = '$ENV{VERSION}'; --our \@LDLIBS = -+our \@EXPORT = qw( -+_____ -+ -+foreach my $k (@absolutes) { -+ print " \$$k\n"; -+} -+foreach my $pair (@subdirs) { -+ my ($var, $subdir_vars) = @$pair; -+ foreach my $k (@$subdir_vars) { -+ my $k2 = "${k}_REL_${var}"; -+ print " \$$k \$$k2\n"; -+ } -+} -+ -+print <<_____; -+ \$VERSION \@LDLIBS -+); -+ -+_____ -+ -+foreach my $k (@absolutes) { -+ print "our \$$k" . ' ' x (27 - length($k)) . "= '$ENV{$k}';\n"; -+} -+foreach my $pair (@subdirs) { -+ my ($var, $subdir_vars) = @$pair; -+ foreach my $k (@$subdir_vars) { -+ my $k2 = "${k}_REL_${var}"; -+ print "our \$$k" . ' ' x (27 - length($k)) . "= '$ENV{$k}';\n"; -+ print "our \$$k2" . ' ' x (27 - length($k2)) . "= '$ENV{$k2}';\n"; -+ } -+} -+ -+print <<_____; -+our \$VERSION = '$ENV{VERSION}'; -+our \@LDLIBS = - # Unix and Windows use space separation, VMS uses comma separation - split(/ +| *, */, '$ENV{LDLIBS}'); - --- -2.39.2 - diff --git a/recipes/libs/openssl/0006-fix-util-mkinstallvars.pl-mistreated-LDLIBS-on-Unix-.patch b/recipes/libs/openssl/0006-fix-util-mkinstallvars.pl-mistreated-LDLIBS-on-Unix-.patch deleted file mode 100644 index 00d496ad..00000000 --- a/recipes/libs/openssl/0006-fix-util-mkinstallvars.pl-mistreated-LDLIBS-on-Unix-.patch +++ /dev/null @@ -1,38 +0,0 @@ -From 293650d33069276446b286ad856cfb9854ea83e4 Mon Sep 17 00:00:00 2001 -From: Richard Levitte -Date: Sun, 28 Jul 2024 10:47:08 +0200 -Subject: [PATCH] fix: util/mkinstallvars.pl mistreated LDLIBS on Unix (and - Windows) - -Don't do comma separation on those platforms. - -Fixes #24986 - -Reviewed-by: Neil Horman -Reviewed-by: Matt Caswell -Reviewed-by: Tom Cosgrove -(Merged from https://github.com/openssl/openssl/pull/25018) - -(cherry picked from commit 0beef0ba00f7864b7367899d859509a99237fcf0) ---- - util/mkinstallvars.pl | 4 +++- - 1 file changed, 3 insertions(+), 1 deletion(-) - -diff --git a/util/mkinstallvars.pl b/util/mkinstallvars.pl -index 5fadb708e1..e2b7d9d083 100644 ---- a/util/mkinstallvars.pl -+++ b/util/mkinstallvars.pl -@@ -124,7 +124,9 @@ print <<_____; - our \$VERSION = '$ENV{VERSION}'; - our \@LDLIBS = - # Unix and Windows use space separation, VMS uses comma separation -- split(/ +| *, */, '$ENV{LDLIBS}'); -+ \$^O eq 'VMS' -+ ? split(/ *, */, '$ENV{LDLIBS}') -+ : split(/ +/, '$ENV{LDLIBS}'); - - 1; - _____ --- -2.39.2 - diff --git a/recipes/libs/openssl/0007-fix-for-exporters-to-work-for-build-config-there-may.patch b/recipes/libs/openssl/0007-fix-for-exporters-to-work-for-build-config-there-may.patch deleted file mode 100644 index 2abb2126..00000000 --- a/recipes/libs/openssl/0007-fix-for-exporters-to-work-for-build-config-there-may.patch +++ /dev/null @@ -1,278 +0,0 @@ -From 7a122cafc1415e1f182fd58b36708b5a08fb8550 Mon Sep 17 00:00:00 2001 -From: Richard Levitte -Date: Wed, 17 Jul 2024 18:23:57 +0200 -Subject: [PATCH] fix: for exporters to work for build config, there may be two - include dirs - -For CMake / pkg-config configuration files to be used for an uninstalled -build, the include directory in the build directory isn't enough, if that -one is separate from the source directory. The include directory in the -source directory must be accounted for too. - -This includes some lighter refactoring of util/mkinstallvars.pl, with the -result that almost all variables in builddata.pm and installdata.pm have -become arrays, even though unnecessarily for most of them; it was simpler -that way. The CMake / pkg-config templates are adapted accordingly. - -Reviewed-by: Neil Horman -Reviewed-by: Tomas Mraz -(Merged from https://github.com/openssl/openssl/pull/24918) - -(cherry picked from commit accd835f8d6ed946eb540a3e2e82f9723093f094) ---- - build.info | 3 +- - exporters/cmake/OpenSSLConfig.cmake.in | 22 ++++---- - exporters/pkg-config/libcrypto.pc.in | 23 ++++++--- - exporters/pkg-config/libssl.pc.in | 11 +++- - util/mkinstallvars.pl | 71 +++++++++++++++++--------- - 5 files changed, 84 insertions(+), 46 deletions(-) - -diff --git a/build.info b/build.info -index b578af4b19..930a0a940c 100644 ---- a/build.info -+++ b/build.info -@@ -124,7 +124,8 @@ DEPEND[openssl.pc]=builddata.pm - DEPEND[openssl.pc]=libcrypto.pc libssl.pc - - GENERATE[builddata.pm]=util/mkinstallvars.pl \ -- PREFIX=. BINDIR=apps LIBDIR= INCLUDEDIR=include APPLINKDIR=ms \ -+ PREFIX=. BINDIR=apps APPLINKDIR=ms \ -+ LIBDIR= INCLUDEDIR=include "INCLUDEDIR=$(SRCDIR)/include" \ - ENGINESDIR=engines MODULESDIR=providers \ - "VERSION=$(VERSION)" "LDLIBS=$(LIB_EX_LIBS)" - -diff --git a/exporters/cmake/OpenSSLConfig.cmake.in b/exporters/cmake/OpenSSLConfig.cmake.in -index dc9927a762..766aebe3d4 100644 ---- a/exporters/cmake/OpenSSLConfig.cmake.in -+++ b/exporters/cmake/OpenSSLConfig.cmake.in -@@ -89,10 +89,10 @@ unset(_ossl_undefined_targets) - # Set up the import path, so all other import paths are made relative this file - get_filename_component(_ossl_prefix "${CMAKE_CURRENT_LIST_FILE}" PATH) - {- -- # For each component in $OpenSSL::safe::installdata::CMAKECONFIGDIR relative to -- # $OpenSSL::safe::installdata::PREFIX, have CMake figure out the parent directory. -- my $d = join('/', unixify(catdir($OpenSSL::safe::installdata::LIBDIR_REL_PREFIX, -- $OpenSSL::safe::installdata::CMAKECONFIGDIR_REL_LIBDIR), 1)); -+ # For each component in $OpenSSL::safe::installdata::CMAKECONFIGDIR[0] relative to -+ # $OpenSSL::safe::installdata::PREFIX[0], have CMake figure out the parent directory. -+ my $d = join('/', unixify(catdir($OpenSSL::safe::installdata::LIBDIR_REL_PREFIX[0], -+ $OpenSSL::safe::installdata::CMAKECONFIGDIR_REL_LIBDIR[0]), 1)); - $OUT = ''; - if ($d ne '.') { - $OUT .= 'get_filename_component(_ossl_prefix "${_ossl_prefix}" PATH)' . "\n" -@@ -129,13 +129,15 @@ set(OPENSSL_VERSION_FIX "${OpenSSL_VERSION_PATCH}") - set(OPENSSL_FOUND YES) - - # Directories and names --set(OPENSSL_LIBRARY_DIR "${_ossl_prefix}/{- unixify($OpenSSL::safe::installdata::LIBDIR_REL_PREFIX, 1); -}") --set(OPENSSL_INCLUDE_DIR "${_ossl_prefix}/{- unixify($OpenSSL::safe::installdata::INCLUDEDIR_REL_PREFIX, 1); -}") --set(OPENSSL_ENGINES_DIR "${_ossl_prefix}/{- unixify($OpenSSL::safe::installdata::LIBDIR_REL_PREFIX, 1); -}/{- unixify($OpenSSL::safe::installdata::ENGINESDIR_REL_LIBDIR, 1); -}") --set(OPENSSL_MODULES_DIR "${_ossl_prefix}/{- unixify($OpenSSL::safe::installdata::LIBDIR_REL_PREFIX, 1); -}/{- unixify($OpenSSL::safe::installdata::MODULESDIR_REL_LIBDIR, 1); -}") --set(OPENSSL_RUNTIME_DIR "${_ossl_prefix}/{- unixify($OpenSSL::safe::installdata::BINDIR_REL_PREFIX, 1); -}") -+set(OPENSSL_LIBRARY_DIR "${_ossl_prefix}/{- unixify($OpenSSL::safe::installdata::LIBDIR_REL_PREFIX[0], 1); -}") -+set(OPENSSL_INCLUDE_DIR{- $OUT = ''; -+ $OUT .= ' "${_ossl_prefix}/' . $_ . '"' -+ foreach (@OpenSSL::safe::installdata::INCLUDEDIR_REL_PREFIX); -}) -+set(OPENSSL_ENGINES_DIR "${_ossl_prefix}/{- unixify($OpenSSL::safe::installdata::LIBDIR_REL_PREFIX[0], 1); -}/{- unixify($OpenSSL::safe::installdata::ENGINESDIR_REL_LIBDIR[0], 1); -}") -+set(OPENSSL_MODULES_DIR "${_ossl_prefix}/{- unixify($OpenSSL::safe::installdata::LIBDIR_REL_PREFIX[0], 1); -}/{- unixify($OpenSSL::safe::installdata::MODULESDIR_REL_LIBDIR[0], 1); -}") -+set(OPENSSL_RUNTIME_DIR "${_ossl_prefix}/{- unixify($OpenSSL::safe::installdata::BINDIR_REL_PREFIX[0], 1); -}") - {- output_off() if $disabled{uplink}; "" -} --set(OPENSSL_APPLINK_SOURCE "${_ossl_prefix}/{- unixify($OpenSSL::safe::installdata::APPLINKDIR_REL_PREFIX, 1); -}/applink.c") -+set(OPENSSL_APPLINK_SOURCE "${_ossl_prefix}/{- unixify($OpenSSL::safe::installdata::APPLINKDIR_REL_PREFIX[0], 1); -}/applink.c") - {- output_on() if $disabled{uplink}; "" -} - set(OPENSSL_PROGRAM "${OPENSSL_RUNTIME_DIR}/{- platform->bin('openssl') -}") - -diff --git a/exporters/pkg-config/libcrypto.pc.in b/exporters/pkg-config/libcrypto.pc.in -index fbc8ea4c79..f225bd6d22 100644 ---- a/exporters/pkg-config/libcrypto.pc.in -+++ b/exporters/pkg-config/libcrypto.pc.in -@@ -1,15 +1,22 @@ --prefix={- $OpenSSL::safe::installdata::PREFIX -} -+prefix={- $OpenSSL::safe::installdata::PREFIX[0] -} - exec_prefix=${prefix} --libdir={- $OpenSSL::safe::installdata::LIBDIR_REL_PREFIX -- ? '${exec_prefix}/' . $OpenSSL::safe::installdata::LIBDIR_REL_PREFIX -- : $OpenSSL::safe::installdata::libdir -} --includedir=${prefix}/{- $OpenSSL::safe::installdata::INCLUDEDIR_REL_PREFIX -} --enginesdir=${libdir}/{- $OpenSSL::safe::installdata::ENGINESDIR_REL_LIBDIR -} --modulesdir=${libdir}/{- $OpenSSL::safe::installdata::MODULESDIR_REL_LIBDIR -} -+libdir={- $OpenSSL::safe::installdata::LIBDIR_REL_PREFIX[0] -+ ? '${exec_prefix}/' . $OpenSSL::safe::installdata::LIBDIR_REL_PREFIX[0] -+ : $OpenSSL::safe::installdata::libdir[0] -} -+includedir={- $OUT = ''; -+ $OUT .= '${prefix}/' . $_ . ' ' -+ foreach (@OpenSSL::safe::installdata::INCLUDEDIR_REL_PREFIX); -} -+enginesdir=${libdir}/{- $OpenSSL::safe::installdata::ENGINESDIR_REL_LIBDIR[0] -} -+modulesdir=${libdir}/{- $OpenSSL::safe::installdata::MODULESDIR_REL_LIBDIR[0] -} - - Name: OpenSSL-libcrypto - Description: OpenSSL cryptography library - Version: {- $OpenSSL::safe::installdata::VERSION -} - Libs: -L${libdir} -lcrypto - Libs.private: {- join(' ', @OpenSSL::safe::installdata::LDLIBS) -} --Cflags: -I${includedir} -+Cflags:{- $OUT = ' -I${includedir}'; -+ if (scalar @OpenSSL::safe::installdata::INCLUDEDIR_REL_PREFIX > 1) { -+ $OUT = ''; -+ $OUT .= ' -I${prefix}/' . $_ . ' ' -+ foreach (@OpenSSL::safe::installdata::INCLUDEDIR_REL_PREFIX); -+ } -} -diff --git a/exporters/pkg-config/libssl.pc.in b/exporters/pkg-config/libssl.pc.in -index 963538807b..80c91ec034 100644 ---- a/exporters/pkg-config/libssl.pc.in -+++ b/exporters/pkg-config/libssl.pc.in -@@ -3,11 +3,18 @@ exec_prefix=${prefix} - libdir={- $OpenSSL::safe::installdata::LIBDIR_REL_PREFIX - ? '${exec_prefix}/' . $OpenSSL::safe::installdata::LIBDIR_REL_PREFIX - : $OpenSSL::safe::installdata::libdir -} --includedir=${prefix}/{- $OpenSSL::safe::installdata::INCLUDEDIR_REL_PREFIX -} -+includedir={- $OUT = ''; -+ $OUT .= '${prefix}/' . $_ . ' ' -+ foreach (@OpenSSL::safe::installdata::INCLUDEDIR_REL_PREFIX); -} - - Name: OpenSSL-libssl - Description: Secure Sockets Layer and cryptography libraries - Version: {- $OpenSSL::safe::installdata::VERSION -} - Requires.private: libcrypto - Libs: -L${libdir} -lssl --Cflags: -I${includedir} -+Cflags:{- $OUT = ' -I${includedir}'; -+ if (scalar @OpenSSL::safe::installdata::INCLUDEDIR_REL_PREFIX > 1) { -+ $OUT = ''; -+ $OUT .= ' -I${prefix}/' . $_ . ' ' -+ foreach (@OpenSSL::safe::installdata::INCLUDEDIR_REL_PREFIX); -+ } -} -diff --git a/util/mkinstallvars.pl b/util/mkinstallvars.pl -index e2b7d9d083..52a3d607bd 100644 ---- a/util/mkinstallvars.pl -+++ b/util/mkinstallvars.pl -@@ -32,10 +32,11 @@ foreach (@others) { $all{$_} = 1 } - print STDERR "DEBUG: all keys: ", join(", ", sort keys %all), "\n"; - - my %keys = (); -+my %values = (); - foreach (@ARGV) { - (my $k, my $v) = m|^([^=]*)=(.*)$|; - $keys{$k} = 1; -- $ENV{$k} = $v; -+ push @{$values{$k}}, $v; - } - - # warn if there are missing values, and also if there are unexpected values -@@ -49,11 +50,12 @@ foreach my $k (sort keys %keys) { - # This shouldn't be needed, but just in case we get relative paths that - # should be absolute, make sure they actually are. - foreach my $k (@absolutes) { -- my $v = $ENV{$k} || '.'; -- print STDERR "DEBUG: $k = $v => "; -- $v = File::Spec->rel2abs($v) if $v; -- $ENV{$k} = $v; -- print STDERR "$k = $ENV{$k}\n"; -+ my $v = $values{$k} || [ '.' ]; -+ die "Can't have more than one $k\n" if scalar @$v > 1; -+ print STDERR "DEBUG: $k = $v->[0] => "; -+ $v = [ map { File::Spec->rel2abs($_) } @$v ]; -+ $values{$k} = $v; -+ print STDERR "$k = $v->[0]\n"; - } - - # Absolute paths for the subdir variables are computed. This provides -@@ -66,18 +68,31 @@ foreach my $k (@absolutes) { - foreach my $pair (@subdirs) { - my ($var, $subdir_vars) = @$pair; - foreach my $k (@$subdir_vars) { -- my $v = $ENV{$k} || '.'; -- print STDERR "DEBUG: $k = $v => "; -- if (File::Spec->file_name_is_absolute($v)) { -- my $kr = "${k}_REL_${var}"; -- $ENV{$kr} = File::Spec->abs2rel($v, $ENV{$var}); -- print STDERR "$kr = $ENV{$kr}\n"; -- } else { -- my $kr = "${k}_REL_${var}"; -- $ENV{$kr} = $v; -- $ENV{$k} = File::Spec->rel2abs($v, $ENV{$var}); -- print STDERR "$k = $ENV{$k} , $kr = $v\n"; -+ my $kr = "${k}_REL_${var}"; -+ my $v2 = $values{$k} || [ '.' ]; -+ $values{$k} = []; # We're rebuilding it -+ print STDERR "DEBUG: $k = ", -+ (scalar @$v2 > 1 ? "[ " . join(", ", @$v2) . " ]" : $v2->[0]), -+ " => "; -+ foreach my $v (@$v2) { -+ if (File::Spec->file_name_is_absolute($v)) { -+ push @{$values{$k}}, $v; -+ push @{$values{$kr}}, -+ File::Spec->abs2rel($v, $values{$var}->[0]); -+ } else { -+ push @{$values{$kr}}, $v; -+ push @{$values{$k}}, -+ File::Spec->rel2abs($v, $values{$var}->[0]); -+ } - } -+ print STDERR join(", ", -+ map { -+ my $v = $values{$_}; -+ "$_ = " . (scalar @$v > 1 -+ ? "[ " . join(", ", @$v) . " ]" -+ : $v->[0]); -+ } ($k, $kr)), -+ "\n"; - } - } - -@@ -92,13 +107,13 @@ our \@EXPORT = qw( - _____ - - foreach my $k (@absolutes) { -- print " \$$k\n"; -+ print " \@$k\n"; - } - foreach my $pair (@subdirs) { - my ($var, $subdir_vars) = @$pair; - foreach my $k (@$subdir_vars) { - my $k2 = "${k}_REL_${var}"; -- print " \$$k \$$k2\n"; -+ print " \@$k \@$k2\n"; - } - } - -@@ -109,24 +124,30 @@ print <<_____; - _____ - - foreach my $k (@absolutes) { -- print "our \$$k" . ' ' x (27 - length($k)) . "= '$ENV{$k}';\n"; -+ print "our \@$k" . ' ' x (27 - length($k)) . "= ( '", -+ join("', '", @{$values{$k}}), -+ "' );\n"; - } - foreach my $pair (@subdirs) { - my ($var, $subdir_vars) = @$pair; - foreach my $k (@$subdir_vars) { - my $k2 = "${k}_REL_${var}"; -- print "our \$$k" . ' ' x (27 - length($k)) . "= '$ENV{$k}';\n"; -- print "our \$$k2" . ' ' x (27 - length($k2)) . "= '$ENV{$k2}';\n"; -+ print "our \@$k" . ' ' x (27 - length($k)) . "= ( '", -+ join("', '", @{$values{$k}}), -+ "' );\n"; -+ print "our \@$k2" . ' ' x (27 - length($k2)) . "= ( '", -+ join("', '", @{$values{$k2}}), -+ "' );\n"; - } - } - - print <<_____; --our \$VERSION = '$ENV{VERSION}'; -+our \$VERSION = '$values{VERSION}->[0]'; - our \@LDLIBS = - # Unix and Windows use space separation, VMS uses comma separation - \$^O eq 'VMS' -- ? split(/ *, */, '$ENV{LDLIBS}') -- : split(/ +/, '$ENV{LDLIBS}'); -+ ? split(/ *, */, '$values{LDLIBS}->[0]') -+ : split(/ +/, '$values{LDLIBS}->[0]'); - - 1; - _____ --- -2.39.2 - diff --git a/recipes/libs/openssl/0008-exporters-for-pkg-config-align-with-the-changes-for-.patch b/recipes/libs/openssl/0008-exporters-for-pkg-config-align-with-the-changes-for-.patch deleted file mode 100644 index 22846556..00000000 --- a/recipes/libs/openssl/0008-exporters-for-pkg-config-align-with-the-changes-for-.patch +++ /dev/null @@ -1,94 +0,0 @@ -From 5673de461ae4b5a81f7ecd38103f3467585912bc Mon Sep 17 00:00:00 2001 -From: Richard Levitte -Date: Wed, 28 Aug 2024 18:52:39 +0200 -Subject: [PATCH] exporters for pkg-config: align with the changes for CMake - -The latest CMake exporter changes reworked the the variables in builddata.pm -and installdata.pm. Unfortunately, the pkg-config exporter templates were -forgotten in that effort. - -Fixes #25299 - -Reviewed-by: Matt Caswell -Reviewed-by: Neil Horman -(Merged from https://github.com/openssl/openssl/pull/25308) - -(cherry picked from commit 15b748496faeebb3b6d8021049bccc93903ee322) ---- - exporters/pkg-config/libcrypto.pc.in | 11 ++++++++--- - exporters/pkg-config/libssl.pc.in | 13 +++++++++---- - exporters/pkg-config/openssl.pc.in | 17 ++++++++++++----- - 3 files changed, 29 insertions(+), 12 deletions(-) - -diff --git a/exporters/pkg-config/libcrypto.pc.in b/exporters/pkg-config/libcrypto.pc.in -index f225bd6d22..3d56e97418 100644 ---- a/exporters/pkg-config/libcrypto.pc.in -+++ b/exporters/pkg-config/libcrypto.pc.in -@@ -1,8 +1,13 @@ - prefix={- $OpenSSL::safe::installdata::PREFIX[0] -} - exec_prefix=${prefix} --libdir={- $OpenSSL::safe::installdata::LIBDIR_REL_PREFIX[0] -- ? '${exec_prefix}/' . $OpenSSL::safe::installdata::LIBDIR_REL_PREFIX[0] -- : $OpenSSL::safe::installdata::libdir[0] -} -+libdir={- if (defined $OpenSSL::safe::installdata::LIBDIR_REL_PREFIX[0]) { -+ my $x = ''; -+ $x = '/' . $OpenSSL::safe::installdata::LIBDIR_REL_PREFIX[0] -+ if $OpenSSL::safe::installdata::LIBDIR_REL_PREFIX[0]; -+ '${exec_prefix}' . $x; -+ } else { -+ $OpenSSL::safe::installdata::libdir[0]; -+ } -} - includedir={- $OUT = ''; - $OUT .= '${prefix}/' . $_ . ' ' - foreach (@OpenSSL::safe::installdata::INCLUDEDIR_REL_PREFIX); -} -diff --git a/exporters/pkg-config/libssl.pc.in b/exporters/pkg-config/libssl.pc.in -index 80c91ec034..162db65c99 100644 ---- a/exporters/pkg-config/libssl.pc.in -+++ b/exporters/pkg-config/libssl.pc.in -@@ -1,8 +1,13 @@ --prefix={- $OpenSSL::safe::installdata::PREFIX -} -+prefix={- $OpenSSL::safe::installdata::PREFIX[0] -} - exec_prefix=${prefix} --libdir={- $OpenSSL::safe::installdata::LIBDIR_REL_PREFIX -- ? '${exec_prefix}/' . $OpenSSL::safe::installdata::LIBDIR_REL_PREFIX -- : $OpenSSL::safe::installdata::libdir -} -+libdir={- if (defined $OpenSSL::safe::installdata::LIBDIR_REL_PREFIX[0]) { -+ my $x = ''; -+ $x = '/' . $OpenSSL::safe::installdata::LIBDIR_REL_PREFIX[0] -+ if $OpenSSL::safe::installdata::LIBDIR_REL_PREFIX[0]; -+ '${exec_prefix}' . $x; -+ } else { -+ $OpenSSL::safe::installdata::libdir[0]; -+ } -} - includedir={- $OUT = ''; - $OUT .= '${prefix}/' . $_ . ' ' - foreach (@OpenSSL::safe::installdata::INCLUDEDIR_REL_PREFIX); -} -diff --git a/exporters/pkg-config/openssl.pc.in b/exporters/pkg-config/openssl.pc.in -index 225bef9e23..73eb8e73c2 100644 ---- a/exporters/pkg-config/openssl.pc.in -+++ b/exporters/pkg-config/openssl.pc.in -@@ -1,9 +1,16 @@ --prefix={- $OpenSSL::safe::installdata::PREFIX -} -+prefix={- $OpenSSL::safe::installdata::PREFIX[0] -} - exec_prefix=${prefix} --libdir={- $OpenSSL::safe::installdata::LIBDIR_REL_PREFIX -- ? '${exec_prefix}/' . $OpenSSL::safe::installdata::LIBDIR_REL_PREFIX -- : $OpenSSL::safe::installdata::libdir -} --includedir=${prefix}/{- $OpenSSL::safe::installdata::INCLUDEDIR_REL_PREFIX -} -+libdir={- if (defined $OpenSSL::safe::installdata::LIBDIR_REL_PREFIX[0]) { -+ my $x = ''; -+ $x = '/' . $OpenSSL::safe::installdata::LIBDIR_REL_PREFIX[0] -+ if $OpenSSL::safe::installdata::LIBDIR_REL_PREFIX[0]; -+ '${exec_prefix}' . $x; -+ } else { -+ $OpenSSL::safe::installdata::libdir[0]; -+ } -} -+includedir={- $OUT = ''; -+ $OUT .= '${prefix}/' . $_ . ' ' -+ foreach (@OpenSSL::safe::installdata::INCLUDEDIR_REL_PREFIX); -} - - Name: OpenSSL - Description: Secure Sockets Layer and cryptography libraries and tools --- -2.39.2 - From ebadfc59b241e809cb218561660f5be6b36f0cd0 Mon Sep 17 00:00:00 2001 From: Ralf Hubert Date: Tue, 27 Jan 2026 14:39:26 +0100 Subject: [PATCH 2/5] libs/openssl: make features configureable --- recipes/libs/openssl.yaml | 535 +++++++++++++++++++++++++++++++++++++- 1 file changed, 534 insertions(+), 1 deletion(-) diff --git a/recipes/libs/openssl.yaml b/recipes/libs/openssl.yaml index da799dbb..a5fa9ac8 100644 --- a/recipes/libs/openssl.yaml +++ b/recipes/libs/openssl.yaml @@ -21,9 +21,540 @@ checkoutDeterministic: True checkoutScript: | patchApplySeries $<@openssl/*.patch@> +Config: + # openssl feature configuration + # See: https://github.com/openssl/openssl/blob/openssl-3.5.4/INSTALL.md#enable-and-disable-features + OPENSSL_no_afalgeng: + type: bool + default: False + help: Don't build the AFALG engine. + OPENSSL_enable_ktls: + type: bool + default: False + help: Build with Kernel TLS support. + OPENSSL_enable_asan: + type: bool + default: False + help: Build with the Address sanitiser. + OPENSSL_enable_acvp_tests: + type: bool + default: False + help: <- + Build support for Automated Cryptographic Validation Protocol (ACVP) + tests. + OPENSSL_no_apps: + type: bool + default: False + help: <- + Do not build apps, e.g. the openssl program. This is handy for minimization. + This option also disables tests. + OPENSSL_no_async: + type: bool + default: False + help: Do not build support for async operations. + OPENSSL_no_atexit: + type: bool + default: False + help: Do not use `atexit()` in libcrypto builds. + OPENSSL_no_autoalginit: + type: bool + default: False + help: Don't automatically load all supported ciphers and digests. + OPENSSL_no_autoerrinit: + type: bool + default: False + help: Don't automatically load all libcrypto/libssl error strings. + OPENSSL_enable_brotli: + type: bool + default: False + help: Build with support for brotli compression/decompression. + OPENSSL_enable_brotli_dynamic: + type: bool + default: False + help: <- + Like the enable_brotli option, but has OpenSSL load the brotli library + dynamically when needed. + OPENSSL_no_autoload_config: + type: bool + default: False + help: Don't automatically load the default `openssl.cnf` file. + OPENSSL_enable_buildtest_cpp: + type: bool + default: False + help: <- + While testing, generate C++ buildtest files that simply check that the public + OpenSSL header files are usable standalone with C++. + OPENSSL_no_capieng: + type: bool + default: False + help: Don't build the CAPI engine. + OPENSSL_no_cmp: + type: bool + default: False + help: <- + Don't build support for Certificate Management Protocol (CMP) + and Certificate Request Message Format (CRMF). + OPENSSL_no_cms: + type: bool + default: False + help: <- + Don't build support for Cryptographic Message Syntax (CMS). + OPENSSL_no_comp: + type: bool + default: False + help: Don't build support for SSL/TLS compression. + OPENSSL_no_ct: + type: bool + default: False + help: Don't build support for Certificate Transparency (CT). + OPENSSL_no_deprecated: + type: bool + default: False + help: <- + Don't build with support for deprecated APIs up until and including the version + given with `__api` (or the current version, if `__api` wasn't specified). + OPENSSL_no_dgram: + type: bool + default: False + help: Don't build support for datagram based BIOs. + OPENSSL_no_docs: + type: bool + default: False + help: Don't build and install documentation, i.e. manual pages in various forms. + OPENSSL_no_dso: + type: bool + default: False + help: Don't build support for loading Dynamic Shared Objects (DSO) + OPENSSL_enable_devcryptoeng: + type: bool + default: False + help: Build the `/dev/crypto` engine. + OPENSSL_no_dynamic_engine: + type: bool + default: False + help: Don't build the dynamically loaded engines. + OPENSSL_no_ec: + type: bool + default: False + help: Don't build support for Elliptic Curves. + OPENSSL_no_ec2m: + type: bool + default: False + help: Don't build support for binary Elliptic Curves + OPENSSL_no_tls_deprecated_ec: + type: bool + default: False + help: Disable legacy TLS EC groups that were deprecated in RFC8422. + OPENSSL_enable_ec_nistp_64_gcc_128: + type: bool + default: False + help: <- + Enable support for optimised implementations of some commonly used NIST + elliptic curves. + OPENSSL_enable_egd: + type: bool + default: False + help: Build support for gathering entropy from the Entropy Gathering Daemon (EGD). + OPENSSL_no_engine: + type: bool + default: False + help: Don't build support for loading engines. + OPENSSL_no_err: + type: bool + default: False + help: Don't compile in any error strings. + OPENSSL_no_filenames: + type: bool + default: False + help: <- + Don't compile in filename and line number information (e.g. for errors and + memory allocation). + OPENSSL_enable_fips: + type: bool + default: False + help: Build (and install) the FIPS provider + OPENSSL_no_fips_securitychecks: + type: bool + default: False + help: <- + Don't perform FIPS module run_time checks related to enforcement of security + parameters such as minimum security strength of keys. + OPENSSL_enable_fips_jitter: + type: bool + default: False + help: Use the CPU Jitter library as a FIPS validated entropy source. + OPENSSL_no_gost: + type: bool + default: False + help: Don't build support for GOST based ciphersuites. # codespell:ignore + OPENSSL_no_http: + type: bool + default: False + help: Disable HTTP support. + OPENSSL_no_legacy: + type: bool + default: False + help: Don't build the legacy provider. + OPENSSL_no_ml_dsa: + type: bool + default: False + help: <- + Disable Module_Lattice_Based Digital Signature Standard (ML_DSA) support. + ML_DSA is based on CRYSTALS_DILITHIUM. See [FIPS 204]. + OPENSSL_no_ml_kem: + type: bool + default: False + help: <- + Disable Module_Lattice_Based Key_Encapsulation Mechanism Standard (ML_KEM) + support. ML_KEM is based on CRYSTALS_KYBER. See [FIPS 203]. + OPENSSL_no_module: + type: bool + default: False + help: Don't build any dynamically loadable engines. + OPENSSL_no_multiblock: + type: bool + default: False + help: Don't build support for writing multiple records in one go in libssl + OPENSSL_no_nextprotoneg: + type: bool + default: False + help: Don't build support for the Next Protocol Negotiation (NPN) TLS extension. + OPENSSL_no_ocsp: + type: bool + default: False + help: Don't build support for Online Certificate Status Protocol (OCSP). + OPENSSL_no_padlockeng: + type: bool + default: False + help: Don't build the padlock engine. + OPENSSL_no_pic: + type: bool + default: False + help: Don't build with support for Position Independent Code. + OPENSSL_enable_pie: + type: bool + default: False + help: Build with support for Position Independent Execution. + OPENSSL_no_posix_io: + type: bool + default: False + help: Don't use POSIX IO capabilities. + OPENSSL_no_psk: + type: bool + default: False + help: Don't build support for Pre_Shared Key based ciphersuites. + OPENSSL_no_rdrand: + type: bool + default: False + help: Don't use hardware RDRAND capabilities. + OPENSSL_no_rfc3779: + type: bool + default: False + help: <- + Don't build support for RFC3779, "X.509 Extensions for IP Addresses and + AS Identifiers". + OPENSSL_sctp: + type: bool + default: False + help: Build support for Stream Control Transmission Protocol (SCTP). + OPENSSL_no_slh_dsa: + type: bool + default: False + help: <- + Disable Stateless Hash Based Digital Signature Standard support. + (SLH_DSA is based on SPHINCS+. See [FIPS 205]) + OPENSSL_no_sm2_precomp: + type: bool + default: False + help: <- + Disable using the SM2 precomputed table on aarch64 to make the library smaller. + OPENSSL_no_sock: + type: bool + default: False + help: Don't build support for socket BIOs. + OPENSSL_no_srp: + type: bool + default: False + help: <- + Don't build support for Secure Remote Password (SRP) protocol or + SRP based ciphersuites. + OPENSSL_no_srtp: + type: bool + default: False + help: Don't build Secure Real_Time Transport Protocol (SRTP) support. + OPENSSL_no_sse2: + type: bool + default: False + help: Exclude SSE2 code paths from 32_bit x86 assembly modules. + OPENSSL_no_ssl_trace: + type: bool + default: False + help: Don't build with SSL Trace capabilities. + OPENSSL_no_static_engine: + type: bool + default: False + help: Don't build the statically linked engines. + OPENSSL_no_tests: + type: bool + default: False + help: Don't build test programs or run any tests. + OPENSSL_enable_tfo: + type: bool + default: False + help: <- + Build with support for TCP Fast Open (RFC7413). Supported on Linux, + macOS and FreeBSD. + OPENSSL_no_quic: + type: bool + default: False + help: Don't build with QUIC support. + OPENSSL_no_threads: + type: bool + default: False + help: Don't build with support for multi_threaded applications. + OPENSSL_threads: + type: bool + default: False + help: Build with support for multi_threaded applications. + OPENSSL_no_thread_pool: + type: bool + default: False + help: Don't build with support for thread pool functionality. + OPENSSL_enable_trace: + type: bool + default: False + help: Build with support for the integrated tracing api. + OPENSSL_no_ts: + type: bool + default: False + help: Don't build Time Stamping (TS) Authority support. + OPENSSL_no_ui_console: + type: bool + default: False + help: Don't build with the User Interface (UI) console method + OPENSSL_enable_unit_test: + type: bool + default: False + help: Enable additional unit test APIs. + OPENSSL_no_uplink: + type: bool + default: False + help: Don't build support for UPLINK interface. + OPENSSL_enable_weak_ssl_ciphers: + type: bool + default: False + help: Build support for SSL/TLS ciphers that are considered "weak" + OPENSSL_no_ssl: + type: bool + default: False + help: Don't build support for negotiating the specified SSL/TLS protocol. + OPENSSL_no_ssl3: + type: bool + default: False + help: Don't build support for negotiating the specified SSL/TLS protocol. + OPENSSL_no_tls: + type: bool + default: False + help: Don't build support for negotiating the specified SSL/TLS protocol. + OPENSSL_no_tls1: + type: bool + default: False + help: Don't build support for negotiating the specified SSL/TLS protocol. + OPENSSL_no_tls1_1: + type: bool + default: False + help: Don't build support for negotiating the specified SSL/TLS protocol. + OPENSSL_no_tls1_2: + type: bool + default: False + help: Don't build support for negotiating the specified SSL/TLS protocol. + OPENSSL_no_tls1_3: + type: bool + default: False + help: Don't build support for negotiating the specified SSL/TLS protocol. + OPENSSL_no_dtls: + type: bool + default: False + help: Don't build support for negotiating the specified SSL/TLS protocol. + OPENSSL_no_dtls1: + type: bool + default: False + help: Don't build support for negotiating the specified SSL/TLS protocol. + OPENSSL_no_dtls1_2: + type: bool + default: False + help: Don't build support for negotiating the specified SSL/TLS protocol. + OPENSSL_no_integrity_only_ciphers: + type: bool + default: False + help: Don't build support for integrity only ciphers in tls. + OPENSSL_enable_md2: + type: bool + default: False + help: enable_md2 + OPENSSL_enable_rc5: + type: bool + default: False + help: enable_rc5 + OPENSSL_no_aria: + type: bool + default: False + help: Build without support for the specified algorithm. + OPENSSL_no_bf: + type: bool + default: False + help: Build without support for the specified algorithm. + OPENSSL_no_blake2: + type: bool + default: False + help: Build without support for the specified algorithm. + OPENSSL_no_camellia: + type: bool + default: False + help: Build without support for the specified algorithm. + OPENSSL_no_cast: + type: bool + default: False + help: Build without support for the specified algorithm. + OPENSSL_no_chacha: + type: bool + default: False + help: Build without support for the specified algorithm. + OPENSSL_no_des: + type: bool + default: False + help: Build without support for the specified algorithm. + OPENSSL_no_dh: + type: bool + default: False + help: Build without support for the specified algorithm. + OPENSSL_no_dsa: + type: bool + default: False + help: Build without support for the specified algorithm. + OPENSSL_no_ecdh: + type: bool + default: False + help: Build without support for the specified algorithm. + OPENSSL_no_ecdsa: + type: bool + default: False + help: Build without support for the specified algorithm. + OPENSSL_no_idea: + type: bool + default: False + help: Build without support for the specified algorithm. + OPENSSL_no_md4: + type: bool + default: False + help: Build without support for the specified algorithm. + OPENSSL_no_mdc2: + type: bool + default: False + help: Build without support for the specified algorithm. + OPENSSL_no_ocb: + type: bool + default: False + help: Build without support for the specified algorithm. + OPENSSL_no_poly1305: + type: bool + default: False + help: Build without support for the specified algorithm. + OPENSSL_no_rc2: + type: bool + default: False + help: Build without support for the specified algorithm. + OPENSSL_no_rc4: + type: bool + default: False + help: Build without support for the specified algorithm. + OPENSSL_no_rmd160: + type: bool + default: False + help: Build without support for the specified algorithm. + OPENSSL_no_scrypt: + type: bool + default: False + help: Build without support for the specified algorithm. + OPENSSL_no_seed: + type: bool + default: False + help: Build without support for the specified algorithm. + OPENSSL_no_siphash: + type: bool + default: False + help: Build without support for the specified algorithm. + OPENSSL_no_siv: + type: bool + default: False + help: Build without support for the specified algorithm. + OPENSSL_no_sm2: + type: bool + default: False + help: Build without support for the specified algorithm. + OPENSSL_no_sm3: + type: bool + default: False + help: Build without support for the specified algorithm. + OPENSSL_no_sm4: + type: bool + default: False + help: Build without support for the specified algorithm. + OPENSSL_no_whirlpool: + type: bool + default: False + help: Build without support for the specified algorithm. + buildTools: [target-toolchain] buildToolsWeak: [perl] -buildVars: [CC, AR, RANLIB, ARCH, AUTOCONF_HOST] +buildVars: [CC, AR, RANLIB, ARCH, AUTOCONF_HOST, + OPENSSL_no_afalgeng, OPENSSL_enable_ktls, OPENSSL_enable_asan, + OPENSSL_enable_acvp_tests, OPENSSL_no_apps, OPENSSL_no_async, + OPENSSL_no_atexit, OPENSSL_no_autoalginit, OPENSSL_no_autoerrinit, + OPENSSL_enable_brotli, OPENSSL_enable_brotli_dynamic, + OPENSSL_no_autoload_config, OPENSSL_enable_buildtest_cpp, + OPENSSL_no_capieng, OPENSSL_no_cmp, OPENSSL_no_cms, OPENSSL_no_comp, + OPENSSL_no_ct, OPENSSL_no_deprecated, OPENSSL_no_dgram, OPENSSL_no_docs, + OPENSSL_no_dso, OPENSSL_enable_devcryptoeng, OPENSSL_no_dynamic_engine, + OPENSSL_no_ec, OPENSSL_no_ec2m, OPENSSL_no_tls_deprecated_ec, + OPENSSL_enable_ec_nistp_64_gcc_128, OPENSSL_enable_egd, OPENSSL_no_engine, + OPENSSL_no_err, OPENSSL_no_filenames, OPENSSL_enable_fips, + OPENSSL_no_fips_securitychecks, OPENSSL_enable_fips_jitter, + OPENSSL_no_gost, OPENSSL_no_http, OPENSSL_no_legacy, OPENSSL_no_ml_dsa, + OPENSSL_no_ml_kem, OPENSSL_no_module, OPENSSL_no_multiblock, + OPENSSL_no_nextprotoneg, OPENSSL_no_ocsp, OPENSSL_no_padlockeng, + OPENSSL_no_pic, OPENSSL_enable_pie, OPENSSL_no_posix_io, OPENSSL_no_psk, + OPENSSL_no_rdrand, OPENSSL_no_rfc3779, OPENSSL_sctp, OPENSSL_no_slh_dsa, + OPENSSL_no_sm2_precomp, OPENSSL_no_sock, OPENSSL_no_srp, OPENSSL_no_srtp, + OPENSSL_no_sse2, OPENSSL_no_ssl_trace, OPENSSL_no_static_engine, + OPENSSL_no_tests, OPENSSL_enable_tfo, OPENSSL_no_quic, OPENSSL_no_threads, + OPENSSL_threads, OPENSSL_no_thread_pool, OPENSSL_enable_trace, + OPENSSL_no_ts, OPENSSL_no_ui_console, OPENSSL_enable_unit_test, + OPENSSL_no_uplink, OPENSSL_enable_weak_ssl_ciphers, OPENSSL_no_ssl, + OPENSSL_no_ssl3, OPENSSL_no_tls, OPENSSL_no_tls1, OPENSSL_no_tls1_1, + OPENSSL_no_tls1_2, OPENSSL_no_tls1_3, OPENSSL_no_dtls, OPENSSL_no_dtls1, + OPENSSL_no_dtls1_2, OPENSSL_no_integrity_only_ciphers, OPENSSL_enable_md2, + OPENSSL_enable_rc5, OPENSSL_no_aria, OPENSSL_no_bf, OPENSSL_no_blake2, + OPENSSL_no_camellia, OPENSSL_no_cast, OPENSSL_no_chacha, OPENSSL_no_des, + OPENSSL_no_dh, OPENSSL_no_dsa, OPENSSL_no_ecdh, OPENSSL_no_ecdsa, + OPENSSL_no_idea, OPENSSL_no_md4, OPENSSL_no_mdc2, OPENSSL_no_ocb, + OPENSSL_no_poly1305, OPENSSL_no_rc2, OPENSSL_no_rc4, OPENSSL_no_rmd160, + OPENSSL_no_scrypt, OPENSSL_no_seed, OPENSSL_no_siphash, OPENSSL_no_siv, + OPENSSL_no_sm2, OPENSSL_no_sm3, OPENSSL_no_sm4, OPENSSL_no_whirlpool] +buildSetup: | + collect_options () { + local prefix="$1" + local result="" + + while IFS='=' read -r name value; do + if [[ "$name" == ${prefix}* && "${value}" == "1" ]]; + then + result+="${name#${prefix}} " + fi + done < <(env) + + echo "${result%" "}" + } buildScript: | mkdir -p install build pushd build @@ -80,6 +611,8 @@ buildScript: | --libdir=lib \ "${SHARED_STATIC[@]}" \ "threads" \ + $(collect_options "OPENSSL_no") \ + $(collect_options "OPENSSL_enable") \ "-I${BOB_DEP_PATHS[libs::zlib-dev]}/usr/include" \ "-Wl,-L${BOB_DEP_PATHS[libs::zlib-dev]}/usr/lib" \ "-Wl,-rpath-link=${BOB_DEP_PATHS[libs::zlib-dev]}/usr/lib" \ From 85d693522b202d35ce86411b30a2f1acd5c7d480 Mon Sep 17 00:00:00 2001 From: Ralf Hubert Date: Tue, 27 Jan 2026 14:40:50 +0100 Subject: [PATCH 3/5] libs/openssl: add support for zstd --- recipes/libs/openssl.yaml | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/recipes/libs/openssl.yaml b/recipes/libs/openssl.yaml index a5fa9ac8..703b98eb 100644 --- a/recipes/libs/openssl.yaml +++ b/recipes/libs/openssl.yaml @@ -6,11 +6,17 @@ metaEnvironment: depends: - libs::zlib-dev - - use: [] depends: - libs::zlib-tgt + - if: "${OPENSSL_zstd:-False}" + depends: + - libs::zstd-dev + - use: [] + depends: + - libs::zstd-tgt + checkoutSCM: scm: url url: https://www.openssl.org/source/openssl-${PKG_VERSION}.tar.gz @@ -344,6 +350,10 @@ Config: type: bool default: False help: Build support for SSL/TLS ciphers that are considered "weak" + OPENSSL_zstd: + type: bool + default: False + help: Build with support for Zstd compression/decompression. OPENSSL_no_ssl: type: bool default: False From 2eb8a8353d42c131e199493a770a95a8dfbaa7d1 Mon Sep 17 00:00:00 2001 From: Ralf Hubert Date: Tue, 27 Jan 2026 14:41:26 +0100 Subject: [PATCH 4/5] libs/openssl: disable module support for static builds --- recipes/libs/openssl.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/recipes/libs/openssl.yaml b/recipes/libs/openssl.yaml index 703b98eb..14ada35e 100644 --- a/recipes/libs/openssl.yaml +++ b/recipes/libs/openssl.yaml @@ -573,6 +573,7 @@ buildScript: | case $(cpackageLibraryType) in static) SHARED_STATIC=( "-static" "zlib" ) + OPENSSL_no_dso="1" ;; shared) SHARED_STATIC=( "shared" "zlib" ) From ac578547706ec32ae25723f33e84a06f46736e3e Mon Sep 17 00:00:00 2001 From: Ralf Hubert Date: Tue, 27 Jan 2026 14:42:07 +0100 Subject: [PATCH 5/5] libs/openssl: add tool package Add a special package providing the openssl-tool. This is required since we need to gather all dependencies if the tool is linked shared to support loadable plugins. --- recipes/libs/openssl.yaml | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/recipes/libs/openssl.yaml b/recipes/libs/openssl.yaml index 14ada35e..e7bd28fe 100644 --- a/recipes/libs/openssl.yaml +++ b/recipes/libs/openssl.yaml @@ -646,8 +646,24 @@ multiPackage: use: [] packageScript: installPackageBin "$1/install/" provideDeps: [ "*-tgt" ] + + tool: + # special host-tool package. Using openssl with plugins requires shared linkage. + # This package gathers all dependencies to ease the usage of the tool. + depends: + - libs::openssl-tgt + packageDepends: True + packageScript: | + installPackageBin "$1/install/" + for d in "${!BOB_DEP_PATHS[@]}"; do + if [[ $d == *-tgt ]]; then + cp -ar ${BOB_DEP_PATHS[$d]}/* . + fi + done provideTools: - openssl: "usr/bin" + openssl: + path: "usr/bin" + libs: ["usr/lib", "usr/lib/engines"] dev: # Static library builds need to explicitly link with libz but the