diff --git a/Makefile b/Makefile index 51fbf5b..9eaaf02 100644 --- a/Makefile +++ b/Makefile @@ -1,4 +1,4 @@ -PLATFORMS := ubuntu-1804 ubuntu-2004 ubuntu-2204 debian-9 debian-10 debian-11 centos-7 centos-8 opensuse-42 opensuse-153 +PLATFORMS := ubuntu-1804 ubuntu-2004 ubuntu-2204 debian-9 debian-10 debian-11 centos-7 centos-8 opensuse-153 SLS_BINARY ?= ./node_modules/serverless/bin/serverless deps: diff --git a/README.md b/README.md index a6aa86b..a4d9957 100644 --- a/README.md +++ b/README.md @@ -23,8 +23,8 @@ R binaries are built for the following Linux operating systems: - Debian 9, 10, 11 - CentOS 7 - Red Hat Enterprise Linux 7, 8 -- openSUSE 42.3, 15.3 -- SUSE Linux Enterprise 12, 15 SP3 +- openSUSE 15.3 +- SUSE Linux Enterprise 15 SP3 Operating systems are supported until their vendor end-of-support dates, which can be found on the [RStudio Platform Support](https://www.rstudio.com/about/platform-support/) @@ -117,18 +117,8 @@ sudo yum install R-${R_VERSION}-1-1.x86_64.rpm #### SUSE Linux -Enable the Python backports repository (SLES 12 only): -```bash -# SLES 12 -VERSION="SLE_$(grep "^VERSION=" /etc/os-release | sed -e 's/VERSION=//' -e 's/"//g' -e 's/-/_/')" -sudo zypper --gpg-auto-import-keys addrepo https://download.opensuse.org/repositories/devel:/languages:/python:/backports/$VERSION/devel:languages:python:backports.repo -``` - Download the rpm package: ```bash -# openSUSE 42.3 / SLES 12 -wget https://cdn.rstudio.com/r/opensuse-42/pkgs/R-${R_VERSION}-1-1.x86_64.rpm - # openSUSE 15.3 / SLES 15 SP3 wget https://cdn.rstudio.com/r/opensuse-153/pkgs/R-${R_VERSION}-1-1.x86_64.rpm ``` @@ -232,7 +222,7 @@ environment: # snip JOB_DEFINITION_ARN_debian_9: Ref: rBuildsBatchJobDefinitionDebian9 - SUPPORTED_PLATFORMS: ubuntu-1804,debian-9,debian-10,centos-7,centos-8,opensuse-42 + SUPPORTED_PLATFORMS: ubuntu-1804,debian-9,debian-10,centos-7,centos-8 ``` ### Makefile diff --git a/builder/Dockerfile.opensuse-42 b/builder/Dockerfile.opensuse-42 deleted file mode 100644 index 46eb180..0000000 --- a/builder/Dockerfile.opensuse-42 +++ /dev/null @@ -1,115 +0,0 @@ -FROM opensuse/leap:42.3 - -ENV OS_IDENTIFIER opensuse-42 - -# 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 \ - java-1_8_0-openjdk-devel \ - libX11-devel \ - libXScrnSaver-devel \ - libXmu-devel \ - libXt-devel \ - libbz2-devel \ - libcurl-devel \ - libicu-devel \ - libjpeg-devel \ - libpng-devel \ - libtiff-devel \ - make \ - pango-devel \ - pcre-devel \ - pcre2-devel \ - perl \ - perl-macros \ - readline-devel \ - rpm-build \ - ruby \ - ruby-devel \ - 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 \ - zip \ - zlib-devel \ - && zypper clean - -RUN curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip" && \ - unzip awscliv2.zip && \ - ./aws/install && \ - rm -rf aws awscliv2.zip - -# Pin fpm for compatibility with Ruby < 2.3 -RUN gem install ffi:1.12.2 fpm:1.11.0 && \ - ln -s /usr/bin/fpm.ruby2.1 /usr/local/bin/fpm - -RUN chmod 0777 /opt - -# Work around issue with expired Let's Encrypt root certificate and OpenSSL 1.0.2, -# which affects downloads from sourceforge.net (and possibly other sites). -# On SLES 12, the issue can be resolved by updating ca-certificates-mozilla, but -# openSUSE 42 (EOL) requires a manual removal of the expired DST Root CA X3 cerificate. -# https://www.openssl.org/blog/blog/2021/09/13/LetsEncryptRootCertExpire/ -# https://www.suse.com/support/kb/doc/?id=000020401 -RUN rm /usr/share/pki/trust/DST_Root_CA_X3.pem && \ - update-ca-certificates - -# Install an older xz 5.0.5 for compatibility with SLES 12 -ARG XZ_VERSION=5.0.5 -ARG XZ_DOWNLOAD_SHA1=26fec2c1e409f736e77a85e4ab314dc74987def0 -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* \ - && ./configure \ - && make \ - && make install \ - && cd $CWD && rm -rf $TMP && rm -rf xz.tar.gz - -# SUSE 12 doesn't have texi2any, so use makeinfo. -ENV MAKEINFO=makeinfo - -# 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 \ - --enable-prebuilt-html" - -COPY package.opensuse-42 /package.sh -COPY build.sh . -ENTRYPOINT ./build.sh diff --git a/builder/docker-compose.yml b/builder/docker-compose.yml index 722df60..6c36898 100644 --- a/builder/docker-compose.yml +++ b/builder/docker-compose.yml @@ -89,17 +89,6 @@ services: image: r-builds:centos-8 volumes: - ./integration/tmp:/tmp/output - opensuse-42: - command: ./build.sh - environment: - - R_VERSION=${R_VERSION} - - LOCAL_STORE=/tmp/output - build: - context: . - dockerfile: Dockerfile.opensuse-42 - image: r-builds:opensuse-42 - volumes: - - ./integration/tmp:/tmp/output opensuse-153: command: ./build.sh environment: diff --git a/builder/package.opensuse-42 b/builder/package.opensuse-42 deleted file mode 100644 index 27cf45c..0000000 --- a/builder/package.opensuse-42 +++ /dev/null @@ -1,73 +0,0 @@ -#!/bin/bash - -if [[ ! -d /tmp/output/opensuse-42 ]]; then - mkdir -p /tmp/output/opensuse-42 -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 <> /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/libopenblas_pthreads.so /opt/R/${R_VERSION}/lib/R/lib/libRblas.so -EOF - -# create after-remove script to remove internal blas -cat <> /before-remove.sh -if [ -d /opt/R/${R_VERSION} ]; then - rm -r /opt/R/${R_VERSION} -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/opensuse-42/ \ - -d fontconfig \ - -d gcc \ - -d gcc-c++ \ - -d gcc-fortran \ - -d glibc-locale \ - -d libbz2-devel \ - -d libcairo2 \ - -d libcurl-devel \ - -d libfreetype6 \ - -d libgomp1 \ - -d libicu-devel \ - -d libjpeg62 \ - -d libpango-1_0-0 \ - -d libtiff5 \ - -d make \ - -d libopenblas_pthreads-devel \ - -d ${pcre_lib} \ - -d tar \ - -d tcl \ - -d tk \ - -d unzip \ - -d which \ - -d xorg-x11 \ - -d xorg-x11-fonts-100dpi \ - -d xorg-x11-fonts-75dpi \ - -d xz-devel \ - -d zip \ - -d zlib-devel \ - /opt/R/${R_VERSION} - -shopt -s extglob -export PKG_FILE=$(ls /tmp/output/opensuse-42/[rR]-${R_VERSION}*.@(deb|rpm) | head -1) - diff --git a/serverless-resources.yml b/serverless-resources.yml index 446913e..fdca450 100644 --- a/serverless-resources.yml +++ b/serverless-resources.yml @@ -243,20 +243,6 @@ rBuildsBatchJobDefinitionCentos8: Image: "#{AWS::AccountId}.dkr.ecr.#{AWS::Region}.amazonaws.com/r-builds:centos-8" Timeout: AttemptDurationSeconds: 7200 -rBuildsBatchJobDefinitionOpensuse42: - 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:opensuse-42" - Timeout: - AttemptDurationSeconds: 7200 rBuildsBatchJobDefinitionOpensuse153: Type: AWS::Batch::JobDefinition Properties: diff --git a/serverless.yml b/serverless.yml index f0da548..d3846e0 100644 --- a/serverless.yml +++ b/serverless.yml @@ -51,11 +51,9 @@ provider: Ref: rBuildsBatchJobDefinitionCentos7 JOB_DEFINITION_ARN_centos_8: Ref: rBuildsBatchJobDefinitionCentos8 - JOB_DEFINITION_ARN_opensuse_42: - Ref: rBuildsBatchJobDefinitionOpensuse42 JOB_DEFINITION_ARN_opensuse_153: Ref: rBuildsBatchJobDefinitionOpensuse153 - SUPPORTED_PLATFORMS: ubuntu-1804,ubuntu-2004,ubuntu-2204,debian-9,debian-10,debian-11,centos-7,centos-8,opensuse-42,opensuse-153 + SUPPORTED_PLATFORMS: ubuntu-1804,ubuntu-2004,ubuntu-2204,debian-9,debian-10,debian-11,centos-7,centos-8,opensuse-153 functions: queueBuilds: