Bug 2389375

Summary: python-httplib2.certfile.patch broken by Changes/dropingOfCertPemFile
Product: [Fedora] Fedora Reporter: Miro Hrončok <mhroncok>
Component: python-httplib2Assignee: Kevin Fenzi <kevin>
Status: CLOSED ERRATA QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: 43CC: dchen, gwync, igor.raits, kevin, pcahyna
Target Milestone: ---   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: python-httplib2-0.22.0-7.fc43 Doc Type: ---
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2025-10-04 00:16:34 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: 2339432, 2360110, 2384424, 2373702, 2389372    

Description Miro Hrončok 2025-08-19 10:54:56 UTC
python-httplib2 fails to build in Fedora 43+ with:

=================================== FAILURES ===================================
___________________ test_disable_ssl_certificate_validation ____________________
tests/test_https.py:205: in test_disable_ssl_certificate_validation
    response, _ = http.request(uri, "GET")
        http       = <httplib2.Http object at 0x7fffa10d3d40>
        uri        = 'https://localhost:51621/'
../BUILDROOT/usr/lib/python3.14/site-packages/httplib2/__init__.py:1581: in request
    conn = self.connections[conn_key] = connection_type(
        authority  = 'localhost:51621'
        body       = None
        certs      = []
        conn       = None
        conn_key   = 'https:localhost:51621'
        connection_type = <class 'httplib2.HTTPSConnectionWithTimeout'>
        defrag_uri = 'https://localhost:51621/'
        headers    = {'user-agent': 'Python-httplib2/0.22.0 (gzip)'}
        is_timeout = False
        method     = 'GET'
        redirections = 5
        request_uri = '/'
        scheme     = 'https'
        self       = <httplib2.Http object at 0x7fffa10d3d40>
        uri        = 'https://localhost:51621/'
../BUILDROOT/usr/lib/python3.14/site-packages/httplib2/__init__.py:1100: in __init__
    context = _build_ssl_context(
        __class__  = <class 'httplib2.HTTPSConnectionWithTimeout'>
        ca_certs   = None
        cert_file  = None
        disable_ssl_certificate_validation = True
        host       = 'localhost:51621'
        key_file   = None
        key_password = None
        port       = None
        proxy_info = <function proxy_info_from_environment at 0x7fffa1bc6fb0>
        self       = <httplib2.HTTPSConnectionWithTimeout object at 0x7fffa1456580>
        timeout    = None
        tls_maximum_version = None
        tls_minimum_version = None
../BUILDROOT/usr/lib/python3.14/site-packages/httplib2/__init__.py:183: in _build_ssl_context
    context.load_verify_locations(ca_certs)
E   FileNotFoundError: [Errno 2] No such file or directory
        ca_certs   = '/etc/pki/tls/certs/ca-bundle.crt'
        cert_file  = None
        context    = <ssl.SSLContext object at 0x7fffa0f0ef50>
        disable_ssl_certificate_validation = True
        key_file   = None
        key_password = None
        maximum_version = None
        minimum_version = None
______________________________ test_timeout_https ______________________________
tests/test_other.py:141: in test_timeout_https
    c = httplib2.HTTPSConnectionWithTimeout("localhost", 80, timeout=47)
../BUILDROOT/usr/lib/python3.14/site-packages/httplib2/__init__.py:1100: in __init__
    context = _build_ssl_context(
        __class__  = <class 'httplib2.HTTPSConnectionWithTimeout'>
        ca_certs   = None
        cert_file  = None
        disable_ssl_certificate_validation = False
        host       = 'localhost'
        key_file   = None
        key_password = None
        port       = 80
        proxy_info = None
        self       = <httplib2.HTTPSConnectionWithTimeout object at 0x7fffa1457f00>
        timeout    = 47
        tls_maximum_version = None
        tls_minimum_version = None
../BUILDROOT/usr/lib/python3.14/site-packages/httplib2/__init__.py:183: in _build_ssl_context
    context.load_verify_locations(ca_certs)
E   FileNotFoundError: [Errno 2] No such file or directory
        ca_certs   = '/etc/pki/tls/certs/ca-bundle.crt'
        cert_file  = None
        context    = <ssl.SSLContext object at 0x7fffa1441e50>
        disable_ssl_certificate_validation = False
        key_file   = None
        key_password = None
        maximum_version = None
        minimum_version = None
____ test_connection_proxy_info_attribute_error[HTTPSConnectionWithTimeout] ____
tests/test_other.py:221: in test_connection_proxy_info_attribute_error
    conn = conn_type("no-such-hostname.", 80)
        conn_type  = <class 'httplib2.HTTPSConnectionWithTimeout'>
../BUILDROOT/usr/lib/python3.14/site-packages/httplib2/__init__.py:1100: in __init__
    context = _build_ssl_context(
        __class__  = <class 'httplib2.HTTPSConnectionWithTimeout'>
        ca_certs   = None
        cert_file  = None
        disable_ssl_certificate_validation = False
        host       = 'no-such-hostname.'
        key_file   = None
        key_password = None
        port       = 80
        proxy_info = None
        self       = <httplib2.HTTPSConnectionWithTimeout object at 0x7fffa1457460>
        timeout    = None
        tls_maximum_version = None
        tls_minimum_version = None
../BUILDROOT/usr/lib/python3.14/site-packages/httplib2/__init__.py:183: in _build_ssl_context
    context.load_verify_locations(ca_certs)
E   FileNotFoundError: [Errno 2] No such file or directory
        ca_certs   = '/etc/pki/tls/certs/ca-bundle.crt'
        cert_file  = None
        context    = <ssl.SSLContext object at 0x7fffa0f83a10>
        disable_ssl_certificate_validation = False
        key_file   = None
        key_password = None
        maximum_version = None
        minimum_version = None




Similarly, when building a dependent package, python-launchpadlib, I got:

...
  File "/usr/lib/python3.14/site-packages/httplib2/__init__.py", line 1581, in request
    conn = self.connections[conn_key] = connection_type(
                                        ~~~~~~~~~~~~~~~^
        authority,
        ^^^^^^^^^^
    ...<5 lines>...
        tls_minimum_version=self.tls_minimum_version,
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    )
    ^
  File "/usr/lib/python3.14/site-packages/httplib2/__init__.py", line 1100, in __init__
    context = _build_ssl_context(
        self.disable_ssl_certificate_validation,
    ...<5 lines>...
        key_password=key_password,
    )
  File "/usr/lib/python3.14/site-packages/httplib2/__init__.py", line 183, in _build_ssl_context
    context.load_verify_locations(ca_certs)
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^
FileNotFoundError: [Errno 2] No such file or directory
----------------------------------------------------------------------





This seems to be directly caused /usr/lib/python3.14/site-packages/httplib2/certs.py with:

  FEDORA_CA_CERTS = "/etc/pki/tls/certs/ca-bundle.crt"

Added via https://src.fedoraproject.org/rpms/python-httplib2/blob/rawhide/f/python-httplib2.certfile.patch


However, /etc/pki/tls/certs/ca-bundle.crt is gone.

Please use /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem instead.

See https://fedoraproject.org/wiki/Changes/dropingOfCertPemFile

Comment 1 Miro Hrončok 2025-08-26 11:08:43 UTC
Hello. This is a bulk comment.

This package still needs to be rebuilt and/or shipped with Python 3.14.0rc2+ bytecode in Fedora 43.

The Beta Freeze of Fedora 43 is scheduled to start today. Please prioritize this bugzilla accordingly.

Thanks.

Comment 2 Kevin Fenzi 2025-08-28 01:12:25 UTC
When https://bodhi.fedoraproject.org/updates/FEDORA-2025-fb6d7bb6e1 goes stable this should build again in f43. 

I'll fix f44 for the change.

Comment 3 Fedora Update System 2025-09-25 20:08:00 UTC
FEDORA-2025-81dbb3f6f8 (python-httplib2-0.22.0-7.fc43) has been submitted as an update to Fedora 43.
https://bodhi.fedoraproject.org/updates/FEDORA-2025-81dbb3f6f8

Comment 4 Fedora Update System 2025-09-26 01:30:19 UTC
FEDORA-2025-81dbb3f6f8 has been pushed to the Fedora 43 testing repository.
Soon you'll be able to install the update with the following command:
`sudo dnf upgrade --enablerepo=updates-testing --refresh --advisory=FEDORA-2025-81dbb3f6f8`
You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2025-81dbb3f6f8

See also https://fedoraproject.org/wiki/QA:Updates_Testing for more information on how to test updates.

Comment 5 Fedora Update System 2025-10-04 00:16:34 UTC
FEDORA-2025-81dbb3f6f8 (python-httplib2-0.22.0-7.fc43) has been pushed to the Fedora 43 stable repository.
If problem still persists, please make note of it in this bug report.