Introducing the “lovelace” overlay

Gentoo logoI’ve used Gentoo Linux on my computers for years now. And, since there is interesting and useful software that isn’t in the main Portage tree, on each computer I’ve maintained what’s called an “overlay.” This week, I finally got around to combining those into one shared overlay … and making it public.

Part of the motivation for having an overlay as extensive as mine is that I am, so to speak, a digital pack-rat with quite limited resources. I don’t like to utterly throw away any piece of data, and in fact at times I’ve gone looking for applications and collections of applications (as well as ebooks, music, and the like) that looked interesting, but the disk space I have to store it all is anything but infinite.

For a while—particularly after installing Ubuntu on my first laptop (because it was too underpowered for Gentoo) and using Debian to bootstrap my now-previous desktop (since I couldn’t find a way to net-boot a Gentoo installation image)—I maintained Ubuntu and Debian chroots, installing any software that looked interesting and not too heavyweight that wasn’t available on Gentoo. Much like I had, on the desktop before that (my first with a non-minimal hard disk), maintained a SourceMage partition. But then I started really running out of disk space.

So I started trying to figure out how to install this software outside the chroots without bypassing the package manager (which, as any Gentoo user should be able to tell you, would be quite foolish for more than a small handful of packages) or resorting to binary packages (I use Gentoo because I prefer to have as much as possible of my machine compiled from source and optimized for my hardware and my needs). Some of them had ebuilds in Gentoo’s bug database, and some were in other overlays. Some even had ebuilds available from the upstream developers. But many didn’t have any ebuilds at all.

Still, the “disk space crunch” spurred me on. Working from the Debian/Ubuntu build infrastructure, I wrote ebuilds for first the simple packages, then the more complicated ones. (Wishing, all the time, for a universal source-based package manager that could install from both Gentoo Portage ebuilds and Debian sources …) Until I was done.

Not that I installed all of this software. But provided “upstream” doesn’t vanish entirely, for a Gentoo user, an ebuild is as good as a Debian binary package for a program I might like to try someday, and a lot cheaper in terms of disk space.

This past week, I’ve been combining the overlays from my two (at the moment) computers, getting them into a version-controlled repository and harmonizing any differences (which is to say, applying each one’s improvements to the ebuilds in the other). I’m not quite done—I haven’t put the packages that only one machine knew about into it yet, and I’ve also left out the few where I knew my ebuild was broken—and, in addition to various QA issues, I haven’t done my periodic check for new upstream versions of various packages in a long time. But it’s finally there: I have one overlay to maintain, not two (or three) not-quite-identical ones.

So I thought I’d let the world in on it too. If you’re a Gentoo user, you can start using it by adding this link to the remote-lists section of your layman.cfg and then running

layman -a lovelace

If you run into any problems … even if you’d just like me to make one of my packages “testing” rather than “stable” so you don’t have to mask it … or you have any improvements you’d like to contribute, please let me know. Leave any other questions or comments here, or send them via the usual channels.

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s