[R-sig-Geo] cannot install rgdal after updating to fedora32
Roger Bivand
Roger@B|v@nd @end|ng |rom nhh@no
Mon Jun 29 16:32:29 CEST 2020
On Mon, 29 Jun 2020, Bennet Fauber wrote:
> Thanks for the update, Roger! Very glad you got a response so
> quickly, and a fix to match.
I hope it worked in your case.
>
> I would reiterate Iñaki's warning to folks.
>
> ...note that CPPFLAGS are *not* CXXFLAGS; I say this because it's
> a common mistake
>
> CPPFLAGS -> C preprocessor and are use to specify include files
> CXXFLAGS -> C++ compilation flags
>
> I have hurt myself several times thinking that CPP must be C Plus
> Plus, not C Pre Processor.
Not the case here, CPP was for the pre-processor and had been around a
long time to try to union the positions of R, GDAL and PROJ if possible.
Roger
>
> On Mon, Jun 29, 2020 at 8:03 AM Roger Bivand <Roger.Bivand using nhh.no> wrote:
>>
>> In thread
>> https://stat.ethz.ch/pipermail/r-sig-fedora/2020-June/000653.html, Iñaki
>> Úcar explains that, following the introduction of AC_LANG(C++) into
>> configure.ac about 11 June, the Fedora R rpm would also need CXXFLAGS set.
>>
>> Having added : ${CXXFLAGS=`"${RBIN}" CMD config CXXFLAGS`} to
>> configure.ac, I can confirm that the work-around flag is not needed, and
>> that (once R-forge revision 1021 completes), install.packages("rgdal",
>> repos="http://R-Forge.R-project.org") should work on Fedora R rpm
>> platforms. Those affected please check and confirm.
>>
>> Many thanks to Bennet and Iñaki!
>>
>> Roger
>>
>> On Mon, 29 Jun 2020, Roger Bivand wrote:
>>
>>> 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 using 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 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
>>>>>>> configure: -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS
>>>>>>> configure: -fexceptions -fstack-protector-strong -grecord-gcc-switches
>>>>>>> configure: -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1
>>>>>>> configure: -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64
>>>>>>> configure: -mtune=generic -fasynchronous-unwind-tables
>>>>>>> configure: -fstack-clash-protection -fcf-protection
>>>>>>> configure: CPPFLAGS: -I/usr/local/include
>>>>>>> configure: LDFLAGS: -Wl,-z,relro -Wl,--as-needed -Wl,-z,now
>>>>>>> configure: -specs=/usr/lib/rpm/redhat/redhat-hardened-ld
>>>>>>> loadflags: yes
>>>>>>> configure: LDFLAGS: -Wl,-z,relro -Wl,--as-needed -Wl,-z,now
>>>>>>> configure: -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_______________________________________________
>>>>> 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
>
--
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