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.biv...@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.biv...@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 <veroand...@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.biv...@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
  (<veroand...@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.biv...@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@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.biv...@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@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.biv...@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.biv...@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@r-project.org
https://stat.ethz.ch/mailman/listinfo/r-sig-geo

Reply via email to