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

Bennet Fauber bennet @end|ng |rom um|ch@edu
Mon Jun 29 14:27:20 CEST 2020


Thanks for the update, Roger!  Very glad you got a response so
quickly, and a fix to match.

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.

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



More information about the R-sig-Geo mailing list