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 .
 

Reply via email to