LeastAuthority / python-challenge-bypass-ristretto

Python bindings for Brave's challenge-bypass-ristretto library
4 stars 4 forks source link

Build manylinux aarch64 wheels #43

Open exarkun opened 2 years ago

exarkun commented 2 years ago

CircleCI offers ARMv7 executors. We could use these to build aarch64 architecture manylinux wheels.

This might be as simple as running our build-wheels command in a job that chooses this executor. However, according to https://github.com/pypa/manylinux "Building manylinux-compatible wheels is not trivial" and that project provides Docker images for building these wheels. The page goes on to say "as a general rule, binaries built on one Linux distro will only work on other Linux distros that are the same age or newer". It is not clear if this is the only non-trivial consideration or if there are others.

Since we cannot use that project's Docker images directly on CircleCI's ARMv7 executors we should investigate whether the wheels built on the system that system are actually "good" wheels or not. If not, we may be able to run Docker ourselves on those executors and use the pypa/manylinux Docker images that way.

If the wheels built directly on the ARMv7 executor are good we should also look at the images that CircleCI offers and determine which offers the widest range of compatibility (without being unreasonably difficult to use). We will also have to take care to pay attention to CircleCI's image deprecation policy. My understanding is that CircleCI will eventually remove older images so over time we will have to adjust our configuration to follow those changes.

exarkun commented 2 years ago

I had tried to add a job for building these to #41 but because of the above-mentioned complexities I removed it in 5a505ec3f6d213d62ddc3d190293aff38631e0c3. Perhaps that diff will offer a head start to anyone who tries to resolve this issue.