Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix selection of manylinux to build #2805

Merged
merged 1 commit into from Oct 31, 2021
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
8 changes: 5 additions & 3 deletions .github/workflows/manylinux.yml
Expand Up @@ -33,12 +33,14 @@ jobs:
fail-fast: false # if a particular matrix build fails, don't skip the rest
matrix:
arch: ['x64', 'x86', 'aarch64']
tag: ['-', '-manylinux-'] # one tag for CPython builds, and another for PyPy
tag: ['-manylinux1-', '-manylinux2010-', -manylinux2014-]
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

minor nitpick here, maybe the leading and trailing hyphen - must not be in the matrix.tag rather it can come a few lines below, where make pull${{ matrix.tag }}${{ matrix.arch }} wheels${{ matrix.tag }}${{ matrix.arch }} should become make pull-${{ matrix.tag }}-${{ matrix.arch }} wheels-${{ matrix.tag }-}${{ matrix.arch }}

This is so that the build name looks neater :)

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good point. I'll fix that after the release :)


exclude:
# no pypy builds on aarch64 for now
# aarch64 only with manylinux2014 for now
- arch: 'aarch64'
tag: '-manylinux-'
tag: '-manylinux1-'
- arch: 'aarch64'
tag: '-manylinux2010-'

steps:
- uses: actions/checkout@v2.3.4
Expand Down
92 changes: 53 additions & 39 deletions buildconfig/manylinux-build/Makefile
@@ -1,87 +1,101 @@
REPO_ROOT = $(abspath ../..)

wheels-manylinux-x64:
wheels-manylinux1-x64:
docker run --rm -v ${REPO_ROOT}:/io pygame/manylinux1_base_x86_64 /io/buildconfig/manylinux-build/build-wheels.sh

wheels-manylinux-x86:
wheels-manylinux1-x86:
docker run --rm -v ${REPO_ROOT}:/io pygame/manylinux1_base_i686 /io/buildconfig/manylinux-build/build-wheels.sh

wheels-x64:
wheels-manylinux2010-x64:
docker run --rm -v ${REPO_ROOT}:/io pygame/manylinux2010_base_x86_64 /io/buildconfig/manylinux-build/build-wheels.sh buildpypy

wheels-x86:
wheels-manylinux2010-x86:
docker run --rm -v ${REPO_ROOT}:/io pygame/manylinux2010_base_i686 /io/buildconfig/manylinux-build/build-wheels.sh buildpypy

wheels-aarch64:
wheels-manylinux2014-x64:
docker run --rm -v ${REPO_ROOT}:/io pygame/manylinux2014_base_x86_64 /io/buildconfig/manylinux-build/build-wheels.sh buildpypy

wheels-manylinux2014-x86:
docker run --rm -v ${REPO_ROOT}:/io pygame/manylinux2014_base_i686 /io/buildconfig/manylinux-build/build-wheels.sh buildpypy

wheels-manylinux2014-aarch64:
docker run --rm -v ${REPO_ROOT}:/io pygame/manylinux2014_base_aarch64 /io/buildconfig/manylinux-build/build-wheels.sh

wheels: wheels-x64 wheels-x86 wheels-aarch64
wheels-manylinux: wheels-manylinux-x64 wheels-manylinux-x86
wheels: wheels-manylinux1-x64 wheels-manylinux1-x86 wheels-manylinux2010-x64 wheels-manylinux2010-x86 wheels-manylinux2014-x64 wheels-manylinux2014-x86 wheels-manylinux2014-aarch64



base-image-manylinux-x64:
base-image-manylinux1-x64:
docker build --build-arg BASE_IMAGE=manylinux1_x86_64 --build-arg BASE_IMAGE2=manylinux1_x86_64 -t pygame/manylinux1_base_x86_64 -f docker_base/Dockerfile-x86_64 docker_base

base-image-manylinux-x86:
base-image-manylinux1-x86:
docker build --build-arg BASE_IMAGE=manylinux1_i686 --build-arg BASE_IMAGE2=manylinux1_i686 -t pygame/manylinux1_base_i686 -f docker_base/Dockerfile-i686 docker_base

