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 diff --git a/web-wasm/Dockerfile.in b/web-wasm/Dockerfile.in index fd24165..4cb8977 100644 --- a/web-wasm/Dockerfile.in +++ b/web-wasm/Dockerfile.in @@ -35,8 +35,8 @@ RUN \ ncurses-dev \ pkg-config \ libtool \ - python \ - python-pip \ + python3 \ + python3-pip \ rsync \ sed \ ssh \ @@ -51,6 +51,8 @@ RUN \ && \ apt-get clean --yes +RUN ln -s /usr/bin/python3 /usr/bin/python + #include "common.dockcross" #include "common.docker"