No description
  • Shell 75.1%
  • Python 11.4%
  • R 6%
  • Makefile 3%
  • Just 1.7%
  • Other 2.8%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
pat-s c144a0c8b9
fix(alpine): build R with cairo, png, jpeg and tiff graphics devices
The Alpine builder images install R-dev but never the graphics headers.
R's configure treats those as optional and does not fail when they are
absent, so the build succeeds and ships an R whose capabilities() reports
cairo, png, jpeg and tiff as FALSE. Installing the runtime libraries on
the target system afterwards cannot bring compiled-out devices back.

Note that --with-x=no was not the cause. R's bitmap and pangocairo checks
run independently of R_X11, and libpng was in fact found. capabilities("png")
needs a device backend, and with X11 off and cairo absent there was none,
which is why all four read FALSE. X11 stays off: these are headless images
and cairo covers png()/jpeg()/tiff()/svg().

- Install pkgconf, cairo-dev, pango-dev, fontconfig-dev, freetype-dev,
  libpng-dev, jpeg-dev, tiff-dev and zlib-dev in every Alpine builder image.
- Pass --with-cairo, --with-libpng, --with-jpeglib and --with-libtiff
  explicitly so the intent is visible next to --with-x=no.
- Assert REQUIRED_CAPABILITIES after make install, so a build that loses a
  device fails instead of being packaged and uploaded. Opt-in per Dockerfile,
  leaving the other platforms untouched.
- Add a FORCE_REBUILD escape hatch to the dedup step. Artifact filenames
  carry only the R version, so the HEAD probe would otherwise keep skipping
  every Alpine version and serving the stale broken binaries.
- Record the three gotchas in CLAUDE.md.

Verified by compiling R 4.5.1 in the patched alpine-322 image: jpeg, png,
tiff and cairo are TRUE, default bitmapType is cairo, and all four devices
render. The guard was exercised in both directions against that build.
2026-09-18 09:02:37 +02:00
.crow fix(alpine): build R with cairo, png, jpeg and tiff graphics devices 2026-09-18 09:02:37 +02:00
.github Add @stevenolen to CODEOWNERS for Ubuntu image/packaging changes 2024-05-08 18:37:09 -05:00
builder fix(alpine): build R with cairo, png, jpeg and tiff graphics devices 2026-09-18 09:02:37 +02:00
jenkins refactor: awscli -> s5cmd, add alpine 323 2025-12-06 12:33:35 +01:00
test feat: add Ubuntu 26.04 (Resolute) support 2026-04-24 13:20:25 +02:00
.gitignore make repo public 2019-03-25 12:59:14 -04:00
build.sh add alpine 2024-08-28 00:31:41 +02:00
CLAUDE.md fix(alpine): build R with cairo, png, jpeg and tiff graphics devices 2026-09-18 09:02:37 +02:00
deploy.Jenkinsfile Fix deploy job; use absolute path for HOME 2023-07-06 18:16:43 -05:00
handler.py Update versions.json generation for addition of .tar.xz source files 2024-02-29 13:28:58 -06:00
install.sh Adds Oracle Linux support 2024-02-12 23:44:33 +00:00
Jenkinsfile Update default branch to main 2022-11-30 15:50:40 -06:00
Justfile feat: add alpine-3.24 build config (#5) 2026-06-12 13:46:11 +00:00
LICENSE make repo public 2019-03-25 12:59:14 -04:00
Makefile feat: add alpine-3.24 build config (#5) 2026-06-12 13:46:11 +00:00
package-lock.json Update serverless version, remove serverless-pseudo-parameters as it's functionality is part of serverless since 2.5 2024-05-20 14:48:01 -04:00
package.json Update serverless version, remove serverless-pseudo-parameters as it's functionality is part of serverless since 2.5 2024-05-20 14:48:01 -04:00
README.md CI 2024-06-10 10:02:34 +02:00
renovate.json chore: add renovate config 2025-06-13 21:26:21 +02:00
requirements.txt Upgrade python to 3.11, upgrade packages to support python 3.11 2024-05-20 11:34:51 -04:00
serverless-resources.yml Fix invalid image for fedora-40 2024-05-24 16:58:54 -05:00
serverless-stepf.yml You cannot use the short version of the functions in the serverless-step-functions plugin, it's not supported at this time 2024-05-20 16:38:53 -04:00
serverless.yml Merge pull request #217 from rstudio/fedora40 2024-05-24 10:06:13 +02:00

r-builds

Builds R interpreter binaries for Linux.

  • No changes to upstream code (rstudio/r-builds) is made
  • Binaries are only built if they do not yet exist in the S3 bucket