base-images-manylinux: base-image-manylinux-x64 base-image-manylinux-x86


base-image-manylinux2010-x64:
docker build -t pygame/manylinux2010_base_x86_64 -f docker_base/Dockerfile-x86_64 docker_base --build-arg BASE_IMAGE=manylinux2010_x86_64 --build-arg BASE_IMAGE2=manylinux2010_x86_64 --progress=plain

base-image-x64:
docker build -t pygame/manylinux2010_base_x86_64 -f docker_base/Dockerfile-x86_64 docker_base --build-arg BASE_IMAGE=manylinux2010_x86_64 --build-arg BASE_IMAGE2=manylinux2010_x86_64

base-image-x86:
base-image-manylinux2010-x86:
docker build -t pygame/manylinux2010_base_i686 -f docker_base/Dockerfile-i686 docker_base --build-arg BASE_IMAGE=manylinux2010_i686 --build-arg BASE_IMAGE2=manylinux2010_i686

base-image-aarch64:
docker build -t pygame/manylinux2014_base_aarch64 -f docker_base/Dockerfile-aarch64 docker_base --build-arg BASE_IMAGE=manylinux2014_aarch64 --build-arg BASE_IMAGE2=manylinux2014_aarch64

base-images: base-image-x64 base-image-x86 base-image-aarch64

base-image-manylinux2014-x64:
docker build -t pygame/manylinux2014_base_x86_64 -f docker_base/Dockerfile-x86_64 docker_base --build-arg BASE_IMAGE=manylinux2014_x86_64 --build-arg BASE_IMAGE2=manylinux2014_x86_64 --progress=plain

base-image-manylinux2014-x86:
docker build -t pygame/manylinux2014_base_i686 -f docker_base/Dockerfile-i686 docker_base --build-arg BASE_IMAGE=manylinux2014_i686 --build-arg BASE_IMAGE2=manylinux2014_i686

base-image-manylinux2014-aarch64:
docker build -t pygame/manylinux2014_base_aarch64 -f docker_base/Dockerfile-aarch64 docker_base --build-arg BASE_IMAGE=manylinux2014_aarch64 --build-arg BASE_IMAGE2=manylinux2014_aarch64

push-manylinux-x64:
docker push pygame/manylinux1_base_x86_64
# base-images: base-image-manylinux1-x64 base-image-manylinux1-x86 base-image-manylinux2010-x64 base-image-manylinux2010-x86 base-image-manylinux2014-x64 base-image-manylinux2014-x86 base-image-aarch64
base-images: base-image-manylinux2010-x64 base-image-manylinux2010-x86 base-image-manylinux2014-x64 base-image-manylinux2014-x86 base-image-manylinux2014-aarch64

push-manylinux-x86:
docker push pygame/manylinux1_base_i686

push-manylinux: push-manylinux-x64 push-manylinux-x86
# push-manylinux1-x64:
# docker push pygame/manylinux1_base_x86_64

# push-manylinux1-x86:
# docker push pygame/manylinux1_base_i686

push-x64:
push-manylinux2010-x64:
docker push pygame/manylinux2010_base_x86_64

push-x86:
push-manylinux2010-x86:
docker push pygame/manylinux2010_base_i686

push-aarch64:
push-manylinux2014-x64:
docker push pygame/manylinux2014_base_x86_64

push-manylinux2014-x86:
docker push pygame/manylinux2014_base_i686

push-manylinux2014-aarch64:
docker push pygame/manylinux2014_base_aarch64

push: push-x64 push-x86 push-aarch64

# push: push-manylinux1-x64 push-manylinux1-x86 push-manylinux2010-x64 push-manylinux2010-x86 push-manylinux2014-x64 push-manylinux2014-x86
push: push-manylinux2010-x64 push-manylinux2010-x86 push-manylinux2014-x64 push-manylinux2014-x86 push-manylinux2014-aarch64



pull-manylinux-x64:
pull-manylinux1-x64:
docker pull pygame/manylinux1_base_x86_64

pull-manylinux-x86:
pull-manylinux1-x86:
docker pull pygame/manylinux1_base_i686

