Skip to content

[Bug] Wheels for Python 3.12 for musllinux missing #843

Description

@sdebruyn

Currently there is no version of this package for Alpine Linux (musslinux in Python) for Python 3.12. So after updating my azure-identity I can suddenly no longer install it in my Docker container.

Activity

  1. rayluo commented on Aug 4, 2025

    @rayluo
    Contributor

    Currently there is no version of this package for Alpine Linux (musslinux in Python) for Python 3.12

    Can you please confirm whether your "this package" means "msal" or something else? msal itself 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.

  2. sdebruyn commented on Aug 4, 2025

    @sdebruyn
    Author

    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.

  3. rayluo commented on Aug 4, 2025

    @rayluo
    Contributor

    since the msal 1.33 requires pymsalruntime on any Linux, installation is simply not possible anymore

    AFAIK, pymsalruntime remains as an optional dependency of msal. Can you show a snippet of for example the "pip install msal" failing on Alpine? My guess is your dependencies somehow include msal[broker] which requires pymsalruntime. Is that the case here?

  4. rayluo commented on Aug 5, 2025

    @rayluo
    Contributor

    OK, I got around to it.

    docker run --rm -it python:3.12-alpine pip install msal That works. So, msal itself still works fine w/ Alpine.

    docker run --rm -it python:3.12-alpine pip install pymsalruntime That failed. Let me ping my PyMsalRuntime teammate Dharshan BJ (@DharshanBJ) to take a look.

  5. sdebruyn commented on Aug 5, 2025

    @sdebruyn
    Author

    The tree I have is:
    azure-identity -> msal-extensions -> msal[*] (so including msal[broker]) --> pymsalruntime

  6. rayluo commented on Aug 5, 2025

    @rayluo
    Contributor

    The 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-identity and/or msal-extensions inside an Alpine container too.

    That said, the aforementioned issue still exists, that "pymsalruntime" cannot currently be installed on Alpine.

  7. DharshanBJ commented on Aug 6, 2025

    @DharshanBJ
    Contributor

    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) - Yes

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions