feat: add Ubuntu 26.04 (Resolute) support
Some checks failed
ci/crow/manual/build/4 Pipeline failed
ci/crow/manual/build/1 Pipeline failed
ci/crow/manual/build/9 Pipeline failed
ci/crow/manual/build/11 Pipeline failed
ci/crow/manual/build/5 Pipeline failed
ci/crow/manual/build/6 Pipeline failed
ci/crow/manual/build/2 Pipeline was successful
ci/crow/manual/build/3 Pipeline was successful
ci/crow/manual/build/8 Pipeline failed
ci/crow/manual/build/10 Pipeline failed
ci/crow/manual/build/12 Pipeline failed
ci/crow/manual/build/7 Pipeline failed
ci/crow/manual/build/16 Pipeline failed
ci/crow/manual/build/13 Pipeline failed
ci/crow/manual/build/14 Pipeline failed
ci/crow/manual/build/15 Pipeline failed

Add Dockerfile, package script, and CI/build configuration for ubuntu-2604 across all build targets.
This commit is contained in:
Patrick Schratz 2026-04-24 13:20:25 +02:00
commit 782707f352
Signed by: pat-s
GPG key ID: 3C6318841EF78925
7 changed files with 142 additions and 1 deletions

View file

@ -43,6 +43,14 @@ matrix:
PLATFORM_ID: 2404
ARCH: amd64
ARCH_ID: amd64
- PLATFORM: ubuntu-2604
PLATFORM_ID: 2604
ARCH: arm64
ARCH_ID: arm64
- PLATFORM: ubuntu-2604
PLATFORM_ID: 2604
ARCH: amd64
ARCH_ID: amd64
# - PLATFORM: alpine-320
# PLATFORM_ID: alpine320
# ARCH: arm64

View file

@ -8,6 +8,11 @@ build-r-ubuntu-2404 R_VERSION:
export R_VERSION={{R_VERSION}}; \
make build-r-$PLATFORM
build-r-ubuntu-2604 R_VERSION:
export PLATFORM=ubuntu-2604; \
export R_VERSION={{R_VERSION}}; \
make build-r-$PLATFORM
build-r-centos-8 R_VERSION:
export PLATFORM=centos-8; \
export R_VERSION={{R_VERSION}}; \

View file

@ -1,4 +1,4 @@
PLATFORMS := ubuntu-2004 ubuntu-2204 ubuntu-2404 debian-10 debian-11 debian-12 centos-7 centos-8 rhel-9 opensuse-155 fedora-38 fedora-39 fedora-40 alpine-321 alpine-322 alpine-323 rhel-10
PLATFORMS := ubuntu-2004 ubuntu-2204 ubuntu-2404 ubuntu-2604 debian-10 debian-11 debian-12 centos-7 centos-8 rhel-9 opensuse-155 fedora-38 fedora-39 fedora-40 alpine-321 alpine-322 alpine-323 rhel-10
SLS_BINARY ?= ./node_modules/serverless/bin/serverless.js
deps:

View file

@ -0,0 +1,31 @@
FROM ubuntu:resolute
ENV OS_IDENTIFIER ubuntu-2604
RUN set -x \
&& sed -i "s|Types: deb|Types: deb deb-src|g" /etc/apt/sources.list.d/ubuntu.sources \
&& export DEBIAN_FRONTEND=noninteractive \
&& apt update \
&& apt install -y curl libcurl4-openssl-dev libicu-dev libopenblas0-pthread libpcre2-dev libpcre3-dev unzip wget \
&& apt build-dep -y r-base
# Install s5cmd for S3 uploads (much faster than AWS CLI)
RUN ARCH=$(uname -m); if [ "$ARCH" = "x86_64" ]; then S5CMD_ARCH="64bit"; else S5CMD_ARCH="arm64"; fi && \
curl -sL "https://github.com/peak/s5cmd/releases/download/v2.3.0/s5cmd_2.3.0_Linux-${S5CMD_ARCH}.tar.gz" | tar xz -C /usr/local/bin s5cmd
RUN curl -LO "https://github.com/goreleaser/nfpm/releases/download/v2.18.1/nfpm_$(dpkg --print-architecture).deb" && \
apt install -y "./nfpm_$(dpkg --print-architecture).deb" && \
rm "nfpm_$(dpkg --print-architecture).deb"
RUN chmod 0777 /opt
# Override the default pager used by R
ENV PAGER /usr/bin/pager
# R 3.x requires PCRE2 for Pango support on Ubuntu 26
ENV INCLUDE_PCRE2_IN_R_3 yes
COPY package.ubuntu-2604 /package.sh
COPY build.sh .
COPY patches /patches
ENTRYPOINT ./build.sh