pull-manylinux: pull-manylinux-x64 pull-manylinux-x86
pull-manylinux2010-x64:
docker pull pygame/manylinux1_base_x86_64

pull-manylinux2010-x86:
docker pull pygame/manylinux2010_base_i686

pull-x64:
docker pull pygame/manylinux2010_base_x86_64
pull-manylinux2014-x64:
docker pull pygame/manylinux1_base_x86_64

pull-x86:
pull-manylinux2014-x86:
docker pull pygame/manylinux2010_base_i686

pull-aarch64:
pull-manylinux2014-aarch64:
docker pull pygame/manylinux2014_base_aarch64

pull: pull-x64 pull-x86 pull-aarch64
pull: pull-manylinux1-x64 pull-manylinux1-x86 pull-manylinux2010-x64 pull-manylinux2010-x86 pull-manylinux2014-x64 pull-manylinux2014-x86 pull-manylinux2014-aarch64
# pull: pull-manylinux2010-x64 pull-manylinux2010-x86 pull-manylinux2014-x64 pull-manylinux2014-x86 pull-aarch64
13 changes: 7 additions & 6 deletions buildconfig/manylinux-build/build-wheels.sh
@@ -1,14 +1,15 @@
#!/bin/bash
set -e -x

if [ `uname -m` == "aarch64" ]; then
export SUPPORTED_PYTHONS="cp36-cp36m cp37-cp37m cp38-cp38 cp39-cp39 cp310-cp310"
else
export SUPPORTED_PYTHONS="cp27-cp27mu cp35-cp35m cp36-cp36m cp37-cp37m cp38-cp38 cp39-cp39"
fi

if [[ "$1" == "buildpypy" ]]; then
export SUPPORTED_PYTHONS="pp27-pypy_75 pp37-pypy37_pp75 cp310-cp310"
export SUPPORTED_PYTHONS="cp36-cp36m cp37-cp37m cp38-cp38 cp39-cp39 cp310-cp310 pp27-pypy_75 pp37-pypy37_pp75"
else
if [ `uname -m` == "aarch64" ]; then
export SUPPORTED_PYTHONS="cp36-cp36m cp37-cp37m cp38-cp38 cp39-cp39 cp310-cp310"
else
export SUPPORTED_PYTHONS="cp27-cp27mu cp35-cp35m cp36-cp36m cp37-cp37m cp38-cp38 cp39-cp39"
fi
fi


Expand Down
19 changes: 9 additions & 10 deletions buildconfig/manylinux-build/docker_base/Dockerfile-aarch64
@@ -1,6 +1,6 @@
ARG BASE_IMAGE=manylinux2014_aarch64
FROM quay.io/pypa/$BASE_IMAGE
ENV MAKEFLAGS="-j 8"
ENV MAKEFLAGS="-j 16"

# Set up repoforge
COPY RPM-GPG-KEY.dag.txt /tmp/
Expand All @@ -12,7 +12,7 @@ RUN rpm --import /tmp/RPM-GPG-KEY.dag.txt
#RUN rpm -i /tmp/${RPMFORGE_FILE}

# Install SDL and portmidi dependencies
RUN yum install -y libX11-devel\
RUN yum install -y zlib-devel libX11-devel\
mesa-libGLU-devel audiofile-devel \
java-1.7.0-openjdk-devel jpackage-utils \
giflib-devel dbus-devel \
Expand All @@ -24,14 +24,14 @@ RUN yum install -y libcap-devel libxkbcommon-devel
ADD brotli /brotli_build/
RUN ["bash", "/brotli_build/build-brotli.sh"]

ADD bzip2 /bzip2_build/
RUN ["bash", "/bzip2_build/build-bzip2.sh"]
#ADD bzip2 /bzip2_build/
#RUN ["bash", "/bzip2_build/build-bzip2.sh"]

ADD zlib-ng /zlib-ng_build/
RUN ["bash", "/zlib-ng_build/build-zlib-ng.sh"]
#ADD zlib-ng /zlib-ng_build/
#RUN ["bash", "/zlib-ng_build/build-zlib-ng.sh"]

