So, my comments the other day about Ubuntu attracted some attention, and I just wanted to clarify a few things.
First of all, this isn’t a case of sour grapes: Progeny and Canonical are in two very different businesses. Progeny’s business is custom distro technology, whereas Canonical’s business is a single custom distro, namely Ubuntu. I wish Canonical all the success in the world. If Ubuntu is part of the Debian family, then we all win if Ubuntu is a success.
However, we all win if and only if Ubuntu remains a good son. My concern is that it’s already starting to show signs of becoming the wayward variety, flush with confidence from early successes and starting to wonder if it no longer needs its parent (for example, the vitriol shown by some Ubuntu users in the comments surprised me).
If Debian is to benefit from Ubuntu, the lineage has to be preserved, and it has to be stronger than “we started with your pile of packages”. That’s why I disagree so strongly with the folks who assert that Debian ought to focus only on producing that pile of packages, while others (including Progeny and Ubuntu) focus on implementing a release cycle above it.
Whether the Ubuntu folks realize it or not, they need Debian (for the record, I do think the developers realize this). Without Debian, they wouldn’t have to the time to focus on all the polishing work they’re doing now. I read somewhere (here ’tis) that it would cost over a billion dollars to do something like this from scratch. I don’t care how deep your pockets are, that’s a lot of money..
A pile of packages can change over time with respect to compatibility, particularly if compatibility isn’t a foremost priority. Look at Red Hat and the various distros Red Hat spawned and see how compatible they are today–after all, you can still say today that Red Hat, Mandrake^HMandriva, and Turbolinux have a common lineage. We in the Debian world have to avoid this same fate. I’m in the middle of an effort to clean up the RPM mess now, so I’m acutely aware of where this road leads.
To avoid this same fate, we must ensure that the various Debian-derived distros are based on compatible packages, not just a set of packages that have a common lineage. A package built on Progeny should work on Linspire; a package built on Linspire should work on Ubuntu; a package built on Ubuntu should work on Progeny. You get the basic idea.
Why? Seamless package management is one of the single biggest reasons we bring users from the RPM world into this big family (some would say cult) we call Debian. In large part because of Debian’s rigorous packaging policies, Debian packages just work. For the most part, this has been the case with Debian-derived distros as well. Debian packages just work on Linspire, Xandros, etc. Whether the reverse is true, I don’t know, because up to now, it’s never been an issue–the vast majority of developers have always used Debian proper.
Now, however, with the dramatic rise of Ubuntu, that’s starting to change–more and more developers who build packages are building them against Ubuntu. That’s fine, so long as Ubuntu is compatible with Debian, and seamless package management continues to remain a distinct, and valuable, feature of the Debian family.
My suggestions are a simple way to mitigate the inevitable compatibility problems of a fork without taking away the freedom to fork (which has never been a problem from my point of view, by the way–unlike most people in the free software world, I don’t spend a lot of time wringing my hands over the forking issue–it is, after all, one of the fundamental freedoms of free software).
Furthermore, providing a compatibility environment (or, better still, basing on a sarge core while still taking edge bits from sid) won’t hurt Ubuntu at all. I seriously doubt many people use Ubuntu to get the latest version of coreutils–I strongly suspect more people are interested in the latest GNOME and X.org.
Oh, and one more thing: I agree that to a certain extent, Debian brought this fork on itself with its glacial pace, and that this situation should be seen as a wake up call to do something about the release process. Clearly, a lot of these problems go away with predictable releases. This is worth a blog entry in itself. Debian needs to get sarge out the door as soon as possible, and once sarge is released, Debian should adopt a time-based release cycle as well. If the GNOME project can do it, there’s no reason Debian can’t too. As I’ve said many times, it doesn’t matter so much what the duration between releases is, so long as it’s predictable so the rest of us can orient our own release schedules around it. If folks deriving from Debian know when the next stable version will be out, there will be substantially less reason for them to fork, and, consequently, substantially more compatibility in the Debian world.
Let’s make this yet another reason Debian is the best Linux distro out there. Let’s go further and make Debian the best Linux platform out there too.