Ubuntu is based on Debian unstable

From time to time, I see someone remark that Ubuntu uses packages from Debian unstable, and that they don’t think this is a very good idea. I would like to explain why we do this and how it works, and hope that this will enable a less one-sided view of the subject.

Debian is well known and regarded as a product, the Debian system itself. In addition to this end product, the Debian community produces a variety of useful by-products. One of the most celebrated is Debian “unstable”, which despite its unglamorous name is an incredible achievement. It represents the collective work of a vast number of developers, who package and maintain essentially all of the free software available.

Put simply, Debian unstable provides immediate access to anything you could want from the free software world. It’s all there, updated daily with the latest and greatest releases. As if that weren’t great enough, the components are continuously integrated, so that problems become evident right away and can be fixed quickly.

Debian doesn’t “release” unstable directly; it’s an intermediate stage in their process. The Debian release team selects components which they believe are ready to release, and place them in “testing”, which is the next stage in the process. However, many people, developers especially, use unstable as their primary operating environment. They drink from the firehose of free software, delivered daily by Debian.

Ubuntu was created in a similar spirit, but with significantly different goals. We wanted to release a complete product much more frequently and regularly. We wanted to focus on desktop users, and provide a system which met their specific needs, even if this meant serving some other needs less well. In this way, we created a complement to Debian, as many others had done before us.

What we did differently was to choose unstable as the basis for this work. There are many other distributions based on Debian, but at the time, they were mostly derived from a particular release. Debian would make a release, then someone else would take this and produce a customized version of it. The problem was that these customized versions would become outdated as Debian continued to develop. Bringing them up to date with Debian’s latest work required a lot of effort, particularly as Debian’s releases were sometimes years apart with massive changes between them.

Basing Ubuntu on Debian unstable meant keeping up. We would continually merge in the latest code from Debian, keeping Ubuntu closely in sync. While this was sure to be a lot of work, it provided us with access to all of the pre-packaged software we would need to produce Ubuntu, freshly delivered every day. Instead of duplicating this work, we could build on it.

We would, of course, need to do our own release management, and make decisions about what was ready to ship, just as Debian’s release team did. We couldn’t reuse their work, because we needed to make different decisions in order to suit our distinct release cycle and provide the desktop experience we wanted.

These decisions reflected some of the key advantages of free software. We could get the benefits of a custom solution without having to reinvent every wheel. We could focus on the pieces which mattered most to us, and use stock components everywhere else. We showed that this applied to open processes as well as open source code.

This is why, and how, Ubuntu was based on Debian unstable. It was, quite simply, the best tool for the job, and still is today.

36 Responses

> “We wanted to release a complete product much more frequently and regularly […]While this was sure to be a lot of work,…”

