Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Can't install requirements.txt on Fedora 41, Python 3.13.0 #598

Open
m-iwanicki opened this issue Nov 18, 2024 · 1 comment · Fixed by #616
Open

Can't install requirements.txt on Fedora 41, Python 3.13.0 #598

m-iwanicki opened this issue Nov 18, 2024 · 1 comment · Fixed by #616
Labels
bug Something isn't working

Comments

@m-iwanicki
Copy link
Contributor

Device

RTE version

OSFV version

develop

Affected component(s) or functionality

No response

Brief summary

pip install -r requirements.txt ends in error

How reproducible

100%

How to reproduce

python -m venv venv
source venv/bin/activate
pip install -r requirements.txt

Expected behavior

Successful installation of dependencies

Actual behavior

Failure

ERROR: ERROR: Failed to build installable wheels for some pyproject.toml based projects (cffi, greenlet)

Link to screenshots or logs

(venv) miwanicki@3M02 ➜  ~/projects/open-source-firmware-validation git:(591-duplicate-keywords) pip install -r requirements.txt
Collecting osfv@ git+https://github.com/Dasharo/osfv-scripts.git@6f7eb96d2f586e00f0f69d52ac0ed9dfc1208eec#subdirectory=osfv_cli (from -r requirements.txt (line 25))
  Using cached osfv-0.5.6-py3-none-any.whl
Collecting pyte@ git+https://github.com/3mdeb/pyte@b81646ec9f754aab34ed671b3c852b01cc72bdb4 (from -r requirements.txt (line 40))
  Using cached pyte-0.8.0-py3-none-any.whl
Collecting robotframework@ git+https://github.com/3mdeb/robotframework@6006ce0b3d5fc6b45c5eb040dc859acd64bfa846 (from -r requirements.txt (line 47))
  Using cached robotframework-5.0-py3-none-any.whl
Collecting bcrypt==4.1.2 (from -r requirements.txt (line 1))
  Using cached bcrypt-4.1.2-cp39-abi3-manylinux_2_28_x86_64.whl.metadata (9.5 kB)
Collecting certifi==2024.2.2 (from -r requirements.txt (line 2))
  Using cached certifi-2024.2.2-py3-none-any.whl.metadata (2.2 kB)
Collecting cffi==1.16.0 (from -r requirements.txt (line 3))
  Using cached cffi-1.16.0.tar.gz (512 kB)
  Installing build dependencies ... done
  Getting requirements to build wheel ... done
  Preparing metadata (pyproject.toml) ... done
Collecting cfgv==3.4.0 (from -r requirements.txt (line 4))
  Using cached cfgv-3.4.0-py2.py3-none-any.whl.metadata (8.5 kB)
Collecting charset-normalizer==3.3.2 (from -r requirements.txt (line 5))
  Downloading charset_normalizer-3.3.2-py3-none-any.whl.metadata (33 kB)
Collecting click==8.1.7 (from -r requirements.txt (line 6))
  Using cached click-8.1.7-py3-none-any.whl.metadata (3.0 kB)
Collecting colorama==0.4.6 (from -r requirements.txt (line 7))
  Using cached colorama-0.4.6-py2.py3-none-any.whl.metadata (17 kB)
Collecting cryptography==42.0.5 (from -r requirements.txt (line 8))
  Using cached cryptography-42.0.5-cp39-abi3-manylinux_2_28_x86_64.whl.metadata (5.3 kB)
Collecting dbbot-sqlalchemy==0.2 (from -r requirements.txt (line 9))
  Using cached dbbot_sqlalchemy-0.2-py3-none-any.whl
Collecting distlib==0.3.8 (from -r requirements.txt (line 10))
  Using cached distlib-0.3.8-py2.py3-none-any.whl.metadata (5.1 kB)
Collecting Faker==24.11.0 (from -r requirements.txt (line 11))
  Using cached Faker-24.11.0-py3-none-any.whl.metadata (15 kB)
Collecting filelock==3.13.4 (from -r requirements.txt (line 12))
  Using cached filelock-3.13.4-py3-none-any.whl.metadata (2.8 kB)
Collecting greenlet==3.0.3 (from -r requirements.txt (line 13))
  Using cached greenlet-3.0.3.tar.gz (182 kB)
  Installing build dependencies ... done
  Getting requirements to build wheel ... done
  Preparing metadata (pyproject.toml) ... done
Collecting gspread==3.1.0 (from -r requirements.txt (line 14))
  Using cached gspread-3.1.0-py3-none-any.whl.metadata (1.2 kB)
Collecting httplib2==0.22.0 (from -r requirements.txt (line 15))
  Using cached httplib2-0.22.0-py3-none-any.whl.metadata (2.6 kB)
Collecting identify==2.5.36 (from -r requirements.txt (line 16))
  Using cached identify-2.5.36-py2.py3-none-any.whl.metadata (4.4 kB)
Collecting idna==3.7 (from -r requirements.txt (line 17))
  Using cached idna-3.7-py3-none-any.whl.metadata (9.9 kB)
Collecting importlib_resources==6.4.0 (from -r requirements.txt (line 18))
  Using cached importlib_resources-6.4.0-py3-none-any.whl.metadata (3.9 kB)
Collecting Jinja2==3.1.3 (from -r requirements.txt (line 19))
  Using cached Jinja2-3.1.3-py3-none-any.whl.metadata (3.3 kB)
Collecting markdown-it-py==3.0.0 (from -r requirements.txt (line 20))
  Using cached markdown_it_py-3.0.0-py3-none-any.whl.metadata (6.9 kB)
Collecting MarkupSafe==2.1.5 (from -r requirements.txt (line 21))
  Downloading MarkupSafe-2.1.5.tar.gz (19 kB)
  Installing build dependencies ... done
  Getting requirements to build wheel ... done
  Preparing metadata (pyproject.toml) ... done
