stream-unzip: add build-stream-unzip.yml for riscv64 wheels - #1214
Merged
Conversation
stream-unzip ships a real PyO3/maturin extension module (stream_unzip._zipcrypto, built from src/lib.rs + Cargo.toml), not the pure-Python package its many per-CPython PyPI wheel tags might suggest - confirmed by unzipping a released wheel (_zipcrypto.cpython-3XX-*.so ships alongside the Python source). Mirrors upstream's own release workflow: maturin sdist build with the 0.0.0.dev0 version placeholder substituted, then a per-interpreter cibuildwheel build (cp312/cp313/cp314, no abi3, no musllinux since rustup ships no riscv64 musl toolchain) with rustup installed in-container. Runtime deps pycryptodome (already on our registry) and stream-inflate (no riscv64 wheel yet, but its own build deps - setuptools + Cython>=3.0.0 - resolve from our registry and public PyPI, so pip builds it from its public sdist) are pulled in automatically when cibuildwheel installs the built wheel for testing.
luhenry
added a commit
that referenced
this pull request
Sep 7, 2026
manylinux_2_39_riscv64 has no dedicated zlib build step, so CPython's zlib module links against the image's system zlib-ng-compat. It decodes this test's single-byte-corrupted raw DEFLATE stream without raising, where upstream's zlib raises a decode error - so the corruption only surfaces once the decompressed bytes fail the trailing CRC-32 check (CRC32IntegrityError), not the DeflateError the test asserts. Confirmed on all three interpreters (cp312/cp313/cp314): 9 errors, all this one subTest-parametrized method, nothing else.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
stream-unzip0.0.101Compiles a PyO3 extension module (
stream_unzip._zipcrypto) for ZipCrypto decryption. Upstream publishes no riscv64 wheel, despite the per-CPython-version wheel tags on PyPI looking pure-Python at a glance.Mirrors upstream's
build-source-package-and-wheels.yml.Differs from upstream
Matrix: cp312/cp313/cp314 - upstream doesn't build a 3.14t wheel yet
Testing
License: OK
Built on cp312/cp313/cp314; CI running.