Gábor Csárdi
2023-Feb-08 00:13 UTC
[Rd] Compiling R-devel on older Linux distributions, e.g. RHEL / CentOS 7
As preparation for the next release, I am trying to compile R devel on RHEL / CentOS 7, which is still supported by RedHat until 2024 June. There are two issues. One is that the libcurl version in CentOS 7 is quite old, 7.29.0, and R devel now requires 7.32.0, since 83715 about a week ago. This requirement is here to stay for R 4.3.0, right? The second is that the recommended packages are now installed with R CMD INSTALL --use-C17, which fails on CentOS 7 with begin installing recommended package MASS * installing *source* package 'MASS' ... ** package 'MASS' successfully unpacked and MD5 sums checked ** using non-staged installation ** libs Error: C17 standard requested but CC17 is not defined * removing '/root/R-devel/library/MASS' CentOS 7 has GCC 4.8.5, which does not have a -std=gnu17 option. However the commit message of this change in commit 83566 hints that this requirement might be temporary. Hence my questions. Is the C17 requirement temporary or it will be a requirement for R 4.3.0? Should I expect any problems if I remove the --use-C17 flag for installing the recommended packages? There are a lot of R users still on RHEL 7, so it would be great to know what to expect for the next release. Thank you, G?bor
Prof Brian Ripley
2023-Feb-08 06:05 UTC
[Rd] Compiling R-devel on older Linux distributions, e.g. RHEL / CentOS 7
On 08/02/2023 00:13, G?bor Cs?rdi wrote:> As preparation for the next release, I am trying to compile R devel on > RHEL / CentOS 7, which is still supported by RedHat until 2024 June. > There are two issues. > > One is that the libcurl version in CentOS 7 is quite old, 7.29.0, and > R devel now requires 7.32.0, since 83715 about a week ago. This > requirement is here to stay for R 4.3.0, right?Unless we revert it. The comment in the manual says @c libcurl 7.32.0 was released in Aug 2013 and Centos 7 was released in 2014-07-07, 11 months later. Do they really never security-patch libcurl?> The second is that the recommended packages are now installed with R > CMD INSTALL --use-C17, which fails on CentOS 7 with > > begin installing recommended package MASS > * installing *source* package 'MASS' ... > ** package 'MASS' successfully unpacked and MD5 sums checked > ** using non-staged installation > ** libs > Error: C17 standard requested but CC17 is not defined > * removing '/root/R-devel/library/MASS' > > CentOS 7 has GCC 4.8.5, which does not have a -std=gnu17 option. > However the commit message of this change in commit 83566 hints that > this requirement might be temporary. Hence my questions.It is temporary -- needed for survival (now updated) and mgcv (awaited). However, 1) You should be able to set CC17="gcc -std=gnu11" in config.site, as C17 is a bug-fixed C11. 2) Centos 7 has later compilers available, and people are going to need them for C++. The manual says ... later compilers are available: for RHEL/Centos 7 look for ?devtoolset?.> Is the C17 requirement temporary or it will be a requirement for R 4.3.0? > Should I expect any problems if I remove the --use-C17 flag for > installing the recommended packages?Not with that compiler.> > There are a lot of R users still on RHEL 7, so it would be great to > know what to expect for the next release.an D. Ripley, ripley at stats.ox.ac.uk Emeritus Professor of Applied Statistics, University of Oxford