Skip to content

zstandard: probe musllinux riscv64 (experiment, do not merge as is) - #203

Draft
gounthar wants to merge 1 commit into
mainfrom
experiment/zstandard-musllinux-riscv64
Draft

zstandard: probe musllinux riscv64 (experiment, do not merge as is)#203
gounthar wants to merge 1 commit into
mainfrom
experiment/zstandard-musllinux-riscv64

Conversation

@gounthar

@gounthar gounthar commented Aug 4, 2026

Copy link
Copy Markdown
Collaborator

Draft on purpose. This is the musllinux experiment from #163, kept to the budget you asked for: one Python version, no publish job, and it gets closed or folded into build-zstandard.yml depending on what the run says.

quay.io/pypa/musllinux_1_2_riscv64 exists and is tagged daily (latest today), so the image was never the blocker. Three things looked likely to bite, so they are handled up front rather than found one run at a time:

  1. build-frontend. zstandard's pyproject.toml sets build-frontend = "build[uv]" globally. uv has no musl riscv64 binary to install in the container. Overridden to plain build, which is what upstream does on their musllinux builds with the comment "uv not present on musllinux cross-compiled images".
  2. cffi. test-groups = ["dev"] pulls cffi, and our registry carries riscv64 cffi as manylinux only (checked today, 23 files, no musllinux). So it builds from source in the container.
  3. libffi headers. Which cffi needs. zstandard's before-all is if [ -x /usr/bin/yum ]; then yum install -y libffi-devel; fi, and a musl image has no yum, so today it installs nothing there. CIBW_BEFORE_ALL_LINUX is widened to cover apk while keeping the yum branch.

What I do not know yet is whether the extension itself compiles clean against musl, and whether ZSTD_WARNINGS_AS_ERRORS=1 survives the different toolchain. That is what this run is for.

If it goes green I will open a real PR folding the jobs into build-zstandard.yml. If it does not, the failure is the answer and I will write it up on #163 so the next person does not start from zero.

Refs #163

Tracks the musllinux gap noted in #163. build-zstandard.yml builds manylinux
only, while upstream builds both. quay.io/pypa/musllinux_1_2_riscv64 exists and
is tagged daily, so the image was never the blocker.

One Python version, no publish job. Three things are pre-empted rather than
found one run at a time: build-frontend drops to plain build because uv has no
musl riscv64 binary, cffi will build from source because our registry carries
riscv64 cffi as manylinux only, and before-all is widened to apk because
zstandard guards it on /usr/bin/yum, which a musl image does not have.

Signed-off-by: Bruno Verachten <gounthar@gmail.com>
@github-actions

github-actions Bot commented Aug 4, 2026

Copy link
Copy Markdown
Contributor
PR Preview Action v1.8.1

QR code for preview link

🚀 View preview at
https://riseproject-dev.github.io/python-wheels/pr-preview/pr-203/

Built to branch gh-pages at 2026-08-04 20:15 UTC.
Preview will be ready when the GitHub Pages deployment is complete.

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.

1 participant