|
|
|
@ -9,12 +9,12 @@ set -ex
|
|
|
|
|
# remove others to expedite build and reduce docker image size. The original
|
|
|
|
|
# manylinux docker image project builds many python versions.
|
|
|
|
|
# NOTE We added back 3.5.1, since auditwheel requires python 3.3+
|
|
|
|
|
CPYTHON_VERSIONS="2.7.11 3.5.1"
|
|
|
|
|
CPYTHON_VERSIONS="3.7.0 3.6.0 3.5.1 2.7.11"
|
|
|
|
|
|
|
|
|
|
# openssl version to build, with expected sha256 hash of .tar.gz
|
|
|
|
|
# archive
|
|
|
|
|
OPENSSL_ROOT=openssl-1.0.2l
|
|
|
|
|
OPENSSL_HASH=ce07195b659e75f4e1db43552860070061f156a98bb37b672b101ba6e3ddf30c
|
|
|
|
|
OPENSSL_ROOT=openssl-1.1.0i
|
|
|
|
|
OPENSSL_HASH=ebbfc844a8c8cc0ea5dc10b86c9ce97f401837f3fa08c17b2cdadc118253cf99
|
|
|
|
|
EPEL_RPM_HASH=e5ed9ecf22d0c4279e92075a64c757ad2b38049bcf5c16c4f2b75d5f6860dc0d
|
|
|
|
|
DEVTOOLS_HASH=a8ebeb4bed624700f727179e6ef771dafe47651131a00a78b342251415646acc
|
|
|
|
|
PATCHELF_HASH=d9afdff4baeacfbc64861454f368b7f2c15c44d245293f7587bbf726bfe722fb
|
|
|
|
@ -25,7 +25,7 @@ AUTOCONF_HASH=954bd69b391edc12d6a4a51a2dd1476543da5c6bbf05a95b59dc0dd6fd4c2969
|
|
|
|
|
|
|
|
|
|
# Dependencies for compiling Python that we want to remove from
|
|
|
|
|
# the final image after compiling Python
|
|
|
|
|
PYTHON_COMPILE_DEPS="zlib-devel bzip2-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel"
|
|
|
|
|
PYTHON_COMPILE_DEPS="zlib-devel bzip2-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel libffi-devel"
|
|
|
|
|
|
|
|
|
|
# Libraries that are allowed as part of the manylinux1 profile
|
|
|
|
|
MANYLINUX1_DEPS="glibc-devel libstdc++-devel glib2-devel libX11-devel libXext-devel libXrender-devel mesa-libGL-devel libICE-devel libSM-devel ncurses-devel freetype-devel libpng-devel"
|
|
|
|
@ -61,7 +61,7 @@ yum -y install bzip2 make git patch unzip bison yasm diffutils \
|
|
|
|
|
|
|
|
|
|
wget -q https://cmake.org/files/v3.5/cmake-3.5.2.tar.gz && tar xzf cmake-3.5.2.tar.gz && \
|
|
|
|
|
cd cmake-3.5.2 && ./bootstrap && \
|
|
|
|
|
make -j4 && make install && cd .. && rm cmake-3.5.2.tar.gz
|
|
|
|
|
make -j8 && make install && cd .. && rm cmake-3.5.2.tar.gz
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# Install newest autoconf
|
|
|
|
@ -77,11 +77,13 @@ mkdir -p /opt/python
|
|
|
|
|
build_cpythons $CPYTHON_VERSIONS
|
|
|
|
|
|
|
|
|
|
PY35_BIN=/opt/python/cp35-cp35m/bin
|
|
|
|
|
PY36_BIN=/opt/python/cp36-cp36m/bin
|
|
|
|
|
PY37_BIN=/opt/python/cp37-cp37m/bin
|
|
|
|
|
# NOTE Since our custom manylinux image builds pythons with shared
|
|
|
|
|
# libpython, we need to add libpython's dir to LD_LIBRARY_PATH before running
|
|
|
|
|
# python.
|
|
|
|
|
ORIGINAL_LD_LIBRARY_PATH="${LD_LIBRARY_PATH}"
|
|
|
|
|
LD_LIBRARY_PATH="${ORIGINAL_LD_LIBRARY_PATH}:$(dirname ${PY35_BIN})/lib"
|
|
|
|
|
LD_LIBRARY_PATH="${ORIGINAL_LD_LIBRARY_PATH}:$(dirname ${PY35_BIN})/lib:$(dirname ${PY36_BIN})/lib:$(dirname ${PY37_BIN})/lib"
|
|
|
|
|
|
|
|
|
|
# Our openssl doesn't know how to find the system CA trust store
|
|
|
|
|
# (https://github.com/pypa/manylinux/issues/53)
|
|
|
|
@ -119,9 +121,8 @@ ln -s $PY35_BIN/auditwheel /usr/local/bin/auditwheel
|
|
|
|
|
# final image
|
|
|
|
|
yum -y erase wireless-tools gtk2 libX11 hicolor-icon-theme \
|
|
|
|
|
avahi freetype bitstream-vera-fonts \
|
|
|
|
|
${PYTHON_COMPILE_DEPS} > /dev/null 2>&1
|
|
|
|
|
yum -y install ${MANYLINUX1_DEPS}
|
|
|
|
|
yum -y clean all > /dev/null 2>&1
|
|
|
|
|
${PYTHON_COMPILE_DEPS} > /dev/null 2>&1 || true
|
|
|
|
|
yum -y install ${MANYLINUX1_DEPS} && yum -y clean all > /dev/null 2>&1 || true
|
|
|
|
|
yum list installed
|
|
|
|
|
# we don't need libpython*.a, and they're many megabytes
|
|
|
|
|
find /opt/_internal -name '*.a' -print0 | xargs -0 rm -f
|
|
|
|
|