[R] Basic package structure question
Joerg van den Hoff
j.van_den_hoff at fz-rossendorf.de
Fri Jun 23 10:34:08 CEST 2006
Gabor Grothendieck wrote:
> On 6/22/06, Duncan Murdoch <murdoch at stats.uwo.ca> wrote:
>> Jay Emerson wrote:
>>> At the encouragement of many at UseR, I'm trying to build my first real
>>> package. I have no C/Fortran code, just plain old R code, so it should be
>>> rocket science. On a Linux box, I used package.skeleton() to create a basic
>>> package containing just one "hello world" type of function. I edited the
>>> DESCRIPTION file, changin the package name appropriately. I edited the
>>> hello.Rd file. Upon running R CMD check hello, the only warning had to do
>>> with the fact that src/ was empty (obviously I had no source in such a
>>> simple package). I doubt this is a problem.
>>>
>>> I was able to install and use the package successfully on the Linux system
>>> from the .tar.gz file, so far so good! Next, on to Windows, where the
>>> problem arose:
>>>
>>> I created a zip file from inside the package directory: zip -r ../hello.zip
>>> ./*
>>>
>>>
>> Which package directory, the source or the installed copy? I think this
>> might work in the installed copy, but would not work on the source.
>> It's not the documented way to build a binary zip, though.
>>> When I moved this to my Windows machine and tried to install the package, I
>>> received the following error:
>>>
>>>
>>>> utils:::menuInstallLocal()
>>>>
>>> Error in unpackPkg(pkgs[i], pkgnames[i], lib, installWithVers) :
>>> malformed bundle DESCRIPTION file, no Contains field
>>>
>>> I only found one mention of this in my Google search, with no reply to the
>>> thread. The Contains field appears to be used for bundles, but I'm trying
>>> to create a package, not a bundle. This leads me to believe that a simple
>>> zipping of the package directory structure is not the correct format for
>>> Windows.
>>>
>>> Needless to say, there appears to be wide agreement that making packages
>>> requires precision, but fundamentally a package should (as described in the
>>> documentation) just be a collection of files and folders organized a certain
>>> way. If someone could point me to documentation I may have missed that
>>> explains this, I would be grateful.
>>>
>> I think the "organized in a certain way" part is actually important.
>> Using R CMD install --build is the documented way to achieve this. It's
>> not trivial to do this on Windows, because you need to set up a build
>> environment first, but it's not horribly difficult.
>>
>> Duncan Murdoch
>>> Regards,
>>>
>>> Jay
>
> One idea that occurred to me in reading this would be to have a server
> that one can send a package to and get back a Windows build to
> eliminate having to set up a development environment. Not sure if
> this is feasible, particularly security aspects, but if it were it would
> open up package building on Windows to a larger audience.
>
> ______________________________________________
> R-help at stat.math.ethz.ch mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html
just to confirm duncan murdochs remark:
our Windows machines lack proper development environments (mainly
missing perl is the problem for pure R-code packages, I believe?) and we
bypass this (for pure R-code packages only, of course) by
1.) install the package on the unix machine into the desired R library
2.) zip the _installed_ package (not the source tree!) found in the R
library directory
3.) transfer this archive to the Windows machine
4.) unzip directly into the desired library destination
this procedure up to now always worked including properly installed
manpages (text + html (and I hope this remains the case in the future...)
joerg van den hoff
More information about the R-help
mailing list