diff --git a/common/install_cpython.sh b/common/install_cpython.sh index a1716e641..b06fe27c1 100755 --- a/common/install_cpython.sh +++ b/common/install_cpython.sh @@ -22,18 +22,27 @@ function do_cpython_build { local prefix="/opt/_internal/cpython-${py_ver}" mkdir -p ${prefix}/lib + if [[ -n $(which patchelf) ]]; then + local shared_flags="--enable-shared" + else + local shared_flags="--disable-shared" + fi if [[ -z "${WITH_OPENSSL+x}" ]]; then - local openssl_flags="" + local openssl_flags="" else local openssl_flags="--with-openssl=${WITH_OPENSSL} --with-openssl-rpath=auto" fi # -Wformat added for https://bugs.python.org/issue17547 on Python 2.6 - CFLAGS="-Wformat" ./configure --prefix=${prefix} ${openssl_flags} --disable-shared > /dev/null + CFLAGS="-Wformat" ./configure --prefix=${prefix} ${openssl_flags} ${shared_flags} > /dev/null make -j40 > /dev/null make install > /dev/null + if [[ "${shared_flags}" == "--enable-shared" ]]; then + patchelf --set-rpath '$ORIGIN/../lib' ${prefix}/bin/python3 + fi + popd rm -rf Python-$py_ver # Some python's install as bin/python3. Make them available as diff --git a/manywheel/Dockerfile b/manywheel/Dockerfile index b9530685d..03a2fefb0 100644 --- a/manywheel/Dockerfile +++ b/manywheel/Dockerfile @@ -36,7 +36,14 @@ FROM base as openssl ADD ./common/install_openssl.sh install_openssl.sh RUN bash ./install_openssl.sh && rm install_openssl.sh -FROM base as python +# EPEL for cmake +FROM base as patchelf +# Install patchelf +ADD ./common/install_patchelf.sh install_patchelf.sh +RUN bash ./install_patchelf.sh && rm install_patchelf.sh +RUN cp $(which patchelf) /patchelf + +FROM patchelf as python # build python COPY manywheel/build_scripts /build_scripts ADD ./common/install_cpython.sh /build_scripts/install_cpython.sh @@ -59,13 +66,6 @@ FROM base as intel ADD ./common/install_mkl.sh install_mkl.sh RUN bash ./install_mkl.sh && rm install_mkl.sh -# EPEL for cmake -FROM base as patchelf -# Install patchelf -ADD ./common/install_patchelf.sh install_patchelf.sh -RUN bash ./install_patchelf.sh && rm install_patchelf.sh -RUN cp $(which patchelf) /patchelf - FROM base as magma ARG BASE_CUDA_VERSION=10.2 # Install magma