From 2b79717fba416868e1ff33e92022e3828f74bf94 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?G=C3=A1bor=20Cs=C3=A1rdi?= Date: Tue, 7 Feb 2023 21:06:17 +0100 Subject: [PATCH 1/3] Fix R-devel compilation on OpenSUSE By using newer compilers. --- builder/Dockerfile.opensuse-153 | 3 +++ builder/Dockerfile.opensuse-154 | 3 +++ builder/build.sh | 12 ++++++++++++ builder/package.opensuse-153 | 6 +++--- builder/package.opensuse-154 | 6 +++--- 5 files changed, 24 insertions(+), 6 deletions(-) diff --git a/builder/Dockerfile.opensuse-153 b/builder/Dockerfile.opensuse-153 index df3b732..fbea3b1 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 \ diff --git a/builder/Dockerfile.opensuse-154 b/builder/Dockerfile.opensuse-154 index 1271a03..f3134fa 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 \ diff --git a/builder/build.sh b/builder/build.sh index 9ae6ace..eee64ab 100755 --- a/builder/build.sh +++ b/builder/build.sh @@ -132,6 +132,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 \ 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..508aa08 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 +- ${gxx_package-g++} +- ${gcc_package-gcc} +- ${gfortran_package-gfortran} - glibc-locale - gzip - icu.691-devel From dd1a91547f2655afa79e6917a1f6a882a456308f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?G=C3=A1bor=20Cs=C3=A1rdi?= Date: Wed, 8 Feb 2023 00:44:26 +0100 Subject: [PATCH 2/3] Fix OpenSUSE 15.4 package file --- builder/package.opensuse-154 | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/builder/package.opensuse-154 b/builder/package.opensuse-154 index 508aa08..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 -- ${gxx_package-g++} - ${gcc_package-gcc} -- ${gfortran_package-gfortran} +- ${gxx_package-gcc-c++} +- ${gfortran_package-gcc-fortran} - glibc-locale - gzip - icu.691-devel From e57ed87faedd3993e7e42e595b121b2c15f591b4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?G=C3=A1bor=20Cs=C3=A1rdi?= Date: Fri, 10 Feb 2023 15:27:05 +0100 Subject: [PATCH 3/3] Fix R-devel build on OpenSUSE More details: https://stat.ethz.ch/pipermail/r-devel/2023-February/082304.html https://stat.ethz.ch/pipermail/r-devel/2023-February/082315.html --- builder/Dockerfile.opensuse-153 | 1 + builder/Dockerfile.opensuse-154 | 1 + builder/build.sh | 9 +++++++++ builder/patches/R-devel.patch | 28 ++++++++++++++++++++++++++++ 4 files changed, 39 insertions(+) create mode 100644 builder/patches/R-devel.patch diff --git a/builder/Dockerfile.opensuse-153 b/builder/Dockerfile.opensuse-153 index fbea3b1..6bb332c 100644 --- a/builder/Dockerfile.opensuse-153 +++ b/builder/Dockerfile.opensuse-153 @@ -92,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 f3134fa..9b6af15 100644 --- a/builder/Dockerfile.opensuse-154 +++ b/builder/Dockerfile.opensuse-154 @@ -102,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 eee64ab..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} @@ -207,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/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 +