[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