Skip to content

Publish manylinux_aarch64 wheels to PyPI for ARM64 support #582

Description

@ol-imorozko

Currently, desbordante does not provide pre-compiled wheels for the aarch64 architecture on PyPI.
When users try to pip install desbordante inside a Linux container on such machine, the installation fails because pip cannot find a compatible wheel and the base Docker images lack the required C++ build toolchain to compile from source. (#581)

Steps to Reproduce

  1. Create a file named Dockerfile.x86_64 with the following content:

    FROM --platform=linux/amd64 python:3.12
    WORKDIR /usr/src/app
    RUN uname -m
    RUN pip install desbordante==2.3.2
  2. Build the Docker image. The build will succeed because a pre-compiled x86_64 wheel is available.

    docker build -t desbordante-test-x86 -f Dockerfile.x86_64 .
  3. Expected output:

    ...
    Step 3/4 : RUN uname -m
     ---> Running in ...
    x86_64
    ...
    Step 4/4 : RUN pip install desbordante==2.3.2
     ---> Running in ...
    Collecting desbordante==2.3.2
    Downloading desbordante-2.3.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (4.0 MB)
    Installing collected packages: desbordante
    Successfully installed desbordante-2.3.2
    ...
    Successfully built ...
    Successfully tagged desbordante-test-x86:latest
    

Now for ARM:

  1. Enable QEMU emulation for multi-architecture builds:

    docker run --rm --privileged multiarch/qemu-user-static --reset -p yes
  2. Create a file named Dockerfile.aarch64 with the following content:

    FROM --platform=linux/arm64 python:3.12
    WORKDIR /usr/src/app
    RUN uname -m
    RUN pip install desbordante==2.3.2
  3. Build the Docker image. The build will fail.

    docker build -t desbordante-test-arm -f Dockerfile.aarch64 .
  4. Expected ouput

    ...
    Step 3/4 : RUN uname -m
     ---> Running in ...
    aarch64
    ...
    Step 4/4 : RUN pip install desbordante==2.3.2
     ---> Running in ...
    ERROR: Could not find a version that satisfies the requirement desbordante==2.3.2 (from versions: none)
    ERROR: No matching distribution found for desbordante==2.3.2
    

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions