Files
dependencies/build_wheels.sh
Adeeb Shihadeh 62d18088cc build linux wheels with manylinux_2_28 for wider glibc compat (#18)
* build linux wheels inside manylinux_2_28 for glibc 2.28 compat

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* add perl-IPC-Cmd for openssl build in manylinux

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-24 17:44:07 -08:00

34 lines
856 B
Bash
Executable File

#!/usr/bin/env bash
set -euo pipefail
DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
cd "$DIR"
WHEEL_DIR="${1:-dist}"
# on Linux, build inside manylinux_2_28 container for glibc 2.28 compatibility.
# for reference, Ubuntu 20.04 is glibc 2.31, so this gives us wide compatibility.
if [ "$(uname)" = "Linux" ] && [ -z "${MANYLINUX:-}" ]; then
ARCH="$(uname -m)"
IMAGE="quay.io/pypa/manylinux_2_28_${ARCH}"
exec docker run --rm \
-e MANYLINUX=1 \
-v "$DIR:/work" \
-w /work \
"$IMAGE" \
bash build_wheels.sh "$WHEEL_DIR"
fi
# Set up Python inside manylinux container
if [ -n "${MANYLINUX:-}" ]; then
export PATH="/opt/python/cp312-cp312/bin:$PATH"
fi
./setup.sh
pip install setuptools wheel
mkdir -p "$WHEEL_DIR"
for pkg in */pyproject.toml; do
pip wheel "./$(dirname "$pkg")" --no-deps --wheel-dir "$WHEEL_DIR"/
done