Bug 2389375 - python-httplib2.certfile.patch broken by Changes/dropingOfCertPemFile
Summary: python-httplib2.certfile.patch broken by Changes/dropingOfCertPemFile
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: Fedora
Classification: Fedora
Component: python-httplib2
Version: 43
Hardware: Unspecified
OS: Unspecified
unspecified
unspecified
Target Milestone: ---
Assignee: Kevin Fenzi
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks: F43FTBFS 2360110 PYC3.14rc3 F44FTBFS, RAWHIDEFTBFS 2389372
TreeView+ depends on / blocked
 
Reported: 2025-08-19 10:54 UTC by Miro Hrončok
Modified: 2025-10-04 00:16 UTC (History)
5 users (show)

Fixed In Version: python-httplib2-0.22.0-7.fc43
Clone Of:
Environment:
Last Closed: 2025-10-04 00:16:34 UTC
Type: Bug
Embargoed:


Attachments (Terms of Use)

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.


Note You need to log in before you can comment on or make changes to this bug.