diff --git a/builder/Dockerfile.opensuse-153 b/builder/Dockerfile.opensuse-153 index df3b732..6bb332c 100644 --- a/builder/Dockerfile.opensuse-153 +++ b/builder/Dockerfile.opensuse-153 @@ -15,6 +15,9 @@ RUN zypper --non-interactive --gpg-auto-import-keys -n install \ gcc \ gcc-c++ \ gcc-fortran \ + gcc8 \ + gcc8-c++ \ + gcc8-fortran \ glib2-devel \ glibc-locale \ help2man \ @@ -89,4 +92,5 @@ ENV CONFIGURE_OPTIONS="\ COPY package.opensuse-153 /package.sh COPY build.sh . +COPY patches /patches ENTRYPOINT ./build.sh diff --git a/builder/Dockerfile.opensuse-154 b/builder/Dockerfile.opensuse-154 index 1271a03..9b6af15 100644 --- a/builder/Dockerfile.opensuse-154 +++ b/builder/Dockerfile.opensuse-154 @@ -15,6 +15,9 @@ RUN zypper --non-interactive --gpg-auto-import-keys -n install \ gcc \ gcc-c++ \ gcc-fortran \ + gcc8 \ + gcc8-c++ \ + gcc8-fortran \ glib2-devel \ glibc-locale \ help2man \ @@ -99,4 +102,5 @@ ENV JAVA_HOME=/usr/lib64/jvm/jre-11-openjdk COPY package.opensuse-154 /package.sh COPY build.sh . +COPY patches /patches ENTRYPOINT ./build.sh diff --git a/builder/build.sh b/builder/build.sh index 9ae6ace..7f49b3e 100755 --- a/builder/build.sh +++ b/builder/build.sh @@ -64,6 +64,14 @@ fetch_r_source() { rm /tmp/R-${1}.tar.gz } +patch_r() { + cd /tmp/R-${1} + + if [ -f "/patches/R-${1}.patch" ]; then + patch -p1 < "/patches/R-${1}.patch" + fi +} + # compile_r() - $1 as r version compile_r() { cd /tmp/R-${1} @@ -132,6 +140,18 @@ compile_r() { CONFIGURE_OPTIONS=${CONFIGURE_OPTIONS:-$default_configure_options} + # For OpenSUSE CONFIGURE_OPTIONS are custom, set in the Dockerfile + if _version_is_greater_than ${R_VERSION} 4.2.10; then + if [[ "${OS_IDENTIFIER}" = "opensuse-153" || \ + "${OS_IDENTIFIER}" = "opensuse-154" ]]; then + CONFIGURE_OPTIONS="$CONFIGURE_OPTIONS \ + CC=gcc-8 CXX=g++-8 FC=gfortran-8" + gcc_package=gcc8 + gxx_package=gcc8-c++ + gfortran_package=gcc8-fortran + fi + fi + # set some common environment variables for the configure step AWK=/usr/bin/awk \ LIBnn=lib \ @@ -195,6 +215,7 @@ _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 diff --git a/builder/package.opensuse-153 b/builder/package.opensuse-153 index 0f1779b..393a297 100644 --- a/builder/package.opensuse-153 +++ b/builder/package.opensuse-153 @@ -39,9 +39,9 @@ homepage: https://www.r-project.org license: GPLv2+ depends: - fontconfig -- gcc -- gcc-c++ -- gcc-fortran +- ${gcc_package-gcc} +- ${gxx_package-gcc-c++} +- ${gfortran_package-gcc-fortran} - glibc-locale - gzip - icu.691-devel diff --git a/builder/package.opensuse-154 b/builder/package.opensuse-154 index 3bd9d89..b97b2d8 100644 --- a/builder/package.opensuse-154 +++ b/builder/package.opensuse-154 @@ -55,9 +55,9 @@ homepage: https://www.r-project.org license: GPLv2+ depends: - fontconfig -- gcc -- gcc-c++ -- gcc-fortran +- ${gcc_package-gcc} +- ${gxx_package-gcc-c++} +- ${gfortran_package-gcc-fortran} - glibc-locale - gzip - icu.691-devel diff --git a/builder/patches/R-devel.patch b/builder/patches/R-devel.patch new file mode 100644 index 0000000..4495917 --- /dev/null +++ b/builder/patches/R-devel.patch @@ -0,0 +1,28 @@ +diff --git a/src/extra/blas/Makefile.in b/src/extra/blas/Makefile.in +index 3661416..c9b53e2 100644 +--- a/src/extra/blas/Makefile.in ++++ b/src/extra/blas/Makefile.in +@@ -17,7 +17,7 @@ include $(top_builddir)/Makeconf + + ALL_CFLAGS = $(ALL_CFLAGS_LO) + ALL_FFLAGS = $(ALL_FFLAGS_LO) +-ALL_FCLAGS = $(ALL_FFLAGS_LO) ++ALL_FCFLAGS = $(ALL_FFLAGS_LO) + + SOURCES = blas00.c blas.f cmplxblas.f blas2.f90 cmplxblas2.f90 + +diff --git a/src/modules/lapack/Makefile.in b/src/modules/lapack/Makefile.in +index 8e593ea..e35c956 100644 +--- a/src/modules/lapack/Makefile.in ++++ b/src/modules/lapack/Makefile.in +@@ -15,6 +15,10 @@ include $(top_builddir)/Makeconf + .f90.o: + $(FC) $(ALL_FCFLAGS) -c @FCFLAGS_f90@ $< -o $@ + ++ALL_CFLAGS = $(ALL_CFLAGS_LO) ++ALL_FFLAGS = $(ALL_FFLAGS_LO) ++ALL_FCFLAGS = $(ALL_FFLAGS_LO) ++ + SOURCES_C = Lapack.c @USE_VECLIB_G95FIX_TRUE@ vecLibg95c.c + SOURCES_F = @USE_VECLIB_G95FIX_TRUE@ vecLibg95f.f +