Skip to content

pycryptodome: add build-pycryptodome.yml for riscv64 wheels - #358

Merged
luhenry merged 1 commit into
mainfrom
pycryptodome
Aug 25, 2026
Merged

pycryptodome: add build-pycryptodome.yml for riscv64 wheels#358
luhenry merged 1 commit into
mainfrom
pycryptodome

Conversation

@luhenry

@luhenry luhenry commented Aug 25, 2026

Copy link
Copy Markdown
Member

pycryptodome ships no riscv64 wheels on PyPI. This mirrors upstream's
wheels.yml
— cibuildwheel over a tag checkout, tested with python -m Crypto.SelfTest --skip-slow-tests — narrowed to manylinux_riscv64.

setup.py passes py_limited_api = cp37 to bdist_wheel unless the interpreter
is free-threaded, so the matrix collapses (gotcha 11) to two jobs:

  • build_abi3 — one cp37-abi3 wheel built on cp312 and re-tested on cp313/cp314
    via cibuildwheel's find_compatible_wheel;
  • build_freethreadedcp314t (the image has no cp313t, so it is the only
    free-threaded target even though upstream also publishes cp313t).

CIBW_TEST_REQUIRES adds upstream's requirements-test.txt pin
(pycryptodome-test-vectors==1.0.22); without it SelfTest skips its Wycheproof
vectors (2802 tests instead of 8035).

Local validation: both wheels build under QEMU riscv64 in
quay.io/pypa/manylinux_2_39_riscv64 (cp37-abi3 from cp312-cp312 and
cp314-cp314t), and the wheel carries LICENSE.rst + 40 .so files. The
extensions are optional=False and every .so is loaded through
Crypto.Util._raw_api with no pure-Python fallback, so gotcha 20 does not apply
— a missing .so is a hard import error, not a silent degrade.

pycryptodome ships no riscv64 wheels on PyPI. Mirror upstream's
wheels.yml (cibuildwheel from a tag checkout, `python -m Crypto.SelfTest
--skip-slow-tests`), narrowed to manylinux_riscv64.

setup.py sets bdist_wheel's py_limited_api to cp37 unless the
interpreter is free-threaded, so the matrix collapses to one cp37-abi3
wheel (built on cp312, re-tested on cp313/cp314) plus cp314t.
@luhenry
luhenry merged commit 1ddab59 into main Aug 25, 2026
6 checks passed
@luhenry
luhenry deleted the pycryptodome branch August 25, 2026 14:57
@luhenry luhenry linked an issue Aug 25, 2026 that may be closed by this pull request
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.

pycryptodome riscv64 support

1 participant