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

[Feature request] Upload arm32(armv7l) wheels #6286

Closed
MrNaif2018 opened this issue Sep 19, 2021 · 3 comments
Closed

[Feature request] Upload arm32(armv7l) wheels #6286

MrNaif2018 opened this issue Sep 19, 2021 · 3 comments

Comments

@MrNaif2018
Copy link

Recently cryptography has gained manymusl support, that's great! 🎉
We build our docker images for amd64,arm64(aarch64) and arm32(armv7l). Currently cryptography covers all the architectures in both manylinux and manymusl formats except for armv7l.
Could it be possible to also upload armv7l in addition to aarch64 wheels to pypi?
I see zuul is used for aarch64 wheels, could it possibly be used for armv7l wheels too?
Or is there some common convention to not build armv7l wheels, as I often see aarch64 wheels and not armv7l?

@reaperhulk
Copy link
Member

Getting armv7l in hosted CI isn't really possible at this time and armv7l systems tend to be very low performance compared to their aarch64 brethren. We won't ship wheels for platforms we don't directly test, so that's the primary obstacle here.

@MrNaif2018
Copy link
Author

I see. Well when getting my docker images built for arm32 it was indeed slow for me, but I found a solution: qemu emulation can be used.
When using qemu emulation on amd64 systems it is extremely slow.
But when using qemu emulation on aarch64 systems it is almost the same performance as native aarch64 builds (probably because it is supported by some flag by those systems anyway).
That's how we did it (but it was for docker images, but in the worst case needed things can be run in docker image, but I believe there is something like qemu-chroot more suitable for those things):
https://github.com/bitcartcc/bitcartcc-orb/blob/master/src/commands/enable-buildx.yml#L8
https://github.com/bitcartcc/bitcartcc-orb/blob/master/src/commands/build-docker-image.yml#L10

That way you can use circleci arm images, or zuul arm images, and arm32 can be tested/built on the same machines
Would that work?

@reaperhulk
Copy link
Member

Looking at this more deeply the manylinux project doesn't even publish armv7l manylinux/musllinux containers (https://quay.io/organization/pypa) so even if we wanted to we wouldn't be able to create a build env.

For now armv7l is simply not a platform we're going to directly support. Every architecture we test carries significant costs for us and we will, for now, limit ourselves to x86_64 and aarch64. Projects like piwheels.org (https://www.piwheels.org/project/cryptography/) have been producing their own packages for armv7l, although since they're not manylinux-based they aren't portable to other distributions.

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

No branches or pull requests

2 participants