1 |
Just pushed to my git repository: a fallible commit containing an |
2 |
ebuild which builds some CRAN-style packages (hopefully). |
3 |
|
4 |
As some of you might incidentally know, I'm working on getting Gentoo |
5 |
to build CRAN package as a Google Summer of Code project. That means |
6 |
I'm supposed to do something impressive, but I'm leaving that part to |
7 |
you guys. What I /am/ doing is writing some clever code which |
8 |
hopefully will build most CRAN-style packages from within package |
9 |
managers. That would mean automatic dependency resolving (most |
10 |
importantly, this must also work for external (non-CRAN) |
11 |
dependencies), proper installation of documentation, and hopefully a |
12 |
whole lot more clean package handling (perhaps there are dependencies |
13 |
between Bioconductor and CRAN? what about cross-platform building? i |
14 |
am doing my own research regarding this but would love to hear what |
15 |
problems you're expecting and what you'd like to see fixed). |
16 |
|
17 |
Alright, back to e7265e5bfce8a7e39a6cbbb14814bec5e1c3ffc9. No, there |
18 |
is no ebuild for G-CRAN itself, there is no integration with layman, |
19 |
no intelligent documentation installer, no friendly interface, no |
20 |
quick database for fast package searches and/or caching, but at least |
21 |
the darned thing actually builds and installs some CRAN-style |
22 |
packages. If you're desperate to give this Grendel a spin, feel free |
23 |
to clone the git repository and do the following: |
24 |
|
25 |
-modify cran.ebuild to reflect the right location of g-cran.py - there |
26 |
are two instances where you'll need to update it (eventually g-cran.py |
27 |
and friends should just be installed to the right directory, of |
28 |
course) |
29 |
-create or open up a local overlay (let's say you created /usr/local/portage) |
30 |
-execute: |
31 |
# g-cran.py /usr/local/portage sync http://cran.r-project.org (note: |
32 |
this doesn't create a tree yet, and this is actually something I hope |
33 |
to be doing with the cooperation of two other GSoC projects) |
34 |
# mkdir /usr/local/portage/profiles/ |
35 |
# echo "dev-R" >> /usr/local/portage/profiles/categories |
36 |
# mkdir -p /usr/local/portage/dev-R/waved/ |
37 |
# ln -s /somewhere/git-repos/g-cran/cran.ebuild |
38 |
/usr/local/portage/dev-R/waved/waved-1.ebuild (note: the version |
39 |
currently doesn't matter, since CRAN only offers one version of each |
40 |
package anyway) |
41 |
# emerge waved |
42 |
I have to admit I haven't tried portage yet (I'm personally a paludis |
43 |
fanboy), and I think it might complain about checksums and stuff |
44 |
(please tell me if it does), but if you're using paludis too you |
45 |
should be able to install, in this case, waved. You can list all |
46 |
packages by issuing: |
47 |
# g-cran.py /usr/local/portage list-packages |
48 |
|
49 |
Please note that the code very simplistic and will fail on a lot of |
50 |
packages. The dependencies *will* be all wrong, but at least this |
51 |
should give you something to play with. |
52 |
|
53 |
Stay tuned! |
54 |
tulcod. |