ADD libjpegturbo /libjpegturbo_build/
RUN ["bash", "/libjpegturbo_build/build-libjpegturbo.sh"]
RUN ["bash", "/libjpegturbo_build/build-jpeg-turbo.sh"]

ADD libpng /libpng_build/
RUN ["bash", "/libpng_build/build-png.sh"]
Expand All @@ -51,11 +51,10 @@ RUN ["bash", "/opus_build/build-opus.sh"]
ADD freetype /freetype_build/
RUN ["bash", "/freetype_build/build-freetype.sh"]

RUN ["rm", "-f", "/lib64/libasound*"]
RUN ["rm", "-f", "/lib/libasound*"]
ADD alsa /alsa_build/
RUN ["bash", "/alsa_build/build-alsa.sh"]
# Replace yum-installed libasound with the one we just compiled.
RUN ["rm", "/lib64/libasound.so.2.0.0"]
RUN ["ln", "-s", "/usr/lib/libasound.so.2.0.0", "/lib64/"]

ADD ogg /ogg_build/
RUN ["bash", "/ogg_build/build-ogg.sh"]
Expand Down
20 changes: 10 additions & 10 deletions buildconfig/manylinux-build/docker_base/Dockerfile-i686
@@ -1,6 +1,6 @@
ARG BASE_IMAGE=manylinux1_i686
FROM quay.io/pypa/$BASE_IMAGE
ENV MAKEFLAGS="-j 4"
ENV MAKEFLAGS="-j 16"

# Set up repoforge
COPY RPM-GPG-KEY.dag.txt /tmp/
Expand All @@ -12,7 +12,7 @@ RUN rpm --import /tmp/RPM-GPG-KEY.dag.txt
#RUN rpm -i /tmp/${RPMFORGE_FILE}

# Install SDL and portmidi dependencies
RUN linux32 yum install -y libX11-devel \
RUN linux32 yum install -y zlib-devel libX11-devel \
mesa-libGLU-devel audiofile-devel \
java-1.7.0-openjdk-devel jpackage-utils \
giflib-devel
Expand All @@ -25,14 +25,14 @@ RUN linux32 yum install -y libcap-devel libxkbcommon-devel
ADD brotli /brotli_build/
RUN ["linux32", "bash", "/brotli_build/build-brotli.sh"]

ADD bzip2 /bzip2_build/
RUN ["linux32", "bash", "/bzip2_build/build-bzip2.sh"]
#ADD bzip2 /bzip2_build/
#RUN ["linux32", "bash", "/bzip2_build/build-bzip2.sh"]

ADD zlib-ng /zlib-ng_build/
RUN ["linux32", "bash", "/zlib-ng_build/build-zlib-ng.sh"]
#ADD zlib-ng /zlib-ng_build/
#RUN ["linux32", "bash", "/zlib-ng_build/build-zlib-ng.sh"]

ADD libjpegturbo /libjpegturbo_build/
RUN ["linux32", "bash", "/libjpegturbo_build/build-libjpegturbo.sh"]
RUN ["linux32", "bash", "/libjpegturbo_build/build-jpeg-turbo.sh"]

ADD libpng /libpng_build/
RUN ["linux32", "bash", "/libpng_build/build-png.sh"]
Expand All @@ -52,11 +52,10 @@ RUN ["linux32", "bash", "/opus_build/build-opus.sh"]
ADD freetype /freetype_build/
RUN ["linux32", "bash", "/freetype_build/build-freetype.sh"]

# Replace yum-installed libasound with the one we just compiled.
RUN ["linux32", "rm", "-f", "/usr/lib/libasound*"]
ADD alsa /alsa_build/
RUN ["linux32", "bash", "/alsa_build/build-alsa.sh"]
# Replace yum-installed libasound with the one we just compiled.
RUN ["rm", "/lib/libasound.so.2.0.0"]
RUN ["ln", "-s", "/usr/lib/libasound.so.2.0.0", "/lib/"]

