On May 18, 2012, at 11:11 AM, Daniel Fuka wrote:

> Sorry for this intrusion, but I am confused by two statements that
> appear to conflict at some level in Writing R Extensions, and wanted
> to make sure I understand the answer to:
> Can we distribute a portable executable compiled from source by CRAN in CRAN?
> 
> The following section of Writing R Extensions appears to not be
> addressing this issue, as in this case we are discussing portable CRAN
> compiled binaries, and not binaries that are submitted to CRAN:
> "A source package if possible should not contain binary executable
> files: they are not portable, and a security risk if they are of the
> appropriate architecture. R CMD check will warn about them unless they
> are listed (one filepath per line) in a file BinaryFiles at the top
> level of the package. Note that CRAN will no longer accept submissions
> containing binary files even if they are listed."
> 
> The following section seems to indicate special cases in which
> packages can create binary files:
> "In very special cases packages may create binary files other than the
> shared objects/DLLs in the src directory. Such files will not be
> installed in multi-arch setting since R CMD INSTALL --libs-only is
> used to merge multiple architectures and it only copies shared
> objects/DLLs. If a package wants to install other binaries (for
> example executable programs), it should to provide an R script
> src/install.libs.R which will be run as part of the installation in
> the src build directory instead of copying the shared objects/DLLs."
> 
> Once again, sorry for my confusion on this point. I just have what I
> might consider a special case where it would be very handy to
> distribute a cran compiled executable.

I don't quite follow - CARN obviously distributes binaries compiled by CRAN and 
those are called binary packages. Can you be more specific as of what you are 
asking about?  The two paragraphs you are quoting are about entirely different 
things - the first states that you can't include binaries in *source* packages 
and the second describes how you can build executables beside dynamic objects 
in packages so that CRAN can include them in *binary* packages. It doesn't 
cover distribution.

What you refer to are rules for *source* packages which can't distribute 
binaries, but you can always use a binary package (which contains binaries). 
Note that the issue in question is not who built the binary but whether it 
could have been injected by 3rd party or not (hence all binaries are disallowed 
in source packages since there is no way to tell).

Cheers,
Simon

______________________________________________
R-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel

Reply via email to