#1138418 galera-4: FTBFS with openssl 4.0

Package:
galera-4
Source:
galera-4
Description:
Replication framework for transactional applications
Submitter:
Sebastian Andrzej Siewior
Date:
2026-08-08 14:51:01 UTC
Severity:
normal
Tags:
#1138418#5
Date:
2026-05-30 16:11:06 UTC
From:
To:
OpenSSL 4.0 is in experimental. This package fails to build against it:

| cd /build/reproducible-path/galera-4-26.4.25/obj-x86_64-linux-gnu/galerautils/src && /usr/bin/c++ -DBOOST_BIND_GLOBAL_PLACEHOLDERS=1 -DBOOST_DATE_TIME_POSIX_TIME_STD_CONFIG=1 -DGALERA_HAVE_SSL -DGALERA_LOG_H_ENABLE_CXX -DHAVE_ASIO_HPP -DHAVE_BOOST_SHARED_PTR_HPP -DHAVE_BYTESWAP_H -DHAVE_COMMON_H -DHAVE_ENDIAN_H -DHAVE_STD_ARRAY -DHAVE_STD_UNORDERED_MAP -DNDEBUG -DOPENSSL_HAS_SET_ECDH_AUTO -D_XOPEN_SOURCE=600 -I/build/reproducible-path/galera-4-26.4.25 -I/build/reproducible-path/galera-4-26.4.25/common -I/build/reproducible-path/galera-4-26.4.25/galera/src -I/build/reproducible-path/galera-4-26.4.25/galerautils/src -I/build/reproducible-path/galera-4-26.4.25/gcache/src -I/build/reproducible-path/galera-4-26.4.25/gcomm/src -I/build/reproducible-path/galera-4-26.4.25/gcs/src -I/build/reproducible-path/galera-4-26.4.25/wsrep/src -Wall -Wextra -g -O2 -Woverloaded-virtual -g -O2 -ffile-prefix-map=/build/reproducible-path/galera-4-26.4.25=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection -Wdate-time -D_FORTIFY_SOURCE=2 -std=gnu++11 -fPIC -Wno-conversion -Wno-unused-parameter -MD -MT galerautils/src/CMakeFiles/galerautilsxx.dir/gu_asio.cpp.o -MF CMakeFiles/galerautilsxx.dir/gu_asio.cpp.o.d -o CMakeFiles/galerautilsxx.dir/gu_asio.cpp.o -c /build/reproducible-path/galera-4-26.4.25/galerautils/src/gu_asio.cpp
| In file included from /usr/include/asio/ssl/rfc2818_verification.hpp:93,
|                  from /usr/include/asio/ssl.hpp:21,
|                  from /build/reproducible-path/galera-4-26.4.25/galerautils/src/gu_asio_io_service_impl.hpp:21,
|                  from /build/reproducible-path/galera-4-26.4.25/galerautils/src/gu_asio.cpp:26:
| /usr/include/asio/ssl/impl/rfc2818_verification.ipp: In member function ‘bool asio::ssl::rfc2818_verification::operator()(bool, asio::ssl::verify_context&) const’:
| /usr/include/asio/ssl/impl/rfc2818_verification.ipp:65:17: error: invalid use of incomplete type ‘ASN1_IA5STRING’ {aka ‘struct asn1_string_st’}
|    65 |       if (domain->type == V_ASN1_IA5STRING && domain->data && domain->length)
|       |                 ^~
| In file included from /usr/include/openssl/crypto.h:38,
|                  from /usr/include/openssl/bio.h:32,
|                  from /usr/include/openssl/conf.h:26,
|                  from /usr/include/asio/ssl/detail/openssl_types.hpp:23,
|                  from /usr/include/asio/ssl/context_base.hpp:19,
|                  from /usr/include/asio/ssl/context.hpp:23,
|                  from /usr/include/asio/ssl.hpp:18:
| /usr/include/openssl/types.h:57:16: note: forward declaration of ‘ASN1_IA5STRING’ {aka ‘struct asn1_string_st’}
|    57 | typedef struct asn1_string_st ASN1_INTEGER;
|       |                ^~~~~~~~~~~~~~
| /usr/include/asio/ssl/impl/rfc2818_verification.ipp:65:53: error: invalid use of incomplete type ‘ASN1_IA5STRING’ {aka ‘struct asn1_string_st’}
|    65 |       if (domain->type == V_ASN1_IA5STRING && domain->data && domain->length)
|       |                                                     ^~
| /usr/include/openssl/types.h:57:16: note: forward declaration of ‘ASN1_IA5STRING’ {aka ‘struct asn1_string_st’}
|    57 | typedef struct asn1_string_st ASN1_INTEGER;
|       |                ^~~~~~~~~~~~~~
| /usr/include/asio/ssl/impl/rfc2818_verification.ipp:65:69: error: invalid use of incomplete type ‘ASN1_IA5STRING’ {aka ‘struct asn1_string_st’}
|    65 |       if (domain->type == V_ASN1_IA5STRING && domain->data && domain->length)
|       |                                                                     ^~
| /usr/include/openssl/types.h:57:16: note: forward declaration of ‘ASN1_IA5STRING’ {aka ‘struct asn1_string_st’}
|    57 | typedef struct asn1_string_st ASN1_INTEGER;
|       |                ^~~~~~~~~~~~~~
| /usr/include/asio/ssl/impl/rfc2818_verification.ipp:67:67: error: invalid use of incomplete type ‘ASN1_IA5STRING’ {aka ‘struct asn1_string_st’}
|    67 |         const char* pattern = reinterpret_cast<const char*>(domain->data);
|       |                                                                   ^~
| /usr/include/openssl/types.h:57:16: note: forward declaration of ‘ASN1_IA5STRING’ {aka ‘struct asn1_string_st’}
|    57 | typedef struct asn1_string_st ASN1_INTEGER;
|       |                ^~~~~~~~~~~~~~
| /usr/include/asio/ssl/impl/rfc2818_verification.ipp:68:44: error: invalid use of incomplete type ‘ASN1_IA5STRING’ {aka ‘struct asn1_string_st’}
|    68 |         std::size_t pattern_length = domain->length;
|       |                                            ^~
| /usr/include/openssl/types.h:57:16: note: forward declaration of ‘ASN1_IA5STRING’ {aka ‘struct asn1_string_st’}
|    57 | typedef struct asn1_string_st ASN1_INTEGER;
|       |                ^~~~~~~~~~~~~~
| /usr/include/asio/ssl/impl/rfc2818_verification.ipp:79:21: error: invalid use of incomplete type ‘ASN1_OCTET_STRING’ {aka ‘struct asn1_string_st’}
|    79 |       if (ip_address->type == V_ASN1_OCTET_STRING && ip_address->data)
|       |                     ^~
| /usr/include/openssl/types.h:57:16: note: forward declaration of ‘ASN1_OCTET_STRING’ {aka ‘struct asn1_string_st’}
|    57 | typedef struct asn1_string_st ASN1_INTEGER;
|       |                ^~~~~~~~~~~~~~
| /usr/include/asio/ssl/impl/rfc2818_verification.ipp:79:64: error: invalid use of incomplete type ‘ASN1_OCTET_STRING’ {aka ‘struct asn1_string_st’}
|    79 |       if (ip_address->type == V_ASN1_OCTET_STRING && ip_address->data)
|       |                                                                ^~
| /usr/include/openssl/types.h:57:16: note: forward declaration of ‘ASN1_OCTET_STRING’ {aka ‘struct asn1_string_st’}
|    57 | typedef struct asn1_string_st ASN1_INTEGER;
|       |                ^~~~~~~~~~~~~~
| /usr/include/asio/ssl/impl/rfc2818_verification.ipp:81:42: error: invalid use of incomplete type ‘ASN1_OCTET_STRING’ {aka ‘struct asn1_string_st’}
|    81 |         if (address.is_v4() && ip_address->length == 4)
|       |                                          ^~
| /usr/include/openssl/types.h:57:16: note: forward declaration of ‘ASN1_OCTET_STRING’ {aka ‘struct asn1_string_st’}
|    57 | typedef struct asn1_string_st ASN1_INTEGER;
|       |                ^~~~~~~~~~~~~~
| /usr/include/asio/ssl/impl/rfc2818_verification.ipp:84:46: error: invalid use of incomplete type ‘ASN1_OCTET_STRING’ {aka ‘struct asn1_string_st’}
|    84 |           if (memcmp(bytes.data(), ip_address->data, 4) == 0)
|       |                                              ^~
| /usr/include/openssl/types.h:57:16: note: forward declaration of ‘ASN1_OCTET_STRING’ {aka ‘struct asn1_string_st’}
|    57 | typedef struct asn1_string_st ASN1_INTEGER;
|       |                ^~~~~~~~~~~~~~
| /usr/include/asio/ssl/impl/rfc2818_verification.ipp:90:47: error: invalid use of incomplete type ‘ASN1_OCTET_STRING’ {aka ‘struct asn1_string_st’}
|    90 |         else if (address.is_v6() && ip_address->length == 16)
|       |                                               ^~
| /usr/include/openssl/types.h:57:16: note: forward declaration of ‘ASN1_OCTET_STRING’ {aka ‘struct asn1_string_st’}
|    57 | typedef struct asn1_string_st ASN1_INTEGER;
|       |                ^~~~~~~~~~~~~~
| /usr/include/asio/ssl/impl/rfc2818_verification.ipp:93:46: error: invalid use of incomplete type ‘ASN1_OCTET_STRING’ {aka ‘struct asn1_string_st’}
|    93 |           if (memcmp(bytes.data(), ip_address->data, 16) == 0)
|       |                                              ^~
| /usr/include/openssl/types.h:57:16: note: forward declaration of ‘ASN1_OCTET_STRING’ {aka ‘struct asn1_string_st’}
|    57 | typedef struct asn1_string_st ASN1_INTEGER;
|       |                ^~~~~~~~~~~~~~
| /usr/include/asio/ssl/impl/rfc2818_verification.ipp:106:42: error: invalid conversion from ‘const X509_NAME*’ {aka ‘const X509_name_st*’} to ‘X509_NAME*’ {aka ‘X509_name_st*’} [-fpermissive]
|   106 |   X509_NAME* name = X509_get_subject_name(cert);
|       |                     ~~~~~~~~~~~~~~~~~~~~~^~~~~~
|       |                                          |
|       |                                          const X509_NAME* {aka const X509_name_st*}
| /usr/include/asio/ssl/impl/rfc2818_verification.ipp:111:54: error: invalid conversion from ‘const X509_NAME_ENTRY*’ {aka ‘const X509_name_entry_st*’} to ‘X509_NAME_ENTRY*’ {aka ‘X509_name_entry_st*’} [-fpermissive]
|   111 |     X509_NAME_ENTRY* name_entry = X509_NAME_get_entry(name, i);
|       |                                   ~~~~~~~~~~~~~~~~~~~^~~~~~~~~
|       |                                                      |
|       |                                                      const X509_NAME_ENTRY* {aka const X509_name_entry_st*}
| /usr/include/asio/ssl/impl/rfc2818_verification.ipp:112:43: error: invalid conversion from ‘const ASN1_STRING*’ {aka ‘const asn1_string_st*’} to ‘ASN1_STRING*’ {aka ‘asn1_string_st*’} [-fpermissive]
|   112 |     common_name = X509_NAME_ENTRY_get_data(name_entry);
|       |                   ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~
|       |                                           |
|       |                                           const ASN1_STRING* {aka const asn1_string_st*}
| /usr/include/asio/ssl/impl/rfc2818_verification.ipp:114:33: error: invalid use of incomplete type ‘ASN1_STRING’ {aka ‘struct asn1_string_st’}
|   114 |   if (common_name && common_name->data && common_name->length)
|       |                                 ^~
| /usr/include/openssl/types.h:57:16: note: forward declaration of ‘ASN1_STRING’ {aka ‘struct asn1_string_st’}
|    57 | typedef struct asn1_string_st ASN1_INTEGER;
|       |                ^~~~~~~~~~~~~~
| /usr/include/asio/ssl/impl/rfc2818_verification.ipp:114:54: error: invalid use of incomplete type ‘ASN1_STRING’ {aka ‘struct asn1_string_st’}
|   114 |   if (common_name && common_name->data && common_name->length)
|       |                                                      ^~
| /usr/include/openssl/types.h:57:16: note: forward declaration of ‘ASN1_STRING’ {aka ‘struct asn1_string_st’}
|    57 | typedef struct asn1_string_st ASN1_INTEGER;
|       |                ^~~~~~~~~~~~~~
| /usr/include/asio/ssl/impl/rfc2818_verification.ipp:116:68: error: invalid use of incomplete type ‘ASN1_STRING’ {aka ‘struct asn1_string_st’}
|   116 |     const char* pattern = reinterpret_cast<const char*>(common_name->data);
|       |                                                                    ^~
| /usr/include/openssl/types.h:57:16: note: forward declaration of ‘ASN1_STRING’ {aka ‘struct asn1_string_st’}
|    57 | typedef struct asn1_string_st ASN1_INTEGER;
|       |                ^~~~~~~~~~~~~~
| /usr/include/asio/ssl/impl/rfc2818_verification.ipp:117:45: error: invalid use of incomplete type ‘ASN1_STRING’ {aka ‘struct asn1_string_st’}
|   117 |     std::size_t pattern_length = common_name->length;
|       |                                             ^~
| /usr/include/openssl/types.h:57:16: note: forward declaration of ‘ASN1_STRING’ {aka ‘struct asn1_string_st’}
|    57 | typedef struct asn1_string_st ASN1_INTEGER;
|       |                ^~~~~~~~~~~~~~
| /build/reproducible-path/galera-4-26.4.25/galerautils/src/gu_asio.cpp: In function ‘bool gu::allowlist_value_check(wsrep_allowlist_key_t, const std::string&)’:
| /build/reproducible-path/galera-4-26.4.25/galerautils/src/gu_asio.cpp:888:1: warning: control reaches end of non-void function [-Wreturn-type]
|   888 | }
|       | ^
| make[3]: *** [galerautils/src/CMakeFiles/galerautilsxx.dir/build.make:390: galerautils/src/CMakeFiles/galerautilsxx.dir/gu_asio.cpp.o] Error 1
| make[3]: Leaving directory '/build/reproducible-path/galera-4-26.4.25/obj-x86_64-linux-gnu'

