diff --git a/Makefile b/Makefile index 992f84e..f75e1bf 100644 --- a/Makefile +++ b/Makefile @@ -96,7 +96,7 @@ web-wasm: web-wasm/Dockerfile web-wasm.test: web-wasm cp -r test web-wasm/ - $(DOCKER) run $(RM) dockcross/web-wasm > $(BIN)/dockcross-web-wasm && chmod +x $(BIN)/dockcross-web-wasm + $(DOCKER) run $(RM) $(ORG)/web-wasm > $(BIN)/dockcross-web-wasm && chmod +x $(BIN)/dockcross-web-wasm $(BIN)/dockcross-web-wasm python test/run.py --exe-suffix ".js" rm -rf web-wasm/test @@ -121,7 +121,7 @@ manylinux2014-aarch64: manylinux2014-aarch64/Dockerfile rm -rf $@/imagefiles manylinux2014-aarch64.test: manylinux2014-aarch64 - $(DOCKER) run $(RM) dockcross/manylinux2014-aarch64 > $(BIN)/dockcross-manylinux2014-aarch64 && chmod +x $(BIN)/dockcross-manylinux2014-aarch64 + $(DOCKER) run $(RM) $(ORG)/manylinux2014-aarch64 > $(BIN)/dockcross-manylinux2014-aarch64 && chmod +x $(BIN)/dockcross-manylinux2014-aarch64 $(BIN)/dockcross-manylinux2014-aarch64 /opt/python/cp38-cp38/bin/python test/run.py # @@ -145,7 +145,7 @@ manylinux2014-x64: manylinux2014-x64/Dockerfile rm -rf $@/imagefiles manylinux2014-x64.test: manylinux2014-x64 - $(DOCKER) run $(RM) dockcross/manylinux2014-x64 > $(BIN)/dockcross-manylinux2014-x64 && chmod +x $(BIN)/dockcross-manylinux2014-x64 + $(DOCKER) run $(RM) $(ORG)/manylinux2014-x64 > $(BIN)/dockcross-manylinux2014-x64 && chmod +x $(BIN)/dockcross-manylinux2014-x64 $(BIN)/dockcross-manylinux2014-x64 /opt/python/cp38-cp38/bin/python test/run.py # @@ -169,7 +169,7 @@ manylinux2014-x86: manylinux2014-x86/Dockerfile rm -rf $@/imagefiles manylinux2014-x86.test: manylinux2014-x86 - $(DOCKER) run $(RM) dockcross/manylinux2014-x86 > $(BIN)/dockcross-manylinux2014-x86 && chmod +x $(BIN)/dockcross-manylinux2014-x86 + $(DOCKER) run $(RM) $(ORG)/manylinux2014-x86 > $(BIN)/dockcross-manylinux2014-x86 && chmod +x $(BIN)/dockcross-manylinux2014-x86 $(BIN)/dockcross-manylinux2014-x86 /opt/python/cp38-cp38/bin/python test/run.py # @@ -219,7 +219,7 @@ manylinux2010-x86: manylinux2010-x86/Dockerfile rm -rf $@/imagefiles manylinux2010-x86.test: manylinux2010-x86 - $(DOCKER) run $(RM) dockcross/manylinux2010-x86 > $(BIN)/dockcross-manylinux2010-x86 && chmod +x $(BIN)/dockcross-manylinux2010-x86 + $(DOCKER) run $(RM) $(ORG)/manylinux2010-x86 > $(BIN)/dockcross-manylinux2010-x86 && chmod +x $(BIN)/dockcross-manylinux2010-x86 $(BIN)/dockcross-manylinux2010-x86 /opt/python/cp38-cp38/bin/python test/run.py # @@ -244,7 +244,7 @@ manylinux1-x64: manylinux1-x64/Dockerfile rm -rf $@/imagefiles manylinux1-x64.test: manylinux1-x64 - $(DOCKER) run $(RM) dockcross/manylinux1-x64 > $(BIN)/dockcross-manylinux1-x64 && chmod +x $(BIN)/dockcross-manylinux1-x64 + $(DOCKER) run $(RM) $(ORG)/manylinux1-x64 > $(BIN)/dockcross-manylinux1-x64 && chmod +x $(BIN)/dockcross-manylinux1-x64 $(BIN)/dockcross-manylinux1-x64 /opt/python/cp38-cp38/bin/python test/run.py # @@ -269,7 +269,7 @@ manylinux1-x86: manylinux1-x86/Dockerfile rm -rf $@/imagefiles manylinux1-x86.test: manylinux1-x86 - $(DOCKER) run $(RM) dockcross/manylinux1-x86 > $(BIN)/dockcross-manylinux1-x86 && chmod +x $(BIN)/dockcross-manylinux1-x86 + $(DOCKER) run $(RM) $(ORG)/manylinux1-x86 > $(BIN)/dockcross-manylinux1-x86 && chmod +x $(BIN)/dockcross-manylinux1-x86 $(BIN)/dockcross-manylinux1-x86 /opt/python/cp38-cp38/bin/python test/run.py # @@ -288,7 +288,7 @@ base: Dockerfile imagefiles/ . base.test: base - $(DOCKER) run $(RM) dockcross/base > $(BIN)/dockcross-base && chmod +x $(BIN)/dockcross-base + $(DOCKER) run $(RM) $(ORG)/base > $(BIN)/dockcross-base && chmod +x $(BIN)/dockcross-base # # display @@ -319,12 +319,17 @@ $(STANDARD_IMAGES): %: %/Dockerfile base $@ rm -rf $@/imagefiles +clean: + for d in $(STANDARD_IMAGES) ; do rm -rf $$d/imagefiles ; done + for d in $(GEN_IMAGE_DOCKERFILES) ; do rm -f $$d/Dockerfile ; done + rm -f Dockerfile + # # testing implicit rule # .SECONDEXPANSION: $(addsuffix .test,$(STANDARD_IMAGES)): $$(basename $$@) - $(DOCKER) run $(RM) dockcross/$(basename $@) > $(BIN)/dockcross-$(basename $@) && chmod +x $(BIN)/dockcross-$(basename $@) + $(DOCKER) run $(RM) $(ORG)/$(basename $@) > $(BIN)/dockcross-$(basename $@) && chmod +x $(BIN)/dockcross-$(basename $@) $(BIN)/dockcross-$(basename $@) python test/run.py $($@_ARGS) # @@ -335,4 +340,4 @@ test.prerequisites: $(addsuffix .test,base $(IMAGES)): test.prerequisites -.PHONY: base images $(IMAGES) test %.test +.PHONY: base images $(IMAGES) test %.test clean diff --git a/common.debian b/common.debian index 95c5309..beec2df 100644 --- a/common.debian +++ b/common.debian @@ -30,8 +30,8 @@ RUN \ ncurses-dev \ pkg-config \ pax \ - python \ - python-pip \ +# python3 \ +# python3-pip \ rsync \ sed \ ssh \ @@ -41,5 +41,23 @@ RUN \ xz-utils \ zip \ zlib1g-dev \ +# python build + libncurses5-dev \ + libgdbm-dev \ + libnss3-dev \ + libssl-dev \ + libsqlite3-dev \ + libreadline-dev \ + libffi-dev \ + libbz2-dev\ && \ apt-get clean --yes + +# build and install python +COPY \ + imagefiles/build-and-install-python.sh \ + /buildscripts/ +RUN \ + set -x && \ + /buildscripts/build-and-install-python.sh && \ + rm -rf /buildscripts \ No newline at end of file diff --git a/common.manylinux b/common.manylinux index a9434ea..e703860 100644 --- a/common.manylinux +++ b/common.manylinux @@ -8,6 +8,7 @@ RUN \ yum -y install \ $([ "$DEFAULT_DOCKCROSS_IMAGE" = "dockcross/manylinux2014-x86" ] && echo "" || echo "epel-release") \ gpg \ + python3-devel \ zlib-devel \ gettext \ openssh-clients \ diff --git a/imagefiles/build-and-install-python.sh b/imagefiles/build-and-install-python.sh new file mode 100755 index 0000000..b51871d --- /dev/null +++ b/imagefiles/build-and-install-python.sh @@ -0,0 +1,40 @@ +#!/usr/bin/env bash + +# +# Configure, build and install python +# +# Usage: +# +# build-and-install-python.sh [-version 3.9.5] + +PYTHON_VERSION=3.9.5 +while [ $# -gt 0 ]; do + case "$1" in + -version|-v) + PYTHON_VERSION=$2 + shift + ;;& + *) + echo "Usage: Usage: ${0##*/} [-version 3.9.5]" + exit 1 + ;; + esac + shift +done + +# Download +wget https://www.python.org/ftp/python/${PYTHON_VERSION}/Python-${PYTHON_VERSION}.tgz +tar xvf Python-${PYTHON_VERSION}.tgz +# Configure, build and install +cd Python-${PYTHON_VERSION} +# Disable --enable-shared --enable-optimizations --prefix=/usr/local/python-${PYTHON_VERSION} +./configure --with-ensurepip=install +make -j$(nproc) +make install #altinstall + +ln -s /usr/local/bin/python3 /usr/local/bin/python +ln -s /usr/local/bin/pip3 /usr/local/bin/pip + +# Clean +cd .. +rm -rf Python-${PYTHON_VERSION} diff --git a/imagefiles/install-python-packages.sh b/imagefiles/install-python-packages.sh index 62b9378..088a4e7 100755 --- a/imagefiles/install-python-packages.sh +++ b/imagefiles/install-python-packages.sh @@ -22,8 +22,8 @@ cd /tmp # Todo: Need to update base image from Debian Stretch for the required Python # 3.6 or later -# curl -# -LO https://bootstrap.pypa.io/pip/get-pip.py -curl -# -LO https://bootstrap.pypa.io/pip/2.7/get-pip.py +curl -# -LO https://bootstrap.pypa.io/pip/get-pip.py +#curl -# -LO https://bootstrap.pypa.io/pip/2.7/get-pip.py ${PYTHON} get-pip.py --ignore-installed rm get-pip.py diff --git a/linux-arm64/crosstool-ng.config b/linux-arm64/crosstool-ng.config index 5401dfe..065fce3 100644 --- a/linux-arm64/crosstool-ng.config +++ b/linux-arm64/crosstool-ng.config @@ -431,7 +431,7 @@ CT_DEBUG_gdb=y CT_GDB_CROSS=y # CT_GDB_CROSS_STATIC is not set # CT_GDB_CROSS_SIM is not set -CT_GDB_CROSS_PYTHON=y +CT_GDB_CROSS_PYTHON=n CT_GDB_CROSS_PYTHON_BINARY="" CT_GDB_CROSS_EXTRA_CONFIG_ARRAY="" # CT_GDB_NATIVE is not set @@ -449,7 +449,7 @@ CT_GDB_7_12_or_later=y CT_GDB_7_2_or_later=y CT_GDB_7_0_or_later=y CT_GDB_HAS_PKGVERSION_BUGURL=y -CT_GDB_HAS_PYTHON=y +CT_GDB_HAS_PYTHON=n CT_GDB_INSTALL_GDBINIT=y # CT_DEBUG_ltrace is not set # CT_DEBUG_strace is not set diff --git a/linux-armv5/crosstool-ng.config b/linux-armv5/crosstool-ng.config index 64c3171..5651394 100644 --- a/linux-armv5/crosstool-ng.config +++ b/linux-armv5/crosstool-ng.config @@ -428,7 +428,7 @@ CT_DEBUG_gdb=y CT_GDB_CROSS=y # CT_GDB_CROSS_STATIC is not set # CT_GDB_CROSS_SIM is not set -CT_GDB_CROSS_PYTHON=y +CT_GDB_CROSS_PYTHON=n CT_GDB_CROSS_PYTHON_BINARY="" CT_GDB_CROSS_EXTRA_CONFIG_ARRAY="" # CT_GDB_NATIVE is not set @@ -446,7 +446,7 @@ CT_GDB_7_12_or_later=y CT_GDB_7_2_or_later=y CT_GDB_7_0_or_later=y CT_GDB_HAS_PKGVERSION_BUGURL=y -CT_GDB_HAS_PYTHON=y +CT_GDB_HAS_PYTHON=n CT_GDB_INSTALL_GDBINIT=y # CT_DEBUG_ltrace is not set # CT_DEBUG_strace is not set diff --git a/linux-armv7/crosstool-ng.config b/linux-armv7/crosstool-ng.config index 4a5f106..77f5cbb 100644 --- a/linux-armv7/crosstool-ng.config +++ b/linux-armv7/crosstool-ng.config @@ -428,7 +428,7 @@ CT_DEBUG_gdb=y CT_GDB_CROSS=y # CT_GDB_CROSS_STATIC is not set CT_GDB_CROSS_SIM=y -CT_GDB_CROSS_PYTHON=y +CT_GDB_CROSS_PYTHON=n CT_GDB_CROSS_PYTHON_BINARY="" CT_GDB_CROSS_EXTRA_CONFIG_ARRAY="" # CT_GDB_NATIVE is not set @@ -446,7 +446,7 @@ CT_GDB_7_12_or_later=y CT_GDB_7_2_or_later=y CT_GDB_7_0_or_later=y CT_GDB_HAS_PKGVERSION_BUGURL=y -CT_GDB_HAS_PYTHON=y +CT_GDB_HAS_PYTHON=n CT_GDB_INSTALL_GDBINIT=y # CT_DEBUG_ltrace is not set # CT_DEBUG_strace is not set diff --git a/linux-armv7a/crosstool-ng.config b/linux-armv7a/crosstool-ng.config index 96fde63..e8d5b27 100644 --- a/linux-armv7a/crosstool-ng.config +++ b/linux-armv7a/crosstool-ng.config @@ -514,7 +514,7 @@ CT_GDB_7_12_or_later=y CT_GDB_7_2_or_later=y CT_GDB_7_0_or_later=y CT_GDB_HAS_PKGVERSION_BUGURL=y -CT_GDB_HAS_PYTHON=y +CT_GDB_HAS_PYTHON=n CT_GDB_INSTALL_GDBINIT=y # CT_DEBUG_ltrace is not set # CT_DEBUG_strace is not set diff --git a/linux-mips/crosstool-ng.config b/linux-mips/crosstool-ng.config index 1fc2098..479aead 100644 --- a/linux-mips/crosstool-ng.config +++ b/linux-mips/crosstool-ng.config @@ -442,7 +442,7 @@ CT_GDB_7_12_or_later=y CT_GDB_7_2_or_later=y CT_GDB_7_0_or_later=y CT_GDB_HAS_PKGVERSION_BUGURL=y -CT_GDB_HAS_PYTHON=y +CT_GDB_HAS_PYTHON=n CT_GDB_INSTALL_GDBINIT=y # CT_DEBUG_ltrace is not set # CT_DEBUG_strace is not set diff --git a/linux-ppc64le/crosstool-ng.config b/linux-ppc64le/crosstool-ng.config index 863b5cc..5b65eab 100644 --- a/linux-ppc64le/crosstool-ng.config +++ b/linux-ppc64le/crosstool-ng.config @@ -441,7 +441,7 @@ CT_GDB_7_12_or_later=y CT_GDB_7_2_or_later=y CT_GDB_7_0_or_later=y CT_GDB_HAS_PKGVERSION_BUGURL=y -CT_GDB_HAS_PYTHON=y +CT_GDB_HAS_PYTHON=n CT_GDB_INSTALL_GDBINIT=y # CT_DEBUG_ltrace is not set # CT_DEBUG_strace is not set diff --git a/linux-s390x/crosstool-ng.config b/linux-s390x/crosstool-ng.config index 5f63144..aaf9035 100644 --- a/linux-s390x/crosstool-ng.config +++ b/linux-s390x/crosstool-ng.config @@ -443,7 +443,7 @@ CT_GDB_7_12_or_later=y CT_GDB_7_2_or_later=y CT_GDB_7_0_or_later=y CT_GDB_HAS_PKGVERSION_BUGURL=y -CT_GDB_HAS_PYTHON=y +CT_GDB_HAS_PYTHON=n CT_GDB_INSTALL_GDBINIT=y # CT_DEBUG_ltrace is not set # CT_DEBUG_strace is not set diff --git a/manylinux2010-x64/Dockerfile.in b/manylinux2010-x64/Dockerfile.in index c34c6e4..1a6d820 100644 --- a/manylinux2010-x64/Dockerfile.in +++ b/manylinux2010-x64/Dockerfile.in @@ -4,87 +4,15 @@ MAINTAINER Matt McCormick "matt.mccormick@kitware.com" ENV DEFAULT_DOCKCROSS_IMAGE dockcross/manylinux2010-x64 #include "common.manylinux" -# Image build scripts -COPY \ - imagefiles/install-gosu-binary.sh \ - imagefiles/install-gosu-binary-wrapper.sh \ - manylinux-common/install-python-packages.sh \ - /buildscripts/ - -RUN \ - set -x && \ - yum -y install \ - epel-release \ - gpg \ - zlib-devel \ - gettext \ - openssh-clients \ - pax \ - wget \ - zip \ - && \ - yum clean all && \ - /buildscripts/install-gosu-binary.sh && \ - /buildscripts/install-gosu-binary-wrapper.sh && \ - # Remove sudo provided by "devtoolset-2" and "devtoolset-8" since it doesn't work with - # our sudo wrapper calling gosu. - rm -f /opt/rh/devtoolset-2/root/usr/bin/sudo && \ - rm -f /opt/rh/devtoolset-7/root/usr/bin/sudo && \ - rm -f /opt/rh/devtoolset-8/root/usr/bin/sudo && \ - /buildscripts/install-python-packages.sh && \ - rm -rf /buildscripts - -# Runtime scripts -COPY manylinux-common/pre_exec.sh /dockcross/ #include "common.dockcross" #include "common.docker" -WORKDIR /usr/src - -ARG GIT_VERSION=2.22.0 -ARG CMAKE_VERSION=3.17.1 - -# Image build scripts -COPY \ - imagefiles/build-and-install-cmake.sh \ - imagefiles/build-and-install-curl.sh \ - imagefiles/build-and-install-git.sh \ - imagefiles/build-and-install-ninja.sh \ - imagefiles/build-and-install-openssl.sh \ - imagefiles/build-and-install-openssh.sh \ - imagefiles/install-cmake-binary.sh \ - imagefiles/install-liquidprompt-binary.sh \ - imagefiles/install-python-packages.sh \ - imagefiles/utils.sh \ - /buildscripts/ - -RUN \ - X86_FLAG=$([ "$DEFAULT_DOCKCROSS_IMAGE" = "dockcross/manylinux1-x86" -o "$DEFAULT_DOCKCROSS_IMAGE" = "dockcross/manylinux2010-x86" ] && echo "-32" || echo "") && \ - /buildscripts/build-and-install-openssl.sh $X86_FLAG && \ - /buildscripts/build-and-install-openssh.sh && \ - /buildscripts/build-and-install-curl.sh && \ - /buildscripts/build-and-install-git.sh && \ - /buildscripts/install-cmake-binary.sh $X86_FLAG && \ - /buildscripts/install-liquidprompt-binary.sh && \ - PYTHON=$([ -e /opt/python/cp35-cp35m/bin/python ] && echo "/opt/python/cp35-cp35m/bin/python" || echo "python") && \ - /buildscripts/install-python-packages.sh -python ${PYTHON} && \ - /buildscripts/build-and-install-ninja.sh -python ${PYTHON} && \ - rm -rf /buildscripts - -RUN echo "root:root" | chpasswd -WORKDIR /work -ENTRYPOINT ["/dockcross/entrypoint.sh"] - -# Runtime scripts -COPY imagefiles/cmake.sh /usr/local/bin/cmake -COPY imagefiles/ccmake.sh /usr/local/bin/ccmake -COPY imagefiles/entrypoint.sh imagefiles/dockcross /dockcross/ # Override yum to work around the problem with newly built libcurl.so.4 # https://access.redhat.com/solutions/641093 RUN echo $'#!/bin/bash\n\ -LD_PRELOAD=/usr/lib64/libcurl.so.4 /usr/bin/yum "$@"' > /usr/local/bin/yum && chmod a+x /usr/local/bin/yum +LD_PRELOAD=/usr/lib/libcurl.so.4 /usr/bin/yum "$@"' > /usr/local/bin/yum && chmod a+x /usr/local/bin/yum ENV CROSS_TRIPLE x86_64-linux-gnu ENV CROSS_ROOT /opt/rh/devtoolset-8/root/usr/bin diff --git a/manylinux2014-aarch64/crosstool-ng.config b/manylinux2014-aarch64/crosstool-ng.config index 537ad9a..1a5adb2 100644 --- a/manylinux2014-aarch64/crosstool-ng.config +++ b/manylinux2014-aarch64/crosstool-ng.config @@ -449,7 +449,7 @@ CT_GDB_7_12_or_later=y CT_GDB_7_2_or_later=y CT_GDB_7_0_or_later=y CT_GDB_HAS_PKGVERSION_BUGURL=y -CT_GDB_HAS_PYTHON=y +CT_GDB_HAS_PYTHON=n CT_GDB_INSTALL_GDBINIT=y # CT_DEBUG_ltrace is not set # CT_DEBUG_strace is not set