Skip to content

[R-pkg-devel] Solaris Support

3 messages · Reed A. Cartwright, Tim Taylor, Ben Bolker

#
What is the proper way to indicate that a package submitted to CRAN
requires the gcc compiler on Solaris? I haven't been able to find any
information about how to indicate that in a way that the CRAN builders will
pick up on it.

--
Reed A. Cartwright, PhD
Associate Professor of Genomics, Evolution, and Bioinformatics
School of Life Sciences and The Biodesign Institute
Arizona State University
==================
Address: The Biodesign Institute, PO Box 875301, Tempe, AZ 85287-5301 USA
Packages: The Biodesign Institute, 1001 S. McAllister Ave, Tempe, AZ
85287-5301 USA
Office: Biodesign B-220C, 1-480-965-9949
Website: http://cartwrig.ht/
#
No direct experience, so others may know more, but I'd have thought in the system requirements of DESCRIPTION. See for instance what duckdb does https://github.com/duckdb/duckdb/blob/master/tools/rpkg/DESCRIPTION
#
I think you're stuck with what you get as far as compilers go (see 
below), but it shouldn't be a deal-breaker for CRAN.

The list of CRAN test platforms 
<https://cran.r-project.org/web/checks/check_flavors.html> indicates 
that the platform uses the Oracle Developer Studio 12.6 compiler , but 
the DETAILS 
<https://www.stats.ox.ac.uk/pub/bdr/Rconfig/r-patched-solaris-x86> say 
"GCC is used for packages linking to Rcpp|cpp11|StanHeaders, rgdal/sf 
(GDAL is only compilable with g++) and about 40 others."

   So if you link to one of those packages or the undisclosed 40 others, 
you will get GCC (details below).  If not, or if you're not sure, you 
should indicate in your submission message that your package only works 
with GCC on Solaris. According to the CRAN policies 
<https://cran.r-project.org/web/packages/policies.html>

Package authors should make all reasonable efforts to provide 
cross-platform portable code. Packages will not normally be accepted 
that do not run on at least two of the major R platforms. [I believe 
"the major R platforms" means {MacOS, Windows, Linux} but I don't think? 
this is explicitly defined anywhere.]

   So, at least as far as publicly viewable policies go, the CRAN 
maintainers would be able to ask you to make "all reasonable efforts". 
(In my opinion, figuring out how to make your package work properly with 
ODS 12.6 would take more than a "reasonable" effort, but .. ???)

   cheers
    Ben Bolker



=====
Where these compilers cannot be used, use
GCC 5.2.0 from OpenCSW, with config.site:
CC="/opt/csw//bin/gcc"
CFLAGS=-O2
CPPFLAGS="-I/opt/csw/include -I/usr/local/include"
FC="/opt/csw//bin/gfortran"
FFLAGS=-O2
CXX="/opt/csw//bin/g++"
CXXFLAGS=-O2
LDFLAGS="-L/opt/csw/lib -L/usr/local/lib"
R_LD_LIBRARY_PATH="/usr/local/lib:/opt/csw/lib:/home/ripley/developerstudio12.6/lib:/usr/openwin/lib"
On 8/23/21 3:31 PM, Reed A. Cartwright wrote: