From 19f0e1f85a70ebd426f46aeb1191761e6f4ed6bc 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 --- .../Dockerfiles/Dockerfile.amd64.centos7 | 14 ++++++++----- .../Dockerfiles/Dockerfile.amd64.centos8 | 2 +- .../Dockerfiles/Dockerfile.amd64.ubuntu-18.04 | 11 ++++++++-- util/release.sh | 20 +++++++++++++++++++ 4 files changed, 39 insertions(+), 8 deletions(-) diff --git a/assets/release/Dockerfiles/Dockerfile.amd64.centos7 b/assets/release/Dockerfiles/Dockerfile.amd64.centos7 index 62ea24da4..376606ca4 100644 --- a/assets/release/Dockerfiles/Dockerfile.amd64.centos7 +++ b/assets/release/Dockerfiles/Dockerfile.amd64.centos7 @@ -1,8 +1,12 @@ -FROM amd64/centos:7 +# Use Python 3.8+ (required by V8's GN build system) +# See https://hub.docker.com/r/centos/python-38-centos7 +FROM centos/python-38-centos7 +#FROM registry.access.redhat.com/ubi8/python-38 COPY . /ngx_wasm_module +USER root -RUN yum install -y epel-release && \ - yum update -y && \ +RUN yum update -y && \ + yum install -y epel-release && \ yum install -y centos-release-scl && \ yum install -y \ devtoolset-8 \ @@ -13,16 +17,16 @@ RUN yum install -y epel-release && \ cmake3 \ make \ gcc \ - python3 \ git \ glib2-devel \ perl \ perl-IPC-Cmd \ perl-Test-Simple +RUN ln -nfs $(which cmake3) /usr/bin/cmake + 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 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 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..cc51dc32c 100644 --- a/assets/release/Dockerfiles/Dockerfile.amd64.ubuntu-18.04 +++ b/assets/release/Dockerfiles/Dockerfile.amd64.ubuntu-18.04 @@ -2,13 +2,20 @@ FROM amd64/ubuntu:18.04 COPY . /ngx_wasm_module ARG DEBIAN_FRONTEND=noninteractive + +# Install Python 3.8+ (required by V8's GN build system) +RUN apt-get update && \ + apt-get install -y software-properties-common && \ + add-apt-repository -y ppa:deadsnakes/ppa && \ + apt-get update && \ + apt-get install -y python3.8 && \ + ln -nfs $(which python3.8) /usr/bin/python3 + RUN apt-get update && \ apt-get install -y --no-install-recommends \ ca-certificates \ build-essential \ ninja-build \ - python3 \ - cmake \ gcc-8 \ libstdc++-8-dev \ git \ diff --git a/util/release.sh b/util/release.sh index c0afabc23..15ebb008a 100755 --- a/util/release.sh +++ b/util/release.sh @@ -373,6 +373,26 @@ 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 + if [ -f ~/.profile ]; then + cat ~/.profile + else + echo "no .profile" + fi + if [ "$(get_distro)" = "centos7" ]; then notice "Enabling devtoolset-8 for CentOS..." source /opt/rh/devtoolset-8/enable