Skip to content

ci: build cryptography musllinux wheels for riscv64 - #3540

Merged
luhenry merged 1 commit into
mainfrom
fix/cryptography-musllinux-riscv64
Oct 21, 2026
Merged

luhenry merged 1 commit into
mainfrom
fix/cryptography-musllinux-riscv64

Conversation

@gounthar

Copy link
Copy Markdown
Collaborator

Same change as #2629 (tiktoken) and #2640 (bcrypt): Rust 1.99 ships riscv64gc-unknown-linux-musl host tools, so cryptography can build musllinux.

Upstream's wheel-builder.yml treats musllinux as one more row of its manylinux job, so this adds a MANYLINUX axis (manylinux_2_39 + musllinux_1_2) to the build and test jobs. On the Alpine image, OpenSSL headers come from apk and the RHEL SHA1 override is skipped. Happy to make musl a separate job instead if you'd rather.

Test run on 50.0.2: https://github.com/riseproject-dev/python-wheels/actions/runs/39319766957
All four wheels build; both musllinux ones pass 4478 tests (203 skipped). Attempt 1 timed out with rustc stuck 76 min on pyo3-macros-backend (cp314t musl, riscv-runner-13); it took 1m43s in the cp312 musl job, and the re-run passed.

The workflow dropped musllinux because there was no riscv64 musl Rust
host toolchain. Rust 1.99.0 promoted riscv64gc-unknown-linux-musl to
Tier 2 with host tools and rustup 1.29.1 installs it, which unblocked
tiktoken (#2629) and bcrypt (#2640) the same way.

Upstream's wheel-builder.yml builds musllinux as one more MANYLINUX row
of the same job with identical steps, so this adds a MANYLINUX axis
(manylinux_2_39 + musllinux_1_2) to the build and test jobs rather than
a separate musl job. Two differences on the Alpine-based musllinux
image: OpenSSL headers come from apk, and the RHEL crypto-policy SHA1
override is skipped in the test job, since Alpine's OpenSSL has no such
policy and no rh-* option to set.

Signed-off-by: Bruno Verachten <gounthar@gmail.com>
@luhenry
luhenry merged commit dc2452d into main Oct 21, 2026
26 of 27 checks passed
@luhenry
luhenry deleted the fix/cryptography-musllinux-riscv64 branch October 21, 2026 09:49
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

Successfully merging this pull request may close these issues.

2 participants