Skip to content

Commit cbd7647

Browse files
authored
build(python): keep building driver manager on manylinux2014 (#3065)
Fixes #3064.
1 parent 7536f45 commit cbd7647

File tree

3 files changed

+27
-5
lines changed

3 files changed

+27
-5
lines changed

ci/scripts/python_util.sh

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -149,6 +149,10 @@ function setup_build_vars {
149149
fi
150150
# No PyPy, no Python 3.8
151151
export CIBW_SKIP="pp* cp38-* ${CIBW_SKIP}"
152+
# Make sure our manylinux version doesn't creep up (this only matters for
153+
# the driver manager)
154+
export CIBW_MANYLINUX_X86_64_IMAGE="manylinux2014"
155+
export CIBW_MANYLINUX_AARCH64_IMAGE="manylinux2014"
152156
}
153157

154158
function test_packages {

ci/scripts/python_wheel_unix_build.sh

Lines changed: 13 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -47,14 +47,22 @@ function check_visibility {
4747
exit 1
4848
fi
4949

50-
# Also check the max glibc version, to avoid accidentally bumping our
51-
# manylinux requirement
50+
# Also check the max glibc/glibcxx version, to avoid accidentally bumping
51+
# our manylinux requirement
52+
# See https://peps.python.org/pep-0599/#the-manylinux2014-policy
5253
local -r glibc_max=2.17
54+
local -r glibcxx_max=3.4.19
5355
local -r glibc_requirement=$(grep -Eo 'GLIBC_\S+' nm_arrow.log | awk -F_ '{print $2}' | sort --version-sort -u | tail -n1)
54-
local -r maxver=$(echo -e "${glibc_requirement}\n${glibc_max}" | sort --version-sort | tail -n1)
55-
if [[ "${maxver}" != "2.17" ]]; then
56+
local -r glibc_maxver=$(echo -e "${glibc_requirement}\n${glibc_max}" | sort --version-sort | tail -n1)
57+
local -r glibcxx_requirement=$(grep -Eo 'GLIBCXX_\S+' nm_arrow.log | awk -F_ '{print $2}' | sort --version-sort -u | tail -n1)
58+
local -r glibcxx_maxver=$(echo -e "${glibcxx_requirement}\n${glibcxx_max}" | sort --version-sort | tail -n1)
59+
if [[ "${glibc_maxver}" != "2.17" ]]; then
5660
echo "== glibc check failed for $1 =="
57-
echo "Expected ${glibc_max} but found ${glibc_requirement}"
61+
echo "Expected GLIBC_${glibc_max} but found GLIBC_${glibc_requirement}"
62+
exit 1
63+
elif [[ "${glibcxx_maxver}" != "3.4.19" ]]; then
64+
echo "== glibc check failed for $1 =="
65+
echo "Expected GLIBCXX_${glibcxx_max} but found GLIBCXX_${glibcxx_requirement}"
5866
exit 1
5967
fi
6068
}

ci/scripts/python_wheel_unix_relocate.sh

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -79,6 +79,16 @@ for component in $COMPONENTS; do
7979
python setup.py sdist
8080
if [[ "$component" = "adbc_driver_manager" ]]; then
8181
python -m cibuildwheel --output-dir repaired_wheels/ dist/$component-*.tar.gz
82+
83+
for wheel in repaired_wheels/*.whl; do
84+
if [[ "$(uname)" = "Linux" ]]; then
85+
# We only check 2_17, though in principle everything should work on 2014
86+
if ! [[ $(basename "${wheel}") == *manylinux_2_17* ]]; then
87+
echo "Wheel does not support manylinux_2_17: ${wheel}"
88+
exit 1
89+
fi
90+
fi
91+
done
8292
else
8393
python -m pip wheel --no-deps -w dist -vvv .
8494

0 commit comments

Comments
 (0)