Full buildlog
https://breakpoint.cc/openssl-rebuild/logs-4/attempted/galera-4_26.4.25-2_amd64-2026-04-19T13:20:19Z

Sebastian

#1138418#12
Date:
2026-08-06 08:52:14 UTC
From:
To:
Thanks for reporting this!

I am currently working on importing the latest upstream Galera 4
version 26.4.27, and it seems upstream has not fixed the OpenSSL
compatibility yet, so I will take a stab at it myself now.

#1138418#15
Date:
2026-08-06 12:28:22 UTC
From:
To:
Hello,

Bug #1138418 in galera-4 reported by you has been fixed in the
Git repository and is awaiting an upload. You can see the commit
message below and you can check the diff of the fix at:

https://salsa.debian.org/mariadb-team/galera-4/-/commit/a6b0d3df25d0cacde6573d424769c8be42ea86d5

(this message was generated automatically)
-- 
Greetings

https://bugs.debian.org/1138418

#1138418#22
Date:
2026-08-08 14:49:06 UTC
From:
To:
We believe that the bug you reported is fixed in the latest version of
galera-4, which is due to be installed in the Debian FTP archive.

A summary of the changes between this version and the previous one is
attached.

Thank you for reporting the bug, which will now be closed.  If you
have further comments please address them to 1138418@bugs.debian.org,
and the maintainer will reopen the bug report if appropriate.

Debian distribution maintenance software
pp.
Otto Kekäläinen <otto@debian.org> (supplier of updated galera-4 package)

(This message was generated automatically at their request; if you
believe that there is a problem with it please contact the archive
administrators by mailing ftpmaster@ftp-master.debian.org)
Format: 1.8
Date: Thu, 06 Aug 2026 12:12:12 +0000
Source: galera-4
Architecture: source
Version: 26.4.27-1
Distribution: unstable
Urgency: medium
Maintainer: Debian MySQL Maintainers <pkg-mysql-maint@lists.alioth.debian.org>
Changed-By: Otto Kekäläinen <otto@debian.org>
Closes: 1138418
Changes:
 galera-4 (26.4.27-1) unstable; urgency=medium
 .
   * New upstream release 26.4.27. Includes multiple bug fixes, see
https://mariadb.com/docs/release-notes/galera-cluster/26.4/26.4.27
   * For previous release details see
https://mariadb.com/docs/release-notes/galera-cluster/26.4/26.4.26
   * Rename documentation files following upstream changes
   * Document test binary patch now being submitted upstream
   * Make Galera compatible with OpenSSL 4.0 (Closes: #1138418, LP: #2154963)
Checksums-Sha1:
 12c4f91fb1e1a63bbebed56634ace395acc7a297 2447 galera-4_26.4.27-1.dsc
 3b70a34fb86874d14495600b64340e2b7c795834 1569705 galera-4_26.4.27.orig.tar.gz
 bdc01ed892bb9df6d164f6ae1af1e3bd9612ff4b 833 galera-4_26.4.27.orig.tar.gz.asc
 cbac3c638887d7657f30a83a17ad054e6ae54a8b 35216 galera-4_26.4.27-1.debian.tar.xz
 097528a4335be26ad5536ae1c99e9ef700e88592 6498 galera-4_26.4.27-1_source.buildinfo
Checksums-Sha256:
 d1d214dd80914fa28b3a195c36d5a39ae47c59152cc77b8b0d9c7f4f028faae7 2447 galera-4_26.4.27-1.dsc
 a05df6d5f20ba8239117d02a1e468a2c49c596f2af1446b5bed4a6c5b6a5e35e 1569705 galera-4_26.4.27.orig.tar.gz
 67c08d9084dc50cc952ebf92f68547091e6b79865fe41a7fedc6652337c49377 833 galera-4_26.4.27.orig.tar.gz.asc
 8e2978790e10dfe56e5e424adbf16b39bd700d530aaba8a6a87daa017e1e8c12 35216 galera-4_26.4.27-1.debian.tar.xz
 54d121e8c9aede4903fdf3b3060a8585e285dd9ef5d5611031805ac18ce80758 6498 galera-4_26.4.27-1_source.buildinfo
Files:
 9320bcdb9e777e8d50ecd40dce650e74 2447 database optional galera-4_26.4.27-1.dsc
 f04c250b7047ff7a6a28cb0ad68b1710 1569705 database optional galera-4_26.4.27.orig.tar.gz
 ad0dd1d5ee4b527077c9a75aacf447f9 833 database optional galera-4_26.4.27.orig.tar.gz.asc
 b1fb6731c365e3a8ecfe83317011049e 35216 database optional galera-4_26.4.27-1.debian.tar.xz
 23807e3a0841a21913f0ffed648fa806 6498 database optional galera-4_26.4.27-1_source.buildinfo
-----BEGIN PGP SIGNATURE-----

iQIzBAEBCgAdFiEEmbRSsR88dMO0U+RvvthEn87o2ogFAmp3PcwACgkQvthEn87o
2oiyJRAAsQXL76rZ8Tg6YoXN7NUo7HwJzML6u0L4Vx7FdPwnOMQNI9h0ljGt2fXs
hBa4uHdvPM2pexJcmMJdT1vB4yfFPffKT7LkYGGCjUBfFdX7hbgwJM3GKHjoaVHQ
Z8xafLUjSEzOodLDR2/OgJbFlMizMKXtPauVKq2nC8UbWXkcKrYK9BZA3kzOiGHh
SEZInexnkyqwjwy6tK6bOHjSoAr7LM30z2m6HYP+0HGXdfukSCQJQT8eAidfg9vQ
d8eqGNT1umyG7ozp12oeFwOUG+7ww4bQXzw6uERXLCImUlzheMpgDVedn6iglmFZ
v5cfgB4ce9Iystuf8G6ULCZinDwtmvt9hc9rWjlnosL/YZAUHrcq6CCtyDad+BSo
Go8NTU4H93A8NxLlfwdfYlb6BtREWg3O3ZSKwv1pZSsVcXpXpeRBbDbyb90leqf9
TsmaqNpr6oBRFxxefkl1GGq6KyM+VKDKJPhgJy4hQ7WDP4/lg1L0macJyEQrHz8j
jQqAGZnPe1gJYMnnGpRKf4JHVOIjc5vDVTcf/NSl3BZOeZF49CgZYPSJh+qa0ggM
Y8awkcQCADP+EJ4yidKtSrDEU8BF3J1Vl6u+tBD8S6sAT1A2j7NQ04NikGadHogQ
hzNJbuMWxSHFvPdrEZT7SvJb+8BhcYVLxzK+IsepgQtKdIKzRMs=
=D32K
-----END PGP SIGNATURE-----