Universal Source-Based Package Manager: An Apparently Unwritten Program

Since soon after I arrived at college, I’ve used Gentoo GNU/Linux as my primary operating system. I’ve tried other distributions now and then (I started with Red Hat 6.1 and a Slackware derivative, then tried what was then called Mandrake …) but always find myself needing Gentoo’s flexible init scripts or powerful system administration commands.

However, there’s some software that just isn’t available on Gentoo, and for which writing an ebuild would be very complicated and challenging—but it’s in Debian or Red Hat or a derivative, and built there from source. And while I love the power and flexibility of Portage, there are some features of other build systems that I wish it had. (For example, SourceMage and Lunar Linux do all the build-time configuration up front by asking you questions, and automatically add anything that needs to be rebuilt to the queue.)

This brings me to our next program that (as far as I know) doesn’t exist, but should: a Universal Source-Based Package Manager. It would be able to take the input of any source-based distribution—Gentoo ebuilds, SourceMage “spells”, Lunar’s “Moonbase” modules, Debian rules files, Source RPMS, etc., etc.—and build and install the package. (The user might have to do some configuration to get it to handle differences in the way distributions name packages, though there are several projects that might help in automating this, including distromatch, PackageMap, and whohas.) And it should allow the user to customize the build as much as the source formats do, or (in the case of binary-building formats like Debian rules and SRPMs) more. Ideally, it would let the user decide whether to do configuration via configuration file tuning a la Gentoo, or by interactive questions a la SourceMage or Lunar.

Does such a program exist yet? What other features should it have? And how might one go about writing it?


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