Skip to content

Commit d3e3cca

Browse files
authored
Fix libcrypt.so.1 not found by some system packages (#1023)
Fix #1022
1 parent 6f7c2dc commit d3e3cca

File tree

3 files changed

+36
-4
lines changed

3 files changed

+36
-4
lines changed

build.sh

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -36,9 +36,9 @@ if [ "${POLICY}" == "manylinux2010" ]; then
3636
DEVTOOLSET_ROOTPATH="/opt/rh/devtoolset-8/root"
3737
PREPEND_PATH="${DEVTOOLSET_ROOTPATH}/usr/bin:"
3838
if [ "${PLATFORM}" == "i686" ]; then
39-
LD_LIBRARY_PATH_ARG="${DEVTOOLSET_ROOTPATH}/usr/lib:${DEVTOOLSET_ROOTPATH}/usr/lib/dyninst:/usr/local/lib"
39+
LD_LIBRARY_PATH_ARG="${DEVTOOLSET_ROOTPATH}/usr/lib:${DEVTOOLSET_ROOTPATH}/usr/lib/dyninst"
4040
else
41-
LD_LIBRARY_PATH_ARG="${DEVTOOLSET_ROOTPATH}/usr/lib64:${DEVTOOLSET_ROOTPATH}/usr/lib:${DEVTOOLSET_ROOTPATH}/usr/lib64/dyninst:${DEVTOOLSET_ROOTPATH}/usr/lib/dyninst:/usr/local/lib64:/usr/local/lib"
41+
LD_LIBRARY_PATH_ARG="${DEVTOOLSET_ROOTPATH}/usr/lib64:${DEVTOOLSET_ROOTPATH}/usr/lib:${DEVTOOLSET_ROOTPATH}/usr/lib64/dyninst:${DEVTOOLSET_ROOTPATH}/usr/lib/dyninst:/usr/local/lib64"
4242
fi
4343
elif [ "${POLICY}" == "manylinux2014" ]; then
4444
if [ "${PLATFORM}" == "s390x" ]; then
@@ -49,9 +49,9 @@ elif [ "${POLICY}" == "manylinux2014" ]; then
4949
DEVTOOLSET_ROOTPATH="/opt/rh/devtoolset-9/root"
5050
PREPEND_PATH="${DEVTOOLSET_ROOTPATH}/usr/bin:"
5151
if [ "${PLATFORM}" == "i686" ]; then
52-
LD_LIBRARY_PATH_ARG="${DEVTOOLSET_ROOTPATH}/usr/lib:${DEVTOOLSET_ROOTPATH}/usr/lib/dyninst:/usr/local/lib"
52+
LD_LIBRARY_PATH_ARG="${DEVTOOLSET_ROOTPATH}/usr/lib:${DEVTOOLSET_ROOTPATH}/usr/lib/dyninst"
5353
else
54-
LD_LIBRARY_PATH_ARG="${DEVTOOLSET_ROOTPATH}/usr/lib64:${DEVTOOLSET_ROOTPATH}/usr/lib:${DEVTOOLSET_ROOTPATH}/usr/lib64/dyninst:${DEVTOOLSET_ROOTPATH}/usr/lib/dyninst:/usr/local/lib64:/usr/local/lib"
54+
LD_LIBRARY_PATH_ARG="${DEVTOOLSET_ROOTPATH}/usr/lib64:${DEVTOOLSET_ROOTPATH}/usr/lib:${DEVTOOLSET_ROOTPATH}/usr/lib64/dyninst:${DEVTOOLSET_ROOTPATH}/usr/lib/dyninst:/usr/local/lib64"
5555
fi
5656
elif [ "${POLICY}" == "manylinux_2_24" ]; then
5757
BASEIMAGE="${MULTIARCH_PREFIX}debian:9"

docker/build_scripts/install-runtime-packages.sh

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -124,3 +124,10 @@ fi
124124
# and since it's also needed in the finalize step, everything's
125125
# centralized in this script to avoid code duplication
126126
LC_ALL=C ${MY_DIR}/update-system-packages.sh
127+
128+
# we'll be removing libcrypt.so.1 later on
129+
# this is needed to ensure the new one will be found
130+
# as LD_LIBRARY_PATH does not seem enough.
131+
# c.f. https://github.com/pypa/manylinux/issues/1022
132+
echo "/usr/local/lib" > /etc/ld.so.conf.d/manylinux.conf
133+
ldconfig

tests/run_tests.sh

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,17 @@ set -exuo pipefail
66
# Get script directory
77
MY_DIR=$(dirname "${BASH_SOURCE[0]}")
88

9+
if [ "${AUDITWHEEL_POLICY}" == "manylinux2010" ] || [ "${AUDITWHEEL_POLICY}" == "manylinux2014" ]; then
10+
PACKAGE_MANAGER=yum
11+
elif [ "${AUDITWHEEL_POLICY}" == "manylinux_2_24" ]; then
12+
export DEBIAN_FRONTEND=noninteractive
13+
PACKAGE_MANAGER=apt
14+
apt-get update -qq
15+
else
16+
echo "Unsupported policy: '${AUDITWHEEL_POLICY}'"
17+
exit 1
18+
fi
19+
920

1021
for PYTHON in /opt/python/*/bin/python; do
1122
# Smoke test to make sure that our Pythons work, and do indeed detect as
@@ -23,3 +34,17 @@ patchelf --version
2334
git --version
2435
cmake --version
2536
swig -version
37+
38+
# check libcrypt.so.1 can be loaded by some system packages,
39+
# as LD_LIBRARY_PATH might not be enough.
40+
# c.f. https://github.com/pypa/manylinux/issues/1022
41+
if [ "${PACKAGE_MANAGER}" == "yum" ]; then
42+
yum -y install openssh-clients
43+
elif [ "${PACKAGE_MANAGER}" == "apt" ]; then
44+
apt-get install -qq -y --no-install-recommends openssh-client
45+
else
46+
echo "Unsupported package manager: '${PACKAGE_MANAGER}'"
47+
exit 1
48+
fi
49+
eval "$(ssh-agent)"
50+
eval "$(ssh-agent -k)"

0 commit comments

Comments
 (0)