This is an automated email from the ASF dual-hosted git repository.
raulcd 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 6db12f2ca7 GH-41696: [Python][Packaging] Bump MACOSX_DEPLOYMENT_TARGET
to 12 instead of 11 (#43137)
6db12f2ca7 is described below
commit 6db12f2ca7cccb5f90e1cd0e753d5e92fe3b17bd
Author: Raúl Cumplido <[email protected]>
AuthorDate: Thu Aug 29 13:36:17 2024 +0200
GH-41696: [Python][Packaging] Bump MACOSX_DEPLOYMENT_TARGET to 12 instead
of 11 (#43137)
### Rationale for this change
As shown on the associated issue there seems to be a problem with
`MACOSX_DEPLOYMENT_TARGET` 11 on the wheels.
### What changes are included in this PR?
Update `MACOSX_DEPLOYMENT_TARGET` everywhere to the latest supported macOS
version.
### Are these changes tested?
Via CI, even though the issue was not reproducible on CI.
### Are there any user-facing changes?
Yes, wheels won't be available for macOS 11 but those were crashing on the
previous release.
* GitHub Issue: #41696
Authored-by: Raúl Cumplido <[email protected]>
Signed-off-by: Raúl Cumplido <[email protected]>
---
.github/workflows/python.yml | 2 +-
ci/scripts/python_wheel_macos_build.sh | 2 +-
ci/vcpkg/arm64-osx-static-debug.cmake | 2 +-
ci/vcpkg/arm64-osx-static-release.cmake | 2 +-
ci/vcpkg/universal2-osx-static-debug.cmake | 2 +-
ci/vcpkg/universal2-osx-static-release.cmake | 2 +-
cpp/src/arrow/flight/CMakeLists.txt | 6 ++++++
dev/tasks/tasks.yml | 10 +++++-----
dev/tasks/verify-rc/github.macos.yml | 2 +-
python/CMakeLists.txt | 2 +-
ruby/red-arrow/ext/arrow/extconf.rb | 2 +-
11 files changed, 20 insertions(+), 14 deletions(-)
diff --git a/.github/workflows/python.yml b/.github/workflows/python.yml
index 916db2580e..854d792f31 100644
--- a/.github/workflows/python.yml
+++ b/.github/workflows/python.yml
@@ -163,7 +163,7 @@ jobs:
ARROW_BUILD_TESTS: OFF
PYARROW_TEST_LARGE_MEMORY: ON
# Current oldest supported version according to
https://endoflife.date/macos
- MACOSX_DEPLOYMENT_TARGET: 10.15
+ MACOSX_DEPLOYMENT_TARGET: 12.0
steps:
- name: Checkout Arrow
uses: actions/checkout@v4
diff --git a/ci/scripts/python_wheel_macos_build.sh
b/ci/scripts/python_wheel_macos_build.sh
index d5430f2674..92b962f174 100755
--- a/ci/scripts/python_wheel_macos_build.sh
+++ b/ci/scripts/python_wheel_macos_build.sh
@@ -34,7 +34,7 @@ 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:-10.15}
+export MACOSX_DEPLOYMENT_TARGET=${MACOSX_DEPLOYMENT_TARGET:-12.0}
export SDKROOT=${SDKROOT:-$(xcrun --sdk macosx --show-sdk-path)}
if [ $arch = "arm64" ]; then
diff --git a/ci/vcpkg/arm64-osx-static-debug.cmake
b/ci/vcpkg/arm64-osx-static-debug.cmake
index f511819a2e..32ae7bc433 100644
--- a/ci/vcpkg/arm64-osx-static-debug.cmake
+++ b/ci/vcpkg/arm64-osx-static-debug.cmake
@@ -21,6 +21,6 @@ set(VCPKG_LIBRARY_LINKAGE static)
set(VCPKG_CMAKE_SYSTEM_NAME Darwin)
set(VCPKG_OSX_ARCHITECTURES arm64)
-set(VCPKG_OSX_DEPLOYMENT_TARGET "11.0")
+set(VCPKG_OSX_DEPLOYMENT_TARGET "12.0")
set(VCPKG_BUILD_TYPE debug)
diff --git a/ci/vcpkg/arm64-osx-static-release.cmake
b/ci/vcpkg/arm64-osx-static-release.cmake
index 43d65efb26..dde46cd763 100644
--- a/ci/vcpkg/arm64-osx-static-release.cmake
+++ b/ci/vcpkg/arm64-osx-static-release.cmake
@@ -21,6 +21,6 @@ set(VCPKG_LIBRARY_LINKAGE static)
set(VCPKG_CMAKE_SYSTEM_NAME Darwin)
set(VCPKG_OSX_ARCHITECTURES arm64)
-set(VCPKG_OSX_DEPLOYMENT_TARGET "11.0")
+set(VCPKG_OSX_DEPLOYMENT_TARGET "12.0")
set(VCPKG_BUILD_TYPE release)
diff --git a/ci/vcpkg/universal2-osx-static-debug.cmake
b/ci/vcpkg/universal2-osx-static-debug.cmake
index 8abc1ebf83..d3ef0d67eb 100644
--- a/ci/vcpkg/universal2-osx-static-debug.cmake
+++ b/ci/vcpkg/universal2-osx-static-debug.cmake
@@ -21,6 +21,6 @@ set(VCPKG_LIBRARY_LINKAGE static)
set(VCPKG_CMAKE_SYSTEM_NAME Darwin)
set(VCPKG_OSX_ARCHITECTURES "x86_64;arm64")
-set(VCPKG_OSX_DEPLOYMENT_TARGET "10.15")
+set(VCPKG_OSX_DEPLOYMENT_TARGET "12.0")
set(VCPKG_BUILD_TYPE debug)
diff --git a/ci/vcpkg/universal2-osx-static-release.cmake
b/ci/vcpkg/universal2-osx-static-release.cmake
index 2eb36c1517..3018aa93e5 100644
--- a/ci/vcpkg/universal2-osx-static-release.cmake
+++ b/ci/vcpkg/universal2-osx-static-release.cmake
@@ -21,6 +21,6 @@ set(VCPKG_LIBRARY_LINKAGE static)
set(VCPKG_CMAKE_SYSTEM_NAME Darwin)
set(VCPKG_OSX_ARCHITECTURES "x86_64;arm64")
-set(VCPKG_OSX_DEPLOYMENT_TARGET "10.15")
+set(VCPKG_OSX_DEPLOYMENT_TARGET "12.0")
set(VCPKG_BUILD_TYPE release)
diff --git a/cpp/src/arrow/flight/CMakeLists.txt
b/cpp/src/arrow/flight/CMakeLists.txt
index 98f93705f6..835c4fc83b 100644
--- a/cpp/src/arrow/flight/CMakeLists.txt
+++ b/cpp/src/arrow/flight/CMakeLists.txt
@@ -26,6 +26,12 @@ endif()
if(WIN32)
list(APPEND ARROW_FLIGHT_LINK_LIBS ws2_32.lib)
endif()
+# Updating the MACOSX_DEPLOYMENT_TARGET to 12 required us to explicitly
+# link Flight with OpenSSL on macOS. Read this comment for more details:
+# https://github.com/apache/arrow/pull/43137#pullrequestreview-2267476893
+if(APPLE AND ARROW_USE_OPENSSL)
+ list(APPEND ARROW_FLIGHT_LINK_LIBS ${ARROW_OPENSSL_LIBS})
+endif()
set(ARROW_FLIGHT_TEST_LINKAGE "${ARROW_TEST_LINKAGE}")
if(Protobuf_USE_STATIC_LIBS)
diff --git a/dev/tasks/tasks.yml b/dev/tasks/tasks.yml
index cae34c3231..7f52fe7b05 100644
--- a/dev/tasks/tasks.yml
+++ b/dev/tasks/tasks.yml
@@ -413,7 +413,7 @@ tasks:
{############################## Wheel macOS
####################################}
-{% for macos_version, macos_codename in [("10.15", "catalina")] %}
+{% for macos_version, macos_codename in [("12.0", "monterey")] %}
{% set platform_tag = "macosx_{}_x86_64".format(macos_version.replace('.',
'_')) %}
wheel-macos-{{ macos_codename }}-{{ python_tag }}-amd64:
@@ -424,25 +424,25 @@ tasks:
arrow_jemalloc: "ON"
python_version: "{{ python_version }}"
macos_deployment_target: "{{ macos_version }}"
- runs_on: "macos-13"
+ runs_on: "macos-12"
vcpkg_arch: "amd64"
artifacts:
- pyarrow-{no_rc_version}-{{ python_tag }}-{{ abi_tag }}-{{ platform_tag
}}.whl
{% endfor %}
- wheel-macos-big-sur-{{ python_tag }}-arm64:
+ wheel-macos-monterey-{{ python_tag }}-arm64:
ci: github
template: python-wheels/github.osx.yml
params:
arch: "arm64"
arrow_jemalloc: "OFF"
python_version: "{{ python_version }}"
- macos_deployment_target: "11.0"
+ macos_deployment_target: "12.0"
runs_on: "macos-14"
vcpkg_arch: "arm64"
artifacts:
- - pyarrow-{no_rc_version}-{{ python_tag }}-{{ python_tag
}}-macosx_11_0_arm64.whl
+ - pyarrow-{no_rc_version}-{{ python_tag }}-{{ python_tag
}}-macosx_12_0_arm64.whl
{############################## Wheel Windows ################################}
diff --git a/dev/tasks/verify-rc/github.macos.yml
b/dev/tasks/verify-rc/github.macos.yml
index 4bc3fff71b..e2bc7895c6 100644
--- a/dev/tasks/verify-rc/github.macos.yml
+++ b/dev/tasks/verify-rc/github.macos.yml
@@ -22,7 +22,7 @@
{% set use_conda = use_conda|default(False) %}
# env: is generated by macros.github_header()
# Current oldest supported version according to https://endoflife.date/macos
- MACOSX_DEPLOYMENT_TARGET: "10.15"
+ MACOSX_DEPLOYMENT_TARGET: "12.0"
jobs:
verify:
diff --git a/python/CMakeLists.txt b/python/CMakeLists.txt
index 5d5eeaf815..1a18b2b173 100644
--- a/python/CMakeLists.txt
+++ b/python/CMakeLists.txt
@@ -84,7 +84,7 @@ set(CMAKE_MACOSX_RPATH 1)
if(DEFINED ENV{MACOSX_DEPLOYMENT_TARGET})
set(CMAKE_OSX_DEPLOYMENT_TARGET $ENV{MACOSX_DEPLOYMENT_TARGET})
else()
- set(CMAKE_OSX_DEPLOYMENT_TARGET 10.15)
+ set(CMAKE_OSX_DEPLOYMENT_TARGET 12.0)
endif()
# Generate a Clang compile_commands.json "compilation database" file for use
diff --git a/ruby/red-arrow/ext/arrow/extconf.rb
b/ruby/red-arrow/ext/arrow/extconf.rb
index 28ccd0b2d5..a3005cd56f 100644
--- a/ruby/red-arrow/ext/arrow/extconf.rb
+++ b/ruby/red-arrow/ext/arrow/extconf.rb
@@ -91,7 +91,7 @@ when /darwin/
symbols_in_external_bundles.each do |symbol|
$DLDFLAGS << " -Wl,-U,#{symbol}"
end
- mmacosx_version_min = "-mmacosx-version-min=10.15"
+ mmacosx_version_min = "-mmacosx-version-min=12.0"
$CFLAGS << " #{mmacosx_version_min}"
$CXXFLAGS << " #{mmacosx_version_min}"
end