Arrow requires xsimd >= 9.0.1 according to arrow/cpp/thirdparty/versions.txt.
This commit makes two related changes:
1. Add libxsimd-dev as a build dependency in debian/control when
pkg.ceph.arrow is not selected. This satisfies the vendored Arrow build
requirements and enables successful builds in network-restricted
environments.
2. Remove the hardcoded -Dxsimd_SOURCE=BUNDLED from BuildArrow.cmake.
Since we already set ARROW_DEPENDENCY_SOURCE=SYSTEM, Arrow will
automatically try to find the system xsimd package and fall back to
the bundled version if not found or insufficient.
This allows systems with libxsimd-dev >= 9.0.1 to use the system package,
reducing build time and dependencies, while maintaining compatibility with
older distributions that will automatically use the bundled version.
Distribution availability:
- Ubuntu Noble (24.04): 12.1.1 (sufficient)
- Ubuntu Jammy (22.04): 7.6.0 (insufficient, will use bundled)
- Debian Trixie (13): 13.2.0 (sufficient)
Signed-off-by: Kefu Chai <k.chai@proxmox.com>
list(APPEND arrow_DEPENDS Boost)
endif()
- # since Arrow 15.0.0 needs xsimd>=8.1.0 and since Ubuntu Jammy
- # Jellyfish only provides 7.6.0, we'll have arrow build it as source
- list(APPEND arrow_CMAKE_ARGS -Dxsimd_SOURCE=BUNDLED)
-
# cmake doesn't properly handle arguments containing ";", such as
# CMAKE_PREFIX_PATH, for which reason we'll have to use some other separator.
string(REPLACE ";" "!" CMAKE_PREFIX_PATH_ALT_SEP "${CMAKE_PREFIX_PATH}")
libpmem-dev <pkg.ceph.pmdk>,
libpmemobj-dev (>= 1.8) <pkg.ceph.pmdk>,
libprotobuf-dev <pkg.ceph.crimson>,
+ libxsimd-dev <!pkg.ceph.arrow>,
ninja-build,
nlohmann-json3-dev,
patch,