From bd59a6e8e0445c42760532408b1d7b8178f370b7 Mon Sep 17 00:00:00 2001 From: Kefu Chai Date: Wed, 15 Oct 2025 15:30:52 +0800 Subject: [PATCH] debian,cmake: Add libxsimd-dev and enable system xsimd for Arrow 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 --- cmake/modules/BuildArrow.cmake | 4 ---- debian/control | 1 + 2 files changed, 1 insertion(+), 4 deletions(-) diff --git a/cmake/modules/BuildArrow.cmake b/cmake/modules/BuildArrow.cmake index 0ee1d85b49f..8a16b9b8899 100644 --- a/cmake/modules/BuildArrow.cmake +++ b/cmake/modules/BuildArrow.cmake @@ -69,10 +69,6 @@ function(build_arrow) 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}") diff --git a/debian/control b/debian/control index 35c1dbe5bd2..954b3dd4dc1 100644 --- a/debian/control +++ b/debian/control @@ -85,6 +85,7 @@ Build-Depends: automake, libpmem-dev , libpmemobj-dev (>= 1.8) , libprotobuf-dev , + libxsimd-dev , ninja-build, nlohmann-json3-dev, patch, -- 2.39.5