Any attempt to emerge dev-lang/R-2.8.1 fails with a sandbox violation. The sandbox log states the origin of the problem to be the shell command $ mv /boot /var/tmp/portage/dev-lang/R-2.8.1/work/R-2.8.1/library/boot which indeed looks as if the sandbox has done its job right. Reproducible: Always Steps to Reproduce: 1. emerge R Actual Results: Bails out with a sandbox violation error Expected Results: Should build without an error
Created attachment 198408 [details] emerge log LZMA-compressed due to its size. Use $ unlzma <file> to uncompress.
Created attachment 198410 [details] Output of emerge --info
Created attachment 198412 [details] Sandbox log
It gets even funnier: A file or directory /var/tmp/portage/dev-lang/R-2.8.1/work/R-2.8.1/library/boot does not even exist! $ ls /var/tmp/portage/dev-lang/R-2.8.1/work/R-2.8.1/library base graphics grid R.css stats tcltk utils datasets grDevices methods splines stats4 tools Which means the "mv"-operation would have failed even without the sandbox problem.
Created attachment 198414 [details] ./configure log LZMA-compressed due to its size.
I tried the newest version in the Portage tree R-2.9.1 and found out that this version has the same issue.
I finally was able to track down the actual origin of the problem! The sandbox violation is only a follow-up error. The primary source of the problem is that a Perl module isn't found during the build, which seems to take part in determining the actual path names used by the build. Because this Perl module was not found, invalid path names were generating, leading to the sandbox violation. The fix was easy as the "missing" module was actually part of the source tree: Just add the path to $PERL5LIB within the build environment, and everything worked out fine!
Created attachment 199863 [details] An updated ebuild fixing the build problem
In order to make installation and testing even more comfortable, I have created a publicly accessible layman overlay for the proposed new ebuild. That way, everyone can easily install the ebuild with layman without a need to manually set up a local overlay. Here are the instructions how to do it: $ emerge -u layman '>=bzr-1.14' # Make sure dependencies are installed. $ layman -o http://rpo.xw.ath.cx/gentoo/portage/overlays/hosted.xml -fa \ xworld_hotfixes $ emerge -av =dev-lang/R-2.9.1-r1
Fixed. Thanks!