Gentoo Archives: gentoo-science

From: Auke Booij <auke@××××××.com>
To: gentoo-science@l.g.o
Subject: [gentoo-science] G-CRAN: time for cake, packages are building
Date: Fri, 25 Jun 2010 16:46:43
Message-Id: AANLkTimjQZY-69m9j1G4F_rcOV9f9faeFceq0vUD6Yeq@mail.gmail.com
Just pushed to my git repository: a fallible commit containing an
ebuild which builds some CRAN-style packages (hopefully).

As some of you might incidentally know, I'm working on getting Gentoo
to build CRAN package as a Google Summer of Code project. That means
I'm supposed to do something impressive, but I'm leaving that part to
you guys. What I /am/ doing is writing some clever code which
hopefully will build most CRAN-style packages from within package
managers. That would mean automatic dependency resolving (most
importantly, this must also work for external (non-CRAN)
dependencies), proper installation of documentation, and hopefully a
whole lot more clean package handling (perhaps there are dependencies
between Bioconductor and CRAN? what about cross-platform building? i
am doing my own research regarding this but would love to hear what
problems you're expecting and what you'd like to see fixed).

Alright, back to e7265e5bfce8a7e39a6cbbb14814bec5e1c3ffc9. No, there
is no ebuild for G-CRAN itself, there is no integration with layman,
no intelligent documentation installer, no friendly interface, no
quick database for fast package searches and/or caching, but at least
the darned thing actually builds and installs some CRAN-style
packages. If you're desperate to give this Grendel a spin, feel free
to clone the git repository and do the following:

-modify cran.ebuild to reflect the right location of g-cran.py - there
are two instances where you'll need to update it (eventually g-cran.py
and friends should just be installed to the right directory, of
course)
-create or open up a local overlay (let's say you created /usr/local/portage)
-execute:
# g-cran.py /usr/local/portage sync http://cran.r-project.org (note:
this doesn't create a tree yet, and this is actually something I hope
to be doing with the cooperation of two other GSoC projects)
# mkdir /usr/local/portage/profiles/
# echo "dev-R" >> /usr/local/portage/profiles/categories
# mkdir -p /usr/local/portage/dev-R/waved/
# ln -s /somewhere/git-repos/g-cran/cran.ebuild
/usr/local/portage/dev-R/waved/waved-1.ebuild (note: the version
currently doesn't matter, since CRAN only offers one version of each
package anyway)
# emerge waved
I have to admit I haven't tried portage yet (I'm personally a paludis
fanboy), and I think it might complain about checksums and stuff
(please tell me if it does), but if you're using paludis too you
should be able to install, in this case, waved. You can list all
packages by issuing:
# g-cran.py /usr/local/portage list-packages

Please note that the code very simplistic and will fail on a lot of
packages. The dependencies *will* be all wrong, but at least this
should give you something to play with.

Stay tuned!
tulcod.

Replies

Subject Author
[gentoo-science] Re: G-CRAN: time for cake, packages are building Auke Booij <auke@××××××.com>