-
Notifications
You must be signed in to change notification settings - Fork 253
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
remove .so files when copying source into the container #139
Comments
possibly the same as pypa/auditwheel#36 (comment) since the first image build goes fine, it's the second that fails. |
sorted this at last, found the answer at pypa/manylinux#214 (comment) - I was building the package on the host before running
|
Ah, thanks for tracking this down. Maybe a simple way around this would be to delete the 'build' directory inside the docker container before each build? Anything in that folder can be regenerated as part of the build, as I understand it. |
That wouldn't help in my case, during testing I install/build with Ideally
Or some combination of the above. I'm afraid I can't be much help on this at the moment - I'm already spending far too much time on open source stuff, but thanks a lot for cibuildwheel, even with this problem it's saved me a lot of time. |
Maybe I don't fully understand the problem, but this seems like a problem on the user-side of Correct me if I'm wrong, but the actual problem seems to be that the project is built twice? Which is in principle not a property of Is there a possibility to clean up the build? Or maybe to run |
Yes that's what I'm doing now. Maybe just a warning then and a note in docs? |
Yeah, sure, if this can be confusing, it should be clarified. I'm just not sure where to add it and how general it should be. What kind of note are you thinking about? Something related to this specific problem, or a more general note on |
question is what can cause the "presence of too-recent versioned symbols" error? Is it just I would say:
|
Hm... I'm a little torn here... I'm hesitant to filter out So I think my proposal would be:
How does that sound? |
yes agreed, I was saying add a warning, not an error. There are already a number of warnings (eg. "pip is outdated, you should install ...") that people regularly ignore, adding another one wouldn't upset people for whom build succeeds but would save those who do get an error a lot of time. |
But then this is not really a EDIT: |
ok, up to you. Maybe this issue existing for anyone afflicted with the same problem is enough. Add a comment to the readme or close as you see fit. |
If you'll permit, I feel like giving a long answer! Here is a good question - since cibuildwheel abstracts over other build tools, is it responsible when one of those breaks? My opinion is this: cibuildwheel doesn't really do anything itself - it's always deferring to other tools (pip, wheel, auditwheel, delocate, docker). Without cibuildwheel, the process is really fragmented. Different tools, across different OSs need to be stitched together in just the right way to make it work. Now clearly we're not responsible for errors in those tools, for fixing errors/crashes there. But I think cibuildwheel's job is providing users with an 'integrated' user experience across those tools. We provide an abstraction. The user says 'build me some wheels', not 'open the docker container, build a wheel with pip, fix up the symbols with auditwheel' etc. However, errors have this habit of breaking abstractions. And this is where users get confused, because the mechanism of cibuildwheel is laid bare, and they must understand a little bit how it works to debug. So, if we can, I'd like to improve the experience on errors as well. In this case, it takes a bit of knowledge to understand that the linux builds are happening in a totally different OS via docker, that the linked symbols won't match, that auditwheel will fail because of this. A problem with how the tools fit together, instead of the tools themselves. Also, I've had an idea. Let's do the |
great idea. |
OK, that is a fair point, that I hadn't really considered yet :-) I was (am?) mainly worried to clutter up the cibuildwheel abstractions and simplicity with these kinds of details that are meant to be hidden, but your solution seems like a way of having both! (Thanks for the long answer, by the way; this is an interesting/important thing to remember for future issues.) |
Trying to build wheels on travis and I'm getting the following error:
See this build for details.
I don't get this error when building locally with
cibuildwheel --platform linux --output-dir dist
.Any idea what I'm doing wrong?
The text was updated successfully, but these errors were encountered: