DebianMaintainerField

Differences between revisions 12 and 21 (spanning 9 versions)
Revision 12 as of 2007-03-08 10:53:20
Size: 5153
Editor: 87
Comment:
Revision 21 as of 2010-02-05 15:33:10
Size: 5756
Editor: d86-33-158-1
Comment: Reverting -.-
Deletions are marked like this. Additions are marked like this.
Line 4: Line 4:
 * '''Created''': [[Date(2006-07-08T01:56:10Z)]] by MattZimmerman  * '''Created''': <<Date(2006-07-08T01:56:10Z)>> by MattZimmerman
Line 30: 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 39: 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 42: Line 42:
 * 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>`
 * Otherwise, the `Maintainer` field will be set to `Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com>`
Line 52: Line 51:
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. 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).
Line 59: Line 58:

There is a script `update-maintainer` available in the ubuntu-dev-tools package, which automatically updates debian/control in a source package.
Line 71: Line 72:
 wget -O - http://archive.ubuntu.com/ubuntu/dists/feisty/main/binary-i386/Packages.gz | gunzip | grep-dctrl -sSource:Package,Package,Maintainer -FVersion ubuntu | grep-dctrl -sSource:Package -FMaintainer -v -n ubuntu | sort -u }}}  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 }}}
Line 78: Line 79:
 wget -O - http://archive.ubuntu.com/ubuntu/dists/feisty/main/source/Sources.gz| gunzip | grep-dctrl -sPackage,Maintainer -FVersion ubuntu | grep-dctrl -sPackage -FMaintainer -v -n ubuntu | sort -u }}}  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 }}}
Line 87: Line 88:
== Previous rules ==

These rules were [[https://lists.ubuntu.com/archives/ubuntu-devel/2009-May/028213.html|amended]] in May 2009. The previous rules modified the `Maintainer` field depending on the package's component:

 * If the package was in `main` or `restricted`, the `Maintainer` field was set to `Ubuntu Core Developers <ubuntu-devel-discuss@lists.ubuntu.com>`
 * If the package was in `universe` or `multiverse`, the `Maintainer` field was set to `Ubuntu MOTU Developers <ubuntu-motu@lists.ubuntu.com>`
Line 88: Line 96:
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

  • Otherwise, the Maintainer field will be set to Ubuntu Developers <ubuntu-devel-discuss@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 

Previous rules

These rules were amended in May 2009. The previous rules modified the Maintainer field depending on the package's component:

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

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


CategorySpec
CategoryProcess

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