UbuntuForDebianDevelopers

Differences between revisions 1 and 45 (spanning 44 versions)
Revision 1 as of 2006-01-17 09:54:10
Size: 266
Editor: alabama
Comment:
Revision 45 as of 2006-08-25 14:37:33
Size: 7830
Editor: p54A8448C
Comment: added stanza about comaintainership
Deletions are marked like this. Additions are marked like this.
Line 1: Line 1:
== Why should I care about Ubuntu ? == == Introduction ==
Line 3: Line 3:
== What is Universe ? And MOTU ? == This document is intended to provide practical information about Ubuntu specifically for Debian developers.
Line 5: Line 5:
== What kind of divergence is introduced inside Ubuntu ? ==  * Ubuntu is proud to be [http://www.ubuntulinux.org/ubuntu/relationship based on Debian].
 * Ubuntu wants to maintain a healthy and collaborative relationship with Debian developers.
 * Ubuntu has brought new users and developers to the GNU/Linux community. Some day, those new users might become Free Software developers, advocates or DD's.
Line 7: Line 9:
== What does Ubuntu need to change to my packages ? == == How does Ubuntu differ from Debian? ==
Line 9: Line 11:
== Ubuntu's way of ''contributing to Debian'' really sucks. == === Purpose and Scope ===

Ubuntu has a narrower focus than Debian in many ways. For example, Ubuntu supports only a subset of the architectures that Debian does, and targets specific users (for example, desktop users and server administrators), while Debian seeks to be more universal.

=== Community Governance ===

Ubuntu has its own [http://www.ubuntu.com/community/processes community government structure], in some ways inspired by Debian's but in other ways different. There are different governing bodies, procedures for becoming a developer, upload privileges, and more.

=== Licensing ===

Ubuntu has four [http://ubuntulinux.org/ubuntu/components components] (like Debian's ''main'', ''contrib'' and ''non-free''), distinguished by [http://www.ubuntu.com/ubuntu/licensing licence policy] and support terms. The following table summarizes the differences:

Source packages in Ubuntu components as of 2006-01-18:
|| || '''Free software''' || '''non-free software''' ||
|| '''Offically supported''' || ''main'' (2297) || ''restricted'' (5) ||
|| '''Unofficial''' || ''universe'' (8363) || ''multiverse'' (364) ||

Officially supported packages receive security updates sponsored by Canonical, and more rigorous QA relative to the release cycle, while unofficial packages are maintained on a "best effort" basis, primarily through incorporating the Debian maintainer's work.

=== Packages ===

Most source packages are copied unmodified from Debian, but other sources include [http://www.apt-get.org/ apt-get.org], [http://revu.tauware.de/ REVU], directly from organisations such as Blackdown and WineHQ, and packages which are created by Ubuntu developers specifically for Ubuntu.

=== Package maintenance ===

Unlike Debian, Ubuntu packages usually do not have a designated maintainer. In effect, all packages in Ubuntu are maintained by teams. Packages in Ubuntu `main` and `restricted` are maintained by the [https://launchpad.net/people/ubuntu-core-dev Ubuntu Core Development Team], while packages in Ubuntu `universe` and `multiverse` are maintained by the [https://launchpad.net/people/ubuntu-dev Ubuntu Development Team]. If you need to discuss a specific change, try poking the last person who changed the package (see the changelog at [http://changelogs.ubuntu.com/]).

=== Bug tracking ===

Ubuntu tracks bugs in [http://bugs.ubuntu.com Launchpad]. The Launchpad bug tracker makes it possible to keep track of bugs in multiple contexts, for example, if a bug is fixed upstream but not in Debian, or fixed in Debian but not in Ubuntu. It can also store links to bugs filed upstream and in Debian, and notify Ubuntu developers when their status changes. More information about bug tracking in Launchpad can be found at XXX.

=== Relationship to Canonical ===

XXX work in progress

== What is MOTU? ==

With the creation of the `universe` component, volunteers were needed to look after these packages. A team called The Masters of the Universe (["MOTU"]) was formed for this purpose. MOTUs sync (import without modification) or merge (import with Ubuntu-specific changes) packages from Debian. MOTUs also sometimes construct Debian-format source packages for use in Ubuntu universe directly from upstream sources. MOTUs handle bugs reported on software inside ''universe'' and ''multiverse''.

 * ''See also: [http://ubuntulinux.org/ubuntu/components ubuntu/components] and ["MOTU"].''

== Why does Ubuntu need to change my packages? What kind of changes are made? ==

There are many reasons why packages in Ubuntu diverge from Debian, including:

 * Policy differences between Debian and Ubuntu (for example, dependencies, build-time options, etc.)
 * Bug fixes
 * Development of new features
 * Transitions: Ubuntu routinely carries out packaging transitions ahead of Debian, in collaboration with Debian representatives where a consistent policy is needed
  * C++ ABI (http://lists.debian.org/debian-devel-announce/2005/07/msg00001.html)
  * Modular X.org
  * Python
  * Library SONAME changes
 * Newer upstream versions: Ubuntu tracks upstream more closely than Debian in some cases
  * GNOME
  * KDE
  * Linux
  * Toolchain (GCC et al)

== What can I do if I feel that an Ubuntu developer or member is behaving inappropriately? ==

Technical issues should be raised with the Ubuntu Technical Board. Non-technical issues should be raised with the Ubuntu Community Council. Information about both bodies may be found on the [http://www.ubuntu.com/community/processes/governance governance page].

== How does Ubuntu cooperate with Debian? ==

For many packages in ''main'', Ubuntu has good working relationships with the Debian maintainer(s) and is involved with the core Debian development. Many volunteer developers are active in both Debian and Ubuntu camps. Canonical employs some Debian developers, which should help changes flow directly back to Debian.

=== How can I obtain patches from Ubuntu? ===

 * Patches for Ubuntu packages are generated regularly and forwarded to the [http://packages.qa.debian.org Debian Package Tracking System] (`derivatives` keyword) and the [http://lists.ubuntu.com/mailman/listinfo/ubuntu-patches ubuntu-patches mailing list]. By using these resources, you can receive timely notification of incremental patches to your Debian packages, or to all packages in Ubuntu.
 * The complete delta between Debian and Ubuntu for a given package is published in Ubuntu's [http://patches.ubuntu.com Debian patches repository]
 * Sometimes, patches are manually placed in a [http://patches.ubuntu.com/patches/ patch archive]
 * In the future, Ubuntu plans to maintain this delta using distributed revision control tools, providing a convenient way to review and merge changes

=== Why aren't these patches submitted to the Debian BTS instead? ===

 * '''It doesn't scale''': Ubuntu developers regularly make changes across a range of packages in the distribution, including transitions which touch hundreds of packages. Individually filing these patches can take more time than the work itself.
 * '''Differences of opinion''': Debian developers have different preferences about how they wish to receive patches, and some object to receiving them at all. By providing subscription mechanisms, Ubuntu allows Debian developers to express their preferences and have them respected automatically.
 * '''Difficult to track''': A great deal of bookkeeping is required in order to keep track of which patches have been merged into Debian, either modified or unmodified. Our long-term strategy is to apply proper revision control tools to this problem, but in the meantime, the bug tracker has too much overhead.

=== How can I minimize the Ubuntu delta for my packages? ===

 * In some cases it currently works very well to have the Debian and Ubuntu developers comaintain the package. By using a common RCS repository, Ubuntu developers can apply general bug fixes directly to the Debian branch and then just merge the fix into the Ubuntu branch. For obvious reasons this can only work for a very small number of packages/maintainers.

XXX work in progress

==

----
For more information about Debian collaboration in Ubuntu, see DebianCollaboration.

Introduction

This document is intended to provide practical information about Ubuntu specifically for Debian developers.

  • Ubuntu is proud to be [http://www.ubuntulinux.org/ubuntu/relationship based on Debian].

  • Ubuntu wants to maintain a healthy and collaborative relationship with Debian developers.
  • Ubuntu has brought new users and developers to the GNU/Linux community. Some day, those new users might become Free Software developers, advocates or DD's.

How does Ubuntu differ from Debian?

Purpose and Scope

Ubuntu has a narrower focus than Debian in many ways. For example, Ubuntu supports only a subset of the architectures that Debian does, and targets specific users (for example, desktop users and server administrators), while Debian seeks to be more universal.

Community Governance

Ubuntu has its own [http://www.ubuntu.com/community/processes community government structure], in some ways inspired by Debian's but in other ways different. There are different governing bodies, procedures for becoming a developer, upload privileges, and more.

Licensing

Ubuntu has four [http://ubuntulinux.org/ubuntu/components components] (like Debian's main, contrib and non-free), distinguished by [http://www.ubuntu.com/ubuntu/licensing licence policy] and support terms. The following table summarizes the differences:

Source packages in Ubuntu components as of 2006-01-18:

Free software

non-free software

Offically supported

main (2297)

restricted (5)

Unofficial

universe (8363)

multiverse (364)

Officially supported packages receive security updates sponsored by Canonical, and more rigorous QA relative to the release cycle, while unofficial packages are maintained on a "best effort" basis, primarily through incorporating the Debian maintainer's work.

Packages

Most source packages are copied unmodified from Debian, but other sources include [http://www.apt-get.org/ apt-get.org], [http://revu.tauware.de/ REVU], directly from organisations such as Blackdown and WineHQ, and packages which are created by Ubuntu developers specifically for Ubuntu.

Package maintenance

Unlike Debian, Ubuntu packages usually do not have a designated maintainer. In effect, all packages in Ubuntu are maintained by teams. Packages in Ubuntu main and restricted are maintained by the [https://launchpad.net/people/ubuntu-core-dev Ubuntu Core Development Team], while packages in Ubuntu universe and multiverse are maintained by the [https://launchpad.net/people/ubuntu-dev Ubuntu Development Team]. If you need to discuss a specific change, try poking the last person who changed the package (see the changelog at [http://changelogs.ubuntu.com/]).

Bug tracking

Ubuntu tracks bugs in [http://bugs.ubuntu.com Launchpad]. The Launchpad bug tracker makes it possible to keep track of bugs in multiple contexts, for example, if a bug is fixed upstream but not in Debian, or fixed in Debian but not in Ubuntu. It can also store links to bugs filed upstream and in Debian, and notify Ubuntu developers when their status changes. More information about bug tracking in Launchpad can be found at XXX.

Relationship to Canonical

XXX work in progress

What is MOTU?

With the creation of the universe component, volunteers were needed to look after these packages. A team called The Masters of the Universe (["MOTU"]) was formed for this purpose. MOTUs sync (import without modification) or merge (import with Ubuntu-specific changes) packages from Debian. MOTUs also sometimes construct Debian-format source packages for use in Ubuntu universe directly from upstream sources. MOTUs handle bugs reported on software inside universe and multiverse.

Why does Ubuntu need to change my packages? What kind of changes are made?

There are many reasons why packages in Ubuntu diverge from Debian, including:

  • Policy differences between Debian and Ubuntu (for example, dependencies, build-time options, etc.)
  • Bug fixes
  • Development of new features
  • Transitions: Ubuntu routinely carries out packaging transitions ahead of Debian, in collaboration with Debian representatives where a consistent policy is needed
  • Newer upstream versions: Ubuntu tracks upstream more closely than Debian in some cases
    • GNOME
    • KDE
    • Linux
    • Toolchain (GCC et al)

What can I do if I feel that an Ubuntu developer or member is behaving inappropriately?

Technical issues should be raised with the Ubuntu Technical Board. Non-technical issues should be raised with the Ubuntu Community Council. Information about both bodies may be found on the [http://www.ubuntu.com/community/processes/governance governance page].

How does Ubuntu cooperate with Debian?

For many packages in main, Ubuntu has good working relationships with the Debian maintainer(s) and is involved with the core Debian development. Many volunteer developers are active in both Debian and Ubuntu camps. Canonical employs some Debian developers, which should help changes flow directly back to Debian.

How can I obtain patches from Ubuntu?

  • Patches for Ubuntu packages are generated regularly and forwarded to the [http://packages.qa.debian.org Debian Package Tracking System] (derivatives keyword) and the [http://lists.ubuntu.com/mailman/listinfo/ubuntu-patches ubuntu-patches mailing list]. By using these resources, you can receive timely notification of incremental patches to your Debian packages, or to all packages in Ubuntu.

  • The complete delta between Debian and Ubuntu for a given package is published in Ubuntu's [http://patches.ubuntu.com Debian patches repository]

  • Sometimes, patches are manually placed in a [http://patches.ubuntu.com/patches/ patch archive]

  • In the future, Ubuntu plans to maintain this delta using distributed revision control tools, providing a convenient way to review and merge changes

Why aren't these patches submitted to the Debian BTS instead?

  • It doesn't scale: Ubuntu developers regularly make changes across a range of packages in the distribution, including transitions which touch hundreds of packages. Individually filing these patches can take more time than the work itself.

  • Differences of opinion: Debian developers have different preferences about how they wish to receive patches, and some object to receiving them at all. By providing subscription mechanisms, Ubuntu allows Debian developers to express their preferences and have them respected automatically.

  • Difficult to track: A great deal of bookkeeping is required in order to keep track of which patches have been merged into Debian, either modified or unmodified. Our long-term strategy is to apply proper revision control tools to this problem, but in the meantime, the bug tracker has too much overhead.

How can I minimize the Ubuntu delta for my packages?

  • In some cases it currently works very well to have the Debian and Ubuntu developers comaintain the package. By using a common RCS repository, Ubuntu developers can apply general bug fixes directly to the Debian branch and then just merge the fix into the Ubuntu branch. For obvious reasons this can only work for a very small number of packages/maintainers.

XXX work in progress

==


For more information about Debian collaboration in Ubuntu, see DebianCollaboration.

UbuntuForDebianDevelopers (last edited 2008-09-22 11:48:26 by 82-69-40-219)