This is an automated email from the ASF dual-hosted git repository.
kou pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/arrow.git
The following commit(s) were added to refs/heads/main by this push:
new c78314bc72 GH-50551: [CI][Dev] Fix shellcheck errors in the
ci/scripts/python_wheel_macos_build.sh (#50552)
c78314bc72 is described below
commit c78314bc7231442dbe0416528779a4a79c99a77c
Author: Hiroyuki Sato <[email protected]>
AuthorDate: Tue Jul 21 14:31:46 2026 +0900
GH-50551: [CI][Dev] Fix shellcheck errors in the
ci/scripts/python_wheel_macos_build.sh (#50552)
### Rationale for this change
This is the sub issue #44748.
* SC2086: Double quote to prevent globbing and word splitting.
* SC2223: This default assignment may cause DoS due to globbing. Quote it.
* SC2006: Use `$(...)` notation instead of legacy backticked ``...``.
```
shellcheck ci/scripts/python_wheel_macos_build.sh
In ci/scripts/python_wheel_macos_build.sh line 28:
rm -rf ${build_dir}/build
^----------^ SC2086 (info): Double quote to prevent globbing and
word splitting.
Did you mean:
rm -rf "${build_dir}"/build
In ci/scripts/python_wheel_macos_build.sh line 29:
rm -rf ${build_dir}/install
^----------^ SC2086 (info): Double quote to prevent globbing and
word splitting.
Did you mean:
rm -rf "${build_dir}"/install
In ci/scripts/python_wheel_macos_build.sh line 30:
rm -rf ${source_dir}/python/dist
^-----------^ SC2086 (info): Double quote to prevent globbing and
word splitting.
Did you mean:
rm -rf "${source_dir}"/python/dist
In ci/scripts/python_wheel_macos_build.sh line 31:
rm -rf ${source_dir}/python/build
^-----------^ SC2086 (info): Double quote to prevent globbing and
word splitting.
Did you mean:
rm -rf "${source_dir}"/python/build
In ci/scripts/python_wheel_macos_build.sh line 32:
rm -rf ${source_dir}/python/pyarrow/*.so
^-----------^ SC2086 (info): Double quote to prevent globbing and
word splitting.
Did you mean:
rm -rf "${source_dir}"/python/pyarrow/*.so
In ci/scripts/python_wheel_macos_build.sh line 33:
rm -rf ${source_dir}/python/pyarrow/*.so.*
^-----------^ SC2086 (info): Double quote to prevent globbing and
word splitting.
Did you mean:
rm -rf "${source_dir}"/python/pyarrow/*.so.*
In ci/scripts/python_wheel_macos_build.sh line 40:
if [ $arch = "arm64" ]; then
^---^ SC2086 (info): Double quote to prevent globbing and word
splitting.
Did you mean:
if [ "$arch" = "arm64" ]; then
In ci/scripts/python_wheel_macos_build.sh line 42:
: ${ARROW_SIMD_LEVEL:="NEON"}
^-------------------------^ SC2223 (info): This default assignment may
cause DoS due to globbing. Quote it.
In ci/scripts/python_wheel_macos_build.sh line 43:
elif [ $arch = "x86_64" ]; then
^---^ SC2086 (info): Double quote to prevent globbing and word
splitting.
Did you mean:
elif [ "$arch" = "x86_64" ]; then
In ci/scripts/python_wheel_macos_build.sh line 45:
: ${ARROW_SIMD_LEVEL:="SSE4_2"}
^---------------------------^ SC2223 (info): This default assignment
may cause DoS due to globbing. Quote it.
In ci/scripts/python_wheel_macos_build.sh line 55:
-r ${source_dir}/python/requirements-wheel-build.txt
^-----------^ SC2086 (info): Double quote to prevent globbing and word
splitting.
Did you mean:
-r "${source_dir}"/python/requirements-wheel-build.txt
In ci/scripts/python_wheel_macos_build.sh line 59:
: ${ARROW_ACERO:=ON}
^----------------^ SC2223 (info): This default assignment may cause DoS
due to globbing. Quote it.
In ci/scripts/python_wheel_macos_build.sh line 60:
: ${ARROW_AZURE:=ON}
^----------------^ SC2223 (info): This default assignment may cause DoS
due to globbing. Quote it.
In ci/scripts/python_wheel_macos_build.sh line 61:
: ${ARROW_DATASET:=ON}
^------------------^ SC2223 (info): This default assignment may cause DoS
due to globbing. Quote it.
In ci/scripts/python_wheel_macos_build.sh line 62:
: ${ARROW_FLIGHT:=ON}
^-----------------^ SC2223 (info): This default assignment may cause DoS
due to globbing. Quote it.
In ci/scripts/python_wheel_macos_build.sh line 63:
: ${ARROW_GANDIVA:=OFF}
^-------------------^ SC2223 (info): This default assignment may cause
DoS due to globbing. Quote it.
In ci/scripts/python_wheel_macos_build.sh line 64:
: ${ARROW_GCS:=ON}
^--------------^ SC2223 (info): This default assignment may cause DoS due
to globbing. Quote it.
In ci/scripts/python_wheel_macos_build.sh line 65:
: ${ARROW_HDFS:=ON}
^---------------^ SC2223 (info): This default assignment may cause DoS
due to globbing. Quote it.
In ci/scripts/python_wheel_macos_build.sh line 66:
: ${ARROW_JEMALLOC:=ON}
^-------------------^ SC2223 (info): This default assignment may cause
DoS due to globbing. Quote it.
In ci/scripts/python_wheel_macos_build.sh line 67:
: ${ARROW_MIMALLOC:=ON}
^-------------------^ SC2223 (info): This default assignment may cause
DoS due to globbing. Quote it.
In ci/scripts/python_wheel_macos_build.sh line 68:
: ${ARROW_ORC:=ON}
^--------------^ SC2223 (info): This default assignment may cause DoS due
to globbing. Quote it.
In ci/scripts/python_wheel_macos_build.sh line 69:
: ${ARROW_PARQUET:=ON}
^------------------^ SC2223 (info): This default assignment may cause DoS
due to globbing. Quote it.
In ci/scripts/python_wheel_macos_build.sh line 70:
: ${PARQUET_REQUIRE_ENCRYPTION:=ON}
^-- SC2223 (info): This default assignment may cause DoS due to globbing.
Quote it.
In ci/scripts/python_wheel_macos_build.sh line 71:
: ${ARROW_SUBSTRAIT:=ON}
^--------------------^ SC2223 (info): This default assignment may cause
DoS due to globbing. Quote it.
In ci/scripts/python_wheel_macos_build.sh line 72:
: ${ARROW_S3:=ON}
^-------------^ SC2223 (info): This default assignment may cause DoS due
to globbing. Quote it.
In ci/scripts/python_wheel_macos_build.sh line 73:
: ${ARROW_TENSORFLOW:=ON}
^---------------------^ SC2223 (info): This default assignment may cause
DoS due to globbing. Quote it.
In ci/scripts/python_wheel_macos_build.sh line 74:
: ${ARROW_WITH_BROTLI:=ON}
^----------------------^ SC2223 (info): This default assignment may cause
DoS due to globbing. Quote it.
In ci/scripts/python_wheel_macos_build.sh line 75:
: ${ARROW_WITH_BZ2:=ON}
^-------------------^ SC2223 (info): This default assignment may cause
DoS due to globbing. Quote it.
In ci/scripts/python_wheel_macos_build.sh line 76:
: ${ARROW_WITH_LZ4:=ON}
^-------------------^ SC2223 (info): This default assignment may cause
DoS due to globbing. Quote it.
In ci/scripts/python_wheel_macos_build.sh line 77:
: ${ARROW_WITH_OPENTELEMETRY:=ON}
^-----------------------------^ SC2223 (info): This default assignment
may cause DoS due to globbing. Quote it.
In ci/scripts/python_wheel_macos_build.sh line 78:
: ${ARROW_WITH_SNAPPY:=ON}
^----------------------^ SC2223 (info): This default assignment may cause
DoS due to globbing. Quote it.
In ci/scripts/python_wheel_macos_build.sh line 79:
: ${ARROW_WITH_ZLIB:=ON}
^--------------------^ SC2223 (info): This default assignment may cause
DoS due to globbing. Quote it.
In ci/scripts/python_wheel_macos_build.sh line 80:
: ${ARROW_WITH_ZSTD:=ON}
^--------------------^ SC2223 (info): This default assignment may cause
DoS due to globbing. Quote it.
In ci/scripts/python_wheel_macos_build.sh line 81:
: ${CMAKE_BUILD_TYPE:=release}
^--------------------------^ SC2223 (info): This default assignment may
cause DoS due to globbing. Quote it.
In ci/scripts/python_wheel_macos_build.sh line 82:
: ${CMAKE_GENERATOR:=Ninja}
^-----------------------^ SC2223 (info): This default assignment may
cause DoS due to globbing. Quote it.
In ci/scripts/python_wheel_macos_build.sh line 83:
: ${CMAKE_UNITY_BUILD:=ON}
^----------------------^ SC2223 (info): This default assignment may cause
DoS due to globbing. Quote it.
In ci/scripts/python_wheel_macos_build.sh line 84:
: ${VCPKG_ROOT:=/opt/vcpkg}
^-----------------------^ SC2223 (info): This default assignment may
cause DoS due to globbing. Quote it.
In ci/scripts/python_wheel_macos_build.sh line 85:
: ${VCPKG_FEATURE_FLAGS:=-manifests}
^-- SC2223 (info): This default assignment may cause DoS due to globbing.
Quote it.
In ci/scripts/python_wheel_macos_build.sh line 86:
:
${VCPKG_TARGET_TRIPLET:=${VCPKG_DEFAULT_TRIPLET:-x64-osx-static-${CMAKE_BUILD_TYPE}}}
^-- SC2223 (info): This default assignment may cause DoS due to globbing.
Quote it.
In ci/scripts/python_wheel_macos_build.sh line 93:
echo "$_pbc: `$_pbc --version`"
^---------------^ SC2006 (style): Use $(...) notation instead
of legacy backticks `...`.
Did you mean:
echo "$_pbc: $($_pbc --version)"
In ci/scripts/python_wheel_macos_build.sh line 95:
mkdir -p ${build_dir}/build
^----------^ SC2086 (info): Double quote to prevent globbing and
word splitting.
Did you mean:
mkdir -p "${build_dir}"/build
In ci/scripts/python_wheel_macos_build.sh line 96:
pushd ${build_dir}/build
^----------^ SC2086 (info): Double quote to prevent globbing and word
splitting.
Did you mean:
pushd "${build_dir}"/build
In ci/scripts/python_wheel_macos_build.sh line 99:
-DARROW_ACERO=${ARROW_ACERO} \
^------------^ SC2086 (info): Double quote to prevent
globbing and word splitting.
Did you mean:
-DARROW_ACERO="${ARROW_ACERO}" \
In ci/scripts/python_wheel_macos_build.sh line 100:
-DARROW_AZURE=${ARROW_AZURE} \
^------------^ SC2086 (info): Double quote to prevent
globbing and word splitting.
Did you mean:
-DARROW_AZURE="${ARROW_AZURE}" \
In ci/scripts/python_wheel_macos_build.sh line 106:
-DARROW_DATASET=${ARROW_DATASET} \
^--------------^ SC2086 (info): Double quote to prevent
globbing and word splitting.
Did you mean:
-DARROW_DATASET="${ARROW_DATASET}" \
In ci/scripts/python_wheel_macos_build.sh line 110:
-DARROW_FLIGHT=${ARROW_FLIGHT} \
^-------------^ SC2086 (info): Double quote to prevent
globbing and word splitting.
Did you mean:
-DARROW_FLIGHT="${ARROW_FLIGHT}" \
In ci/scripts/python_wheel_macos_build.sh line 111:
-DARROW_GANDIVA=${ARROW_GANDIVA} \
^--------------^ SC2086 (info): Double quote to prevent
globbing and word splitting.
Did you mean:
-DARROW_GANDIVA="${ARROW_GANDIVA}" \
In ci/scripts/python_wheel_macos_build.sh line 112:
-DARROW_GCS=${ARROW_GCS} \
^----------^ SC2086 (info): Double quote to prevent
globbing and word splitting.
Did you mean:
-DARROW_GCS="${ARROW_GCS}" \
In ci/scripts/python_wheel_macos_build.sh line 113:
-DARROW_HDFS=${ARROW_HDFS} \
^-----------^ SC2086 (info): Double quote to prevent
globbing and word splitting.
Did you mean:
-DARROW_HDFS="${ARROW_HDFS}" \
In ci/scripts/python_wheel_macos_build.sh line 114:
-DARROW_JEMALLOC=${ARROW_JEMALLOC} \
^---------------^ SC2086 (info): Double quote to
prevent globbing and word splitting.
Did you mean:
-DARROW_JEMALLOC="${ARROW_JEMALLOC}" \
In ci/scripts/python_wheel_macos_build.sh line 116:
-DARROW_MIMALLOC=${ARROW_MIMALLOC} \
^---------------^ SC2086 (info): Double quote to
prevent globbing and word splitting.
Did you mean:
-DARROW_MIMALLOC="${ARROW_MIMALLOC}" \
In ci/scripts/python_wheel_macos_build.sh line 117:
-DARROW_ORC=${ARROW_ORC} \
^----------^ SC2086 (info): Double quote to prevent
globbing and word splitting.
Did you mean:
-DARROW_ORC="${ARROW_ORC}" \
In ci/scripts/python_wheel_macos_build.sh line 119:
-DARROW_PARQUET=${ARROW_PARQUET} \
^--------------^ SC2086 (info): Double quote to prevent
globbing and word splitting.
Did you mean:
-DARROW_PARQUET="${ARROW_PARQUET}" \
In ci/scripts/python_wheel_macos_build.sh line 121:
-DARROW_S3=${ARROW_S3} \
^---------^ SC2086 (info): Double quote to prevent globbing
and word splitting.
Did you mean:
-DARROW_S3="${ARROW_S3}" \
In ci/scripts/python_wheel_macos_build.sh line 122:
-DARROW_SIMD_LEVEL=${ARROW_SIMD_LEVEL} \
^-----------------^ SC2086 (info): Double quote to
prevent globbing and word splitting.
Did you mean:
-DARROW_SIMD_LEVEL="${ARROW_SIMD_LEVEL}" \
In ci/scripts/python_wheel_macos_build.sh line 123:
-DARROW_SUBSTRAIT=${ARROW_SUBSTRAIT} \
^----------------^ SC2086 (info): Double quote to
prevent globbing and word splitting.
Did you mean:
-DARROW_SUBSTRAIT="${ARROW_SUBSTRAIT}" \
In ci/scripts/python_wheel_macos_build.sh line 124:
-DARROW_TENSORFLOW=${ARROW_TENSORFLOW} \
^-----------------^ SC2086 (info): Double quote to
prevent globbing and word splitting.
Did you mean:
-DARROW_TENSORFLOW="${ARROW_TENSORFLOW}" \
In ci/scripts/python_wheel_macos_build.sh line 127:
-DARROW_WITH_BROTLI=${ARROW_WITH_BROTLI} \
^------------------^ SC2086 (info): Double quote to
prevent globbing and word splitting.
Did you mean:
-DARROW_WITH_BROTLI="${ARROW_WITH_BROTLI}" \
In ci/scripts/python_wheel_macos_build.sh line 128:
-DARROW_WITH_BZ2=${ARROW_WITH_BZ2} \
^---------------^ SC2086 (info): Double quote to
prevent globbing and word splitting.
Did you mean:
-DARROW_WITH_BZ2="${ARROW_WITH_BZ2}" \
In ci/scripts/python_wheel_macos_build.sh line 129:
-DARROW_WITH_LZ4=${ARROW_WITH_LZ4} \
^---------------^ SC2086 (info): Double quote to
prevent globbing and word splitting.
Did you mean:
-DARROW_WITH_LZ4="${ARROW_WITH_LZ4}" \
In ci/scripts/python_wheel_macos_build.sh line 130:
-DARROW_WITH_OPENTELEMETRY=${ARROW_WITH_OPENTELEMETRY} \
^-------------------------^ SC2086 (info):
Double quote to prevent globbing and word splitting.
Did you mean:
-DARROW_WITH_OPENTELEMETRY="${ARROW_WITH_OPENTELEMETRY}" \
In ci/scripts/python_wheel_macos_build.sh line 131:
-DARROW_WITH_SNAPPY=${ARROW_WITH_SNAPPY} \
^------------------^ SC2086 (info): Double quote to
prevent globbing and word splitting.
Did you mean:
-DARROW_WITH_SNAPPY="${ARROW_WITH_SNAPPY}" \
In ci/scripts/python_wheel_macos_build.sh line 132:
-DARROW_WITH_ZLIB=${ARROW_WITH_ZLIB} \
^----------------^ SC2086 (info): Double quote to
prevent globbing and word splitting.
Did you mean:
-DARROW_WITH_ZLIB="${ARROW_WITH_ZLIB}" \
In ci/scripts/python_wheel_macos_build.sh line 133:
-DARROW_WITH_ZSTD=${ARROW_WITH_ZSTD} \
^----------------^ SC2086 (info): Double quote to
prevent globbing and word splitting.
Did you mean:
-DARROW_WITH_ZSTD="${ARROW_WITH_ZSTD}" \
In ci/scripts/python_wheel_macos_build.sh line 135:
-DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} \
^-----------------^ SC2086 (info): Double quote to
prevent globbing and word splitting.
Did you mean:
-DCMAKE_BUILD_TYPE="${CMAKE_BUILD_TYPE}" \
In ci/scripts/python_wheel_macos_build.sh line 137:
-DCMAKE_INSTALL_PREFIX=${build_dir}/install \
^----------^ SC2086 (info): Double quote to
prevent globbing and word splitting.
Did you mean:
-DCMAKE_INSTALL_PREFIX="${build_dir}"/install \
In ci/scripts/python_wheel_macos_build.sh line 139:
-DCMAKE_UNITY_BUILD=${CMAKE_UNITY_BUILD} \
^------------------^ SC2086 (info): Double quote to
prevent globbing and word splitting.
Did you mean:
-DCMAKE_UNITY_BUILD="${CMAKE_UNITY_BUILD}" \
In ci/scripts/python_wheel_macos_build.sh line 140:
-DPARQUET_REQUIRE_ENCRYPTION=${PARQUET_REQUIRE_ENCRYPTION} \
^---------------------------^ SC2086
(info): Double quote to prevent globbing and word splitting.
Did you mean:
-DPARQUET_REQUIRE_ENCRYPTION="${PARQUET_REQUIRE_ENCRYPTION}" \
In ci/scripts/python_wheel_macos_build.sh line 142:
-DVCPKG_TARGET_TRIPLET=${VCPKG_TARGET_TRIPLET} \
^---------------------^ SC2086 (info): Double
quote to prevent globbing and word splitting.
Did you mean:
-DVCPKG_TARGET_TRIPLET="${VCPKG_TARGET_TRIPLET}" \
In ci/scripts/python_wheel_macos_build.sh line 144:
-G ${CMAKE_GENERATOR} \
^----------------^ SC2086 (info): Double quote to prevent globbing
and word splitting.
Did you mean:
-G "${CMAKE_GENERATOR}" \
In ci/scripts/python_wheel_macos_build.sh line 145:
${source_dir}/cpp
^-----------^ SC2086 (info): Double quote to prevent globbing and word
splitting.
Did you mean:
"${source_dir}"/cpp
In ci/scripts/python_wheel_macos_build.sh line 171:
pushd ${source_dir}/python
^-----------^ SC2086 (info): Double quote to prevent globbing and
word splitting.
Did you mean:
pushd "${source_dir}"/python
In ci/scripts/python_wheel_macos_build.sh line 174:
-C cmake.build-type=${CMAKE_BUILD_TYPE:-Debug} \
^------------------------^ SC2086 (info): Double
quote to prevent globbing and word splitting.
Did you mean:
-C cmake.build-type="${CMAKE_BUILD_TYPE:-Debug}" \
In ci/scripts/python_wheel_macos_build.sh line 180:
deps=$(delocate-listdeps ${source_dir}/python/dist/*.whl)
^-----------^ SC2086 (info): Double quote to
prevent globbing and word splitting.
Did you mean:
deps=$(delocate-listdeps "${source_dir}"/python/dist/*.whl)
In ci/scripts/python_wheel_macos_build.sh line 182:
if echo $deps | grep -v "^pyarrow/lib\(arrow\|gandiva\|parquet\)"; then
^---^ SC2086 (info): Double quote to prevent globbing and word
splitting.
Did you mean:
if echo "$deps" | grep -v "^pyarrow/lib\(arrow\|gandiva\|parquet\)"; then
In ci/scripts/python_wheel_macos_build.sh line 188:
mkdir -p ${source_dir}/python/repaired_wheels
^-----------^ SC2086 (info): Double quote to prevent globbing and
word splitting.
Did you mean:
mkdir -p "${source_dir}"/python/repaired_wheels
In ci/scripts/python_wheel_macos_build.sh line 189:
mv ${source_dir}/python/dist/*.whl ${source_dir}/python/repaired_wheels/
^-----------^ SC2086 (info): Double quote to prevent globbing and word
splitting.
^-----------^ SC2086 (info): Double
quote to prevent globbing and word splitting.
Did you mean:
mv "${source_dir}"/python/dist/*.whl "${source_dir}"/python/repaired_wheels/
For more information:
https://www.shellcheck.net/wiki/SC2086 -- Double quote to prevent
globbing ...
https://www.shellcheck.net/wiki/SC2223 -- This default assignment may
cause...
https://www.shellcheck.net/wiki/SC2006 -- Use $(...) notation instead of
le...
```
### What changes are included in this PR?
* SC2086: Quote variable expansions
* SC2223: Simplify default assignment
* SC2006: Replace backticks with `$(...)`
### Are these changes tested?
Yes.
### Are there any user-facing changes?
No.
* GitHub Issue: #50551
Lead-authored-by: Hiroyuki Sato <[email protected]>
Co-authored-by: Sutou Kouhei <[email protected]>
Signed-off-by: Sutou Kouhei <[email protected]>
---
.pre-commit-config.yaml | 1 +
ci/scripts/python_wheel_macos_build.sh | 198 ++++++++++++++++-----------------
2 files changed, 100 insertions(+), 99 deletions(-)
diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml
index 3d346ce1b4..8e5726cb53 100644
--- a/.pre-commit-config.yaml
+++ b/.pre-commit-config.yaml
@@ -335,6 +335,7 @@ repos:
?^ci/scripts/python_wheel_unix_test\.sh$|
?^ci/scripts/python_test_type_annotations\.sh$|
?^ci/scripts/python_test\.sh$|
+ ?^ci/scripts/python_wheel_macos_build\.sh$|
?^ci/scripts/r_build\.sh$|
?^ci/scripts/r_revdepcheck\.sh$|
?^ci/scripts/release_test\.sh$|
diff --git a/ci/scripts/python_wheel_macos_build.sh
b/ci/scripts/python_wheel_macos_build.sh
index 551d2151b5..a9afd91272 100755
--- a/ci/scripts/python_wheel_macos_build.sh
+++ b/ci/scripts/python_wheel_macos_build.sh
@@ -19,30 +19,30 @@
set -ex
-arch=${1}
-source_dir=${2}
-build_dir=${3}
+arch="${1}"
+source_dir="${2}"
+build_dir="${3}"
echo "=== (${PYTHON_VERSION}) Clear output directories and leftovers ==="
# Clear output directories and leftovers
-rm -rf ${build_dir}/build
-rm -rf ${build_dir}/install
-rm -rf ${source_dir}/python/dist
-rm -rf ${source_dir}/python/build
-rm -rf ${source_dir}/python/pyarrow/*.so
-rm -rf ${source_dir}/python/pyarrow/*.so.*
+rm -rf "${build_dir}/build"
+rm -rf "${build_dir}/install"
+rm -rf "${source_dir}/python/dist"
+rm -rf "${source_dir}/python/build"
+rm -rf "${source_dir}"/python/pyarrow/*.so
+rm -rf "${source_dir}"/python/pyarrow/*.so.*
echo "=== (${PYTHON_VERSION}) Set SDK, C++ and Wheel flags ==="
export _PYTHON_HOST_PLATFORM="macosx-${MACOSX_DEPLOYMENT_TARGET}-${arch}"
-export MACOSX_DEPLOYMENT_TARGET=${MACOSX_DEPLOYMENT_TARGET:-12.0}
-export SDKROOT=${SDKROOT:-$(xcrun --sdk macosx --show-sdk-path)}
+export MACOSX_DEPLOYMENT_TARGET="${MACOSX_DEPLOYMENT_TARGET:-12.0}"
+export SDKROOT="${SDKROOT:-$(xcrun --sdk macosx --show-sdk-path)}"
-if [ $arch = "arm64" ]; then
+if [ "$arch" = "arm64" ]; then
export CMAKE_OSX_ARCHITECTURES="arm64"
- : ${ARROW_SIMD_LEVEL:="NEON"}
-elif [ $arch = "x86_64" ]; then
+ : "${ARROW_SIMD_LEVEL:=NEON}"
+elif [ "$arch" = "x86_64" ]; then
export CMAKE_OSX_ARCHITECTURES="x86_64"
- : ${ARROW_SIMD_LEVEL:="SSE4_2"}
+ : "${ARROW_SIMD_LEVEL:=SSE4_2}"
else
echo "Unexpected architecture: $arch"
exit 1
@@ -52,97 +52,97 @@ pip install \
--force-reinstall \
--only-binary=:all: \
--upgrade \
- -r ${source_dir}/python/requirements-wheel-build.txt
+ -r "${source_dir}/python/requirements-wheel-build.txt"
pip install "delocate>=0.10.3"
echo "=== (${PYTHON_VERSION}) Building Arrow C++ libraries ==="
-: ${ARROW_ACERO:=ON}
-: ${ARROW_AZURE:=ON}
-: ${ARROW_DATASET:=ON}
-: ${ARROW_FLIGHT:=ON}
-: ${ARROW_GANDIVA:=OFF}
-: ${ARROW_GCS:=ON}
-: ${ARROW_HDFS:=ON}
-: ${ARROW_JEMALLOC:=ON}
-: ${ARROW_MIMALLOC:=ON}
-: ${ARROW_ORC:=ON}
-: ${ARROW_PARQUET:=ON}
-: ${PARQUET_REQUIRE_ENCRYPTION:=ON}
-: ${ARROW_SUBSTRAIT:=ON}
-: ${ARROW_S3:=ON}
-: ${ARROW_TENSORFLOW:=ON}
-: ${ARROW_WITH_BROTLI:=ON}
-: ${ARROW_WITH_BZ2:=ON}
-: ${ARROW_WITH_LZ4:=ON}
-: ${ARROW_WITH_OPENTELEMETRY:=ON}
-: ${ARROW_WITH_SNAPPY:=ON}
-: ${ARROW_WITH_ZLIB:=ON}
-: ${ARROW_WITH_ZSTD:=ON}
-: ${CMAKE_BUILD_TYPE:=release}
-: ${CMAKE_GENERATOR:=Ninja}
-: ${CMAKE_UNITY_BUILD:=ON}
-: ${VCPKG_ROOT:=/opt/vcpkg}
-: ${VCPKG_FEATURE_FLAGS:=-manifests}
-:
${VCPKG_TARGET_TRIPLET:=${VCPKG_DEFAULT_TRIPLET:-x64-osx-static-${CMAKE_BUILD_TYPE}}}
+: "${ARROW_ACERO:=ON}"
+: "${ARROW_AZURE:=ON}"
+: "${ARROW_DATASET:=ON}"
+: "${ARROW_FLIGHT:=ON}"
+: "${ARROW_GANDIVA:=OFF}"
+: "${ARROW_GCS:=ON}"
+: "${ARROW_HDFS:=ON}"
+: "${ARROW_JEMALLOC:=ON}"
+: "${ARROW_MIMALLOC:=ON}"
+: "${ARROW_ORC:=ON}"
+: "${ARROW_PARQUET:=ON}"
+: "${PARQUET_REQUIRE_ENCRYPTION:=ON}"
+: "${ARROW_SUBSTRAIT:=ON}"
+: "${ARROW_S3:=ON}"
+: "${ARROW_TENSORFLOW:=ON}"
+: "${ARROW_WITH_BROTLI:=ON}"
+: "${ARROW_WITH_BZ2:=ON}"
+: "${ARROW_WITH_LZ4:=ON}"
+: "${ARROW_WITH_OPENTELEMETRY:=ON}"
+: "${ARROW_WITH_SNAPPY:=ON}"
+: "${ARROW_WITH_ZLIB:=ON}"
+: "${ARROW_WITH_ZSTD:=ON}"
+: "${CMAKE_BUILD_TYPE:=release}"
+: "${CMAKE_GENERATOR:=Ninja}"
+: "${CMAKE_UNITY_BUILD:=ON}"
+: "${VCPKG_ROOT:=/opt/vcpkg}"
+: "${VCPKG_FEATURE_FLAGS:=-manifests}"
+:
"${VCPKG_TARGET_TRIPLET:=${VCPKG_DEFAULT_TRIPLET:-x64-osx-static-${CMAKE_BUILD_TYPE}}}"
echo "=== Protobuf compiler versions on PATH ==="
which -a protoc || echo "no protoc on PATH!"
echo "=== Protobuf compiler version from vcpkg ==="
-_pbc=${VCPKG_ROOT}/installed/${VCPKG_TARGET_TRIPLET}/tools/protobuf/protoc
-echo "$_pbc: `$_pbc --version`"
+_pbc="${VCPKG_ROOT}/installed/${VCPKG_TARGET_TRIPLET}/tools/protobuf/protoc"
+echo "$_pbc: $($_pbc --version)"
-mkdir -p ${build_dir}/build
-pushd ${build_dir}/build
+mkdir -p "${build_dir}/build"
+pushd "${build_dir}/build"
cmake \
- -DARROW_ACERO=${ARROW_ACERO} \
- -DARROW_AZURE=${ARROW_AZURE} \
+ -DARROW_ACERO="${ARROW_ACERO}" \
+ -DARROW_AZURE="${ARROW_AZURE}" \
-DARROW_BUILD_SHARED=ON \
-DARROW_BUILD_STATIC=OFF \
-DARROW_BUILD_TESTS=OFF \
-DARROW_COMPUTE=ON \
-DARROW_CSV=ON \
- -DARROW_DATASET=${ARROW_DATASET} \
+ -DARROW_DATASET="${ARROW_DATASET}" \
-DARROW_DEPENDENCY_SOURCE="VCPKG" \
-DARROW_DEPENDENCY_USE_SHARED=OFF \
-DARROW_FILESYSTEM=ON \
- -DARROW_FLIGHT=${ARROW_FLIGHT} \
- -DARROW_GANDIVA=${ARROW_GANDIVA} \
- -DARROW_GCS=${ARROW_GCS} \
- -DARROW_HDFS=${ARROW_HDFS} \
- -DARROW_JEMALLOC=${ARROW_JEMALLOC} \
+ -DARROW_FLIGHT="${ARROW_FLIGHT}" \
+ -DARROW_GANDIVA="${ARROW_GANDIVA}" \
+ -DARROW_GCS="${ARROW_GCS}" \
+ -DARROW_HDFS="${ARROW_HDFS}" \
+ -DARROW_JEMALLOC="${ARROW_JEMALLOC}" \
-DARROW_JSON=ON \
- -DARROW_MIMALLOC=${ARROW_MIMALLOC} \
- -DARROW_ORC=${ARROW_ORC} \
+ -DARROW_MIMALLOC="${ARROW_MIMALLOC}" \
+ -DARROW_ORC="${ARROW_ORC}" \
-DARROW_PACKAGE_KIND="python-wheel-macos" \
- -DARROW_PARQUET=${ARROW_PARQUET} \
+ -DARROW_PARQUET="${ARROW_PARQUET}" \
-DARROW_RPATH_ORIGIN=ON \
- -DARROW_S3=${ARROW_S3} \
- -DARROW_SIMD_LEVEL=${ARROW_SIMD_LEVEL} \
- -DARROW_SUBSTRAIT=${ARROW_SUBSTRAIT} \
- -DARROW_TENSORFLOW=${ARROW_TENSORFLOW} \
+ -DARROW_S3="${ARROW_S3}" \
+ -DARROW_SIMD_LEVEL="${ARROW_SIMD_LEVEL}" \
+ -DARROW_SUBSTRAIT="${ARROW_SUBSTRAIT}" \
+ -DARROW_TENSORFLOW="${ARROW_TENSORFLOW}" \
-DARROW_USE_CCACHE=ON \
-DARROW_VERBOSE_THIRDPARTY_BUILD=ON \
- -DARROW_WITH_BROTLI=${ARROW_WITH_BROTLI} \
- -DARROW_WITH_BZ2=${ARROW_WITH_BZ2} \
- -DARROW_WITH_LZ4=${ARROW_WITH_LZ4} \
- -DARROW_WITH_OPENTELEMETRY=${ARROW_WITH_OPENTELEMETRY} \
- -DARROW_WITH_SNAPPY=${ARROW_WITH_SNAPPY} \
- -DARROW_WITH_ZLIB=${ARROW_WITH_ZLIB} \
- -DARROW_WITH_ZSTD=${ARROW_WITH_ZSTD} \
+ -DARROW_WITH_BROTLI="${ARROW_WITH_BROTLI}" \
+ -DARROW_WITH_BZ2="${ARROW_WITH_BZ2}" \
+ -DARROW_WITH_LZ4="${ARROW_WITH_LZ4}" \
+ -DARROW_WITH_OPENTELEMETRY="${ARROW_WITH_OPENTELEMETRY}" \
+ -DARROW_WITH_SNAPPY="${ARROW_WITH_SNAPPY}" \
+ -DARROW_WITH_ZLIB="${ARROW_WITH_ZLIB}" \
+ -DARROW_WITH_ZSTD="${ARROW_WITH_ZSTD}" \
-DCMAKE_APPLE_SILICON_PROCESSOR=arm64 \
- -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} \
+ -DCMAKE_BUILD_TYPE="${CMAKE_BUILD_TYPE}" \
-DCMAKE_INSTALL_LIBDIR=lib \
- -DCMAKE_INSTALL_PREFIX=${build_dir}/install \
- -DCMAKE_OSX_ARCHITECTURES=${CMAKE_OSX_ARCHITECTURES} \
- -DCMAKE_UNITY_BUILD=${CMAKE_UNITY_BUILD} \
- -DPARQUET_REQUIRE_ENCRYPTION=${PARQUET_REQUIRE_ENCRYPTION} \
+ -DCMAKE_INSTALL_PREFIX="${build_dir}/install" \
+ -DCMAKE_OSX_ARCHITECTURES="${CMAKE_OSX_ARCHITECTURES}" \
+ -DCMAKE_UNITY_BUILD="${CMAKE_UNITY_BUILD}" \
+ -DPARQUET_REQUIRE_ENCRYPTION="${PARQUET_REQUIRE_ENCRYPTION}" \
-DVCPKG_MANIFEST_MODE=OFF \
- -DVCPKG_TARGET_TRIPLET=${VCPKG_TARGET_TRIPLET} \
+ -DVCPKG_TARGET_TRIPLET="${VCPKG_TARGET_TRIPLET}" \
-Dxsimd_SOURCE=BUNDLED \
- -G ${CMAKE_GENERATOR} \
- ${source_dir}/cpp
+ -G "${CMAKE_GENERATOR}" \
+ "${source_dir}/cpp"
cmake --build . --target install
popd
@@ -150,40 +150,40 @@ echo "=== (${PYTHON_VERSION}) Building wheel ==="
export PYARROW_BUNDLE_ARROW_CPP=ON
# TODO(GH-32609): Re-enable when pyarrow-stubs are shipped in wheels again.
# export PYARROW_REQUIRE_STUB_DOCSTRINGS=ON
-export PYARROW_WITH_ACERO=${ARROW_ACERO}
-export PYARROW_WITH_AZURE=${ARROW_AZURE}
-export PYARROW_WITH_DATASET=${ARROW_DATASET}
-export PYARROW_WITH_FLIGHT=${ARROW_FLIGHT}
-export PYARROW_WITH_GANDIVA=${ARROW_GANDIVA}
-export PYARROW_WITH_GCS=${ARROW_GCS}
-export PYARROW_WITH_HDFS=${ARROW_HDFS}
-export PYARROW_WITH_ORC=${ARROW_ORC}
-export PYARROW_WITH_PARQUET=${ARROW_PARQUET}
-export PYARROW_WITH_PARQUET_ENCRYPTION=${PARQUET_REQUIRE_ENCRYPTION}
-export PYARROW_WITH_SUBSTRAIT=${ARROW_SUBSTRAIT}
-export PYARROW_WITH_S3=${ARROW_S3}
-export ARROW_HOME=${build_dir}/install
+export PYARROW_WITH_ACERO="${ARROW_ACERO}"
+export PYARROW_WITH_AZURE="${ARROW_AZURE}"
+export PYARROW_WITH_DATASET="${ARROW_DATASET}"
+export PYARROW_WITH_FLIGHT="${ARROW_FLIGHT}"
+export PYARROW_WITH_GANDIVA="${ARROW_GANDIVA}"
+export PYARROW_WITH_GCS="${ARROW_GCS}"
+export PYARROW_WITH_HDFS="${ARROW_HDFS}"
+export PYARROW_WITH_ORC="${ARROW_ORC}"
+export PYARROW_WITH_PARQUET="${ARROW_PARQUET}"
+export PYARROW_WITH_PARQUET_ENCRYPTION="${PARQUET_REQUIRE_ENCRYPTION}"
+export PYARROW_WITH_SUBSTRAIT="${ARROW_SUBSTRAIT}"
+export PYARROW_WITH_S3="${ARROW_S3}"
+export ARROW_HOME="${build_dir}/install"
# PyArrow build configuration
-export CMAKE_PREFIX_PATH=${build_dir}/install
+export CMAKE_PREFIX_PATH="${build_dir}/install"
# Set PyArrow version explicitly
-export SETUPTOOLS_SCM_PRETEND_VERSION=${PYARROW_VERSION}
+export SETUPTOOLS_SCM_PRETEND_VERSION="${PYARROW_VERSION}"
-pushd ${source_dir}/python
+pushd "${source_dir}/python"
python -m build --sdist --wheel . --no-isolation \
-C build.verbose=true \
- -C cmake.build-type=${CMAKE_BUILD_TYPE:-Debug} \
+ -C cmake.build-type="${CMAKE_BUILD_TYPE:-Debug}" \
-C cmake.args="-DCMAKE_OSX_ARCHITECTURES=${CMAKE_OSX_ARCHITECTURES}" \
-C cmake.args="-DARROW_SIMD_LEVEL=${ARROW_SIMD_LEVEL}"
popd
echo "=== (${PYTHON_VERSION}) Show dynamic libraries the wheel depend on ==="
-deps=$(delocate-listdeps ${source_dir}/python/dist/*.whl)
+deps=$(delocate-listdeps "${source_dir}"/python/dist/*.whl)
-if echo $deps | grep -v "^pyarrow/lib\(arrow\|gandiva\|parquet\)"; then
+if echo "$deps" | grep -v "^pyarrow/lib\(arrow\|gandiva\|parquet\)"; then
echo "There are non-bundled shared library dependencies."
exit 1
fi
# Move the verified wheels
-mkdir -p ${source_dir}/python/repaired_wheels
-mv ${source_dir}/python/dist/*.whl ${source_dir}/python/repaired_wheels/
+mkdir -p "${source_dir}/python/repaired_wheels"
+mv "${source_dir}"/python/dist/*.whl "${source_dir}"/python/repaired_wheels/