Collecting mdurl==0.1.2 (from -r requirements.txt (line 22))
  Using cached mdurl-0.1.2-py3-none-any.whl.metadata (1.6 kB)
Collecting nodeenv==1.8.0 (from -r requirements.txt (line 23))
  Using cached nodeenv-1.8.0-py2.py3-none-any.whl.metadata (21 kB)
Collecting oauth2client==4.1.3 (from -r requirements.txt (line 24))
  Using cached oauth2client-4.1.3-py2.py3-none-any.whl.metadata (1.2 kB)
Collecting paramiko==3.4.0 (from -r requirements.txt (line 26))
  Using cached paramiko-3.4.0-py3-none-any.whl.metadata (4.4 kB)
Collecting pathspec==0.9.0 (from -r requirements.txt (line 27))
  Using cached pathspec-0.9.0-py2.py3-none-any.whl.metadata (12 kB)
Collecting pexpect==4.9.0 (from -r requirements.txt (line 28))
  Using cached pexpect-4.9.0-py2.py3-none-any.whl.metadata (2.5 kB)
Collecting platformdirs==4.2.1 (from -r requirements.txt (line 29))
  Using cached platformdirs-4.2.1-py3-none-any.whl.metadata (11 kB)
Collecting pre-commit==3.7.0 (from -r requirements.txt (line 30))
  Using cached pre_commit-3.7.0-py2.py3-none-any.whl.metadata (1.3 kB)
Collecting ptyprocess==0.7.0 (from -r requirements.txt (line 31))
  Using cached ptyprocess-0.7.0-py2.py3-none-any.whl.metadata (1.3 kB)
Collecting pyasn1==0.6.0 (from -r requirements.txt (line 32))
  Using cached pyasn1-0.6.0-py2.py3-none-any.whl.metadata (8.3 kB)
Collecting pyasn1_modules==0.4.0 (from -r requirements.txt (line 33))
  Using cached pyasn1_modules-0.4.0-py3-none-any.whl.metadata (3.4 kB)
Collecting pycparser==2.22 (from -r requirements.txt (line 34))
  Using cached pycparser-2.22-py3-none-any.whl.metadata (943 bytes)
Collecting Pygments==2.17.2 (from -r requirements.txt (line 35))
  Using cached pygments-2.17.2-py3-none-any.whl.metadata (2.6 kB)
Collecting PyNaCl==1.5.0 (from -r requirements.txt (line 36))
  Using cached PyNaCl-1.5.0-cp36-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_24_x86_64.whl.metadata (8.6 kB)
Collecting pyOpenSSL==24.1.0 (from -r requirements.txt (line 37))
  Using cached pyOpenSSL-24.1.0-py3-none-any.whl.metadata (12 kB)
Collecting pyotp==2.9.0 (from -r requirements.txt (line 38))
  Using cached pyotp-2.9.0-py3-none-any.whl.metadata (9.8 kB)
Collecting pyparsing==3.1.2 (from -r requirements.txt (line 39))
  Using cached pyparsing-3.1.2-py3-none-any.whl.metadata (5.1 kB)
Collecting python-dateutil==2.9.0.post0 (from -r requirements.txt (line 41))
  Using cached python_dateutil-2.9.0.post0-py2.py3-none-any.whl.metadata (8.4 kB)
Collecting pytz==2024.1 (from -r requirements.txt (line 42))
  Using cached pytz-2024.1-py2.py3-none-any.whl.metadata (22 kB)
Collecting PyYAML==6.0.1 (from -r requirements.txt (line 43))
  Downloading PyYAML-6.0.1.tar.gz (125 kB)
  Installing build dependencies ... done
  Getting requirements to build wheel ... done
  Preparing metadata (pyproject.toml) ... done
Collecting requests==2.31.0 (from -r requirements.txt (line 44))
  Using cached requests-2.31.0-py3-none-any.whl.metadata (4.6 kB)
Collecting rich==13.7.1 (from -r requirements.txt (line 45))
  Using cached rich-13.7.1-py3-none-any.whl.metadata (18 kB)
Collecting rich-click==1.7.4 (from -r requirements.txt (line 46))
  Using cached rich_click-1.7.4-py3-none-any.whl.metadata (22 kB)
Collecting robotframework-faker==5.0.0 (from -r requirements.txt (line 48))
  Using cached robotframework_faker-5.0.0-py3-none-any.whl.metadata (3.1 kB)
Collecting robotframework-requests==0.9.4 (from -r requirements.txt (line 49))
  Using cached robotframework_requests-0.9.4-py3-none-any.whl.metadata (7.2 kB)
Collecting robotframework-robocop==5.0.4 (from -r requirements.txt (line 50))
  Using cached robotframework_robocop-5.0.4-py3-none-any.whl.metadata (14 kB)
Collecting robotframework-sherlock==0.3.0 (from -r requirements.txt (line 51))
  Using cached robotframework_sherlock-0.3.0-py3-none-any.whl.metadata (3.1 kB)
Collecting robotframework-sshlibrary==3.5.1 (from -r requirements.txt (line 52))
  Using cached robotframework_sshlibrary-3.5.1-py3-none-any.whl
Collecting robotframework-tidy==4.11.0 (from -r requirements.txt (line 53))
  Using cached robotframework_tidy-4.11.0-py3-none-any.whl.metadata (5.1 kB)
Collecting rsa==4.9 (from -r requirements.txt (line 54))
  Using cached rsa-4.9-py3-none-any.whl.metadata (4.2 kB)
Collecting scp==0.14.5 (from -r requirements.txt (line 55))
  Using cached scp-0.14.5-py2.py3-none-any.whl.metadata (4.3 kB)
