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