As someone who spends a great deal of time releasing new versions of software for Linux, packaging has become the bane of my existence.
Okay. That's not entirely fair. Package management on Linux is a pretty amazing thing. A flexible, consistent way to install (and update) software across an entire system? That's pretty killer.
But building new packages (and new scripts to generate those packages) can become a major time sink. And which formats/distros do you create them for? Ubuntu 32bit .deb? Fedora 64bit RPM? After you start taking all of the various incarnations, of just the major versions of, the major distros into account... you've got a lot of work ahead of you!
RELATED: A visual history of Linux
Luckily, there are some ways to make this whole process a bit less painful. One of the most mature and flexible being the Open Build Service, which is part of the openSUSE project. And they have just announced version 2.4 of their package-building solution.
So what, exactly, is the Open Build Service? Here's the basic skinny:
Let's say you want to release a new version of your software. You put the files up in the Open Build Service (which is, as you might have guessed, Open Source) – or the public instance which is in place at build.opensuse.org – then you create your configuration and utilize their web interface to automatically create the packages you'd like.
Now, here's the cool part: You can tell it to create packages not to use for openSUSE... but for Ubuntu, Mandriva, Fedora and plenty of others. And, as of version 2.4, it will build for Arch as well (in the form of PKGBUILD).
Nice, right? No more needing to maintain a series of clean environments and VM's dedicated to the task of package building. Heck, you don't even need to setup your own copy of the Open Build Service if you take advantage of build.opensuse.org. It even handles the hosting of the resulting packages – so you save moolah on hosting costs.
So, in summary: Work less, save time, save money. I've just decided. I'm pretty okay with that.
Now, this isn't a completely silver bullet. You still need to create the configuration files yourself in order for the packages to be generated; but you were going to need to do that anyway. If they could figure out a way to analyze my brainwaves in order to auto-generate the configuration files, well, I would like that very much.