[draft] Sketched out an explicit QEMU mode#1773
Conversation
# Conflicts: # cibuildwheel/linux.py
joerick
left a comment
There was a problem hiding this comment.
Thanks for putting this together. my thoughts-
- no need to put this behind a new option, IMO. We can add the --platform always
- we shouldn't fiddle with the container_engine_config, instead, pass the architecture into OCIContainer, and map it as appropriate in there
- For arm64, I see you specified
linux/arm64/v8, I wonder if we can be more vague and leave out the variant here and just say e.g.linux/arm64
|
Implemented your suggested changes. Unfortunately I'm getting failed tests in CircleCI when setting Also, this is failing: https://dev.azure.com/joerick0429/cibuildwheel/_build/results?buildId=5690&view=logs&j=65f37ddb-1a35-539a-d91f-4ab7f01a34d0&t=677308e5-f586-5eb1-7f4b-3c9712904030&l=1767. Seems like a
Since |
Hmm. this kind of detail makes me less sure that manually specifying the platform is the right approach.
It's not experimental since Docker API v1.32, guess Circle are lagging pretty bad there. But given this route is still in the process of rolling out, I think a better option would be for you to use |
|
It's now possible since #1792 to use |
This is a very primitive sketch of forcing
cibuildwheelto execute a given docker build container in the platform mode that corresponds to the wanted wheel architecture. This should only have an effect when doing non-native platform wheel builds through QEMU.Possibly interesting since I noticed that all build containers run commands are given no further platform information, even if an image could not be executed natively and has to be run through QEMU. This should work because of the binfmt_misc feature of the linux kernel, but for some reason I saw this crash catastrophically in this issue in a Github Action: #1771.
This would also remove these warning messages that docker prints out:
Note that this is just a sketch and not intended to be merged. Let me know what you think about this in general.