From db22543b542fa8742751450dc9291869bd93d896 Mon Sep 17 00:00:00 2001 From: Markus Volk Date: Sat, 10 Oct 2026 09:50:19 +0200 Subject: [PATCH] apache2: fix build with OpenSSL 4 ASN1_STRING is opaque in OpenSSL 4, so mod_md fails to compile in md_ocsp.c. Backport the httpd 2.4.x commit that switches to the getter functions. The fix is part of httpd 2.4.69, which master gets through the upgrade. Upstream-Status: Backport [https://github.com/apache/httpd/commit/6cd9ea8dcb5bf68a195e90578c7f05e12eba5468] AI-Generated: Uses Claude Code (Claude Opus 5.5) Signed-off-by: Markus Volk --- ...mod_md-Add-OpenSSL-4.0-compatibility.patch | 47 +++++++++++++++++++ .../recipes-httpd/apache2/apache2_2.4.68.bb | 1 + 2 files changed, 48 insertions(+) create mode 100644 meta-webserver/recipes-httpd/apache2/apache2/0011-mod_md-Add-OpenSSL-4.0-compatibility.patch diff --git a/meta-webserver/recipes-httpd/apache2/apache2/0011-mod_md-Add-OpenSSL-4.0-compatibility.patch b/meta-webserver/recipes-httpd/apache2/apache2/0011-mod_md-Add-OpenSSL-4.0-compatibility.patch new file mode 100644 index 0000000000..ee127681ec --- /dev/null +++ b/meta-webserver/recipes-httpd/apache2/apache2/0011-mod_md-Add-OpenSSL-4.0-compatibility.patch @@ -0,0 +1,47 @@ +From 6cd9ea8dcb5bf68a195e90578c7f05e12eba5468 Mon Sep 17 00:00:00 2001 +From: Rainer Jung +Date: Wed, 17 Jun 2026 09:48:52 +0000 +Subject: [PATCH] mod_md: Add OpenSSL 4.0 compatibility + +* Use getters instead of direct member access. + +* Struct was made opaque in OpenSSL 4. Getters exist since OpenSSL 1.1.0. + +* Keep OpenSSL 1.0.2 compatibility. + +Merge from icing/md: +https://github.com/icing/mod_md/commit/9fd90380db0722f0ccc14ff1c4da0ca21d4da75c + +Backport of r1935161 from trunk, [mod_md CTR] + + +Upstream-Status: Backport [https://github.com/apache/httpd/commit/6cd9ea8dcb5bf68a195e90578c7f05e12eba5468] +--- +diff --git a/modules/md/md_ocsp.c b/modules/md/md_ocsp.c +index aee799a7b39..2e7f14dff31 100644 +--- a/modules/md/md_ocsp.c ++++ b/modules/md/md_ocsp.c +@@ -533,13 +533,23 @@ static const char *certid_summary(const OCSP_CERTID *certid, apr_pool_t *p) + serial = issuer = key = "???"; + OCSP_id_get0_info(&aname_hash, &amd_nid, &akey_hash, &aserial, (OCSP_CERTID*)certid); + if (aname_hash) { ++#if OPENSSL_VERSION_NUMBER < 0x10100000L + data.len = (apr_size_t)aname_hash->length; + data.data = (const char*)aname_hash->data; ++#else ++ data.len = (apr_size_t)ASN1_STRING_length(aname_hash); ++ data.data = (const char*)ASN1_STRING_get0_data(aname_hash); ++#endif + md_data_to_hex(&issuer, 0, p, &data); + } + if (akey_hash) { ++#if OPENSSL_VERSION_NUMBER < 0x10100000L + data.len = (apr_size_t)akey_hash->length; + data.data = (const char*)akey_hash->data; ++#else ++ data.len = (apr_size_t)ASN1_STRING_length(akey_hash); ++ data.data = (const char*)ASN1_STRING_get0_data(akey_hash); ++#endif + md_data_to_hex(&key, 0, p, &data); + } + if (aserial) { diff --git a/meta-webserver/recipes-httpd/apache2/apache2_2.4.68.bb b/meta-webserver/recipes-httpd/apache2/apache2_2.4.68.bb index dc8c0df12d..f178007ab7 100644 --- a/meta-webserver/recipes-httpd/apache2/apache2_2.4.68.bb +++ b/meta-webserver/recipes-httpd/apache2/apache2_2.4.68.bb @@ -16,6 +16,7 @@ SRC_URI = "${APACHE_MIRROR}/httpd/httpd-${PV}.tar.bz2 \ file://0008-Fix-perl-install-directory-to-usr-bin.patch \ file://0009-support-apxs.in-force-destdir-to-be-empty-string.patch \ file://0001-make_exports.awk-not-expose-the-path.patch \ + file://0011-mod_md-Add-OpenSSL-4.0-compatibility.patch \ " SRC_URI:append:class-target = " \