ParallelSSH / ssh2-python

Python bindings for libssh2 C library.
https://parallel-ssh.org
GNU Lesser General Public License v2.1
228 stars 72 forks source link

[Feature request] manylinux2014 wheels #144

Closed martinhoyer closed 2 years ago

martinhoyer commented 3 years ago

As stated in PEP 599 Rationale: "CentOS 6 is now the oldest supported CentOS release, and will receive maintenance updates through November 30th, 2020, at which point it will reach end-of-life, and no further updates such as security patches will be made available. All wheels built under the manylinux2010 images will remain at obsolete versions after that point."

Would it be possible to start building wheels using manylinux2014? This would also enable creating wheels on architectures supported by CentOS7 (x86_64, i686, aarch64, armv7l, ppc64, ppc64le, s390x)

I don't fully understand the CI pipeline here, but have tried to rebuild wheels manually on s390x, ppc64le, aarch64 CentOS7 and can confirm there are no extra steps needed, compared to x86_64.

Please let me know if I can somehow help.

pkittenis commented 3 years ago

Thanks for the interest and report.

PR welcome for adding manylinux2014 in addition to the existing manylinux2010, x86_64 only. Can refer to the manylinux2010 script and dockerfile.

These two lines in CI cfg will need to be commented out to build wheels on a branch (tags only by default).

There is not enough use to justify adding building wheels for other architectures as part of a release.

pkittenis commented 2 years ago

Provided in 0.27.0, as well as ARM wheels.

martinhoyer commented 2 years ago

This is great @pkittenis ! I'm looking into adding s390x, ppc64le wheels to cover remaining RHEL/CentOS Stream supported architectures - Is this something you'd be ok with? If yes, what would be the most elegant solution, given the fact circleci is being used? docker buildx?

There is not enough use to justify adding building wheels for other architectures as part of a release.

I can speak for our use-case, where ssh2-python is a dependency of a python module, which makes the installation of said module problematic on other archs. Workaround was to build rpms for internal repo, but that becomes troublesome for latest repos using openssl-3

pkittenis commented 2 years ago

Hello,

This issue is closed. Please open a new issue for features/bugs.

For other architectures, the builds need to be run on CircleCI for automated release, so the architecture needs to be supported by CircleCI. PRs welcome.