February 16, 2007

RPM development on the road to revival

Author: Nathan Willis

The RPM Package Manager (RPM) package format and utilities are the backbone of the Red Hat Enterprise Linux (RHEL), Fedora Core, SUSE, and Mandriva Linux distributions, a host of smaller distros, and the Linux Standard Base. For years, the RPM utilities and specification were maintained by Red Hat. That changed in 2006 when, following a lengthy period of uncertainty, the company relaunched rpm.org as an independent hub for RPM development.

Jeff Johnson was the chief maintainer of RPM (originally known as the Red Hat Package Manager) while at Red Hat, for much of the program's life. Johnson left the company in mid-2005, when RPM was at version 4.4.2. He then continued development of the program on his own, distributing his own version at wraptastic.org.

As of January 2007, Johnson's RPM has been updated to 4.4.6 -- introducing a number of bug fixes and significant enhancements such as "recommended" and "suggested" dependencies.

The distros, however, have continued to ship with the older RPM 4.4.2. In part, this seems to stem from residual bad blood between Red Hat and Johnson, and in part from the absence of practical steps on the distros' part to take on active maintenance of the RPM package on which they depend. After Johnson's departure, Red Hat's Paul Nasrat picked up patch maintenance duties, but only on the 4.4.2 branch.

As time went by, it became increasingly clear that Johnson's newer RPM releases, and the now aging 4.2.2 still in use by the distros, constituted two distinct forks. But formally conceding this split would force the commercial distros to formulate a plan to actively develop their RPM fork -- with support contracts to consider, letting such a fundamental piece of infrastructure languish would be out of the question.

The Fedora Advisory Board took up the issue in a mailing list discussion in August of 2006, eventually deciding to solicit input from the other RPM-based distros. In December, they announced the result of their debate: a new community-driven development effort for RPM, to be centered around a revamped rpm.org Web site. The new rpm.org will host a source code repository, wiki, and mailing list.

Red Hat's Max Spevack noted in the announcement that Red Hat will be once again be dedicating a full-time developer position to working on RPM -- but emphasized also that the project wants to draw in programmers, bug hunters, and documentation writers from all of the RPM-using distros and outside parties as well.

First on the agenda at the relaunched rpm.org is a technical review and cleanup of the RPM 4.4.2 code, with the goal of establishing a new branch that will be shared by all of the RPM-based distros. Following that, establishing a better bug fixing routine and improving the RPM Python bindings are the only concrete goals on the roadmap.

When the new initiative will bear fruit remains to be seen. As Spevack pointed out, traffic on the new rpm.org mailing lists was high in December, dropped off in January, and has resurged in February. The grunt-work of fixing bugs and merging patches from the various distros seems to have begun in earnest, and with it more brainstorming about the future of the packaging utility.

If you look at the February list traffic, you will find an increasing number of contributions from outside Red Hat. SUSE, PLD, and even Wind River are represented in discussions on the RPM-maint list. Considering how long the distros maintained their own RPM forks without collaborating, this is an encouraging sign. But, even if it takes a long time for the new rpm.org branch to take off, the move is evidence that Red Hat has recognized the need to make a concerted effort at developing their package management system, and that is good news for Red Hat's customers and a host of third-party users as well.

Click Here!