External Libraries for CRAN packages

CRAN packages may wish to link to external libraries (or rarely, invoke other software) that needs to be installed on the CRAN check machines (which the CRAN policy prefers to including in the package). Requests to add software should be sent to CRAN@R-project.org and where relevant copied to those responsible for the binary packages (see the CRAN policy).

Java SDKs (currently OpenJDK of various versions including 11 and 17) are installed on all the CRAN platforms, as are JAGS and ghostscript. Most but not all systems have MPI support installed.

Email addresses for those named are of the form ‘First.Lastname@R-project.org’.

Linux

CRAN checks are done on several Debian (including incoming checks) and Fedora machines. Software will only be installed on the Debian machines that is available from Debian repositories for ‘testing’. The rcheckserver meta-package available from the AASC repository at https://statmath.wu.ac.at/AASC/debian provides all system dependencies used for the Debian checks.

For Fedora, requests to add RPMs from official repositories are preferred, but at our discretion software may be installed from elsewhere (as has been done for pandoc) or compiled from source (as may be needed for the fedora-clang checks). No information is publicly available on what RPMs are already installed as it differs by machine.

Be aware that adding software to the Linux machines needs the time of busy sysadmins, not just the CRAN team.

macOS

External libraries are made for both macOS architectures via Simon Urbanek’s ‘recipes’ system at https://github.com/R-macos/recipes. Tested updates to these recipes or new recipes should be requested at GitHub or emailed to him, failing which he can be asked to help to prepare a recipe.

An idea of what external libraries are currently available can be found at https://mac.r-project.org/bin/darwin17/x86_64/ and https://mac.r-project.org/bin/darwin20/arm64/ with installation instructions at https://mac.r-project.org/bin/.

Requests to add or update other software (which in the past have included cmake and pandoc) should be sent to the maintainer, Simon Urbanek, with as much detail as possible.

There is no MPI support. Although OpenMPI can be installed, only dynamic linking works and so cannot be used portably.

JAGS may or may not be available. There is an ‘official’ release for Intel Macs at https://sourceforge.net/projects/mcmc-jags/files/JAGS/4.x/: an M1 build there has been expected for some time. Meanwhie there is one at https://www.stats.ox.ac.uk/pub/bdr/JAGS-arm64/.

Windows

The build system for Windows changed with 4.2.0 and only that is considered here (and only 64-bit Windows is now supported).

Building of external libraries is done using MXE (https://mxe.cc/). That has an extensive set of packages (https://github.com/mxe/mxe/blob/master/src), and users can contribute others (https://mxe.cc/#creating-packages). For external libraries not already available, the best approach is to contribute to the MXE library. For advice, consult Tomas Kalibera.

Common build tools are installed using Msys2 (https://www.msys2.org/).

GDAL executables are currently available via a QGIS installation (https://qgis.org/downloads/QGIS-OSGeo4W-3.22.0-4.msi), but this may change in future.

Requests to add or update other software should be sent to the maintainer, Uwe Ligges, with as much detail as possible.