Skip to content

parasail: Add version 1.3.4 - #3357

Draft
luhenry wants to merge 1 commit into
mainfrom
parasail
Draft

luhenry wants to merge 1 commit into
mainfrom
parasail

Conversation

@luhenry

@luhenry luhenry commented Oct 15, 2026 •

Copy link
Copy Markdown
Member

Wraps the parasail SIMD pairwise sequence alignment C library via ctypes, bundling a platform-specific libparasail.so inside the wheel. Upstream publishes no riscv64 wheel.

Mirrors upstream's wheels.yml (plain cibuildwheel, no Linux-specific before-build steps).

Differs from upstream

  • Single cp312 build, not the full matrix - bdist_wheel.finalize_options() forces every wheel to the same py2.py3-none tag regardless of interpreter, same reason upstream itself builds only cp310
  • Added PIP_EXTRA_INDEX_URL - lets the numpy runtime requirement resolve against our registry too

Matrix: cp312 only (see above)

Testing

  • same as upstream

License: Wheel bundles libparasail.so built from jeffdaily/parasail at build time, under that project's own Battelle BSD-style licence (same family as this package's).

Patches

  • 0001-setup-refresh-config.guess-config.sub-for-riscv64.patch - Inappropriate [riscv64 build infra]. jeffdaily/parasail's committed config.guess/config.sub predate riscv64, so ./configure dies before SIMD-ISA probing even starts; riscv64-only.

No local build check: the build fetches the C library from GitHub and compiles it inside the riscv64 manylinux container at wheel-build time, not reproducible in this sandbox.

parasail wraps the parasail SIMD C library via ctypes, bundling a
platform-specific libparasail.so inside an otherwise "none"-ABI wheel.
PyPI 1.3.4 ships manylinux_x86_64/musllinux_i686/macOS/Windows wheels
but no riscv64, and jeffdaily/parasail's configure.ac probes each SIMD
ISA independently with no architecture allow-list, so it already
degrades gracefully to a scalar build on an unrecognised host.

Mirrors upstream's own wheels.yml (plain cibuildwheel, single cp310 -
now cp312 - build since bdist_wheel.finalize_options() forces every
wheel to the same py2.py3-none tag regardless of interpreter). Patches
setup.py to refresh config.guess/config.sub from the manylinux image's
own automake before the C library's autoreconf runs, since the
upstream C library's committed pair predates riscv64 (gotcha 138).
luhenry added a commit that referenced this pull request Oct 15, 2026
…ition/python-qpid-proton -> no-gap; pymqi/librabbitmq -> parked
@luhenry
luhenry marked this pull request as draft October 16, 2026 00:05

This branch has not been deployed

No deployments
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