From 8ff660facdb624e1f9f9ec0a3deec1cef064028f Mon Sep 17 00:00:00 2001 From: Bensuperpc Date: Wed, 26 May 2021 20:02:47 +0200 Subject: [PATCH 1/5] Update to python 3.9.5, fix build fail with manylinuximage Update to python 3.9.5, fix build fail with manylinuximage Signed-off-by: Bensuperpc --- .github/workflows/main.yml | 2 +- common.debian | 22 ++++++++++++-- common.manylinux | 1 + imagefiles/build-and-install-python.sh | 40 ++++++++++++++++++++++++++ imagefiles/install-python-packages.sh | 4 +-- 5 files changed, 64 insertions(+), 5 deletions(-) create mode 100755 imagefiles/build-and-install-python.sh diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index f203025..3590cfe 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -3,7 +3,7 @@ name: Dockcross CI on: push: branches: - - 'master' + - '*' pull_request: branches: - '*' 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 From 40545c5f783872ce40cb1f2370ab3d6946f15096 Mon Sep 17 00:00:00 2001 From: Bensuperpc Date: Wed, 26 May 2021 20:06:05 +0200 Subject: [PATCH 2/5] Disable python with GDB Disable python with GDB: GDB 8.1 and lower have issues with python 3.7 and upper : https://bugzilla.redhat.com/show_bug.cgi?id=1577396 Signed-off-by: Bensuperpc --- linux-arm64/crosstool-ng.config | 4 ++-- linux-armv5/crosstool-ng.config | 4 ++-- linux-armv7/crosstool-ng.config | 4 ++-- linux-armv7a/crosstool-ng.config | 2 +- linux-mips/crosstool-ng.config | 2 +- linux-ppc64le/crosstool-ng.config | 2 +- linux-s390x/crosstool-ng.config | 2 +- manylinux2010-x64/Dockerfile.in | 3 ++- manylinux2014-aarch64/crosstool-ng.config | 2 +- 9 files changed, 13 insertions(+), 12 deletions(-) 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..3a8c4c4 100644 --- a/manylinux2010-x64/Dockerfile.in +++ b/manylinux2010-x64/Dockerfile.in @@ -17,6 +17,7 @@ RUN \ epel-release \ gpg \ zlib-devel \ + python3-devel \ gettext \ openssh-clients \ pax \ @@ -67,7 +68,7 @@ RUN \ /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") && \ + PYTHON=$([ -e /opt/python/cp35-cp35m/bin/python ] && echo "/opt/python/cp35-cp35m/bin/python" || echo "python3") && \ /buildscripts/install-python-packages.sh -python ${PYTHON} && \ /buildscripts/build-and-install-ninja.sh -python ${PYTHON} && \ rm -rf /buildscripts 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 From b3bf66de2fb8795b1fdfc2e67b1b8c2d9d42708a Mon Sep 17 00:00:00 2001 From: Bensuperpc Date: Wed, 26 May 2021 21:05:35 +0200 Subject: [PATCH 3/5] Fix build fail with manylinux2010-x64 Fix build fail with manylinux2010-x64 Signed-off-by: Bensuperpc --- manylinux2010-x64/Dockerfile.in | 75 +-------------------------------- 1 file changed, 1 insertion(+), 74 deletions(-) diff --git a/manylinux2010-x64/Dockerfile.in b/manylinux2010-x64/Dockerfile.in index 3a8c4c4..1a6d820 100644 --- a/manylinux2010-x64/Dockerfile.in +++ b/manylinux2010-x64/Dockerfile.in @@ -4,88 +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 \ - python3-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 "python3") && \ - /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 From fd80ca0a17eb7fc7e19f805ad1e8fdc585e8b225 Mon Sep 17 00:00:00 2001 From: Bensuperpc Date: Wed, 26 May 2021 22:28:33 +0200 Subject: [PATCH 4/5] Fix build fail Fix build fail Signed-off-by: Bensuperpc --- web-wasm/Dockerfile.in | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) 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" From a9599e9e2a4786e77079ed92e2f07bf17bac702f Mon Sep 17 00:00:00 2001 From: Bensuperpc Date: Thu, 27 May 2021 00:04:49 +0200 Subject: [PATCH 5/5] Update CI Update CI Signed-off-by: Bensuperpc --- .github/workflows/main.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 3590cfe..f203025 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -3,7 +3,7 @@ name: Dockcross CI on: push: branches: - - '*' + - 'master' pull_request: branches: - '*'