This is an automated email from the ASF dual-hosted git repository.
lidavidm pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/arrow-adbc.git
The following commit(s) were added to refs/heads/main by this push:
new cbd76470e build(python): keep building driver manager on manylinux2014
(#3065)
cbd76470e is described below
commit cbd76470ef51b4d2fb4dc5c9f9a4f1e8fa1fe3b2
Author: David Li <[email protected]>
AuthorDate: Mon Jun 30 13:04:56 2025 +0900
build(python): keep building driver manager on manylinux2014 (#3065)
Fixes #3064.
---
ci/scripts/python_util.sh | 4 ++++
ci/scripts/python_wheel_unix_build.sh | 18 +++++++++++++-----
ci/scripts/python_wheel_unix_relocate.sh | 10 ++++++++++
3 files changed, 27 insertions(+), 5 deletions(-)
diff --git a/ci/scripts/python_util.sh b/ci/scripts/python_util.sh
index 106564653..e5062423e 100644
--- a/ci/scripts/python_util.sh
+++ b/ci/scripts/python_util.sh
@@ -149,6 +149,10 @@ function setup_build_vars {
fi
# No PyPy, no Python 3.8
export CIBW_SKIP="pp* cp38-* ${CIBW_SKIP}"
+ # Make sure our manylinux version doesn't creep up (this only matters for
+ # the driver manager)
+ export CIBW_MANYLINUX_X86_64_IMAGE="manylinux2014"
+ export CIBW_MANYLINUX_AARCH64_IMAGE="manylinux2014"
}
function test_packages {
diff --git a/ci/scripts/python_wheel_unix_build.sh
b/ci/scripts/python_wheel_unix_build.sh
index f0f2b8637..029e2da26 100755
--- a/ci/scripts/python_wheel_unix_build.sh
+++ b/ci/scripts/python_wheel_unix_build.sh
@@ -47,14 +47,22 @@ function check_visibility {
exit 1
fi
- # Also check the max glibc version, to avoid accidentally bumping our
- # manylinux requirement
+ # Also check the max glibc/glibcxx version, to avoid accidentally bumping
+ # our manylinux requirement
+ # See https://peps.python.org/pep-0599/#the-manylinux2014-policy
local -r glibc_max=2.17
+ local -r glibcxx_max=3.4.19
local -r glibc_requirement=$(grep -Eo 'GLIBC_\S+' nm_arrow.log | awk -F_
'{print $2}' | sort --version-sort -u | tail -n1)
- local -r maxver=$(echo -e "${glibc_requirement}\n${glibc_max}" | sort
--version-sort | tail -n1)
- if [[ "${maxver}" != "2.17" ]]; then
+ local -r glibc_maxver=$(echo -e "${glibc_requirement}\n${glibc_max}" |
sort --version-sort | tail -n1)
+ local -r glibcxx_requirement=$(grep -Eo 'GLIBCXX_\S+' nm_arrow.log | awk
-F_ '{print $2}' | sort --version-sort -u | tail -n1)
+ local -r glibcxx_maxver=$(echo -e "${glibcxx_requirement}\n${glibcxx_max}"
| sort --version-sort | tail -n1)
+ if [[ "${glibc_maxver}" != "2.17" ]]; then
echo "== glibc check failed for $1 =="
- echo "Expected ${glibc_max} but found ${glibc_requirement}"
+ echo "Expected GLIBC_${glibc_max} but found GLIBC_${glibc_requirement}"
+ exit 1
+ elif [[ "${glibcxx_maxver}" != "3.4.19" ]]; then
+ echo "== glibc check failed for $1 =="
+ echo "Expected GLIBCXX_${glibcxx_max} but found
GLIBCXX_${glibcxx_requirement}"
exit 1
fi
}
diff --git a/ci/scripts/python_wheel_unix_relocate.sh
b/ci/scripts/python_wheel_unix_relocate.sh
index dde802aee..db8f71154 100755
--- a/ci/scripts/python_wheel_unix_relocate.sh
+++ b/ci/scripts/python_wheel_unix_relocate.sh
@@ -79,6 +79,16 @@ for component in $COMPONENTS; do
python setup.py sdist
if [[ "$component" = "adbc_driver_manager" ]]; then
python -m cibuildwheel --output-dir repaired_wheels/
dist/$component-*.tar.gz
+
+ for wheel in repaired_wheels/*.whl; do
+ if [[ "$(uname)" = "Linux" ]]; then
+ # We only check 2_17, though in principle everything should
work on 2014
+ if ! [[ $(basename "${wheel}") == *manylinux_2_17* ]]; then
+ echo "Wheel does not support manylinux_2_17: ${wheel}"
+ exit 1
+ fi
+ fi
+ done
else
python -m pip wheel --no-deps -w dist -vvv .