cannot install rgdal after updating to fedora32
Bennet, Thanks for the careful analysis.
On Sun, 28 Jun 2020, Bennet Fauber wrote:
Roger, This seems to be an outcome of a 'security' policy that RedHat/Fedora/CentOS implemented. There are some circumstances where I think that could be justified, but I do not think compiling R is one of them. It was reported several times to RedHat's Bugzilla and basically ignored by RedHat at least as far back as 2015-12-02. There are several reports of slightly different versions of the report, but none of them got acted upon. Some details and links to other issues marked as duplicates (but also seemingly closed without any attention or action) can be found at https://bugzilla.redhat.com/show_bug.cgi?id=1287743
https://bugzilla.redhat.com/show_bug.cgi?id=1343892 includes more information. Many traces in search suggest that a missing redhat-rpm-config package is to blame, but it is certainly present on my test system. The Redhat policy positions are specified in: https://developers.redhat.com/blog/2018/03/21/compiler-and-linker-flags-gcc/ but do not seem to resolve the conflict between autoconf and -specs=/usr/lib/rpm/redhat/redhat-hardened-ld. I'll raise this on the R fedora list. Roger
The version of R-rgdal that is in the Fedora archive as a binary is rgdal_1.4-8 and that .srpm will build, however if it is updated to use rgdal_1.5-12 it fails the same way that it does with the source build. On Sun, Jun 28, 2020 at 1:17 PM Roger Bivand <Roger.Bivand at nhh.no> wrote:
On Sun, 28 Jun 2020, Ista Zahn wrote:
I can reproduce this error using the official Fedora 32 docker image:
The error is in the RPM propagating its LDFLAGS which are not needed (or cause no havoc) in simple tests for C compiler functionality in ./configure. For the arguably broken R rpm, use either LDFLAGS="" or the svn rev. 1020 configure argument --disable-loadflags. The load flags are far more than is sensibly needed to check whether the compile train works. I have used RH, RHEL and Fedora since the last century, and have always installed R from source. Recently, the TexLive packaging system drew in (totally unecessarily) a dependency on the R rpm, which I now have to avoid using. My rpm: $ /usr/bin/R CMD config LDFLAGS -Wl,-z,relro -Wl,--as-needed -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld and compiled from source: $ R CMD config LDFLAGS -L/usr/local/lib64 Why the rpm LDFLAGS demolish a simple AC_LANG(C++) (guesswork, now line 504 in configure.ac) is unknown for me, hence the need for the workaround. I advise strongly against binary packaging of rgdal for Linux, and was not aware that any such packaging had been attempted. Changes in GDAL and PROJ happen fast, and Fedora/Centos etc. have been really slow to update. If anyone understands why the R Fedora rpm imposes such vicious LDFLAGS and can explain why they are needed and how to run a cross platform configure script without having to special-case platforms, I'd be mildly interested to know. sf has also been through similar trouble as mentioned earlier in this thread. Roger
docker run -it library/fedora:32
dnf install 'dnf-command(builddep)'
dnf builddep R-rgdal
R
install.packages("rgdal")
* installing *source* package ?rgdal? ...
** package ?rgdal? successfully unpacked and MD5 sums checked
** using staged installation
configure: R_HOME: /usr/lib64/R
configure: CC: gcc -m64
configure: CXX: g++ -m64 -std=gnu++11
configure: CXX11 is: g++ -m64, CXX11STD is: -std=gnu++11
configure: CXX is: g++ -m64 -std=gnu++11
configure: C++11 support available
configure: rgdal: 1.5-12
checking for /usr/bin/svnversion... no
configure: svn revision: 1018
checking for gdal-config... /usr/bin/gdal-config
checking gdal-config usability... yes
configure: GDAL: 3.0.4
checking GDAL version >= 1.11.4... yes
checking GDAL version <= 2.5 or >= 3.0... yes
checking GDAL: linking with --libs only... yes
checking GDAL: gdal-config data directory readable... yes
checking GDAL: /usr/share/gdal/stateplane.csv readable... yes
configure: pkg-config proj exists, will use it
configure: PROJ version: 6.3.2
configure: PROJ CPP flags: -DPROJ_H_API
configure: PROJ LIBS: -lproj
checking PROJ header API:... yes
checking whether the C++ compiler works... yes
checking for C++ compiler default output file name... a.out
checking for suffix of executables...
checking whether we are cross compiling... configure: error: in
`/tmp/Rtmp2o3TMz/R.INSTALLf5d2a7cbb3e/rgdal':
configure: error: cannot run C++ compiled programs.
If you meant to cross compile, use `--host'.
See `config.log' for more details
ERROR: configuration failed for package ?rgdal?
* removing ?/usr/lib64/R/library/rgdal?
The downloaded source packages are in
?/tmp/RtmpooFgiH/downloaded_packages?
Updating HTML index of packages in '.Library'
Warning messages:
1: In install.packages("rgdal") :
installation of package ?rgdal? had non-zero exit status
2: In file.create(f.tg) :
cannot create file '/usr/share/doc/R/html/packages.html', reason 'No
such file or directory'
3: In make.packages.html(.Library) : cannot update HTML package index
I don't have any insight into what happens here, but it is reproducible. Best, Ista On Sun, Jun 28, 2020 at 9:42 AM Veronica Andreo <veroandreo at gmail.com> wrote:
Dear Roger,
Thanks for the answer.
R is installed from Fedora repos and no, I do not have any issues with sf. It installs and loads just fine.
I downloaded the new rgdal tar.gz from R-forge, but I get the same error that was reported yesterday; config.log file attached. The first error I see there is in line 98-99 about a -V not recognized and then another one for -qversion. Are those relevant?
Vero
---
install.packages("~/Downloads/rgdal_1.5-13.tar.gz", repos = NULL, type = "source")
Installing package into ?/home/veroandreo/R/x86_64-redhat-linux-gnu-library/3.6?
(as ?lib? is unspecified)
* installing *source* package ?rgdal? ...
** using staged installation
configure: R_HOME: /usr/lib64/R
configure: CC: gcc -m64
configure: CXX: g++ -m64 -std=gnu++11
configure: CFLAGS: -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection
configure: CPPFLAGS: -I/usr/local/include
configure: LDFLAGS: -Wl,-z,relro -Wl,--as-needed -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld
loadflags: yes
configure: LDFLAGS: -Wl,-z,relro -Wl,--as-needed -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld
configure: CXX11 is: g++ -m64, CXX11STD is: -std=gnu++11
configure: CXX is: g++ -m64 -std=gnu++11
configure: C++11 support available
configure: rgdal: 1.5-13
checking for /usr/bin/svnversion... yes
cat: inst/SVN_VERSION: No such file or directory
configure: svn revision:
checking for gdal-config... /usr/bin/gdal-config
checking gdal-config usability... yes
configure: GDAL: 3.0.4
checking GDAL version >= 1.11.4... yes
checking GDAL version <= 2.5 or >= 3.0... yes
checking GDAL: linking with --libs only... yes
checking GDAL: gdal-config data directory readable... yes
checking GDAL: /usr/share/gdal/stateplane.csv readable... yes
configure: pkg-config proj exists, will use it
configure: PROJ version: 6.3.2
configure: PROJ CPP flags: -DPROJ_H_API
configure: PROJ LIBS: -lproj
checking PROJ header API:... yes
checking whether the C++ compiler works... yes
checking for C++ compiler default output file name... a.out
checking for suffix of executables...
checking whether we are cross compiling... configure: error: in `/home/veroandreo/tmp/Rtmp9DsGuk/R.INSTALL16352f5a74a/rgdal':
configure: error: cannot run C++ compiled programs.
If you meant to cross compile, use `--host'.
See `config.log' for more details
ERROR: configuration failed for package ?rgdal?
* removing ?/home/veroandreo/R/x86_64-redhat-linux-gnu-library/3.6/rgdal?
Warning in install.packages :
installation of package ?/home/veroandreo/Downloads/rgdal_1.5-13.tar.gz? had non-zero exit status
El dom., 28 jun. 2020 a las 14:44, Roger Bivand (<Roger.Bivand at nhh.no>) escribi?:
On Sun, 28 Jun 2020, Roger Bivand wrote:
Vero, On Sat, 27 Jun 2020, Veronica Andreo wrote:
See the attached config.log file
How did you install R itself? If an rpm, then https://github.com/r-spatial/sf/issues/1369 may be relevant, also if you see errors installing sf. You would need to unset LDFLAGS before installing: https://github.com/r-spatial/sf/issues/1369#issuecomment-614096865 Please report back on this.
LDFLAGS needs unsetting. Revision 1020 on R-Forge https://r-forge.r-project.org/R/?group_id=884 includes a new configure argument --disable-loadflags to assist in unsetting the very specific R rpm LDFLAGS. Please report if this fixes the problem. Roger
Roger
El s?b., 27 jun. 2020 a las 21:29, Veronica Andreo (<veroandreo at gmail.com>) escribi?:
Hello everyone
I have just updated my system to fedora 32 (which fetched GDAL 3 and PROJ
6) and when updating my R packages, I get the following error for rgdal.
Can someone help me out here? What does it mean that it cannot run C++
compiled programs? And do I want to crosscompile?
Thanks much in advance
Vero
---
install.packages("rgdal")
Installing package into
?/home/veroandreo/R/x86_64-redhat-linux-gnu-library/3.6?
(as ?lib? is unspecified)
trying URL 'http://cran.rstudio.com/src/contrib/rgdal_1.5-12.tar.gz'
Content type 'application/x-gzip' length 2302403 bytes (2.2 MB)
==================================================
downloaded 2.2 MB
* installing *source* package ?rgdal? ...
** package ?rgdal? successfully unpacked and MD5 sums checked
** using staged installation
configure: R_HOME: /usr/lib64/R
configure: CC: gcc -m64
configure: CXX: g++ -m64 -std=gnu++11
configure: CXX11 is: g++ -m64, CXX11STD is: -std=gnu++11
configure: CXX is: g++ -m64 -std=gnu++11
configure: C++11 support available
configure: rgdal: 1.5-12
checking for /usr/bin/svnversion... yes
configure: svn revision: 1018
checking for gdal-config... /usr/bin/gdal-config
checking gdal-config usability... yes
configure: GDAL: 3.0.4
checking GDAL version >= 1.11.4... yes
checking GDAL version <= 2.5 or >= 3.0... yes
checking GDAL: linking with --libs only... yes
checking GDAL: gdal-config data directory readable... yes
checking GDAL: /usr/share/gdal/stateplane.csv readable... yes
configure: pkg-config proj exists, will use it
configure: PROJ version: 6.3.2
configure: PROJ CPP flags: -DPROJ_H_API
configure: PROJ LIBS: -lproj
checking PROJ header API:... yes
checking whether the C++ compiler works... yes
checking for C++ compiler default output file name... a.out
checking for suffix of executables...
checking whether we are cross compiling... configure: error: in
`/home/veroandreo/tmp/Rtmpo7AtPr/R.INSTALL12cc66f8f895/rgdal':
configure: error: cannot run C++ compiled programs. <<<<--- here
If you meant to cross compile, use `--host'.
See `config.log' for more details
ERROR: configuration failed for package ?rgdal?
* removing ?/home/veroandreo/R/x86_64-redhat-linux-gnu-library/3.6/rgdal?
* restoring previous
?/home/veroandreo/R/x86_64-redhat-linux-gnu-library/3.6/rgdal?
Warning in install.packages :
installation of package ?rgdal? had non-zero exit status
---
sessionInfo()
R version 3.6.3 (2020-02-29)
Platform: x86_64-redhat-linux-gnu (64-bit)
Running under: Fedora 32 (Thirty Two)
Matrix products: default
BLAS/LAPACK: /usr/lib64/libopenblas-r0.3.9.so
Random number generation:
RNG: Mersenne-Twister
Normal: Inversion
Sample: Rounding
locale:
[1] LC_CTYPE=en_US.UTF-8 LC_NUMERIC=C
[3] LC_TIME=en_US.UTF-8 LC_COLLATE=en_US.UTF-8
[5] LC_MONETARY=en_US.UTF-8 LC_MESSAGES=en_US.UTF-8
[7] LC_PAPER=en_US.UTF-8 LC_NAME=C
[9] LC_ADDRESS=C LC_TELEPHONE=C
[11] LC_MEASUREMENT=en_US.UTF-8 LC_IDENTIFICATION=C
attached base packages:
[1] stats graphics grDevices utils datasets methods base
loaded via a namespace (and not attached):
[1] compiler_3.6.3 tools_3.6.3
-- Roger Bivand Department of Economics, Norwegian School of Economics, Helleveien 30, N-5045 Bergen, Norway. voice: +47 55 95 93 55; e-mail: Roger.Bivand at nhh.no https://orcid.org/0000-0003-2392-6140 https://scholar.google.no/citations?user=AWeghB0AAAAJ&hl=en
_______________________________________________ R-sig-Geo mailing list R-sig-Geo at r-project.org https://stat.ethz.ch/mailman/listinfo/r-sig-geo
-- Roger Bivand Department of Economics, Norwegian School of Economics, Helleveien 30, N-5045 Bergen, Norway. voice: +47 55 95 93 55; e-mail: Roger.Bivand at nhh.no https://orcid.org/0000-0003-2392-6140 https://scholar.google.no/citations?user=AWeghB0AAAAJ&hl=en_______________________________________________ R-sig-Geo mailing list R-sig-Geo at r-project.org
Roger Bivand Department of Economics, Norwegian School of Economics, Helleveien 30, N-5045 Bergen, Norway. voice: +47 55 95 93 55; e-mail: Roger.Bivand at nhh.no https://orcid.org/0000-0003-2392-6140 https://scholar.google.no/citations?user=AWeghB0AAAAJ&hl=en