Debian Developers' Corner

The information on this page, while public, will primarily be of interest to Debian developers.

Basic

Debian Organization
Debian has many access points, and many people are involved. This page explains who to contact about a specific aspect of Debian, and tells you who might respond.
The People
Debian is made collaboratively by many people spread around the world. Packaging work is usually contributed by both Debian Developers (DD) (which are full members of the Debian project) and by Debian Maintainers (DM). Here you can find both the list of Debian Developers and the list of Debian Maintainers, together with the packages they maintain.

You can also see the world map of Debian developers and image galleries from various Debian events.

Joining Debian
The Debian Project consists of volunteers, and we are generally looking for new developers who have some technical knowledge, an interest in free software, and some free time. You too can help Debian, just see the page linked above.
Developer Database
The database contains basic data accessible to everybody, and the more private data available only for other developers to see. Use the SSL version to access it if you're going to log in.

Using the database, you can see the list of project machines, get any developer's GPG key, change your password or learn how to set up mail forwarding for your Debian account.

If you are going to be using one of the Debian machines make sure you have read the Debian Machine Usage Policies.

The Constitution
The document of utmost importance to the organization, describing the organizational structure for formal decision-making in the Project.
Voting Information
Everything you ever wanted to know on how we elect our leaders, choose our logos and in general, how we vote.
Releases
This is the list of old and current releases, some of which have detailed information on separate web pages.

You can also go directly to the current stable release and testing distribution web pages.

Different Architectures
Debian runs on many kinds of computers (Intel-compatible was just the first kind), and maintainers of our ‘ports’ have some useful web pages. Take a look, maybe you'll want to get another weirdly named piece of metal for yourself.

Packaging

Debian Policy Manual
This manual describes the policy requirements for the Debian distribution. This includes the structure and contents of the Debian archive, several design issues of the operating system, as well as technical requirements that each package must satisfy to be included in the distribution.

In short, you need to read it.

There are several documents related to the Policy that you might be interested in, such as:

  • Filesystem Hierarchy Standard (FHS)
    The FHS is a list of directories (or files) where things have to be put, and compatibility with it is required by Policy 3.x.
  • List of build-essential packages
    The build-essential packages are packages you are expected to have before you try to build any package, or a set of packages that you don't have to include in your package's Build-Depends line.
  • Menu system
    Programs that have an interface that need not be passed any special command line arguments for normal operation should have a menu entry registered. Check the menu system documentation, too.
  • Emacs policy
    The packages related to Emacs are expected to abide by their own sub-policy document.
  • Java policy
    The proposed equivalent for the above, for Java-related packages.
  • Perl policy
    A sub-policy that covers everything regarding Perl packaging.
  • Python policy
    A proposed sub-policy that covers everything regarding Python packaging.
  • Debian CLI Policy
    Basic policies regarding packaging Mono, other CLRs and CLI based applications and libraries
  • Debconf specification
    The specification to the configuration management subsystem "debconf".
  • Spelling dictionaries and tools policy
    Sub-policy for ispell / myspell dictionaries and word lists.
  • Webapps Policy Manual (draft)
    Sub-policy for web-based applications.
  • PHP Policy (draft)
    Packaging standards of PHP.
  • Database Application Policy (draft)
    A set of guidelines and best practices for database application packages.
  • Tcl/Tk Policy (draft)
    Sub-policy that covers everything regarding Tcl/Tk packaging.
  • Debian policy for Ada
    Sub-policy that covers everything regarding Ada packaging.

Take a look at proposed updates to Policy, too.

Note that the old Packaging Manual has mostly been integrated into the recent versions of the Policy Manual.

Developer's Reference
The purpose of this document is to provide an overview of the recommended procedures and the available resources for Debian developers. Another must-read.
New Maintainers' Guide
This document describes building of a Debian package in common language, and is well covered with working examples. If you are a wannabe developer (packager), you will most definitely want to read this.

Work in progress

The testing distribution
The ‘testing’ distribution is where you need to get your packages in order for them to be considered for releasing next time Debian makes a release.
Release Critical Bugs
This is a list of bugs which may cause a package to be removed from the "testing" distribution, or in some cases even cause a delay in releasing the distribution. Bug reports with a severity higher than or equal to ‘serious’ qualify for the list -- be sure to fix any such bugs against your packages as soon as you can.

Also, take a look at the list of bugs that are more than two years old, and help us fix them.

The Bug Tracking System
The Debian Bug Tracking System (BTS) itself, for reporting, discussing, and fixing bugs. Reports of problems in almost any part of Debian are welcome here. The BTS is useful for both users and developers.
Package overviews, from a developer's point of view
The package information and package tracking web pages provide collections of valuable information to maintainers.
The Package Tracking System
For developers that wish to keep up-to-date with other packages, the package tracking system allows them to subscribe (through email) to a service that will send them copies of BTS mails and notifications for uploads and installations concerning the packages subscribed to.
Packages that need help
Work-Needing and Prospective Packages, WNPP for short, is a list of Debian packages in need of new maintainers, and also the packages that have yet to be included in Debian. Check it out if you want to create, adopt or orphan packages.
Incoming system
New packages are uploaded into the "Incoming" system on the internal archive servers. Accepted packages are almost immediately available via HTTP, and propagated to mirrors four times a day.
Note: Due to the nature of Incoming, we do not recommend mirroring it.
Lintian reports
Lintian is a program that checks whether a package conforms to the Policy. You should use it before every upload; there are reports on the aforementioned page about every package in the distribution.
Help Debian
The Debian wiki gathers advice for developers and other contributors.
Experimental distribution
The experimental distribution is used as a temporary staging area for highly experimental software. Use the packages from experimental only if you already know how to use unstable.

Miscellaneous

Converting PGP keys to GPG:
There is information on this in the developers' reference. You can get some more useful information on signing a GPG key with a PGP key from the /usr/share/doc/debian-keyring/README.gz file in the debian-keyring package.

Assorted links:

Here are some interesting external links: