Skip to content

pyrnnoise: Add version 0.4.3 - #2736

Open
luhenry wants to merge 1 commit into
mainfrom
pyrnnoise
Open

luhenry wants to merge 1 commit into
mainfrom
pyrnnoise

Conversation

@luhenry

@luhenry luhenry commented Oct 5, 2026 •

Copy link
Copy Markdown
Member

Compiles Xiph's RNNoise, a portable C recurrent-network noise suppressor, into a ctypes-loaded librnnoise.so. Upstream publishes no riscv64 wheel.

Mirrors upstream's release.yml.

Differs from upstream

  • Checks out a fixed commit, not a tag - upstream tags no releases and stamps VERSION only at build time.
  • Runs the cmake build in before-all - setup.py expects librnnoise.so prebuilt, same as upstream's own job.
  • Installs cmake/wget via dnf - the riscv64 image ships neither.
  • Drops musllinux - matplotlib, an unconditional dependency, has no musllinux riscv64 wheel here.

Matrix: cp312 only - the wheel is tagged py3-none and serves every interpreter.

Testing

  • Smoke-tests create/process_frame/destroy against a silent frame - upstream's own CI builds wheels but runs no tests.

License: Wheel bundles RNNoise (BSD-3-Clause), statically linked; upstream ships no licence text for it, so the build adds one.

Patches

  • 0001-Add-RNNoise-s-LICENSE-at-project-root.patch - To upstream (not submitted). Without it the wheel ships only pyrnnoise's own Apache-2.0 LICENSE; reproduces on every platform, not riscv64-only.
  • 0002-setup.py-force-platlib-placement-for-auditwheel.patch - Inappropriate (upstream runs no auditwheel). Without it librnnoise.so lands in the wheel's purelib data category and auditwheel refuses to repair it; reproduces on every platform, not riscv64-only.

Built on cp312; manylinux passes.

luhenry added a commit that referenced this pull request Oct 5, 2026
@github-actions

github-actions Bot commented Oct 5, 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-2736/

Built to branch gh-pages at 2026-10-05 22:37 UTC.
Preview will be ready when the GitHub Pages deployment is complete.

@luhenry
luhenry force-pushed the pyrnnoise branch 2 times, most recently from 3880cf6 to 59624e2 Compare October 5, 2026 22:24
pyrnnoise wraps Xiph's RNNoise, a portable C recurrent-network noise
suppressor: it has no SIMD-only code paths (vec.h falls back to plain
C when neither __AVX__/__SSE2__ nor __ARM_NEON is defined, which is
what riscv64 compiles) and its own x86 RTCD acceleration path is off
by default. Its wheel ships a prebuilt librnnoise.so loaded via
ctypes and ships no ext_modules, so one py3-none build serves every
interpreter, same shape as this repo's capstone/keystone-engine ports.

Upstream tags no commit and stamps VERSION only at release time from
a workflow_dispatch input, never committing the bump; pin the build to
the commit (a4edc69) whose tree is byte-identical to the released
0.4.3 sdist/wheel contents, confirmed by diffing pyrnnoise/pyrnnoise.py
and requirements.txt against the real PyPI wheel. musllinux is dropped:
matplotlib, an unconditional runtime dependency, has no musllinux
riscv64 wheel on this registry.

Two patches: one adds RNNoise's own BSD-3-Clause LICENSE.rnnoise at
the project root, which the wheel has never shipped alongside its own
Apache-2.0 LICENSE despite statically linking the RNNoise C library
into every release; the other fixes setup.py's custom bdist_wheel,
which sets root_is_pure = False for a platform tag but leaves
has_ext_modules() False, so librnnoise.so lands under the wheel's
purelib data category and auditwheel refuses to repair it ("the wheel
has to be platlib compliant"). Verified end to end on x86_64: built,
auditwheel-repaired, installed and smoke-tested with both patches
applied.
luhenry added a commit that referenced this pull request Oct 5, 2026
@luhenry
luhenry marked this pull request as ready for review October 5, 2026 22:54
luhenry added a commit that referenced this pull request Oct 5, 2026

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