[Rd] Rebuild package on R 3.0.0 without source code?

Duncan Murdoch murdoch.duncan at gmail.com
Thu Apr 18 17:23:18 CEST 2013


On 18/04/2013 11:07 AM, McGehee, Robert wrote:
> R-developers,
> I have a binary R package built using R 2.14.1 that I would like to run on R 3.0.0. Unfortunately, the original source code is unavailable, so I cannot rebuild the package as R 3.0.0 requires.
>
> Is there a straight forward way of converting the package (.rdb, .rdx and .rds files) in the binary package from a 2.14.1 version to a 3.0.0 version without the source code (perhaps uncompressing/recompressing somehow)?
>
> Naturally, since the R code is visible, I know I can output all of the parsed objects in the package to a text file to make a skeleton package that can then be built/installed. Something like this:
>
>         objs <- ls(envir=loadNamespace("binaryPkg"), all.names=TRUE)
>         dump(objs, file="code.R", envir=loadNamespace("binaryPkg"))
>
> However, I'd still lose all the man pages, and since I get a couple of "deparse may be incomplete" warnings, I worry that this may be introducing additional bugs.
>   
> Is there a magic solution here, or is this a fool's errand?

I'd guess there's no magic solution.  Deparsing is not perfect, so just 
about any automatic solution may introduce additional bugs.

Use it as a lesson:  you shouldn't use closed-source software.

BTW, you're probably aware of this, but others might not be:  if this 
was a CRAN package, it quite likely does have the source for the old 
version still available.  Take a look around the "Archive" link on the 
contributed packages page.  CRAN is very reluctant to delete sources 
once it has made them public. So it's quite safe to install binaries 
from CRAN, just not necessarily from other sources.

Duncan Murdoch



More information about the R-devel mailing list