Skip to content

ssh2-python: add build-ssh2-python.yml for riscv64 wheels - #1231

Merged
luhenry merged 3 commits into
mainfrom
ssh2-python
Sep 7, 2026
Merged

ssh2-python: add build-ssh2-python.yml for riscv64 wheels#1231
luhenry merged 3 commits into
mainfrom
ssh2-python

Conversation

@luhenry

@luhenry luhenry commented Sep 7, 2026

Copy link
Copy Markdown
Member

Cython bindings for the libssh2 C library, built from the vendored libssh2/ tree against system OpenSSL. Upstream publishes no riscv64 wheel.

Mirrors upstream's build-wheels.sh.

Differs from upstream

  • Skips upstream's from-source OpenSSL 3.4.0 build - Rocky 10's openssl-devel is already current, and a source build fails on riscv64 (no FindBin.pm).

Testing

  • Runs upstream's tests/ pytest suite against the wheel; upstream's own manylinux script only does an import sanity check.

License: Wheel bundles libssh2 (BSD-3-Clause, vendored and built from source) and OpenSSL (Apache-2.0, from the build image); upstream ships no licence text for either, so the build adds both.

Patches

  • 0001-Widen-license-files-to-cover-bundled-third-party-lic.patch - To upstream. Without it setuptools' explicit license_files list drops the added licence files from the wheel. Reproduces on any arch.

Built on cp312 (macOS, local, system OpenSSL); 25 passed.

* **Package**: `ssh2-python`
* **Version**: `1.2.0.post1`
* **Source**: https://github.com/ParallelSSH/ssh2-python
* **Docs**: https://parallel-ssh.org

Cython bindings for the libssh2 C library, built from the vendored `libssh2/` tree against system OpenSSL. Upstream publishes no riscv64 wheel.

Mirrors [upstream's `build-wheels.sh`](https://github.com/ParallelSSH/ssh2-python/blob/1.2.0.post1/ci/build-wheels.sh).

**Differs from upstream**
- Skips upstream's from-source OpenSSL 3.4.0 build - Rocky 10's `openssl-devel` is already current, and a source build fails on riscv64 (no `FindBin.pm`).

**Testing**
- Runs upstream's `tests/` pytest suite against the wheel; upstream's own manylinux script only does an import sanity check.

**License**: Wheel bundles libssh2 (BSD-3-Clause, vendored and built from source) and OpenSSL (Apache-2.0, from the build image); upstream ships no licence text for either, so the build adds both.

**Patches**
- `0001-Widen-license-files-to-cover-bundled-third-party-lic.patch` - To upstream. Without it setuptools' explicit `license_files` list drops the added licence files from the wheel. Reproduces on any arch.

Built on cp312 (macOS, local, system OpenSSL); 25 passed.
luhenry added a commit that referenced this pull request Sep 7, 2026
@luhenry
luhenry merged commit f54aaca into main Sep 7, 2026
14 of 15 checks passed
@luhenry
luhenry deleted the ssh2-python branch September 7, 2026 08:27
@luhenry luhenry linked an issue Sep 7, 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.

ssh2-python riscv64 support

1 participant