fix merge conflict
This commit is contained in:
commit
8e2dbc253a
41 changed files with 13241 additions and 7325 deletions
|
|
@ -33,8 +33,6 @@ RUN yum -y update \
|
|||
python3-pip \
|
||||
readline-devel \
|
||||
rpm-build \
|
||||
ruby \
|
||||
ruby-devel \
|
||||
tcl-devel \
|
||||
tex \
|
||||
texinfo-tex \
|
||||
|
|
@ -51,8 +49,11 @@ RUN yum -y update \
|
|||
RUN pip3 install awscli --upgrade --user && \
|
||||
ln -s /root/.local/bin/aws /usr/bin/aws
|
||||
|
||||
# Pin fpm for compatibility with Ruby < 2.3
|
||||
RUN gem install ffi:1.12.2 fpm:1.11.0
|
||||
RUN if [ "$(arch)" == "aarch64" ]; then echo arm64; else echo amd64; fi > /tmp/arch
|
||||
|
||||
RUN curl -LO "https://github.com/goreleaser/nfpm/releases/download/v2.18.1/nfpm_$(cat /tmp/arch).rpm" && \
|
||||
yum install -y "nfpm_$(cat /tmp/arch).rpm" && \
|
||||
rm "nfpm_$(cat /tmp/arch).rpm"
|
||||
|
||||
RUN chmod 0777 /opt
|
||||
|
||||
|
|
@ -72,4 +73,5 @@ ENV R_RD4PDF="times,hyper"
|
|||
|
||||
COPY package.centos-7 /package.sh
|
||||
COPY build.sh .
|
||||
COPY patches /patches
|
||||
ENTRYPOINT ./build.sh
|
||||
|
|
|
|||
|
|
@ -34,8 +34,6 @@ RUN dnf -y upgrade \
|
|||
python3-pip \
|
||||
readline-devel \
|
||||
rpm-build \
|
||||
ruby \
|
||||
ruby-devel \
|
||||
tcl-devel \
|
||||
tex \
|
||||
texinfo-tex \
|
||||
|
|
@ -52,8 +50,11 @@ RUN dnf -y upgrade \
|
|||
RUN pip3 install awscli --upgrade --user \
|
||||
&& ln -s /root/.local/bin/aws /usr/bin/aws
|
||||
|
||||
# Pin fpm to avoid git dependency in 1.12.0
|
||||
RUN gem install fpm:1.11.0
|
||||
RUN if [ "$(arch)" == "aarch64" ]; then echo arm64; else echo amd64; fi > /tmp/arch
|
||||
|
||||
RUN curl -LO "https://github.com/goreleaser/nfpm/releases/download/v2.18.1/nfpm_$(cat /tmp/arch).rpm" && \
|
||||
dnf install -y "nfpm_$(cat /tmp/arch).rpm" && \
|
||||
rm "nfpm_$(cat /tmp/arch).rpm"
|
||||
|
||||
RUN chmod 0777 /opt
|
||||
|
||||
|
|
@ -73,4 +74,5 @@ ENV R_RD4PDF="times,hyper"
|
|||
|
||||
COPY package.centos-8 /package.sh
|
||||
COPY build.sh .
|
||||
COPY patches /patches
|
||||
ENTRYPOINT ./build.sh
|
||||
|
|
|
|||
|
|
@ -6,20 +6,22 @@ RUN set -x \
|
|||
&& export DEBIAN_FRONTEND=noninteractive \
|
||||
&& echo 'deb-src http://deb.debian.org/debian buster main' >> /etc/apt/sources.list \
|
||||
&& apt-get update \
|
||||
&& apt-get install -y gcc libcurl4-openssl-dev libicu-dev \
|
||||
libopenblas-base libpcre2-dev make python3-pip ruby ruby-dev wget \
|
||||
&& apt-get install -y curl gcc libcurl4-openssl-dev libicu-dev \
|
||||
libopenblas-base libpcre2-dev make python3-pip wget \
|
||||
&& apt-get build-dep -y r-base
|
||||
|
||||
RUN pip3 install awscli
|
||||
|
||||
RUN chmod 0777 /opt
|
||||
|
||||
# Pin fpm to avoid git dependency in 1.12.0
|
||||
RUN gem install fpm:1.11.0
|
||||
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"
|
||||
|
||||
# Override the default pager used by R
|
||||
ENV PAGER /usr/bin/pager
|
||||
|
||||
COPY package.debian-10 /package.sh
|
||||
COPY build.sh .
|
||||
COPY patches /patches
|
||||
ENTRYPOINT ./build.sh
|
||||
|
|
|
|||
|
|
@ -6,15 +6,17 @@ RUN set -x \
|
|||
&& export DEBIAN_FRONTEND=noninteractive \
|
||||
&& echo 'deb-src http://deb.debian.org/debian bullseye main' >> /etc/apt/sources.list \
|
||||
&& apt-get update \
|
||||
&& apt-get install -y gcc libcurl4-openssl-dev libicu-dev \
|
||||
libopenblas-base libpcre2-dev make python3-pip ruby ruby-dev wget \
|
||||
&& apt-get install -y curl gcc libcurl4-openssl-dev libicu-dev \
|
||||
libopenblas-base libpcre2-dev make python3-pip wget \
|
||||
&& apt-get build-dep -y r-base
|
||||
|
||||
RUN pip3 install awscli
|
||||
|
||||
RUN chmod 0777 /opt
|
||||
|
||||
RUN gem install fpm
|
||||
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"
|
||||
|
||||
# Override the default pager used by R
|
||||
ENV PAGER /usr/bin/pager
|
||||
|
|
@ -24,4 +26,5 @@ ENV INCLUDE_PCRE2_IN_R_3 yes
|
|||
|
||||
COPY package.debian-11 /package.sh
|
||||
COPY build.sh .
|
||||
COPY patches /patches
|
||||
ENTRYPOINT ./build.sh
|
||||
|
|
|
|||
34
builder/Dockerfile.debian-12
Normal file
34
builder/Dockerfile.debian-12
Normal file
|
|
@ -0,0 +1,34 @@
|
|||
FROM debian:bookworm
|
||||
|
||||
ENV OS_IDENTIFIER debian-12
|
||||
|
||||
RUN set -x \
|
||||
&& export DEBIAN_FRONTEND=noninteractive \
|
||||
&& echo 'deb-src http://deb.debian.org/debian bookworm main' >> /etc/apt/sources.list \
|
||||
&& apt-get update \
|
||||
&& apt-get install -y curl gcc libcurl4-openssl-dev libicu-dev \
|
||||
libopenblas0 libpcre2-dev make unzip wget \
|
||||
&& apt-get build-dep -y r-base
|
||||
|
||||
# Install AWS CLI
|
||||
RUN curl "https://awscli.amazonaws.com/awscli-exe-linux-$(uname -m).zip" -o "awscliv2.zip" && \
|
||||
unzip awscliv2.zip && \
|
||||
./aws/install && \
|
||||
rm -rf aws awscliv2.zip
|
||||
|
||||
RUN chmod 0777 /opt
|
||||
|
||||
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"
|
||||
|
||||
# Override the default pager used by R
|
||||
ENV PAGER /usr/bin/pager
|
||||
|
||||
# R 3.x requires PCRE2 for Pango support on Debian 12
|
||||
ENV INCLUDE_PCRE2_IN_R_3 yes
|
||||
|
||||
COPY package.debian-12 /package.sh
|
||||
COPY build.sh .
|
||||
COPY patches /patches
|
||||
ENTRYPOINT ./build.sh
|
||||
|
|
@ -1,25 +0,0 @@
|
|||
FROM debian:stretch
|
||||
|
||||
ENV OS_IDENTIFIER debian-9
|
||||
|
||||
RUN set -x \
|
||||
&& export DEBIAN_FRONTEND=noninteractive \
|
||||
&& echo 'deb-src http://deb.debian.org/debian stretch main' >> /etc/apt/sources.list \
|
||||
&& apt-get update \
|
||||
&& apt-get install -y gcc libcurl4-openssl-dev libicu-dev \
|
||||
libopenblas-base libpcre2-dev make python-pip ruby ruby-dev wget \
|
||||
&& apt-get build-dep -y r-base
|
||||
|
||||
RUN pip install awscli
|
||||
|
||||
RUN chmod 0777 /opt
|
||||
|
||||
# Pin fpm to avoid git dependency in 1.12.0
|
||||
RUN gem install fpm:1.11.0
|
||||
|
||||
# Override the default pager used by R
|
||||
ENV PAGER /usr/bin/pager
|
||||
|
||||
COPY package.debian-9 /package.sh
|
||||
COPY build.sh .
|
||||
ENTRYPOINT ./build.sh
|
||||
88
builder/Dockerfile.fedora-38
Normal file
88
builder/Dockerfile.fedora-38
Normal file
|
|
@ -0,0 +1,88 @@
|
|||
FROM fedora:38
|
||||
|
||||
ENV OS_IDENTIFIER fedora-38
|
||||
|
||||
RUN dnf -y upgrade \
|
||||
&& dnf -y install dnf-plugins-core \
|
||||
&& dnf -y install \
|
||||
autoconf \
|
||||
automake \
|
||||
bzip2-devel \
|
||||
cairo-devel \
|
||||
flexiblas-devel \
|
||||
gcc-c++ \
|
||||
gcc-gfortran \
|
||||
java-11-openjdk-devel \
|
||||
libICE-devel \
|
||||
libSM-devel \
|
||||
libX11-devel \
|
||||
libXmu-devel \
|
||||
libXt-devel \
|
||||
libcurl-devel \
|
||||
libicu-devel \
|
||||
libjpeg-devel \
|
||||
libpng-devel \
|
||||
libtiff-devel \
|
||||
libtool \
|
||||
make \
|
||||
ncurses-devel \
|
||||
pango-devel \
|
||||
pcre-devel \
|
||||
pcre2-devel \
|
||||
readline-devel \
|
||||
rpm-build \
|
||||
tcl-devel \
|
||||
tex \
|
||||
texinfo-tex \
|
||||
texlive-collection-latexrecommended \
|
||||
tk-devel \
|
||||
unzip \
|
||||
valgrind-devel \
|
||||
which \
|
||||
wget \
|
||||
xz-devel \
|
||||
zlib-devel \
|
||||
&& dnf clean all
|
||||
|
||||
# Install AWS CLI
|
||||
RUN curl "https://awscli.amazonaws.com/awscli-exe-linux-$(uname -m).zip" -o "awscliv2.zip" && \
|
||||
unzip awscliv2.zip && \
|
||||
./aws/install && \
|
||||
rm -rf aws awscliv2.zip
|
||||
|
||||
RUN if [ "$(arch)" == "aarch64" ]; then echo arm64; else echo amd64; fi > /tmp/arch
|
||||
|
||||
RUN curl -LO "https://github.com/goreleaser/nfpm/releases/download/v2.18.1/nfpm_$(cat /tmp/arch).rpm" && \
|
||||
dnf install -y "nfpm_$(cat /tmp/arch).rpm" && \
|
||||
rm "nfpm_$(cat /tmp/arch).rpm"
|
||||
|
||||
RUN chmod 0777 /opt
|
||||
|
||||
# Configure flags that don't use the defaults in build.sh
|
||||
ENV CONFIGURE_OPTIONS="\
|
||||
--enable-R-shlib \
|
||||
--with-tcltk \
|
||||
--enable-memory-profiling \
|
||||
--with-x \
|
||||
--with-system-valgrind-headers \
|
||||
--with-tcl-config=/usr/lib64/tclConfig.sh \
|
||||
--with-tk-config=/usr/lib64/tkConfig.sh \
|
||||
--enable-prebuilt-html \
|
||||
--with-blas=flexiblas \
|
||||
--with-lapack=flexiblas"
|
||||
|
||||
# Make sure that patching Java does not break R.
|
||||
# R's default JAVA_HOME path includes the exact Java version on CentOS/RHEL, which
|
||||
# requires users to run `R CMD javareconf` even on minor/patch upgrades. Use the
|
||||
# major version symlink to avoid this.
|
||||
# https://cran.r-project.org/doc/manuals/r-release/R-admin.html#Java-support
|
||||
# https://solutions.posit.co/envs-pkgs/using-rjava/
|
||||
ENV JAVA_HOME=/usr/lib/jvm/jre-11-openjdk
|
||||
|
||||
# R 3.x requires PCRE2 for Pango support on RHEL 9
|
||||
ENV INCLUDE_PCRE2_IN_R_3 yes
|
||||
|
||||
COPY package.fedora-38 /package.sh
|
||||
COPY build.sh .
|
||||
COPY patches /patches
|
||||
ENTRYPOINT ./build.sh
|
||||
88
builder/Dockerfile.fedora-39
Normal file
88
builder/Dockerfile.fedora-39
Normal file
|
|
@ -0,0 +1,88 @@
|
|||
FROM fedora:39
|
||||
|
||||
ENV OS_IDENTIFIER fedora-39
|
||||
|
||||
RUN dnf -y upgrade \
|
||||
&& dnf -y install dnf-plugins-core \
|
||||
&& dnf -y install \
|
||||
autoconf \
|
||||
automake \
|
||||
bzip2-devel \
|
||||
cairo-devel \
|
||||
flexiblas-devel \
|
||||
gcc-c++ \
|
||||
gcc-gfortran \
|
||||
java-11-openjdk-devel \
|
||||
libICE-devel \
|
||||
libSM-devel \
|
||||
libX11-devel \
|
||||
libXmu-devel \
|
||||
libXt-devel \
|
||||
libcurl-devel \
|
||||
libicu-devel \
|
||||
libjpeg-devel \
|
||||
libpng-devel \
|
||||
libtiff-devel \
|
||||
libtool \
|
||||
make \
|
||||
ncurses-devel \
|
||||
pango-devel \
|
||||
pcre-devel \
|
||||
pcre2-devel \
|
||||
readline-devel \
|
||||
rpm-build \
|
||||
tcl-devel \
|
||||
tex \
|
||||
texinfo-tex \
|
||||
texlive-collection-latexrecommended \
|
||||
tk-devel \
|
||||
unzip \
|
||||
valgrind-devel \
|
||||
which \
|
||||
wget \
|
||||
xz-devel \
|
||||
zlib-devel \
|
||||
&& dnf clean all
|
||||
|
||||
# Install AWS CLI
|
||||
RUN curl "https://awscli.amazonaws.com/awscli-exe-linux-$(uname -m).zip" -o "awscliv2.zip" && \
|
||||
unzip awscliv2.zip && \
|
||||
./aws/install && \
|
||||
rm -rf aws awscliv2.zip
|
||||
|
||||
RUN if [ "$(arch)" == "aarch64" ]; then echo arm64; else echo amd64; fi > /tmp/arch
|
||||
|
||||
RUN curl -LO "https://github.com/goreleaser/nfpm/releases/download/v2.18.1/nfpm_$(cat /tmp/arch).rpm" && \
|
||||
dnf install -y "nfpm_$(cat /tmp/arch).rpm" && \
|
||||
rm "nfpm_$(cat /tmp/arch).rpm"
|
||||
|
||||
RUN chmod 0777 /opt
|
||||
|
||||
# Configure flags for that don't use the defaults in build.sh
|
||||
ENV CONFIGURE_OPTIONS="\
|
||||
--enable-R-shlib \
|
||||
--with-tcltk \
|
||||
--enable-memory-profiling \
|
||||
--with-x \
|
||||
--with-system-valgrind-headers \
|
||||
--with-tcl-config=/usr/lib64/tclConfig.sh \
|
||||
--with-tk-config=/usr/lib64/tkConfig.sh \
|
||||
--enable-prebuilt-html \
|
||||
--with-blas=flexiblas \
|
||||
--with-lapack=flexiblas"
|
||||
|
||||
# Make sure that patching Java does not break R.
|
||||
# R's default JAVA_HOME path includes the exact Java version on CentOS/RHEL, which
|
||||
# requires users to run `R CMD javareconf` even on minor/patch upgrades. Use the
|
||||
# major version symlink to avoid this.
|
||||
# https://cran.r-project.org/doc/manuals/r-release/R-admin.html#Java-support
|
||||
# https://solutions.posit.co/envs-pkgs/using-rjava/
|
||||
ENV JAVA_HOME=/usr/lib/jvm/jre-11-openjdk
|
||||
|
||||
# R 3.x requires PCRE2 for Pango support on RHEL 9
|
||||
ENV INCLUDE_PCRE2_IN_R_3 yes
|
||||
|
||||
COPY package.fedora-39 /package.sh
|
||||
COPY build.sh .
|
||||
COPY patches /patches
|
||||
ENTRYPOINT ./build.sh
|
||||
103
builder/Dockerfile.opensuse-154
Normal file
103
builder/Dockerfile.opensuse-154
Normal file
|
|
@ -0,0 +1,103 @@
|
|||
FROM opensuse/leap:15.4
|
||||
|
||||
ENV OS_IDENTIFIER opensuse-154
|
||||
|
||||
# Most of these packages, and also the configure options that follow were determined
|
||||
# by reviewing "R-base.spec" from the following OpenSUSE RPM:
|
||||
# https://download.opensuse.org/repositories/devel:/languages:/R:/released/openSUSE_Leap_42.3/src/R-base-3.5.3-103.1.src.rpm
|
||||
|
||||
RUN zypper --non-interactive update
|
||||
RUN zypper --non-interactive --gpg-auto-import-keys -n install \
|
||||
bzip2 \
|
||||
cairo-devel \
|
||||
curl \
|
||||
fdupes \
|
||||
gcc \
|
||||
gcc-c++ \
|
||||
gcc-fortran \
|
||||
glib2-devel \
|
||||
glibc-locale \
|
||||
help2man \
|
||||
# Like openSUSE/SLES 15.3, SUSE 15.4 ships with both ICU 65 (libicu-devel) and
|
||||
# ICU 69 (icu.691-devel). Prefer ICU 69 because the devel packages can't coexist, and
|
||||
# zypper resolves libicu-devel to icu.691-devel when installing RPMs.
|
||||
icu.691-devel \
|
||||
java-11-openjdk-devel \
|
||||
libX11-devel \
|
||||
libXScrnSaver-devel \
|
||||
libXmu-devel \
|
||||
libXt-devel \
|
||||
libbz2-devel \
|
||||
libcurl-devel \
|
||||
libjpeg-devel \
|
||||
libpng-devel \
|
||||
libtiff-devel \
|
||||
make \
|
||||
pango-devel \
|
||||
pcre-devel \
|
||||
pcre2-devel \
|
||||
perl \
|
||||
perl-macros \
|
||||
readline-devel \
|
||||
rpm-build \
|
||||
shadow \
|
||||
tcl-devel \
|
||||
texinfo \
|
||||
texlive-ae \
|
||||
texlive-bibtex \
|
||||
texlive-cm-super \
|
||||
texlive-dvips \
|
||||
texlive-fancyvrb \
|
||||
texlive-helvetic \
|
||||
texlive-inconsolata \
|
||||
texlive-latex \
|
||||
texlive-makeindex \
|
||||
texlive-metafont \
|
||||
texlive-psnfss \
|
||||
texlive-tex \
|
||||
texlive-times \
|
||||
tk-devel \
|
||||
unzip \
|
||||
wget \
|
||||
xdg-utils \
|
||||
xorg-x11-devel \
|
||||
xz-devel \
|
||||
zip \
|
||||
zlib-devel \
|
||||
&& zypper clean
|
||||
|
||||
# Install AWS CLI
|
||||
RUN curl "https://awscli.amazonaws.com/awscli-exe-linux-$(uname -m).zip" -o "awscliv2.zip" && \
|
||||
unzip awscliv2.zip && \
|
||||
./aws/install && \
|
||||
rm -rf aws awscliv2.zip
|
||||
|
||||
RUN if [ "$(arch)" == "aarch64" ]; then echo arm64; else echo amd64; fi > /tmp/arch
|
||||
|
||||
RUN curl -LO "https://github.com/goreleaser/nfpm/releases/download/v2.18.1/nfpm_$(cat /tmp/arch).rpm" && \
|
||||
zypper --non-interactive --no-gpg-checks install "nfpm_$(cat /tmp/arch).rpm" && \
|
||||
rm "nfpm_$(cat /tmp/arch).rpm"
|
||||
|
||||
RUN chmod 0777 /opt
|
||||
|
||||
# Configure flags for SUSE that don't use the defaults in build.sh
|
||||
ENV CONFIGURE_OPTIONS="\
|
||||
--enable-R-shlib \
|
||||
--with-tcltk \
|
||||
--with-x \
|
||||
--enable-memory-profiling \
|
||||
--with-tcl-config=/usr/lib64/tclConfig.sh \
|
||||
--with-tk-config=/usr/lib64/tkConfig.sh"
|
||||
|
||||
# Make sure that patching Java does not break R.
|
||||
# On SUSE, the default JAVA_HOME path always uses the major Java version only,
|
||||
# but the JDK path is chosen by default. We change this to the JRE path to
|
||||
# support users who only want to install the JRE (non-devel) package.
|
||||
# https://cran.r-project.org/doc/manuals/r-release/R-admin.html#Java-support
|
||||
# https://solutions.posit.co/envs-pkgs/using-rjava/
|
||||
ENV JAVA_HOME=/usr/lib64/jvm/jre-11-openjdk
|
||||
|
||||
COPY package.opensuse-154 /package.sh
|
||||
COPY build.sh .
|
||||
COPY patches /patches
|
||||
ENTRYPOINT ./build.sh
|
||||
103
builder/Dockerfile.opensuse-155
Normal file
103
builder/Dockerfile.opensuse-155
Normal file
|
|
@ -0,0 +1,103 @@
|
|||
FROM opensuse/leap:15.5
|
||||
|
||||
ENV OS_IDENTIFIER opensuse-155
|
||||
|
||||
# Most of these packages, and also the configure options that follow were determined
|
||||
# by reviewing "R-base.spec" from the following OpenSUSE RPM:
|
||||
# https://download.opensuse.org/repositories/devel:/languages:/R:/released/openSUSE_Leap_42.3/src/R-base-3.5.3-103.1.src.rpm
|
||||
|
||||
RUN zypper --non-interactive update
|
||||
RUN zypper --non-interactive --gpg-auto-import-keys -n install \
|
||||
bzip2 \
|
||||
cairo-devel \
|
||||
curl \
|
||||
fdupes \
|
||||
gcc \
|
||||
gcc-c++ \
|
||||
gcc-fortran \
|
||||
glib2-devel \
|
||||
glibc-locale \
|
||||
help2man \
|
||||
# Like openSUSE/SLES 15.4, SUSE 15.5 ships with both ICU 65 (libicu-devel) and
|
||||
# ICU 69 (icu.691-devel). Prefer ICU 69 because the devel packages can't coexist, and
|
||||
# zypper resolves libicu-devel to icu.691-devel when installing RPMs.
|
||||
icu.691-devel \
|
||||
java-11-openjdk-devel \
|
||||
libX11-devel \
|
||||
libXScrnSaver-devel \
|
||||
libXmu-devel \
|
||||
libXt-devel \
|
||||
libbz2-devel \
|
||||
libcurl-devel \
|
||||
libjpeg-devel \
|
||||
libpng-devel \
|
||||
libtiff-devel \
|
||||
make \
|
||||
pango-devel \
|
||||
pcre-devel \
|
||||
pcre2-devel \
|
||||
perl \
|
||||
perl-macros \
|
||||
readline-devel \
|
||||
rpm-build \
|
||||
shadow \
|
||||
tcl-devel \
|
||||
texinfo \
|
||||
texlive-ae \
|
||||
texlive-bibtex \
|
||||
texlive-cm-super \
|
||||
texlive-dvips \
|
||||
texlive-fancyvrb \
|
||||
texlive-helvetic \
|
||||
texlive-inconsolata \
|
||||
texlive-latex \
|
||||
texlive-makeindex \
|
||||
texlive-metafont \
|
||||
texlive-psnfss \
|
||||
texlive-tex \
|
||||
texlive-times \
|
||||
tk-devel \
|
||||
unzip \
|
||||
wget \
|
||||
xdg-utils \
|
||||
xorg-x11-devel \
|
||||
xz-devel \
|
||||
zip \
|
||||
zlib-devel \
|
||||
&& zypper clean
|
||||
|
||||
# Install AWS CLI
|
||||
RUN curl "https://awscli.amazonaws.com/awscli-exe-linux-$(uname -m).zip" -o "awscliv2.zip" && \
|
||||
unzip awscliv2.zip && \
|
||||
./aws/install && \
|
||||
rm -rf aws awscliv2.zip
|
||||
|
||||
RUN if [ "$(arch)" == "aarch64" ]; then echo arm64; else echo amd64; fi > /tmp/arch
|
||||
|
||||
RUN curl -LO "https://github.com/goreleaser/nfpm/releases/download/v2.18.1/nfpm_$(cat /tmp/arch).rpm" && \
|
||||
zypper --non-interactive --no-gpg-checks install "nfpm_$(cat /tmp/arch).rpm" && \
|
||||
rm "nfpm_$(cat /tmp/arch).rpm"
|
||||
|
||||
RUN chmod 0777 /opt
|
||||
|
||||
# Configure flags for SUSE that don't use the defaults in build.sh
|
||||
ENV CONFIGURE_OPTIONS="\
|
||||
--enable-R-shlib \
|
||||
--with-tcltk \
|
||||
--with-x \
|
||||
--enable-memory-profiling \
|
||||
--with-tcl-config=/usr/lib64/tclConfig.sh \
|
||||
--with-tk-config=/usr/lib64/tkConfig.sh"
|
||||
|
||||
# Make sure that patching Java does not break R.
|
||||
# On SUSE, the default JAVA_HOME path always uses the major Java version only,
|
||||
# but the JDK path is chosen by default. We change this to the JRE path to
|
||||
# support users who only want to install the JRE (non-devel) package.
|
||||
# https://cran.r-project.org/doc/manuals/r-release/R-admin.html#Java-support
|
||||
# https://solutions.posit.co/envs-pkgs/using-rjava/
|
||||
ENV JAVA_HOME=/usr/lib64/jvm/jre-11-openjdk
|
||||
|
||||
COPY package.opensuse-155 /package.sh
|
||||
COPY build.sh .
|
||||
COPY patches /patches
|
||||
ENTRYPOINT ./build.sh
|
||||
94
builder/Dockerfile.rhel-9
Normal file
94
builder/Dockerfile.rhel-9
Normal file
|
|
@ -0,0 +1,94 @@
|
|||
FROM rockylinux:9
|
||||
|
||||
ENV OS_IDENTIFIER rhel-9
|
||||
|
||||
RUN dnf -y upgrade \
|
||||
&& dnf -y install dnf-plugins-core \
|
||||
&& dnf config-manager --set-enabled crb \
|
||||
&& dnf install -y epel-release \
|
||||
&& dnf -y install \
|
||||
autoconf \
|
||||
automake \
|
||||
bzip2-devel \
|
||||
cairo-devel \
|
||||
flexiblas-devel \
|
||||
gcc-c++ \
|
||||
gcc-gfortran \
|
||||
java-11-openjdk-devel \
|
||||
libICE-devel \
|
||||
libSM-devel \
|
||||
libX11-devel \
|
||||
libXmu-devel \
|
||||
libXt-devel \
|
||||
libcurl-devel \
|
||||
libicu-devel \
|
||||
libjpeg-devel \
|
||||
libpng-devel \
|
||||
libtiff-devel \
|
||||
libtool \
|
||||
make \
|
||||
ncurses-devel \
|
||||
pango-devel \
|
||||
pcre-devel \
|
||||
pcre2-devel \
|
||||
readline-devel \
|
||||
rpm-build \
|
||||
tcl-devel \
|
||||
tex \
|
||||
texinfo-tex \
|
||||
texlive-collection-latexrecommended \
|
||||
tk-devel \
|
||||
unzip \
|
||||
valgrind-devel \
|
||||
which \
|
||||
wget \
|
||||
xz-devel \
|
||||
zlib-devel \
|
||||
&& dnf clean all
|
||||
|
||||
# Install AWS CLI
|
||||
RUN curl "https://awscli.amazonaws.com/awscli-exe-linux-$(uname -m).zip" -o "awscliv2.zip" && \
|
||||
unzip awscliv2.zip && \
|
||||
./aws/install && \
|
||||
rm -rf aws awscliv2.zip
|
||||
|
||||
RUN if [ "$(arch)" == "aarch64" ]; then echo arm64; else echo amd64; fi > /tmp/arch
|
||||
|
||||
RUN curl -LO "https://github.com/goreleaser/nfpm/releases/download/v2.18.1/nfpm_$(cat /tmp/arch).rpm" && \
|
||||
dnf install -y "nfpm_$(cat /tmp/arch).rpm" && \
|
||||
rm "nfpm_$(cat /tmp/arch).rpm"
|
||||
|
||||
RUN chmod 0777 /opt
|
||||
|
||||
# Configure flags for RHEL 9 that don't use the defaults in build.sh
|
||||
ENV CONFIGURE_OPTIONS="\
|
||||
--enable-R-shlib \
|
||||
--with-tcltk \
|
||||
--enable-memory-profiling \
|
||||
--with-x \
|
||||
--with-system-valgrind-headers \
|
||||
--with-tcl-config=/usr/lib64/tclConfig.sh \
|
||||
--with-tk-config=/usr/lib64/tkConfig.sh \
|
||||
--enable-prebuilt-html"
|
||||
|
||||
# RHEL 9 doesn't have the inconsolata font, so override the defaults.
|
||||
# This may be removed if RHEL ever adds the texlive-inconsolata package from Fedora.
|
||||
# Or check `dnf provides '*/inconsolata.sty'` for a package that provides it.
|
||||
# https://cran.r-project.org/doc/manuals/r-release/R-admin.html#Making-the-manuals
|
||||
ENV R_RD4PDF="times,hyper"
|
||||
|
||||
# Make sure that patching Java does not break R.
|
||||
# R's default JAVA_HOME path includes the exact Java version on CentOS/RHEL, which
|
||||
# requires users to run `R CMD javareconf` even on minor/patch upgrades. Use the
|
||||
# major version symlink to avoid this.
|
||||
# https://cran.r-project.org/doc/manuals/r-release/R-admin.html#Java-support
|
||||
# https://solutions.posit.co/envs-pkgs/using-rjava/
|
||||
ENV JAVA_HOME=/usr/lib/jvm/jre-11-openjdk
|
||||
|
||||
# R 3.x requires PCRE2 for Pango support on RHEL 9
|
||||
ENV INCLUDE_PCRE2_IN_R_3 yes
|
||||
|
||||
COPY package.rhel-9 /package.sh
|
||||
COPY build.sh .
|
||||
COPY patches /patches
|
||||
ENTRYPOINT ./build.sh
|
||||
|
|
@ -1,24 +0,0 @@
|
|||
FROM ubuntu:bionic
|
||||
|
||||
ENV OS_IDENTIFIER ubuntu-1804
|
||||
|
||||
RUN set -x \
|
||||
&& sed -i "s|# deb-src|deb-src|g" /etc/apt/sources.list \
|
||||
&& export DEBIAN_FRONTEND=noninteractive \
|
||||
&& apt-get update \
|
||||
&& apt-get install -y libcurl4-openssl-dev libicu-dev libopenblas-base libpcre2-dev wget python-pip ruby ruby-dev \
|
||||
&& apt-get build-dep -y r-base
|
||||
|
||||
RUN pip install awscli
|
||||
|
||||
# Pin fpm to avoid git dependency in 1.12.0
|
||||
RUN gem install fpm:1.11.0
|
||||
|
||||
RUN chmod 0777 /opt
|
||||
|
||||
# Override the default pager used by R
|
||||
ENV PAGER /usr/bin/pager
|
||||
|
||||
COPY package.ubuntu-1804 /package.sh
|
||||
COPY build.sh .
|
||||
ENTRYPOINT ./build.sh
|
||||
|
|
@ -6,13 +6,14 @@ RUN set -x \
|
|||
&& sed -i "s|# deb-src|deb-src|g" /etc/apt/sources.list \
|
||||
&& export DEBIAN_FRONTEND=noninteractive \
|
||||
&& apt-get update \
|
||||
&& apt-get install -y libopenblas-dev libcurl4-openssl-dev libicu-dev libpcre2-dev wget python3-pip ruby ruby-dev \
|
||||
&& apt-get install -y curl libopenblas-dev libcurl4-openssl-dev libicu-dev liblapack-dev libpcre2-dev wget python3-pip \
|
||||
&& apt-get build-dep -y r-base
|
||||
|
||||
RUN pip3 install awscli
|
||||
|
||||
# Pin fpm to avoid git dependency in 1.12.0
|
||||
RUN gem install fpm:1.11.0
|
||||
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
|
||||
|
||||
|
|
@ -21,4 +22,5 @@ ENV PAGER /usr/bin/pager
|
|||
|
||||
COPY package.ubuntu-2004 /package.sh
|
||||
COPY build.sh .
|
||||
COPY patches /patches
|
||||
ENTRYPOINT ./build.sh
|
||||
|
|
|
|||
|
|
@ -6,12 +6,14 @@ RUN set -x \
|
|||
&& sed -i "s|# deb-src|deb-src|g" /etc/apt/sources.list \
|
||||
&& export DEBIAN_FRONTEND=noninteractive \
|
||||
&& apt-get update \
|
||||
&& apt-get install -y libcurl4-openssl-dev libicu-dev libopenblas-base libpcre2-dev wget python3-pip ruby ruby-dev \
|
||||
&& apt-get install -y curl libcurl4-openssl-dev libicu-dev libopenblas-base libpcre2-dev wget python3-pip \
|
||||
&& apt-get build-dep -y r-base
|
||||
|
||||
RUN pip3 install awscli
|
||||
|
||||
RUN gem install fpm
|
||||
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
|
||||
|
||||
|
|
@ -23,4 +25,5 @@ ENV INCLUDE_PCRE2_IN_R_3 yes
|
|||
|
||||
COPY package.ubuntu-2204 /package.sh
|
||||
COPY build.sh .
|
||||
COPY patches /patches
|
||||
ENTRYPOINT ./build.sh
|
||||
|
|
|
|||
33
builder/Dockerfile.ubuntu-2404
Normal file
33
builder/Dockerfile.ubuntu-2404
Normal file
|
|
@ -0,0 +1,33 @@
|
|||
FROM ubuntu:noble
|
||||
|
||||
ENV OS_IDENTIFIER ubuntu-2404
|
||||
|
||||
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 AWS CLI
|
||||
RUN curl "https://awscli.amazonaws.com/awscli-exe-linux-$(uname -m).zip" -o "awscliv2.zip" && \
|
||||
unzip awscliv2.zip && \
|
||||
./aws/install && \
|
||||
rm -rf aws awscliv2.zip
|
||||
|
||||
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 24
|
||||
ENV INCLUDE_PCRE2_IN_R_3 yes
|
||||
|
||||
COPY package.ubuntu-2404 /package.sh
|
||||
COPY build.sh .
|
||||
COPY patches /patches
|
||||
ENTRYPOINT ./build.sh
|
||||
|
|
@ -5,6 +5,7 @@ export CRAN=${CRAN-"https://cran.rstudio.com"}
|
|||
export S3_BUCKET_PREFIX=${S3_BUCKET_PREFIX-""}
|
||||
export OS_IDENTIFIER=${OS_IDENTIFIER-"unknown"}
|
||||
export TARBALL_NAME="R-${R_VERSION}-${OS_IDENTIFIER}.tar.gz"
|
||||
export R_INSTALL_PATH=${R_INSTALL_PATH:-"/opt/R/${R_VERSION}"}
|
||||
|
||||
# Some Dockerfiles may copy a `/env.sh` to set up environment variables
|
||||
# that require command substitution. If this file exists, source it.
|
||||
|
|
@ -33,9 +34,11 @@ upload_r() {
|
|||
fi
|
||||
}
|
||||
|
||||
# archive_r() - $1 as r version
|
||||
# archive_r()
|
||||
archive_r() {
|
||||
tar czf /tmp/${TARBALL_NAME} --directory=/opt/R ${1} --owner=0 --group=0
|
||||
dir=$(dirname "$R_INSTALL_PATH")
|
||||
base=$(basename "$R_INSTALL_PATH")
|
||||
tar czf "/tmp/${TARBALL_NAME}" --directory="$dir" "$base" --owner=0 --group=0
|
||||
}
|
||||
|
||||
fetch_r_source() {
|
||||
|
|
@ -61,14 +64,32 @@ fetch_r_source() {
|
|||
rm /tmp/R-${1}.tar.gz
|
||||
}
|
||||
|
||||
# Apply a patch for this R version if present. Typically for R-devel.
|
||||
patch_r() {
|
||||
cd /tmp/R-${1}
|
||||
|
||||
if [ -f "/patches/R-${1}.patch" ]; then
|
||||
patch -p1 < "/patches/R-${1}.patch"
|
||||
fi
|
||||
|
||||
if [ -f "/patches/R-${1}-${OS_IDENTIFIER}.patch" ]; then
|
||||
patch -p1 < "/patches/R-${1}-${OS_IDENTIFIER}.patch"
|
||||
fi
|
||||
|
||||
if [ -f "/patches/R-${1}-`arch`.patch" ]; then
|
||||
patch -p1 < "/patches/R-${1}-`arch`.patch"
|
||||
fi
|
||||
}
|
||||
|
||||
# compile_r() - $1 as r version
|
||||
compile_r() {
|
||||
cd /tmp/R-${1}
|
||||
r_version=${1}
|
||||
cd "/tmp/R-${r_version}"
|
||||
|
||||
# tools/config.guess in R versions older than 3.2.2 guess 'unknown' instead of 'pc'
|
||||
# test the version and properly set the flag.
|
||||
build_flag='--build=x86_64-pc-linux-gnu'
|
||||
if _version_is_greater_than ${R_VERSION} 3.2.2; then
|
||||
build_flag="--build=$(uname -m)-pc-linux-gnu"
|
||||
if _version_is_greater_than "${r_version}" 3.2.2; then
|
||||
build_flag=''
|
||||
fi
|
||||
|
||||
|
|
@ -81,7 +102,7 @@ compile_r() {
|
|||
# https://cran.r-project.org/doc/manuals/r-release/R-admin.html#Using-Fortran
|
||||
# https://gcc.gnu.org/gcc-10/porting_to.html
|
||||
gcc_major_version=$(gcc -dumpversion | cut -d '.' -f 1)
|
||||
if _version_is_less_than "${R_VERSION}" 3.6.2 && _version_is_greater_than "${gcc_major_version}" 9; then
|
||||
if _version_is_less_than "${r_version}" 3.6.2 && _version_is_greater_than "${gcc_major_version}" 9; then
|
||||
# Default CFLAGS/FFLAGS for all R 3.x versions is '-g -O2' when using GCC
|
||||
export CFLAGS='-g -O2 -fcommon'
|
||||
export FFLAGS='-g -O2 -fallow-argument-mismatch'
|
||||
|
|
@ -97,9 +118,9 @@ compile_r() {
|
|||
#
|
||||
# The INCLUDE_PCRE2_IN_R_3 environment variable can be set to include PCRE2
|
||||
# in R 3.x builds, for distributions where PCRE2 is always required.
|
||||
# In Debian 11/Ubuntu 22, Pango now depends on PCRE2, so R 3.x will not be compiled with
|
||||
# In Debian 11/Ubuntu 22/RHEL 9, Pango now depends on PCRE2, so R 3.x will not be compiled with
|
||||
# Pango support if the PCRE2 pkg-config file is missing.
|
||||
if [[ "${1}" =~ ^3 ]] && pkg-config --exists libpcre2-8 && [ -z "$INCLUDE_PCRE2_IN_R_3" ]; then
|
||||
if [[ "${r_version}" =~ ^3 ]] && pkg-config --exists libpcre2-8 && [ -z "$INCLUDE_PCRE2_IN_R_3" ]; then
|
||||
mkdir -p /tmp/pcre2
|
||||
pc_dir=$(pkg-config --variable pcfiledir libpcre2-8)
|
||||
mv ${pc_dir}/libpcre2-8.pc /tmp/pcre2
|
||||
|
|
@ -108,6 +129,15 @@ compile_r() {
|
|||
trap "{ mv /tmp/pcre2/libpcre2-8.pc ${pc_dir}; mv /tmp/pcre2/pcre2-config ${config_bin}; }" EXIT
|
||||
fi
|
||||
|
||||
# Allow libcurl 8.x to be used in R 4.2 and below. Despite a change in major
|
||||
# version number, libcurl 8 changes neither API nor ABI. This applies the same
|
||||
# change to configure made in R 4.3.0, replacing exit(1) with exit(0) when
|
||||
# LIBCURL_VERSION_MAJOR > 7.
|
||||
# https://github.com/wch/r-source/commit/da6638896413bcbb5970b2335b92582853f94e3c
|
||||
if _version_is_less_than "${r_version}" 4.3.0; then
|
||||
sed -i -z 's/#if LIBCURL_VERSION_MAJOR > 7\n exit(1)/#if LIBCURL_VERSION_MAJOR > 7\n exit(0)/' configure
|
||||
fi
|
||||
|
||||
# Default configure options. Some Dockerfiles override this with an ENV directive.
|
||||
default_configure_options="\
|
||||
--enable-R-shlib \
|
||||
|
|
@ -119,6 +149,16 @@ compile_r() {
|
|||
|
||||
CONFIGURE_OPTIONS=${CONFIGURE_OPTIONS:-$default_configure_options}
|
||||
|
||||
# For RHEL 9, link to external FlexiBLAS starting from R 4.3.0 to align with EPEL 9
|
||||
if _version_is_greater_than "${R_VERSION}" 4.2.10; then
|
||||
if [[ "${OS_IDENTIFIER}" = "rhel-9" ]]; then
|
||||
CONFIGURE_OPTIONS="$CONFIGURE_OPTIONS \
|
||||
--with-blas=flexiblas --with-lapack=flexiblas"
|
||||
fi
|
||||
fi
|
||||
|
||||
echo "Using CONFIGURE_OPTIONS: ${CONFIGURE_OPTIONS}"
|
||||
|
||||
# set some common environment variables for the configure step
|
||||
AWK=/usr/bin/awk \
|
||||
LIBnn=lib \
|
||||
|
|
@ -130,7 +170,7 @@ compile_r() {
|
|||
R_UNZIPCMD=/usr/bin/unzip \
|
||||
R_ZIPCMD=/usr/bin/zip \
|
||||
./configure \
|
||||
--prefix=/opt/R/${1} \
|
||||
--prefix="${R_INSTALL_PATH}" \
|
||||
${CONFIGURE_OPTIONS} \
|
||||
${build_flag}
|
||||
make clean
|
||||
|
|
@ -139,7 +179,7 @@ compile_r() {
|
|||
|
||||
# Add OS identifier to the default HTTP user agent.
|
||||
# Set this in the system Rprofile so it works when R is run with --vanilla.
|
||||
cat <<EOF >> /opt/R/${1}/lib/R/library/base/R/Rprofile
|
||||
cat <<EOF >> "${R_INSTALL_PATH}"/lib/R/library/base/R/Rprofile
|
||||
## Set the default HTTP user agent
|
||||
local({
|
||||
os_identifier <- if (file.exists("/etc/os-release")) {
|
||||
|
|
@ -157,7 +197,7 @@ EOF
|
|||
}
|
||||
|
||||
# check for packager script
|
||||
## If it exists this build is ready for packaging with fpm, so run the script
|
||||
## If it exists this build is ready for packaging with nFPM, so run the script
|
||||
## else do nothing
|
||||
package_r() {
|
||||
if [[ -f /package.sh ]]; then
|
||||
|
|
@ -167,7 +207,7 @@ package_r() {
|
|||
}
|
||||
|
||||
set_up_environment() {
|
||||
mkdir -p /opt/R
|
||||
mkdir -p "$R_INSTALL_PATH"
|
||||
}
|
||||
|
||||
_version_is_greater_than() {
|
||||
|
|
@ -181,7 +221,8 @@ _version_is_less_than() {
|
|||
###### RUN R COMPILE PROCEDURE ######
|
||||
set_up_environment
|
||||
fetch_r_source $R_VERSION
|
||||
patch_r $R_VERSION
|
||||
compile_r $R_VERSION
|
||||
package_r $R_VERSION
|
||||
archive_r $R_VERSION
|
||||
archive_r
|
||||
upload_r $R_VERSION
|
||||
|
|
|
|||
|
|
@ -1,21 +1,9 @@
|
|||
version: '2.0'
|
||||
|
||||
services:
|
||||
ubuntu-1804:
|
||||
command: ./build.sh
|
||||
environment:
|
||||
- R_VERSION=${R_VERSION}
|
||||
- LOCAL_STORE=/tmp/output
|
||||
build:
|
||||
context: .
|
||||
dockerfile: Dockerfile.ubuntu-1804
|
||||
image: r-builds:ubuntu-1804
|
||||
volumes:
|
||||
- ./integration/tmp:/tmp/output
|
||||
ubuntu-2004:
|
||||
command: ./build.sh
|
||||
environment:
|
||||
- R_VERSION=${R_VERSION}
|
||||
- R_INSTALL_PATH=${R_INSTALL_PATH}
|
||||
- LOCAL_STORE=/tmp/output
|
||||
build:
|
||||
context: .
|
||||
|
|
@ -27,6 +15,7 @@ services:
|
|||
command: ./build.sh
|
||||
environment:
|
||||
- R_VERSION=${R_VERSION}
|
||||
- R_INSTALL_PATH=${R_INSTALL_PATH}
|
||||
- LOCAL_STORE=/tmp/output
|
||||
build:
|
||||
context: .
|
||||
|
|
@ -34,21 +23,23 @@ services:
|
|||
image: r-builds:ubuntu-2204
|
||||
volumes:
|
||||
- ./integration/tmp:/tmp/output
|
||||
debian-9:
|
||||
ubuntu-2404:
|
||||
command: ./build.sh
|
||||
environment:
|
||||
- R_VERSION=${R_VERSION}
|
||||
- R_INSTALL_PATH=${R_INSTALL_PATH}
|
||||
- LOCAL_STORE=/tmp/output
|
||||
build:
|
||||
context: .
|
||||
dockerfile: Dockerfile.debian-9
|
||||
image: r-builds:debian-9
|
||||
dockerfile: Dockerfile.ubuntu-2404
|
||||
image: r-builds:ubuntu-2404
|
||||
volumes:
|
||||
- ./integration/tmp:/tmp/output
|
||||
debian-10:
|
||||
command: ./build.sh
|
||||
environment:
|
||||
- R_VERSION=${R_VERSION}
|
||||
- R_INSTALL_PATH=${R_INSTALL_PATH}
|
||||
- LOCAL_STORE=/tmp/output
|
||||
build:
|
||||
context: .
|
||||
|
|
@ -60,6 +51,7 @@ services:
|
|||
command: ./build.sh
|
||||
environment:
|
||||
- R_VERSION=${R_VERSION}
|
||||
- R_INSTALL_PATH=${R_INSTALL_PATH}
|
||||
- LOCAL_STORE=/tmp/output
|
||||
build:
|
||||
context: .
|
||||
|
|
@ -67,10 +59,23 @@ services:
|
|||
image: r-builds:debian-11
|
||||
volumes:
|
||||
- ./integration/tmp:/tmp/output
|
||||
debian-12:
|
||||
command: ./build.sh
|
||||
environment:
|
||||
- R_VERSION=${R_VERSION}
|
||||
- R_INSTALL_PATH=${R_INSTALL_PATH}
|
||||
- LOCAL_STORE=/tmp/output
|
||||
build:
|
||||
context: .
|
||||
dockerfile: Dockerfile.debian-12
|
||||
image: r-builds:debian-12
|
||||
volumes:
|
||||
- ./integration/tmp:/tmp/output
|
||||
centos-7:
|
||||
command: ./build.sh
|
||||
environment:
|
||||
- R_VERSION=${R_VERSION}
|
||||
- R_INSTALL_PATH=${R_INSTALL_PATH}
|
||||
- LOCAL_STORE=/tmp/output
|
||||
build:
|
||||
context: .
|
||||
|
|
@ -82,6 +87,7 @@ services:
|
|||
command: ./build.sh
|
||||
environment:
|
||||
- R_VERSION=${R_VERSION}
|
||||
- R_INSTALL_PATH=${R_INSTALL_PATH}
|
||||
- LOCAL_STORE=/tmp/output
|
||||
build:
|
||||
context: .
|
||||
|
|
@ -89,14 +95,63 @@ services:
|
|||
image: r-builds:centos-8
|
||||
volumes:
|
||||
- ./integration/tmp:/tmp/output
|
||||
opensuse-153:
|
||||
rhel-9:
|
||||
command: ./build.sh
|
||||
environment:
|
||||
- R_VERSION=${R_VERSION}
|
||||
- R_INSTALL_PATH=${R_INSTALL_PATH}
|
||||
- LOCAL_STORE=/tmp/output
|
||||
build:
|
||||
context: .
|
||||
dockerfile: Dockerfile.opensuse-153
|
||||
image: r-builds:opensuse-153
|
||||
dockerfile: Dockerfile.rhel-9
|
||||
image: r-builds:rhel-9
|
||||
volumes:
|
||||
- ./integration/tmp:/tmp/output
|
||||
opensuse-155:
|
||||
command: ./build.sh
|
||||
environment:
|
||||
- R_VERSION=${R_VERSION}
|
||||
- R_INSTALL_PATH=${R_INSTALL_PATH}
|
||||
- LOCAL_STORE=/tmp/output
|
||||
build:
|
||||
context: .
|
||||
dockerfile: Dockerfile.opensuse-155
|
||||
image: r-builds:opensuse-155
|
||||
volumes:
|
||||
- ./integration/tmp:/tmp/output
|
||||
opensuse-154:
|
||||
command: ./build.sh
|
||||
environment:
|
||||
- R_VERSION=${R_VERSION}
|
||||
- R_INSTALL_PATH=${R_INSTALL_PATH}
|
||||
- LOCAL_STORE=/tmp/output
|
||||
build:
|
||||
context: .
|
||||
dockerfile: Dockerfile.opensuse-154
|
||||
image: r-builds:opensuse-154
|
||||
volumes:
|
||||
- ./integration/tmp:/tmp/output
|
||||
fedora-38:
|
||||
command: ./build.sh
|
||||
environment:
|
||||
- R_VERSION=${R_VERSION}
|
||||
- R_INSTALL_PATH=${R_INSTALL_PATH}
|
||||
- LOCAL_STORE=/tmp/output
|
||||
build:
|
||||
context: .
|
||||
dockerfile: Dockerfile.fedora-38
|
||||
image: r-builds:fedora-38
|
||||
volumes:
|
||||
- ./integration/tmp:/tmp/output
|
||||
fedora-39:
|
||||
command: ./build.sh
|
||||
environment:
|
||||
- R_VERSION=${R_VERSION}
|
||||
- R_INSTALL_PATH=${R_INSTALL_PATH}
|
||||
- LOCAL_STORE=/tmp/output
|
||||
build:
|
||||
context: .
|
||||
dockerfile: Dockerfile.fedora-39
|
||||
image: r-builds:fedora-39
|
||||
volumes:
|
||||
- ./integration/tmp:/tmp/output
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
#!/bin/bash
|
||||
|
||||
if [[ ! -d /tmp/output/centos-7 ]]; then
|
||||
mkdir -p /tmp/output/centos-7
|
||||
if [[ ! -d /tmp/output/${OS_IDENTIFIER} ]]; then
|
||||
mkdir -p "/tmp/output/${OS_IDENTIFIER}"
|
||||
fi
|
||||
|
||||
# R 3.x requires PCRE1
|
||||
|
|
@ -12,55 +12,64 @@ fi
|
|||
|
||||
# create post-install script required for openblas
|
||||
cat <<EOF >> /post-install.sh
|
||||
mv /opt/R/${R_VERSION}/lib/R/lib/libRblas.so /opt/R/${R_VERSION}/lib/R/lib/libRblas.so.keep
|
||||
ln -s /usr/lib64/libopenblasp.so /opt/R/${R_VERSION}/lib/R/lib/libRblas.so
|
||||
mv ${R_INSTALL_PATH}/lib/R/lib/libRblas.so ${R_INSTALL_PATH}/lib/R/lib/libRblas.so.keep
|
||||
ln -s /usr/lib64/libopenblasp.so ${R_INSTALL_PATH}/lib/R/lib/libRblas.so
|
||||
EOF
|
||||
|
||||
# create after-remove script to remove internal blas
|
||||
cat <<EOF >> /before-remove.sh
|
||||
if [ -d /opt/R/${R_VERSION} ]; then
|
||||
rm -r /opt/R/${R_VERSION}
|
||||
cat <<EOF >> /after-remove.sh
|
||||
if [ -d ${R_INSTALL_PATH} ]; then
|
||||
rm -r ${R_INSTALL_PATH}
|
||||
fi
|
||||
EOF
|
||||
|
||||
fpm \
|
||||
-s dir \
|
||||
-t rpm \
|
||||
-v 1 \
|
||||
-n R-${R_VERSION} \
|
||||
--vendor "RStudio, PBC" \
|
||||
--deb-priority "optional" \
|
||||
--deb-field 'Bugs: https://github.com/rstudio/r-builds/issues' \
|
||||
--url "http://www.r-project.org/" \
|
||||
--description "GNU R statistical computation and graphics system" \
|
||||
--maintainer "RStudio, PBC https://github.com/rstudio/r-builds" \
|
||||
--license "GPL-2" \
|
||||
--after-install /post-install.sh \
|
||||
--after-remove /before-remove.sh \
|
||||
-p /tmp/output/centos-7/ \
|
||||
-d bzip2-devel \
|
||||
-d gcc \
|
||||
-d gcc-c++ \
|
||||
-d gcc-gfortran \
|
||||
-d libcurl-devel \
|
||||
-d libicu-devel \
|
||||
-d libSM \
|
||||
-d libtiff \
|
||||
-d libXmu \
|
||||
-d libXt \
|
||||
-d make \
|
||||
-d openblas-devel \
|
||||
-d pango \
|
||||
-d ${pcre_lib} \
|
||||
-d tcl \
|
||||
-d tk \
|
||||
-d unzip \
|
||||
-d which \
|
||||
-d xz-devel \
|
||||
-d zip \
|
||||
-d zlib-devel \
|
||||
/opt/R/${R_VERSION}
|
||||
if [ "$(arch)" == "aarch64" ]; then echo arm64; else echo amd64; fi > /tmp/arch
|
||||
|
||||
shopt -s extglob
|
||||
export PKG_FILE=$(ls /tmp/output/centos-7/[rR]-${R_VERSION}*.@(deb|rpm) | head -1)
|
||||
cat <<EOF > /tmp/nfpm.yml
|
||||
name: R-${R_VERSION}
|
||||
version: 1
|
||||
version_schema: none
|
||||
arch: $(cat /tmp/arch)
|
||||
release: 1
|
||||
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: GPLv2+
|
||||
depends:
|
||||
- bzip2-devel
|
||||
- gcc
|
||||
- gcc-c++
|
||||
- gcc-gfortran
|
||||
- libcurl-devel
|
||||
- libicu-devel
|
||||
- libSM
|
||||
- libtiff
|
||||
- libXmu
|
||||
- libXt
|
||||
- make
|
||||
- openblas-devel
|
||||
- pango
|
||||
- ${pcre_lib}
|
||||
- tcl
|
||||
- tk
|
||||
- unzip
|
||||
- which
|
||||
- xz-devel
|
||||
- zip
|
||||
- zlib-devel
|
||||
contents:
|
||||
- src: ${R_INSTALL_PATH}
|
||||
dst: ${R_INSTALL_PATH}
|
||||
scripts:
|
||||
postinstall: /post-install.sh
|
||||
postremove: /after-remove.sh
|
||||
EOF
|
||||
|
||||
nfpm package \
|
||||
-f /tmp/nfpm.yml \
|
||||
-p rpm \
|
||||
-t "/tmp/output/${OS_IDENTIFIER}"
|
||||
|
||||
export PKG_FILE=$(ls /tmp/output/${OS_IDENTIFIER}/R-${R_VERSION}*.rpm | head -1)
|
||||
|
|
|
|||
|
|
@ -1,5 +1,7 @@
|
|||
if [[ ! -d /tmp/output/centos-8 ]]; then
|
||||
mkdir -p /tmp/output/centos-8
|
||||
#!/bin/bash
|
||||
|
||||
if [[ ! -d /tmp/output/${OS_IDENTIFIER} ]]; then
|
||||
mkdir -p "/tmp/output/${OS_IDENTIFIER}"
|
||||
fi
|
||||
|
||||
# R 3.x requires PCRE1
|
||||
|
|
@ -8,57 +10,79 @@ if [[ "${R_VERSION}" =~ ^3 ]]; then
|
|||
pcre_lib='pcre-devel'
|
||||
fi
|
||||
|
||||
# create post-install script required for openblas
|
||||
# Create post-install script required for OpenBLAS.
|
||||
#
|
||||
# On RHEL and SUSE, we link R against the internal shared BLAS to make the
|
||||
# R binaries more portable and allow users to switch BLAS implementations without
|
||||
# having to recompile R. We default to OpenBLAS, but users may prefer other implementations.
|
||||
#
|
||||
# Binary packages built against the shared BLAS are also more portable and may be used
|
||||
# with the default R distributed by RHEL/SUSE, or other R installations using
|
||||
# shared BLAS and configured with a different BLAS (such as Microsoft R Open with MKL).
|
||||
# This is especially important for Posit Package Manager's binary packages.
|
||||
#
|
||||
# However, as of R 4.2.3, EPEL 8's R no longer uses shared BLAS and now links to an
|
||||
# external OpenBLAS (OpenMP). This means EPEL R no longer has a swappable BLAS and
|
||||
# is no longer compatible with these R builds.
|
||||
cat <<EOF >> /post-install.sh
|
||||
mv /opt/R/${R_VERSION}/lib/R/lib/libRblas.so /opt/R/${R_VERSION}/lib/R/lib/libRblas.so.keep
|
||||
ln -s /usr/lib64/libopenblasp.so.0 /opt/R/${R_VERSION}/lib/R/lib/libRblas.so
|
||||
mv ${R_INSTALL_PATH}/lib/R/lib/libRblas.so ${R_INSTALL_PATH}/lib/R/lib/libRblas.so.keep
|
||||
ln -s /usr/lib64/libopenblasp.so.0 ${R_INSTALL_PATH}/lib/R/lib/libRblas.so
|
||||
EOF
|
||||
|
||||
# create after-remove script to remove internal blas
|
||||
cat <<EOF >> /before-remove.sh
|
||||
if [ -d /opt/R/${R_VERSION} ]; then
|
||||
rm -r /opt/R/${R_VERSION}
|
||||
cat <<EOF >> /after-remove.sh
|
||||
if [ -d ${R_INSTALL_PATH} ]; then
|
||||
rm -r ${R_INSTALL_PATH}
|
||||
fi
|
||||
EOF
|
||||
|
||||
fpm \
|
||||
-s dir \
|
||||
-t rpm \
|
||||
-v 1 \
|
||||
-n R-${R_VERSION} \
|
||||
--vendor "RStudio, PBC" \
|
||||
--deb-priority "optional" \
|
||||
--deb-field 'Bugs: https://github.com/rstudio/r-builds/issues' \
|
||||
--url "http://www.r-project.org/" \
|
||||
--description "GNU R statistical computation and graphics system" \
|
||||
--maintainer "RStudio, PBC https://github.com/rstudio/r-builds" \
|
||||
--license "GPL-2" \
|
||||
--after-install /post-install.sh \
|
||||
--after-remove /before-remove.sh \
|
||||
-p /tmp/output/centos-8/ \
|
||||
-d bzip2-devel \
|
||||
-d gcc \
|
||||
-d gcc-c++ \
|
||||
-d gcc-gfortran \
|
||||
-d libcurl-devel \
|
||||
-d libicu-devel \
|
||||
-d libSM \
|
||||
-d libtiff \
|
||||
-d libXmu \
|
||||
-d libXt \
|
||||
-d make \
|
||||
-d openblas-threads \
|
||||
-d pango \
|
||||
-d ${pcre_lib} \
|
||||
-d tcl \
|
||||
-d tk \
|
||||
-d unzip \
|
||||
-d which \
|
||||
-d xz-devel \
|
||||
-d zip \
|
||||
-d zlib-devel \
|
||||
/opt/R/${R_VERSION}
|
||||
if [ "$(arch)" == "aarch64" ]; then echo arm64; else echo amd64; fi > /tmp/arch
|
||||
|
||||
shopt -s extglob
|
||||
export PKG_FILE=$(ls /tmp/output/centos-8/[rR]-${R_VERSION}*.@(deb|rpm) | head -1)
|
||||
cat <<EOF > /tmp/nfpm.yml
|
||||
name: R-${R_VERSION}
|
||||
version: 1
|
||||
version_schema: none
|
||||
arch: $(cat /tmp/arch)
|
||||
release: 1
|
||||
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: GPLv2+
|
||||
depends:
|
||||
- bzip2-devel
|
||||
- gcc
|
||||
- gcc-c++
|
||||
- gcc-gfortran
|
||||
- libcurl-devel
|
||||
- libicu-devel
|
||||
- libSM
|
||||
- libtiff
|
||||
- libXmu
|
||||
- libXt
|
||||
- make
|
||||
- openblas-threads
|
||||
- pango
|
||||
- ${pcre_lib}
|
||||
- tcl
|
||||
- tk
|
||||
- unzip
|
||||
- which
|
||||
- xz-devel
|
||||
- zip
|
||||
- zlib-devel
|
||||
contents:
|
||||
- src: ${R_INSTALL_PATH}
|
||||
dst: ${R_INSTALL_PATH}
|
||||
scripts:
|
||||
postinstall: /post-install.sh
|
||||
postremove: /after-remove.sh
|
||||
EOF
|
||||
|
||||
nfpm package \
|
||||
-f /tmp/nfpm.yml \
|
||||
-p rpm \
|
||||
-t "/tmp/output/${OS_IDENTIFIER}"
|
||||
|
||||
export PKG_FILE=$(ls /tmp/output/${OS_IDENTIFIER}/R-${R_VERSION}*.rpm | head -1)
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
#!/bin/bash
|
||||
|
||||
if [[ ! -d /tmp/output/debian-10 ]]; then
|
||||
mkdir -p /tmp/output/debian-10
|
||||
if [[ ! -d /tmp/output/${OS_IDENTIFIER} ]]; then
|
||||
mkdir -p "/tmp/output/${OS_IDENTIFIER}"
|
||||
fi
|
||||
|
||||
# R 3.x requires PCRE1
|
||||
|
|
@ -10,50 +10,60 @@ if [[ "${R_VERSION}" =~ ^3 ]]; then
|
|||
pcre_lib='libpcre3-dev'
|
||||
fi
|
||||
|
||||
fpm \
|
||||
-s dir \
|
||||
-t deb \
|
||||
-v 1 \
|
||||
-n R-${R_VERSION} \
|
||||
--vendor "RStudio, PBC" \
|
||||
--deb-priority "optional" \
|
||||
--deb-field 'Bugs: https://github.com/rstudio/r-builds/issues' \
|
||||
--url "http://www.r-project.org/" \
|
||||
--description "GNU R statistical computation and graphics system" \
|
||||
--maintainer "RStudio, PBC https://github.com/rstudio/r-builds" \
|
||||
--license "GPL-2" \
|
||||
-p /tmp/output/debian-10/ \
|
||||
-d ca-certificates \
|
||||
-d g++ \
|
||||
-d gcc \
|
||||
-d gfortran \
|
||||
-d libbz2-dev \
|
||||
-d libc6 \
|
||||
-d libcairo2 \
|
||||
-d libcurl4-openssl-dev \
|
||||
-d libglib2.0-0 \
|
||||
-d libgomp1 \
|
||||
-d libicu-dev \
|
||||
-d liblzma-dev \
|
||||
-d libopenblas-dev \
|
||||
-d libpango-1.0-0 \
|
||||
-d libpangocairo-1.0-0 \
|
||||
-d libpaper-utils \
|
||||
-d ${pcre_lib} \
|
||||
-d libpng16-16 \
|
||||
-d libreadline7 \
|
||||
-d libtcl8.6 \
|
||||
-d libtiff5 \
|
||||
-d libtk8.6 \
|
||||
-d libx11-6 \
|
||||
-d libxt6 \
|
||||
-d make \
|
||||
-d ucf \
|
||||
-d unzip \
|
||||
-d zip \
|
||||
-d zlib1g-dev \
|
||||
/opt/R/${R_VERSION}
|
||||
cat <<EOF > /tmp/nfpm.yml
|
||||
name: r-${R_VERSION}
|
||||
version: 1
|
||||
version_schema: none
|
||||
section: gnu-r
|
||||
arch: $(dpkg --print-architecture)
|
||||
priority: optional
|
||||
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:
|
||||
- ca-certificates
|
||||
- g++
|
||||
- gcc
|
||||
- gfortran
|
||||
- libbz2-dev
|
||||
- libc6
|
||||
- libcairo2
|
||||
- libcurl4-openssl-dev
|
||||
- libglib2.0-0
|
||||
- libgomp1
|
||||
- libicu-dev
|
||||
- liblzma-dev
|
||||
- libopenblas-dev
|
||||
- libpango-1.0-0
|
||||
- libpangocairo-1.0-0
|
||||
- libpaper-utils
|
||||
- ${pcre_lib}
|
||||
- libpng16-16
|
||||
- libreadline7
|
||||
- libtcl8.6
|
||||
- libtiff5
|
||||
- libtk8.6
|
||||
- libx11-6
|
||||
- libxt6
|
||||
- make
|
||||
- ucf
|
||||
- unzip
|
||||
- zip
|
||||
- zlib1g-dev
|
||||
contents:
|
||||
- src: ${R_INSTALL_PATH}
|
||||
dst: ${R_INSTALL_PATH}
|
||||
EOF
|
||||
|
||||
shopt -s extglob
|
||||
export PKG_FILE=$(ls /tmp/output/debian-10/[rR]-${R_VERSION}*.@(deb|rpm) | head -1)
|
||||
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)
|
||||
|
|
|
|||
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue