[Fedora-r-devel-list] Re: Additional R packages [arm, car, lme4, Matrix, coda, leaps, mlmRev] for Extras?

Tom Moertel tom at moertel.com
Thu Apr 26 20:23:49 UTC 2007


José,

Thanks for your help.  Now, on to your comments:

José Matos wrote:
> Tom may I suggest that you join fedora-r-devel-list at redhat.com

Done.

I'm cc:ing this email to the list, too, mainly because of the discussion 
on R packaging work-arounds, which probably ought to be archived.  For 
the same reason, I'm leaving more context in this email than I normally 
would.

Tom Moertel wrote:
>> For my internal use, I have packaged a number of R packages for FC6:
>>
>>      * R-arm-1.0-2
>>      * R-car-1.2-1
>>      * R-lme4-0.9975-1
>>      * R-Matrix-0.9975-1
>>      * R-R2WinBUGS-2.0-1
>>      * R-coda-0.10-1
>>      * R-leaps-2.7-1
>>      * R-mlmRev-0.995-1
>>
>> Corresponding specs:
>> http://community.moertel.com/rpms/fedora/6/SPECS/
>>
>> For more details:
>> http://blog.moertel.com/articles/2007/04/25/new-fedora-core-rpms-for-cran-packages

>   Are you aware of cran2rpmspec? 
> http://www.fc.up.pt/pessoas/jamatos/R/cran2rpmspec

No, I was completely unaware of cran2rpmspec.  That would have made my 
job a bit easier.  ;-)

Thanks for pointing it out (and for writing it).

>> Do you think there would be sufficient benefit to the Fedora community
>> to merit adding these packages to Extras?  If so, would you mind helping
>> me get the packages into shape for submission?
> 
>   Sure on both issues. :-)

Great!

I assume that normally my next steps would be to create review requests 
for the packages, get sponsored, get a Fedora Account, check in my 
packages, and eventually queue up builds for my packages.  Does that 
seem right?

Looking ahead to that last step, how does the build system handle weird 
build-order requirements?  Can the system, for example, infer from 
BuildRequires statements that it must build and install the R-Matrix 
package before it can try to build R-arm?  (I couldn't find out how 
Plague deals with dependencies from my search of the wiki.)

>> In any case, I ran into some difficulties during packaging.  Can I ask
>> for your advice?
>>
>> First, how do you deal with circular dependencies among R packages?  The
>> lme4 CRAN package, for example, "suggests" mlmRev, but mlmRev "depends"
>> on lme4.  Thus the %check stage's "R CMD check" for each of the packages
>> tries to require the other package, which prevents either from building.
>>   I worked around this problem by disabling the %check stage of
>> R-mlmRev, building that package first, installing it, and then building
>> R-lme4, whose %check I left intact.  (Since mlmRev is mainly data files,
>> I felt its check was more expendable.)
>>
>> Can you suggest a better way of dealing with circular dependencies?
> 
>   The real solution would be for rpm to support these concepts. I think that 
> this will come, but for the moment a bootstrap solution like the one you have 
> used is necessary.

What's the preferred method to automate the bootstrap solution?  Should 
I write a script that builds the collection of packages?

>> Second, R2WinBUGS depends on BRugs, which doesn't build on Linux (yet).
>>     As a result, the "R CMD check" for R-R2WinBUGS fails during the
>> RPM-building process.  Again, I disabled the %check stage to work around
>> this problem.  The result is a partially broken R-R2WinBUGS package, but
>> the packages that depend upon it tangentially (e.g., R-arm) can still be
>> built and installed.
> 
>   If this was a Fedora review I would suggest placing this comment near the 
> referred section.

I already have the following in
http://community.moertel.com/rpms/fedora/6/SPECS/R-mlmRev.spec:

   %check
   # disable check to avoid circular dependency w/ R-lme4.
   # since this package is just data files, we disable this package's
   # check instead of R-lme4's to break the dependency
   #
   # cd ..;%{_bindir}/R CMD check %{packname}

Is that what you meant?  Or should I do something else?

>> Can you suggest a better way of dealing with missing dependencies like
>> BRugs?
> 
> http://cran.r-project.org/src/contrib/checkSummary.html
> says that it works. What problems are you getting?

CheckSummary.html does not claim that the package actually installs. 
And, in fact, during the install stage it aborts:

   + R CMD INSTALL BRugs -l \
     /var/tmp/R-BRugs-0.3-1-root-thor/usr/lib64/R/library

   * Installing *source* package 'BRugs' ...
     Package 'BRugs' currently only works under Windows.
     It is supposed to work under Linux in future releases.

   ERROR: configuration failed for package 'BRugs'

It might be difficult to work around that problem in the RPM spec.  ;-)

Thanks again for your help.

>> P.S.  I have also packaged Emacs Speaks Statistics:
>> http://community.moertel.com/rpms/fedora/5/SPECS/emacs-ess.spec
> 
> That would be super. :-)
> My wife asked me for this package but I never got the necessary time to do it.

Coincidentally, ESS 5.3.4 was just released today.

Cheers,
Tom




More information about the Fedora-r-devel-list mailing list