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

Likely bug in cibuildwheel #1983

Open
mathias-von-ottenbreit opened this issue Aug 24, 2024 · 4 comments
Open

Likely bug in cibuildwheel #1983

mathias-von-ottenbreit opened this issue Aug 24, 2024 · 4 comments

Comments

@mathias-von-ottenbreit
Copy link

mathias-von-ottenbreit commented Aug 24, 2024

Description

Please look at this issue which was originally thought to be a bug in Github Actions. However, it seems that a bug in cibuildwheel was introduced in v2.18.0.

Build log

No response

CI config

No response

@henryiii
Copy link
Contributor

Are you sure it's not a bug in setuptools? IIRC that was a bug for a bit there?

@jepler
Copy link

jepler commented Sep 17, 2024

I'm also seeing 'NoneType' object is not subscriptable causing various builds to fail. For me, this was first seen in adafruit/g722_1_mod#27 " Bump pypa/cibuildwheel from 2.20.0 to 2.21.1", however when re-running the workflow on my main branch (so cibuildwheel 2.20.0) the same failure occurs. This would seem to imply that the problem is elsewhere than cibuildwheel, or is an interaction that also depends on the version of some other package.

For me, many builds succeed, but for example PyPy 3.8 manylinux x86_64 fails. The failure on macos is also PyPy 3.8 (PyPy 3.8 macOS x86_64). However, windows pypy 3.8 succeeds!

The error seems to indicate that detection of the correct program to invoke as the linker has failed and resulted in None instead:

          File "/tmp/pip-build-env-qpqyblez/overlay/lib/pypy3.8/site-packages/setuptools/_distutils/unixccompiler.py", line 269, in link
            self.linker_exe
        TypeError: 'NoneType' object is not subscriptable (key slice(None, None, None))
        [end of output]

Could the problem be inside the version of the build container such as pypy_x86_64: quay.io/pypa/manylinux2014_x86_64:2024.08.03-1 ?

commit beb16342b3dd1584e88598bfb92b192ebf90a972
Author: mayeut <mayeut@users.noreply.github.com>
Date:   Sat Jun 8 20:55:20 2024 +0200

    feature: remove PyPy 3.7 & 3.8 from images

it looks like pypy 3.8 is built by default, but has been dropped from manylinux. Is cibuildwheel supposed to fetch the toolchain in some alternate way when this happens? I am not able to interpret my build logs to see if this is happening, but I can sure see that in the 2024.08.03-1 image pp3.8 is not there .. but pp3.7 is not either, yet it appearently builds OK.

I hope some of this information might help direct this issue to the correct place. In my project, I'll just be disabling pp* or pp38* wheels and moving on, because I doubt pypy users are important users of my weird little project.

edited to add: pp39 is broken as well with a similar error.

jepler added a commit to adafruit/g722_1_mod that referenced this issue Sep 17, 2024
@henryiii
Copy link
Contributor

This is a bug in PyPy + setuptools interaction, I don't think cibuildwheel is involved at all. PyPy's official stance is PyPy 3.7-3.9 are not supported and are not expected to work. I think 3.7 works because it's getting an old setuptools. I think PyPy's latest (3.10 only) may contain the fix.

If possible, I'd recommend only building PyPy3.10. That's what PyPy recommends. We just don't have a general concept of a "default-off" identifier at the moment.

@QuLogic
Copy link

QuLogic commented Sep 26, 2024

The setuptools bug is pypa/distutils#283; you can pin setuptools<72.2.0 on PyPy builds to get it working.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants