old-www/LDP/www.debian.org/doc/manuals/developers-reference/resources.html

1009 lines
76 KiB
HTML
Raw Permalink Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Chapter 4. Resources for Debian Developers</title><meta name="generator" content="DocBook XSL Stylesheets V1.76.1" /><link rel="home" href="index.html" title="Debian Developer's Reference" /><link rel="up" href="index.html" title="Debian Developer's Reference" /><link rel="prev" href="developer-duties.html" title="Chapter 3. Debian Developer's Duties" /><link rel="next" href="pkgs.html" title="Chapter 5. Managing Packages" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter 4. Resources for Debian Developers</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="developer-duties.html">Prev</a> </td><th width="60%" align="center"> </th><td width="20%" align="right"> <a accesskey="n" href="pkgs.html">Next</a></td></tr></table><hr /></div><div class="chapter" title="Chapter 4. Resources for Debian Developers"><div class="titlepage"><div><div><h2 class="title"><a id="resources"></a>Chapter 4. Resources for Debian Developers</h2></div></div></div><div class="toc"><p><strong>Table of Contents</strong></p><dl><dt><span class="section"><a href="resources.html#mailing-lists">4.1. Mailing lists</a></span></dt><dd><dl><dt><span class="section"><a href="resources.html#mailing-lists-rules">4.1.1. Basic rules for use</a></span></dt><dt><span class="section"><a href="resources.html#core-devel-mailing-lists">4.1.2. Core development mailing lists</a></span></dt><dt><span class="section"><a href="resources.html#mailing-lists-special">4.1.3. Special lists</a></span></dt><dt><span class="section"><a href="resources.html#mailing-lists-new">4.1.4. Requesting new development-related lists</a></span></dt></dl></dd><dt><span class="section"><a href="resources.html#irc-channels">4.2. IRC channels</a></span></dt><dt><span class="section"><a href="resources.html#doc-rsrcs">4.3. Documentation</a></span></dt><dt><span class="section"><a href="resources.html#server-machines">4.4. Debian machines</a></span></dt><dd><dl><dt><span class="section"><a href="resources.html#servers-bugs">4.4.1. The bugs server</a></span></dt><dt><span class="section"><a href="resources.html#servers-ftp-master">4.4.2. The ftp-master server</a></span></dt><dt><span class="section"><a href="resources.html#servers-www">4.4.3. The www-master server</a></span></dt><dt><span class="section"><a href="resources.html#servers-people">4.4.4. The people web server</a></span></dt><dt><span class="section"><a href="resources.html#servers-vcs">4.4.5. The VCS servers</a></span></dt><dt><span class="section"><a href="resources.html#dchroot">4.4.6. chroots to different distributions</a></span></dt></dl></dd><dt><span class="section"><a href="resources.html#devel-db">4.5. The Developers Database</a></span></dt><dt><span class="section"><a href="resources.html#archive">4.6. The Debian archive</a></span></dt><dd><dl><dt><span class="section"><a href="resources.html#archive-sections">4.6.1. Sections</a></span></dt><dt><span class="section"><a href="resources.html#s4.6.2">4.6.2. Architectures</a></span></dt><dt><span class="section"><a href="resources.html#s4.6.3">4.6.3. Packages</a></span></dt><dt><span class="section"><a href="resources.html#s4.6.4">4.6.4. Distributions</a></span></dt><dt><span class="section"><a href="resources.html#codenames">4.6.5. Release code names</a></span></dt></dl></dd><dt><span class="section"><a href="resources.html#mirrors">4.7. Debian mirrors</a></span></dt><dt><span class="section"><a href="resources.html#incoming-system">4.8. The Incoming system</a></span></dt><dt><span class="section"><a href="resources.html#pkg-info">4.9. Package information</a></span></dt><dd><dl><dt><span class="section"><a href="resources.html#pkg-info-web">4.9.1. On the web</a></span></dt><dt><span class="section"><a href="resources.html#dak-ls">4.9.2. The <span class="command"><strong>dak ls</strong></span> utility</a></span></dt></dl></dd><dt><span class="section"><a href="resources.html#pkg-tracking-system">4.10. The Package Tracking System</a></span></dt><dd><dl><dt><span class="section"><a href="resources.html#pts-commands">4.10.1. The PTS email interface</a></span></dt><dt><span class="section"><a href="resources.html#pts-mail-filtering">4.10.2. Filtering PTS mails</a></span></dt><dt><span class="section"><a href="resources.html#pts-vcs-commit">4.10.3. Forwarding VCS commits in the PTS</a></span></dt><dt><span class="section"><a href="resources.html#pts-web">4.10.4. The PTS web interface</a></span></dt></dl></dd><dt><span class="section"><a href="resources.html#ddpo">4.11. Developer's packages overview</a></span></dt><dt><span class="section"><a href="resources.html#alioth">4.12. Debian's FusionForge installation: Alioth</a></span></dt><dt><span class="section"><a href="resources.html#developer-misc">4.13. Goodies for Developers</a></span></dt><dd><dl><dt><span class="section"><a href="resources.html#lwn">4.13.1. LWN Subscriptions</a></span></dt><dt><span class="section"><a href="resources.html#gandi">4.13.2. Gandi.net Hosting Discount</a></span></dt></dl></dd></dl></div><p>
In this chapter you will find a very brief road map of the Debian mailing
lists, the Debian machines which may be available to you as a developer, and
all the other resources that are available to help you in your maintainer work.
</p><div class="section" title="4.1. Mailing lists"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="mailing-lists"></a>4.1. Mailing lists</h2></div></div></div><p>
Much of the conversation between Debian developers (and users) is managed
through a wide array of mailing lists we host at <code class="literal"><a class="ulink" href="http://lists.debian.org/" target="_top">lists.debian.org</a></code>.
To find out more on how to subscribe or unsubscribe, how to post and how not to
post, where to find old posts and how to search them, how to contact the list
maintainers and see various other information about the mailing lists, please
read <a class="ulink" href="http://www.debian.org/MailingLists/" target="_top">http://www.debian.org/MailingLists/</a>. This section
will only cover aspects of mailing lists that are of particular interest to
developers.
</p><div class="section" title="4.1.1. Basic rules for use"><div class="titlepage"><div><div><h3 class="title"><a id="mailing-lists-rules"></a>4.1.1. Basic rules for use</h3></div></div></div><p>
When replying to messages on the mailing list, please do not send a carbon copy
(<code class="literal">CC</code>) to the original poster unless they explicitly request
to be copied. Anyone who posts to a mailing list should read it to see the
responses.
</p><p>
Cross-posting (sending the same message to multiple lists) is discouraged. 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.
</p><p>
Please read the <a class="ulink" href="http://www.debian.org/MailingLists/#codeofconduct" target="_top">code of conduct</a>
for more information. The <a class="ulink" href="http://people.debian.org/~enrico/dcg/" target="_top">Debian Community
Guidelines</a> are also worth reading.
</p></div><div class="section" title="4.1.2. Core development mailing lists"><div class="titlepage"><div><div><h3 class="title"><a id="core-devel-mailing-lists"></a>4.1.2. Core development mailing lists</h3></div></div></div><p>
The core Debian mailing lists that developers should use are:
</p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>
<code class="email">&lt;<a class="email" href="mailto:debian-devel-announce@lists.debian.org">debian-devel-announce@lists.debian.org</a>&gt;</code>, used to announce important
things to developers. All developers are expected to be subscribed to this
list.
</p></li><li class="listitem"><p>
<code class="email">&lt;<a class="email" href="mailto:debian-devel@lists.debian.org">debian-devel@lists.debian.org</a>&gt;</code>, used to discuss various development
related technical issues.
</p></li><li class="listitem"><p>
<code class="email">&lt;<a class="email" href="mailto:debian-policy@lists.debian.org">debian-policy@lists.debian.org</a>&gt;</code>, where the Debian Policy is discussed
and voted on.
</p></li><li class="listitem"><p>
<code class="email">&lt;<a class="email" href="mailto:debian-project@lists.debian.org">debian-project@lists.debian.org</a>&gt;</code>, used to discuss various non-technical
issues related to the project.
</p></li></ul></div><p>
There are other mailing lists available for a variety of special topics; see
<a class="ulink" href="http://lists.debian.org/" target="_top">http://lists.debian.org/</a> for a list.
</p></div><div class="section" title="4.1.3. Special lists"><div class="titlepage"><div><div><h3 class="title"><a id="mailing-lists-special"></a>4.1.3. Special lists</h3></div></div></div><p>
<code class="email">&lt;<a class="email" href="mailto:debian-private@lists.debian.org">debian-private@lists.debian.org</a>&gt;</code> is a special mailing list for private
discussions amongst Debian developers. It is meant to be used for posts which
for whatever reason should not be published publicly. As such, it is a low
volume list, and users are urged not to use
<code class="email">&lt;<a class="email" href="mailto:debian-private@lists.debian.org">debian-private@lists.debian.org</a>&gt;</code> unless it is really necessary.
Moreover, do <span class="emphasis"><em>not</em></span> forward email from that list to anyone.
Archives of this list are not available on the web for obvious reasons, but you
can see them using your shell account on <code class="literal">master.debian.org</code>
and looking in the <code class="filename">~debian/archive/debian-private/</code>
directory.
</p><p>
<code class="email">&lt;<a class="email" href="mailto:debian-email@lists.debian.org">debian-email@lists.debian.org</a>&gt;</code> is a special mailing list used as a
grab-bag for Debian related correspondence such as contacting upstream authors
about licenses, bugs, etc. or discussing the project with others where it
might be useful to have the discussion archived somewhere.
</p></div><div class="section" title="4.1.4. Requesting new development-related lists"><div class="titlepage"><div><div><h3 class="title"><a id="mailing-lists-new"></a>4.1.4. Requesting new development-related lists</h3></div></div></div><p>
Before requesting a mailing list that relates to the development of a package
(or a small group of related packages), please consider if using an alias (via
a .forward-aliasname file on master.debian.org, which translates into a
reasonably nice <em class="replaceable"><code>you-aliasname@debian.org</code></em> address) or
a self-managed mailing list on <a class="link" href="resources.html#alioth" title="4.12. Debian's FusionForge installation: Alioth">Alioth</a> is
more appropriate.
</p><p>
If you decide that a regular mailing list on lists.debian.org is really what
you want, go ahead and fill in a request, following <a class="ulink" href="http://www.debian.org/MailingLists/HOWTO_start_list" target="_top">the HOWTO</a>.
</p></div></div><div class="section" title="4.2. IRC channels"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="irc-channels"></a>4.2. IRC channels</h2></div></div></div><p>
Several IRC channels are dedicated to Debian's development. They are mainly
hosted on the <a class="ulink" href="http://www.oftc.net/oftc/" target="_top">Open and free technology
community (OFTC)</a> network. The <code class="literal">irc.debian.org</code> DNS
entry is an alias to <code class="literal">irc.oftc.net</code>.
</p><p>
The main channel for Debian in general is <code class="literal">#debian</code>. This
is a large, general-purpose channel where users can find recent news in the
topic and served by bots. <code class="literal">#debian</code> is for English
speakers; there are also <code class="literal">#debian.de</code>,
<code class="literal">#debian-fr</code>, <code class="literal">#debian-br</code> and other
similarly named channels for speakers of other languages.
</p><p>
The main channel for Debian development is <code class="literal">#debian-devel</code>.
It is a very active channel; it will typically have a minimum of 150 people
at any time of day.
It's a channel for people who work on Debian, it's not a support channel
(there's <code class="literal">#debian</code> for that). It is however open to anyone
who wants to lurk (and learn). Its topic is commonly full of interesting
information for developers.
</p><p>
Since <code class="literal">#debian-devel</code> is an open channel, you should not
speak there of issues that are discussed in
<code class="email">&lt;<a class="email" href="mailto:debian-private@lists.debian.org">debian-private@lists.debian.org</a>&gt;</code>. There's another channel for this
purpose, it's called <code class="literal">#debian-private</code> and it's protected by
a key. This key is available at
<code class="filename">master.debian.org:~debian/misc/irc-password</code>.
</p><p>
There are other additional channels dedicated to specific subjects.
<code class="literal">#debian-bugs</code> is used for coordinating bug squashing
parties. <code class="literal">#debian-boot</code> is used to coordinate the work on
the debian-installer. <code class="literal">#debian-doc</code> is occasionally used to
talk about documentation, like the document you are reading. Other channels
are dedicated to an architecture or a set of packages:
<code class="literal">#debian-kde</code>, <code class="literal">#debian-dpkg</code>,
<code class="literal">#debian-jr</code>, <code class="literal">#debian-edu</code>,
<code class="literal">#debian-oo</code> (OpenOffice.org package)...
</p><p>
Some non-English developers' channels exist as well, for example
<code class="literal">#debian-devel-fr</code> for French speaking people interested in
Debian's development.
</p><p>
Channels dedicated to Debian also exist on other IRC networks, notably on the
<a class="ulink" href="http://www.freenode.net/" target="_top">freenode</a> IRC network,
which was pointed at by the <code class="literal">irc.debian.org</code> alias until 4th
June 2006.
</p><p>
To get a cloak on freenode, you send Jörg Jaspert &lt;joerg@debian.org&gt; a
signed mail where you tell what your nick is. Put cloak somewhere in the
Subject: header. The nick should be registered: <a class="ulink" href="http://freenode.net/faq.shtml#nicksetup" target="_top">Nick Setup Page</a>. The
mail needs to be signed by a key in the Debian keyring. Please see <a class="ulink" href="http://freenode.net/faq.shtml#projectcloak" target="_top">Freenodes
documentation</a> for more information about cloaks.
</p></div><div class="section" title="4.3. Documentation"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="doc-rsrcs"></a>4.3. Documentation</h2></div></div></div><p>
This document contains a lot of information which is useful to Debian
developers, but it cannot contain everything. Most of the other interesting
documents are linked from <a class="ulink" href="http://www.debian.org/devel/" target="_top">The
Developers' Corner</a>. Take the time to browse all the links, you will
learn many more things.
</p></div><div class="section" title="4.4. Debian machines"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="server-machines"></a>4.4. Debian machines</h2></div></div></div><p>
Debian has several computers working as servers, most of which serve critical
functions in the Debian project. Most of the machines are used for porting
activities, and they all have a permanent connection to the Internet.
</p><p>
Some of the machines are available for individual developers to use, as long as
the developers follow the rules set forth in the <a class="ulink" href="http://www.debian.org/devel/dmup" target="_top">Debian Machine Usage Policies</a>.
</p><p>
Generally speaking, you can use these machines for Debian-related purposes as
you see fit. Please be kind to system administrators, and do not use up tons
and tons of disk space, network bandwidth, or CPU without first getting the
approval of the system administrators. Usually these machines are run by
volunteers.
</p><p>
Please take care to protect your Debian passwords and SSH keys installed on
Debian machines. Avoid login or upload methods which send passwords over the
Internet in the clear, such as Telnet, FTP, POP etc.
</p><p>
Please do not put any material that doesn't relate to Debian on the Debian
servers, unless you have prior permission.
</p><p>
The current list of Debian machines is available at <a class="ulink" href="http://db.debian.org/machines.cgi" target="_top">http://db.debian.org/machines.cgi</a>. That web page contains
machine names, contact information, information about who can log in, SSH keys
etc.
</p><p>
If you have a problem with the operation of a Debian server, and you think that
the system operators need to be notified of this problem, you can check
the list of open issues in the DSA queue of our request tracker at <a class="ulink" href="https://rt.debian.org/" target="_top">https://rt.debian.org/</a> (you can login with user "debian", its password is available at
<code class="filename">master.debian.org:~debian/misc/rt-password</code>).
To report a new problem, simply send a mail to <code class="email">&lt;<a class="email" href="mailto:admin@rt.debian.org">admin@rt.debian.org</a>&gt;</code> and make
sure to put the string "Debian RT" somewhere in the subject.
</p><p>
If you have a problem with a certain service, not related to the system
administration (such as packages to be removed from the archive, suggestions
for the web site, etc.), generally you'll report a bug against a
``pseudo-package''. See <a class="xref" href="beyond-pkging.html#submit-bug" title="7.1. Bug reporting">Section 7.1, “Bug reporting”</a> for information on how to
submit bugs.
</p><p>
Some of the core servers are restricted, but the information from there is
mirrored to another server.
</p><div class="section" title="4.4.1. The bugs server"><div class="titlepage"><div><div><h3 class="title"><a id="servers-bugs"></a>4.4.1. The bugs server</h3></div></div></div><p>
<code class="literal">bugs.debian.org</code> is the canonical location for
the Bug Tracking System (BTS).
</p><p>
If you plan on doing some statistical analysis or processing of Debian bugs,
this would be the place to do it. Please describe your plans on
<code class="email">&lt;<a class="email" href="mailto:debian-devel@lists.debian.org">debian-devel@lists.debian.org</a>&gt;</code> before implementing anything, however, to
reduce unnecessary duplication of effort or wasted processing time.
</p></div><div class="section" title="4.4.2. The ftp-master server"><div class="titlepage"><div><div><h3 class="title"><a id="servers-ftp-master"></a>4.4.2. The ftp-master server</h3></div></div></div><p>
The <code class="literal">ftp-master.debian.org</code> server holds the canonical copy of
the Debian archive. Generally, package uploaded to ftp.upload.debian.org
end up on this server, see <a class="xref" href="pkgs.html#upload" title="5.6. Uploading a package">Section 5.6, “Uploading a package”</a>.
</p><p>
It is restricted; a mirror is available on <code class="literal">ries.debian.org</code>.
</p><p>
Problems with the Debian FTP archive generally need to be reported as bugs
against the <code class="systemitem">ftp.debian.org</code>
pseudo-package or an email to <code class="email">&lt;<a class="email" href="mailto:ftpmaster@debian.org">ftpmaster@debian.org</a>&gt;</code>, but also see
the procedures in <a class="xref" href="pkgs.html#archive-manip" title="5.9. Moving, removing, renaming, adopting, and orphaning packages">Section 5.9, “Moving, removing, renaming, adopting, and orphaning packages”</a>.
</p></div><div class="section" title="4.4.3. The www-master server"><div class="titlepage"><div><div><h3 class="title"><a id="servers-www"></a>4.4.3. The www-master server</h3></div></div></div><p>
The main web server is <code class="literal">www-master.debian.org</code>. It holds the
official web pages, the face of Debian for most newbies.
</p><p>
If you find a problem with the Debian web server, you should generally submit a
bug against the pseudo-package, <code class="systemitem">www.debian.org</code>. Remember to check whether or not
someone else has already reported the problem to the <a class="ulink" href="http://bugs.debian.org/www.debian.org" target="_top">Bug Tracking System</a>.
</p></div><div class="section" title="4.4.4. The people web server"><div class="titlepage"><div><div><h3 class="title"><a id="servers-people"></a>4.4.4. The people web server</h3></div></div></div><p>
<code class="literal">people.debian.org</code> is the server used for developers' own web
pages about anything related to Debian.
</p><p>
If you have some Debian-specific information which you want to serve on the
web, you can do this by putting material in the
<code class="filename">public_html</code> directory under your home directory on
<code class="literal">people.debian.org</code>. This will be accessible at the URL
<code class="literal">http://people.debian.org/~<em class="replaceable"><code>your-user-id</code></em>/</code>.
</p><p>
You should only use this particular location because it will be backed up,
whereas on other hosts it won't.
</p><p>
Usually the only reason to use a different host is when you need to publish
materials subject to the U.S. export restrictions, in which case you can use
one of the other servers located outside the United States.
</p><p>
Send mail to <code class="email">&lt;<a class="email" href="mailto:debian-devel@lists.debian.org">debian-devel@lists.debian.org</a>&gt;</code> if you have any questions.
</p></div><div class="section" title="4.4.5. The VCS servers"><div class="titlepage"><div><div><h3 class="title"><a id="servers-vcs"></a>4.4.5. The VCS servers</h3></div></div></div><p>
If you need to use a Version Control System for any of your Debian work,
you can use one of the existing repositories hosted on Alioth or you can
request a new project and ask for the VCS repository of your choice.
Alioth supports CVS (cvs.alioth.debian.org/cvs.debian.org), Subversion
(svn.debian.org), Arch (tla/baz, both on arch.debian.org), Bazaar
(bzr.debian.org), Darcs (darcs.debian.org), Mercurial (hg.debian.org) and Git
(git.debian.org). Checkout <a class="ulink" href="http://wiki.debian.org/Alioth/PackagingProject" target="_top">http://wiki.debian.org/Alioth/PackagingProject</a> if you plan
to maintain packages in a VCS repository. See <a class="xref" href="resources.html#alioth" title="4.12. Debian's FusionForge installation: Alioth">Section 4.12, “Debian's FusionForge installation: Alioth”</a> for
information on the services provided by Alioth.
</p></div><div class="section" title="4.4.6. chroots to different distributions"><div class="titlepage"><div><div><h3 class="title"><a id="dchroot"></a>4.4.6. chroots to different distributions</h3></div></div></div><p>
On some machines, there are chroots to different distributions available. You
can use them like this:
</p><pre class="screen">
vore$ dchroot unstable
Executing shell in chroot: /org/vore.debian.org/chroots/user/unstable
</pre><p>
In all chroots, the normal user home directories are available. You can find
out which chroots are available via
<a class="ulink" href="http://db.debian.org/machines.cgi" target="_top">http://db.debian.org/machines.cgi</a>.
</p></div></div><div class="section" title="4.5. The Developers Database"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="devel-db"></a>4.5. The Developers Database</h2></div></div></div><p>
The Developers Database, at <a class="ulink" href="https://db.debian.org/" target="_top">https://db.debian.org/</a>, is an LDAP directory for
managing Debian developer attributes. You can use this resource to search the
list of Debian developers. Part of this information is also available through
the finger service on Debian servers, try <span class="command"><strong>finger
yourlogin@db.debian.org</strong></span> to see what it reports.
</p><p>
Developers can <a class="ulink" href="https://db.debian.org/login.html" target="_top">log into the
database</a> to change various information about themselves, such as:
</p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>
forwarding address for your debian.org email
</p></li><li class="listitem"><p>
subscription to debian-private
</p></li><li class="listitem"><p>
whether you are on vacation
</p></li><li class="listitem"><p>
personal information such as your address, country, the latitude and longitude
of the place where you live for use in <a class="ulink" href="http://www.debian.org/devel/developers.loc" target="_top">the world map of Debian
developers</a>, phone and fax numbers, IRC nickname and web page
</p></li><li class="listitem"><p>
password and preferred shell on Debian Project machines
</p></li></ul></div><p>
Most of the information is not accessible to the public, naturally. For more
information please read the online documentation that you can find at <a class="ulink" href="http://db.debian.org/doc-general.html" target="_top">http://db.debian.org/doc-general.html</a>.
</p><p>
Developers can also submit their SSH keys to be used for authorization on the
official Debian machines, and even add new *.debian.net DNS entries. Those
features are documented at <a class="ulink" href="http://db.debian.org/doc-mail.html" target="_top">http://db.debian.org/doc-mail.html</a>.
</p></div><div class="section" title="4.6. The Debian archive"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="archive"></a>4.6. The Debian archive</h2></div></div></div><p>
The Debian GNU/Linux distribution consists of a lot of packages
(currently around 15000 source packages) and a few additional
files (such as documentation and installation disk images).
</p><p>
Here is an example directory tree of a complete Debian archive:
</p><pre class="screen">dists/stable/main/
dists/stable/main/binary-amd64/
dists/stable/main/binary-armel/
dists/stable/main/binary-i386/
...
dists/stable/main/source/
...
dists/stable/main/disks-amd64/
dists/stable/main/disks-armel/
dists/stable/main/disks-i386/
...
dists/stable/contrib/
dists/stable/contrib/binary-amd64/
dists/stable/contrib/binary-armel/
dists/stable/contrib/binary-i386/
...
dists/stable/contrib/source/
dists/stable/non-free/
dists/stable/non-free/binary-amd64/
dists/stable/non-free/binary-armel/
dists/stable/non-free/binary-i386/
...
dists/stable/non-free/source/
dists/testing/
dists/testing/main/
...
dists/testing/contrib/
...
dists/testing/non-free/
...
dists/unstable
dists/unstable/main/
...
dists/unstable/contrib/
...
dists/unstable/non-free/
...
pool/
pool/main/a/
pool/main/a/apt/
...
pool/main/b/
pool/main/b/bash/
...
pool/main/liba/
pool/main/liba/libalias-perl/
...
pool/main/m/
pool/main/m/mailx/
...
pool/non-free/f/
pool/non-free/f/firmware-nonfree/
...</pre><p>
As you can see, the top-level directory contains two directories,
<code class="filename">dists/</code> and <code class="filename">pool/</code>. The latter is a
“pool” in which the packages actually are, and which is handled by the
archive maintenance database and the accompanying programs. The former
contains the distributions, <code class="literal">stable</code>,
<code class="literal">testing</code> and <code class="literal">unstable</code>. The
<code class="filename">Packages</code> and <code class="filename">Sources</code> files in the
distribution subdirectories can reference files in the
<code class="filename">pool/</code> directory. The directory tree below each of the
distributions is arranged in an identical manner. What we describe below for
<code class="literal">stable</code> is equally applicable to the
<code class="literal">unstable</code> and <code class="literal">testing</code> distributions.
</p><p>
<code class="filename">dists/stable</code> contains three directories, namely
<code class="filename">main</code>, <code class="filename">contrib</code>, and
<code class="filename">non-free</code>.
</p><p>
In each of the areas, there is a directory for the source packages
(<code class="filename">source</code>) and a directory for each supported architecture
(<code class="filename">binary-i386</code>, <code class="filename">binary-amd64</code>, etc.).
</p><p>
The <code class="filename">main</code> area contains additional directories which hold
the disk images and some essential pieces of documentation required for
installing the Debian distribution on a specific architecture
(<code class="filename">disks-i386</code>, <code class="filename">disks-amd64</code>, etc.).
</p><div class="section" title="4.6.1. Sections"><div class="titlepage"><div><div><h3 class="title"><a id="archive-sections"></a>4.6.1. Sections</h3></div></div></div><p>
The <code class="literal">main</code> section of the Debian archive is what makes up
the <span class="strong"><strong>official Debian GNU/Linux distribution</strong></span>.
The <code class="literal">main</code> section is official because it fully complies
with all our guidelines. The other two sections do not, to different degrees;
as such, they are <span class="strong"><strong>not</strong></span> officially part of
Debian GNU/Linux.
</p><p>
Every package in the main section must fully comply with the <a class="ulink" href="http://www.debian.org/social_contract#guidelines" target="_top">Debian Free Software
Guidelines</a> (DFSG) and with all other policy requirements as described
in the <a class="ulink" href="http://www.debian.org/doc/debian-policy/" target="_top">Debian Policy
Manual</a>. The DFSG is our definition of “free software.” Check out
the Debian Policy Manual for details.
</p><p>
Packages in the <code class="literal">contrib</code> section have to comply with the
DFSG, but may fail other requirements. For instance, they may depend on
non-free packages.
</p><p>
Packages which do not conform to the DFSG are placed in the
<code class="literal">non-free</code> section. These packages are not considered as
part of the Debian distribution, though we enable their use, and we provide
infrastructure (such as our bug-tracking system and mailing lists) for non-free
software packages.
</p><p>
The <a class="ulink" href="http://www.debian.org/doc/debian-policy/" target="_top">Debian Policy
Manual</a> contains a more exact definition of the three sections. The
above discussion is just an introduction.
</p><p>
The separation of the three sections at the top-level of the archive is
important for all people who want to distribute Debian, either via FTP servers
on the Internet or on CD-ROMs: by distributing only the
<code class="literal">main</code> and <code class="literal">contrib</code> sections, one can
avoid any legal risks. Some packages in the <code class="literal">non-free</code>
section do not allow commercial distribution, for example.
</p><p>
On the other hand, a CD-ROM vendor could easily check the individual package
licenses of the packages in <code class="literal">non-free</code> and include as many
on the CD-ROMs as it's allowed to. (Since this varies greatly from vendor to
vendor, this job can't be done by the Debian developers.)
</p><p>
Note that the term section is also used to refer to categories which simplify
the organization and browsing of available packages, e.g.
<code class="literal">admin</code>, <code class="literal">net</code>,
<code class="literal">utils</code> etc. Once upon a time, these sections (subsections,
rather) existed in the form of subdirectories within the Debian archive.
Nowadays, these exist only in the Section header fields of packages.
</p></div><div class="section" title="4.6.2. Architectures"><div class="titlepage"><div><div><h3 class="title"><a id="s4.6.2"></a>4.6.2. Architectures</h3></div></div></div><p>
In the first days, the Linux kernel was only available for Intel i386 (or
greater) platforms, and so was Debian. But as Linux became more and more
popular, the kernel was ported to other architectures and Debian started
to support them. And as if supporting so much hardware was not enough,
Debian decided to build some ports based on other Unix kernels, like
<code class="literal">hurd</code> and <code class="literal">kfreebsd</code>.
</p><p>
Debian GNU/Linux 1.3 was only available as <code class="literal">i386</code>. Debian
2.0 shipped for <code class="literal">i386</code> and <code class="literal">m68k</code>
architectures. Debian 2.1 shipped for the <code class="literal">i386</code>,
<code class="literal">m68k</code>, <code class="literal">alpha</code>, and
<code class="literal">sparc</code> architectures. Since then Debian has grown hugely.
Debian 6 supports a total of nine Linux architectures (<code class="literal">amd64</code>,
<code class="literal">armel</code>, <code class="literal">i386</code>,
<code class="literal">ia64</code>, <code class="literal">mips</code>,
<code class="literal">mipsel</code>, <code class="literal">powerpc</code>,
<code class="literal">s390</code>, <code class="literal">sparc</code>) and two kFreeBSD architectures
(<code class="literal">kfreebsd-i386</code> and <code class="literal">kfreebsd-amd64</code>).
</p><p>
Information for developers and users about the specific ports are available at
the <a class="ulink" href="http://www.debian.org/ports/" target="_top">Debian Ports web pages</a>.
</p></div><div class="section" title="4.6.3. Packages"><div class="titlepage"><div><div><h3 class="title"><a id="s4.6.3"></a>4.6.3. Packages</h3></div></div></div><p>
There are two types of Debian packages, namely <code class="literal">source</code> and
<code class="literal">binary</code> packages.
</p><p>
Depending on the format of the source package, it will consist
of one or more files in addition to the mandatory <code class="filename">.dsc</code>
file:
</p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>with format “1.0”, it has either a <code class="filename">.tar.gz</code>
file or both an <code class="filename">.orig.tar.gz</code> and a
<code class="filename">.diff.gz</code> file;</p></li><li class="listitem"><p>with format “3.0 (quilt)”, it has a mandatory
<code class="filename">.orig.tar.{gz,bz2,xz}</code> upstream tarball,
multiple optional <code class="filename">.orig-<em class="replaceable"><code>component</code></em>.tar.{gz,bz2,xz}</code>
additional upstream tarballs and a mandatory
<code class="filename">debian.tar.{gz,bz2,xz}</code> debian
tarball;</p></li><li class="listitem"><p>with format “3.0 (native)”, it has only
a single <code class="filename">.tar.{gz,bz2,xz}</code> tarball.</p></li></ul></div><p>
</p><p>
If a package is developed specially for Debian and is not distributed
outside of Debian, there is just one
<code class="filename">.tar.{gz,bz2,xz}</code> file which contains the sources of
the program, it's called a “native” source package. If a package is
distributed elsewhere too, the
<code class="filename">.orig.tar.{gz,bz2,xz}</code> file stores the so-called
<code class="literal">upstream source code</code>, that is the source code that's
distributed by the <code class="literal">upstream maintainer</code> (often the
author of the software). In this case, the <code class="filename">.diff.gz</code>
or the <code class="filename">debian.tar.{gz,bz2,xz}</code> contains the changes
made by the Debian maintainer.
</p><p>
The <code class="filename">.dsc</code> file lists all the files in the source package
together with checksums (<span class="command"><strong>md5sums</strong></span>) and some additional info
about the package (maintainer, version, etc.).
</p></div><div class="section" title="4.6.4. Distributions"><div class="titlepage"><div><div><h3 class="title"><a id="s4.6.4"></a>4.6.4. Distributions</h3></div></div></div><p>
The directory system described in the previous chapter is itself contained
within <code class="literal">distribution directories</code>. Each distribution is
actually contained in the <code class="filename">pool</code> directory in the top-level
of the Debian archive itself.
</p><p>
To summarize, the Debian archive has a root directory within an FTP server.
For instance, at the mirror site, <code class="literal">ftp.us.debian.org</code>, the
Debian archive itself is contained in <a class="ulink" href="ftp://ftp.us.debian.org/debian" target="_top">/debian</a>, which is a common
location (another is <code class="filename">/pub/debian</code>).
</p><p>
A distribution comprises Debian source and binary packages, and the respective
<code class="filename">Sources</code> and <code class="filename">Packages</code> index files,
containing the header information from all those packages. The former are kept
in the <code class="filename">pool/</code> directory, while the latter are kept in the
<code class="filename">dists/</code> directory of the archive (for backwards
compatibility).
</p><div class="section" title="4.6.4.1. Stable, testing, and unstable"><div class="titlepage"><div><div><h4 class="title"><a id="sec-dists"></a>4.6.4.1. Stable, testing, and unstable</h4></div></div></div><p>
There are always distributions called <code class="literal">stable</code> (residing in
<code class="filename">dists/stable</code>), <code class="literal">testing</code> (residing in
<code class="filename">dists/testing</code>), and <code class="literal">unstable</code>
(residing in <code class="filename">dists/unstable</code>). This reflects the
development process of the Debian project.
</p><p>
Active development is done in the <code class="literal">unstable</code> distribution
(that's why this distribution is sometimes called the <code class="literal">development
distribution</code>). Every Debian developer can update his or her
packages in this distribution at any time. Thus, the contents of this
distribution change from day to day. Since no special effort is made to make
sure everything in this distribution is working properly, it is sometimes
literally unstable.
</p><p>
The <a class="link" href="pkgs.html#testing" title="5.13. The testing distribution">testing</a> distribution is generated
automatically by taking packages from <code class="literal">unstable</code> if they
satisfy certain criteria. Those criteria should ensure a good quality for
packages within <code class="literal">testing</code>. The update to
<code class="literal">testing</code> is launched twice each day, right after the new
packages have been installed. See <a class="xref" href="pkgs.html#testing" title="5.13. The testing distribution">Section 5.13, “The testing distribution”</a>.
</p><p>
After a period of development, once the release manager deems fit, the
<code class="literal">testing</code> distribution is frozen, meaning that the policies
which control how packages move from <code class="literal">unstable</code> to
<code class="literal">testing</code> are tightened. Packages which are too buggy are
removed. No changes are allowed into <code class="literal">testing</code> except for
bug fixes. After some time has elapsed, depending on progress, the
<code class="literal">testing</code> distribution is frozen even further. Details of
the handling of the testing distribution are published by the Release Team on
debian-devel-announce. After the open issues are solved to the satisfaction of
the Release Team, the distribution is released. Releasing means that
<code class="literal">testing</code> is renamed to <code class="literal">stable</code>, and a
new copy is created for the new <code class="literal">testing</code>, and the previous
<code class="literal">stable</code> is renamed to <code class="literal">oldstable</code> and
stays there until it is finally archived. On archiving, the contents are moved
to <code class="literal">archive.debian.org</code>.
</p><p>
This development cycle is based on the assumption that the
<code class="literal">unstable</code> distribution becomes <code class="literal">stable</code>
after passing a period of being in <code class="literal">testing</code>. Even once a
distribution is considered stable, a few bugs inevitably remain — that's why
the stable distribution is updated every now and then. However, these updates
are tested very carefully and have to be introduced into the archive
individually to reduce the risk of introducing new bugs. You can find proposed
additions to <code class="literal">stable</code> in the
<code class="filename">proposed-updates</code> directory. Those packages in
<code class="filename">proposed-updates</code> that pass muster are periodically moved
as a batch into the stable distribution and the revision level of the stable
distribution is incremented (e.g., 6.0 becomes 6.0.1, 5.0.7
becomes 5.0.8, and so forth). Please refer to
<a class="link" href="pkgs.html#upload-stable" title="5.5.1. Special case: uploads to the stable and oldstable distributions">uploads to the <code class="literal">stable</code>
distribution</a> for details.
</p><p>
Note that development under <code class="literal">unstable</code> continues during the
freeze period, since the <code class="literal">unstable</code> distribution remains in
place in parallel with <code class="literal">testing</code>.
</p></div><div class="section" title="4.6.4.2. More information about the testing distribution"><div class="titlepage"><div><div><h4 class="title"><a id="s4.6.4.2"></a>4.6.4.2. More information about the testing distribution</h4></div></div></div><p>
Packages are usually installed into the <code class="literal">testing</code> distribution
after they have undergone some degree of testing in <code class="literal">unstable</code>.
</p><p>
For more details, please see the <a class="link" href="pkgs.html#testing" title="5.13. The testing distribution">information about
the testing distribution</a>.
</p></div><div class="section" title="4.6.4.3. Experimental"><div class="titlepage"><div><div><h4 class="title"><a id="experimental"></a>4.6.4.3. Experimental</h4></div></div></div><p>
The <code class="literal">experimental</code> distribution is a special distribution.
It is not a full distribution in the same sense as <code class="literal">stable</code>,
<code class="literal">testing</code> and <code class="literal">unstable</code> are.
Instead, it is meant to be a temporary staging area for highly experimental
software where there's a good chance that the software could break your system,
or software that's just too unstable even for the <code class="literal">unstable</code>
distribution (but there is a reason to package it nevertheless). Users who
download and install packages from <code class="literal">experimental</code> are
expected to have been duly warned. In short, all bets are off for the
<code class="literal">experimental</code> distribution.
</p><p>
These are the <span class="citerefentry"><span class="refentrytitle">sources.list</span>(5)</span> lines for
<code class="literal">experimental</code>:
</p><pre class="programlisting">
deb http://ftp.<em class="replaceable"><code>xy</code></em>.debian.org/debian/ experimental main
deb-src http://ftp.<em class="replaceable"><code>xy</code></em>.debian.org/debian/ experimental main
</pre><p>
If there is a chance that the software could do grave damage to a system, it is
likely to be better to put it into <code class="literal">experimental</code>. For
instance, an experimental compressed file system should probably go into
<code class="literal">experimental</code>.
</p><p>
Whenever there is a new upstream version of a package that introduces new
features but breaks a lot of old ones, it should either not be uploaded, or be
uploaded to <code class="literal">experimental</code>. A new, beta, version of some
software which uses a completely different configuration can go into
<code class="literal">experimental</code>, at the maintainer's discretion. If you are
working on an incompatible or complex upgrade situation, you can also use
<code class="literal">experimental</code> as a staging area, so that testers can get
early access.
</p><p>
Some experimental software can still go into <code class="literal">unstable</code>,
with a few warnings in the description, but that isn't recommended because
packages from <code class="literal">unstable</code> are expected to propagate to
<code class="literal">testing</code> and thus to <code class="literal">stable</code>. You
should not be afraid to use <code class="literal">experimental</code> since it does not
cause any pain to the ftpmasters, the experimental packages are periodically
removed once you upload the package in <code class="literal">unstable</code> with a
higher version number.
</p><p>
New software which isn't likely to damage your system can go directly into
<code class="literal">unstable</code>.
</p><p>
An alternative to <code class="literal">experimental</code> is to use your personal web
space on <code class="literal">people.debian.org</code>.
</p></div></div><div class="section" title="4.6.5. Release code names"><div class="titlepage"><div><div><h3 class="title"><a id="codenames"></a>4.6.5. Release code names</h3></div></div></div><p>
Every released Debian distribution has a <code class="literal">code name</code>: Debian
1.1 is called <code class="literal">buzz</code>; Debian 1.2, <code class="literal">rex</code>;
Debian 1.3, <code class="literal">bo</code>; Debian 2.0, <code class="literal">hamm</code>;
Debian 2.1, <code class="literal">slink</code>; Debian 2.2, <code class="literal">potato</code>;
Debian 3.0, <code class="literal">woody</code>; Debian 3.1, <code class="literal">sarge</code>;
Debian 4.0, <code class="literal">etch</code>; Debian 5.0, <code class="literal">lenny</code>;
Debian 6.0, <code class="literal">squeeze</code>
and the next release will be called <code class="literal">wheezy</code>.
There is also a ``pseudo-distribution'', called
<code class="literal">sid</code>, which is the current <code class="literal">unstable</code>
distribution; since packages are moved from <code class="literal">unstable</code> to
<code class="literal">testing</code> as they approach stability, <code class="literal">sid</code>
itself is never released. As well as the usual contents of a Debian
distribution, <code class="literal">sid</code> contains packages for architectures which
are not yet officially supported or released by Debian. These architectures
are planned to be integrated into the mainstream distribution at some future
date.
</p><p>
Since Debian has an open development model (i.e., everyone can participate and
follow the development) even the <code class="literal">unstable</code> and <code class="literal">
testing</code> distributions are distributed to the Internet through the
Debian FTP and HTTP server network. Thus, if we had called the directory which
contains the release candidate version <code class="literal">testing</code>, then we
would have to rename it to <code class="literal">stable</code> when the version
is released, which would cause all FTP mirrors to re-retrieve the whole
distribution (which is quite large).
</p><p>
On the other hand, if we called the distribution directories
<code class="literal">Debian-x.y</code> from the beginning, people would think that
Debian release <code class="literal">x.y</code> is available. (This happened in the
past, where a CD-ROM vendor built a Debian 1.0 CD-ROM based on a pre-1.0
development version. That's the reason why the first official Debian release
was 1.1, and not 1.0.)
</p><p>
Thus, the names of the distribution directories in the archive are determined
by their code names and not their release status (e.g., `squeeze'). These names
stay the same during the development period and after the release; symbolic
links, which can be changed easily, indicate the currently released stable
distribution. That's why the real distribution directories use the
<code class="literal">code names</code>, while symbolic links for
<code class="literal">stable</code>, <code class="literal">testing</code>, and
<code class="literal">unstable</code> point to the appropriate release directories.
</p></div></div><div class="section" title="4.7. Debian mirrors"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="mirrors"></a>4.7. Debian mirrors</h2></div></div></div><p>
The various download archives and the web site have several mirrors available
in order to relieve our canonical servers from heavy load. In fact, some of
the canonical servers aren't public — a first tier of mirrors balances the
load instead. That way, users always access the mirrors and get used to using
them, which allows Debian to better spread its bandwidth requirements over
several servers and networks, and basically makes users avoid hammering on one
primary location. Note that the first tier of mirrors is as up-to-date as it
can be since they update when triggered from the internal sites (we call this
push mirroring).
</p><p>
All the information on Debian mirrors, including a list of the available public
FTP/HTTP servers, can be found at <a class="ulink" href="http://www.debian.org/mirror/" target="_top">http://www.debian.org/mirror/</a>. This useful page also
includes information and tools which can be helpful if you are interested in
setting up your own mirror, either for internal or public access.
</p><p>
Note that mirrors are generally run by third-parties who are interested in
helping Debian. As such, developers generally do not have accounts on these
machines.
</p></div><div class="section" title="4.8. The Incoming system"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="incoming-system"></a>4.8. The Incoming system</h2></div></div></div><p>
The Incoming system is responsible for collecting updated packages and
installing them in the Debian archive. It consists of a set of directories and
scripts that are installed on <code class="literal">ftp-master.debian.org</code>.
</p><p>
Packages are uploaded by all the maintainers into a directory called
<code class="filename">UploadQueue</code>. This directory is scanned every few minutes
by a daemon called <span class="command"><strong>queued</strong></span>,
<code class="filename">*.command</code>-files are executed, and remaining and correctly
signed <code class="filename">*.changes</code>-files are moved together with their
corresponding files to the <code class="filename">unchecked</code> directory. This
directory is not visible for most Developers, as ftp-master is restricted; it
is scanned every 15 minutes by the <span class="command"><strong>dak process-upload</strong></span> script,
which verifies the integrity of the uploaded packages and their cryptographic
signatures. If the package is considered ready to be installed, it is moved
into the <code class="filename">done</code> directory. If this is the first upload
of the package (or it has new binary packages), it is moved to the
<code class="filename">new</code> directory, where it waits for approval by the
ftpmasters. If the package contains files to be installed by hand it is moved
to the <code class="filename">byhand</code> directory, where it waits for manual
installation by the ftpmasters. Otherwise, if any error has been detected, the
package is refused and is moved to the <code class="filename">reject</code> directory.
</p><p>
Once the package is accepted, the system sends a confirmation mail to the
maintainer and closes all the bugs marked as fixed by the upload, and the
auto-builders may start recompiling it. The package is now publicly accessible
at <a class="ulink" href="http://incoming.debian.org/" target="_top">http://incoming.debian.org/</a> until it is really
installed in the Debian archive. This happens four times a day (and is also
called the `dinstall run' for historical reasons); the package is then removed
from incoming and installed in the pool along with all the other packages.
Once all the other updates (generating new <code class="filename">Packages</code> and
<code class="filename">Sources</code> index files for example) have been made, a special
script is called to ask all the primary mirrors to update themselves.
</p><p>
The archive maintenance software will also send the OpenPGP/GnuPG signed
<code class="filename">.changes</code> file that you uploaded to the appropriate mailing
lists. If a package is released with the <code class="literal">Distribution</code> set
to <code class="literal">stable</code>, the announcement is sent to
<code class="email">&lt;<a class="email" href="mailto:debian-changes@lists.debian.org">debian-changes@lists.debian.org</a>&gt;</code>. If a package is released with
<code class="literal">Distribution</code> set to <code class="literal">unstable</code> or
<code class="literal">experimental</code>, the announcement will be posted to
<code class="email">&lt;<a class="email" href="mailto:debian-devel-changes@lists.debian.org">debian-devel-changes@lists.debian.org</a>&gt;</code> instead.
</p><p>
Though ftp-master is restricted, a copy of the installation is available to all
developers on <code class="literal">ries.debian.org</code>.
</p></div><div class="section" title="4.9. Package information"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="pkg-info"></a>4.9. Package information</h2></div></div></div><div class="section" title="4.9.1. On the web"><div class="titlepage"><div><div><h3 class="title"><a id="pkg-info-web"></a>4.9.1. On the web</h3></div></div></div><p>
Each package has several dedicated web pages.
<code class="literal">http://packages.debian.org/<em class="replaceable"><code>package-name</code></em></code>
displays each version of the package available in the various distributions.
Each version links to a page which provides information, including the package
description, the dependencies, and package download links.
</p><p>
The bug tracking system tracks bugs for each package. You can view the bugs of
a given package at the URL
<code class="literal">http://bugs.debian.org/<em class="replaceable"><code>package-name</code></em></code>.
</p></div><div class="section" title="4.9.2. The dak ls utility"><div class="titlepage"><div><div><h3 class="title"><a id="dak-ls"></a>4.9.2. The <span class="command"><strong>dak ls</strong></span> utility</h3></div></div></div><p>
<span class="command"><strong>dak ls</strong></span> is part of the dak suite of tools, listing
available package versions for all known distributions and architectures.
The <span class="command"><strong>dak</strong></span> tool is available on
<code class="literal">ftp-master.debian.org</code>, and on the mirror on
<code class="literal">ries.debian.org</code>. It uses a single argument
corresponding to a package name. An example will explain it better:
</p><pre class="screen">
$ dak ls evince
evince | 0.1.5-2sarge1 | oldstable | source, alpha, arm, hppa, i386, ia64, m68k, mips, mipsel, powerpc, s390, sparc
evince | 0.4.0-5 | etch-m68k | source, m68k
evince | 0.4.0-5 | stable | source, alpha, amd64, arm, hppa, i386, ia64, mips, mipsel, powerpc, s390, sparc
evince | 2.20.2-1 | testing | source
evince | 2.20.2-1+b1 | testing | alpha, amd64, arm, armel, hppa, i386, ia64, mips, mipsel, powerpc, s390, sparc
evince | 2.22.2-1 | unstable | source, alpha, amd64, arm, armel, hppa, i386, ia64, m68k, mips, mipsel, powerpc, s390, sparc
</pre><p>
In this example, you can see that the version in <code class="literal">unstable</code>
differs from the version in <code class="literal">testing</code> and that there has
been a binary-only NMU of the package for all architectures. Each version
of the package has been recompiled on all architectures.
</p></div></div><div class="section" title="4.10. The Package Tracking System"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="pkg-tracking-system"></a>4.10. The Package Tracking System</h2></div></div></div><p>
The Package Tracking System (PTS) is an email-based tool to track the activity
of a source package. This really means that you can get the same emails that
the package maintainer gets, simply by subscribing to the package in the PTS.
</p><p>
Each email sent through the PTS is classified under one of the keywords listed
below. This will let you select the mails that you want to receive.
</p><p>
By default you will get:
</p><div class="variablelist"><dl><dt><span class="term"><code class="literal">bts</code></span></dt><dd><p>
All the bug reports and following discussions.
</p></dd><dt><span class="term"><code class="literal">bts-control</code></span></dt><dd><p>
The email notifications from <code class="email">&lt;<a class="email" href="mailto:control@bugs.debian.org">control@bugs.debian.org</a>&gt;</code> about bug
report status changes.
</p></dd><dt><span class="term"><code class="literal">upload-source</code></span></dt><dd><p>
The email notification from <span class="command"><strong>dak</strong></span> when an uploaded source
package is accepted.
</p></dd><dt><span class="term"><code class="literal">katie-other</code></span></dt><dd><p>
Other warning and error emails from <span class="command"><strong>dak</strong></span> (such as an
override disparity for the section and/or the priority field).
</p></dd><dt><span class="term"><code class="literal">buildd</code></span></dt><dd><p>
Build failures notifications sent by the network of build daemons, they contain
a pointer to the build logs for analysis.
</p></dd><dt><span class="term"><code class="literal">default</code></span></dt><dd><p>
Any non-automatic email sent to the PTS by people who wanted to contact the
subscribers of the package. This can be done by sending mail to
<code class="literal"><em class="replaceable"><code>sourcepackage</code></em>@packages.qa.debian.org</code>.
In order to prevent spam, all messages sent to these addresses must contain the
<code class="literal">X-PTS-Approved</code> header with a non-empty value.
</p></dd><dt><span class="term"><code class="literal">contact</code></span></dt><dd><p>
Mails sent to the maintainer through the *@packages.debian.org email
aliases.
</p></dd><dt><span class="term"><code class="literal">summary</code></span></dt><dd><p>
Regular summary emails about the package's status, including progression
into <code class="literal">testing</code>,
<a class="ulink" href="http://dehs.alioth.debian.org/" target="_top">DEHS</a> notifications of
new upstream versions, and a notification if the package is removed or
orphaned.
</p></dd></dl></div><p>
You can also decide to receive additional information:
</p><div class="variablelist"><dl><dt><span class="term"><code class="literal">upload-binary</code></span></dt><dd><p>
The email notification from <span class="command"><strong>katie</strong></span> when an uploaded binary
package is accepted. In other words, whenever a build daemon or a porter
uploads your package for another architecture, you can get an email to track
how your package gets recompiled for all architectures.
</p></dd><dt><span class="term"><code class="literal">cvs</code></span></dt><dd><p>
VCS commit notifications, if the package has a VCS repository and the
maintainer has set up forwarding of commit notifications to the PTS. The
"cvs" name is historic, in most cases commit notifications will come
from some other VCS like subversion or git.
</p></dd><dt><span class="term"><code class="literal">ddtp</code></span></dt><dd><p>
Translations of descriptions or debconf templates submitted to the Debian
Description Translation Project.
</p></dd><dt><span class="term"><code class="literal">derivatives</code></span></dt><dd><p>
Information about changes made to the package in derivative distributions (for
example Ubuntu).
</p></dd><dt><span class="term"><code class="literal">derivatives-bugs</code></span></dt><dd><p>
Bugs reports and comments from derivative distributions (for example Ubuntu).
</p></dd></dl></div><div class="section" title="4.10.1. The PTS email interface"><div class="titlepage"><div><div><h3 class="title"><a id="pts-commands"></a>4.10.1. The PTS email interface</h3></div></div></div><p>
You can control your subscription(s) to the PTS by sending various commands to
<code class="email">&lt;<a class="email" href="mailto:pts@qa.debian.org">pts@qa.debian.org</a>&gt;</code>.
</p><div class="variablelist"><dl><dt><span class="term"><code class="literal">subscribe &lt;sourcepackage&gt; [&lt;email&gt;]</code></span></dt><dd><p>
Subscribes <em class="replaceable"><code>email</code></em> to communications related to the
source package <em class="replaceable"><code>sourcepackage</code></em>. Sender address is
used if the second argument is not present. If
<em class="replaceable"><code>sourcepackage</code></em> is not a valid source package, you'll
get a warning. However if it's a valid binary package, the PTS will subscribe
you to the corresponding source package.
</p></dd><dt><span class="term"><code class="literal">unsubscribe &lt;sourcepackage&gt; [&lt;email&gt;]</code></span></dt><dd><p>
Removes a previous subscription to the source package
<em class="replaceable"><code>sourcepackage</code></em> using the specified email address or
the sender address if the second argument is left out.
</p></dd><dt><span class="term"><code class="literal">unsubscribeall [&lt;email&gt;]</code></span></dt><dd><p>
Removes all subscriptions of the specified email address or the sender address
if the second argument is left out.
</p></dd><dt><span class="term"><code class="literal">which [&lt;email&gt;]</code></span></dt><dd><p>
Lists all subscriptions for the sender or the email address optionally
specified.
</p></dd><dt><span class="term"><code class="literal">keyword [&lt;email&gt;]</code></span></dt><dd><p>
Tells you the keywords that you are accepting. For an explanation of keywords,
<a class="link" href="resources.html#pkg-tracking-system" title="4.10. The Package Tracking System">see above</a>. Here's a quick
summary:
</p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>
<code class="literal">bts</code>: mails coming from the Debian Bug Tracking System
</p></li><li class="listitem"><p>
<code class="literal">bts-control</code>: reply to mails sent to
<code class="email">&lt;<a class="email" href="mailto:control@bugs.debian.org">control@bugs.debian.org</a>&gt;</code>
</p></li><li class="listitem"><p>
<code class="literal">summary</code>: automatic summary mails about the state of a
package
</p></li><li class="listitem"><p>
<code class="literal">contact</code>: mails sent to the maintainer through the
*@packages.debian.org aliases
</p></li><li class="listitem"><p>
<code class="literal">cvs</code>: notification of VCS commits
</p></li><li class="listitem"><p>
<code class="literal">ddtp</code>: translations of descriptions and debconf templates
</p></li><li class="listitem"><p>
<code class="literal">derivatives</code>: changes made on the package by derivative
distributions
</p></li><li class="listitem"><p>
<code class="literal">derivatives-bugs</code>: bugs reports and comments from derivative
distributions
</p></li><li class="listitem"><p>
<code class="literal">upload-source</code>: announce of a new source upload that has been
accepted
</p></li><li class="listitem"><p>
<code class="literal">upload-binary</code>: announce of a new binary-only upload
(porting)
</p></li><li class="listitem"><p>
<code class="literal">katie-other</code>: other mails from ftpmasters (override
disparity, etc.)
</p></li><li class="listitem"><p>
<code class="literal">buildd</code>: build failures notifications from build daemons
</p></li><li class="listitem"><p>
<code class="literal">default</code>: all the other mails (those which aren't automatic)
</p></li></ul></div></dd><dt><span class="term"><code class="literal">keyword &lt;sourcepackage&gt; [&lt;email&gt;]</code></span></dt><dd><p>
Same as the previous item but for the given source package, since you may
select a different set of keywords for each source package.
</p></dd><dt><span class="term"><code class="literal">keyword [&lt;email&gt;] {+|-|=} &lt;list of keywords&gt;</code></span></dt><dd><p>
Accept (+) or refuse (-) mails classified under the given keyword(s). Define
the list (=) of accepted keywords. This changes the default set of keywords
accepted by a user.
</p></dd><dt><span class="term"><code class="literal">keywordall [&lt;email&gt;] {+|-|=} &lt;list of keywords&gt;</code></span></dt><dd><p>
Accept (+) or refuse (-) mails classified under the given keyword(s). Define
the list (=) of accepted keywords. This changes the set of accepted keywords
of all the currently active subscriptions of a user.
</p></dd><dt><span class="term"><code class="literal">keyword &lt;sourcepackage&gt; [&lt;email&gt;] {+|-|=} &lt;list of keywords&gt;</code></span></dt><dd><p>
Same as previous item but overrides the keywords list for the indicated source
package.
</p></dd><dt><span class="term"><code class="literal">quit | thanks | --</code></span></dt><dd><p>
Stops processing commands. All following lines are ignored by the bot.
</p></dd></dl></div><p>
The <span class="command"><strong>pts-subscribe</strong></span> command-line utility (from the <code class="systemitem">devscripts</code> package) can be handy to temporarily
subscribe to some packages, for example after having made an non-maintainer
upload.
</p></div><div class="section" title="4.10.2. Filtering PTS mails"><div class="titlepage"><div><div><h3 class="title"><a id="pts-mail-filtering"></a>4.10.2. Filtering PTS mails</h3></div></div></div><p>
Once you are subscribed to a package, you will get the mails sent to
<code class="literal"><em class="replaceable"><code>sourcepackage</code></em>@packages.qa.debian.org</code>.
Those mails have special headers appended to let you filter them in a special
mailbox (e.g. with <span class="command"><strong>procmail</strong></span>). The added headers are
<code class="literal">X-Loop</code>, <code class="literal">X-PTS-Package</code>,
<code class="literal">X-PTS-Keyword</code> and <code class="literal">X-Unsubscribe</code>.
</p><p>
Here is an example of added headers for a source upload notification on the
<code class="systemitem">dpkg</code> package:
</p><pre class="screen">
X-Loop: dpkg@packages.qa.debian.org
X-PTS-Package: dpkg
X-PTS-Keyword: upload-source
List-Unsubscribe: &lt;mailto:pts@qa.debian.org?body=unsubscribe+dpkg&gt;
</pre></div><div class="section" title="4.10.3. Forwarding VCS commits in the PTS"><div class="titlepage"><div><div><h3 class="title"><a id="pts-vcs-commit"></a>4.10.3. Forwarding VCS commits in the PTS</h3></div></div></div><p>
If you use a publicly accessible VCS repository for maintaining your Debian
package, you may want to forward the commit notification to the PTS so that the
subscribers (and possible co-maintainers) can closely follow the package's
evolution.
</p><p>
Once you set up the VCS repository to generate commit notifications, you just
have to make sure it sends a copy of those mails to
<code class="literal"><em class="replaceable"><code>sourcepackage</code></em>_cvs@packages.qa.debian.org</code>.
Only the people who accept the <code class="literal">cvs</code> keyword will receive
these notifications. Note that the mail needs to be sent from a
<code class="literal">debian.org</code> machine, otherwise you'll have to add
the <code class="literal">X-PTS-Approved: 1</code> header.
</p><p>
For Subversion repositories, the usage of svnmailer is recommended.
See <a class="ulink" href="http://wiki.debian.org/Alioth/PackagingProject" target="_top">http://wiki.debian.org/Alioth/PackagingProject</a> for an example on how to do it.
</p></div><div class="section" title="4.10.4. The PTS web interface"><div class="titlepage"><div><div><h3 class="title"><a id="pts-web"></a>4.10.4. The PTS web interface</h3></div></div></div><p>
The PTS has a web interface at <a class="ulink" href="http://packages.qa.debian.org/" target="_top">http://packages.qa.debian.org/</a> that puts together a lot of
information about each source package. It features many useful links (BTS, QA
stats, contact information, DDTP translation status, buildd logs) and gathers
much more information from various places (30 latest changelog entries, testing
status, etc.). It's a very useful tool if you want to know what's going on with
a specific source package. Furthermore there's a form that allows easy
subscription to the PTS via email.
</p><p>
You can jump directly to the web page concerning a specific source package with
a URL like
<code class="literal">http://packages.qa.debian.org/<em class="replaceable"><code>sourcepackage</code></em></code>.
</p><p>
This web interface has been designed like a portal for the development of
packages: you can add custom content on your packages' pages. You can add
static information (news items that are meant to stay available indefinitely)
and news items in the latest news section.
</p><p>
Static news items can be used to indicate:
</p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>
the availability of a project hosted on
<a class="link" href="resources.html#alioth" title="4.12. Debian's FusionForge installation: Alioth">Alioth</a> for co-maintaining the package
</p></li><li class="listitem"><p>
a link to the upstream web site
</p></li><li class="listitem"><p>
a link to the upstream bug tracker
</p></li><li class="listitem"><p>
the existence of an IRC channel dedicated to the software
</p></li><li class="listitem"><p>
any other available resource that could be useful in the maintenance of the
package
</p></li></ul></div><p>
Usual news items may be used to announce that:
</p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>
beta packages are available for testing
</p></li><li class="listitem"><p>
final packages are expected for next week
</p></li><li class="listitem"><p>
the packaging is about to be redone from scratch
</p></li><li class="listitem"><p>
backports are available
</p></li><li class="listitem"><p>
the maintainer is on vacation (if they wish to publish this information)
</p></li><li class="listitem"><p>
a NMU is being worked on
</p></li><li class="listitem"><p>
something important will affect the package
</p></li></ul></div><p>
Both kinds of news are generated in a similar manner: you just have to send an
email either to <code class="email">&lt;<a class="email" href="mailto:pts-static-news@qa.debian.org">pts-static-news@qa.debian.org</a>&gt;</code> or to
<code class="email">&lt;<a class="email" href="mailto:pts-news@qa.debian.org">pts-news@qa.debian.org</a>&gt;</code>. The mail should indicate which package
is concerned by having the name of the source package in a
<code class="literal">X-PTS-Package</code> mail header or in a <code class="literal">Package</code>
pseudo-header (like the BTS reports). If a URL is available in the
<code class="literal">X-PTS-Url</code> mail header or in the <code class="literal">Url</code>
pseudo-header, then the result is a link to that URL instead of a complete news
item.
</p><p>
Here are a few examples of valid mails used to generate news items in the PTS.
The first one adds a link to the viewsvn interface of debian-cd in the Static
information section:
</p><pre class="screen">
From: Raphael Hertzog &lt;hertzog@debian.org&gt;
To: pts-static-news@qa.debian.org
Subject: Browse debian-cd SVN repository
Package: debian-cd
Url: http://svn.debian.org/viewsvn/debian-cd/trunk/
</pre><p>
The second one is an announcement sent to a mailing list which is also sent to
the PTS so that it is published on the PTS web page of the package. Note the
use of the BCC field to avoid answers sent to the PTS by mistake.
</p><pre class="screen">
From: Raphael Hertzog &lt;hertzog@debian.org&gt;
To: debian-gtk-gnome@lists.debian.org
Bcc: pts-news@qa.debian.org
Subject: Galeon 2.0 backported for woody
X-PTS-Package: galeon
Hello gnomers!
I'm glad to announce that galeon has been backported for woody. You'll find
everything here:
...
</pre><p>
Think twice before adding a news item to the PTS because you won't be able to
remove it later and you won't be able to edit it either. The only thing that
you can do is send a second news item that will deprecate the information
contained in the previous one.
</p></div></div><div class="section" title="4.11. Developer's packages overview"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="ddpo"></a>4.11. Developer's packages overview</h2></div></div></div><p>
A QA (quality assurance) web portal is available at <a class="ulink" href="http://qa.debian.org/developer.php" target="_top">http://qa.debian.org/developer.php</a> which displays a table listing all
the packages of a single developer (including those where the party is listed
as a co-maintainer). The table gives a good summary about the developer's
packages: number of bugs by severity, list of available versions in each
distribution, testing status and much more including links to any other useful
information.
</p><p>
It is a good idea to look up your own data regularly so that you don't forget
any open bugs, and so that you don't forget which packages are your
responsibility.
</p></div><div class="section" title="4.12. Debian's FusionForge installation: Alioth"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="alioth"></a>4.12. Debian's FusionForge installation: Alioth</h2></div></div></div><p>
Alioth is a Debian service based on a slightly modified version of the
FusionForge software (which evolved from SourceForge and GForge). This software offers
developers access to easy-to-use tools such as bug trackers, patch
manager, project/task managers, file hosting services, mailing lists, VCS
repositories etc. All these tools are managed via a web interface.
</p><p>
It is intended to provide facilities to free software projects backed or led by
Debian, facilitate contributions from external developers to projects started
by Debian, and help projects whose goals are the promotion of Debian or its
derivatives. It's heavily used by many Debian teams and provides
hosting for all sorts of VCS repositories.
</p><p>
All Debian developers automatically have an account on Alioth. They can
activate it by using the recover password facility. External developers can
request guest accounts on Alioth.
</p><p>
For more information please visit the following links:
</p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p><a class="ulink" href="http://wiki.debian.org/Alioth" target="_top">http://wiki.debian.org/Alioth</a></p></li><li class="listitem"><p><a class="ulink" href="http://wiki.debian.org/Alioth/FAQ" target="_top">http://wiki.debian.org/Alioth/FAQ</a></p></li><li class="listitem"><p><a class="ulink" href="http://wiki.debian.org/Alioth/PackagingProject" target="_top">http://wiki.debian.org/Alioth/PackagingProject</a></p></li><li class="listitem"><p><a class="ulink" href="http://alioth.debian.org/" target="_top">http://alioth.debian.org/</a></p></li></ul></div></div><div class="section" title="4.13. Goodies for Developers"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="developer-misc"></a>4.13. Goodies for Developers</h2></div></div></div><div class="section" title="4.13.1. LWN Subscriptions"><div class="titlepage"><div><div><h3 class="title"><a id="lwn"></a>4.13.1. LWN Subscriptions</h3></div></div></div><p>
Since October of 2002, HP has sponsored a subscription to LWN for all
interested Debian developers. Details on how to get access to this benefit are
in <a class="ulink" href="http://lists.debian.org/debian-devel-announce/2002/10/msg00018.html" target="_top">http://lists.debian.org/debian-devel-announce/2002/10/msg00018.html</a>.
</p></div><div class="section" title="4.13.2. Gandi.net Hosting Discount"><div class="titlepage"><div><div><h3 class="title"><a id="gandi"></a>4.13.2. Gandi.net Hosting Discount</h3></div></div></div><p>
As of November 2008, Gandi.net offers a discount rate on their VPS
hosting for Debian Developers. See
<a class="ulink" href="http://lists.debian.org/debian-devel-announce/2008/11/msg00004.html" target="_top">http://lists.debian.org/debian-devel-announce/2008/11/msg00004.html</a>.
</p></div></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="developer-duties.html">Prev</a> </td><td width="20%" align="center"> </td><td width="40%" align="right"> <a accesskey="n" href="pkgs.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Chapter 3. Debian Developer's Duties </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> Chapter 5. Managing Packages</td></tr></table></div></body></html>