4 ms·
As a user, if you build every python package from source, it's ok. But if you a maintainer of an OSS project and you need to publish binary packages for it, the
by snnn 5y ago
As a user, if you build every python package from source, it's ok. But if you a maintainer of an OSS project and you need to publish binary packages for it, then you will hit the trouble. Binaries built on Ubuntu 20.04 can only support Ubuntu 20.04 and newer. So you'd better to choose an older Linux release to target broader users. Now most python packages choose CentOS 6 or 7. See https://github.com/pypa/manylinux/issues/1012 https://github.com/pypa/manylinux/issues/1012 for more details. They need help!
- coldtea 5y ago>Binaries built on Ubuntu 20.04 can only support Ubuntu 20.04 and newer So? Who are those people building for servers they don't control and arbitrary old versions of OSes?
- chc 5y agoEvidently the point of the manylinux project is to make it easy to distribute Python binary wheels for Linux, so that basically is their use case. Though they're not building for arbitrary old versions — they're building for a concrete set of old OS versions defined by Python standards. I think the idea is that you don't want to require everyone installing your Python module to have a full set of build tools installed, so they're providing a way to distribute a binary module that supports a guaranteed set of supported Linuxes.
- oefrha 5y agoThe manylinux wheels distributed on PyPI need to be built against the oldest glibc imaginable, which is defined to be the glibc on some ancient version of CentOS (a different version for each different manylinux platform tag). If you build your own wheels, of course no one’s going to stop you from building against anything.
- int_19h 5y agoThis is how it used to be back when manylinux was separately versioned. Since https://www.python.org/dev/peps/pep-0600/ https://www.python.org/dev/peps/pep-0600/, you just say which version of glibc you expect: manylinux_2_17_x86_64 etc.
- jka 5y agoIsn't it possible for more recent versions of GCC to build binaries (linked libraries or otherwise) that can be distributed and run correctly in older operating system environments? (in other words: my understanding is that software languages and tools can continue to evolve while maintaining the ability to build backwards-compatible binaries)