-
Notifications
You must be signed in to change notification settings - Fork 2
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Newer versions of manylinux #63
Comments
I only skimmed this but do you mean |
No, I did mean "max", but I can see how these things can be confusing. Some more explanations, including references to the code.
...so this ticket asks if |
Is there a reason for limiting the maximum manylinux version other than our current code architecture? In that case one could think about removing the need for a maximum version. |
Thank you for discussing this topic together!
I would agree that the current manylinux version provides a reasonable default value for the CLI. Nonetheless, users may need to specify a different maximum manylinux version when cross-compiling. For example, a user may run req2flatpak on a recently updated operating system, working on an app which targets an older flatpak SDK and platform. I'll try to sketch a solution:
|
Sounds reasonable! |
TLDR: I think we can bump the max version number of manylinux to whatever happens to be the max supported version in the operating system where req2flatpak is run.
In detail:
The problem, failing tests: I added additional testdata by running
req2flatpak --platform-info > tests/cp311-x86_64.platforminfo.json
and found thattests.test_platform_factory.RegressionTest.test
fails now. The reason is that my python installation supports newer versions of manylinux, including 2.36 and 2.37, whereas req2flatpak'sreq2flatpak.PlatformFactory._cp3_linux_tags
method only knows of manylinux up to version 2.35Background research: According to https://github.com/pypa/manylinux and https://packaging.python.org/en/latest/specifications/platform-compatibility-tags/, the (newer) manylinux versions follow PEP 600, which states that a wheel tagged
manylinux_x_y
shall work on any distro based onglibc>=x.y
. (And indeed, runningldd --version
confirms that my system comes with glibc 3.37).There is really no way for
req2flatpak.PlatformFactory._cp3_linux_tags
to guess the glibc version that might be installed on a system. Because, e.g., an old system with an old version of glibc may nonetheless have a new version of python installed, and an old version of python might be installed on a new system; I don't think there is a strict correlation between glibc versions and python versions.Implementation options, with regard to req2flatpak, the following options come to my mind, in order of increasing complexity:
So, which specific max version number should req2flatpak assume to be supported by a platform? I'd argue to assume a version that is widespread amongst stable linux distributions. It is better for req2flatpak to assume a low version of manylinux and download compatible packages than the other way round. The current debian stable (version 12, "bookworm") ships with glibc v2.36, i.e., manylinux 2.36. I'd say we should use this.
The text was updated successfully, but these errors were encountered: