From 4d5ff10a94787a7e41c73d8457826da774fe131a Mon Sep 17 00:00:00 2001 From: regro-cf-autotick-bot <36490558+regro-cf-autotick-bot@users.noreply.github.com> Date: Fri, 9 Oct 2026 08:44:01 +0000 Subject: [PATCH 1/7] updated v26.0.0 --- conda-forge.yml | 23 +++++++++++------------ recipe/meta.yaml | 6 +++--- 2 files changed, 14 insertions(+), 15 deletions(-) diff --git a/conda-forge.yml b/conda-forge.yml index f31df63d1..e81389ded 100644 --- a/conda-forge.yml +++ b/conda-forge.yml @@ -1,12 +1,10 @@ bot: abi_migration_branches: - - 24.x - - 23.x - - 22.x + - 24.x + - 23.x + - 22.x build_platform: - linux_aarch64: linux_64 linux_ppc64le: linux_64 - osx_arm64: osx_64 conda_build: pkg_format: '2' conda_forge_output_validation: true @@ -14,16 +12,17 @@ github: branch_name: main tooling_branch_name: main provider: - linux_aarch64: azure + linux_aarch64: default linux_ppc64le: azure + osx_arm64: default test: native_and_emulated workflow_settings: build_workspace_dir: - - os: win - value: C:\bld + - os: win + value: C:\bld free_disk_space: - - os: linux - value: quick + - os: linux + value: quick tools_install_dir: - - os: win - value: C:\Miniforge + - os: win + value: C:\Miniforge diff --git a/recipe/meta.yaml b/recipe/meta.yaml index 3d0dbc713..5543391e1 100644 --- a/recipe/meta.yaml +++ b/recipe/meta.yaml @@ -1,4 +1,4 @@ -{% set version = "25.0.0" %} +{% set version = "26.0.0" %} {% set cuda_enabled = cuda_compiler_version != "None" %} {% set build_ext_version = "5.0.0" %} {% set build_ext = "cuda" if cuda_enabled else "cpu" %} @@ -18,7 +18,7 @@ package: source: - url: https://www.apache.org/dyn/closer.lua/arrow/arrow-{{ version }}/apache-arrow-{{ version }}.tar.gz?action=download fn: apache-arrow-{{ version }}.tar.gz - sha256: 12afc2dc8137bdd4a68876cec939f664c9d55cfc7b75f55b45163ebb4e344d81 + sha256: b153ef472dd89ef4cb84867ca238f2a3a9347d8f4a78913d16ca2201606f0425 patches: # skip gcsfs tests due to missing `storage-testbench` - patches/0001-disable-gcsfs_test.patch @@ -37,7 +37,7 @@ source: folder: cpp/submodules/parquet-testing build: - number: 4 + number: 0 # for cuda support, building with one version is enough to be compatible with # all later versions, since arrow is only using libcuda, and not libcudart. skip: true # [cuda_compiler_version not in ("None", cuda_compiler_version_min)] From 855f7b61e17db1590c633fbece5ab26fecc6f216 Mon Sep 17 00:00:00 2001 From: regro-cf-autotick-bot <36490558+regro-cf-autotick-bot@users.noreply.github.com> Date: Fri, 9 Oct 2026 08:49:03 +0000 Subject: [PATCH 2/7] MNT: Re-rendered with conda-smithy 2026.9.23 and conda-forge-pinning 2026.10.08.16.59.0 --- .azure-pipelines/azure-pipelines-osx.yml | 2 +- ...er_version12.9cxx_compiler_version14.yaml} | 2 +- ...er_versionNonecxx_compiler_version15.yaml} | 6 +-- ...er_version12.9cxx_compiler_version14.yaml} | 4 +- ...er_versionNonecxx_compiler_version15.yaml} | 8 ++-- .ci_support/linux_ppc64le_.yaml | 6 +-- .ci_support/migrations/libgoogle_cloud38.yaml | 46 ------------------- .ci_support/osx_64_.yaml | 2 +- .ci_support/osx_arm64_.yaml | 2 +- .../win_64_cuda_compiler_version12.9.yaml | 2 +- .../win_64_cuda_compiler_versionNone.yaml | 2 +- .github/workflows/conda-build.yml | 16 +++---- .scripts/build_steps.sh | 2 +- .scripts/run_osx_build.sh | 2 +- .scripts/run_win_build.bat | 5 +- README.md | 19 +++----- 16 files changed, 37 insertions(+), 89 deletions(-) rename .ci_support/{linux_64_cuda_compiler_version12.9.yaml => linux_64_c_compiler_version14c_stdlib_version2.17cuda_compiler_version12.9cxx_compiler_version14.yaml} (99%) rename .ci_support/{linux_64_cuda_compiler_versionNone.yaml => linux_64_c_compiler_version15c_stdlib_version2.17cuda_compiler_versionNonecxx_compiler_version15.yaml} (97%) rename .ci_support/{linux_aarch64_cuda_compiler_version12.9.yaml => linux_aarch64_c_compiler_version14c_stdlib_version2.17cuda_compiler_version12.9cxx_compiler_version14.yaml} (94%) rename .ci_support/{linux_aarch64_cuda_compiler_versionNone.yaml => linux_aarch64_c_compiler_version15c_stdlib_version2.17cuda_compiler_versionNonecxx_compiler_version15.yaml} (93%) delete mode 100644 .ci_support/migrations/libgoogle_cloud38.yaml diff --git a/.azure-pipelines/azure-pipelines-osx.yml b/.azure-pipelines/azure-pipelines-osx.yml index 04774f010..bfe94b16b 100644 --- a/.azure-pipelines/azure-pipelines-osx.yml +++ b/.azure-pipelines/azure-pipelines-osx.yml @@ -21,7 +21,7 @@ jobs: osx_arm64_: CONFIG: osx_arm64_ UPLOAD_PACKAGES: 'True' - VMIMAGE: macOS-15 + VMIMAGE: macOS-15-arm64 build_workspace_dir: ~/miniforge3/conda-bld free_disk_space: skip pagefile_size: 0 diff --git a/.ci_support/linux_64_cuda_compiler_version12.9.yaml b/.ci_support/linux_64_c_compiler_version14c_stdlib_version2.17cuda_compiler_version12.9cxx_compiler_version14.yaml similarity index 99% rename from .ci_support/linux_64_cuda_compiler_version12.9.yaml rename to .ci_support/linux_64_c_compiler_version14c_stdlib_version2.17cuda_compiler_version12.9cxx_compiler_version14.yaml index 02323ab9b..c106947bb 100644 --- a/.ci_support/linux_64_cuda_compiler_version12.9.yaml +++ b/.ci_support/linux_64_c_compiler_version14c_stdlib_version2.17cuda_compiler_version12.9cxx_compiler_version14.yaml @@ -1,5 +1,5 @@ aws_crt_cpp: -- 0.40.1 +- 0.42.3 aws_sdk_cpp: - 1.11.833 azure_core_cpp: diff --git a/.ci_support/linux_64_cuda_compiler_versionNone.yaml b/.ci_support/linux_64_c_compiler_version15c_stdlib_version2.17cuda_compiler_versionNonecxx_compiler_version15.yaml similarity index 97% rename from .ci_support/linux_64_cuda_compiler_versionNone.yaml rename to .ci_support/linux_64_c_compiler_version15c_stdlib_version2.17cuda_compiler_versionNonecxx_compiler_version15.yaml index 44fea9bf5..45687d091 100644 --- a/.ci_support/linux_64_cuda_compiler_versionNone.yaml +++ b/.ci_support/linux_64_c_compiler_version15c_stdlib_version2.17cuda_compiler_versionNonecxx_compiler_version15.yaml @@ -1,5 +1,5 @@ aws_crt_cpp: -- 0.40.1 +- 0.42.3 aws_sdk_cpp: - 1.11.833 azure_core_cpp: @@ -17,7 +17,7 @@ bzip2: c_compiler: - gcc c_compiler_version: -- '14' +- '15' c_stdlib: - sysroot c_stdlib_version: @@ -35,7 +35,7 @@ cuda_compiler_version_min: cxx_compiler: - gxx cxx_compiler_version: -- '14' +- '15' docker_image: - quay.io/condaforge/linux-anvil-x86_64:alma10 gflags: diff --git a/.ci_support/linux_aarch64_cuda_compiler_version12.9.yaml b/.ci_support/linux_aarch64_c_compiler_version14c_stdlib_version2.17cuda_compiler_version12.9cxx_compiler_version14.yaml similarity index 94% rename from .ci_support/linux_aarch64_cuda_compiler_version12.9.yaml rename to .ci_support/linux_aarch64_c_compiler_version14c_stdlib_version2.17cuda_compiler_version12.9cxx_compiler_version14.yaml index 67a4259eb..28952fbfd 100644 --- a/.ci_support/linux_aarch64_cuda_compiler_version12.9.yaml +++ b/.ci_support/linux_aarch64_c_compiler_version14c_stdlib_version2.17cuda_compiler_version12.9cxx_compiler_version14.yaml @@ -1,5 +1,5 @@ aws_crt_cpp: -- 0.40.1 +- 0.42.3 aws_sdk_cpp: - 1.11.833 azure_core_cpp: @@ -37,7 +37,7 @@ cxx_compiler: cxx_compiler_version: - '14' docker_image: -- quay.io/condaforge/linux-anvil-x86_64:alma10 +- quay.io/condaforge/linux-anvil-aarch64:alma10 gflags: - '2.3' glog: diff --git a/.ci_support/linux_aarch64_cuda_compiler_versionNone.yaml b/.ci_support/linux_aarch64_c_compiler_version15c_stdlib_version2.17cuda_compiler_versionNonecxx_compiler_version15.yaml similarity index 93% rename from .ci_support/linux_aarch64_cuda_compiler_versionNone.yaml rename to .ci_support/linux_aarch64_c_compiler_version15c_stdlib_version2.17cuda_compiler_versionNonecxx_compiler_version15.yaml index 7a535f7f0..a7c49f668 100644 --- a/.ci_support/linux_aarch64_cuda_compiler_versionNone.yaml +++ b/.ci_support/linux_aarch64_c_compiler_version15c_stdlib_version2.17cuda_compiler_versionNonecxx_compiler_version15.yaml @@ -1,5 +1,5 @@ aws_crt_cpp: -- 0.40.1 +- 0.42.3 aws_sdk_cpp: - 1.11.833 azure_core_cpp: @@ -17,7 +17,7 @@ bzip2: c_compiler: - gcc c_compiler_version: -- '14' +- '15' c_stdlib: - sysroot c_stdlib_version: @@ -35,9 +35,9 @@ cuda_compiler_version_min: cxx_compiler: - gxx cxx_compiler_version: -- '14' +- '15' docker_image: -- quay.io/condaforge/linux-anvil-x86_64:alma10 +- quay.io/condaforge/linux-anvil-aarch64:alma10 gflags: - '2.3' glog: diff --git a/.ci_support/linux_ppc64le_.yaml b/.ci_support/linux_ppc64le_.yaml index 8cfdd1f25..649266cfb 100644 --- a/.ci_support/linux_ppc64le_.yaml +++ b/.ci_support/linux_ppc64le_.yaml @@ -1,5 +1,5 @@ aws_crt_cpp: -- 0.40.1 +- 0.42.3 aws_sdk_cpp: - 1.11.833 azure_core_cpp: @@ -17,7 +17,7 @@ bzip2: c_compiler: - gcc c_compiler_version: -- '14' +- '15' c_stdlib: - sysroot c_stdlib_version: @@ -33,7 +33,7 @@ cuda_compiler_version_min: cxx_compiler: - gxx cxx_compiler_version: -- '14' +- '15' docker_image: - quay.io/condaforge/linux-anvil-x86_64:alma10 gflags: diff --git a/.ci_support/migrations/libgoogle_cloud38.yaml b/.ci_support/migrations/libgoogle_cloud38.yaml deleted file mode 100644 index fc6f92532..000000000 --- a/.ci_support/migrations/libgoogle_cloud38.yaml +++ /dev/null @@ -1,46 +0,0 @@ -__migrator: - build_number: 1 - commit_message: Rebuild for libgoogle_cloud 3.8 - kind: version - migration_number: 1 -google_cloud_cpp: -- '3.8' -libgoogle_cloud: -- '3.8' -libgoogle_cloud_aiplatform_devel: -- '3.8' -libgoogle_cloud_all_devel: -- '3.8' -libgoogle_cloud_automl_devel: -- '3.8' -libgoogle_cloud_bigquery_devel: -- '3.8' -libgoogle_cloud_bigtable_devel: -- '3.8' -libgoogle_cloud_compute_devel: -- '3.8' -libgoogle_cloud_devel: -- '3.8' -libgoogle_cloud_dialogflow_cx_devel: -- '3.8' -libgoogle_cloud_dialogflow_es_devel: -- '3.8' -libgoogle_cloud_discoveryengine_devel: -- '3.8' -libgoogle_cloud_dlp_devel: -- '3.8' -libgoogle_cloud_iam_devel: -- '3.8' -libgoogle_cloud_oauth2_devel: -- '3.8' -libgoogle_cloud_policytroubleshooter_devel: -- '3.8' -libgoogle_cloud_pubsub_devel: -- '3.8' -libgoogle_cloud_spanner_devel: -- '3.8' -libgoogle_cloud_speech_devel: -- '3.8' -libgoogle_cloud_storage_devel: -- '3.8' -migrator_ts: 1786233804.752991 diff --git a/.ci_support/osx_64_.yaml b/.ci_support/osx_64_.yaml index d2a729699..a6352844b 100644 --- a/.ci_support/osx_64_.yaml +++ b/.ci_support/osx_64_.yaml @@ -3,7 +3,7 @@ MACOSX_DEPLOYMENT_TARGET: MACOSX_SDK_VERSION: - '12.0' aws_crt_cpp: -- 0.40.1 +- 0.42.3 aws_sdk_cpp: - 1.11.833 azure_core_cpp: diff --git a/.ci_support/osx_arm64_.yaml b/.ci_support/osx_arm64_.yaml index e93b2f81e..e7508cf8f 100644 --- a/.ci_support/osx_arm64_.yaml +++ b/.ci_support/osx_arm64_.yaml @@ -3,7 +3,7 @@ MACOSX_DEPLOYMENT_TARGET: MACOSX_SDK_VERSION: - '12.0' aws_crt_cpp: -- 0.40.1 +- 0.42.3 aws_sdk_cpp: - 1.11.833 azure_core_cpp: diff --git a/.ci_support/win_64_cuda_compiler_version12.9.yaml b/.ci_support/win_64_cuda_compiler_version12.9.yaml index 429237440..e7094d12e 100644 --- a/.ci_support/win_64_cuda_compiler_version12.9.yaml +++ b/.ci_support/win_64_cuda_compiler_version12.9.yaml @@ -1,5 +1,5 @@ aws_crt_cpp: -- 0.40.1 +- 0.42.3 aws_sdk_cpp: - 1.11.833 azure_core_cpp: diff --git a/.ci_support/win_64_cuda_compiler_versionNone.yaml b/.ci_support/win_64_cuda_compiler_versionNone.yaml index c6da457e1..f46bbbdba 100644 --- a/.ci_support/win_64_cuda_compiler_versionNone.yaml +++ b/.ci_support/win_64_cuda_compiler_versionNone.yaml @@ -1,5 +1,5 @@ aws_crt_cpp: -- 0.40.1 +- 0.42.3 aws_sdk_cpp: - 1.11.833 azure_core_cpp: diff --git a/.github/workflows/conda-build.yml b/.github/workflows/conda-build.yml index 1483470c4..0b496748b 100644 --- a/.github/workflows/conda-build.yml +++ b/.github/workflows/conda-build.yml @@ -22,7 +22,7 @@ jobs: max-parallel: 50 matrix: include: - - CONFIG: linux_64_cuda_compiler_version12.9 + - CONFIG: linux_64_c_compiler_version14c_stdlib_version2.17cuda_compiler_version12.9cxx_compiler_version14 DOCKER_IMAGE: quay.io/condaforge/linux-anvil-x86_64:alma10 STORE_BUILD_ARTIFACTS: False UPLOAD_PACKAGES: True @@ -34,7 +34,7 @@ jobs: resize_partitions: False runs_on: ['ubuntu-latest'] tools_install_dir: ~/miniforge3 - - CONFIG: linux_64_cuda_compiler_versionNone + - CONFIG: linux_64_c_compiler_version15c_stdlib_version2.17cuda_compiler_versionNonecxx_compiler_version15 DOCKER_IMAGE: quay.io/condaforge/linux-anvil-x86_64:alma10 STORE_BUILD_ARTIFACTS: False UPLOAD_PACKAGES: True @@ -46,8 +46,8 @@ jobs: resize_partitions: False runs_on: ['ubuntu-latest'] tools_install_dir: ~/miniforge3 - - CONFIG: linux_aarch64_cuda_compiler_version12.9 - DOCKER_IMAGE: quay.io/condaforge/linux-anvil-x86_64:alma10 + - CONFIG: linux_aarch64_c_compiler_version14c_stdlib_version2.17cuda_compiler_version12.9cxx_compiler_version14 + DOCKER_IMAGE: quay.io/condaforge/linux-anvil-aarch64:alma10 STORE_BUILD_ARTIFACTS: False UPLOAD_PACKAGES: True build_workspace_dir: build_artifacts @@ -56,10 +56,10 @@ jobs: os: ubuntu pagefile_size: 0 resize_partitions: False - runs_on: ['ubuntu-latest'] + runs_on: ['ubuntu-24.04-arm'] tools_install_dir: ~/miniforge3 - - CONFIG: linux_aarch64_cuda_compiler_versionNone - DOCKER_IMAGE: quay.io/condaforge/linux-anvil-x86_64:alma10 + - CONFIG: linux_aarch64_c_compiler_version15c_stdlib_version2.17cuda_compiler_versionNonecxx_compiler_version15 + DOCKER_IMAGE: quay.io/condaforge/linux-anvil-aarch64:alma10 STORE_BUILD_ARTIFACTS: False UPLOAD_PACKAGES: True build_workspace_dir: build_artifacts @@ -68,7 +68,7 @@ jobs: os: ubuntu pagefile_size: 0 resize_partitions: False - runs_on: ['ubuntu-latest'] + runs_on: ['ubuntu-24.04-arm'] tools_install_dir: ~/miniforge3 - CONFIG: linux_ppc64le_ DOCKER_IMAGE: quay.io/condaforge/linux-anvil-x86_64:alma10 diff --git a/.scripts/build_steps.sh b/.scripts/build_steps.sh index 484acddad..28dfd13df 100755 --- a/.scripts/build_steps.sh +++ b/.scripts/build_steps.sh @@ -36,7 +36,7 @@ mv /opt/conda/conda-meta/history /opt/conda/conda-meta/history.$(date +%Y-%m-%d- echo > /opt/conda/conda-meta/history micromamba install --root-prefix ~/.conda --prefix /opt/conda \ --yes --override-channels --channel conda-forge --strict-channel-priority \ - pip python=3.12 conda-build conda-forge-ci-setup=4 "conda-build>=26.3" + pip python=3.14 conda-build conda-forge-ci-setup=4 "conda-build>=26.3" export CONDA_LIBMAMBA_SOLVER_NO_CHANNELS_FROM_INSTALLED=1 # set up the condarc diff --git a/.scripts/run_osx_build.sh b/.scripts/run_osx_build.sh index 9d7c39125..aff5569d0 100755 --- a/.scripts/run_osx_build.sh +++ b/.scripts/run_osx_build.sh @@ -26,7 +26,7 @@ chmod +x "${micromamba_exe}" echo "Creating environment" "${micromamba_exe}" create --yes --root-prefix "${MAMBA_ROOT_PREFIX}" --prefix "${MINIFORGE_HOME}" \ --channel conda-forge \ - pip python=3.12 conda-build conda-forge-ci-setup=4 "conda-build>=26.3" + pip python=3.14 conda-build conda-forge-ci-setup=4 "conda-build>=26.3" echo "Moving pkgs cache from ${MAMBA_ROOT_PREFIX} to ${MINIFORGE_HOME}" mv "${MAMBA_ROOT_PREFIX}/pkgs" "${MINIFORGE_HOME}" echo "Cleaning up micromamba" diff --git a/.scripts/run_win_build.bat b/.scripts/run_win_build.bat index 06f61b83b..e11c3ecf8 100755 --- a/.scripts/run_win_build.bat +++ b/.scripts/run_win_build.bat @@ -31,7 +31,7 @@ if !errorlevel! neq 0 exit /b !errorlevel! echo Creating environment call "%MICROMAMBA_EXE%" create --yes --root-prefix "%MAMBA_ROOT_PREFIX%" --prefix "%MINIFORGE_HOME%" ^ --channel conda-forge ^ - pip python=3.12 conda-build conda-forge-ci-setup=4 "conda-build>=26.3" + pip python=3.14 conda-build conda-forge-ci-setup=4 "conda-build>=26.3" if !errorlevel! neq 0 exit /b !errorlevel! echo Removing %MAMBA_ROOT_PREFIX% del /S /Q "%MAMBA_ROOT_PREFIX%" >nul @@ -42,7 +42,8 @@ call :start_group "Configuring conda" :: Activate the base conda environment echo Activating environment -call "%MINIFORGE_HOME%\Scripts\activate.bat" +set "CONDA_EXE=%MINIFORGE_HOME%\Scripts\conda.exe" +call "%MINIFORGE_HOME%\condabin\conda.bat" activate "%MINIFORGE_HOME%" :: Configure the solver set "CONDA_SOLVER=libmamba" if !errorlevel! neq 0 exit /b !errorlevel! diff --git a/README.md b/README.md index e7d298050..fdc938030 100644 --- a/README.md +++ b/README.md @@ -146,31 +146,24 @@ Current build status - - - - + - + - + From fe4f6684e4b3d22be6dd5a65bef60462fbf2f31a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ra=C3=BAl=20Cumplido?= Date: Fri, 16 Oct 2026 12:18:32 +0200 Subject: [PATCH 3/7] Add changes for Arrow S3 split and migration for AWS sdk --- .../migrations/aws_c_startofaugust26.yaml | 24 ++++++++ recipe/install-libarrow.bat | 6 ++ recipe/install-libarrow.sh | 5 ++ recipe/meta.yaml | 58 ++++++++++++++++++- 4 files changed, 90 insertions(+), 3 deletions(-) create mode 100644 .ci_support/migrations/aws_c_startofaugust26.yaml diff --git a/.ci_support/migrations/aws_c_startofaugust26.yaml b/.ci_support/migrations/aws_c_startofaugust26.yaml new file mode 100644 index 000000000..4c1738314 --- /dev/null +++ b/.ci_support/migrations/aws_c_startofaugust26.yaml @@ -0,0 +1,24 @@ +__migrator: + build_number: 1 + commit_message: Rebuild for aws-c-* (start-of-august'26) + kind: version + migration_number: 1 + exclude_pinned_pkgs: false + automerge: true +migrator_ts: 1785855565 +aws_c_cal: + - '0.9.15' +aws_c_common: + - '0.14.4' +aws_c_io: + - '0.27.5' +aws_c_mqtt: + - '0.16.1' +aws_c_s3: + - '0.13.7' +aws_c_sdkutils: + - '0.2.10' +aws_crt_cpp: + - '0.43.6' +aws_c_auth: + - '0.10.5' diff --git a/recipe/install-libarrow.bat b/recipe/install-libarrow.bat index 1f9ad06a4..ac37cca74 100644 --- a/recipe/install-libarrow.bat +++ b/recipe/install-libarrow.bat @@ -64,6 +64,12 @@ if [%PKG_NAME%] == [libarrow] ( move .\temp_prefix\lib\cmake\Gandiva\* %LIBRARY_LIB%\cmake\Gandiva mkdir %LIBRARY_PREFIX%\include\gandiva xcopy /s /y .\temp_prefix\include\gandiva %LIBRARY_PREFIX%\include\gandiva +) else if [%PKG_NAME%] == [libarrow-s3] ( + move .\temp_prefix\lib\arrow_s3.lib %LIBRARY_LIB% + move .\temp_prefix\bin\arrow_s3.dll %LIBRARY_BIN% + copy .\temp_prefix\lib\pkgconfig\arrow-s3.pc %LIBRARY_LIB%\pkgconfig + mkdir %LIBRARY_LIB%\cmake\ArrowS3 + move .\temp_prefix\lib\cmake\ArrowS3\* %LIBRARY_LIB%\cmake\ArrowS3 ) else if [%PKG_NAME%] == [libarrow-substrait] ( move .\temp_prefix\lib\arrow_substrait.lib %LIBRARY_LIB% move .\temp_prefix\bin\arrow_substrait.dll %LIBRARY_BIN% diff --git a/recipe/install-libarrow.sh b/recipe/install-libarrow.sh index 6ef3854b8..111e81bae 100644 --- a/recipe/install-libarrow.sh +++ b/recipe/install-libarrow.sh @@ -62,6 +62,11 @@ elif [[ "${PKG_NAME}" == "libarrow-gandiva" ]]; then cp ./temp_prefix/lib/pkgconfig/gandiva.pc $PREFIX/lib/pkgconfig cp -R ./temp_prefix/lib/cmake/Gandiva/. $PREFIX/lib/cmake/Gandiva cp -R ./temp_prefix/include/gandiva/. $PREFIX/include/gandiva +elif [[ "${PKG_NAME}" == "libarrow-s3" ]]; then + # only libarrow-s3 + cp -a ./temp_prefix/lib/libarrow_s3.* $PREFIX/lib + cp ./temp_prefix/lib/pkgconfig/arrow-s3.pc $PREFIX/lib/pkgconfig + cp -R ./temp_prefix/lib/cmake/ArrowS3/. $PREFIX/lib/cmake/ArrowS3 elif [[ "${PKG_NAME}" == "libarrow-substrait" ]]; then # only libarrow-substrait cp -a ./temp_prefix/lib/libarrow_substrait.* $PREFIX/lib diff --git a/recipe/meta.yaml b/recipe/meta.yaml index 5543391e1..32a0373eb 100644 --- a/recipe/meta.yaml +++ b/recipe/meta.yaml @@ -141,6 +141,7 @@ outputs: - {{ pin_subpackage("libarrow-flight", max_pin="x.x") }} - {{ pin_subpackage("libarrow-flight-sql", max_pin="x.x") }} - {{ pin_subpackage("libarrow-gandiva", max_pin="x.x") }} + - {{ pin_subpackage("libarrow-s3", max_pin="x.x") }} - {{ pin_subpackage("libarrow-substrait", max_pin="x.x") }} - {{ pin_subpackage("libparquet", max_pin="x.x") }} requirements: @@ -155,6 +156,7 @@ outputs: - {{ pin_subpackage("libarrow-flight", exact=True) }} - {{ pin_subpackage("libarrow-flight-sql", exact=True) }} - {{ pin_subpackage("libarrow-gandiva", exact=True) }} + - {{ pin_subpackage("libarrow-s3", exact=True) }} - {{ pin_subpackage("libarrow-substrait", exact=True) }} - {{ pin_subpackage("libparquet", exact=True) }} - {{ pin_subpackage("arrow-utils", exact=True) }} @@ -167,6 +169,7 @@ outputs: - {{ pin_subpackage("libarrow-flight", exact=True) }} - {{ pin_subpackage("libarrow-flight-sql", exact=True) }} - {{ pin_subpackage("libarrow-gandiva", exact=True) }} + - {{ pin_subpackage("libarrow-s3", exact=True) }} - {{ pin_subpackage("libarrow-substrait", exact=True) }} - {{ pin_subpackage("libparquet", exact=True) }} - {{ pin_subpackage("arrow-utils", exact=True) }} @@ -218,8 +221,7 @@ outputs: - {{ compiler("cxx") }} - {{ compiler("cuda") }} # [cuda_compiler_version != "None"] host: - - aws-crt-cpp - - aws-sdk-cpp + # aws-crt-cpp & aws-sdk-cpp are only needed by libarrow-s3 - azure-core-cpp - azure-identity-cpp - azure-storage-blobs-cpp @@ -291,7 +293,7 @@ outputs: {% set libs = [ "arrow_acero", "arrow_dataset", "arrow_flight", - "arrow_flight_sql", "arrow_substrait", "gandiva", "parquet" + "arrow_flight_sql", "arrow_s3", "arrow_substrait", "gandiva", "parquet" ] %} {% for each_lib in libs %} # absence of libraries that belong in other outputs @@ -621,6 +623,56 @@ outputs: - LICENSE.txt summary: C++ libraries for Apache Arrow Gandiva + - name: libarrow-s3 + script: install-libarrow.sh # [unix] + script: install-libarrow.bat # [win] + version: {{ version }} + build: + string: h{{ PKG_HASH }}_{{ PKG_BUILDNUM }}_{{ build_ext }} + run_exports: + - {{ pin_subpackage("libarrow-s3", max_pin="x.x") }} + requirements: + build: + - cmake + - ninja + # for strong run-exports + - {{ stdlib("c") }} + - {{ compiler("c") }} + - {{ compiler("cxx") }} + host: + - {{ pin_subpackage("libarrow", exact=True) }} + - aws-crt-cpp + - aws-sdk-cpp + - libabseil # [osx] + - libprotobuf # [osx] + - libopentelemetry-cpp # [osx] + run: + - {{ pin_subpackage("libarrow", exact=True) }} + # run-constraints handled by libarrow, since we depend on it with exact=True + + test: + commands: + # headers (installed as part of libarrow) + - test -f $PREFIX/include/arrow/filesystem/s3fs.h # [unix] + - if not exist %LIBRARY_INC%\arrow\filesystem\s3fs.h exit 1 # [win] + + # shared libraries + - test -f $PREFIX/lib/libarrow_s3.so # [linux] + - test -f $PREFIX/lib/libarrow_s3.dylib # [osx] + - if not exist %LIBRARY_BIN%\arrow_s3.dll exit 1 # [win] + - if not exist %LIBRARY_LIB%\arrow_s3.lib exit 1 # [win] + + # absence of static libraries + - test ! -f $PREFIX/lib/libarrow_s3.a # [unix] + - if exist %LIBRARY_LIB%\arrow_s3_static.lib exit 1 # [win] + + about: + home: http://github.com/apache/arrow + license: Apache-2.0 + license_file: + - LICENSE.txt + summary: C++ libraries for Apache Arrow S3 filesystem + - name: libarrow-substrait script: install-libarrow.sh # [unix] script: install-libarrow.bat # [win] From 67d57b9b84eaae876dc5887a30f858bbfe3acfed Mon Sep 17 00:00:00 2001 From: "conda-forge-webservices[bot]" <91080706+conda-forge-webservices[bot]@users.noreply.github.com> Date: Fri, 16 Oct 2026 10:32:23 +0000 Subject: [PATCH 4/7] MNT: Re-rendered with conda-smithy 2026.9.23 and conda-forge-pinning 2026.10.15.13.54.1 --- ...iler_version12.9cxx_compiler_version14.yaml | 2 +- ...iler_versionNonecxx_compiler_version15.yaml | 2 +- ...iler_version12.9cxx_compiler_version14.yaml | 2 +- ...iler_versionNonecxx_compiler_version15.yaml | 2 +- .ci_support/linux_ppc64le_.yaml | 2 +- .ci_support/osx_64_.yaml | 2 +- .ci_support/osx_arm64_.yaml | 2 +- .../win_64_cuda_compiler_version12.9.yaml | 2 +- .../win_64_cuda_compiler_versionNone.yaml | 2 +- README.md | 18 ++++++++++++++---- 10 files changed, 23 insertions(+), 13 deletions(-) diff --git a/.ci_support/linux_64_c_compiler_version14c_stdlib_version2.17cuda_compiler_version12.9cxx_compiler_version14.yaml b/.ci_support/linux_64_c_compiler_version14c_stdlib_version2.17cuda_compiler_version12.9cxx_compiler_version14.yaml index c106947bb..f1ea4a02e 100644 --- a/.ci_support/linux_64_c_compiler_version14c_stdlib_version2.17cuda_compiler_version12.9cxx_compiler_version14.yaml +++ b/.ci_support/linux_64_c_compiler_version14c_stdlib_version2.17cuda_compiler_version12.9cxx_compiler_version14.yaml @@ -1,5 +1,5 @@ aws_crt_cpp: -- 0.42.3 +- 0.43.6 aws_sdk_cpp: - 1.11.833 azure_core_cpp: diff --git a/.ci_support/linux_64_c_compiler_version15c_stdlib_version2.17cuda_compiler_versionNonecxx_compiler_version15.yaml b/.ci_support/linux_64_c_compiler_version15c_stdlib_version2.17cuda_compiler_versionNonecxx_compiler_version15.yaml index 45687d091..7b1a763dc 100644 --- a/.ci_support/linux_64_c_compiler_version15c_stdlib_version2.17cuda_compiler_versionNonecxx_compiler_version15.yaml +++ b/.ci_support/linux_64_c_compiler_version15c_stdlib_version2.17cuda_compiler_versionNonecxx_compiler_version15.yaml @@ -1,5 +1,5 @@ aws_crt_cpp: -- 0.42.3 +- 0.43.6 aws_sdk_cpp: - 1.11.833 azure_core_cpp: diff --git a/.ci_support/linux_aarch64_c_compiler_version14c_stdlib_version2.17cuda_compiler_version12.9cxx_compiler_version14.yaml b/.ci_support/linux_aarch64_c_compiler_version14c_stdlib_version2.17cuda_compiler_version12.9cxx_compiler_version14.yaml index 28952fbfd..e79b140f3 100644 --- a/.ci_support/linux_aarch64_c_compiler_version14c_stdlib_version2.17cuda_compiler_version12.9cxx_compiler_version14.yaml +++ b/.ci_support/linux_aarch64_c_compiler_version14c_stdlib_version2.17cuda_compiler_version12.9cxx_compiler_version14.yaml @@ -1,5 +1,5 @@ aws_crt_cpp: -- 0.42.3 +- 0.43.6 aws_sdk_cpp: - 1.11.833 azure_core_cpp: diff --git a/.ci_support/linux_aarch64_c_compiler_version15c_stdlib_version2.17cuda_compiler_versionNonecxx_compiler_version15.yaml b/.ci_support/linux_aarch64_c_compiler_version15c_stdlib_version2.17cuda_compiler_versionNonecxx_compiler_version15.yaml index a7c49f668..6850c4d80 100644 --- a/.ci_support/linux_aarch64_c_compiler_version15c_stdlib_version2.17cuda_compiler_versionNonecxx_compiler_version15.yaml +++ b/.ci_support/linux_aarch64_c_compiler_version15c_stdlib_version2.17cuda_compiler_versionNonecxx_compiler_version15.yaml @@ -1,5 +1,5 @@ aws_crt_cpp: -- 0.42.3 +- 0.43.6 aws_sdk_cpp: - 1.11.833 azure_core_cpp: diff --git a/.ci_support/linux_ppc64le_.yaml b/.ci_support/linux_ppc64le_.yaml index 649266cfb..e8895f2a2 100644 --- a/.ci_support/linux_ppc64le_.yaml +++ b/.ci_support/linux_ppc64le_.yaml @@ -1,5 +1,5 @@ aws_crt_cpp: -- 0.42.3 +- 0.43.6 aws_sdk_cpp: - 1.11.833 azure_core_cpp: diff --git a/.ci_support/osx_64_.yaml b/.ci_support/osx_64_.yaml index a6352844b..2ce5b1d75 100644 --- a/.ci_support/osx_64_.yaml +++ b/.ci_support/osx_64_.yaml @@ -3,7 +3,7 @@ MACOSX_DEPLOYMENT_TARGET: MACOSX_SDK_VERSION: - '12.0' aws_crt_cpp: -- 0.42.3 +- 0.43.6 aws_sdk_cpp: - 1.11.833 azure_core_cpp: diff --git a/.ci_support/osx_arm64_.yaml b/.ci_support/osx_arm64_.yaml index e7508cf8f..fdff366c4 100644 --- a/.ci_support/osx_arm64_.yaml +++ b/.ci_support/osx_arm64_.yaml @@ -3,7 +3,7 @@ MACOSX_DEPLOYMENT_TARGET: MACOSX_SDK_VERSION: - '12.0' aws_crt_cpp: -- 0.42.3 +- 0.43.6 aws_sdk_cpp: - 1.11.833 azure_core_cpp: diff --git a/.ci_support/win_64_cuda_compiler_version12.9.yaml b/.ci_support/win_64_cuda_compiler_version12.9.yaml index e7094d12e..388358561 100644 --- a/.ci_support/win_64_cuda_compiler_version12.9.yaml +++ b/.ci_support/win_64_cuda_compiler_version12.9.yaml @@ -1,5 +1,5 @@ aws_crt_cpp: -- 0.42.3 +- 0.43.6 aws_sdk_cpp: - 1.11.833 azure_core_cpp: diff --git a/.ci_support/win_64_cuda_compiler_versionNone.yaml b/.ci_support/win_64_cuda_compiler_versionNone.yaml index f46bbbdba..1bfc04ea8 100644 --- a/.ci_support/win_64_cuda_compiler_versionNone.yaml +++ b/.ci_support/win_64_cuda_compiler_versionNone.yaml @@ -1,5 +1,5 @@ aws_crt_cpp: -- 0.42.3 +- 0.43.6 aws_sdk_cpp: - 1.11.833 azure_core_cpp: diff --git a/README.md b/README.md index fdc938030..59161cc43 100644 --- a/README.md +++ b/README.md @@ -94,6 +94,15 @@ Package license: Apache-2.0 Summary: C++ libraries for Apache Arrow Gandiva +About libarrow-s3 +----------------- + +Home: http://github.com/apache/arrow + +Package license: Apache-2.0 + +Summary: C++ libraries for Apache Arrow S3 filesystem + About libarrow-substrait ------------------------ @@ -189,6 +198,7 @@ Current release info | [![Conda Recipe](https://img.shields.io/badge/recipe-libarrow--flight-green.svg)](https://anaconda.org/conda-forge/libarrow-flight) | [![Conda Downloads](https://img.shields.io/conda/dn/conda-forge/libarrow-flight.svg)](https://anaconda.org/conda-forge/libarrow-flight) | [![Conda Version](https://img.shields.io/conda/vn/conda-forge/libarrow-flight.svg)](https://anaconda.org/conda-forge/libarrow-flight) | [![Conda Platforms](https://img.shields.io/conda/pn/conda-forge/libarrow-flight.svg)](https://anaconda.org/conda-forge/libarrow-flight) | | [![Conda Recipe](https://img.shields.io/badge/recipe-libarrow--flight--sql-green.svg)](https://anaconda.org/conda-forge/libarrow-flight-sql) | [![Conda Downloads](https://img.shields.io/conda/dn/conda-forge/libarrow-flight-sql.svg)](https://anaconda.org/conda-forge/libarrow-flight-sql) | [![Conda Version](https://img.shields.io/conda/vn/conda-forge/libarrow-flight-sql.svg)](https://anaconda.org/conda-forge/libarrow-flight-sql) | [![Conda Platforms](https://img.shields.io/conda/pn/conda-forge/libarrow-flight-sql.svg)](https://anaconda.org/conda-forge/libarrow-flight-sql) | | [![Conda Recipe](https://img.shields.io/badge/recipe-libarrow--gandiva-green.svg)](https://anaconda.org/conda-forge/libarrow-gandiva) | [![Conda Downloads](https://img.shields.io/conda/dn/conda-forge/libarrow-gandiva.svg)](https://anaconda.org/conda-forge/libarrow-gandiva) | [![Conda Version](https://img.shields.io/conda/vn/conda-forge/libarrow-gandiva.svg)](https://anaconda.org/conda-forge/libarrow-gandiva) | [![Conda Platforms](https://img.shields.io/conda/pn/conda-forge/libarrow-gandiva.svg)](https://anaconda.org/conda-forge/libarrow-gandiva) | +| [![Conda Recipe](https://img.shields.io/badge/recipe-libarrow--s3-green.svg)](https://anaconda.org/conda-forge/libarrow-s3) | [![Conda Downloads](https://img.shields.io/conda/dn/conda-forge/libarrow-s3.svg)](https://anaconda.org/conda-forge/libarrow-s3) | [![Conda Version](https://img.shields.io/conda/vn/conda-forge/libarrow-s3.svg)](https://anaconda.org/conda-forge/libarrow-s3) | [![Conda Platforms](https://img.shields.io/conda/pn/conda-forge/libarrow-s3.svg)](https://anaconda.org/conda-forge/libarrow-s3) | | [![Conda Recipe](https://img.shields.io/badge/recipe-libarrow--substrait-green.svg)](https://anaconda.org/conda-forge/libarrow-substrait) | [![Conda Downloads](https://img.shields.io/conda/dn/conda-forge/libarrow-substrait.svg)](https://anaconda.org/conda-forge/libarrow-substrait) | [![Conda Version](https://img.shields.io/conda/vn/conda-forge/libarrow-substrait.svg)](https://anaconda.org/conda-forge/libarrow-substrait) | [![Conda Platforms](https://img.shields.io/conda/pn/conda-forge/libarrow-substrait.svg)](https://anaconda.org/conda-forge/libarrow-substrait) | | [![Conda Recipe](https://img.shields.io/badge/recipe-libparquet-green.svg)](https://anaconda.org/conda-forge/libparquet) | [![Conda Downloads](https://img.shields.io/conda/dn/conda-forge/libparquet.svg)](https://anaconda.org/conda-forge/libparquet) | [![Conda Version](https://img.shields.io/conda/vn/conda-forge/libparquet.svg)](https://anaconda.org/conda-forge/libparquet) | [![Conda Platforms](https://img.shields.io/conda/pn/conda-forge/libparquet.svg)](https://anaconda.org/conda-forge/libparquet) | | [![Conda Recipe](https://img.shields.io/badge/recipe-parquet--utils-green.svg)](https://anaconda.org/conda-forge/parquet-utils) | [![Conda Downloads](https://img.shields.io/conda/dn/conda-forge/parquet-utils.svg)](https://anaconda.org/conda-forge/parquet-utils) | [![Conda Version](https://img.shields.io/conda/vn/conda-forge/parquet-utils.svg)](https://anaconda.org/conda-forge/parquet-utils) | [![Conda Platforms](https://img.shields.io/conda/pn/conda-forge/parquet-utils.svg)](https://anaconda.org/conda-forge/parquet-utils) | @@ -210,7 +220,7 @@ How to use With conda ``` -conda install apache-arrow-proc arrow-utils libarrow libarrow-acero libarrow-all libarrow-compute libarrow-dataset libarrow-flight libarrow-flight-sql libarrow-gandiva libarrow-substrait libparquet parquet-utils +conda install apache-arrow-proc arrow-utils libarrow libarrow-acero libarrow-all libarrow-compute libarrow-dataset libarrow-flight libarrow-flight-sql libarrow-gandiva libarrow-s3 libarrow-substrait libparquet parquet-utils ``` @@ -219,7 +229,7 @@ conda install apache-arrow-proc arrow-utils libarrow libarrow-acero libarrow-all With mamba ``` -mamba install apache-arrow-proc arrow-utils libarrow libarrow-acero libarrow-all libarrow-compute libarrow-dataset libarrow-flight libarrow-flight-sql libarrow-gandiva libarrow-substrait libparquet parquet-utils +mamba install apache-arrow-proc arrow-utils libarrow libarrow-acero libarrow-all libarrow-compute libarrow-dataset libarrow-flight libarrow-flight-sql libarrow-gandiva libarrow-s3 libarrow-substrait libparquet parquet-utils ``` @@ -229,9 +239,9 @@ mamba install apache-arrow-proc arrow-utils libarrow libarrow-acero libarrow-all ``` # for adding to your local project -pixi add apache-arrow-proc arrow-utils libarrow libarrow-acero libarrow-all libarrow-compute libarrow-dataset libarrow-flight libarrow-flight-sql libarrow-gandiva libarrow-substrait libparquet parquet-utils +pixi add apache-arrow-proc arrow-utils libarrow libarrow-acero libarrow-all libarrow-compute libarrow-dataset libarrow-flight libarrow-flight-sql libarrow-gandiva libarrow-s3 libarrow-substrait libparquet parquet-utils # for installing globally -pixi global install apache-arrow-proc arrow-utils libarrow libarrow-acero libarrow-all libarrow-compute libarrow-dataset libarrow-flight libarrow-flight-sql libarrow-gandiva libarrow-substrait libparquet parquet-utils +pixi global install apache-arrow-proc arrow-utils libarrow libarrow-acero libarrow-all libarrow-compute libarrow-dataset libarrow-flight libarrow-flight-sql libarrow-gandiva libarrow-s3 libarrow-substrait libparquet parquet-utils ``` From 3e6eb145b18e1bdc5f63931a1a83ca632806d697 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ra=C3=BAl=20Cumplido?= Date: Fri, 16 Oct 2026 13:12:43 +0200 Subject: [PATCH 5/7] Add simdjson and uriparser dependencies --- recipe/meta.yaml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/recipe/meta.yaml b/recipe/meta.yaml index 32a0373eb..c5d0c683e 100644 --- a/recipe/meta.yaml +++ b/recipe/meta.yaml @@ -93,8 +93,10 @@ requirements: - orc - rapidjson - re2 + - simdjson - snappy - thrift-cpp + - uriparser - xsimd - zlib - zstd @@ -239,7 +241,9 @@ outputs: - libprotobuf - lz4-c - orc + - simdjson - snappy + - uriparser - zlib - zstd # since libgoogle-cloud{,-storage} is static on windows, see From c2fdfdd9332d0667a6cab2003e72949d701e1ca7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ra=C3=BAl=20Cumplido?= Date: Fri, 16 Oct 2026 15:24:15 +0200 Subject: [PATCH 6/7] Temporarily pin simdjson < 5 for win and fix git_rev for testing. --- recipe/meta.yaml | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/recipe/meta.yaml b/recipe/meta.yaml index c5d0c683e..648740dc3 100644 --- a/recipe/meta.yaml +++ b/recipe/meta.yaml @@ -33,7 +33,7 @@ source: git_rev: 9ff285c88565f0f6abc855918c6a342e70e4909c folder: testing - git_url: https://github.com/apache/parquet-testing.git - git_rev: e74785d85a4ecee829e1e405444d6a1b24b8bc9c + git_rev: 56653c437c8092f704a092d0d1d4e600124cd49f folder: cpp/submodules/parquet-testing build: @@ -93,7 +93,10 @@ requirements: - orc - rapidjson - re2 - - simdjson + # simdjson>=5 fails on MSVC due to arrow defining __SSE2__, see + # https://github.com/apache/arrow/issues/51690 + - simdjson # [not win] + - simdjson <5 # [win] - snappy - thrift-cpp - uriparser @@ -241,7 +244,10 @@ outputs: - libprotobuf - lz4-c - orc - - simdjson + # simdjson>=5 fails on MSVC due to arrow defining __SSE2__, see + # https://github.com/apache/arrow/issues/51690 + - simdjson # [not win] + - simdjson <5 # [win] - snappy - uriparser - zlib @@ -748,6 +754,9 @@ outputs: host: - {{ pin_subpackage("libarrow", exact=True) }} - openssl + # see https://github.com/apache/arrow/issues/51690 + - simdjson # [not win] + - simdjson <5 # [win] - thrift-cpp - libabseil # [osx] - libprotobuf # [osx] From 83863b6d5bc61f33bec506343ba16b58dc2ae755 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ra=C3=BAl=20Cumplido?= Date: Mon, 19 Oct 2026 15:41:00 +0200 Subject: [PATCH 7/7] Try to fix CI jobs with patches --- recipe/meta.yaml | 4 ++ ...xport-S3RetryStrategy-static-members.patch | 42 +++++++++++++++++++ ...k-tests-with-export_dynamic-on-macos.patch | 31 ++++++++++++++ 3 files changed, 77 insertions(+) create mode 100644 recipe/patches/0004-only-export-S3RetryStrategy-static-members.patch create mode 100644 recipe/patches/0005-link-tests-with-export_dynamic-on-macos.patch diff --git a/recipe/meta.yaml b/recipe/meta.yaml index 648740dc3..073b161dc 100644 --- a/recipe/meta.yaml +++ b/recipe/meta.yaml @@ -27,6 +27,10 @@ source: - patches/0002-skip-NonExistentBucket-test-on-osx.patch # disable gandiva tests that are "unmaintained" and failing on windows - patches/0003-disable-some-gandiva-tests-related-to-tzdb-handling.patch # [win] + # S3RetryStrategy must be subclassable without linking arrow_s3 (MSVC link error) + - patches/0004-only-export-S3RetryStrategy-static-members.patch + # keep OpenTelemetry singletons shared between tests and libarrow with LTO on macOS + - patches/0005-link-tests-with-export_dynamic-on-macos.patch # [osx] # testing-submodules not part of release tarball - git_url: https://github.com/apache/arrow-testing.git diff --git a/recipe/patches/0004-only-export-S3RetryStrategy-static-members.patch b/recipe/patches/0004-only-export-S3RetryStrategy-static-members.patch new file mode 100644 index 000000000..3bdf70ffa --- /dev/null +++ b/recipe/patches/0004-only-export-S3RetryStrategy-static-members.patch @@ -0,0 +1,42 @@ +From: Raúl Cumplido +Subject: [PATCH] Don't export S3RetryStrategy class, only its static members + +S3RetryStrategy is an interface meant to be subclassed by users. Since +S3 moved to its own arrow_s3 library, it can also be subclassed by code +that doesn't link arrow_s3 but loads it at runtime with +LoadFileSystemFactories(), like arrow-s3fs-module-test. On Windows, the +class-level ARROW_S3_EXPORT makes its implicit constructor and destructor +__declspec(dllimport), which fails to link (LNK2001). Only export the +static factory functions, which are the only members defined in arrow_s3. +--- +diff --git a/cpp/src/arrow/filesystem/s3fs.h b/cpp/src/arrow/filesystem/s3fs.h +index 5086b34..888c3ec 100644 +--- a/cpp/src/arrow/filesystem/s3fs.h ++++ b/cpp/src/arrow/filesystem/s3fs.h +@@ -67,8 +67,12 @@ enum class S3CredentialsKind : int8_t { + WebIdentity + }; + ++// Only the out-of-line members are exported (not the whole class), so that it ++// can be subclassed without linking arrow_s3, e.g. when arrow_s3 is loaded at ++// runtime with LoadFileSystemFactories(). On Windows, exporting the class would ++// make its implicit constructor and destructor dllimport. + /// Pure virtual class for describing custom S3 retry strategies +-class ARROW_S3_EXPORT S3RetryStrategy { ++class S3RetryStrategy { + public: + virtual ~S3RetryStrategy() = default; + +@@ -89,10 +93,10 @@ class ARROW_S3_EXPORT S3RetryStrategy { + virtual int64_t CalculateDelayBeforeNextRetry(const AWSErrorDetail& error, + int64_t attempted_retries) = 0; + /// Returns a stock AWS Default retry strategy. +- static std::shared_ptr GetAwsDefaultRetryStrategy( ++ ARROW_S3_EXPORT static std::shared_ptr GetAwsDefaultRetryStrategy( + int64_t max_attempts); + /// Returns a stock AWS Standard retry strategy. +- static std::shared_ptr GetAwsStandardRetryStrategy( ++ ARROW_S3_EXPORT static std::shared_ptr GetAwsStandardRetryStrategy( + int64_t max_attempts); + }; + diff --git a/recipe/patches/0005-link-tests-with-export_dynamic-on-macos.patch b/recipe/patches/0005-link-tests-with-export_dynamic-on-macos.patch new file mode 100644 index 000000000..7f5bd555f --- /dev/null +++ b/recipe/patches/0005-link-tests-with-export_dynamic-on-macos.patch @@ -0,0 +1,31 @@ +From: Raúl Cumplido +Subject: [PATCH] Link test executables with -export_dynamic on macOS + +With LTO enabled, ld64 is allowed to internalize global symbols of main +executables unless -export_dynamic is passed. This includes the weak +function-local statics used by the header-only OpenTelemetry API as +process-wide singletons (TracerProvider, RuntimeContext storage), so the +test executables end up with a private copy instead of sharing libarrow's. +This breaks parquet-arrow-reader-writer-tracing-test (no spans recorded) +and makes arrow-utility-test crash at exit (Tracing.OtLifetime). +--- +diff --git a/cpp/cmake_modules/BuildUtils.cmake b/cpp/cmake_modules/BuildUtils.cmake +index 8556273..4767e27 100644 +--- a/cpp/cmake_modules/BuildUtils.cmake ++++ b/cpp/cmake_modules/BuildUtils.cmake +@@ -766,6 +766,15 @@ function(ADD_TEST_CASE REL_TEST_NAME) + target_compile_definitions(${TEST_NAME} PRIVATE ${ARG_DEFINITIONS}) + endif() + ++ if(APPLE) ++ # With LTO, ld64 may internalize global symbols of executables, including ++ # the weak function-local statics that header-only libraries such as the ++ # OpenTelemetry API use as process-wide singletons. The test would then get ++ # its own copy instead of sharing the one in libarrow. -export_dynamic keeps ++ # them global so they are coalesced at load time. ++ target_link_options(${TEST_NAME} PRIVATE "LINKER:-export_dynamic") ++ endif() ++ + if(ARROW_TEST_MEMCHECK AND NOT ARG_NO_VALGRIND) + add_test(${TEST_NAME} + bash
VariantStatus
linux_aarch64_cuda_compiler_version12.9 - - variant - -
linux_aarch64_cuda_compiler_versionNonelinux_ppc64le - variant + variant
linux_ppc64leosx_64 - variant + variant
osx_64osx_arm64 - variant + variant