LWN.net Logo

Ubuntu archive reorganization

By Rebecca Sobol
July 1, 2009

Ubuntu is over five years old, with ten releases under its belt. Since that time the archive structure, envisioned before the first release, has begun to show its age. Recently the Ubuntu Technical Committee announced that a change was coming. For the most part users should not notice much if any difference, but there will be changes for developers.

The Archive Reorganisation will be done in stages, only a part of the work will be done during the Karmic development cycle. Though the process is still in the very early stages and proposals are subject to change, we will take a look at how things are likely to proceed in the near future.

First we should look at the current organization of the archive, which has been split into four components; main, restricted, universe and multiverse. The main repository contains free software, supported by the core developers. The restricted repository is also supported by core developers and contains non-free software such as drivers. Universe and multiverse contain free and non-free software, respectively and are not officially supported by Canonical, Ubuntu's parent company.

The MOTU (Masters of the Universe) team supports universe, multiverse and various other packages that are otherwise untended. It was initially envisioned that beginning developers would submit patches. After some experience they would be trusted to upload a limited set of packages without prior review. Eventually they would gain enough experience to become a core developer with access to all repositories.

Over time the MOTU team has become increasingly fragmented by the officially supported flavors (Kubuntu, Xubuntu, Ubuntu Studio, etc.). Hundreds of packages have migrated to the main repository as the various flavors became official. Ubuntu Studio alone brought 141 source packages into the 8.04 LTS release that were not part of any other flavor. Meanwhile, many MOTU developers tend to only be interested in a subset of packages and are not interested in becoming core developers. For example many Kubuntu developers only want to work with KDE packages and are not interested in having access to the rest of the archive.

As the number of flavors grows to include MythTV packages, netbooks and mobile devices, cloud computing and other specialties, more and more packages (and all their dependencies are moved into main, but are still maintained by MOTU developers, so there are access control issues. Some packages are "maintained for security updates", while others are "commercially supported by Canonical", further muddying the waters.

The proposal to alleviate these issues has been divided into three parts. The first part deals with exceptions useful in specific cases, the second deals with permission changes and third deals with component changes. The first part is largely implemented already. The second part is targeted to take place during the Karmic development period. The component changes are still being discussed and won't really be addressed until after Karmic (9.10) is released.

To begin with, those MOTU developers who are doing a good job maintaining their packages will be granted permission to upload those packages into main. This has been implemented on a case by case basis as determined by the Ubuntu Technical Board.

Currently packages are grouped by seeds and seed collections. "Xubuntu Jaunty desktop" is a seed that contains all of the source packages and dependencies for a functioning XFCE desktop. "Xubuntu Jaunty" is a seed collection of all the packages on the Xubuntu Jaunty live CD. Seed collections are not exposed to users and are subject to reorganization.

Package sets will likely be based on seeds but will be exposed to users via package management tools. Packages are grouped into package sets such as "core", "Ubuntu desktop", "Ubuntu server" and "Kubuntu". A package may be in more than one package set. Each package set has associated access control for upload permissions and queue administration.

The Technical Board will be able to manage package sets by adding or removing packages from them, and will be able to assign upload privileges at the package set level. Some packages sets will be restricted to a small set of experienced developers, such as the Linux kernel or glib. Most package sets will be unrestricted. Granting upload access to a team implies that the administrators of that team will be able to grant upload access to additional developers, at least for unrestricted package sets.

The core developers and the MOTU developers will be collapsed into a single team of Ubuntu developers. It could be that most developers will be able to upload packages from any unrestricted package set, but this is subject to change. It may make more sense to grant many developers access only to their specific package set. So the average Kubuntu developer would only have upload permission for a set of KDE packages, not to the archive as a whole. The line between core and MOTU developers becomes blurred so does the distinction between the current main and universe repositories. Packages contained in package sets will be considered in main while those few packages that are not part of a set or seed collection will be in universe. Some extensions to Launchpad will be required for this to work as desired. Again, this is still subject to change, but should be mostly implemented by the time Karmic is released.

The third part of the proposal is the reorganization of components. There will be more review and discussion of this after Karmic is released so it is best to deffer any discussion for a while.


(Log in to post comments)

Ubuntu archive reorganization

Posted Jul 2, 2009 14:31 UTC (Thu) by malefic (subscriber, #37306) [Link]

I'm seeing a lot of similarities to Gentoo org. in this new structure. Seeds are just like Gentoo Herds.

Ubuntu archive reorganization

Posted Jul 10, 2009 4:04 UTC (Fri) by Duncan (guest, #6647) [Link]

Interesting you mention that. Some time ago (a year? 18 months? two
years?) there was Gentoo-dev list discussion of a seeds concept, which
would have been, more or less, a stage-4, with kde seeds and gnome seeds
and xfce seeds and webserver seeds and... . I think the concept
eventually got subsumed into other projects, or the people behind it left,
I'm not sure, but in any case, it's interesting to see seeds mentioned
here in a rather different context, interesting that you're equating it
with herds, which are and remain a distinct concept in Gentoo, and it all
has me wondering what the relationship may have been.

Duncan

Copyright © 2009, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds