At the end of last month I blogged
about my work in producing
core/R package for Habitat. Back then I
mostly wrote about my experience of sharing a
PR with the
Habitat community; this PR has now finally been merged.
In this blog post I am writing about what is actually inside that PR (it’s waaaay more than just R) and about why it took a while to get merged.
R’s Dep Tree
As you can see from here R has a reasonable number of dependencies to track. The problem, when I started working on this, is that many of them did not exist.
The biggest culprit was graphics libraries. Not entirely surprsing, but it was time to fix this. In addition to R, I also had to package:
- Cairo: a 2D graphics library
- Harfbuzz: a text shaping engine (whatever that is)
- Pango: text layout and rendering
Making The Fonts Work
With all those font rendering / layout / whatever libraries, it was kinda important to actually provide some fonts, too. So, in addition to all of the graphics libraries, I also packaged the Liberation Fonts.
To make use of these fonts, you need to install the package and then invoke the font cache:
hab pkg install core/liberation-fonts-ttf hab pkg exec core/fontconfig fc-cache $(hab pkg path core/liberation-fonts-ttf)
The Pixman Problem
As part of this work, Steven Danna
noticed that the
core/pixman package was not properly exporting its
pkglibs. Harmless enough fix…
Or is it?
In Habitat, even a change in what is effectively metadata requires the
package to be rebuilt. The patch of pixman, therefore, causes a
core/pixman, which cascades new builds in the direction
Time to get comfy.
There You Have It!
So with the merging complete, I am happy that you can now get your hands on the following in Habitat:
Getting your hands on R itself is easy enough:
hab pkg install core/R hab pkg exec core/R R
As usual, I did not work alone on this. So shout outs to:
- Packaging contributions from:
- Steven Danna
- Reviews from:
- Highly unpleasant build/merge from:
- Ian Henry
What’s Next, Paul?
I’m glad you asked: GnuPlot