fix(alpine): declare xz-dev so R can start after a clean install #10

Merged
pat-s merged 1 commit from fix/alpine-xz-runtime-dep into main 2026-09-18 07:14:18 +00:00
5 changed files with 20 additions and 5 deletions
Showing only changes of commit a2a6a4f7ef - Show all commits

fix(alpine): declare xz-dev so R can start after a clean install

libR.so links against liblzma, but the Alpine package never declared a
dependency on it. The list carried `# - liblzma-dev`, the Debian name,
which does not exist on Alpine and so had been commented out rather than
translated. The result is a package that installs cleanly and then fails
on every invocation:

  Error loading shared library liblzma.so.5: No such file or directory
    (needed by /opt/R/4.6.1/lib/R/lib/libR.so)
  Error relocating /opt/R/4.6.1/lib/R/lib/libR.so: lzma_code: symbol not found

Replace it with xz-dev, the Alpine equivalent, which pulls xz-libs, the
package that owns liblzma.so.5. Keep the -dev variant to match every other
entry in the list, which are -dev so that CRAN packages can be installed
from source on the target.

Verified by repackaging the currently published r-4.6.1_1_aarch64.apk with
this dependency list and installing it into a clean alpine:3.22 container:
R now starts with no manually added packages, where before it did not.
Patrick Schratz 2026-09-18 09:08:12 +02:00
No known key found for this signature in database
GPG key ID: 62050D5BC68AB6DC

View file

@ -42,7 +42,10 @@ ${deflate_libs}
# - libgomp1
- icu-dev
- jpeg-dev
# - liblzma-dev
# liblzma-dev is the Debian name and does not exist on Alpine; xz-dev is the
# equivalent and pulls xz-libs, which owns liblzma.so.5. Without it libR.so
# cannot relocate its lzma symbols and R fails to start at all.
- xz-dev
- openblas-dev
- pango
# - libpangocairo-1.0-0

View file

@ -42,7 +42,10 @@ ${deflate_libs}
# - libgomp1
- icu-dev
- jpeg-dev
# - liblzma-dev
# liblzma-dev is the Debian name and does not exist on Alpine; xz-dev is the
# equivalent and pulls xz-libs, which owns liblzma.so.5. Without it libR.so
# cannot relocate its lzma symbols and R fails to start at all.
- xz-dev
- openblas-dev
- pango
# - libpangocairo-1.0-0

View file

@ -42,7 +42,10 @@ ${deflate_libs}
# - libgomp1
- icu-dev
- jpeg-dev
# - liblzma-dev
# liblzma-dev is the Debian name and does not exist on Alpine; xz-dev is the
# equivalent and pulls xz-libs, which owns liblzma.so.5. Without it libR.so
# cannot relocate its lzma symbols and R fails to start at all.
- xz-dev
- openblas-dev
- pango
# - libpangocairo-1.0-0

View file

@ -42,7 +42,10 @@ ${deflate_libs}
# - libgomp1
- icu-dev
- jpeg-dev
# - liblzma-dev
# liblzma-dev is the Debian name and does not exist on Alpine; xz-dev is the
# equivalent and pulls xz-libs, which owns liblzma.so.5. Without it libR.so
# cannot relocate its lzma symbols and R fails to start at all.
- xz-dev
- openblas-dev
- pango
# - libpangocairo-1.0-0

View file

@ -42,7 +42,10 @@ ${deflate_libs}
# - libgomp1
- icu-dev
- jpeg-dev
# - liblzma-dev
# liblzma-dev is the Debian name and does not exist on Alpine; xz-dev is the
# equivalent and pulls xz-libs, which owns liblzma.so.5. Without it libR.so
# cannot relocate its lzma symbols and R fails to start at all.
- xz-dev
- openblas-dev
- pango
# - libpangocairo-1.0-0