Cross-distro collaboration: packaging with modern version control systems
Free operating system distributions commonly serve thousands of software packages to their users. Most of these wrap software, such as Apache and Postfix, published outside the distribution project by independent upstreams.
Distributions and package maintainers often make modifications to the software, either to fit it in seamlessly with the rest of the operating system, to add features, or fix bugs. In the spirit of Free software, any such improvements should be fed back to upstream so that they become available to all other distributions and users.
However, in some cases, this doesn't work or doesn't make sense, for instance when the changes are Linux-specific or upstream isn't interested. Then, the package maintainer is charged with maintaining those changes and merge them with future upstream releases. Furthermore, to let other distributions profit from his/her work, patches need to be exchanged and tracked. All this can quickly become a nightmare and make package maintenance a daunting task.
Patch tracking is the domain of (modern) version control systems. In a perfect world, upstream tracks the software in a repository, which distros clone and to which they push, allowing for commits to be "cherry-picked" at liberty, while the version control system keeps track of what's been applied where.
In a perfect world… With dozens of distributions choosing from a handful of version control systems, system incompatibilities get in the way and prevent the desired level of cooperation.
The vcs-pkg.org project set out to investigate a way forward that allows package maintainers of different distributions to work together and profit from each other, without imposing hard standards. Our goal is to integrate version control with distro package maintenance. We want to recognise all involved in the process, from upstream, the package maintainers of the various distributions, their security and release teams, and power users, who aren't afraid to fix their own bugs, and give maximum flexibility to them. We are working to define a workflow that accomodates every distribution's needs and facilitates the use of the various conversion and interoperability tools.
Many distributions are already using version control for their daily work. However, we think that the current approaches to package maintenance do not scale too well, cannot accomodate today's needs (teams, offline work, increasing number of users and increased use of the bug trackers), and do not facilitate cross-distro exchange.
In this presentation, I give a summary of what we've done to date and present cases of successful cross-distro cooperation. I furthermore show what is already possible and hope to excite contributors to all distributions to work together and pave the road to better and more ubiquitous cross-distro collaboration.
Martin F. Krafft (or "madduck", as he's commonly known) is a dedicated Debian developer, currently pursuing a Ph.D. on open-source method diffusion at the University of Limerick, Ireland. As a freelance consultant and trainer, he teaches network security and privacy protection to a professional audience.
Martin came to Debian in 1997 and has since been helping with user support, public representation, security issues, quality assurance, integration tasks, as well as the maintenance of packages, such as mdadm, hibernate, and logcheck. He is the author of the book _The Debian System_ (http://debiansystem.info/).
For his dissertation, he researches how new methods might be deployed in global volunteer projects to increase their efficiency (http://martin-krafft.net/phd/).