When WITH_SYSTEM_ARROW is false, Ceph builds Arrow from the bundled
src/apache submodule. Our CI uses ubuntu:jammy as the base image, which
does not package libarrow-dev, so the bundled path is always taken there.
Arrow 17.0.0 vendors a copy of Thrift whose download URLs are no longer
reachable, breaking CI builds that try to fetch them at configure time.
Bump arrow submodule to 19.0.1, the latest Arrow release that:
- builds successfully on ubuntu:jammy, and
- requires only CMake 3.22 (the version shipped by ubuntu:jammy)
See also
CMake version shipped by ubuntu:jammy
- https://packages.ubuntu.com/jammy/cmake
arrow releases' CMake support
- maint-19.0.1: https://github.com/apache/arrow/blob/
272715f6df2a042d69881ffa03d5078c58e4b345/cpp/CMakeLists.txt#L18
- maint-20.0.0: https://github.com/apache/arrow/blob/
3ad0370a04ccdae638755b94c3c31c8760a11193/cpp/CMakeLists.txt#L18
arrow enabled minmalloc by default
-
https://github.com/apache/arrow/commit/
b907c5dadb516b525c8fafbf34b0116d44044733
Because arrow uses the bundled mialloc library be default, we need
to disable it in the same commit bumping up the submodule.
Signed-off-by: Kefu Chai <k.chai@proxmox.com>
list(APPEND arrow_CMAKE_ARGS -DARROW_BUILD_STATIC=ON)
# arrow only supports its own bundled version of jemalloc, so can't
- # share the version ceph is using
- list(APPEND arrow_CMAKE_ARGS -DARROW_JEMALLOC=OFF)
+ # share the version ceph is using,
+ # arrow builds and uses mimalloc by default, let's reduce the build time
+ # and simplify the linkage.
+ list(APPEND arrow_CMAKE_ARGS
+ -DARROW_JEMALLOC=OFF
+ -DARROW_MIMALLOC=OFF)
# transitive dependencies
if (thrift_VERSION VERSION_GREATER_EQUAL 0.17)
-Subproject commit 6a2e19a852b367c72d7b12da4d104456491ed8b7
+Subproject commit 272715f6df2a042d69881ffa03d5078c58e4b345