diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 0a9cee8f..991fc48d 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -17,10 +17,10 @@ jobs: image: # Run slower jobs first to give them a headstart and reduce waiting time - "ubuntu-22.04-jammy-arm64v8" - - "ubuntu-22.04-jammy-ppc64le" - - "ubuntu-22.04-jammy-s390x" + - "ubuntu-24.04-noble-ppc64le" + - "ubuntu-24.04-noble-s390x" # test image for manylinux-wheel build - - "ubuntu-22.04-jammy-amd64" + - "ubuntu-24.04-noble-amd64" # Then run the remainder - "alpine" - "amazon-2-amd64" @@ -34,6 +34,7 @@ jobs: - "fedora-40-amd64" - "gentoo" - "ubuntu-20.04-focal-amd64" + - "ubuntu-22.04-jammy-amd64" - "ubuntu-22.04-jammy-amd64-valgrind" # has a dependency on the test image - "manylinux2014-wheel-build" @@ -45,9 +46,9 @@ jobs: test-image: "ubuntu-22.04-jammy-amd64" - image: "ubuntu-22.04-jammy-arm64v8" qemu-arch: "aarch64" - - image: "ubuntu-22.04-jammy-ppc64le" + - image: "ubuntu-24.04-noble-ppc64le" qemu-arch: "ppc64le" - - image: "ubuntu-22.04-jammy-s390x" + - image: "ubuntu-24.04-noble-s390x" qemu-arch: "s390x" steps: @@ -69,7 +70,7 @@ jobs: git submodule update --remote Pillow fi (cd Pillow && git checkout main) - sudo chown -R 1000 $(pwd) + sudo chown -R 1001 $(pwd) - name: Test Image Build if: "matrix.test-image" diff --git a/Makefile b/Makefile index 0d83fb05..af2e46b7 100644 --- a/Makefile +++ b/Makefile @@ -14,10 +14,11 @@ TARGETS = \ manylinux_2_28-wheel-build \ ubuntu-20.04-focal-amd64 \ ubuntu-22.04-jammy-amd64 \ + ubuntu-24.04-noble-amd64 \ ubuntu-22.04-jammy-amd64-valgrind \ ubuntu-22.04-jammy-arm64v8 \ - ubuntu-22.04-jammy-ppc64le \ - ubuntu-22.04-jammy-s390x + ubuntu-24.04-noble-ppc64le \ + ubuntu-24.04-noble-s390x BUILDDIRS = $(TARGETS:%=build-%) PUSHDIRS = $(TARGETS:%=push-%) diff --git a/alpine/Dockerfile b/alpine/Dockerfile index e54ecf89..01f78d4b 100644 --- a/alpine/Dockerfile +++ b/alpine/Dockerfile @@ -40,7 +40,7 @@ RUN cd /depends \ && ./install_imagequant.sh \ && ./install_raqm.sh -RUN /usr/sbin/adduser -D pillow \ +RUN /usr/sbin/adduser -D --uid 1001 pillow \ && virtualenv /vpy3 \ && /vpy3/bin/pip install --no-cache-dir --upgrade pip \ && /vpy3/bin/pip install --no-cache-dir olefile pytest pytest-cov pytest-timeout \ diff --git a/amazon-2-amd64/Dockerfile b/amazon-2-amd64/Dockerfile index 4e353d96..7603e890 100644 --- a/amazon-2-amd64/Dockerfile +++ b/amazon-2-amd64/Dockerfile @@ -35,7 +35,7 @@ RUN yum install -y \ RUN curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y ENV PATH="/root/.cargo/bin:${PATH}" -RUN useradd --uid 1000 pillow +RUN useradd --uid 1001 pillow RUN wget https://www.python.org/ftp/python/3.9.16/Python-3.9.16.tgz \ && tar xzf Python-3.9.16.tgz \ diff --git a/amazon-2023-amd64/Dockerfile b/amazon-2023-amd64/Dockerfile index 60b0750b..dcfb89e0 100644 --- a/amazon-2023-amd64/Dockerfile +++ b/amazon-2023-amd64/Dockerfile @@ -36,7 +36,7 @@ RUN yum install -y \ RUN curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y ENV PATH="/root/.cargo/bin:${PATH}" -RUN useradd --uid 1000 pillow +RUN useradd --uid 1001 pillow RUN bash -c "/usr/bin/pip3 install virtualenv \ && /usr/bin/python3 -mvirtualenv -p /usr/bin/python3 --system-site-packages /vpy3 \ diff --git a/arch/Dockerfile b/arch/Dockerfile index 64f6409b..36f3fb87 100644 --- a/arch/Dockerfile +++ b/arch/Dockerfile @@ -41,7 +41,7 @@ RUN cd /depends \ && ./install_imagequant.sh \ && ./install_raqm.sh -RUN /sbin/useradd -m -U -u 1000 pillow \ +RUN /sbin/useradd -m -U --uid 1001 pillow \ && virtualenv --system-site-packages /vpy3 \ && /vpy3/bin/pip install --no-cache-dir --upgrade pip \ && /vpy3/bin/pip install --no-cache-dir cffi olefile pytest pytest-cov pytest-timeout \ diff --git a/ubuntu-22.04-jammy-ppc64le/Dockerfile b/archive/ubuntu-22.04-jammy-ppc64le/Dockerfile similarity index 100% rename from ubuntu-22.04-jammy-ppc64le/Dockerfile rename to archive/ubuntu-22.04-jammy-ppc64le/Dockerfile diff --git a/ubuntu-22.04-jammy-ppc64le/Makefile b/archive/ubuntu-22.04-jammy-ppc64le/Makefile similarity index 100% rename from ubuntu-22.04-jammy-ppc64le/Makefile rename to archive/ubuntu-22.04-jammy-ppc64le/Makefile diff --git a/ubuntu-22.04-jammy-ppc64le/test.sh b/archive/ubuntu-22.04-jammy-ppc64le/test.sh similarity index 100% rename from ubuntu-22.04-jammy-ppc64le/test.sh rename to archive/ubuntu-22.04-jammy-ppc64le/test.sh diff --git a/ubuntu-22.04-jammy-ppc64le/update.sh b/archive/ubuntu-22.04-jammy-ppc64le/update.sh similarity index 100% rename from ubuntu-22.04-jammy-ppc64le/update.sh rename to archive/ubuntu-22.04-jammy-ppc64le/update.sh diff --git a/ubuntu-22.04-jammy-s390x/Dockerfile b/archive/ubuntu-22.04-jammy-s390x/Dockerfile similarity index 100% rename from ubuntu-22.04-jammy-s390x/Dockerfile rename to archive/ubuntu-22.04-jammy-s390x/Dockerfile diff --git a/ubuntu-22.04-jammy-s390x/Makefile b/archive/ubuntu-22.04-jammy-s390x/Makefile similarity index 100% rename from ubuntu-22.04-jammy-s390x/Makefile rename to archive/ubuntu-22.04-jammy-s390x/Makefile diff --git a/ubuntu-22.04-jammy-s390x/test.sh b/archive/ubuntu-22.04-jammy-s390x/test.sh similarity index 100% rename from ubuntu-22.04-jammy-s390x/test.sh rename to archive/ubuntu-22.04-jammy-s390x/test.sh diff --git a/ubuntu-22.04-jammy-s390x/update.sh b/archive/ubuntu-22.04-jammy-s390x/update.sh similarity index 100% rename from ubuntu-22.04-jammy-s390x/update.sh rename to archive/ubuntu-22.04-jammy-s390x/update.sh diff --git a/centos-stream-9-amd64/Dockerfile b/centos-stream-9-amd64/Dockerfile index a384f63d..3dca1cea 100644 --- a/centos-stream-9-amd64/Dockerfile +++ b/centos-stream-9-amd64/Dockerfile @@ -33,7 +33,7 @@ RUN yum install -y \ zlib-devel \ && yum clean all -RUN useradd --uid 1000 pillow +RUN useradd --uid 1001 pillow RUN bash -c "python3.9 -m pip install virtualenv \ && python3.9 -m virtualenv --system-site-packages /vpy3 \ diff --git a/debian-11-bullseye-amd64/Dockerfile b/debian-11-bullseye-amd64/Dockerfile index e1c572d0..07b1a3a3 100644 --- a/debian-11-bullseye-amd64/Dockerfile +++ b/debian-11-bullseye-amd64/Dockerfile @@ -65,7 +65,7 @@ RUN apt-get -qq update && DEBIAN_FRONTEND=noninteractive apt-get -y install \ RUN curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y ENV PATH="/root/.cargo/bin:${PATH}" -RUN useradd pillow \ +RUN useradd --uid 1001 pillow \ && addgroup pillow sudo \ && mkdir /home/pillow \ && chown pillow:pillow /home/pillow diff --git a/debian-12-bookworm-amd64/Dockerfile b/debian-12-bookworm-amd64/Dockerfile index 818e07e9..245d0fce 100644 --- a/debian-12-bookworm-amd64/Dockerfile +++ b/debian-12-bookworm-amd64/Dockerfile @@ -65,7 +65,7 @@ RUN apt-get -qq update && DEBIAN_FRONTEND=noninteractive apt-get -y install \ RUN curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y ENV PATH="/root/.cargo/bin:${PATH}" -RUN useradd pillow \ +RUN useradd --uid 1001 pillow \ && mkdir /home/pillow \ && chown pillow:pillow /home/pillow diff --git a/debian-12-bookworm-x86/Dockerfile b/debian-12-bookworm-x86/Dockerfile index fcf467c7..9036e6a7 100644 --- a/debian-12-bookworm-x86/Dockerfile +++ b/debian-12-bookworm-x86/Dockerfile @@ -65,7 +65,7 @@ RUN apt-get -qq update && DEBIAN_FRONTEND=noninteractive apt-get -y install \ RUN curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --default-host=i686-unknown-linux-gnu ENV PATH="/root/.cargo/bin:${PATH}" -RUN useradd pillow \ +RUN useradd -u 1001 pillow \ && mkdir /home/pillow \ && chown pillow:pillow /home/pillow diff --git a/fedora-39-amd64/Dockerfile b/fedora-39-amd64/Dockerfile index 6d45acf4..a387ee8d 100644 --- a/fedora-39-amd64/Dockerfile +++ b/fedora-39-amd64/Dockerfile @@ -25,7 +25,7 @@ RUN dnf install -y \ zlib-devel \ && dnf clean all -RUN useradd pillow \ +RUN useradd --uid 1001 pillow \ && chown pillow:pillow /home/pillow RUN virtualenv -p /usr/bin/python3.12 --system-site-packages /vpy3 \ diff --git a/fedora-40-amd64/Dockerfile b/fedora-40-amd64/Dockerfile index 9e72e9b6..246235af 100644 --- a/fedora-40-amd64/Dockerfile +++ b/fedora-40-amd64/Dockerfile @@ -25,7 +25,7 @@ RUN dnf install -y \ zlib-devel \ && dnf clean all -RUN useradd pillow \ +RUN useradd --uid 1001 pillow \ && chown pillow:pillow /home/pillow RUN virtualenv -p /usr/bin/python3.12 --system-site-packages /vpy3 \ diff --git a/gentoo/Dockerfile b/gentoo/Dockerfile index 5be45e59..6967946a 100644 --- a/gentoo/Dockerfile +++ b/gentoo/Dockerfile @@ -27,7 +27,7 @@ RUN emerge --quiet dev-python/virtualenv dev-util/cargo-c dev-build/meson x11-mi RUN USE="jpeg jpeg2k lcms tiff truetype webp xcb zlib" emerge --quiet --onlydeps dev-python/pillow RUN emerge --quiet app-text/ghostscript-gpl dev-python/numpy -RUN useradd pillow \ +RUN useradd --uid 1001 pillow \ && chown pillow:pillow /home/pillow RUN virtualenv --system-site-packages /vpy3 \ diff --git a/ubuntu-20.04-focal-amd64/Dockerfile b/ubuntu-20.04-focal-amd64/Dockerfile index 8145482f..e66ab36f 100644 --- a/ubuntu-20.04-focal-amd64/Dockerfile +++ b/ubuntu-20.04-focal-amd64/Dockerfile @@ -43,7 +43,7 @@ RUN apt-get -qq update && DEBIAN_FRONTEND=noninteractive apt-get -y install \ RUN curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y ENV PATH="/root/.cargo/bin:${PATH}" -RUN useradd pillow \ +RUN useradd --uid 1001 pillow \ && addgroup pillow sudo \ && mkdir /home/pillow \ && chown pillow:pillow /home/pillow diff --git a/ubuntu-22.04-jammy-amd64-valgrind/Dockerfile b/ubuntu-22.04-jammy-amd64-valgrind/Dockerfile index 507e7e4b..3c3293ea 100644 --- a/ubuntu-22.04-jammy-amd64-valgrind/Dockerfile +++ b/ubuntu-22.04-jammy-amd64-valgrind/Dockerfile @@ -33,7 +33,7 @@ RUN apt-get -qq update && DEBIAN_FRONTEND=noninteractive apt-get -y install \ valgrind \ && apt-get clean && rm -rf /var/lib/apt/lists/* -RUN useradd pillow \ +RUN useradd --uid 1001 pillow \ && addgroup pillow sudo \ && mkdir /home/pillow \ && chown pillow:pillow /home/pillow diff --git a/ubuntu-22.04-jammy-amd64/Dockerfile b/ubuntu-22.04-jammy-amd64/Dockerfile index 92cce941..c4a87de1 100644 --- a/ubuntu-22.04-jammy-amd64/Dockerfile +++ b/ubuntu-22.04-jammy-amd64/Dockerfile @@ -40,7 +40,7 @@ RUN apt-get -qq update && DEBIAN_FRONTEND=noninteractive apt-get -y install \ zlib1g-dev \ && rm -rf /var/lib/apt/lists/* -RUN useradd pillow \ +RUN useradd --uid 1001 pillow \ && addgroup pillow sudo \ && mkdir /home/pillow \ && chown pillow:pillow /home/pillow diff --git a/ubuntu-22.04-jammy-arm64v8/Dockerfile b/ubuntu-22.04-jammy-arm64v8/Dockerfile index 2093d95e..54b97f55 100644 --- a/ubuntu-22.04-jammy-arm64v8/Dockerfile +++ b/ubuntu-22.04-jammy-arm64v8/Dockerfile @@ -31,7 +31,7 @@ RUN apt-get -qq update && DEBIAN_FRONTEND=noninteractive apt-get -y install \ zlib1g-dev \ && rm -rf /var/lib/apt/lists/* -RUN useradd pillow \ +RUN useradd --uid 1001 pillow \ && addgroup pillow sudo \ && mkdir /home/pillow \ && chown pillow:pillow /home/pillow diff --git a/ubuntu-24.04-noble-amd64/Dockerfile b/ubuntu-24.04-noble-amd64/Dockerfile new file mode 100644 index 00000000..04e5995c --- /dev/null +++ b/ubuntu-24.04-noble-amd64/Dockerfile @@ -0,0 +1,60 @@ +FROM ubuntu:noble + +RUN apt-get -qq update && DEBIAN_FRONTEND=noninteractive apt-get -y install \ + cmake \ + ghostscript \ + git \ + libegl-dev \ + libffi-dev \ + libfreetype6-dev \ + libfribidi-dev \ + libharfbuzz-dev \ + libimagequant-dev \ + libjpeg-turbo-progs \ + libjpeg8-dev \ + liblcms2-dev \ + libopengl-dev \ + libopenjp2-7-dev \ + libssl-dev \ + libtiff5-dev \ + libwebp-dev \ + libxcb-cursor0 \ + libxcb-icccm4 \ + libxcb-image0 \ + libxcb-keysyms1 \ + libxcb-randr0 \ + libxcb-render-util0 \ + libxcb-shape0 \ + libxkbcommon-x11-0 \ + meson \ + netpbm \ + python3-dev \ + python3-numpy \ + python3-setuptools \ + python3-tk \ + sudo \ + tcl8.6-dev \ + tk8.6-dev \ + virtualenv \ + wget \ + xvfb \ + zlib1g-dev \ + && rm -rf /var/lib/apt/lists/* + +RUN useradd pillow \ + && mkdir /home/pillow \ + && chown pillow:pillow /home/pillow + +RUN virtualenv -p /usr/bin/python3.12 --system-site-packages /vpy3 \ + && /vpy3/bin/pip install --no-cache-dir --upgrade pip \ + && /vpy3/bin/pip install --no-cache-dir cffi olefile pyside6 pytest pytest-cov pytest-timeout \ + && chown -R pillow:pillow /vpy3 + +ADD depends /depends +RUN cd /depends \ + && ./install_raqm.sh + +USER pillow +CMD ["depends/test.sh"] + +#docker run -v $GITHUB_WORKSPACE:/Pillow pythonpillow/ubuntu-24.04-noble-amd64 diff --git a/ubuntu-24.04-noble-amd64/Makefile b/ubuntu-24.04-noble-amd64/Makefile new file mode 120000 index 00000000..5e7b0e26 --- /dev/null +++ b/ubuntu-24.04-noble-amd64/Makefile @@ -0,0 +1 @@ +../Makefile.sub \ No newline at end of file diff --git a/ubuntu-24.04-noble-amd64/test.sh b/ubuntu-24.04-noble-amd64/test.sh new file mode 100755 index 00000000..f1b1726c --- /dev/null +++ b/ubuntu-24.04-noble-amd64/test.sh @@ -0,0 +1,7 @@ +#!/bin/bash +source /vpy3/bin/activate +cd /Pillow +make clean +make install-coverage +python3 -c "from PIL import Image" +/usr/bin/xvfb-run -a pytest -vx --cov PIL --cov-report term Tests diff --git a/ubuntu-24.04-noble-amd64/update.sh b/ubuntu-24.04-noble-amd64/update.sh new file mode 100755 index 00000000..b5962bec --- /dev/null +++ b/ubuntu-24.04-noble-amd64/update.sh @@ -0,0 +1,2 @@ +#!/bin/sh +docker pull ubuntu:noble diff --git a/ubuntu-24.04-noble-ppc64le/Dockerfile b/ubuntu-24.04-noble-ppc64le/Dockerfile new file mode 100644 index 00000000..2759042d --- /dev/null +++ b/ubuntu-24.04-noble-ppc64le/Dockerfile @@ -0,0 +1,50 @@ +FROM ppc64le/ubuntu:noble + +RUN apt-get -qq update && DEBIAN_FRONTEND=noninteractive apt-get -y install \ + cmake \ + ghostscript \ + git \ + libffi-dev \ + libfreetype6-dev \ + libfribidi-dev \ + libharfbuzz-dev \ + libimagequant-dev \ + libjpeg-turbo-progs \ + libjpeg8-dev \ + liblcms2-dev \ + libopenjp2-7-dev \ + libssl-dev \ + libtiff5-dev \ + libwebp-dev \ + meson \ + netpbm \ + python3-dev \ + python3-numpy \ + python3-setuptools \ + python3-tk \ + sudo \ + tcl8.6-dev \ + tk8.6-dev \ + virtualenv \ + wget \ + xvfb \ + zlib1g-dev \ + && rm -rf /var/lib/apt/lists/* + +RUN useradd pillow \ + && mkdir /home/pillow \ + && chown pillow:pillow /home/pillow + +RUN virtualenv -p /usr/bin/python3.12 --system-site-packages /vpy3 \ + && /vpy3/bin/pip install --no-cache-dir --upgrade pip \ + && /vpy3/bin/pip install --no-cache-dir cffi olefile pytest pytest-cov pytest-timeout \ + && chown -R pillow:pillow /vpy3 + +ADD depends /depends +RUN cd /depends \ + && ./install_raqm.sh + +USER pillow +CMD ["depends/test.sh"] + +#docker run -v $GITHUB_WORKSPACE:/Pillow pythonpillow/ubuntu-24.04-noble-ppc64le diff --git a/ubuntu-24.04-noble-ppc64le/Makefile b/ubuntu-24.04-noble-ppc64le/Makefile new file mode 120000 index 00000000..5e7b0e26 --- /dev/null +++ b/ubuntu-24.04-noble-ppc64le/Makefile @@ -0,0 +1 @@ +../Makefile.sub \ No newline at end of file diff --git a/ubuntu-24.04-noble-ppc64le/test.sh b/ubuntu-24.04-noble-ppc64le/test.sh new file mode 100755 index 00000000..815f05fe --- /dev/null +++ b/ubuntu-24.04-noble-ppc64le/test.sh @@ -0,0 +1,6 @@ +#!/bin/bash +source /vpy3/bin/activate +cd /Pillow +make clean +make install-coverage +/usr/bin/xvfb-run -a pytest -vx --cov PIL --cov-report term Tests diff --git a/ubuntu-24.04-noble-ppc64le/update.sh b/ubuntu-24.04-noble-ppc64le/update.sh new file mode 100755 index 00000000..8c7571be --- /dev/null +++ b/ubuntu-24.04-noble-ppc64le/update.sh @@ -0,0 +1,2 @@ +#!/bin/sh +docker pull ppc64le/ubuntu:noble diff --git a/ubuntu-24.04-noble-s390x/Dockerfile b/ubuntu-24.04-noble-s390x/Dockerfile new file mode 100644 index 00000000..e880ae71 --- /dev/null +++ b/ubuntu-24.04-noble-s390x/Dockerfile @@ -0,0 +1,49 @@ +FROM s390x/ubuntu:noble + +RUN apt-get -qq update && DEBIAN_FRONTEND=noninteractive apt-get -y install \ + cmake \ + ghostscript \ + git \ + libffi-dev \ + libfreetype6-dev \ + libfribidi-dev \ + libharfbuzz-dev \ + libimagequant-dev \ + libjpeg-turbo-progs \ + libjpeg8-dev \ + liblcms2-dev \ + libopenjp2-7-dev \ + libtiff5-dev \ + meson \ + netpbm \ + python3-dev \ + python3-numpy \ + python3-setuptools \ + python3-tk \ + sudo \ + tcl8.6-dev \ + tk8.6-dev \ + virtualenv \ + wget \ + xvfb \ + zlib1g-dev \ + && rm -rf /var/lib/apt/lists/* + +RUN useradd pillow \ + && mkdir /home/pillow \ + && chown pillow:pillow /home/pillow + +RUN virtualenv -p /usr/bin/python3.12 --system-site-packages /vpy3 \ + && /vpy3/bin/pip install --no-cache-dir --upgrade pip \ + && /vpy3/bin/pip install --no-cache-dir cffi olefile pytest pytest-cov pytest-timeout \ + && chown -R pillow:pillow /vpy3 + +ADD depends /depends +RUN cd /depends \ + && ./install_raqm.sh \ + && ./install_webp.sh + +USER pillow +CMD ["depends/test.sh"] + +#docker run -v $GITHUB_WORKSPACE:/Pillow pythonpillow/ubuntu-24.04-noble-s390x diff --git a/ubuntu-24.04-noble-s390x/Makefile b/ubuntu-24.04-noble-s390x/Makefile new file mode 120000 index 00000000..5e7b0e26 --- /dev/null +++ b/ubuntu-24.04-noble-s390x/Makefile @@ -0,0 +1 @@ +../Makefile.sub \ No newline at end of file diff --git a/ubuntu-24.04-noble-s390x/test.sh b/ubuntu-24.04-noble-s390x/test.sh new file mode 100755 index 00000000..815f05fe --- /dev/null +++ b/ubuntu-24.04-noble-s390x/test.sh @@ -0,0 +1,6 @@ +#!/bin/bash +source /vpy3/bin/activate +cd /Pillow +make clean +make install-coverage +/usr/bin/xvfb-run -a pytest -vx --cov PIL --cov-report term Tests diff --git a/ubuntu-24.04-noble-s390x/update.sh b/ubuntu-24.04-noble-s390x/update.sh new file mode 100755 index 00000000..026a8e35 --- /dev/null +++ b/ubuntu-24.04-noble-s390x/update.sh @@ -0,0 +1,2 @@ +#!/bin/sh +docker pull s390x/ubuntu:noble