[R-sig-Geo] cannot install rgdal after updating to fedora32

Roger Bivand Roger@B|v@nd @end|ng |rom nhh@no
Sun Jun 28 19:17:08 CEST 2020


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 using 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 using 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 using 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 using 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 using 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 using nhh.no
https://orcid.org/0000-0003-2392-6140
https://scholar.google.no/citations?user=AWeghB0AAAAJ&hl=en


More information about the R-sig-Geo mailing list