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

Roger Bivand Roger@B|v@nd @end|ng |rom nhh@no
Mon Jun 29 09:56:52 CEST 2020


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 -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_______________________________________________
>> 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