[R-pkg-devel] New Package Removal because Shared Library Too Large from Debugging Symbols

Johann Gaebler me @end|ng |rom jg@eb@com
Sat Jan 20 20:38:55 CET 2024


Hi everyone,

I received the following message regarding  `rar` <https://cran.r-project.org/package=rar>, a package that I put up on CRAN two days ago:

> Dear maintainer,
> 
> Please see the problems shown on
> <https://cran.r-project.org/web/checks/check_results_rar.html>.
> 
> Please correct before 2024-02-02 to safely retain your package on CRAN.

The issue is that the compiled libraries are too large. The Mac CRAN checks turned up the following note:

> installed size is  8.9Mb
> sub-directories of 1Mb or more:
>  libs   8.7Mb

I have not been able to reproduce the issue either locally or on any machine I have ready access to. I have built it on some of the Rhub and R-Project build systems, and the same issue (with very different `libs` sizes) came up on some of them:

• (RHub) Ubuntu Linux 20.04.1 LTS, R-release, GCC: 18.2Mb,
• (RHub) Fedora Linux, R-devel, clang, gfortran: 6.8Mb,
• (R-Project) r-release-macosx-arm64: 8.5Mb.

Based on trying to read up about this, it seems that this is a pretty common problem <http://dirk.eddelbuettel.com/blog/2017/08/14/#009_compact_shared_libraries> for compiled packages because of debugging symbols getting inserted into the shared library file. Using the fix from that blog post where you modify the Makevars to strip debugging symbols from the shared library seems to solve the issue on those build systems, so I feel reasonably confident that this is what’s going on.

Apparently many, many existing packages on CRAN have the same issue. However, I’m very new to R package development, so I’m not exactly sure what to do. I have two questions:

1. Is there anything I need to “fix” here, or should I just make contact with the CRAN folks and bring the fact that this is being caused by debugging symbols to their attention?
2. Regardless of whether or not I have to fix this issue for CRAN, is there a way to strip out the debugging symbols that comports with CRAN policies? The method suggested in the blog post above (adding a phony target in `Makevars` that strips the shared library) seems not to be CRAN-compliant, but I could be mistaken about that. (In particular, I had to modify it locally to get it to run, so I’m not sure what the platform-independent version of it looks like.)

Thanks in advance for the help!

Sincerely,
Johann D. Gaebler
	[[alternative HTML version deleted]]



More information about the R-package-devel mailing list