Repository navigation
[Bug] Wheels for Python 3.12 for musllinux missing #843
Description
Activity
Currently there is no version of this package for Alpine Linux (
musslinuxin Python) for Python 3.12Can you please confirm whether your "this package" means "msal" or something else?
msalitself is a pure Python package thus shall work on Alpine. You may also provide some snippet such as your Dockerfile to reproduce the issue you encountered.It's pymsalruntime. From the moment you update msal to 1.33, an installation in an Alpine Docker image doesn't work anymore. I am using uv, but it should be the same with pip. It seems that there are no wheels published for musslinux for the pymsalpackage (only manylinux). And since the msal 1.33 requires pymsalruntime on any Linux, installation is simply not possible anymore.
since the msal 1.33 requires pymsalruntime on any Linux, installation is simply not possible anymore
AFAIK,
pymsalruntimeremains as an optional dependency ofmsal. Can you show a snippet of for example the "pip install msal" failing on Alpine? My guess is your dependencies somehow includemsal[broker]which requires pymsalruntime. Is that the case here?OK, I got around to it.
docker run --rm -it python:3.12-alpine pip install msalThat works. So,msalitself still works fine w/ Alpine.docker run --rm -it python:3.12-alpine pip install pymsalruntimeThat failed. Let me ping my PyMsalRuntime teammate Dharshan BJ (@DharshanBJ) to take a look.The tree I have is:
azure-identity -> msal-extensions -> msal[*] (so including msal[broker]) --> pymsalruntimeThe tree I have is: azure-identity -> msal-extensions -> msal[*] (so including msal[broker]) --> pymsalruntime
Sam Debruyn (@sdebruyn) , something does not add up. The msal-extensions depends on only msal, not the "msal[*]". And I can install
azure-identityand/ormsal-extensionsinside an Alpine container too.That said, the aforementioned issue still exists, that "pymsalruntime" cannot currently be installed on Alpine.
Thanks for raising this.
Ray Luo (@rayluo) Sam Debruyn (@sdebruyn) — musllinux is not compatible with manylinux_2_35_x86_64, as they target fundamentally different C libraries. manylinux wheels are built against glibc, while musllinux targets musl libc (used in Alpine Linux). Given this architectural difference, we currently do not plan to support pymsalruntime on Alpine/musllinux.
Ray Luo (@rayluo) To avoid issues for customers running on unsupported platforms, we should add the logic in the MSAL Python layer to only trigger the pymsalruntime flow on distros that are known to be compatible with manylinux_2_35 (i.e., glibc 2.35 or higher). I can take a work item to implement this check, so unsupported environments like Alpine won't inadvertently attempt to use this package.
For reference, here’s a list of common distributions known to support manylinux_2_35:
Ubuntu 22.04 LTS+ - glibc 2.35 - Yes
Ubuntu 24.04 LTS - glibc 2.39 - Yes
Debian 12 (Bookworm) - glibc 2.36 - Yes
Fedora 36+ - glibc 2.35 or higher - Yes
openSUSE Leap 15.5+ - glibc 2.35 or higher - Yes
Arch Linux - Rolling (glibc 2.35+ since early 2022) - YesReacted by Ray Luo
Currently there is no version of this package for Alpine Linux (
musslinuxin Python) for Python 3.12. So after updating myazure-identityI can suddenly no longer install it in my Docker container.