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.