Bug 2491640

Summary: thrift-0.20.0-11.fc45 FTBFS: src/thrift/transport/TSSLSocket.cpp:182:24: error: 'SSLv3_method' was not declared
Product: [Fedora] Fedora Reporter: Petr Pisar <ppisar>
Component: thriftAssignee: Kaleb KEITHLEY <kkeithle>
Status: CLOSED ERRATA QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: 45CC: epel-packagers-sig, mhroncok
Target Milestone: ---Flags: ctubbsii: needinfo-
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
URL: https://koschei.fedoraproject.org//package/thrift
Whiteboard:
Fixed In Version: thrift-0.20.0-13.fc45 Doc Type: ---
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2026-08-05 17:26:24 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On:    
Bug Blocks: 2433833, 2506751    

Description Petr Pisar 2026-06-23 07:40:51 UTC
thrift-0.20.0-11.fc45 fails to build in Fedora 45:

libtool: compile:  g++ -std=c++11 -DHAVE_CONFIG_H -I/usr/include -I./src -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -Wall -Wextra -pedantic -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -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:182:24: error: 'SSLv3_method' was not declared in this scope; did you mean 'SSLv23_method'?
  182 |     ctx_ = SSL_CTX_new(SSLv3_method());
      |                        ^~~~~~~~~~~~
      |                        SSLv23_method
src/thrift/transport/TSSLSocket.cpp:185:24: error: 'TLSv1_method' was not declared in this scope; did you mean 'TLS_method'?
  185 |     ctx_ = SSL_CTX_new(TLSv1_method());
      |                        ^~~~~~~~~~~~
      |                        TLS_method
src/thrift/transport/TSSLSocket.cpp:187:24: error: 'TLSv1_1_method' was not declared in this scope; did you mean 'TLS_method'?
  187 |     ctx_ = SSL_CTX_new(TLSv1_1_method());
      |                        ^~~~~~~~~~~~~~
      |                        TLS_method
src/thrift/transport/TSSLSocket.cpp:189:24: error: 'TLSv1_2_method' was not declared in this scope; did you mean 'TLS_method'?
  189 |     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:758:27: error: 'ASN1_STRING_data' was not declared in this scope; did you mean 'ASN1_STRING_set0'?
  758 |       char* data = (char*)ASN1_STRING_data(name->d.ia5);
      |                           ^~~~~~~~~~~~~~~~
      |                           ASN1_STRING_set0
src/thrift/transport/TSSLSocket.cpp:784:42: error: invalid conversion from 'const X509_NAME*' {aka 'const X509_name_st*'} to 'X509_NAME*' {aka 'X509_name_st*'} [-fpermissive]
  784 |   X509_NAME* name = X509_get_subject_name(cert);
      |                     ~~~~~~~~~~~~~~~~~~~~~^~~~~~
      |                                          |
      |                                          const X509_NAME* {aka const X509_name_st*}
src/thrift/transport/TSSLSocket.cpp:793: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]
  793 |       entry = X509_NAME_get_entry(name, last);
      |               ~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~
      |                                  |
      |                                  const X509_NAME_ENTRY* {aka const X509_name_entry_st*}
src/thrift/transport/TSSLSocket.cpp:796:53: error: invalid conversion from 'const ASN1_STRING*' {aka 'const asn1_string_st*'} to 'ASN1_STRING*' {aka 'asn1_string_st*'} [-fpermissive]
  796 |       ASN1_STRING* common = X509_NAME_ENTRY_get_data(entry);
      |                             ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~
      |                                                     |
      |                                                     const ASN1_STRING* {aka const asn1_string_st*}

This is triggered by upgrading openssl-devel from 1:3.5.7-1.fc45 to 1:4.0.1-1.fc45. OpenSSL 4 removed support for SSLv3 <https://github.com/openssl/openssl/releases/tag/openssl-4.0.0>.

Comment 1 Miro Hrončok 2026-07-31 10:42:48 UTC
In https://bodhi.fedoraproject.org/updates/FEDORA-2026-2551d0d66b we have shipped Python 3.15.0b4.

All packages that link to libpython or have extension modules should be rebuilt, or they will segfault on import/usage.

Packages using stable ABI might not need a rebuild.

This package was not rebuilt because we were unable to do so.
Please rebuild it with Python 3.15.0b4+ ASAP. Thanks

Comment 2 Kaleb KEITHLEY 2026-08-05 17:04:52 UTC
I don't see that this has anything do do with Python 3.15.0b4.

Two previous attempts to build with openssl, i.e. openssl4, in rawhide/45[1][2] both failed.

Reverting to openssl3, which fortunately still exists, for now. Even thrift-0.24.0 (latest as of this writing) still requires openssl3.

N.B. I don't remember how I became the main admin of this package. Originally I asked that it be built in EPEL10, and I believe I was added as an admin so that I could build the EPEL10 rpms.

[1]https://koji.fedoraproject.org/koji/buildinfo?buildID=3017102
[2]https://koji.fedoraproject.org/koji/buildinfo?buildID=3058232

Comment 3 Fedora Update System 2026-08-05 17:20:53 UTC
FEDORA-2026-a31f506234 (thrift-0.20.0-13.fc45) has been submitted as an update to Fedora 45.
https://bodhi.fedoraproject.org/updates/FEDORA-2026-a31f506234

Comment 4 Fedora Update System 2026-08-05 17:26:24 UTC
FEDORA-2026-a31f506234 (thrift-0.20.0-13.fc45) has been pushed to the Fedora 45 stable repository.
If problem still persists, please make note of it in this bug report.

Comment 5 Miro Hrončok 2026-08-06 13:49:59 UTC
(In reply to Kaleb KEITHLEY from comment #2)
> I don't see that this has anything do do with Python 3.15.0b4.

Python 3.15.0b4 is not the reason this did not build. But we needed to rebuild this *for* Python 3.15.0b4 as the ABI has changed.