Lukas,
It is, as you noticed, complicated. One way forward might be to rely on what you can rely on (i.e. a suitable system fftw on two of the three platforms) and to embed and locally build where not. Nowadays a number of packages embedding external libraries and resorting to eg cmake to build locally to provide what their R package needs (pak now rebuilds curl, igraph 'vendors' a number of external libraries, as does duckdb and so on), and so on. It is one approach. Others download if they must (i.e. what I once added to nloptr) but CRAN now leans more against downloads at build time. [1] The problem is that SystemRequirements: is all we have to solve a cross-OS, cross-platform, cross-distro (for Linux), cross-release, ... dependency issue. Something for which a (commonly) single-line of free form text is not all that well suited. But anything more formal would be need to reliably address the cross-product of cpu architecture, operating system, flavour/distro, release, ... Not easy for (less than) a handful of already stretched volunteers. So this is a hard problem; if it could be fixed easily it would have been addressed in the 25+ plus years of CRAN. Cheers, Dirk PS For the smaller subset of three releases for (currently) one architecture, one platform, and one distribution flavor this has been address using the existence of system package manager: r2u covers this reliably and gets you (CRAN) package binaries for Ubuntu with full and complete system dependency integration, see https://eddelbuettel.github.io/r2u -- but it is hard / impossible to generalise to other OSs without a similar package manager. -- dirk.eddelbuettel.com | @eddelbuettel | e...@debian.org ______________________________________________ R-package-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-package-devel