Skip to content

missing space in R version specifier makes PACKAGES file unreadable by install.packages()

4 messages · Dan Tenenbaum, Duncan Murdoch

#
Hi,

After updating to R-3.0 beta r62328, I get the following:
Error in do.call(op, list(v_c, v_t[[op]])) :
  could not find function "R (>=2.15.1)"

The problem can be fixed by adding a space after >= in the offending
package's DESCRIPTION file and re-generating the PACKAGES file with
tools:::write_PACKAGES().

However, this worked OK in r62077. I'm not sure if >=2.15.1 (without
the space) is valid syntax, but I wonder if R can be a bit more
forgiving, as this issue derailed our daily builds.
R version 3.0.0 alpha (2013-03-18 r62312)
Platform: x86_64-apple-darwin10.8.0 (64-bit)

locale:
[1] C

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base

loaded via a namespace (and not attached):
[1] tools_3.0.0


Thanks,
Dan
#
On Thu, Mar 21, 2013 at 9:52 AM, Dan Tenenbaum <dtenenba at fhcrc.org> wrote:
Beg pardon, this did not work in r62077 either.

However I still think it's worth reporting.
Dan
#
On 21/03/2013 12:59 PM, Dan Tenenbaum wrote:
I don't think this has changed recently.  The manual currently says "The 
comment should contain a comparison operator, whitespace and a valid 
version number."  In 2.15.0 it was less explicit, but the example 
contained a space.  It may be that some code path worked before more or 
less by accident, because in December changes were made to the parsing 
to avoid a tricky reentrancy problem, but I don't think it has ever been 
documented to work without whitespace.

I can't think of the reason white space was required, but the code does 
explicitly look for it, so I'd be reluctant to change it.

Duncan Murdoch
#
On Thu, Mar 21, 2013 at 10:28 AM, Duncan Murdoch
<murdoch.duncan at gmail.com> wrote:
You're right. It was not R that changed, but something on our side. R
CMD build will not build a package with such a malformed version
specifier, so it normally would not be an issue. Please disregard and
sorry for the noise.

Dan