net-libs/serf: add upstream libressl patch

This patch was accepted upstream and disables the use of
OPENSSL_malloc_init() when it is not available as is the case with
LibreSSL. Additionally serf has changed greatly since the 1.3.9 release
in 2016 and no longer uses OPENSSL_malloc_init() altogether in their
current git commit (2899841) which has no build failures with LibreSSL
3.7.2.

The build fix for the tests (Commit 6f689c72) was not backported since
the tests are restricted in the ebuild.

Bug: https://bugs.gentoo.org/903001
Upstream-Commit: df0d2d0dbd
Signed-off-by: orbea <orbea@riseup.net>
Closes: https://github.com/gentoo/gentoo/pull/30817
Signed-off-by: Sam James <sam@gentoo.org>
This commit is contained in:
orbea
2023-04-30 19:48:07 -07:00
committed by Sam James
parent 6736b24818
commit 2a155bd2b7
2 changed files with 52 additions and 0 deletions

View File

@@ -0,0 +1,51 @@
https://bugs.gentoo.org/903001
https://github.com/apache/serf/commit/df0d2d0dbdf88576f26da9c71df3ab6249d351dc
From df0d2d0dbdf88576f26da9c71df3ab6249d351dc Mon Sep 17 00:00:00 2001
From: Stefan Sperling <stsp@apache.org>
Date: Tue, 20 Dec 2016 09:57:08 +0000
Subject: [PATCH] Fix another build problem with LibreSSL.
* SConstruct: Check for OpenSSL_malloc_init() and provide the
SERF_HAVE_OPENSSL_MALLOC_INIT feature flag.
* buckets/ssl_buckets.c
(init_ssl_libraries): Use SERF_HAVE_OPENSSL_MALLOC_INIT instead
of USE_LEGACY_OPENSSL.
git-svn-id: https://svn.apache.org/repos/asf/serf/trunk@1775242 13f79535-47bb-0310-9956-ffa450edef68
---
SConstruct | 6 ++++++
buckets/ssl_buckets.c | 2 +-
2 files changed, 7 insertions(+), 1 deletion(-)
diff --git a/SConstruct b/SConstruct
index 4358a23..115f409 100644
--- a/SConstruct
+++ b/SConstruct
@@ -373,6 +373,12 @@ else:
env.Append(CPPPATH=['$OPENSSL/include'])
env.Append(LIBPATH=['$OPENSSL/lib'])
+ # Check for OpenSSL functions which are only available in some of
+ # the versions we support. Also handles forks like LibreSSL.
+ conf = Configure(env)
+ if conf.CheckFunc('OPENSSL_malloc_init'):
+ env.Append(CPPDEFINES=['SERF_HAVE_OPENSSL_MALLOC_INIT'])
+ env = conf.Finish()
# If build with gssapi, get its information and define SERF_HAVE_GSSAPI
if gssapi and CALLOUT_OKAY:
diff --git a/buckets/ssl_buckets.c b/buckets/ssl_buckets.c
index b01e535..27c84c7 100644
--- a/buckets/ssl_buckets.c
+++ b/buckets/ssl_buckets.c
@@ -1156,7 +1156,7 @@ static void init_ssl_libraries(void)
}
#endif
-#ifdef USE_OPENSSL_1_1_API
+#ifdef SERF_HAVE_OPENSSL_MALLOC_INIT
OPENSSL_malloc_init();
#else
CRYPTO_malloc_init();

View File

@@ -34,6 +34,7 @@ PATCHES=(
"${FILESDIR}"/${PN}-1.3.9-python3-check.patch
"${FILESDIR}"/${PN}-1.3.9-openssl-3-bio-ctrl.patch
"${FILESDIR}"/${PN}-1.3.9-openssl-3-errgetfunc.patch
"${FILESDIR}"/${PN}-1.3.9-libressl.patch #903001
)
src_prepare() {