PEP proposal for non-glibc systems

Hi all,

I’m trying to resurrect an old topic of mine which has eventually died in the depths of distutils-sig ML half a year ago, but thanks to @ncoghlan wasn’t completely unnoticed.

Original thread: https://mail.python.org/archives/list/distutils-sig@python.org/thread/H3323AXRRLJAYOY2XZKS74IOUQMJUOYD/

TL; DR: the same as pip currently uses glibc version probing to determine current glibc version, it’s possible to check runtime and determine whether we’re running on musl or not. I’ve contacted musl maintainers regarding “compat symbols” thing which glibc provides, and their replied that they’re not going to introduce them on musl, so I’d say we’re pretty safe here:

https://www.openwall.com/lists/musl/2019/02/26/1

It doesn’t seem to me that majority of native modules use some extravagant libc functions and since musl is much stricter to the POSIX standard, I think that can also help maintain code quality. Musl itself is pretty stable now (1.23 was released in July) and is supported not only by Alpine, but also by many other distros.

Link to PoC musl runtime detection is inside original thread (platform doesn’t allow me to post 3 links because I’m a new user)

While future may seem bright, this approach will definitely require new wheels naming scheme (new tag format), and I’m quite unsure how to proceed now – I’ve noticed multiple related discussions on this board.