From e2e750a9f4924a14f023ad98f80ca05fad06aea3 Mon Sep 17 00:00:00 2001 From: Thibault Charbonnier Date: Thu, 26 Oct 2023 18:21:02 -0700 Subject: [PATCH] chore(release) install Python 3.8+ in older distributions Fixing V8 build issues, see NVIDIA/DeepLearningExamples#1016 Fixes #430 --- .../release/Dockerfiles/Dockerfile.amd64.centos7 | 9 +++++++++ .../release/Dockerfiles/Dockerfile.amd64.centos8 | 2 +- .../Dockerfiles/Dockerfile.amd64.ubuntu-18.04 | 9 +++++++++ util/release.sh | 16 ++++++++++++++++ 4 files changed, 35 insertions(+), 1 deletion(-) diff --git a/assets/release/Dockerfiles/Dockerfile.amd64.centos7 b/assets/release/Dockerfiles/Dockerfile.amd64.centos7 index 62ea24da4..e6d4b43e5 100644 --- a/assets/release/Dockerfiles/Dockerfile.amd64.centos7 +++ b/assets/release/Dockerfiles/Dockerfile.amd64.centos7 @@ -20,6 +20,13 @@ RUN yum install -y epel-release && \ perl-IPC-Cmd \ perl-Test-Simple +# Install Python 3.8+ (required by V8's GN build system) +RUN yum -y install centos-release-scl-rh centos-release-scl && \ + yum --enablerepo=centos-sclo-rh -y install rh-python38 && \ + echo 'source /opt/rh/rh-python38/enable; export X_SCLS="`scl enable rh-python38 'echo $X_SCLS'`"' >> /etc/profile.d/python38.sh && \ + echo 'source /opt/rh/rh-python38/enable; export X_SCLS="`scl enable rh-python38 'echo $X_SCLS'`"' >> ~/.bashrc && \ + echo "scl enable rh-python38" >> ~/.bashrc + ENV RUSTUP_HOME=/usr/local/rustup CARGO_HOME=/usr/local/cargo ENV PATH $CARGO_HOME/bin:$PATH RUN ln -nfs $(which cmake3) /usr/bin/cmake @@ -31,3 +38,5 @@ RUN mkdir -p "$CARGO_HOME" && mkdir -p "$RUSTUP_HOME" && \ # https://github.com/WebAssembly/wasm-c-api/blob/master/include/wasm.h#L29 # and ensure a more recent libstdc++ is found ENV LD_FLAGS="-Wl,--allow-multiple-definition -L/opt/rh/devtoolset-8/root/usr/lib/gcc/x86_64-redhat-linux/8" + +SHELL ["/bin/bash", "-l", "-c"] diff --git a/assets/release/Dockerfiles/Dockerfile.amd64.centos8 b/assets/release/Dockerfiles/Dockerfile.amd64.centos8 index 7ecb451e8..9f374b4dc 100644 --- a/assets/release/Dockerfiles/Dockerfile.amd64.centos8 +++ b/assets/release/Dockerfiles/Dockerfile.amd64.centos8 @@ -13,7 +13,7 @@ RUN sed -i 's/mirrorlist/#mirrorlist/g' /etc/yum.repos.d/CentOS-Linux-* && \ libstdc++-devel \ libatomic \ perl \ - python3 \ + python39 \ git \ glib2-devel diff --git a/assets/release/Dockerfiles/Dockerfile.amd64.ubuntu-18.04 b/assets/release/Dockerfiles/Dockerfile.amd64.ubuntu-18.04 index bfe8bb2f7..69a42ef20 100644 --- a/assets/release/Dockerfiles/Dockerfile.amd64.ubuntu-18.04 +++ b/assets/release/Dockerfiles/Dockerfile.amd64.ubuntu-18.04 @@ -26,8 +26,17 @@ RUN apt-get install -y --no-install-recommends \ pip3 install scikit-build && \ pip3 install cmake +# Install Python 3.8+ (required by V8's GN build system) +RUN apt-get install -y software-properties-common && \ + add-apt-repository -y ppa:deadsnakes/ppa && \ + apt-get update && \ + apt-get install -y python3.8 && \ + echo 'alias python3="python3.8"' >> ~/.bashrc + ENV RUSTUP_HOME=/usr/local/rustup CARGO_HOME=/usr/local/cargo ENV PATH $CARGO_HOME/bin:$PATH RUN mkdir -p "$CARGO_HOME" && mkdir -p "$RUSTUP_HOME" && \ curl https://sh.rustup.rs -sSf | sh -s -- -y --default-toolchain stable && \ chmod -R a=rwX $CARGO_HOME $RUSTUP_HOME + +SHELL ["/bin/bash", "-l", "-c"] diff --git a/util/release.sh b/util/release.sh index c0afabc23..830cc4075 100755 --- a/util/release.sh +++ b/util/release.sh @@ -373,6 +373,22 @@ release_bin() { notice "Building $arch binary..." + notice "Debug" + ps -p $$ + [[ $- == *i* ]] && echo 'Interactive' || echo 'Not interactive' + shopt -q login_shell && echo 'Login shell' || echo 'Not login shell' + if [ -x "$(command -v python)" ]; then + python -V + else + echo "no python" + fi + if [ -x "$(command -v python3)" ]; then + python3 -V + else + echo "no python3" + fi + cat ~/.bashrc + if [ "$(get_distro)" = "centos7" ]; then notice "Enabling devtoolset-8 for CentOS..." source /opt/rh/devtoolset-8/enable