From 3d725b9ae96074f347999da11a18d22736373b5e Mon Sep 17 00:00:00 2001 From: Nic Crane Date: Thu, 24 Sep 2026 19:45:50 +0100 Subject: [PATCH 1/3] Allow manual use of system snappy --- r/inst/build_arrow_static.sh | 2 +- r/tools/nixlibs.R | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/r/inst/build_arrow_static.sh b/r/inst/build_arrow_static.sh index 34a607cfb6f7..79010f981264 100755 --- a/r/inst/build_arrow_static.sh +++ b/r/inst/build_arrow_static.sh @@ -77,7 +77,7 @@ read -r -a ARROW_EXTRA_CMAKE_FLAGS <<< "${EXTRA_CMAKE_FLAGS}" mkdir -p "${BUILD_DIR}" pushd "${BUILD_DIR}" "${CMAKE_COMMAND[@]}" -DARROW_BOOST_USE_SHARED=OFF \ - -DARROW_SNAPPY_USE_SHARED=OFF \ + -DARROW_SNAPPY_USE_SHARED="${ARROW_SNAPPY_USE_SHARED:-OFF}" \ -DARROW_BUILD_TESTS=OFF \ -DARROW_BUILD_SHARED=OFF \ -DARROW_BUILD_STATIC=ON \ diff --git a/r/tools/nixlibs.R b/r/tools/nixlibs.R index 3c184f6fe232..90a4ae5fe734 100644 --- a/r/tools/nixlibs.R +++ b/r/tools/nixlibs.R @@ -909,6 +909,7 @@ with_wasm_support <- function(env_var_list) { CMAKE_WRAPPER = "emcmake", ARROW_DEPENDENCY_SOURCE = "BUNDLED", ARROW_DEPENDENCY_USE_SHARED = "OFF", + ARROW_SNAPPY_USE_SHARED = "OFF", ARROW_ENABLE_THREADING = "OFF", ARROW_GCS = "OFF", ARROW_AZURE = "OFF", From 4ec393dc63c7cb13bc9e798570c2afc81f3a8ef6 Mon Sep 17 00:00:00 2001 From: Nic Crane Date: Thu, 24 Sep 2026 19:46:09 +0100 Subject: [PATCH 2/3] Discuss in vignette --- r/vignettes/install.Rmd | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/r/vignettes/install.Rmd b/r/vignettes/install.Rmd index 099ed6d3580c..72f49003a54c 100644 --- a/r/vignettes/install.Rmd +++ b/r/vignettes/install.Rmd @@ -196,6 +196,12 @@ uses only system-installed dependencies (when set to `SYSTEM`) or checks system-installed dependencies first and only installs dependencies which aren't already present (when set to `AUTO`, the default). +Snappy is an exception: by default it is always linked statically, so a system +that only provides a shared `libsnappy` will use the bundled copy (or fail to +configure when `ARROW_DEPENDENCY_SOURCE=SYSTEM`). Set `ARROW_SNAPPY_USE_SHARED=ON` +to link against the system's shared snappy library instead; that library must then +be present at runtime. + These dependencies vary by platform; however, if you wish to install these yourself prior to libarrow installation, we recommend that you take a look at the [docker file for whichever of our CI builds](https://github.com/apache/arrow/tree/main/ci/docker) From 822b6cd8e6b4692aeb685d611cf2a490260f090c Mon Sep 17 00:00:00 2001 From: Nic Crane Date: Thu, 24 Sep 2026 19:49:34 +0100 Subject: [PATCH 3/3] Refine phrasing --- r/vignettes/install.Rmd | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/r/vignettes/install.Rmd b/r/vignettes/install.Rmd index 72f49003a54c..77d39fd7af42 100644 --- a/r/vignettes/install.Rmd +++ b/r/vignettes/install.Rmd @@ -196,11 +196,10 @@ uses only system-installed dependencies (when set to `SYSTEM`) or checks system-installed dependencies first and only installs dependencies which aren't already present (when set to `AUTO`, the default). -Snappy is an exception: by default it is always linked statically, so a system -that only provides a shared `libsnappy` will use the bundled copy (or fail to -configure when `ARROW_DEPENDENCY_SOURCE=SYSTEM`). Set `ARROW_SNAPPY_USE_SHARED=ON` -to link against the system's shared snappy library instead; that library must then -be present at runtime. +Snappy is an exception: by default it is always linked statically, even when +`ARROW_DEPENDENCY_SOURCE` is `SYSTEM`. If your system only provides a shared +`libsnappy`, set `ARROW_SNAPPY_USE_SHARED=ON` to link against it; the library +must then be present at runtime. These dependencies vary by platform; however, if you wish to install these yourself prior to libarrow installation, we recommend that you take a look at