The advantages are obvious and the resulting workload is considerable. Following this route, only companies who are capable to outperform the established competition will be able to produce a _reliable_ distribution, and Canonical has not yet proved that they can ;-(

“Canonical has not yet proved that they can ;-(”
what are your indicators to prove this. I was a microsoft user. thanks to ubuntu I am a linux user… there are surely bugs and whatnots… but tell me of software that does not have bugs

This explanation talks to the motivation and position of the Ubuntu Desktop project as a derivative of the Debian process using Debian unstable as the starting point for differentiation for a fast moving Desktop product.

What about the Ubuntu Server product? Can you explain why Canonical feels its appropriate to base Ubuntu server from Debian Unstable?

Or for that matter the LTS releases. The LTS releases have the same pre-release testing period that the non-LTS releases use.. but they are supported for far longer.

Both the LTS and Server concepts were introduced into Ubuntu after the original rationale for basing on Debian unstable was constructed. I’ve never seen an cohesive explanation as to why its equally valid to use the same differentiation starting point for LTS and Server releases as it is for a fast moving Desktop product.

This is a valid question, which I could cover in detail in a future article. The development processes for desktop and server, and LTS and non-LTS, actually do differ significantly for the reasons you mention.

Sidux is an interesting distro to check out if – like me – you’d like something which sits somewhere inbetween Ubuntu and Gentoo.

I’ve used both of those (Gentoo for 4 years, Ubuntu for 2 years on different machines) and found that Sidux ticks all the right boxes for me. It’s Debian Sid (unstable) slightly tamed to become a very usable bleeding edge system. Very occasionally it breaks a little bit, but I’ve been running this box well over 18 months exclusively on Sidux now, and it’s been absolutely brilliant.

It’s basically a rolling release schedule too, so dist-upgrades are small and regular, and feel a lot more like Gentoo’s portage (but all binary so installs are really quick). Occasionally there are times you shouldn’t update your system, but this is easy to check on their website.

I’m sure it’s not for everybody, but Sidux is the best disto I’ve used so far – and also easy to try before you buy because it comes as a live CD.

I’ve seen it described as “What Kubuntu should have been” – not sure I totally agree, but there’s a reasonable degree of accuracy there.

Debian Unstable does not release. Do you mean why don’t they work on Debian Testing? If so, well, most of the bug fixes and rapid-stabilization that go into an Ubuntu release are sent back to Debian, helping to move packages from Unstable to Testing more easily.

As to why a separate project: I’ve seen the regular release cycle (note the part about Debian having years between releases) and social issues (ex: we have the CoC while Debian tolerates destructive people) cited elsewhere.

First of all, Canonical runs Debian unstable through its own set of “customizing scripts” that change some behavior of the resulting distro. Canonical then _doesn’t_ test those changes against _all_ of the packages in Debian’s repositories. Unlike Debian, Canonical does _not_ have the sheer number of talented developers to do that, in an atmosphere supporting completely unfettered interaction. That’s why, for example, Hardy broke the Debian package for the MidiSport drivers. Canonical applied changes to Debian unstable, and obviously didn’t test those changes against that (and many more) Debian packages.

Secondly, your citing of the Canonical “Code of Conduct” is laughable. There are a large number of “destructive” people on Canonical’s forums, and they’re called “Ubuntu fanbois”. Some of them are moderators. For example, I’ve seen a moderator lock a thread, then reopen the thread for a few seconds in order to allow a someone to post an inflammatory comment, and then immediately relock the thread. I’ve seen moderators, who can barely write intelligible english, moderating english language forums. I’ve seen moderators, who have absolutely no technical expertise, destructively moderating discussions they don’t even understand. Ubuntu’s CoC is a disaster, a joke, and a sham. It doesn’t produce nearly as good results as Debian’s community.

If you wrote the above blog to try to convince yourself that you’re doing the right thing, that’s your prerogative. If you wrote it to convince _others_, then you’re fooling no one.

And this process of “merging” (::rolls eyes::) breaks software in the Debian repositories, as with the particular example I cited above. That package was broken _only_ in Ubuntu, not Debian Unstable. Ubuntu is _not_ an “improved” Debian. Ubuntu is a broken Debian.

Ubuntu’s “governing councils” are a joke. They were made aware of the activity and condoned it. I repeat — Debian’s community is _infinitely_ more transparent and held much more accountable (than Canonical with its laughable ineffective CoC), and ultimately more responsible and effective, than Ubuntu’s community. Ask a question in a Debian list and you’ll get a real answer. Ask the same question in Ubuntu’s forums and you’ll get 10 replies. 2 of them will be “I also have that problem and don’t know how to fix it”, 4 will be wrong answers that don’t solve the problem (and may not even address the same problem), 3 will be Ubuntu fanboi advocacy “noise” (maybe even about an entirely different OS because all the Ubuntu community does all day is try to sell Windows users on Linux), and 1 will be simply a link to the correct answer in the Debian lists.

Good luck in your endeavor to portray Ubuntu as somehow serving the Linux community better than Debian does. Knowledgeable people know better.

Ubuntu is not Debian, it is a cousin not a twin. Nothing in Ubuntu breaks Debian, the two package systems should not be mixed. I use both Debian SID 64bit and Ubuntu 64 bit and there are plenty of examples of packages that are borked in Debian but work in Ubuntu. One glaring package is VLC, for a year it would not function in any flavour of Debian due to an incompatibility with FFMPEG. The whole time VLC worked perfectly in Ubuntu. And don’t perpetuate the irrational nonsense that Ubuntu does not contribute it’s fixes back upstream. Debian receives constant patches from Ubuntu.

I am now using 64bit Jaunty alpha5 plus updates and as of today it is working pretty well, 64 bit java, 64 bit flash, 64bit everything.

Ubuntu has always been stable for me, SID has always needed work. I could have used Debian Stable, but then my TV stick and GPS dongle would not work as the kernel was too far behind. The latest release is a step forward, but still a step behind. I have the knowledge to update Debian to a newer kernel,but I choose to use Ubuntu to save the mucking about.

Ubuntu serves a purpose that Debian has not been able to, that is make an up to date version of Debian that an average user can run with.

It’s not the “package systems”. Ubuntu uses Debian’s apt anyway. Ubuntu doesn’t have its own package manager. As usual, Canonical just takes Debian stuff, and rebrands it as its own.

It’s the repositories. Ubuntu devs make changes to Debian unstable that break software in the Debian repositories, and it’s obvious that Canonical doesn’t test all that software with the changes to Ubuntu, even though that software is listed when you run Synaptic under Ubuntu. (Canonical lacks the amount of skilled manpower that Debian has, and always will, because everything about Ubuntu, from its CoC to its target audience, is geared for ex-Windows Linux newbies who want to become gushing, unpaid Canonical salesmen, aka “Ubuntu fanbios”. These are not people who fix broken packages).

After all, I cited an example of a package listed in Synaptic (running under Ubuntu) which works in Debian Unstable, but not in Ubuntu. (Why mdz is _still_ asking for a specific example below, as if he’s pretending that no such thing exists, is beyond me. Apparently, as is the case with Ubuntu bug reports, the attitude is “If I pretend it doesn’t exist, then it doesn’t exist”).

The _real_ problem Ubuntu has is that Ubuntu is the most undeservedly overhyped Linux distro ever, and does _not_ offer anything more than many other distros out there (not just Debian). When it comes to its marketing hype, it’s the Microsoft Windows of the Linux distros. And that fact flies in the face of every attempt to portray Ubuntu as somehow being something more than the sum of the parts that it “borrows” from. It isn’t. Knowledgeable people (ie, _not_ the vast majority of Ubuntu users, who don’t even know that Ubuntu is based upon another distro, even while they’re trying to sell it to everyone on the planet) know this.

You are just playing with words, I meant the repositories are different and should not be mixed. Ubuntu devs do not change anything in the Debian packages, they pass patches upstream, the Debian devs then decide what to do with those changes. The two ecosystems are different and should not be mixed. If you try and install an Ubuntu deb in Debian and it does not work it is hardly surprising.

Your attacks on Ubuntu are emotional but not logical or even correct. You don’t like Ubuntu because it gets all the publicity and you think it unfair. Debian makes it difficult to use new gear as it is always two kernels behind. Even running testing does not help much. So to get that new TV stick or whatever to work you have to run Unstable or use a kernel from experimental. That is fine if all you ever do on a computer is spend time keeping it running and you know what you are doing. If you just want to use your computer to get things done it quickly becomes tedious. Ubuntu is Debian Sid and Experimental made up to date and stable. As for bug reports, I have made many to Ubuntu devs and every one has been replied to, I got emailed updates and advice of final fixes.
Lastly, the vast majority of Ubuntu users do know it is based on Debian. A lot of Ubuntu users are former Debian users who do not see the problems you do. A few noobs might not, but that is because they are just starting out with Linux.

You seem to have been pretty badly hurt by your experience with Ubuntu, and I regret that. Any sufficiently popular idea is vulnerable to distortion and hype, and Ubuntu is no exception. With all due respect for my colleagues in the Canonical marketing department, you give them far too much credit.

The “buzz” around Ubuntu, and the occasional well-intentioned but uninformed supporter, were commonplace long before Canonical undertook any substantial marketing activity (other than the free distribution of the product itself). They are the consequence of community reactions to Ubuntu itself, which have built momentum through word of mouth.

Having written at length on the subject of bug reports on Ubuntu, I won’t reiterate the facts here. I do, however, explicitly reject your attribution of ignorance to the people working in this area of the project. It has no substance or basis in fact.

I’m truly sorry that the MidiSport package regressed, and glad that you’ve found a solution to your problem by using Debian. There are other users for whom Ubuntu works better, who don’t require this peripheral functionality, and it’s certainly no reason to denigrate them for making a different choice.

Ubuntu doesn’t “rebrand” Debian any more than Debian “rebrands” Linux. Choosing either of them promotes the cause of free software by showing that it is a good solution for most users. This diversity is a strength of the free software ecosystem.

This is in reply to jg’s second post (which doesn’t have a direct reply option).

“Ubuntu is a broken Debian.”

Is it? Perhaps very occasionally, but do you say the same for all the other Debian spin-offs? (Maybe you do?)

Some people have different requirements – eg. a shorter release schedule, more up-to-date applications. Ubuntu isn’t trying to be “an improved Debian” – it’s trying to be Ubuntu, a different distribution, and doing a fine job of it too.

It’s not perfect by any means, but still, it’s introducing a whole lot of people to Linux who wouldn’t have got here otherwise. For whatever reasons, they haven’t been falling over themselves to reach for the Debian installer – though perhaps they will, in time, when they feel like a change.

But surely this feat of introducing tens (hundreds?) of thousands of people to Linux can’t be scoffed at by ANYBODY who would prefer a healthier, more diverse, more open landscape of computer users?

I’m a Debian (well, Sidux – if you’ll allow me to count that as proper Debian, and I suspect perhaps you won’t) user and not really a Ubuntu user.

I don’t really see how any Linux user could be as annoyed as you seem to be with Ubuntu, unless that person was a die-hard Debian fan who can’t stand it when another distribution takes stuff from Debian and runs with it.

But that’s the Open Source model working at it’s best, isn’t it? This is how it’s SUPPOSED to happen – and it is, right in front of your eyes!

Dave S wrote:
“I don’t really see how any Linux user could be as annoyed as you seem to be with Ubuntu, unless that person was a die-hard Debian fan who can’t stand it when another distribution takes stuff from Debian and runs with it.

But that’s the Open Source model working at it’s best, isn’t it? This is how it’s SUPPOSED to happen – and it is, right in front of your eyes!”

I guess the problem with the Ubuntu-Debian relationship is that Ubuntu is more a fork than a Debian derivative. Ubuntu duplicates Debian’s infrastructure and adds lots of minor changes of their own, that make Ubuntu largely incompatible with Debian unstable. In this sense Ubuntu is effectively an incompatible fork of Debian, and while Ubuntu keeps periodically pulling new code from Debian, it also makes it harder than with any other Debian-based distro to merge Ubuntu’s changes back to Debian unstable.

We all know that Linus Torvalds is a great advocate of the Open Source development model. When Linus talks about the Open Source development model, he usually tells how people make changes to Linux and then send their patches back to Torvalds, who then decides if the changes will be accepted into Linux or not. This is how the Open Source development model is supposed to work in action.

But think about Linus’ reaction if, say, Microsoft made a fork of Linux. And then Microsoft would periodically pull code from Torvalds’ project and add their own minor improvements here and there, while keeping their Linux fork largely incompatible with the original Linux. And suppose this “Microsoft Linux” would attract more users and volunteer developers than the original Linux because people would think that Microsoft had made an “improved Linux” (even if they’re actually just leeching the original Linux team’s work and adding lots of very small changes of their own).

Now, do you really think Linus would say that this hypothetical Microsoft Linux is “the Open Source model working at it’s best”? And would you say that only a die-hard fan of Torvalds’ Linux could be annoyed when Microsoft takes code from Linux and runs with it?

Can you tell me about a real-world problem you had with regard to “incompatibility”? In practice, packages built on Ubuntu largely work on Debian, and vice versa. Source packages virtually always build correctly for either distribution. Current Ubuntu releases are closer to current Debian than the previous Debian release is.

As for merging back, can you point to another distribution where it’s easier to merge patches into Debian? The fact that Ubuntu is routinely merged with up-to-date Debian unstable actually makes it easier for the developers involved to exchange patches, because they’re working from a similar code base. Contrast this with some earlier Debian derivatives whose patches (if they were submitted at all) needed to be forward-ported across years of development before they could be merged. This was much, much worse.

Ubuntu developers work both with Debian and with upstream, depending on the circumstances. For example, when working on packaging, it is more appropriate to send fixes to Debian, while most changes to upstream code are better directed there.

Ubuntu is no longer just based on unstable, if anything it is based on Debian Experimental. Debian Unstable only updated from 2.6.26 to 2.6.28 in the last few weeks, Ubuntu has had a 2.6.27 kernel since 8.10 and a 2.6.28 in 9.04. Also things like Gnome versions are rarely in sync. It is not as simple as people make it out, only a fool would try and install anything but a trivial Debian program into Ubuntu or visa versa. Sidux is Debian unstable by design. Ubuntu and Sidux are now quite different.

Ubuntu incorporates new components from upstream, ahead of Debian unstable, in select cases. The Linux kernel is packaged entirely independently for Ubuntu, and is not the same as the Debian kernel. We do hope to collaborate more with the kernel team in the future, but at present, there isn’t much happening there.

We also package newer GNOME releases, as our releases are synchronized to GNOME’s and we aim to always deliver the latest stable GNOME release in every Ubuntu release.

[…] Ubuntu is based on Debian unstable Debian is well known and regarded as a product, the Debian system itself. In addition to this end product, the Debian community produces a variety of useful by-products. One of the most celebrated is Debian “unstable”, which despite its unglamorous name is an incredible achievement. It represents the collective work of a vast number of developers, who package and maintain essentially all of the free software available. […]

*buntu hasn’t been able to impress me with its stability like Debian has, even when running Debian Sid or Testing.

Add to that that bug reports from _years_ ago that I filed are just now being responded to, often with “Try the newest release and report back” (which isn’t always possible), or with “This bug is old so we’re closing it”. Neither of these are appropriate responses to bug reports…

Add to that that every dist-upgrade that I tried with Kubuntu failed, and KDE was (and still is) being treated like a second-class desktop. KDE is meant to be powerful and yet *buntu people want to dumb it down to be like Gnome. There is a reason I don’t run Gnome — I have work to do.

Add to this that software, with newer versions in Debian, isn’t always updated in *buntu from one release to the next; requests for updates always are responded with, “Next release we’ll look into it” which seems to not happen.

Then add in that ‘Based on Debian’ isn’t mentioned once on the Ubuntu home page and yet Linux people are supposed to believe this, while packages for one don’t work on the other. How is that based on Debian? It seems to me like they took Debian and dropped it down the stairs a few times, and then released it.

Once you’ve added all of that up, it equals pain.

I’ve got a good number of other complaints against *buntu but really, these cover most of my ill feelings towards Ubuntu. As a recap, Ubuntu fails for me at these points: lack-of-stability, unresponsiveness-to-bugreports, never-working-upgrades, poorly-implemented-KDE, ignored-newer-versions-of-software, “based-on-debian”-but-won’t-admit-it, “based-on-debian”-but-incompatible-software. Those are enough reasons for me, even though I have more.

Thing is, I *want* Free Software to succeed, and it saddens me that *buntu is the frontrunner. I don’t think whole-hog releases, and frequent ones at that, are the best way to start with this. Have LTS but need a newer package of Program Z? Outta luck.

It’s true that Ubuntu, in its rise to popularity, has been overwhelmed with bug reports, and this has led to some reports not receiving a prompt response. I’m sorry for that. The latest statistics show that we’re keeping up with responding to incoming bug reports, and sometimes making headway on the backlog. I wrote more about this in an earlier post with some figures to consider.

It’s also true that Kubuntu is a less active project than Ubuntu, though it benefits from much of the work done in the core platform. It may not be the best KDE distribution for you, but many people do use and enjoy it. It’s your choice.

As for acknowledging Debian, this article itself is a good example of that. The words “based on Debian” may not appear on the home page itself, but there’s an entire page devoted to explaining the heritage and the value Debian provides at http://www.ubuntu.com/community/ubuntustory/debian .

If you run LTS but want newer versions of some applications, there’s a community team which provides backports. These are not complete, but tend to cover a good variety of the popular packages which users might want. Our model here is actually very similar to Debian, which also produces full releases of all of the software at once.

I’ll say make it short: dayle kernel panics, often few hours apart, including on fresh installations – by the book, with no unsupported software sources enabled, are, among other things (mostly freezes and such) what made me realize I can not use Ubuntu anymore. I had to reinstall Ubuntu more often than I reinstall windows, and that is unacceptable. Today I use debian or Centos for linux and give up the cutting adge, because I’m no big hacker and want things to simply work. Feels weird, saying that I preffer Debian over Ubuntu for ease of use…