Bug 2466676 - python-eth-keys: FTBFS in Fedora Rawhide: 6 tests fail with ImportError
Summary: python-eth-keys: FTBFS in Fedora Rawhide: 6 tests fail with ImportError
Keywords:
Status: CLOSED RAWHIDE
Alias: None
Product: Fedora
Classification: Fedora
Component: python-eth-keys
Version: rawhide
Hardware: Unspecified
OS: Linux
unspecified
medium
Target Milestone: ---
Assignee: Peter Lemenkov
QA Contact:
URL: https://koschei.fedoraproject.org/pac...
Whiteboard:
Depends On:
Blocks: PYTHON3.15 F45FTBFS, RAWHIDEFTBFS
TreeView+ depends on / blocked
 
Reported: 2026-05-05 09:24 UTC by Karolina Surma
Modified: 2026-05-06 12:44 UTC (History)
1 user (show)

Fixed In Version: python-eth-keys-0.7.0-7.fc45
Clone Of:
Environment:
Last Closed: 2026-05-06 12:43:56 UTC
Type: ---
Embargoed:


Attachments (Terms of Use)

Description Karolina Surma 2026-05-05 09:24:50 UTC
Description of problem:
Package python-eth-keys fails to build from source in Fedora Rawhide.

Version-Release number of selected component (if applicable):
0.7.0-6.fc44

Steps to Reproduce:
koji build --scratch f45 python-eth-keys-0.7.0-6.fc44.src.rpm

Additional info:
This package is tracked by Koschei. See:
https://koschei.fedoraproject.org/package/python-eth-keys

Reproducible: Always

Actual Results:
____________ ERROR at setup of test_public_key_generation_is_equal _____________
self = <eth_keys.backends.coincurve.CoinCurveECCBackend object at 0x7fffae5ab9d0>
    def __init__(self) -> None:
        try:
>           import coincurve
__class__  = <class 'eth_keys.backends.coincurve.CoinCurveECCBackend'>
self       = <eth_keys.backends.coincurve.CoinCurveECCBackend object at 0x7fffae5ab9d0>
../BUILDROOT/usr/lib/python3.14/site-packages/eth_keys/backends/coincurve.py:42: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
/usr/lib/python3.14/site-packages/coincurve/__init__.py:1: in <module>
    from coincurve.context import GLOBAL_CONTEXT, Context
        __builtins__ = <builtins>
        __cached__ = '/usr/lib/python3.14/site-packages/coincurve/__pycache__/__init__.cpython-314.pyc'
        __doc__    = None
        __file__   = '/usr/lib/python3.14/site-packages/coincurve/__init__.py'
        __loader__ = <_frozen_importlib_external.SourceFileLoader object at 0x7fffae2b8c50>
        __name__   = 'coincurve'
        __package__ = 'coincurve'
        __path__   = ['/usr/lib/python3.14/site-packages/coincurve']
        __spec__   = ModuleSpec(name='coincurve', loader=<_frozen_importlib_external.SourceFileLoader object at 0x7fffae2b8c50>, origin='/u...n3.14/site-packages/coincurve/__init__.py', submodule_search_locations=['/usr/lib/python3.14/site-packages/coincurve'])
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
    from __future__ import annotations
    
    from os import urandom
    from threading import Lock
    
>   from coincurve._libsecp256k1 import ffi, lib
E   ModuleNotFoundError: No module named '_cffi_backend'
Lock       = <class '_thread.lock'>
__builtins__ = <builtins>
__cached__ = '/usr/lib/python3.14/site-packages/coincurve/__pycache__/context.cpython-314.pyc'
__doc__    = None
__file__   = '/usr/lib/python3.14/site-packages/coincurve/context.py'
__loader__ = <_frozen_importlib_external.SourceFileLoader object at 0x7fffae2b8cb0>
__name__   = 'coincurve.context'
__package__ = 'coincurve'
__spec__   = ModuleSpec(name='coincurve.context', loader=<_frozen_importlib_external.SourceFileLoader object at 0x7fffae2b8cb0>, origin='/usr/lib/python3.14/site-packages/coincurve/context.py')
annotations = _Feature((3, 7, 0, 'beta', 1), None, 16777216)
urandom    = <built-in function urandom>
/usr/lib/python3.14/site-packages/coincurve/context.py:6: ModuleNotFoundError
During handling of the above exception, another exception occurred:
    @pytest.fixture(scope="module")
    def coincurve_key_api():
>       return KeyAPI(backend=CoinCurveECCBackend())
                              ^^^^^^^^^^^^^^^^^^^^^
tests/backends/test_native_backend_against_coincurve.py:49: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
self = <eth_keys.backends.coincurve.CoinCurveECCBackend object at 0x7fffae5ab9d0>
    def __init__(self) -> None:
        try:
            import coincurve
        except ImportError:
>           raise ImportError(
                "The CoinCurveECCBackend requires the coincurve "
                "library which is not available for import."
            )
E           ImportError: The CoinCurveECCBackend requires the coincurve library which is not available for import.
__class__  = <class 'eth_keys.backends.coincurve.CoinCurveECCBackend'>
self       = <eth_keys.backends.coincurve.CoinCurveECCBackend object at 0x7fffae5ab9d0>
../BUILDROOT/usr/lib/python3.14/site-packages/eth_keys/backends/coincurve.py:44: ImportError

Comment 1 Peter Lemenkov 2026-05-06 12:43:56 UTC
Fixed by adding python3-cffi to BuildRequires. The missing _cffi_backend module (provided by python3-cffi) was causing coincurve to fail to import during tests. python-eth-keys-0.7.0-7.fc45 fully addresses this FTBFS issue.


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