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.
Wow, well said. The results of maintaining this type of compatability would be staggering in its impact. I also agree this should be used as a “wakeup call” to Debian proper. Maybe fewer flamewars and more working together would help as well? It certainly wouldn’t hurt.
I was surprised to see simultaneously anti-Debian and pro-Ubuntu sentiment in the comments on your earlier blog entry. I would have thought that everyone realized that the only reason that Ubuntu can offer such a fine finished product as Hoary Hedgehog is that it is based on such a fine unfinished product as Sarge.
The anger is misplaced. First of all it should be remembered that producing a good operating system is difficult. Second, Debian can only do so much of the necessary work. It lacks the organisational structure that would enable to satisfy arbitrary demands. Getting angry at Debian for not releasing on a tight schedule is getting angry at volunteers for not making even greater personal sacrifices.
This is why Ubuntu is a godsend for Debian. Ubuntu can do things that Debian cannot. But of course, Ubuntu could not maintain a whole operating system on its own.
I am not very concerned about Ubuntu forking too far off Debian. Ubuntu generally makes changes that would be appropriate for the Debian package too. Ubuntu patches are available for backporting to Debian. If Ubuntu packages diverge too much then it’s more likely to be due to Debian not keeping up than it is to be due to Ubuntu making secterian modifications.
There is the risk of Debian not keeping up. We can be sure that _some_ packages will fall far behind. For this reason Ubuntu should not be expected to maintain backward compatibility with Debian. A better idea might be for the major Debian redistributions to coordinate their work with one another.
I would really like to see timeframes for Debian releases, but I would like to see them big, like a release once in two years sounds a reasonable goal for a really stable distro that Debian has been since the beginning of time :)
Well said. I am particularly pleased to see your comments wrt a predictable release cycle. “When it’s ready” just doesn’t cut it anymore.
Regarding ubuntu. I’ve read many times, “if ubuntu can take debian and make a stable release….” But, are we talking about the same definition of stable? Ubuntu drops circa 9 architectures. If debian did the same (thought experiment only!), would it not be release-worthy? This is a common opinion, and yet I’ve heard that the majority of release blockers are not esoteric architecture problems.
Even without the disparity in supported architectures, is ubuntu’s definition of stable as concrete as debian’s?
Is there a real issue, or much ado about nothing?
Can you point out exactly what issues with package installation are you finding? I asked this question in your last story, and I ask again, because I run several hybrid systems with a mix of Hoary and Sarge packages and I am _not_ seeing any problem. They versioning is sane, and gives precendence to Debian packages.
Without knowing what the problems are, it is really hard to understand your opinion piece. Perhaps it is something as irrevevant as a bug in an Ubuntu package or on a third party package.
Puzzled,
martin