ADD ogg /ogg_build/
RUN ["linux32", "bash", "/ogg_build/build-ogg.sh"]
Expand Down Expand Up @@ -96,3 +95,4 @@ RUN ["linux32", "bash", "/portmidi_build/build-portmidi.sh"]
ADD pypy /pypy_build/
ARG BASE_IMAGE2=manylinux1_i686
RUN if [ "$BASE_IMAGE2" = "manylinux2010_i686" ] ; then linux32 bash /pypy_build/getpypy32.sh ; else echo "no pypy on manylinux1" ; fi
RUN if [ "$BASE_IMAGE2" = "manylinux2014_i686" ] ; then linux32 bash /pypy_build/getpypy32.sh ; else echo "no pypy on manylinux1" ; fi
24 changes: 12 additions & 12 deletions buildconfig/manylinux-build/docker_base/Dockerfile-x86_64
@@ -1,6 +1,6 @@
ARG BASE_IMAGE=manylinux1_x86_64
FROM quay.io/pypa/$BASE_IMAGE
ENV MAKEFLAGS="-j 4"
ENV MAKEFLAGS="-j 16"

# Set up repoforge
COPY RPM-GPG-KEY.dag.txt /tmp/
Expand All @@ -12,10 +12,10 @@ RUN rpm --import /tmp/RPM-GPG-KEY.dag.txt
#RUN rpm -i /tmp/${RPMFORGE_FILE}

# Install SDL and portmidi dependencies
RUN yum install -y libX11-devel\
RUN yum install -y zlib-devel libX11-devel\
mesa-libGLU-devel audiofile-devel \
java-1.7.0-openjdk-devel jpackage-utils \
mikmod-devel smpeg-devel giflib-devel dbus-devel \
jpackage-utils \
mikmod-devel giflib-devel dbus-devel \
dejavu-sans-fonts fontconfig \
libXcursor-devel libXi-devel libXxf86vm-devel \
libXrandr-devel libXinerama-devel libXcomposite-devel mesa-libGLU-devel xz
Expand All @@ -24,14 +24,14 @@ RUN yum install -y libcap-devel libxkbcommon-devel
ADD brotli /brotli_build/
RUN ["bash", "/brotli_build/build-brotli.sh"]

ADD bzip2 /bzip2_build/
RUN ["bash", "/bzip2_build/build-bzip2.sh"]
#ADD bzip2 /bzip2_build/
#RUN ["bash", "/bzip2_build/build-bzip2.sh"]

ADD zlib-ng /zlib-ng_build/
RUN ["bash", "/zlib-ng_build/build-zlib-ng.sh"]
#ADD zlib-ng /zlib-ng_build/
#RUN ["bash", "/zlib-ng_build/build-zlib-ng.sh"]

ADD libjpegturbo /libjpegturbo_build/
RUN ["bash", "/libjpegturbo_build/build-libjpegturbo.sh"]
RUN ["bash", "/libjpegturbo_build/build-jpeg-turbo.sh"]

ADD libpng /libpng_build/
RUN ["bash", "/libpng_build/build-png.sh"]
Expand All @@ -51,11 +51,10 @@ RUN ["bash", "/opus_build/build-opus.sh"]
ADD freetype /freetype_build/
RUN ["bash", "/freetype_build/build-freetype.sh"]

RUN ["rm", "-f", "/lib64/libasound*"]
RUN ["rm", "-f", "/lib/libasound*"]
ADD alsa /alsa_build/
RUN ["bash", "/alsa_build/build-alsa.sh"]
# Replace yum-installed libasound with the one we just compiled.
RUN ["rm", "/lib64/libasound.so.2.0.0"]
RUN ["ln", "-s", "/usr/lib/libasound.so.2.0.0", "/lib64/"]

ADD ogg /ogg_build/
RUN ["bash", "/ogg_build/build-ogg.sh"]
Expand Down Expand Up @@ -98,4 +97,5 @@ RUN echo "$BASE_IMAGE"
ADD pypy /pypy_build/
ARG BASE_IMAGE2=manylinux1_x86_64
RUN if [ "$BASE_IMAGE2" = "manylinux2010_x86_64" ] ; then bash /pypy_build/getpypy64.sh ; else echo "no pypy on manylinux1" ; fi
RUN if [ "$BASE_IMAGE2" = "manylinux2014_x86_64" ] ; then bash /pypy_build/getpypy64.sh ; else echo "no pypy on manylinux1" ; fi