Friday, October 19, 2007

What's the deal with Ubuntu's relationship to Debian?

Hi, Saist,

Wondering if you would care to comment a bit on this topic. Someone mentioned that "ubuntu is based on the unstable branch", and on that note, I found a line at Wikipedia saying that "Ubuntu packages have generally been based on packages from Debian's unstable branch..."

My interpretation is that Ubuntu drew on packages from "Sid" but that this is not exactly the same as saying "Ubuntu is based on the unstable branch."

What's your take, if you don't mind and if you have the time?

Both are true and false at the same time.

When Ubuntu says they took a snapshot of a Debian Unstable repository, they took the snapshot of the then current Debian Unstable Source repository regardless of whatever the code name for that repository was.

What Ubuntu does is take a snapshot of a Debian Source Repository, then use the Debian sources with their own proprietary (although open-licensed) tool chain in order to actually build the programs and final distribution.

Ubuntu's process of building a new distribution involves modifying the programs and applications in the snapshot. The modifications are achieved by a number of methods. Techniques seen before include updating to newer versions of programs with different external sources; regressing programs to previous versions with previous libraries to achieve stability with applications known to have existing bugs; as well as changing default configuration values for installation and boot detection.

The result is that more recent Ubuntu builds have ceased to be binary compatible with Debian packages, becoming a true fork with changes to the underlying source code.

Currently Ubuntu's latest builds have about as much in common with the original Debian source as Red Hat Linux. Yes. It is still Linux, it is still open-licensed software, and if you work the dependencies and kernel versions right everything should still technically work. I just don't know of anybody that raids the Red Hat repositories on a regular basis to fill out their debian installs, and I'm pretty sure Fedora developers aren't pulling from Debian sources.

***

In relation to Mepis Linux, this isn't to say that Mepis does not do the same thing. The development process is very much the same. Part of Mepis's domination of the "it just works" Linux Desktop market is that Warren does follow many of the above processes. Warren does use sources outside of the original repository. Warren does use proprietary kernel modules. Warren does modify the boot configuration and install settings.

The difference is that Warren makes it a point that packages must be binary compatible with with the source distribution. A package built to Mepis must be functional in the original source distribution on a binary level.

Ubuntu makes no, to little, attempt at ensuring binary compatibility with their sources. If anything, from Dapper to Gutsy, Ubuntu has deliberately broken Binary compatiblity with the original source distribution.

This was a very real issue that Mepis ran into with OpenOffice on Mepis 6.5, as well as other upgrades. The Ubuntu Tool chain simply wouldn't allow for building of packages that would be cross compatible, if the packages would build at all.

Cross binary compatibility is going to be a major factor in the upcoming Mepis Community Repository. The objective is for users of Debian Etch to be able to enable the Community Repository (or mirror it), and pull updated packages from Mepis and have them just work without having to recompile.

No comments: