Debian policy manual - chapter 6
Procedure - how to participate in the Debian project


6.1 Before you start work on a package

So, you've read all the documentation, you understand what everything in the hello example package is for, and you're about to Debianise your favourite package. How do you actually become a Debian developer so that your work can be incorporated into the Project?

Firstly, subscribe to debian-devel if you haven't already. Send the word subscribe in the Subject of a mail to debian-devel-REQUEST@lists.debian.org. In case of problems contact the list administrator at listmaster@lists.debian.org.

You should to subscribe and lurk for a bit before doing any coding, and you should post about your intentions to work on something to avoid duplicated effort.

If you do not have a PGP key yet generate one. You should probably read the PGP manual, as it has much important information which is critical to its security. Many more security failures are due to human error than to software failure or high-powered spy techniques.

Due to export restrictions by the United States government some Debian packages, including PGP, have been moved to an ftp site outside of the United States. You can find the current locations of those packages on ftp.debian.org in the /pub/debian/README.non-US file.

If you live in a country where use of cryptography even for authentication is forbidden then please contact us so we can make special arrangements. This does not apply in France, where I believe only encryption and not authentication is forbidden.


6.2 Uploading your first Debian package

When you have your package ready to be uploaded you must send a message to new-maintainer@debian.org.

The message should say what you've done and who you are, and should ask for an account on master and to be subscribed to debian-private (the developers-only mailing list). It should contain your PGP key (extracted using pgp -kxa) for the database of keys which is shipped with dpkg.

When you have your personal account on master log in via ftp and transfer the files to /home/Debian/ftp/private/project/Incoming. You cannot upload to Incoming on master using anonymous FTP, you must use your user-name and password.

You can also upload files to Incoming via a cron-driven upload queue in Europe on ftp.chiark.greenend.org.uk. For details connect to chiark using anonymous FTP and read /pub/debian/private/project/README.how-to-upload.


6.3 Package Maintainer Changes

Periodically, a listing of packages in need of new maintainers will be sent to the debian-devel list. This list is also available at ftp.debian.org in /debian/doc/package-developer/prospective-packages.txt. If you wish to take over maintenance of any of those packages, or if you can no longer maintain the packages you have, or if you simply want to know if anyone is working on a new package, send a message to sr1@inf.tu-dresden.de.

If you take over an old package, you probably want to be listed as the package's official maintainer in the bug system. This will happen automatically once you upload a new version with an updated Maintainer: field. If you do not expect to upload a new version for a while, send an email to override-change@debian.org so that bug reports will go to you.


6.4 Upload handling - .changes files

When a package is uploaded to the Debian FTP archive, it must be accompanied by a .changes file which gives directions for its handling. This is usually generated by dpkg-genchanges.

This file is a control file with the following fields:

All of them are mandatory for a Debian upload. See the list of control fields in the dpkg programmers' manual for the contents of these fields.

The first time a version is uploaded which corresponds to a particular upstream version the original source tarfile should be uploaded and included in the .changes file; subsequent times the very same tarfile should be used to build the new diffs and .dsc files, and it need not then be uploaded.

By default dpkg-genchanges and dpkg-buildpackage will include the original source tarfile if and only if the Debian revision part of the source version number is 0 or 1, indicating a new upstream version. This behaviour may be modified by using -sa to always include it or -sd to always leave it out.

If no original source is included in the upload then the original source tarfile used by dpkg-source when constructing the .dsc file and diff to be uploaded must be byte-for-byte identical with the one already in the archive. If there is some reason why this is not the case then the new version of the original source should be uploaded, possibly by using the -sa flag.


6.5 Upload handling - announcements

When a package is uploaded an announcement should be posted to one of the debian-changes lists. The announcement should give the (source) package name and version number, and a very short summary of the changes, in the Subject field, and should contain the PGP-signed .changes file. Some additional explanatory text may be added before the start of the .changes file.

If a package is released with the Distribution: set to stable, contrib, or non-free, the announcement is sent to debian-changes@lists.debian.org.

If a package is released with Distribution: set to unstable, experimental, or frozen (when present), the announcement should be posted to debian-devel-changes@lists.debian.org instead.


6.6 The Debian mailing lists

The mailing list server is at lists.debian.org. Mail debian-foo-REQUEST@lists.debian.org[10] with the word subscribe in the Subject to subscribe or unsubscribe to unsubscribe.

When replying to messages on the mailing list, please do not send a carbon copy (CC - this does not mean `courtesy copy') to the original poster. Anyone who posts to a mailing list should read it to see the responses.

As ever on the net, please trim down the quoting of articles you're replying to. In general, please adhere to the usual conventions for posting messages.


Debian policy manual - Copyright ©1996 Ian Jackson.
Contents; abstract; next; back.
version 2.1.3.2 (dpkg 1.4.0.8), 5 May 1997
Ian Jackson ijackson@gnu.ai.mit.edu
revised: David A. Morris bweaver@debian.org
current maintainer: Christian Schwarz schwarz@debian.org