From b6df704cd4461a804b2adc743ffe2a786b1520d0 Mon Sep 17 00:00:00 2001 From: Christoph Reiter Date: Wed, 21 Dec 2022 14:01:45 +0100 Subject: [PATCH] serf: backport openssl v3 fixes from Arch --- serf/PKGBUILD | 14 +++++++++++--- serf/openssl3-BIO_ctrl.patch | 22 ++++++++++++++++++++++ serf/openssl3-ERR_GET_FUNC.patch | 13 +++++++++++++ 3 files changed, 46 insertions(+), 3 deletions(-) create mode 100644 serf/openssl3-BIO_ctrl.patch create mode 100644 serf/openssl3-ERR_GET_FUNC.patch diff --git a/serf/PKGBUILD b/serf/PKGBUILD index c8d64c4b..454d301e 100644 --- a/serf/PKGBUILD +++ b/serf/PKGBUILD @@ -3,7 +3,7 @@ pkgbase=serf pkgname=("lib${pkgbase}" "lib${pkgbase}-devel") pkgver=1.3.9 -pkgrel=6 +pkgrel=7 pkgdesc="High-performance asynchronous HTTP client library" arch=('i686' 'x86_64') url="https://serf.apache.org/" @@ -14,13 +14,17 @@ source=(https://archive.apache.org/dist/serf/${pkgbase}-${pkgver}.tar.bz2 05-disable-SHLIBVERSION.patch 06-strcasecmp.patch 07-sspi-auth.patch - scons-python3.patch) + scons-python3.patch + openssl3-ERR_GET_FUNC.patch + openssl3-BIO_ctrl.patch) sha256sums=('549c2d21c577a8a9c0450facb5cca809f26591f048e466552240947bdf7a87cc' '87767cd9b5e568a10f234df46f413a408613965e9d1b8cde1c0145f7eb20f0f1' '1efab80c71b6987ed504d307c39a623aef849bc7cc39c6aeac3d9338f7459be8' '313b272609729d80dedf608f9f1939526e687fdf4a1b50e1a66505c93c2ee56f' '84a43b3b6d3024195fdc69d215898ac426286329025bfa239ebe27a5c7507bc0' - '363732546098b4c9415eb5d38b595d04c660c6324a34159768d334507b7d241f') + '363732546098b4c9415eb5d38b595d04c660c6324a34159768d334507b7d241f' + '15026f5ce219d2222dbdb6dcbb8911f3c8fbe0cedf3a2ec2ff434dde8d7fb9be' + 'bf30b79aff5b058ba3852930dad4e5c16fc2e2d76810ca80e6e22e3c8121cff6') prepare() { cd ${pkgbase}-${pkgver} @@ -30,6 +34,10 @@ prepare() { patch -p1 -i ${srcdir}/06-strcasecmp.patch patch -p1 -i ${srcdir}/07-sspi-auth.patch patch -p1 -i ${srcdir}/scons-python3.patch + + # taken from Arch: https://github.com/archlinux/svntogit-packages/tree/6e00fe4c8e530bd4fd62215cc3154a78c124fbdf/trunk + patch -p1 -i ${srcdir}/openssl3-ERR_GET_FUNC.patch + patch -p1 -i ${srcdir}/openssl3-BIO_ctrl.patch } build() { diff --git a/serf/openssl3-BIO_ctrl.patch b/serf/openssl3-BIO_ctrl.patch new file mode 100644 index 00000000..6bf3aba6 --- /dev/null +++ b/serf/openssl3-BIO_ctrl.patch @@ -0,0 +1,22 @@ +https://src.fedoraproject.org/rpms/libserf/raw/rawhide/f/libserf-1.3.9-bio-ctrl.patch +https://bugs.gentoo.org/805161 +https://issues.apache.org/jira/projects/SERF/issues/SERF-198 +--- a/buckets/ssl_buckets.c ++++ b/buckets/ssl_buckets.c +@@ -407,7 +407,7 @@ static int bio_bucket_destroy(BIO *bio) + + static long bio_bucket_ctrl(BIO *bio, int cmd, long num, void *ptr) + { +- long ret = 1; ++ long ret = 0; + + switch (cmd) { + default: +@@ -415,6 +415,7 @@ static long bio_bucket_ctrl(BIO *bio, int cmd, long num, void *ptr) + break; + case BIO_CTRL_FLUSH: + /* At this point we can't force a flush. */ ++ ret = 1; + break; + case BIO_CTRL_PUSH: + case BIO_CTRL_POP: diff --git a/serf/openssl3-ERR_GET_FUNC.patch b/serf/openssl3-ERR_GET_FUNC.patch new file mode 100644 index 00000000..c5ac4a6a --- /dev/null +++ b/serf/openssl3-ERR_GET_FUNC.patch @@ -0,0 +1,13 @@ +--- serf-1.3.9/buckets/ssl_buckets.c.errgetfunc ++++ serf-1.3.9/buckets/ssl_buckets.c +@@ -1204,6 +1204,10 @@ + } + } + ++#ifndef ERR_GET_FUNC ++#define ERR_GET_FUNC(ec) (0) ++#endif ++ + static int ssl_need_client_cert(SSL *ssl, X509 **cert, EVP_PKEY **pkey) + { + serf_ssl_context_t *ctx = SSL_get_app_data(ssl);