Packages affected: ALL
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.
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.
- 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.
Handling of the Maintainer field for source and binary packages in Ubuntu, modified and unmodified relative to Debian
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:
[ ] 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 [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:
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 <email@example.com>
If the package is in universe or multiverse, the Maintainer field will be set to Ubuntu MOTU Developers <firstname.lastname@example.org>
If the Maintainer field is modified, the old value will be saved in a field named XSBC-Original-Maintainer
We will automatically mangle the headers during the package build process. AdamConrad has preliminary code for this.
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.
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
Derivatives other than Ubuntu should adhere to the same standard, and Debian should generalize its statement to apply to all Derivatives, not only Ubuntu.
- Binary packages:
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
should be empty. Likewise for universe, multiverse, etc. and other architectures.
- Source packages:
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
should be empty. Likewise for universe, multiverse, etc.
Trying to dpkg-buildpackage -S a source package with Maintainer: Martin Pitt <email@example.com> and a version number that contains ubuntu fails with:
dpkg-source: error: Version number suggests Ubuntu changes, but Maintainer: does not have Ubuntu address