Skip to content

Commit 379fb0f

Browse files
LuciferYangpan3793
authored andcommitted
[SPARK-56540][INFRA][4.0] Add libuv1-dev to CI Docker images to fix R package fs build failure
### What changes were proposed in this pull request? Add `libuv1-dev` to the `apt-get install` list in all five CI Dockerfiles that install R packages: - `dev/spark-test-image/sparkr/Dockerfile` - `dev/spark-test-image/lint/Dockerfile` - `dev/spark-test-image/docs/Dockerfile` - `dev/infra/Dockerfile` - `dev/create-release/spark-rm/Dockerfile.base` ### Why are the changes needed? The R package `fs` now requires system library `libuv` (`uv.h`). `fs` is a transitive dependency of both `rmarkdown` (via `sass` → `bslib`) and `testthat` (via `pkgload`). When the Docker layer cache is valid, the pre-built R packages are reused and everything works fine. But when the cache is invalidated (e.g. base image digest changes), the R packages are compiled from source. Without `libuv1-dev` installed, `fs` fails to configure: ``` Configuration failed because libuv was not found. Try installing: * deb: libuv1-dev (Debian, Ubuntu, etc) ... <stdin>:1:10: fatal error: uv.h: No such file or directory ERROR: configuration failed for package 'fs' ``` This triggers a cascade: ``` fs (missing libuv) → FAIL └→ sass → FAIL └→ bslib → FAIL └→ rmarkdown → FAIL └→ pkgload → FAIL └→ testthat → FAIL ``` The image build itself still "succeeds" because `install.packages()` in R does not return a non-zero exit code when individual packages fail to install -- it logs warnings but continues. So the Docker image gets pushed with `rmarkdown` and `testthat` missing, and the SparkR job fails at test time: ``` Error in library(testthat) : there is no package called 'testthat' ``` ``` Error: processing vignette 'sparkr-vignettes.Rmd' failed with diagnostics: there is no package called 'rmarkdown' ``` Example failure: https://github.com/LuciferYang/spark/actions/runs/24612026450/job/71969572946 ### Does this PR introduce _any_ user-facing change? No ### How was this patch tested? - Pass Github Actions ### Was this patch authored or co-authored using generative AI tooling? Generated-by: Claude Code Closes #55439 from LuciferYang/SPARK-56540-4.0. Authored-by: YangJie <yangjie01@baidu.com> Signed-off-by: Cheng Pan <chengpan@apache.org>
1 parent 0a631ad commit 379fb0f

5 files changed

Lines changed: 5 additions & 0 deletions

File tree

dev/create-release/spark-rm/Dockerfile.base

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,7 @@ RUN apt-get update && apt-get install -y \
6161
libpng-dev \
6262
libssl-dev \
6363
libtiff5-dev \
64+
libuv1-dev \
6465
libwebp-dev \
6566
libxml2-dev \
6667
msmtp \

dev/infra/Dockerfile

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,7 @@ RUN apt-get update && apt-get install -y \
4949
libpython3-dev \
5050
libssl-dev \
5151
libtiff5-dev \
52+
libuv1-dev \
5253
libwebp-dev \
5354
libxml2-dev \
5455
nodejs \

dev/spark-test-image/docs/Dockerfile

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,7 @@ RUN apt-get update && apt-get install -y \
5050
libpython3-dev \
5151
libssl-dev \
5252
libtiff5-dev \
53+
libuv1-dev \
5354
libwebp-dev \
5455
libxml2-dev \
5556
nodejs \

dev/spark-test-image/lint/Dockerfile

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,7 @@ RUN apt-get update && apt-get install -y \
4747
libpng-dev \
4848
libssl-dev \
4949
libtiff5-dev \
50+
libuv1-dev \
5051
libwebp-dev \
5152
libxml2-dev \
5253
nodejs \

dev/spark-test-image/sparkr/Dockerfile

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,7 @@ RUN apt-get update && apt-get install -y \
5050
libpython3-dev \
5151
libssl-dev \
5252
libtiff5-dev \
53+
libuv1-dev \
5354
libwebp-dev \
5455
libxml2-dev \
5556
pandoc \

0 commit comments

Comments
 (0)