11# Minimal manylinux-compatible Docker image for ARMv7l (32-bit ARM)
2- # Based on Debian Buster for older glibc compatibility (2.28 )
2+ # Based on Debian Bullseye for older glibc compatibility (2.31 )
33# Use this for compatibility with older systems (e.g., older Raspberry Pi OS)
44
5- FROM arm32v7/debian:buster
5+ FROM arm32v7/debian:bullseye
66
77LABEL maintainer="Espressif Systems"
8- LABEL description="Minimal manylinux-compatible environment for building Python wheels on ARMv7l (legacy glibc 2.28 )"
8+ LABEL description="Minimal manylinux-compatible environment for building Python wheels on ARMv7l (legacy glibc 2.31 )"
99
1010# Set environment variables
1111ENV DEBIAN_FRONTEND=noninteractive \
1212 LC_ALL=C.UTF-8 \
1313 LANG=C.UTF-8
1414
15- # Buster is EOL - archive repositories
16- RUN sed -i 's|deb.debian.org|archive.debian.org|g' /etc/apt/sources.list && \
17- sed -i 's|security.debian.org|archive.debian.org|g' /etc/apt/sources.list && \
18- sed -i '/buster-updates/d' /etc/apt/sources.list
19-
2015# Install build dependencies and Python versions
2116RUN apt-get update && apt-get install -y \
2217 # Build essentials
@@ -54,10 +49,11 @@ RUN apt-get update && apt-get install -y \
5449 # dbus-python dependencies
5550 libdbus-1-dev \
5651 libdbus-glib-1-dev \
57- # Pillow dependencies
52+ # Pillow dependencies (include both -dev and runtime libs for auditwheel)
5853 libjpeg-dev \
5954 libpng-dev \
6055 libtiff-dev \
56+ libtiff5 \
6157 libfreetype6-dev \
6258 liblcms2-dev \
6359 libwebp-dev \
@@ -66,7 +62,9 @@ RUN apt-get update && apt-get install -y \
6662 libharfbuzz-dev \
6763 libxcb1-dev \
6864 libxau-dev \
69- # Python from Debian repos (Buster provides 3.7)
65+ brotli \
66+ libbrotli-dev \
67+ # Python from Debian repos (Bullseye provides 3.9)
7068 python3 \
7169 python3-dev \
7270 python3-venv \
@@ -82,12 +80,12 @@ RUN python3 -m pip install --no-cache-dir --upgrade \
8280
8381# Set up manylinux platform tag
8482# This makes auditwheel recognize the environment as manylinux-compatible
85- # Buster has glibc 2.28 , so we use manylinux_2_28
86- RUN echo "manylinux_2_28_armv7l " > /etc/system-release-cpe
83+ # Bullseye has glibc 2.31 , so we use manylinux_2_31
84+ RUN echo "manylinux_2_31_armv7l " > /etc/system-release-cpe
8785
8886# Create a marker file for manylinux detection
8987RUN mkdir -p /opt/python && \
90- echo "manylinux_2_28_armv7l " > /opt/python/PLATFORM
88+ echo "manylinux_2_31_armv7l " > /opt/python/PLATFORM
9189
9290# Set working directory
9391WORKDIR /workspace
@@ -96,4 +94,3 @@ WORKDIR /workspace
9694ENV PATH="/usr/bin:${PATH}"
9795
9896CMD ["/bin/bash" ]
99-
0 commit comments