OpenSSL 4.0 is in experimental. This package fails to build against it:
| libtool: compile: x86_64-linux-gnu-g++ -std=c++11 -DHAVE_CONFIG_H -I/usr/include -I./src -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -Wextra -pedantic -g -O2 -ffile-prefix-map=/build/reproducible-path/thrift-0.23.0=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection -c src/thrift/transport/TSSLSocket.cpp -fPIC -DPIC -o src/thrift/transport/.libs/TSSLSocket.o
| src/thrift/transport/TSSLSocket.cpp: In constructor 'apache::thrift::transport::SSLContext::SSLContext(const apache::thrift::transport::SSLProtocol&)':
| src/thrift/transport/TSSLSocket.cpp:187:24: error: 'SSLv3_method' was not declared in this scope; did you mean 'SSLv23_method'?
| 187 | ctx_ = SSL_CTX_new(SSLv3_method());
| | ^~~~~~~~~~~~
| | SSLv23_method
| src/thrift/transport/TSSLSocket.cpp:190:24: error: 'TLSv1_method' was not declared in this scope; did you mean 'TLS_method'?
| 190 | ctx_ = SSL_CTX_new(TLSv1_method());
| | ^~~~~~~~~~~~
| | TLS_method
| src/thrift/transport/TSSLSocket.cpp:192:24: error: 'TLSv1_1_method' was not declared in this scope; did you mean 'TLS_method'?
| 192 | ctx_ = SSL_CTX_new(TLSv1_1_method());
| | ^~~~~~~~~~~~~~
| | TLS_method
| src/thrift/transport/TSSLSocket.cpp:194:24: error: 'TLSv1_2_method' was not declared in this scope; did you mean 'TLS_method'?
| 194 | ctx_ = SSL_CTX_new(TLSv1_2_method());
| | ^~~~~~~~~~~~~~
| | TLS_method
| src/thrift/transport/TSSLSocket.cpp: In member function 'virtual void apache::thrift::transport::TSSLSocket::authorize()':
| src/thrift/transport/TSSLSocket.cpp:766:27: error: 'ASN1_STRING_data' was not declared in this scope; did you mean 'ASN1_STRING_set0'?
| 766 | char* data = (char*)ASN1_STRING_data(name->d.ia5);
| | ^~~~~~~~~~~~~~~~
| | ASN1_STRING_set0
| src/thrift/transport/TSSLSocket.cpp:792:42: error: invalid conversion from 'const X509_NAME*' {aka 'const X509_name_st*'} to 'X509_NAME*' {aka 'X509_name_st*'} [-fpermissive]
| 792 | X509_NAME* name = X509_get_subject_name(cert);
| | ~~~~~~~~~~~~~~~~~~~~~^~~~~~
| | |
| | const X509_NAME* {aka const X509_name_st*}
| src/thrift/transport/TSSLSocket.cpp:801:34: error: invalid conversion from 'const X509_NAME_ENTRY*' {aka 'const X509_name_entry_st*'} to 'X509_NAME_ENTRY*' {aka 'X509_name_entry_st*'} [-fpermissive]
| 801 | entry = X509_NAME_get_entry(name, last);
| | ~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~
| | |
| | const X509_NAME_ENTRY* {aka const X509_name_entry_st*}
| src/thrift/transport/TSSLSocket.cpp:804:53: error: invalid conversion from 'const ASN1_STRING*' {aka 'const asn1_string_st*'} to 'ASN1_STRING*' {aka 'asn1_string_st*'} [-fpermissive]
| 804 | ASN1_STRING* common = X509_NAME_ENTRY_get_data(entry);
| | ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~
| | |
| | const ASN1_STRING* {aka const asn1_string_st*}
| src/thrift/transport/TSSLSocket.cpp: At global scope:
| src/thrift/transport/TSSLSocket.cpp:111:13: warning: 'void apache::thrift::transport::dyn_destroy(CRYPTO_dynlock_value*, const char*, int)' defined but not used [-Wunused-function]
| 111 | static void dyn_destroy(struct CRYPTO_dynlock_value* lock, const char*, int) {
| | ^~~~~~~~~~~
| src/thrift/transport/TSSLSocket.cpp:101:13: warning: 'void apache::thrift::transport::dyn_lock(int, CRYPTO_dynlock_value*, const char*, int)' defined but not used [-Wunused-function]
| 101 | static void dyn_lock(int mode, struct CRYPTO_dynlock_value* lock, const char*, int) {
| | ^~~~~~~~
| src/thrift/transport/TSSLSocket.cpp:97:30: warning: 'CRYPTO_dynlock_value* apache::thrift::transport::dyn_create(const char*, int)' defined but not used [-Wunused-function]
| 97 | static CRYPTO_dynlock_value* dyn_create(const char*, int) {
| | ^~~~~~~~~~
| src/thrift/transport/TSSLSocket.cpp:76:13: warning: 'void apache::thrift::transport::callbackLocking(int, int, const char*, int)' defined but not used [-Wunused-function]
| 76 | static void callbackLocking(int mode, int n, const char*, int) {
| | ^~~~~~~~~~~~~~~
| make[6]: *** [Makefile:1323: src/thrift/transport/TSSLSocket.lo] Error 1
Full buildlog
https://breakpoint.cc/openssl-rebuild/logs-4/attempted/thrift_0.23.0-3_amd64-2026-06-16T22:36:12Z
Sebastian