Discontinue CentOS 6 builds for EOL
This only stops the builds. Existing binaries will continue to be hosted, and the quick install script continues to support CentOS 6.
This commit is contained in:
parent
0eaf4ff908
commit
c0ee373540
10 changed files with 4 additions and 379 deletions
2
Makefile
2
Makefile
|
|
@ -1,4 +1,4 @@
|
||||||
PLATFORMS := ubuntu-1604 ubuntu-1804 ubuntu-2004 debian-9 debian-10 centos-6 centos-7 centos-8 opensuse-42 opensuse-15 opensuse-152
|
PLATFORMS := ubuntu-1604 ubuntu-1804 ubuntu-2004 debian-9 debian-10 centos-7 centos-8 opensuse-42 opensuse-15 opensuse-152
|
||||||
SLS_BINARY ?= ./node_modules/serverless/bin/serverless
|
SLS_BINARY ?= ./node_modules/serverless/bin/serverless
|
||||||
|
|
||||||
deps:
|
deps:
|
||||||
|
|
|
||||||
10
README.md
10
README.md
|
|
@ -74,12 +74,9 @@ sudo gdebi r-${R_VERSION}_1_amd64.deb
|
||||||
#### RHEL/CentOS Linux
|
#### RHEL/CentOS Linux
|
||||||
|
|
||||||
Enable the [Extra Packages for Enterprise Linux](https://fedoraproject.org/wiki/EPEL)
|
Enable the [Extra Packages for Enterprise Linux](https://fedoraproject.org/wiki/EPEL)
|
||||||
repository (RHEL/CentOS 6 and 7 only):
|
repository (RHEL/CentOS 7 only):
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
# CentOS / RHEL 6
|
|
||||||
sudo yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-6.noarch.rpm
|
|
||||||
|
|
||||||
# CentOS / RHEL 7
|
# CentOS / RHEL 7
|
||||||
sudo yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
|
sudo yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
|
||||||
```
|
```
|
||||||
|
|
@ -96,9 +93,6 @@ sudo yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noa
|
||||||
|
|
||||||
Download the rpm package:
|
Download the rpm package:
|
||||||
```bash
|
```bash
|
||||||
# CentOS / RHEL 6
|
|
||||||
wget https://cdn.rstudio.com/r/centos-6/pkgs/R-${R_VERSION}-1-1.x86_64.rpm
|
|
||||||
|
|
||||||
# CentOS / RHEL 7
|
# CentOS / RHEL 7
|
||||||
wget https://cdn.rstudio.com/r/centos-7/pkgs/R-${R_VERSION}-1-1.x86_64.rpm
|
wget https://cdn.rstudio.com/r/centos-7/pkgs/R-${R_VERSION}-1-1.x86_64.rpm
|
||||||
|
|
||||||
|
|
@ -231,7 +225,7 @@ environment:
|
||||||
# snip
|
# snip
|
||||||
JOB_DEFINITION_ARN_debian_9:
|
JOB_DEFINITION_ARN_debian_9:
|
||||||
Ref: rBuildsBatchJobDefinitionDebian9
|
Ref: rBuildsBatchJobDefinitionDebian9
|
||||||
SUPPORTED_PLATFORMS: ubuntu-1604,ubuntu-1804,debian-9,debian-10,centos-6,centos-7,centos-8,opensuse-42,opensuse-15
|
SUPPORTED_PLATFORMS: ubuntu-1604,ubuntu-1804,debian-9,debian-10,centos-7,centos-8,opensuse-42,opensuse-15
|
||||||
```
|
```
|
||||||
|
|
||||||
### Makefile
|
### Makefile
|
||||||
|
|
|
||||||
|
|
@ -1,224 +0,0 @@
|
||||||
FROM centos:centos6
|
|
||||||
|
|
||||||
ENV OS_IDENTIFIER centos-6
|
|
||||||
|
|
||||||
RUN yum -y update \
|
|
||||||
&& yum -y install epel-release \
|
|
||||||
&& yum -y install \
|
|
||||||
bzip2-devel \
|
|
||||||
cairo-devel \
|
|
||||||
gcc-c++ \
|
|
||||||
gcc-gfortran \
|
|
||||||
gcc-objc \
|
|
||||||
glibc-devel \
|
|
||||||
groff \
|
|
||||||
java-1.8.0-openjdk-devel \
|
|
||||||
krb5-devel \
|
|
||||||
krb5-libs \
|
|
||||||
libICE-devel \
|
|
||||||
libSM-devel \
|
|
||||||
libX11-devel \
|
|
||||||
libXmu-devel \
|
|
||||||
libXt-devel \
|
|
||||||
libgssapi-devel \
|
|
||||||
libicu-devel \
|
|
||||||
libidn-devel \
|
|
||||||
libjpeg-devel \
|
|
||||||
libpng-devel \
|
|
||||||
libssh2-devel \
|
|
||||||
libtiff-devel \
|
|
||||||
ncurses-devel \
|
|
||||||
openldap \
|
|
||||||
openldap-devel \
|
|
||||||
openssh-clients \
|
|
||||||
openssh-server \
|
|
||||||
openssl-devel \
|
|
||||||
pango-devel \
|
|
||||||
pcre-devel \
|
|
||||||
pcre2-devel \
|
|
||||||
pkgconfig \
|
|
||||||
python34 \
|
|
||||||
python34-pip \
|
|
||||||
readline-devel \
|
|
||||||
rpm-build \
|
|
||||||
stunnel \
|
|
||||||
tcl-devel \
|
|
||||||
texinfo-tex \
|
|
||||||
texlive-latex \
|
|
||||||
tk-devel \
|
|
||||||
valgrind-devel \
|
|
||||||
wget \
|
|
||||||
xz-devel \
|
|
||||||
zlib-devel \
|
|
||||||
&& yum clean all
|
|
||||||
|
|
||||||
# Install AWS CLI.
|
|
||||||
RUN pip3 install awscli --upgrade --user && \
|
|
||||||
ln -s /root/.local/bin/aws /usr/bin/aws
|
|
||||||
|
|
||||||
RUN chmod 0777 /opt
|
|
||||||
|
|
||||||
# Compile newer versions of zlib, bzip2, xz, pcre, and curl.
|
|
||||||
#
|
|
||||||
# Several compression libraries that were at one time included in R-devel have been removed.
|
|
||||||
# Instead of providing these libraries, R-devel assumes they are pre-installed. On RedHat 6,
|
|
||||||
# this results in build errors when zlib, bzip, pcre, curl, and xz are required. These
|
|
||||||
# libraries must be downloaded and compiled before building R-devel. Reference:
|
|
||||||
# http://pj.freefaculty.org/blog/?p=315
|
|
||||||
#
|
|
||||||
# It's also import to build the static versions of these libraries and link them
|
|
||||||
# statically when building R. This allows us to use the R binaries we build on
|
|
||||||
# another CentOS/RHEL 6 OS without updating the same five libraries.
|
|
||||||
# For more info, see the "R.spec" RPM spec file in the EPEL source archive at:
|
|
||||||
# http://download-ib01.fedoraproject.org/pub/epel/7/SRPMS/Packages/r/R-3.5.2-2.el7.src.rpm
|
|
||||||
# (search for "zlibhack" in R.spec).
|
|
||||||
#
|
|
||||||
# First, reate a directory for the additional libraries.
|
|
||||||
RUN mkdir -p /tmp/extra
|
|
||||||
|
|
||||||
# zlib 1.2.8
|
|
||||||
#
|
|
||||||
# Note: zlib 1.2.11 works fine for all R versions except 3.3.0, 3.3.1, and 3.3.2,
|
|
||||||
# so I went with an older version (1.2.8) to accommodate the flaky R versions. See the
|
|
||||||
# following note on https://www.r-statistics.com/2017/03/r-3-3-3-is-released/:
|
|
||||||
#
|
|
||||||
# The configure check for the zlib version is now robust to versions longer than 5 characters,
|
|
||||||
# including 1.2.11.
|
|
||||||
#
|
|
||||||
ARG ZLIB_VERSION=1.2.8
|
|
||||||
ARG ZLIB_DOWNLOAD_SHA256=36658cb768a54c1d4dec43c3116c27ed893e88b02ecfcb44f2166f9c0b7f2a0d
|
|
||||||
RUN curl -fsSL "https://zlib.net/fossils/zlib-${ZLIB_VERSION}.tar.gz" -o zlib.tar.gz \
|
|
||||||
&& echo "$ZLIB_DOWNLOAD_SHA256 zlib.tar.gz" | sha256sum -c - \
|
|
||||||
&& CWD=`pwd` && TMP=`mktemp -d` \
|
|
||||||
&& tar -C $TMP -zxvf zlib.tar.gz \
|
|
||||||
&& cd $TMP/zlib* \
|
|
||||||
&& ./configure --prefix=/tmp/extra --static \
|
|
||||||
&& make CFLAGS="-fpic -fPIC" \
|
|
||||||
&& make install \
|
|
||||||
&& cd $CWD && rm -rf $TMP && rm -rf zlib.tar.gz
|
|
||||||
|
|
||||||
# bzip2 1.0.6
|
|
||||||
ARG BZIP2_VERSION=1.0.6
|
|
||||||
ARG BZIP2_DOWNLOAD_SHA1=3f89f861209ce81a6bab1fd1998c0ef311712002
|
|
||||||
RUN curl -fsSL "https://sourceforge.net/projects/bzip2/files/bzip2-{$BZIP2_VERSION}.tar.gz/download" -o bzip2.tar.gz \
|
|
||||||
&& echo "$BZIP2_DOWNLOAD_SHA1 bzip2.tar.gz" | sha1sum -c - \
|
|
||||||
&& CWD=`pwd` && TMP=`mktemp -d` \
|
|
||||||
&& tar -C $TMP -zxvf bzip2.tar.gz \
|
|
||||||
&& cd $TMP/bzip2* \
|
|
||||||
&& make libbz2.a CFLAGS="-D_FILE_OFFSET_BITS=64 -fpic -fPIC" PREFIX=/tmp/extra \
|
|
||||||
&& make install PREFIX=/tmp/extra \
|
|
||||||
&& cd $CWD && rm -rf $TMP && rm -rf bzip2.tar.gz
|
|
||||||
|
|
||||||
# xz 5.2.4 (for lzma libraries)
|
|
||||||
ARG XZ_VERSION=5.2.4
|
|
||||||
ARG XZ_DOWNLOAD_SHA1=63ca380029597b951ce9afc6dec28f44f70bb5bd
|
|
||||||
RUN curl -fsSL "https://sourceforge.net/projects/lzmautils/files/xz-{$XZ_VERSION}.tar.gz/download" -o xz.tar.gz \
|
|
||||||
&& echo "$XZ_DOWNLOAD_SHA1 xz.tar.gz" | sha1sum -c - \
|
|
||||||
&& CWD=`pwd` && TMP=`mktemp -d` \
|
|
||||||
&& tar -C $TMP -zxvf xz.tar.gz \
|
|
||||||
&& cd $TMP/xz* \
|
|
||||||
&& CFLAGS="-fpic -fPIC" ./configure --enable-static=yes --enable-shared=no --prefix=/tmp/extra \
|
|
||||||
&& make -j8 \
|
|
||||||
&& make install \
|
|
||||||
&& cd $CWD && rm -rf $TMP && rm -rf xz.tar.gz
|
|
||||||
|
|
||||||
# PCRE 8.42
|
|
||||||
#
|
|
||||||
# The PCRE library provides PGP signatures for verifying downloads. Originally, I tried to do some
|
|
||||||
# PGP validation in the Dockerfile, but I ran into trouble with flaky key servers. To streamline
|
|
||||||
# things, I verified the download manually and then generated a sha256 checksum with the following
|
|
||||||
# commands:
|
|
||||||
# gpg --recv-key FB0F43D8
|
|
||||||
# gpg pcre-8.42.tar.gz.sig
|
|
||||||
# sha256sum pcre-8.42.tar.gz
|
|
||||||
#
|
|
||||||
ARG PCRE_VERSION=8.42
|
|
||||||
ARG PCRE_DOWNLOAD_SHA256=69acbc2fbdefb955d42a4c606dfde800c2885711d2979e356c0636efde9ec3b5
|
|
||||||
RUN curl -fsSL "https://ftp.pcre.org/pub/pcre/pcre-{$PCRE_VERSION}.tar.gz" -o pcre.tar.gz \
|
|
||||||
&& echo "$PCRE_DOWNLOAD_SHA256 pcre.tar.gz" | sha256sum -c - \
|
|
||||||
&& CWD=`pwd` && TMP=`mktemp -d` \
|
|
||||||
&& tar -C $TMP -zxvf pcre.tar.gz \
|
|
||||||
&& cd $TMP/pcre* \
|
|
||||||
&& mkdir -p /tmp/extra \
|
|
||||||
&& CFLAGS="-fpic -fPIC" ./configure --enable-static=yes --enable-shared=no --enable-utf --enable-unicode-properties --enable-pcre8 --enable-pcre16 --enable-pcre32 --prefix=/tmp/extra \
|
|
||||||
&& make -j8 \
|
|
||||||
&& make install \
|
|
||||||
&& cd $CWD && rm -rf $TMP && rm -rf pcre.tar.gz
|
|
||||||
|
|
||||||
# Curl 7.63.0
|
|
||||||
#
|
|
||||||
# The curl library provides PGP signatures for verifying downloads. Originally, I tried to do some
|
|
||||||
# PGP validation in the Dockerfile, but I ran into trouble with flaky key servers. To streamline
|
|
||||||
# things, I verified the download manually and then generated a sha256 checksum with the following
|
|
||||||
# commands:
|
|
||||||
# gpg --recv-key B71E12C2
|
|
||||||
# gpg curl-7.63.0.tar.gz.asc
|
|
||||||
# sha256sum curl-7.63.0.tar.gz
|
|
||||||
#
|
|
||||||
ARG CURL_VERSION=7.63.0
|
|
||||||
ARG CURL_DOWNLOAD_SHA256=d483b89062832e211c887d7cf1b65c902d591b48c11fe7d174af781681580b41
|
|
||||||
RUN curl -fsSL "https://curl.haxx.se/download/curl-{$CURL_VERSION}.tar.gz" -o curl.tar.gz \
|
|
||||||
&& echo "$CURL_DOWNLOAD_SHA256 curl.tar.gz" | sha256sum -c - \
|
|
||||||
&& CWD=`pwd` && TMP=`mktemp -d` \
|
|
||||||
&& tar -C $TMP -zxvf curl.tar.gz \
|
|
||||||
&& cd $TMP/curl* \
|
|
||||||
&& CFLAGS="-fpic -fPIC" ./configure --enable-static=yes --enable-shared=no --with-ssl --enable-ipv6 --with-gssapi --with-libidn --enable-ldaps --with-libssh2 --enable-threaded-resolver --prefix=/tmp/extra \
|
|
||||||
&& make V=1 \
|
|
||||||
&& make install \
|
|
||||||
&& cd $CWD && rm -rf $TMP && rm -rf curl.tar.gz
|
|
||||||
|
|
||||||
# Compiler and linker flags for statically linking updated libraries
|
|
||||||
ENV CFLAGS="-fpic -fPIC -I/tmp/extra/include"
|
|
||||||
ENV CURL_CFLAGS='-DCURL_STATICLIB -I/tmp/extra/include'
|
|
||||||
ENV CURL_CPPFLAGS='-DCURL_STATICLIB -I/tmp/extra/include'
|
|
||||||
|
|
||||||
# Configure flags for CentOS 6 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 6 doesn't have texi2any, so use makeinfo.
|
|
||||||
ENV MAKEINFO=makeinfo
|
|
||||||
|
|
||||||
# RHEL 6 doesn't have the inconsolata font, so override the defaults.
|
|
||||||
ENV R_RD4PDF="times,hyper"
|
|
||||||
|
|
||||||
#-- required for fpm --
|
|
||||||
## install rvm
|
|
||||||
RUN curl -sSL https://rvm.io/mpapis.asc | gpg2 --import - \
|
|
||||||
&& curl -sSL https://rvm.io/pkuczynski.asc | gpg2 --import - \
|
|
||||||
&& curl -L get.rvm.io | bash -s stable
|
|
||||||
## use rvm to install ruby
|
|
||||||
RUN source /etc/profile.d/rvm.sh \
|
|
||||||
&& /usr/local/rvm/bin/rvm reload \
|
|
||||||
&& /usr/local/rvm/bin/rvm requirements run \
|
|
||||||
&& /usr/local/rvm/bin/rvm install 2.6.3 \
|
|
||||||
&& /usr/local/rvm/bin/rvm use 2.6.3 --default
|
|
||||||
|
|
||||||
|
|
||||||
# RUN gem install fpm -v 0.4.26
|
|
||||||
RUN export PATH=/usr/local/rvm/rubies/ruby-2.6.3/bin/:/.gems/bin:${PATH} \
|
|
||||||
&& export GEM_HOME=/.gems \
|
|
||||||
&& export GEM_PATH=/.gems \
|
|
||||||
&& gem install ffi:1.12.2 --no-document fpm \
|
|
||||||
&& /usr/local/rvm/bin/rvm repair wrappers
|
|
||||||
|
|
||||||
RUN echo 'source /etc/profile.d/rvm.sh' >> .bashrc
|
|
||||||
#----------------------
|
|
||||||
|
|
||||||
|
|
||||||
# Copy a script to help set up the environment
|
|
||||||
COPY env_centos6.sh ./env.sh
|
|
||||||
|
|
||||||
COPY package.centos-6 /package.sh
|
|
||||||
COPY build.sh .
|
|
||||||
|
|
||||||
# Copy a script to clean up after the build
|
|
||||||
COPY clean_centos6.sh ./clean.sh
|
|
||||||
ENTRYPOINT ./build.sh
|
|
||||||
|
|
@ -51,14 +51,6 @@ fetch_r_source() {
|
||||||
rm /tmp/R-${1}.tar.gz
|
rm /tmp/R-${1}.tar.gz
|
||||||
}
|
}
|
||||||
|
|
||||||
# On CentOS 6, we need to clean up references to the static library and header paths.
|
|
||||||
clean_r() {
|
|
||||||
if [[ -f /clean.sh ]]; then
|
|
||||||
echo "Cleaning R build on CentOS 6"
|
|
||||||
source /clean.sh
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
# compile_r() - $1 as r version
|
# compile_r() - $1 as r version
|
||||||
compile_r() {
|
compile_r() {
|
||||||
cd /tmp/R-${1}
|
cd /tmp/R-${1}
|
||||||
|
|
@ -154,7 +146,6 @@ _version_is_greater_than() {
|
||||||
set_up_environment
|
set_up_environment
|
||||||
fetch_r_source $R_VERSION
|
fetch_r_source $R_VERSION
|
||||||
compile_r $R_VERSION
|
compile_r $R_VERSION
|
||||||
clean_r
|
|
||||||
package_r $R_VERSION
|
package_r $R_VERSION
|
||||||
archive_r $R_VERSION
|
archive_r $R_VERSION
|
||||||
upload_r $R_VERSION
|
upload_r $R_VERSION
|
||||||
|
|
|
||||||
|
|
@ -1,14 +0,0 @@
|
||||||
#!/bin/bash
|
|
||||||
|
|
||||||
# For CentOS 6, we need to clean references to the static library and header paths
|
|
||||||
# out of the R configuration files
|
|
||||||
sed -i 's|-Wl,--whole-archive /tmp/extra/lib/libz.a /tmp/extra/lib/libbz2.a /tmp/extra/lib/liblzma.a /tmp/extra/lib/libpcre.a /tmp/extra/lib/libcurl.a -Wl,--no-whole-archive -L/tmp/extra/lib/||g' /opt/R/${R_VERSION}/lib/R/etc/Makeconf
|
|
||||||
sed -i 's|-Wl,--whole-archive /tmp/extra/lib/libz.a /tmp/extra/lib/libbz2.a /tmp/extra/lib/liblzma.a /tmp/extra/lib/libpcre.a /tmp/extra/lib/libcurl.a -Wl,--no-whole-archive -L/tmp/extra/lib/||g' /opt/R/${R_VERSION}/lib/pkgconfig/libR.pc
|
|
||||||
sed -i 's|-ldl -lpthread .* -lldap -lz -lrt||g' /opt/R/${R_VERSION}/lib/R/etc/Makeconf
|
|
||||||
sed -i 's|-ldl -lpthread .* -lldap -lz -lrt||g' /opt/R/${R_VERSION}/lib/pkgconfig/libR.pc
|
|
||||||
sed -i 's|-I/tmp/extra/include||g' /opt/R/${R_VERSION}/lib/R/etc/Makeconf
|
|
||||||
sed -i 's|-I/tmp/extra/include||g' /opt/R/${R_VERSION}/lib/R/bin/libtool
|
|
||||||
sed -i 's|-ldl -lpthread .* -lldap -lz||g' /opt/R/${R_VERSION}/lib/R/etc/Makeconf
|
|
||||||
sed -i 's|-ldl -lpthread .* -lldap||g' /opt/R/${R_VERSION}/lib/R/etc/Makeconf
|
|
||||||
sed -i 's|:/tmp/extra/lib||g' /opt/R/${R_VERSION}/lib/R/etc/ldpaths
|
|
||||||
sed -i 's|/tmp/extra/lib||g' /opt/R/${R_VERSION}/lib/R/etc/ldpaths
|
|
||||||
|
|
@ -56,17 +56,6 @@ services:
|
||||||
image: r-builds:debian-10
|
image: r-builds:debian-10
|
||||||
volumes:
|
volumes:
|
||||||
- ./integration/tmp:/tmp/output
|
- ./integration/tmp:/tmp/output
|
||||||
centos-6:
|
|
||||||
command: ./build.sh
|
|
||||||
environment:
|
|
||||||
- R_VERSION=${R_VERSION}
|
|
||||||
- LOCAL_STORE=/tmp/output
|
|
||||||
build:
|
|
||||||
context: .
|
|
||||||
dockerfile: Dockerfile.centos-6
|
|
||||||
image: r-builds:centos-6
|
|
||||||
volumes:
|
|
||||||
- ./integration/tmp:/tmp/output
|
|
||||||
centos-7:
|
centos-7:
|
||||||
command: ./build.sh
|
command: ./build.sh
|
||||||
environment:
|
environment:
|
||||||
|
|
|
||||||
|
|
@ -1,14 +0,0 @@
|
||||||
# Test to see if $R_VERSION is <= 3.1.3. If so, append some additional configure options
|
|
||||||
# to the $CONFIGURE_OPTIONS env var.
|
|
||||||
NEWLINE=$'\n'
|
|
||||||
if [[ "$(printf '%s\n' "${R_VERSION}${NEWLINE}3.1.3" | sort -V | head -n 1)" == "$R_VERSION" ]]; then \
|
|
||||||
export CONFIGURE_OPTIONS="${CONFIGURE_OPTIONS} \
|
|
||||||
--with-system-zlib \
|
|
||||||
--with-system-bzlib \
|
|
||||||
--with-system-pcre \
|
|
||||||
--with-system-xz"
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Get library linking information from CURL. This is then used to populate LDFLAGS
|
|
||||||
export CURL_LIBS="`/tmp/extra/bin/curl-config --libs`"
|
|
||||||
export LDFLAGS="-ldl -lpthread -lc -lrt -Wl,--as-needed -Wl,--whole-archive /tmp/extra/lib/libz.a /tmp/extra/lib/libbz2.a /tmp/extra/lib/liblzma.a /tmp/extra/lib/libpcre.a /tmp/extra/lib/libcurl.a -Wl,--no-whole-archive -L/tmp/extra/lib/ ${CURL_LIBS}"
|
|
||||||
|
|
@ -1,81 +0,0 @@
|
||||||
#!/bin/bash
|
|
||||||
|
|
||||||
if [[ ! -d /tmp/output/centos-6 ]]; then
|
|
||||||
mkdir -p /tmp/output/centos-6
|
|
||||||
fi
|
|
||||||
|
|
||||||
# R 3.x requires PCRE1
|
|
||||||
pcre_lib='pcre2-devel'
|
|
||||||
if [[ "${R_VERSION}" =~ ^3 ]]; then
|
|
||||||
pcre_lib='pcre-devel'
|
|
||||||
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
|
|
||||||
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}
|
|
||||||
fi
|
|
||||||
EOF
|
|
||||||
|
|
||||||
# set environment for fpm
|
|
||||||
export PATH=/usr/local/rvm/rubies/ruby-2.6.3/bin/:/.gems/bin:${PATH}
|
|
||||||
export GEM_HOME=/.gems
|
|
||||||
export GEM_PATH=/.gems
|
|
||||||
|
|
||||||
# Additional config for C++11 support in R 3.6.
|
|
||||||
# R 3.6.0 no longer sets CXX11 flags without a full C++11 compiler present, but
|
|
||||||
# the default gcc 4.4.7 still partially supports C++11 through -std=gnu++0x.
|
|
||||||
# Use the same CXX11 flags as the defaults in R versions prior to 3.6.0.
|
|
||||||
sed -i 's/^CXX11\ =\ .*/CXX11\ =\ g++/g' /opt/R/${R_VERSION}/lib/R/etc/Makeconf
|
|
||||||
sed -i 's/^CXX11FLAGS\ =\ .*/CXX11FLAGS\ =\ -g\ -O2\ \$\(LTO\)/g' /opt/R/${R_VERSION}/lib/R/etc/Makeconf
|
|
||||||
sed -i 's/^CXX11PICFLAGS\ =\ .*/CXX11PICFLAGS\ =\ -fpic/g' /opt/R/${R_VERSION}/lib/R/etc/Makeconf
|
|
||||||
sed -i 's/^CXX11STD\ =\ .*/CXX11STD\ =\ -std=gnu++0x/g' /opt/R/${R_VERSION}/lib/R/etc/Makeconf
|
|
||||||
|
|
||||||
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-6/ \
|
|
||||||
-d bzip2-devel \
|
|
||||||
-d dejavu-sans-fonts \
|
|
||||||
-d gcc \
|
|
||||||
-d gcc-c++ \
|
|
||||||
-d gcc-gfortran \
|
|
||||||
-d libcurl-devel \
|
|
||||||
-d libicu \
|
|
||||||
-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}
|
|
||||||
|
|
||||||
shopt -s extglob
|
|
||||||
export PKG_FILE=$(ls /tmp/output/centos-6/[rR]-${R_VERSION}*.@(deb|rpm) | head -1)
|
|
||||||
|
|
||||||
|
|
@ -201,20 +201,6 @@ rBuildsBatchJobDefinitionDebian10:
|
||||||
Image: "#{AWS::AccountId}.dkr.ecr.#{AWS::Region}.amazonaws.com/r-builds:debian-10"
|
Image: "#{AWS::AccountId}.dkr.ecr.#{AWS::Region}.amazonaws.com/r-builds:debian-10"
|
||||||
Timeout:
|
Timeout:
|
||||||
AttemptDurationSeconds: 7200
|
AttemptDurationSeconds: 7200
|
||||||
rBuildsBatchJobDefinitionCentos6:
|
|
||||||
Type: AWS::Batch::JobDefinition
|
|
||||||
Properties:
|
|
||||||
Type: container
|
|
||||||
ContainerProperties:
|
|
||||||
Command:
|
|
||||||
- ./build.sh
|
|
||||||
Vcpus: 4
|
|
||||||
Memory: 4096
|
|
||||||
JobRoleArn:
|
|
||||||
"Fn::GetAtt": [ rBuildsEcsTaskIamRole, Arn ]
|
|
||||||
Image: "#{AWS::AccountId}.dkr.ecr.#{AWS::Region}.amazonaws.com/r-builds:centos-6"
|
|
||||||
Timeout:
|
|
||||||
AttemptDurationSeconds: 7200
|
|
||||||
rBuildsBatchJobDefinitionCentos7:
|
rBuildsBatchJobDefinitionCentos7:
|
||||||
Type: AWS::Batch::JobDefinition
|
Type: AWS::Batch::JobDefinition
|
||||||
Properties:
|
Properties:
|
||||||
|
|
|
||||||
|
|
@ -45,8 +45,6 @@ provider:
|
||||||
Ref: rBuildsBatchJobDefinitionDebian9
|
Ref: rBuildsBatchJobDefinitionDebian9
|
||||||
JOB_DEFINITION_ARN_debian_10:
|
JOB_DEFINITION_ARN_debian_10:
|
||||||
Ref: rBuildsBatchJobDefinitionDebian10
|
Ref: rBuildsBatchJobDefinitionDebian10
|
||||||
JOB_DEFINITION_ARN_centos_6:
|
|
||||||
Ref: rBuildsBatchJobDefinitionCentos6
|
|
||||||
JOB_DEFINITION_ARN_centos_7:
|
JOB_DEFINITION_ARN_centos_7:
|
||||||
Ref: rBuildsBatchJobDefinitionCentos7
|
Ref: rBuildsBatchJobDefinitionCentos7
|
||||||
JOB_DEFINITION_ARN_centos_8:
|
JOB_DEFINITION_ARN_centos_8:
|
||||||
|
|
@ -57,7 +55,7 @@ provider:
|
||||||
Ref: rBuildsBatchJobDefinitionOpensuse15
|
Ref: rBuildsBatchJobDefinitionOpensuse15
|
||||||
JOB_DEFINITION_ARN_opensuse_152:
|
JOB_DEFINITION_ARN_opensuse_152:
|
||||||
Ref: rBuildsBatchJobDefinitionOpensuse152
|
Ref: rBuildsBatchJobDefinitionOpensuse152
|
||||||
SUPPORTED_PLATFORMS: ubuntu-1604,ubuntu-1804,ubuntu-2004,debian-9,debian-10,centos-6,centos-7,centos-8,opensuse-42,opensuse-15,opensuse-152
|
SUPPORTED_PLATFORMS: ubuntu-1604,ubuntu-1804,ubuntu-2004,debian-9,debian-10,centos-7,centos-8,opensuse-42,opensuse-15,opensuse-152
|
||||||
|
|
||||||
functions:
|
functions:
|
||||||
queueBuilds:
|
queueBuilds:
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue