DebianMaintainerField

Differences between revisions 1 and 18 (spanning 17 versions)
Revision 1 as of 2006-07-08 01:56:10
Size: 3886
Editor: studiocity-motorola-bsr1-70-36-194-85
Comment: initial draft
Revision 18 as of 2008-08-06 16:33:37
Size: 5421
Editor: localhost
Comment: converted to 1.6 markup
Deletions are marked like this. Additions are marked like this.
Line 3: Line 3:
 * '''Launchpad entry''': https://launchpad.net/distros/ubuntu/+spec/debian-maintainer-field
 * '''Created''': [[Date(2006-07-08T01:56:10Z)]] by MattZimmerman
 * '''Launchpad entry''': https://blueprints.launchpad.net/ubuntu/+spec/debian-maintainer-field
 * '''Created''': <<Date(2006-07-08T01:56:10Z)>> by MattZimmerman
Line 22: Line 22:
 * Ebenezer is a Debian developer. He wants to find out where to send mail regarding the version of his package included in Ubuntu.
Line 29: Line 30:
Debian maintainers were [http://master.debian.org/~jeroen/polls/maintainer-field/ polled] for their opinions on this subject. The [http://master.debian.org/~jeroen/polls/maintainer-field/ballot.txt ballot] options were: {{{ Debian maintainers were [[http://master.debian.org/~jeroen/polls/maintainer-field/|polled]] for their opinions on this subject. The [[http://master.debian.org/~jeroen/polls/maintainer-field/ballot.txt|ballot]] options were: {{{
Line 38: Line 39:
The [http://master.debian.org/~jeroen/polls/maintainer-field/results.png results] showed that the voters preferred Choice 4. Therefore we will do as follows for all Ubuntu binary packages, and Ubuntu source packages which are modified relative to Debian: The [[http://master.debian.org/~jeroen/polls/maintainer-field/results.png|results]] showed that the voters preferred Choice 4. Therefore we will do as follows for all Ubuntu binary packages, and Ubuntu source packages which are modified relative to Debian:
Line 41: Line 42:
 * If the package is in `main` or `restricted`, the `Maintainer` field will be set to `ubuntu-devel@lists.ubuntu.com`
 * If the package is in `universe` or `multiverse`, the `Maintainer` field will be set to `ubuntu-motu@lists.ubuntu.com`
 * If the `Maintainer` field is modified, the old value will be saved in a field named `X-Original-Maintainer`
 * If the package is in `main` or `restricted`, the `Maintainer` field will be set to `Ubuntu Core Developers <ubuntu-devel-discuss@lists.ubuntu.com>`
 * If the package is in `universe` or `multiverse`, the `Maintainer` field will be set to `Ubuntu MOTU Developers <ubuntu-motu@lists.ubuntu.com>`
 * If the `Maintainer` field is modified, the old value will be saved in a field named `XSBC-Original-Maintainer`
Line 51: Line 52:
If a source package is modified relative to Debian (this can be determined automatically by examining the version number), its `Maintainer` field should be updated either as above, or with a more appropriate Ubuntu contact if one exists. For all packages which are already modified at this time, we can automatically implement the changes. In the future, the field should be updated when modifying the package for the first time. We will provide a script to automate this and refer to it in DeveloperResources. If a source package is modified relative to Debian (this can be determined automatically by examining the version number), its `Maintainer` field should be updated either as above, or with a more appropriate Ubuntu contact if one exists. For all packages which are already modified at this time, we can automatically implement the changes. In the future, the field should be updated when modifying the package for the first time. We will provide a script to automate this and refer to it from UbuntuDevelopment (the script is now available as `update-maintainer` from the ubuntu-dev-tools package).

We will add a check to `dpkg-buildpackage` which refuses to build a source package if above conditions are not met and `$DEBEMAIL` contains `ubuntu`.
Line 56: Line 59:

There is a script `update-maintainer` available in the ubuntu-dev-tools package, which automatically updates debian/control in a source package.
Line 63: Line 68:
== BoF agenda and discussion == == Tests ==

 * Binary packages:

 {{{
 wget -O - http://archive.ubuntu.com/ubuntu/dists/intrepid/main/binary-i386/Packages.gz | gunzip | grep-dctrl -sSource:Package,Package,Maintainer -FVersion ubuntu | grep-dctrl -sSource:Package -FMaintainer -v -n ubuntu | sort -u }}}

 should be empty. Likewise for `universe`, `multiverse`, etc. and other architectures.

 * Source packages:

 {{{
 wget -O - http://archive.ubuntu.com/ubuntu/dists/intrepid/main/source/Sources.gz| gunzip | grep-dctrl -sPackage,Maintainer -FVersion ubuntu | grep-dctrl -sPackage -FMaintainer -v -n ubuntu | sort -u }}}

 should be empty. Likewise for `universe`, `multiverse`, etc.

 * Trying to `dpkg-buildpackage -S` a source package with `Maintainer: Martin Pitt <mpitt@debian.org>` and a version number that contains `ubuntu` fails with:

 {{{
 dpkg-source: error: Version number suggests Ubuntu changes, but Maintainer: does not have Ubuntu address }}}
Line 66: Line 90:
CategorySpec CategorySpec<<BR>>
CategoryProcess

Summary

In February of 2006, a discussion and poll were held in the Debian community to determine the most appropriate way to handle the Maintainer field in package metadata for distributions derived from Debian.

Rationale

Debian maintainers have expressed discontent about the Maintainer field being unchanged in Ubuntu, because this causes them to be contacted in some situations where they are not the correct point of contact.

Use cases

  • Daniel is an Ubuntu user. He has a question about a package, and Synaptic shows a person's name and email address associated with it. He sends them an email with his question.
  • Engelbert is a Debian developer. He takes pride in the work that he puts into his packages, and wants to be appropriately credited
  • Quentin is a Debian developer. He does not want to be listed as the maintainer of his package in Ubuntu because it has been modified by Ubuntu developers.
  • Guy is an Ubuntu developer. He is primarily responsible for modifications to a handful of packages in Ubuntu, and so he should be listed as the maintainer in the package metadata.
  • Ebenezer is a Debian developer. He wants to find out where to send mail regarding the version of his package included in Ubuntu.

Scope

Handling of the Maintainer field for source and binary packages in Ubuntu, modified and unmodified relative to Debian

Design

Debian maintainers were polled for their opinions on this subject. The ballot options were:

[   ] Choice 1: Maintainer field should remain unmodified
[   ] Choice 2: Change Maintainer on source changes only
[   ] Choice 3: Change Maintainer on any change (including binary rebuild)
[   ] Choice 4: Choice 3 + Preserve Maintainer: field as Debian-Maintainer:
[   ] Choice 5: I don't care
[   ] Choice 6: None of the above / Further discussion

The results showed that the voters preferred Choice 4. Therefore we will do as follows for all Ubuntu binary packages, and Ubuntu source packages which are modified relative to Debian:

  • If the Maintainer field contains an ubuntu.com email address, no modifications are made

  • If the package is in main or restricted, the Maintainer field will be set to Ubuntu Core Developers <ubuntu-devel-discuss@lists.ubuntu.com>

  • If the package is in universe or multiverse, the Maintainer field will be set to Ubuntu MOTU Developers <ubuntu-motu@lists.ubuntu.com>

  • If the Maintainer field is modified, the old value will be saved in a field named XSBC-Original-Maintainer

Binary Packages

We will automatically mangle the headers during the package build process. AdamConrad has preliminary code for this.

Source Packages

If a source package is modified relative to Debian (this can be determined automatically by examining the version number), its Maintainer field should be updated either as above, or with a more appropriate Ubuntu contact if one exists. For all packages which are already modified at this time, we can automatically implement the changes. In the future, the field should be updated when modifying the package for the first time. We will provide a script to automate this and refer to it from UbuntuDevelopment (the script is now available as update-maintainer from the ubuntu-dev-tools package).

We will add a check to dpkg-buildpackage which refuses to build a source package if above conditions are not met and $DEBEMAIL contains ubuntu.

Implementation

Code

There is a script update-maintainer available in the ubuntu-dev-tools package, which automatically updates debian/control in a source package.

Data preservation and migration

Unresolved issues

Derivatives other than Ubuntu should adhere to the same standard, and Debian should generalize its statement to apply to all Derivatives, not only Ubuntu.

Tests

  • Binary packages:
     wget -O - http://archive.ubuntu.com/ubuntu/dists/intrepid/main/binary-i386/Packages.gz | gunzip | grep-dctrl -sSource:Package,Package,Maintainer -FVersion ubuntu  | grep-dctrl -sSource:Package -FMaintainer -v -n ubuntu | sort -u 

    should be empty. Likewise for universe, multiverse, etc. and other architectures.

  • Source packages:
     wget -O - http://archive.ubuntu.com/ubuntu/dists/intrepid/main/source/Sources.gz| gunzip | grep-dctrl -sPackage,Maintainer -FVersion ubuntu  | grep-dctrl -sPackage -FMaintainer -v -n ubuntu | sort -u 

    should be empty. Likewise for universe, multiverse, etc.

  • Trying to dpkg-buildpackage -S a source package with Maintainer: Martin Pitt <mpitt@debian.org> and a version number that contains ubuntu fails with:

     dpkg-source: error: Version number suggests Ubuntu changes, but Maintainer: does not have Ubuntu address 


CategorySpec
CategoryProcess

DebianMaintainerField (last edited 2010-02-05 15:33:10 by d86-33-158-1)