Demystification: Keeping one foot on both sides
This article was written by some people with feet in both the Debian and Ubuntu camps who want to share how they try to marry their work in the two organisations; to highlight some of the concerns they have had and discuss some of the queries that other Debian and/or Ubuntu developers also have.
Ubuntu and Debian have an interesting and interwinned relationship. In the middle of the 1990's some bloke called Mark Shuttleworth was running his company on Debian, Apache and Free software and decided the best way ensure Apache was always available was to put it into Debian. The idea that the best place to keep software is in Debian and that the best way to get it there is by becoming a Debian Developer is there firmly in alot of people's minds.
I'm new around here.
Two sides of the same coin
One of the things that can be a pain with Ubuntu, is that there is another version out every 26 weeks. There is a constant adrenaline rush, you can quite easily spend 6-10weeks of your year camped up in a hotel somewhere with no access to natural light during high-energy sprints and conferences where you don't even get to breathe between finishing sentances.
Debian prefers to take things at more relaxed speed, people only have to drop everything and knuckle down for release freeze every 2-3years, plus you only need to think about Debconf once a year and lots of Debian developers just catch it when it comes to their own continent.
What are the best features for one person can also be the worst for a different person. Two versions of Ubuntu coming out before Kathy's next birthday is like getting double-presents at Christmas. Whereas her mother Angela gets annoyed at not having the dependancies for Frobber v0.17 on her Debian cluster at work.
Why should Kathy care about Debian ?
- Debian is the best archive of software on the planet, all in one place, checked and known to be buildable.
- Debian knows that unstable means what it says on the tin and that stable should mean something different.
Debian gives builds .debs so you don't have to spend 3 days compiling to get a bash prompt.
- Debian is distributed, if a bloke called Eric starts snipping people you know that Debian will carry on.
- Debian has a security team who've been doing their job for years.
Debian runs on that cool Nokia ARM toy, on my aunty's microwave with an m68k processor and the freebie Sparc box you rescued.
- Debian-legal is More Free(tm) than Richard Stallman and the GFDL.
- Debian has a cuddly FTP master.
Why should Angela care about Ubuntu
- Ubuntu asked for a WEP key, popped up your USB pendrive and hibernated when you pressed Fn-F12.
- Ubuntu has the team that has been doing Debian security for years.
- Ubuntu Foundation gets to ask Canonical to ask Mark if he can bring the jet.
- Ubuntu gets people hooked on crack, faster.
- Ubuntu has a cuddly FTP master.
If you can find them...
The reason that Ubuntu managed to do zero-to-sixty in 6months is that Ubuntu hired a pre-existing team, a bit like walking into Microsoft and asking to hire their top 20 OS developers. The difference with Debian is that everyone has a normal day-job and is then dedicated enough to be running Debian in their own free time. When you want to hire the best clue you can find and get the people who know out how to build an Operating System in a distributed way, and done it for for 10 years... you call in the D-team and hire them. Everyone knows each other, each other skills and the job they do.
At the moment there's less Ubuntu developers than Debian ones, in fact, there always will be. It is not possible to match the scale of Debian. Debian is like the 500lb (that's "heavy" to Europeans) guerilla called "IBM" watching HP, Novell, SCO, Dell, Sun and Microsoft shuffle chess pieces around without being worried or even bothering to look.
What Ubuntu does do take a boring Chess-match, put it on television, supply commantry for muggles to make the game-play understandable and brings in ad-revenue from people who would have channel-hopped.
If you missed it live, one of Ubuntu's sponsors called Canonical will also mail out a copy (free of charge) to make sure you get a chance to watch the adverts. Those advertising breaks are precious, they get the words "Free Software", "Patents Bad", "Firefox", "Debian", "Openoffice", "Freedom" into unsuspecting user's minds.
Even if the Ubuntu LiveCD only gets the user to install OpenOffice and Firefox on Windows, they might get hooked and come back for a Free OS in 12months time; planting the idea of Freedom in people's heads is important, Canonical organises Software Freedom Day.
Lessons from Debian
- Ubuntu doesn't touch Debian packages that it doesn't have to. In fact, Ubuntu people hate patching Debian packages because they have to maintain that patch for ages.
- Those who do not understand Unix are comdemned to revent it, badly. The same applies with Debian.
Prioritising what makes the cut
Debian recently switched to prioritise some architectures above others and make sure they don't hold back the possibility of a release. Ubuntu prioritises both architectures and packages, taking the core requirement that everything builds across the board for amd64, i386, and powerpc; Ubuntu then extends this to the applications and packages themselves creating a first and second tier:
Ubuntu Foundation specifically pay developers
You and I (the "MOTU") look after these.
The reason that 90% of the software in Ubuntu is maintained by "You and I" is that it's synchronised from Debian on a continual basis. If it builds, great, in it goes. If it doesn't build, hopefully somebody will notice, mail a patch to Debian then it will get synchronised and built by the next time.
== Mastering the universe ==
In Ubuntu, the people that focus on getting stuff building and pulling in packages from other non-Debian sources are called the Masters of the Universe (MOTU). They are responsible from separating out the good stuff(tm) with nice licenses (these go into Universe) and the crack with irriating licenses (eg. Java, these go into Multiverse).
Although the intention with Universe is to keep it identical to Debian (because the MOTUs are lazy!), a few packages in Ubuntu's universe do get patched. Ubuntu has ended up being the guinea pig (lab rat) for quite a few major changes Debian has had to go through; examples being transitions to C++ ABI, Python2.4, modular Xorg, lsb-scripts, FreeDesktop .desktop files.
Luckily most of these patches disappear when Debian are happy and take the stablisation work, generally less than 6 months. In Ubuntu, modified take the suffix -0ubuntuN on the end of the Debian package version. This means that those changes will get superceded by the next time a package in Debian gets rev'ed, a real insentive to makes sure the number Debian update includes the changes!
The other case, is if an Ubuntu user has found a bug (in either the program or the packaging) before someone has filed the same bug in the Debian BTS. Ninety-nine percent of the changes to packages in Universe are small and unobtrusive.
--- Pre Sladen
Why should I care about Ubuntu ?
Ubuntu is [http://www.ubuntulinux.org/ubuntu/relationship Debian-based and advertises this fact].
- Ubuntu wants to contribute back to Debian (even if it's not done perfectly currently - see below)
- Ubuntu has a large userbase, is a quality GNU/Linux distribution, enabling new users to come tu GNU/Linux.
- Ubuntu has a big community of developers and advocates. Debian can benefit from it.
- Ubuntu has regular and predictable releases.
- Ubuntu brought much to the Free Software world, in areas where Debian hasn't totally succeeded yet (like desktop system for end users, or hardware support)
What is Universe ? And MOTU ?
Debian has 3 sections : main, contrib, and non-free. Ubuntu, on the other hand, has four of them : main, restricted, universe and multiverse. While main packages (and their non-free counterparts restricted packages) are maintained and fully supported by the Ubuntu team, Universe is a section of the Ubuntu archive which isn't officially supported. Universe aims at providing as many packages as possible, from different sources (Debian, of course, but also [http://www.apt-get.org/ apt-get.org], [http://revu.tauware.de/ REVU] and other sources).
The MOTUs (Master of the Universe) are a bunch of volunteers taking care of Universe : they sync (import without modification) and merge (import and modify) packages in Ubuntu, deal with bugs, etc.
Read [http://ubuntulinux.org/ubuntu/components ubuntu/components] for more info about Ubuntu's components, and ["MOTU"] for more info about MOTUs.
What kind of divergence is introduced inside Ubuntu ? Why does Ubuntu need to change my packages ? Are those changes important ?
Ubuntu sometimes needs to modify Universe packages so that they will build and work on an Ubuntu system. This is usually due to a library transition that Ubuntu has undergone first, change of the default Python version (Ubuntu uses Python 2.4 by default), dependancies changed because of a different X.org packaging, etc. In other cases, it is because an Ubuntu user has found a bug (in either the program or the packaging) before someone filed one in the Debian BTS. 99% of the changes to packages in Universe are small and unobtrusive, but there are of course exceptions.
Packages in the main section of Ubuntu, are often more heavily modified to suit Ubuntu's needs. Backporting Ubuntu changes to Debian is therefore a difficult process for them.
How does Ubuntu give back to Debian ?
Probably not well enough, and we are aware of that. For many packages in main, we have good working relationships with the Debian maintainers and are ourselves involved in the Debian development. Also, Canonical employs 20 DDs (more than any other organisation) to help changes go directly back to Debian. There are also more and more volunteers active in both Debian and Ubuntu development.
For universe and some main packages, it's a quite different story. Apart from [http://people.ubuntu.com/~scott/patches/ publishing patches on an ongoing basis] (patches which might not be very usable from the DD point of view), Ubuntu doesn't provide much valuable feedback. There are several reasons for this :
Lack of manpower : There are 8400 source packages in universe, and only [https://launchpad.net/people/motu about official 35 MOTUs] (some of them inactive) and a few outsiders.
Lack of tools : We currently lack most of the tools to take care of the packages in a global way.
Lack of consensus about the way Debian want our patches
Lack of response from some Debian maintainers : when Ubuntu changes are integrated by Debian, it makes the life of MOTUs much easier. However, some bugs have been opened months ago in the BTS, but are ignored from the Debian maintainer.
There are plans to change that by improving processes and writing tools, but this takes time.
Short crash course in Ubuntu development
Most of the documentation about Ubuntu and Ubuntu development can be found on [:FrontPage: this wiki (first page)]
Ubuntu's Bug Tracking System is [https://launchpad.net/distros/ubuntu/+bugs-advanced Malone]
- All packages are team-maintained. If you need to discuss a specific change, try poking the last person who changed the package (see the changelog).
For more information about Debian collaboration in Ubuntu, see DebianCollaboration.