Collecting semver==3.0.2 (from -r requirements.txt (line 56))
  Using cached semver-3.0.2-py3-none-any.whl.metadata (5.0 kB)
Collecting setuptools==69.5.1 (from -r requirements.txt (line 57))
  Using cached setuptools-69.5.1-py3-none-any.whl.metadata (6.2 kB)
Collecting six==1.16.0 (from -r requirements.txt (line 58))
  Using cached six-1.16.0-py2.py3-none-any.whl.metadata (1.8 kB)
Collecting SQLAlchemy==2.0.29 (from -r requirements.txt (line 59))
  Using cached SQLAlchemy-2.0.29-py3-none-any.whl.metadata (9.6 kB)
Collecting tabulate==0.8.9 (from -r requirements.txt (line 60))
  Using cached tabulate-0.8.9-py3-none-any.whl.metadata (23 kB)
Collecting toml==0.10.2 (from -r requirements.txt (line 61))
  Using cached toml-0.10.2-py2.py3-none-any.whl.metadata (7.1 kB)
Collecting tomli==2.0.1 (from -r requirements.txt (line 62))
  Using cached tomli-2.0.1-py3-none-any.whl.metadata (8.9 kB)
Collecting typing_extensions==4.11.0 (from -r requirements.txt (line 63))
  Using cached typing_extensions-4.11.0-py3-none-any.whl.metadata (3.0 kB)
Collecting Unidecode==1.3.8 (from -r requirements.txt (line 64))
  Using cached Unidecode-1.3.8-py3-none-any.whl.metadata (13 kB)
Collecting urllib3==2.2.1 (from -r requirements.txt (line 65))
  Using cached urllib3-2.2.1-py3-none-any.whl.metadata (6.4 kB)
Collecting virtualenv==20.26.0 (from -r requirements.txt (line 66))
  Using cached virtualenv-20.26.0-py3-none-any.whl.metadata (4.4 kB)
Collecting voluptuous==0.14.2 (from -r requirements.txt (line 67))
  Using cached voluptuous-0.14.2-py3-none-any.whl.metadata (20 kB)
Collecting wakeonlan==3.1.0 (from -r requirements.txt (line 68))
  Using cached wakeonlan-3.1.0-py3-none-any.whl.metadata (4.3 kB)
Collecting wcwidth==0.2.13 (from -r requirements.txt (line 69))
  Using cached wcwidth-0.2.13-py2.py3-none-any.whl.metadata (14 kB)
Collecting websocket-client==1.8.0 (from -r requirements.txt (line 70))
  Using cached websocket_client-1.8.0-py3-none-any.whl.metadata (8.0 kB)
Collecting wrapt==1.16.0 (from -r requirements.txt (line 71))
  Using cached wrapt-1.16.0-py3-none-any.whl.metadata (6.6 kB)
Using cached bcrypt-4.1.2-cp39-abi3-manylinux_2_28_x86_64.whl (698 kB)
Using cached certifi-2024.2.2-py3-none-any.whl (163 kB)
Using cached cfgv-3.4.0-py2.py3-none-any.whl (7.2 kB)
Downloading charset_normalizer-3.3.2-py3-none-any.whl (48 kB)
Using cached click-8.1.7-py3-none-any.whl (97 kB)
Using cached colorama-0.4.6-py2.py3-none-any.whl (25 kB)
Using cached cryptography-42.0.5-cp39-abi3-manylinux_2_28_x86_64.whl (4.6 MB)
Using cached distlib-0.3.8-py2.py3-none-any.whl (468 kB)
Using cached Faker-24.11.0-py3-none-any.whl (1.8 MB)
Using cached filelock-3.13.4-py3-none-any.whl (11 kB)
Using cached gspread-3.1.0-py3-none-any.whl (16 kB)
Using cached httplib2-0.22.0-py3-none-any.whl (96 kB)
Using cached identify-2.5.36-py2.py3-none-any.whl (98 kB)
Using cached idna-3.7-py3-none-any.whl (66 kB)
Using cached importlib_resources-6.4.0-py3-none-any.whl (38 kB)
Using cached Jinja2-3.1.3-py3-none-any.whl (133 kB)
Using cached markdown_it_py-3.0.0-py3-none-any.whl (87 kB)
Using cached mdurl-0.1.2-py3-none-any.whl (10.0 kB)
Using cached nodeenv-1.8.0-py2.py3-none-any.whl (22 kB)
Using cached oauth2client-4.1.3-py2.py3-none-any.whl (98 kB)
Using cached paramiko-3.4.0-py3-none-any.whl (225 kB)
Using cached pathspec-0.9.0-py2.py3-none-any.whl (31 kB)
Using cached pexpect-4.9.0-py2.py3-none-any.whl (63 kB)
Using cached platformdirs-4.2.1-py3-none-any.whl (17 kB)
Using cached pre_commit-3.7.0-py2.py3-none-any.whl (204 kB)
Using cached ptyprocess-0.7.0-py2.py3-none-any.whl (13 kB)
Using cached pyasn1-0.6.0-py2.py3-none-any.whl (85 kB)
Using cached pyasn1_modules-0.4.0-py3-none-any.whl (181 kB)
Using cached pycparser-2.22-py3-none-any.whl (117 kB)
Using cached pygments-2.17.2-py3-none-any.whl (1.2 MB)
Using cached PyNaCl-1.5.0-cp36-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_24_x86_64.whl (856 kB)
Using cached pyOpenSSL-24.1.0-py3-none-any.whl (56 kB)
Using cached pyotp-2.9.0-py3-none-any.whl (13 kB)
Using cached pyparsing-3.1.2-py3-none-any.whl (103 kB)
Using cached python_dateutil-2.9.0.post0-py2.py3-none-any.whl (229 kB)
Using cached pytz-2024.1-py2.py3-none-any.whl (505 kB)
Using cached requests-2.31.0-py3-none-any.whl (62 kB)
Using cached rich-13.7.1-py3-none-any.whl (240 kB)
Using cached rich_click-1.7.4-py3-none-any.whl (32 kB)
Using cached robotframework_faker-5.0.0-py3-none-any.whl (4.3 kB)
Using cached robotframework_requests-0.9.4-py3-none-any.whl (21 kB)
Using cached robotframework_robocop-5.0.4-py3-none-any.whl (114 kB)
Using cached robotframework_sherlock-0.3.0-py3-none-any.whl (50 kB)
Using cached robotframework_tidy-4.11.0-py3-none-any.whl (109 kB)
Using cached rsa-4.9-py3-none-any.whl (34 kB)
Using cached scp-0.14.5-py2.py3-none-any.whl (8.7 kB)
Using cached semver-3.0.2-py3-none-any.whl (17 kB)
Using cached setuptools-69.5.1-py3-none-any.whl (894 kB)
Using cached six-1.16.0-py2.py3-none-any.whl (11 kB)
Using cached SQLAlchemy-2.0.29-py3-none-any.whl (1.9 MB)
Using cached tabulate-0.8.9-py3-none-any.whl (25 kB)
Using cached toml-0.10.2-py2.py3-none-any.whl (16 kB)
Using cached tomli-2.0.1-py3-none-any.whl (12 kB)
Using cached typing_extensions-4.11.0-py3-none-any.whl (34 kB)
Using cached Unidecode-1.3.8-py3-none-any.whl (235 kB)
Using cached urllib3-2.2.1-py3-none-any.whl (121 kB)
Using cached virtualenv-20.26.0-py3-none-any.whl (3.9 MB)
Using cached voluptuous-0.14.2-py3-none-any.whl (31 kB)
Using cached wakeonlan-3.1.0-py3-none-any.whl (5.0 kB)
Using cached wcwidth-0.2.13-py2.py3-none-any.whl (34 kB)
Using cached websocket_client-1.8.0-py3-none-any.whl (58 kB)
Using cached wrapt-1.16.0-py3-none-any.whl (23 kB)
Building wheels for collected packages: cffi, greenlet, MarkupSafe, PyYAML
  Building wheel for cffi (pyproject.toml) ... error
  error: subprocess-exited-with-error

  × Building wheel for cffi (pyproject.toml) did not run successfully.
  │ exit code: 1
  ╰─> [55 lines of output]
      Package libffi was not found in the pkg-config search path.
      Perhaps you should add the directory containing `libffi.pc'
      to the PKG_CONFIG_PATH environment variable
      Package 'libffi' not found
      Package libffi was not found in the pkg-config search path.
      Perhaps you should add the directory containing `libffi.pc'
      to the PKG_CONFIG_PATH environment variable
      Package 'libffi' not found
      Package libffi was not found in the pkg-config search path.
      Perhaps you should add the directory containing `libffi.pc'
      to the PKG_CONFIG_PATH environment variable
      Package 'libffi' not found
      Package libffi was not found in the pkg-config search path.
      Perhaps you should add the directory containing `libffi.pc'
      to the PKG_CONFIG_PATH environment variable
      Package 'libffi' not found
      Package libffi was not found in the pkg-config search path.
      Perhaps you should add the directory containing `libffi.pc'
      to the PKG_CONFIG_PATH environment variable
      Package 'libffi' not found
      running bdist_wheel
      running build
      running build_py
      creating build/lib.linux-x86_64-cpython-313/cffi
      copying src/cffi/__init__.py -> build/lib.linux-x86_64-cpython-313/cffi
      copying src/cffi/_imp_emulation.py -> build/lib.linux-x86_64-cpython-313/cffi
      copying src/cffi/_shimmed_dist_utils.py -> build/lib.linux-x86_64-cpython-313/cffi
      copying src/cffi/api.py -> build/lib.linux-x86_64-cpython-313/cffi
      copying src/cffi/backend_ctypes.py -> build/lib.linux-x86_64-cpython-313/cffi
      copying src/cffi/cffi_opcode.py -> build/lib.linux-x86_64-cpython-313/cffi
      copying src/cffi/commontypes.py -> build/lib.linux-x86_64-cpython-313/cffi
      copying src/cffi/cparser.py -> build/lib.linux-x86_64-cpython-313/cffi
      copying src/cffi/error.py -> build/lib.linux-x86_64-cpython-313/cffi
      copying src/cffi/ffiplatform.py -> build/lib.linux-x86_64-cpython-313/cffi
      copying src/cffi/lock.py -> build/lib.linux-x86_64-cpython-313/cffi
      copying src/cffi/model.py -> build/lib.linux-x86_64-cpython-313/cffi
      copying src/cffi/pkgconfig.py -> build/lib.linux-x86_64-cpython-313/cffi
      copying src/cffi/recompiler.py -> build/lib.linux-x86_64-cpython-313/cffi
      copying src/cffi/setuptools_ext.py -> build/lib.linux-x86_64-cpython-313/cffi
      copying src/cffi/vengine_cpy.py -> build/lib.linux-x86_64-cpython-313/cffi
      copying src/cffi/vengine_gen.py -> build/lib.linux-x86_64-cpython-313/cffi
      copying src/cffi/verifier.py -> build/lib.linux-x86_64-cpython-313/cffi
      copying src/cffi/_cffi_include.h -> build/lib.linux-x86_64-cpython-313/cffi
      copying src/cffi/parse_c_type.h -> build/lib.linux-x86_64-cpython-313/cffi
      copying src/cffi/_embedding.h -> build/lib.linux-x86_64-cpython-313/cffi
      copying src/cffi/_cffi_errors.h -> build/lib.linux-x86_64-cpython-313/cffi
      running build_ext
      building '_cffi_backend' extension
      creating build/temp.linux-x86_64-cpython-313/src/c
      gcc -fno-strict-overflow -Wsign-compare -DDYNAMIC_ANNOTATIONS_ENABLED=1 -DNDEBUG -fexceptions -fcf-protection -fexceptions -fcf-protection -fexceptions -fcf-protection -O3 -fPIC -DFFI_BUILDING=1 -DUSE__THREAD -DHAVE_SYNC_SYNCHRONIZE -I/usr/include/ffi -I/usr/include/libffi -I/home/miwanicki/projects/open-source-firmware-validation/venv/include -I/usr/include/python3.13 -c src/c/_cffi_backend.c -o build/temp.linux-x86_64-cpython-313/src/c/_cffi_backend.o
      src/c/_cffi_backend.c:15:10: fatal error: ffi.h: No such file or directory
         15 | #include <ffi.h>
            |          ^~~~~~~
      compilation terminated.
      error: command '/usr/bin/gcc' failed with exit code 1
      [end of output]

  note: This error originates from a subprocess, and is likely not a problem with pip.
  ERROR: Failed building wheel for cffi
  Building wheel for greenlet (pyproject.toml) ... error
  error: subprocess-exited-with-error

  × Building wheel for greenlet (pyproject.toml) did not run successfully.
  │ exit code: 1
  ╰─> [203 lines of output]
      running bdist_wheel
      running build
      running build_py
      creating build/lib.linux-x86_64-cpython-313/greenlet
      copying src/greenlet/__init__.py -> build/lib.linux-x86_64-cpython-313/greenlet
      creating build/lib.linux-x86_64-cpython-313/greenlet/platform
      copying src/greenlet/platform/__init__.py -> build/lib.linux-x86_64-cpython-313/greenlet/platform
      creating build/lib.linux-x86_64-cpython-313/greenlet/tests
      copying src/greenlet/tests/__init__.py -> build/lib.linux-x86_64-cpython-313/greenlet/tests
      copying src/greenlet/tests/fail_clearing_run_switches.py -> build/lib.linux-x86_64-cpython-313/greenlet/tests
      copying src/greenlet/tests/fail_cpp_exception.py -> build/lib.linux-x86_64-cpython-313/greenlet/tests
      copying src/greenlet/tests/fail_initialstub_already_started.py -> build/lib.linux-x86_64-cpython-313/greenlet/tests
      copying src/greenlet/tests/fail_slp_switch.py -> build/lib.linux-x86_64-cpython-313/greenlet/tests
      copying src/greenlet/tests/fail_switch_three_greenlets.py -> build/lib.linux-x86_64-cpython-313/greenlet/tests
      copying src/greenlet/tests/fail_switch_three_greenlets2.py -> build/lib.linux-x86_64-cpython-313/greenlet/tests
      copying src/greenlet/tests/fail_switch_two_greenlets.py -> build/lib.linux-x86_64-cpython-313/greenlet/tests
      copying src/greenlet/tests/leakcheck.py -> build/lib.linux-x86_64-cpython-313/greenlet/tests
      copying src/greenlet/tests/test_contextvars.py -> build/lib.linux-x86_64-cpython-313/greenlet/tests
      copying src/greenlet/tests/test_cpp.py -> build/lib.linux-x86_64-cpython-313/greenlet/tests
      copying src/greenlet/tests/test_extension_interface.py -> build/lib.linux-x86_64-cpython-313/greenlet/tests
      copying src/greenlet/tests/test_gc.py -> build/lib.linux-x86_64-cpython-313/greenlet/tests
      copying src/greenlet/tests/test_generator.py -> build/lib.linux-x86_64-cpython-313/greenlet/tests
      copying src/greenlet/tests/test_generator_nested.py -> build/lib.linux-x86_64-cpython-313/greenlet/tests
      copying src/greenlet/tests/test_greenlet.py -> build/lib.linux-x86_64-cpython-313/greenlet/tests
      copying src/greenlet/tests/test_greenlet_trash.py -> build/lib.linux-x86_64-cpython-313/greenlet/tests
      copying src/greenlet/tests/test_leaks.py -> build/lib.linux-x86_64-cpython-313/greenlet/tests
      copying src/greenlet/tests/test_stack_saved.py -> build/lib.linux-x86_64-cpython-313/greenlet/tests
      copying src/greenlet/tests/test_throw.py -> build/lib.linux-x86_64-cpython-313/greenlet/tests
      copying src/greenlet/tests/test_tracing.py -> build/lib.linux-x86_64-cpython-313/greenlet/tests
      copying src/greenlet/tests/test_version.py -> build/lib.linux-x86_64-cpython-313/greenlet/tests
      copying src/greenlet/tests/test_weakref.py -> build/lib.linux-x86_64-cpython-313/greenlet/tests
      running egg_info
      writing src/greenlet.egg-info/PKG-INFO
      writing dependency_links to src/greenlet.egg-info/dependency_links.txt
      writing requirements to src/greenlet.egg-info/requires.txt
      writing top-level names to src/greenlet.egg-info/top_level.txt
      reading manifest file 'src/greenlet.egg-info/SOURCES.txt'
      reading manifest template 'MANIFEST.in'
      warning: no previously-included files found matching 'benchmarks/*.json'
      no previously-included directories found matching 'docs/_build'
      warning: no files found matching '*.py' under directory 'appveyor'
      warning: no previously-included files matching '*.pyc' found anywhere in distribution
      warning: no previously-included files matching '*.pyd' found anywhere in distribution
      warning: no previously-included files matching '*.so' found anywhere in distribution
      warning: no previously-included files matching '.coverage' found anywhere in distribution
      adding license file 'LICENSE'
      adding license file 'LICENSE.PSF'
      adding license file 'AUTHORS'
      writing manifest file 'src/greenlet.egg-info/SOURCES.txt'
      copying src/greenlet/TBrokenGreenlet.cpp -> build/lib.linux-x86_64-cpython-313/greenlet
      copying src/greenlet/TExceptionState.cpp -> build/lib.linux-x86_64-cpython-313/greenlet
      copying src/greenlet/TGreenlet.cpp -> build/lib.linux-x86_64-cpython-313/greenlet
      copying src/greenlet/TGreenletGlobals.cpp -> build/lib.linux-x86_64-cpython-313/greenlet
      copying src/greenlet/TMainGreenlet.cpp -> build/lib.linux-x86_64-cpython-313/greenlet
      copying src/greenlet/TPythonState.cpp -> build/lib.linux-x86_64-cpython-313/greenlet
      copying src/greenlet/TStackState.cpp -> build/lib.linux-x86_64-cpython-313/greenlet
      copying src/greenlet/TThreadStateDestroy.cpp -> build/lib.linux-x86_64-cpython-313/greenlet
      copying src/greenlet/TUserGreenlet.cpp -> build/lib.linux-x86_64-cpython-313/greenlet
      copying src/greenlet/greenlet.cpp -> build/lib.linux-x86_64-cpython-313/greenlet
      copying src/greenlet/greenlet.h -> build/lib.linux-x86_64-cpython-313/greenlet
      copying src/greenlet/greenlet_allocator.hpp -> build/lib.linux-x86_64-cpython-313/greenlet
      copying src/greenlet/greenlet_compiler_compat.hpp -> build/lib.linux-x86_64-cpython-313/greenlet
      copying src/greenlet/greenlet_cpython_add_pending.hpp -> build/lib.linux-x86_64-cpython-313/greenlet
      copying src/greenlet/greenlet_cpython_compat.hpp -> build/lib.linux-x86_64-cpython-313/greenlet
      copying src/greenlet/greenlet_exceptions.hpp -> build/lib.linux-x86_64-cpython-313/greenlet
      copying src/greenlet/greenlet_greenlet.hpp -> build/lib.linux-x86_64-cpython-313/greenlet
      copying src/greenlet/greenlet_internal.hpp -> build/lib.linux-x86_64-cpython-313/greenlet
      copying src/greenlet/greenlet_refs.hpp -> build/lib.linux-x86_64-cpython-313/greenlet
      copying src/greenlet/greenlet_slp_switch.hpp -> build/lib.linux-x86_64-cpython-313/greenlet
      copying src/greenlet/greenlet_thread_state.hpp -> build/lib.linux-x86_64-cpython-313/greenlet
      copying src/greenlet/greenlet_thread_state_dict_cleanup.hpp -> build/lib.linux-x86_64-cpython-313/greenlet
      copying src/greenlet/greenlet_thread_support.hpp -> build/lib.linux-x86_64-cpython-313/greenlet
      copying src/greenlet/slp_platformselect.h -> build/lib.linux-x86_64-cpython-313/greenlet
      copying src/greenlet/platform/setup_switch_x64_masm.cmd -> build/lib.linux-x86_64-cpython-313/greenlet/platform
      copying src/greenlet/platform/switch_aarch64_gcc.h -> build/lib.linux-x86_64-cpython-313/greenlet/platform
      copying src/greenlet/platform/switch_alpha_unix.h -> build/lib.linux-x86_64-cpython-313/greenlet/platform
      copying src/greenlet/platform/switch_amd64_unix.h -> build/lib.linux-x86_64-cpython-313/greenlet/platform
      copying src/greenlet/platform/switch_arm32_gcc.h -> build/lib.linux-x86_64-cpython-313/greenlet/platform
      copying src/greenlet/platform/switch_arm32_ios.h -> build/lib.linux-x86_64-cpython-313/greenlet/platform
      copying src/greenlet/platform/switch_arm64_masm.asm -> build/lib.linux-x86_64-cpython-313/greenlet/platform
      copying src/greenlet/platform/switch_arm64_masm.obj -> build/lib.linux-x86_64-cpython-313/greenlet/platform
      copying src/greenlet/platform/switch_arm64_msvc.h -> build/lib.linux-x86_64-cpython-313/greenlet/platform
      copying src/greenlet/platform/switch_csky_gcc.h -> build/lib.linux-x86_64-cpython-313/greenlet/platform
      copying src/greenlet/platform/switch_loongarch64_linux.h -> build/lib.linux-x86_64-cpython-313/greenlet/platform
      copying src/greenlet/platform/switch_m68k_gcc.h -> build/lib.linux-x86_64-cpython-313/greenlet/platform
      copying src/greenlet/platform/switch_mips_unix.h -> build/lib.linux-x86_64-cpython-313/greenlet/platform
      copying src/greenlet/platform/switch_ppc64_aix.h -> build/lib.linux-x86_64-cpython-313/greenlet/platform
      copying src/greenlet/platform/switch_ppc64_linux.h -> build/lib.linux-x86_64-cpython-313/greenlet/platform
      copying src/greenlet/platform/switch_ppc_aix.h -> build/lib.linux-x86_64-cpython-313/greenlet/platform
      copying src/greenlet/platform/switch_ppc_linux.h -> build/lib.linux-x86_64-cpython-313/greenlet/platform
      copying src/greenlet/platform/switch_ppc_macosx.h -> build/lib.linux-x86_64-cpython-313/greenlet/platform
      copying src/greenlet/platform/switch_ppc_unix.h -> build/lib.linux-x86_64-cpython-313/greenlet/platform
      copying src/greenlet/platform/switch_riscv_unix.h -> build/lib.linux-x86_64-cpython-313/greenlet/platform
      copying src/greenlet/platform/switch_s390_unix.h -> build/lib.linux-x86_64-cpython-313/greenlet/platform
      copying src/greenlet/platform/switch_sparc_sun_gcc.h -> build/lib.linux-x86_64-cpython-313/greenlet/platform
      copying src/greenlet/platform/switch_x32_unix.h -> build/lib.linux-x86_64-cpython-313/greenlet/platform
      copying src/greenlet/platform/switch_x64_masm.asm -> build/lib.linux-x86_64-cpython-313/greenlet/platform
      copying src/greenlet/platform/switch_x64_masm.obj -> build/lib.linux-x86_64-cpython-313/greenlet/platform
      copying src/greenlet/platform/switch_x64_msvc.h -> build/lib.linux-x86_64-cpython-313/greenlet/platform
      copying src/greenlet/platform/switch_x86_msvc.h -> build/lib.linux-x86_64-cpython-313/greenlet/platform
      copying src/greenlet/platform/switch_x86_unix.h -> build/lib.linux-x86_64-cpython-313/greenlet/platform
      copying src/greenlet/tests/_test_extension.c -> build/lib.linux-x86_64-cpython-313/greenlet/tests
      copying src/greenlet/tests/_test_extension_cpp.cpp -> build/lib.linux-x86_64-cpython-313/greenlet/tests
      running build_ext
      building 'greenlet._greenlet' extension
      creating build/temp.linux-x86_64-cpython-313/src/greenlet
      g++ -fno-strict-overflow -Wsign-compare -DDYNAMIC_ANNOTATIONS_ENABLED=1 -DNDEBUG -fexceptions -fcf-protection -fexceptions -fcf-protection -fexceptions -fcf-protection -O3 -fPIC -I/home/miwanicki/projects/open-source-firmware-validation/venv/include -I/usr/include/python3.13 -c src/greenlet/greenlet.cpp -o build/temp.linux-x86_64-cpython-313/src/greenlet/greenlet.o
      In file included from src/greenlet/greenlet_greenlet.hpp:26,
                       from src/greenlet/greenlet_internal.hpp:20,
                       from src/greenlet/greenlet.cpp:19:
      /usr/include/python3.13/internal/pycore_frame.h:8:4: error: #error "this header requires Py_BUILD_CORE define"
          8 | #  error "this header requires Py_BUILD_CORE define"
            |    ^~~~~
      In file included from /usr/include/python3.13/internal/pycore_frame.h:13:
      /usr/include/python3.13/internal/pycore_code.h:8:4: error: #error "this header requires Py_BUILD_CORE define"
          8 | #  error "this header requires Py_BUILD_CORE define"
            |    ^~~~~
      In file included from /usr/include/python3.13/internal/pycore_code.h:11:
      /usr/include/python3.13/internal/pycore_lock.h:13:4: error: #error "this header requires Py_BUILD_CORE define"
         13 | #  error "this header requires Py_BUILD_CORE define"
            |    ^~~~~
      In file included from /usr/include/python3.13/internal/pycore_code.h:12:
      /usr/include/python3.13/internal/pycore_backoff.h:9:4: error: #error "this header requires Py_BUILD_CORE define"
          9 | #  error "this header requires Py_BUILD_CORE define"
            |    ^~~~~
      src/greenlet/greenlet_greenlet.hpp:104:9: error: ‘_PyCFrame’ does not name a type; did you mean ‘_frame’?
        104 |         _PyCFrame* cframe;
            |         ^~~~~~~~~
            |         _frame
      src/greenlet/greenlet_greenlet.hpp:147:29: error: ‘_PyCFrame’ has not been declared
        147 |         void set_new_cframe(_PyCFrame& frame) noexcept;
            |                             ^~~~~~~~~
      In file included from src/greenlet/greenlet.cpp:33:
      src/greenlet/TUserGreenlet.cpp: In member function ‘virtual greenlet::Greenlet::switchstack_result_t greenlet::UserGreenlet::g_initialstub(void*)’:
      src/greenlet/TUserGreenlet.cpp:280:5: error: ‘_PyCFrame’ was not declared in this scope; did you mean ‘_frame’?
        280 |     _PyCFrame trace_info;
            |     ^~~~~~~~~
            |     _frame
      src/greenlet/TUserGreenlet.cpp:282:39: error: ‘trace_info’ was not declared in this scope
        282 |     this->python_state.set_new_cframe(trace_info);
            |                                       ^~~~~~~~~~
      In file included from src/greenlet/greenlet.cpp:36:
      src/greenlet/TPythonState.cpp: In constructor ‘greenlet::PythonState::PythonState()’:
      src/greenlet/TPythonState.cpp:12:6: error: class ‘greenlet::PythonState’ does not have any field named ‘cframe’
         12 |     ,cframe(nullptr)
            |      ^~~~~~
      src/greenlet/TPythonState.cpp:79:11: error: ‘class greenlet::PythonState’ has no member named ‘cframe’
         79 |     this->cframe = &PyThreadState_GET()->root_cframe;
            |           ^~~~~~
      src/greenlet/TPythonState.cpp:79:42: error: ‘PyThreadState’ {aka ‘struct _ts’} has no member named ‘root_cframe’
         79 |     this->cframe = &PyThreadState_GET()->root_cframe;
            |                                          ^~~~~~~~~~~
      src/greenlet/TPythonState.cpp: In member function ‘void greenlet::PythonState::operator<<(const PyThreadState*)’:
      src/greenlet/TPythonState.cpp:125:11: error: ‘class greenlet::PythonState’ has no member named ‘cframe’
        125 |     this->cframe = tstate->cframe;
            |           ^~~~~~
      src/greenlet/TPythonState.cpp:125:28: error: ‘const PyThreadState’ {aka ‘const struct _ts’} has no member named ‘cframe’
        125 |     this->cframe = tstate->cframe;
            |                            ^~~~~~
      src/greenlet/TPythonState.cpp:133:31: error: ‘C_RECURSION_LIMIT’ was not declared in this scope; did you mean ‘Py_C_RECURSION_LIMIT’?
        133 |     this->c_recursion_depth = C_RECURSION_LIMIT - tstate->c_recursion_remaining;
            |                               ^~~~~~~~~~~~~~~~~
            |                               Py_C_RECURSION_LIMIT
      src/greenlet/TPythonState.cpp:137:35: error: ‘const PyThreadState’ {aka ‘const struct _ts’} has no member named ‘cframe’
        137 |     this->current_frame = tstate->cframe->current_frame;
            |                                   ^~~~~~
      src/greenlet/TPythonState.cpp:147:42: error: ‘const PyThreadState’ {aka ‘const struct _ts’} has no member named ‘trash’
        147 |     this->trash_delete_nesting = tstate->trash.delete_nesting;
            |                                          ^~~~~
      src/greenlet/TPythonState.cpp: In member function ‘void greenlet::PythonState::operator>>(PyThreadState*)’:
      src/greenlet/TPythonState.cpp:188:13: error: ‘PyThreadState’ {aka ‘struct _ts’} has no member named ‘cframe’
        188 |     tstate->cframe = this->cframe;
            |             ^~~~~~
      src/greenlet/TPythonState.cpp:188:28: error: ‘class greenlet::PythonState’ has no member named ‘cframe’
        188 |     tstate->cframe = this->cframe;
            |                            ^~~~~~
      src/greenlet/TPythonState.cpp:202:37: error: ‘C_RECURSION_LIMIT’ was not declared in this scope; did you mean ‘Py_C_RECURSION_LIMIT’?
        202 |     tstate->c_recursion_remaining = C_RECURSION_LIMIT - this->c_recursion_depth;
            |                                     ^~~~~~~~~~~~~~~~~
            |                                     Py_C_RECURSION_LIMIT
      src/greenlet/TPythonState.cpp:207:13: error: ‘PyThreadState’ {aka ‘struct _ts’} has no member named ‘cframe’
        207 |     tstate->cframe->current_frame = this->current_frame;
            |             ^~~~~~
      src/greenlet/TPythonState.cpp:213:13: error: ‘PyThreadState’ {aka ‘struct _ts’} has no member named ‘trash’
        213 |     tstate->trash.delete_nesting = this->trash_delete_nesting;
            |             ^~~~~
      src/greenlet/TPythonState.cpp: At global scope:
      src/greenlet/TPythonState.cpp:273:6: error: variable or field ‘set_new_cframe’ declared void
        273 | void PythonState::set_new_cframe(_PyCFrame& frame) noexcept
            |      ^~~~~~~~~~~
      src/greenlet/TPythonState.cpp:273:34: error: ‘_PyCFrame’ was not declared in this scope; did you mean ‘_frame’?
        273 | void PythonState::set_new_cframe(_PyCFrame& frame) noexcept
            |                                  ^~~~~~~~~
            |                                  _frame
      src/greenlet/TPythonState.cpp:273:45: error: ‘frame’ was not declared in this scope; did you mean ‘_frame’?
        273 | void PythonState::set_new_cframe(_PyCFrame& frame) noexcept
            |                                             ^~~~~
            |                                             _frame
      src/greenlet/greenlet.cpp: In function ‘PyObject* mod_get_tstate_trash_delete_nesting(PyObject*)’:
      src/greenlet/greenlet.cpp:1341:36: error: ‘PyThreadState’ {aka ‘struct _ts’} has no member named ‘trash’
       1341 |     return PyLong_FromLong(tstate->trash.delete_nesting);
            |                                    ^~~~~
      error: command '/usr/bin/g++' failed with exit code 1
      [end of output]

  note: This error originates from a subprocess, and is likely not a problem with pip.
  ERROR: Failed building wheel for greenlet
  Building wheel for MarkupSafe (pyproject.toml) ... done
  Created wheel for MarkupSafe: filename=MarkupSafe-2.1.5-cp313-cp313-linux_x86_64.whl size=15575 sha256=a122fdac4dd1733a9b25bfc3d5b07dcc2d17c3c290410e81dd9eb402a1ff7892
  Stored in directory: /home/miwanicki/.cache/pip/wheels/c2/0c/c0/d6d953ac80cacc2dd1d329d675c67d1e7775bad02a8faedef0
  Building wheel for PyYAML (pyproject.toml) ... done
  Created wheel for PyYAML: filename=PyYAML-6.0.1-cp313-cp313-linux_x86_64.whl size=45236 sha256=306f3217466d498d93347571d88f3e3c62c4ee40a8e6e95f1ebb9eb760432a91
  Stored in directory: /home/miwanicki/.cache/pip/wheels/9c/9e/34/1e1548811b63a9d001469f21797e8b7d5c216d8eb928e7d6ad
Successfully built MarkupSafe PyYAML
Failed to build cffi greenlet

[notice] A new release of pip is available: 24.2 -> 24.3.1
[notice] To update, run: pip install --upgrade pip
ERROR: ERROR: Failed to build installable wheels for some pyproject.toml based projects (cffi, greenlet)

Additional context

Upgrading pip to version 24.3.1 didn't help.

Solutions you've tried

Updating failing dependencies: #597

@m-iwanicki m-iwanicki added the bug Something isn't working label Nov 18, 2024
@mysteriousCzrsX
Copy link

To work around that, additional to fixes in #597 you have to create a virtual environment with older version of python that still supports telnetlib:

sudo dnf install python3.12
virtualenv --python=/usr/bin/python3.12 venv
source venv/bin/activate
pip install -r requirements.txt

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
2 participants