diff --git a/Makefile b/Makefile index 9b969c5..1cdad07 100644 --- a/Makefile +++ b/Makefile @@ -1,4 +1,4 @@ -PLATFORMS := ubuntu-1804 ubuntu-2004 ubuntu-2204 debian-10 debian-11 debian-12 centos-7 centos-8 rhel-9 opensuse-153 opensuse-154 +PLATFORMS := ubuntu-2004 ubuntu-2204 debian-10 debian-11 debian-12 centos-7 centos-8 rhel-9 opensuse-154 SLS_BINARY ?= ./node_modules/serverless/bin/serverless.js deps: diff --git a/README.md b/README.md index 2bbd2c4..7503c0a 100644 --- a/README.md +++ b/README.md @@ -19,12 +19,12 @@ bug, or ask questions on [Posit Community](https://community.rstudio.com). R binaries are built for the following Linux operating systems: -- Ubuntu 18.04, 20.04, 22.04 +- Ubuntu 20.04, 22.04 - Debian 10, 11, 12 - CentOS 7 - Red Hat Enterprise Linux 7, 8, 9 -- openSUSE 15.3, 15.4 -- SUSE Linux Enterprise 15 SP3, 15 SP4 +- openSUSE 15.4 +- SUSE Linux Enterprise 15 SP4 Operating systems are supported until their vendor end-of-support dates, which can be found on the [Posit Platform Support](https://posit.co/about/platform-support/) @@ -56,9 +56,6 @@ R_VERSION=4.1.3 Download the deb package: ```bash -# Ubuntu 18.04 -curl -O https://cdn.posit.co/r/ubuntu-1804/pkgs/r-${R_VERSION}_1_amd64.deb - # Ubuntu 20.04 curl -O https://cdn.posit.co/r/ubuntu-2004/pkgs/r-${R_VERSION}_1_amd64.deb @@ -140,9 +137,6 @@ sudo yum install R-${R_VERSION}-1-1.x86_64.rpm Download the rpm package: ```bash -# openSUSE 15.3 / SLES 15 SP3 -curl -O https://cdn.posit.co/r/opensuse-153/pkgs/R-${R_VERSION}-1-1.x86_64.rpm - # openSUSE 15.4 / SLES 15 SP4 curl -O https://cdn.posit.co/r/opensuse-154/pkgs/R-${R_VERSION}-1-1.x86_64.rpm ``` @@ -291,7 +285,7 @@ environment: # snip JOB_DEFINITION_ARN_debian_11: Ref: rBuildsBatchJobDefinitionDebian11 - SUPPORTED_PLATFORMS: ubuntu-1804,debian-10,centos-7,centos-8 + SUPPORTED_PLATFORMS: debian-10,centos-7,centos-8 ``` ### Makefile diff --git a/builder/Dockerfile.opensuse-153 b/builder/Dockerfile.opensuse-153 deleted file mode 100644 index df3b732..0000000 --- a/builder/Dockerfile.opensuse-153 +++ /dev/null @@ -1,92 +0,0 @@ -FROM opensuse/leap:15.3 - -ENV OS_IDENTIFIER opensuse-153 - -# 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 \ - # openSUSE/SLES 15.3 originally shipped with ICU 65 (libicu-devel), but later - # added ICU 69 (icu.691-devel) in a patch update. Prefer ICU 69 because the devel - # packages can't coexist, and zypper now resolves libicu-devel to icu.691-devel. - icu.691-devel \ - java-1_8_0-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 \ - python \ - python-pip \ - 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 - -RUN pip install awscli - -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" - -COPY package.opensuse-153 /package.sh -COPY build.sh . -ENTRYPOINT ./build.sh diff --git a/builder/Dockerfile.ubuntu-1804 b/builder/Dockerfile.ubuntu-1804 deleted file mode 100644 index 2d0fc61..0000000 --- a/builder/Dockerfile.ubuntu-1804 +++ /dev/null @@ -1,25 +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 curl libcurl4-openssl-dev libicu-dev libopenblas-base libpcre2-dev wget python-pip \ - && apt-get build-dep -y r-base - -RUN pip install awscli - -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 - -COPY package.ubuntu-1804 /package.sh -COPY build.sh . -ENTRYPOINT ./build.sh diff --git a/builder/docker-compose.yml b/builder/docker-compose.yml index 30fd55b..8f3bd3d 100644 --- a/builder/docker-compose.yml +++ b/builder/docker-compose.yml @@ -1,16 +1,4 @@ services: - ubuntu-1804: - command: ./build.sh - environment: - - R_VERSION=${R_VERSION} - - R_INSTALL_PATH=${R_INSTALL_PATH} - - 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: @@ -107,18 +95,6 @@ services: image: r-builds:rhel-9 volumes: - ./integration/tmp:/tmp/output - opensuse-153: - 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 - volumes: - - ./integration/tmp:/tmp/output opensuse-154: command: ./build.sh environment: diff --git a/builder/package.opensuse-153 b/builder/package.opensuse-153 deleted file mode 100644 index 0f1779b..0000000 --- a/builder/package.opensuse-153 +++ /dev/null @@ -1,84 +0,0 @@ -#!/bin/bash - -if [[ ! -d /tmp/output/${OS_IDENTIFIER} ]]; then - mkdir -p "/tmp/output/${OS_IDENTIFIER}" -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 ${R_INSTALL_PATH}/lib/R/lib/libRblas.so ${R_INSTALL_PATH}/lib/R/lib/libRblas.so.keep -ln -s /usr/lib64/libopenblas.so ${R_INSTALL_PATH}/lib/R/lib/libRblas.so -EOF - -# create after-remove script to remove internal blas -cat <> /after-remove.sh -if [ -d ${R_INSTALL_PATH} ]; then - rm -r ${R_INSTALL_PATH} -fi -EOF - -if [ "$(arch)" == "aarch64" ]; then echo arm64; else echo amd64; fi > /tmp/arch - -cat < /tmp/nfpm.yml -name: R-${R_VERSION} -version: 1 -version_schema: none -arch: $(cat /tmp/arch) -release: 1 -maintainer: Posit Software, PBC -description: | - GNU R statistical computation and graphics system -vendor: Posit Software, PBC -homepage: https://www.r-project.org -license: GPLv2+ -depends: -- fontconfig -- gcc -- gcc-c++ -- gcc-fortran -- glibc-locale -- gzip -- icu.691-devel -- libbz2-devel -- libcairo2 -- libcurl-devel -- libfreetype6 -- libgomp1 -- libjpeg62 -- libpango-1_0-0 -- libreadline7 -- libtiff5 -- make -- openblas-devel -- ${pcre_lib} -- tar -- tcl -- tk -- unzip -- which -- xorg-x11 -- xorg-x11-fonts-100dpi -- xorg-x11-fonts-75dpi -- 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) diff --git a/builder/package.ubuntu-1804 b/builder/package.ubuntu-1804 deleted file mode 100644 index a5a75ae..0000000 --- a/builder/package.ubuntu-1804 +++ /dev/null @@ -1,69 +0,0 @@ -#!/bin/bash - -if [[ ! -d /tmp/output/${OS_IDENTIFIER} ]]; then - mkdir -p "/tmp/output/${OS_IDENTIFIER}" -fi - -# R 3.x requires PCRE1 -pcre_lib='libpcre2-dev' -if [[ "${R_VERSION}" =~ ^3 ]]; then - pcre_lib='libpcre3-dev' -fi - -cat < /tmp/nfpm.yml -name: r-${R_VERSION} -version: 1 -version_schema: none -section: universe/math -arch: $(dpkg --print-architecture) -priority: optional -maintainer: Posit Software, PBC -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 -- libcurl4 -- libglib2.0-0 -- libgomp1 -- libicu-dev -- libjpeg8 -- 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 - -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) diff --git a/serverless-resources.yml b/serverless-resources.yml index 207b2c9..cd846bf 100644 --- a/serverless-resources.yml +++ b/serverless-resources.yml @@ -131,20 +131,6 @@ rBuildsBatchJobQueue: State: ENABLED Priority: 1 -rBuildsBatchJobDefinitionUbuntu1804: - 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:ubuntu-1804" - Timeout: - AttemptDurationSeconds: 7200 rBuildsBatchJobDefinitionUbuntu2004: Type: AWS::Batch::JobDefinition Properties: @@ -257,20 +243,6 @@ rBuildsBatchJobDefinitionRhel9: Image: "#{AWS::AccountId}.dkr.ecr.#{AWS::Region}.amazonaws.com/r-builds:rhel-9" Timeout: AttemptDurationSeconds: 7200 -rBuildsBatchJobDefinitionOpensuse153: - 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-153" - Timeout: - AttemptDurationSeconds: 7200 rBuildsBatchJobDefinitionOpensuse154: Type: AWS::Batch::JobDefinition Properties: diff --git a/serverless.yml b/serverless.yml index 3dbf6e8..3b4af82 100644 --- a/serverless.yml +++ b/serverless.yml @@ -45,8 +45,6 @@ provider: Ref: rBuildsTopic JOB_QUEUE_ARN: Ref: rBuildsBatchJobQueue - JOB_DEFINITION_ARN_ubuntu_1804: - Ref: rBuildsBatchJobDefinitionUbuntu1804 JOB_DEFINITION_ARN_ubuntu_2004: Ref: rBuildsBatchJobDefinitionUbuntu2004 JOB_DEFINITION_ARN_ubuntu_2204: @@ -63,11 +61,9 @@ provider: Ref: rBuildsBatchJobDefinitionCentos8 JOB_DEFINITION_ARN_rhel_9: Ref: rBuildsBatchJobDefinitionRhel9 - JOB_DEFINITION_ARN_opensuse_153: - Ref: rBuildsBatchJobDefinitionOpensuse153 JOB_DEFINITION_ARN_opensuse_154: Ref: rBuildsBatchJobDefinitionOpensuse154 - SUPPORTED_PLATFORMS: ubuntu-1804,ubuntu-2004,ubuntu-2204,debian-10,debian-11,debian-12,centos-7,centos-8,rhel-9,opensuse-153,opensuse-154 + SUPPORTED_PLATFORMS: ubuntu-2004,ubuntu-2204,debian-10,debian-11,debian-12,centos-7,centos-8,rhel-9,opensuse-154 functions: queueBuilds: diff --git a/test/docker-compose.yml b/test/docker-compose.yml index 920c1d8..f44e77e 100644 --- a/test/docker-compose.yml +++ b/test/docker-compose.yml @@ -1,12 +1,4 @@ services: - ubuntu-1804: - image: ubuntu:bionic - command: /r-builds/test/test-apt.sh - environment: - - OS_IDENTIFIER=ubuntu-1804 - - R_VERSION=${R_VERSION} - volumes: - - ../:/r-builds ubuntu-2004: image: ubuntu:focal command: /r-builds/test/test-apt.sh @@ -71,14 +63,6 @@ services: - R_VERSION=${R_VERSION} volumes: - ../:/r-builds - opensuse-153: - image: opensuse/leap:15.3 - command: /r-builds/test/test-zypper.sh - environment: - - OS_IDENTIFIER=opensuse-153 - - R_VERSION=${R_VERSION} - volumes: - - ../:/r-builds opensuse-154: image: opensuse/leap:15.4 command: /r-builds/test/test-zypper.sh