Skip to content
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

Downgrade zlib on Linux instead of auditwheel #254

Merged
merged 2 commits into from
Feb 17, 2022

Conversation

radarhere
Copy link
Member

#225 downgraded auditwheel on Linux because auditwheel started raising an error when we tried to include zlib 1.2.11. The error was because auditwheel requires manylinux_2_27 for zlib 1.2.9, and we are currently distributing manylinux_2_17 wheels.

The zlib requirements were added to auditwheel in pypa/auditwheel#334, which used information from mayeut/pep600_compliance#88.

In other words, I've concluded that by ignoring this error, we're violating PEP 600. python.org gives a similar example to this in the documentation - https://www.python.org/dev/peps/pep-0600/

Example: if a wheel is tagged as manylinux_2_17_x86_64, but it uses symbols that were only added in glibc 2.18, then that wheel won't work on systems with glibc 2.17. Therefore, we can conclude that this wheel is in violation of this specification.

So this PR suggests using the latest version of auditwheel again, to restore our PEP 600 compliance, and downgrading zlib to 1.2.8 on Linux instead.


Why can't we upgrade to manylinux_2_27? Primarily, to continue offering support for CentOS 7 (listed as manylinux_2_17), EOL on June 30, 2024, and Amazon Linux 2 (listed as manylinux_2_26), EOL on June 30, 2023.

pypa/manylinux#1012 (comment)

Project who wish to support centos7/rhubi7 will need manylinux2_17 (manylinux2014) until 2024.


But wait, you say, could we do both? Could we generate manylinux_2_17 and manylinux_2_27 wheels, so that CentOS 7 and Amazon Linux 2 users could install the older wheels, and everyone else could continue to use zlib 1.2.11?

Well, multibuild will only let us specify manylinux_2_24 at best, which still doesn't support zlib 1.2.9. This limitation in multibuild is to be expected though, since manylinux doesn't have any higher Docker images yet.

@hugovk hugovk merged commit b8ceb43 into python-pillow:main Feb 17, 2022
@hugovk
Copy link
Member

hugovk commented Feb 17, 2022

Thanks!

@radarhere
Copy link
Member Author

radarhere commented May 31, 2022

manylinux have now released images for _2_28, so I have created #301 to add those wheels

@radarhere
Copy link
Member Author

Amazon Linux 2 (listed as manylinux_2_26), EOL on June 30, 2023.

Update: https://aws.amazon.com/amazon-linux-2/faqs/ currently states

Amazon Linux 2 end of support date (End of Life, or EOL) has been extended by two years from 2023-06-30 to 2025-06-30 to provide customers with ample time to migrate to the next version.

This pull request was closed.
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.

2 participants