View file

@ -35,6 +35,18 @@ services:
image: r-builds:ubuntu-2404
volumes:
- /tmp/ubuntu-2404:/tmp/output/ubuntu-2404
ubuntu-2604:
command: ./build.sh
environment:
- R_VERSION=${R_VERSION}
- R_INSTALL_PATH=${R_INSTALL_PATH}
- LOCAL_STORE=/tmp/output
build:
context: .
dockerfile: Dockerfile.ubuntu-2604
image: r-builds:ubuntu-2604
volumes:
- /tmp/ubuntu-2604:/tmp/output/ubuntu-2604
alpine-320:
command: ./build.sh
environment:

View file

@ -0,0 +1,77 @@
#!/bin/bash
if [[ ! -d /tmp/output/${OS_IDENTIFIER} ]]; then
mkdir -p "/tmp/output/${OS_IDENTIFIER}"
fi
# R 3.x requires PCRE1. On Ubuntu 26, R 3.x also requires PCRE2 for Pango support.
pcre_libs='- libpcre2-dev'
if [[ "${R_VERSION}" =~ ^3 ]]; then
pcre_libs='- libpcre2-dev
- libpcre3-dev'
fi
deflate_libs='# - libdeflate-dev'
if grep -q '^LIBS *=.*[-]ldeflate' ${R_INSTALL_PATH}/lib/R/etc/Makeconf; then
deflate_libs='- libdeflate-dev'
fi
cat <<EOF > /tmp/nfpm.yml
name: r-${R_VERSION}
version: 1
version_schema: none
section: universe/math
priority: optional
arch: $(dpkg --print-architecture)
maintainer: Posit Software, PBC <https://github.com/rstudio/r-builds>
description: |
GNU R statistical computation and graphics system
vendor: Posit Software, PBC
homepage: https://www.r-project.org
license: GPL-2
deb:
fields:
Bugs: https://github.com/rstudio/r-builds/issues
depends:
- g++
- gcc
- gfortran
- libbz2-dev
- libc6
- libcairo2
- libcurl4t64
${deflate_libs}
- libglib2.0-0t64
- libgomp1
- libicu-dev
- libjpeg8
- liblzma-dev
- libopenblas-dev
- libpango-1.0-0
- libpangocairo-1.0-0
- libpaper-utils
${pcre_libs}
- libpng16-16t64
- libreadline8t64
- libtcl8.6
- libtiff6
- libtirpc-dev
- libtk8.6
- libx11-6
- libxt6t64
- make
- ucf
- unzip
- zip
- zlib1g-dev
contents:
- src: ${R_INSTALL_PATH}
dst: ${R_INSTALL_PATH}
EOF
nfpm package \
-f /tmp/nfpm.yml \
-p deb \
-t "/tmp/output/${OS_IDENTIFIER}"
export PKG_FILE=$(ls /tmp/output/${OS_IDENTIFIER}/r-${R_VERSION}*.deb | head -1)

View file

@ -23,6 +23,14 @@ services:
- R_VERSION=${R_VERSION}
volumes:
- ../:/r-builds
ubuntu-2604:
image: ubuntu:resolute
command: /r-builds/test/test-apt.sh
environment:
- OS_IDENTIFIER=ubuntu-2604
- R_VERSION=${R_VERSION}
volumes:
- ../:/r-builds
debian-12:
image: debian:bookworm
command: /r-builds/test/test-apt.sh