Last Saturday I went to the Canonical Conference at MatarĂ³. I was quite interested in seeing what the Ubuntu people is working on and I decided to go to the Saturday's workshop, as it was specially appealing for me because all the topics planned are related to my work and interests (derived distributions, software translation and collaboration between distributions).
During the session three tools were introduced:
- Malone: a bug tracking systems aggregator that will let anyone track all the bugs reported to a package in different distributions and bug tracking systems.
- Rossetta: a web tool to help software translators.
- Soyuz: a control version system that will allow anyone track changes and patches to a package in multiple distributions.
All three tools seem quite interesting and I hope that will be useful for free software developers, translators and distributors.
Anyway, I went to MatarĂ³ looking for different tools and with another idea of how to customize Debian but as I found another thing I came back home a little bit disappointed.
The Ubuntu approach is quite developer and source level oriented; they rebuild the full Debian archive and if they want to customize something they patch and rebuild the source package.
That works quite well for them because they have the manpower, infrastructure and knowledge to do it, but that is not the case for the rest of us, and the model also forces you to have a derived distribution, as the customizations are not included on the original packages but on a parallel archive.
The CDD model I'm interested in is one in which I can get a selection of packages from Debian, pre-configure them for my needs and use a system to install and update them easily.
If, to do that, I need to change the packages, the changes are applied to the Debian versions of them, allowing a standard installation and a way to customize it externally using debconf pre-seeding, a tool provided by the package or simply adding extra packages for branding, modifying translations or to add any data I could need.
The main idea behind all that is that I want to keep the maintenance cost low in terms of manpower and knowledge, as most of the customization needs are at the system administrator level, not at the source code level.
If you pass all the changes needed to customize packages to the Debian version of them, you don't need to have your own infrastructure to build and maintain a partial copy of the archive or have a separated bug tracking system, as all those resources are shared with Debian.
And, if for any reason you need to build your own infrastructure, it can be kept to a minimum (well, at least if you don't need to release at fixed intervals, but that is a different problem that has to be solved inside Debian in one way or another).
Well, anyway I'll have to do the work myself and implement the CDDTool proposal; the only good thing about it is that once available it will be useful for Debian and Ubuntu and then maybe also Ubuntu will think about the customization model I want (it is not incompatible with their current model, by the way) and things will improve for all of us.