Workaround to fix BPO-43112
See original GitHub issueWhat’s the problem this feature will solve?
In this moment, because of BPO-43112, we are distributing broken musllinux_1_1 wheel packages for Python 3.9 and 3.10, which work on Docker images such as python:3.9-alpine
but will not work on the alpine
using the system Python.
When BPO-43112 will be solved, there will be a situation of incompatibility, resulting in newly built packages not working on the python-alpine
image, for some time, and not working for current images.
Describe the solution you’d like
Pip is in the right place to save the day 🙂 because it could easily rename the broken file on install, if it detects the right conditions (tag musllinux_1_1
, .so
file suffix mismatching the sysconfig.get_config_vars("SOABI")
) it might simply rename the wrongly named library. It has the file system permission to do so and it would work both to make broken wheels work on new images and fixed wheels to work on old images.
Alternative Solutions
A workaround bridge solution of distributing a compatibility symlink (see https://github.com/psycopg/psycopg/issues/161) is hampered by the fact that symlinks in zip files are not handled by the zipfile
module (https://bugs.python.org/issue18595, https://bugs.python.org/issue27318).
Additional context
- https://bugs.python.org/issue43112
- https://discuss.python.org/t/a-mess-with-soabi-tags-on-musllinux/11688
- https://github.com/pypa/manylinux/pull/1225
- https://github.com/python/cpython/pull/24502
- https://github.com/pypa/auditwheel/issues/349
- https://github.com/pypa/cibuildwheel/issues/934
- https://github.com/psycopg/psycopg/issues/161
Code of Conduct
- I agree to follow the PSF Code of Conduct.
Issue Analytics
- State:
- Created 2 years ago
- Comments:23 (18 by maintainers)
Top GitHub Comments
FYI. This is done in Alpine now.
One minor correction: neither of the two Alpine images are supported by CPython core devs, but different third-party vendors (the Alpine and Docker community, respectively).