From 39b230a064a138011e181bdafb2cc1c77729d234 Mon Sep 17 00:00:00 2001 From: Ruifeng Zheng Date: Wed, 8 Apr 2026 08:44:16 +0900 Subject: [PATCH 1/3] [SPARK-56372][INFRA] Add cmake to CI Docker images for R fs package compilation MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Add `cmake` to the `apt-get install` list in CI Docker images (`docs`, `lint`, `sparkr`). The R `fs` package (a transitive dependency of `devtools`, `testthat`, `rmarkdown`) now bundles `libuv v1.52.0`, which requires `cmake` to build. This causes the "Base image build" job to fail with: ``` /bin/bash: line 2: cmake: command not found make: *** [Makevars:44: libuv] Error 127 ERROR: compilation failed for package 'fs' ``` The `fs` compilation failure cascades into: `sass` → `bslib` → `shiny` → `rmarkdown` → `devtools` → `testthat`, breaking the entire R package installation. See https://github.com/apache/spark/actions/runs/24067715329/job/70197367201 No. CI should pass with the updated Docker images. Co-authored-by: Claude code (Opus 4.6) Closes #55233 from zhengruifeng/fix_imsage. Authored-by: Ruifeng Zheng Signed-off-by: Hyukjin Kwon --- dev/spark-test-image/docs/Dockerfile | 1 + dev/spark-test-image/lint/Dockerfile | 1 + dev/spark-test-image/sparkr/Dockerfile | 1 + 3 files changed, 3 insertions(+) diff --git a/dev/spark-test-image/docs/Dockerfile b/dev/spark-test-image/docs/Dockerfile index 3c29e8216b632..5d88d38f4aac0 100644 --- a/dev/spark-test-image/docs/Dockerfile +++ b/dev/spark-test-image/docs/Dockerfile @@ -32,6 +32,7 @@ ENV DEBCONF_NONINTERACTIVE_SEEN=true RUN apt-get update && apt-get install -y \ build-essential \ ca-certificates \ + cmake \ curl \ gfortran \ git \ diff --git a/dev/spark-test-image/lint/Dockerfile b/dev/spark-test-image/lint/Dockerfile index 26729db5afbd9..e8842adfdfcfd 100644 --- a/dev/spark-test-image/lint/Dockerfile +++ b/dev/spark-test-image/lint/Dockerfile @@ -32,6 +32,7 @@ ENV DEBCONF_NONINTERACTIVE_SEEN=true RUN apt-get update && apt-get install -y \ build-essential \ ca-certificates \ + cmake \ curl \ gfortran \ git \ diff --git a/dev/spark-test-image/sparkr/Dockerfile b/dev/spark-test-image/sparkr/Dockerfile index a7709edf44e6f..0bce21fdc0875 100644 --- a/dev/spark-test-image/sparkr/Dockerfile +++ b/dev/spark-test-image/sparkr/Dockerfile @@ -32,6 +32,7 @@ ENV DEBCONF_NONINTERACTIVE_SEEN=true RUN apt-get update && apt-get install -y \ build-essential \ ca-certificates \ + cmake \ curl \ gfortran \ git \ From a696f067eb148bc13857d33277c9e061a25be349 Mon Sep 17 00:00:00 2001 From: Ruifeng Zheng Date: Thu, 9 Apr 2026 03:06:24 +0000 Subject: [PATCH 2/3] Fix docs CI by ensuring pkgdown 2.0.1 is installed after preferably Installing preferably upgrades pkgdown to the latest version as a dependency. The latest pkgdown includes build_llm_docs which fails with the old pandoc on Ubuntu 22.04. Fix by swapping install order so pkgdown 2.0.1 is installed last with upgrade='never'. --- dev/spark-test-image/docs/Dockerfile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/dev/spark-test-image/docs/Dockerfile b/dev/spark-test-image/docs/Dockerfile index 5d88d38f4aac0..acacc62ac1e91 100644 --- a/dev/spark-test-image/docs/Dockerfile +++ b/dev/spark-test-image/docs/Dockerfile @@ -70,8 +70,8 @@ RUN apt-get update && apt-get install -y \ # See more in SPARK-39959, roxygen2 < 7.2.1 RUN Rscript -e "install.packages(c('devtools', 'knitr', 'markdown', 'rmarkdown', 'testthat', 'remotes'), repos='https://cloud.r-project.org/')" && \ Rscript -e "devtools::install_version('roxygen2', version='7.2.0', repos='https://cloud.r-project.org')" && \ - Rscript -e "devtools::install_version('pkgdown', version='2.0.1', repos='https://cloud.r-project.org')" && \ - Rscript -e "devtools::install_version('preferably', version='0.4', repos='https://cloud.r-project.org')" + Rscript -e "devtools::install_version('preferably', version='0.4', repos='https://cloud.r-project.org')" && \ + Rscript -e "devtools::install_version('pkgdown', version='2.0.1', repos='https://cloud.r-project.org', upgrade='never')" # See more in SPARK-39735 ENV R_LIBS_SITE="/usr/local/lib/R/site-library:${R_LIBS_SITE}:/usr/lib/R/library" From 91e6692439cd415d12a684795358460aaf4fd734 Mon Sep 17 00:00:00 2001 From: Ruifeng Zheng Date: Thu, 9 Apr 2026 03:22:54 +0000 Subject: [PATCH 3/3] Keep original pkgdown/preferably order, add upgrade='never' to preferably --- dev/spark-test-image/docs/Dockerfile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/dev/spark-test-image/docs/Dockerfile b/dev/spark-test-image/docs/Dockerfile index acacc62ac1e91..834b8767340b1 100644 --- a/dev/spark-test-image/docs/Dockerfile +++ b/dev/spark-test-image/docs/Dockerfile @@ -70,8 +70,8 @@ RUN apt-get update && apt-get install -y \ # See more in SPARK-39959, roxygen2 < 7.2.1 RUN Rscript -e "install.packages(c('devtools', 'knitr', 'markdown', 'rmarkdown', 'testthat', 'remotes'), repos='https://cloud.r-project.org/')" && \ Rscript -e "devtools::install_version('roxygen2', version='7.2.0', repos='https://cloud.r-project.org')" && \ - Rscript -e "devtools::install_version('preferably', version='0.4', repos='https://cloud.r-project.org')" && \ - Rscript -e "devtools::install_version('pkgdown', version='2.0.1', repos='https://cloud.r-project.org', upgrade='never')" + Rscript -e "devtools::install_version('pkgdown', version='2.0.1', repos='https://cloud.r-project.org')" && \ + Rscript -e "devtools::install_version('preferably', version='0.4', repos='https://cloud.r-project.org', upgrade='never')" # See more in SPARK-39735 ENV R_LIBS_SITE="/usr/local/lib/R/site-library:${R_LIBS_SITE}:/usr/lib/R/library"