Add manylinux_2_24-x64 image

This commit is contained in:
Jean-Christophe Fillion-Robin 2022-06-21 19:23:22 -04:00
parent e76f24e120
commit dd849908aa
6 changed files with 114 additions and 2 deletions

View File

@ -771,6 +771,24 @@ jobs:
cpython: "no", cpython: "no",
cpython_arg: "", cpython_arg: "",
} }
# manylinux_2_24 images
- {
image: "manylinux_2_24-x64",
stockfish: "yes",
stockfish_arg: "ARCH=x86-64-modern",
ninja: "yes",
ninja_arg: "",
openssl: "yes",
openssl_arg: "linux-x86_64",
C: "no",
C_arg: "",
C-Plus-Plus: "no",
C-Plus-Plus_arg: "",
fmt: "yes",
fmt_arg: "",
cpython: "yes",
cpython_arg: "",
}
# manylinux2014 images # manylinux2014 images
- { - {
image: "manylinux2014-x86", image: "manylinux2014-x86",

View File

@ -27,6 +27,7 @@ STANDARD_IMAGES = android-arm android-arm64 android-x86 android-x86_64 \
# Generated Dockerfiles. # Generated Dockerfiles.
GEN_IMAGES = android-arm android-arm64 \ GEN_IMAGES = android-arm android-arm64 \
linux-x86 linux-x64 linux-x64-clang linux-arm64 linux-arm64-musl linux-arm64-full \ linux-x86 linux-x64 linux-x64-clang linux-arm64 linux-arm64-musl linux-arm64-full \
manylinux_2_24-x64 \
manylinux2014-x64 manylinux2014-x86 \ manylinux2014-x64 manylinux2014-x86 \
manylinux2014-aarch64 linux-arm64-lts \ manylinux2014-aarch64 linux-arm64-lts \
web-wasm web-wasi linux-mips linux-mips-lts windows-arm64 windows-armv7 \ web-wasm web-wasi linux-mips linux-mips-lts windows-arm64 windows-armv7 \
@ -41,11 +42,11 @@ GEN_IMAGES = android-arm android-arm64 \
GEN_IMAGE_DOCKERFILES = $(addsuffix /Dockerfile,$(GEN_IMAGES)) GEN_IMAGE_DOCKERFILES = $(addsuffix /Dockerfile,$(GEN_IMAGES))
# These images are expected to have explicit rules for *both* build and testing # These images are expected to have explicit rules for *both* build and testing
NON_STANDARD_IMAGES = manylinux2014-x64 manylinux2014-x86 \ NON_STANDARD_IMAGES = manylinux_2_24-x64 manylinux2014-x64 manylinux2014-x86 \
manylinux2014-aarch64 web-wasm manylinux2014-aarch64 web-wasm
# Docker composite files # Docker composite files
DOCKER_COMPOSITE_SOURCES = common.docker common.debian common.manylinux2014 common.buildroot \ DOCKER_COMPOSITE_SOURCES = common.docker common.debian common.manylinux2014 common.manylinux_2_24 common.buildroot \
common.crosstool common.webassembly common.windows common-manylinux.crosstool common.dockcross \ common.crosstool common.webassembly common.windows common-manylinux.crosstool common.dockcross \
common.label-and-env common.label-and-env
DOCKER_COMPOSITE_FOLDER_PATH = common/ DOCKER_COMPOSITE_FOLDER_PATH = common/
@ -98,6 +99,7 @@ $(GEN_IMAGE_DOCKERFILES) Dockerfile: %Dockerfile: %Dockerfile.in $(DOCKER_COMPOS
sed \ sed \
-e '/common.docker/ r $(DOCKER_COMPOSITE_FOLDER_PATH)common.docker' \ -e '/common.docker/ r $(DOCKER_COMPOSITE_FOLDER_PATH)common.docker' \
-e '/common.debian/ r $(DOCKER_COMPOSITE_FOLDER_PATH)common.debian' \ -e '/common.debian/ r $(DOCKER_COMPOSITE_FOLDER_PATH)common.debian' \
-e '/common.manylinux_2_24/ r $(DOCKER_COMPOSITE_FOLDER_PATH)common.manylinux_2_24' \
-e '/common.manylinux2014/ r $(DOCKER_COMPOSITE_FOLDER_PATH)common.manylinux2014' \ -e '/common.manylinux2014/ r $(DOCKER_COMPOSITE_FOLDER_PATH)common.manylinux2014' \
-e '/common.crosstool/ r $(DOCKER_COMPOSITE_FOLDER_PATH)common.crosstool' \ -e '/common.crosstool/ r $(DOCKER_COMPOSITE_FOLDER_PATH)common.crosstool' \
-e '/common.buildroot/ r $(DOCKER_COMPOSITE_FOLDER_PATH)common.buildroot' \ -e '/common.buildroot/ r $(DOCKER_COMPOSITE_FOLDER_PATH)common.buildroot' \
@ -155,6 +157,25 @@ manylinux2014-aarch64.test: manylinux2014-aarch64
&& chmod +x $(BIN)/dockcross-manylinux2014-aarch64 && chmod +x $(BIN)/dockcross-manylinux2014-aarch64
$(BIN)/dockcross-manylinux2014-aarch64 /opt/python/cp38-cp38/bin/python test/run.py $(BIN)/dockcross-manylinux2014-aarch64 /opt/python/cp38-cp38/bin/python test/run.py
#
# manylinux_2_24-x64
#
manylinux_2_24-x64: manylinux_2_24-x64/Dockerfile
mkdir -p $@/imagefiles && cp -r imagefiles $@/
$(DOCKER) build -t $(ORG)/manylinux_2_24-x64:latest \
-t $(ORG)/manylinux_2_24-x64:$(TAG) \
--build-arg IMAGE=$(ORG)/manylinux_2_24-x64 \
--build-arg VCS_REF=`git rev-parse --short HEAD` \
--build-arg VCS_URL=`git config --get remote.origin.url` \
--build-arg BUILD_DATE=`date -u +"%Y-%m-%dT%H:%M:%SZ"` \
-f manylinux_2_24-x64/Dockerfile .
rm -rf $@/imagefiles
manylinux_2_24-x64.test: manylinux_2_24-x64
$(DOCKER) run $(RM) $(ORG)/manylinux_2_24-x64 > $(BIN)/dockcross-manylinux_2_24-x64 \
&& chmod +x $(BIN)/dockcross-manylinux_2_24-x64
$(BIN)/dockcross-manylinux_2_24-x64 /opt/python/cp310-cp310/bin/python test/run.py
# #
# manylinux2014-x64 # manylinux2014-x64
# #

View File

@ -108,6 +108,7 @@ The dockcross script will execute the given command-line inside the container, a
| dockcross/linux-riscv64 | riscv64 | GCC | Linux | | dockcross/linux-riscv64 | riscv64 | GCC | Linux |
| dockcross/linux-m68k-uclibc | m68k | GCC + uclibc | Linux | | dockcross/linux-m68k-uclibc | m68k | GCC + uclibc | Linux |
| dockcross/linux-xtensa-uclibc | xtensa | GCC + uclibc | Linux | | dockcross/linux-xtensa-uclibc | xtensa | GCC + uclibc | Linux |
| dockcross/manylinux_2_24-x64 | x86_64 | GCC | Linux |
| dockcross/manylinux2014-x86 | x86 | GCC | Linux | | dockcross/manylinux2014-x86 | x86 | GCC | Linux |
| dockcross/manylinux2014-x64 | x86_64 | GCC | Linux | | dockcross/manylinux2014-x64 | x86_64 | GCC | Linux |
| dockcross/linux-x86 | x86 | GCC | Linux | | dockcross/linux-x86 | x86 | GCC | Linux |
@ -347,6 +348,12 @@ Linux i686 cross compiler.
Linux tcc compiler for C compiler, and GCC for C++ compiler, for linux x86_64/amd64 arch. Linux tcc compiler for C compiler, and GCC for C++ compiler, for linux x86_64/amd64 arch.
### dockcross/manylinux_2_24-x64
![Docker Image Size (tag)](https://img.shields.io/docker/image-size/dockcross/manylinux_2_24-x64/latest) ![Docker Pulls](https://img.shields.io/docker/pulls/dockcross/manylinux2014-x64)
Docker [manylinux_2_24](https://github.com/pypa/manylinux) image for building Linux x86_64 / amd64 [Python wheel packages](http://pythonwheels.com/). It includes Python 3.6, 3.7, 3.8, 3.9, 3.10 and 3.11. Also has support for the dockcross script, and it has installations of CMake, Ninja, and [scikit-build](http://scikit-build.org). For CMake, it sets **MANYLINUX_2_24** to \"TRUE\" in the toolchain.
### dockcross/manylinux2014-x64 ### dockcross/manylinux2014-x64
![Docker Image Size (tag)](https://img.shields.io/docker/image-size/dockcross/manylinux2014-x64/latest) ![Docker Pulls](https://img.shields.io/docker/pulls/dockcross/manylinux2014-x64) ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/dockcross/manylinux2014-x64/latest) ![Docker Pulls](https://img.shields.io/docker/pulls/dockcross/manylinux2014-x64)

View File

@ -0,0 +1,26 @@
# Image build scripts
COPY \
manylinux-common/install-python-packages.sh \
/buildscripts/
RUN \
set -x && \
apt-get update -qq && \
apt-get -y install \
dirmngr \
gnupg \
python3-dev \
zlib1g-dev \
gettext \
openssh-client \
pax \
wget \
zip \
&& \
apt-get clean -qq && \
rm -rf /var/lib/apt/lists/* && \
/buildscripts/install-python-packages.sh && \
rm -rf /buildscripts
# Runtime scripts
COPY manylinux-common/pre_exec.sh /dockcross/

View File

@ -0,0 +1,29 @@
# Recent versions address yum functionality
FROM quay.io/pypa/manylinux_2_24_x86_64:latest
LABEL maintainer="Matt McCormick matt.mccormick@kitware.com"
ENV DEFAULT_DOCKCROSS_IMAGE dockcross/manylinux_2_24-x64
#include "common.manylinux_2_24"
#include "common.dockcross"
#include "common.docker"
ENV CROSS_TRIPLE x86_64-linux-gnu
ENV CROSS_ROOT /usr/bin
ENV AS=${CROSS_ROOT}/as \
AR=${CROSS_ROOT}/ar \
CC=${CROSS_ROOT}/gcc \
CPP=${CROSS_ROOT}/cpp \
CXX=${CROSS_ROOT}/g++ \
LD=${CROSS_ROOT}/ld \
FC=${CROSS_ROOT}/gfortran
COPY linux-x64/${CROSS_TRIPLE}-noop.sh /usr/bin/${CROSS_TRIPLE}-noop
COPY manylinux_2_24-x64/Toolchain.cmake ${CROSS_ROOT}/../lib/
ENV CMAKE_TOOLCHAIN_FILE ${CROSS_ROOT}/../lib/Toolchain.cmake
#include "common.label-and-env"

View File

@ -0,0 +1,11 @@
set(CMAKE_SYSTEM_NAME Linux)
set(CMAKE_CROSSCOMPILING FALSE)
set(CMAKE_SYSTEM_VERSION 1)
set(CMAKE_SYSTEM_PROCESSOR x86_64)
set(MANYLINUX_2_24 TRUE)
set(CMAKE_C_COMPILER /usr/bin/gcc)
set(CMAKE_CXX_COMPILER /usr/bin/g++)
set(CMAKE_ASM_COMPILER ${CMAKE_C_COMPILER})
set(CMAKE_Fortran_COMPILER /usr/bin/gfortran)