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
3 changed files with 142 additions and 1 deletions

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)