chiark / gitweb /
Document "keywordall" command of the PTS.
[developers-reference.git] / developers-reference.sgml
index 77c70066508d1a6be0b34f5e78b8c4ab7cf00663..a00cabd3ace8f97d7fcf6ee63b1a026c12149ca0 100644 (file)
@@ -7,7 +7,7 @@
   <!ENTITY % dynamicdata  SYSTEM "dynamic.ent" > %dynamicdata;
 
   <!-- CVS revision of this document -->
-  <!ENTITY cvs-rev "$Revision: 1.283 $">
+  <!ENTITY cvs-rev "$Revision: 1.291 $">
 
   <!-- if you are translating this document, please notate the CVS
        revision of the original developer's reference in cvs-en-rev -->
@@ -165,7 +165,7 @@ Those who are seeking a
 sponsor can request one at <url id="&url-sponsors;">.
 -->
 Please read the
-inofficial debian-mentors FAQ at <url id="&url-mentors;"> first.
+unofficial debian-mentors FAQ at <url id="&url-mentors;"> first.
        <p>
 If you wish to be a mentor and/or sponsor, more information is
 available in <ref id="newmaint">.
@@ -232,12 +232,39 @@ You can use some other implementation of OpenPGP as well.  Note that
 OpenPGP is an open standard based on <url id="&url-rfc2440;" name="RFC
 2440">.
        <p>
-You need a type 4 key for use in Debian Development.
+You need a version 4 key for use in Debian Development.
 Your key length must be at least 1024
 bits; there is no reason to use a smaller key, and doing so would be
-much less secure.  Your key must be signed with your own user
-ID; this prevents user ID tampering.  <prgn>gpg</prgn> does this
-automatically.
+much less secure.
+<footnote>Version 4 keys are keys conforming to
+the OpenPGP standard as defined in RFC 2440.  Version 4 is the key
+type that has always been created when using GnuPG.  PGP versions
+since 5.x also could create v4 keys, the other choice having beein
+pgp 2.6.x compatible v3 keys (also called "legacy RSA" by PGP).
+<p>
+Version 4 (primary) keys can either use the RSA or the DSA algorithms,
+so this has nothing to do with GnuPG's question about "which kind
+of key do you want: (1) DSA and Elgamal, (2) DSA (sign only), (5)
+RSA (sign only).  If you don't have any special requirements just pick
+the defailt.
+<p>
+The easiest way to tell whether an existing key is a v4 key or a v3
+(or v2) key is to look at the fingerprint:
+Fingerprints of version 4 keys are the SHA-1 hash of some key matieral,
+so they are 40 hex digits, usually grouped in blocks of 4.  Fingerprints
+of older key format versions used MD5 and are generally shown in blocks
+of 2 hex digits.  For example if your fingerprint looks like
+<tt>5B00&nbsp;C96D&nbsp;5D54&nbsp;AEE1&nbsp;206B&nbsp;&nbsp;AF84&nbsp;DE7A&nbsp;AF6E&nbsp;94C0&nbsp;9C7F</tt>
+then it's a v4 key.
+<p>
+Another possibility is to pipe the key into <prgn>pgpdump</prgn>,
+which will say something like "Public Key Packet - Ver 4".
+<p>
+Also note that your key must be self-signed (i.e. it has to sign
+all its own user IDs; this prevents user ID tampering).  All
+modern OpenPGP software does that automatically, but if you
+have an older key you may have to manually add those signatures.
+</footnote>
        <p>
 If your public key isn't on public key servers such as &pgp-keyserv;,
 please read the documentation available locally in &file-keyservs;.
@@ -436,7 +463,7 @@ the following steps:
            <item>
 Orphan all your packages, as described in <ref id="orphaning">.
            <item>
-Send an email about why you are leaving the project to
+Send an gpg-signed email about why you are leaving the project to
 &email-debian-private;.
            <item>
 Notify the Debian key ring maintainers that you are leaving by
@@ -561,7 +588,7 @@ just <prgn>zgrep</prgn> for <em>#debian-private</em> in
 all the files.
        <p>
 There are other additional channels dedicated to specific subjects.
-<em>#debian-bugs</em> is used for coordinating bug squash parties.
+<em>#debian-bugs</em> is used for coordinating bug squashing parties.
 <em>#debian-boot</em> is used to coordinate the work on the debian-installer.
 <em>#debian-doc</em> is
 occasionally used to talk about documentation, like the document you are
@@ -579,7 +606,7 @@ Channels dedicated to Debian also exist on other IRC networks, notably on
 the <url name="Open and free technology community (OFTC)"
 id="http://www.oftc.net/"> IRC network.
        <p>
-To get a cloak on freenode, you send G&ouml;ran Weinholt &lt;weinholt@debian.org&gt;
+To get a cloak on freenode, you send J&ouml;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:
@@ -1020,8 +1047,8 @@ distribution.
 These are the <manref name="sources.list" section="5"> lines for
 <em>experimental</em>:
 <example>
-deb http://ftp.<var>xy</var>.debian.org/debian/ ../project/experimental main
-deb-src http://ftp.<var>xy</var>.debian.org/debian/ ../project/experimental main
+deb http://ftp.<var>xy</var>.debian.org/debian/ experimental main
+deb-src http://ftp.<var>xy</var>.debian.org/debian/ experimental main
 </example>
          <p>
 If there is a chance that the software could do grave damage to a system,
@@ -1060,8 +1087,10 @@ to finally get them closed.
        <p>
 Every released Debian distribution has a <em>code name</em>: Debian
 1.1 is called `buzz'; Debian 1.2, `rex'; Debian 1.3, `bo'; Debian 2.0,
-`hamm'; Debian 2.1, `slink'; Debian 2.2, `potato'; and Debian 3.0, `woody'.  There is also
-a ``pseudo-distribution'', called `sid', which is the current
+`hamm'; Debian 2.1, `slink'; Debian 2.2, `potato'; Debian 3.0, `woody';
+Debian 3.1, "sarge";
+Debian (number needs to be determined), "etch".  
+There is also a ``pseudo-distribution'', called `sid', which is the current
 `unstable' distribution; since packages are moved from `unstable' to
 `testing' as they approach stability, `sid' itself is never released.
 As well as the usual contents of a Debian distribution, `sid' contains
@@ -1328,12 +1357,17 @@ maintainer has set up forwarding commit notifications to the PTS.
     <item>
 Translations of descriptions or debconf templates
 submitted to the Debian Description Translation Project.
+
+    <tag><tt>derivatives</tt>
+    <item>
+Information about changes made to the package in derivative distributions
+(for example Ubuntu).
 </taglist>
 
        <sect1 id="pts-commands">The PTS email interface
        <p>
 You can control your subscription(s) to the PTS by sending
-various commands to <email>pts@qa.debian.org</email>.
+various commands to <email>pts@qa.debian.org</email>. 
 
 <taglist>
 
@@ -1351,6 +1385,11 @@ various commands to <email>pts@qa.debian.org</email>.
   using the specified email address or the sender address if the second
   argument is left out. 
 
+<tag><tt>unsubscribeall [&lt;email&gt;]</tt>
+<item>
+  Removes all subscriptions of the specified email address or the sender
+  address if the second argument is left out. 
+
 <tag><tt>which [&lt;email&gt;]</tt>
 <item>
   Lists all subscriptions for the sender or the email address optionally 
@@ -1367,6 +1406,7 @@ various commands to <email>pts@qa.debian.org</email>.
   <item><tt>summary</tt>: automatic summary mails about the state of a package
   <item><tt>cvs</tt>: notification of CVS commits
   <item><tt>ddtp</tt>: translations of descriptions and debconf templates
+  <item><tt>derivatives</tt>: changes made on the package by derivative distributions
   <item><tt>upload-source</tt>: announce of a new source upload that
         has been accepted
   <item><tt>upload-binary</tt>: announce of a new binary-only upload (porting)
@@ -1383,7 +1423,14 @@ various commands to <email>pts@qa.debian.org</email>.
 <tag><tt>keyword [&lt;email&gt;] {+|-|=} &lt;list of keywords&gt;</tt>
 <item>
   Accept (+) or refuse (-) mails classified under the given keyword(s).
-  Define the list (=) of accepted keywords.
+  Define the list (=) of accepted keywords. This changes the default set
+  of keywords accepted by a user.
+
+<tag><tt>keywordall [&lt;email&gt;] {+|-|=} &lt;list of keywords&gt;</tt>
+<item>
+  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.
 
 <tag><tt>keyword &lt;sourcepackage&gt; [&lt;email&gt;] {+|-|=} &lt;list of keywords&gt;</tt>
 <item>
@@ -1396,6 +1443,12 @@ various commands to <email>pts@qa.debian.org</email>.
   the bot.
 </taglist>
 
+       <p>
+The <prgn>pts-subscribe</prgn> command-line utility (from the
+<package>devscripts</package> package) can be handy to temporarily
+subscribe to some packages, for example after having made an
+non-maintainer upload.
+
        <sect1 id="pts-mail-filtering">Filtering PTS mails
        <p>
 Once you are subscribed to a package, you will get the mails sent to
@@ -1676,6 +1729,11 @@ Downgrade the package to the previous version (if one exists) &mdash; this
 tests the <file>postrm</file> and <file>prerm</file> scripts.
              <item>
 Remove the package, then reinstall it.
+             <item>
+Copy the source package in a different directory and try unpacking it and
+rebuilding it.  This tests if the package relies on existing files outside of
+it, or if it relies on permissions being preserved on the files shipped inside
+the .diff.gz file.
            </list>
 
 
@@ -1718,6 +1776,10 @@ If no original source is included in the upload, the original
 source tar-file used by <prgn>dpkg-source</prgn> when constructing the
 <file>.dsc</file> file and diff to be uploaded <em>must</em> be
 byte-for-byte identical with the one already in the archive.
+       <p>
+Please notice that, in non-native packages, permissions on files that are not
+present in the .orig.tar.gz will not be preserved, as diff does not store file
+permissions in the patch.
 
 
     <sect id="distribution">Picking a distribution
@@ -2087,9 +2149,9 @@ read <ref id="upload-bugfix">.
 
       <sect1 id="upload-bugfix">When bugs are closed by new uploads
        <p>
-As bugs and problems are fixed your packages, it is your
-responsibility as the package maintainer to close the bug.  However,
-you should not close the bug until the package which fixes the bug has
+As bugs and problems are fixed in your packages, it is your
+responsibility as the package maintainer to close these bugs.  However,
+you should not close a bug until the package which fixes the bug has
 been accepted into the Debian archive.  Therefore, once you get
 notification that your updated package has been installed into the
 archive, you can and should close the bug in the BTS.
@@ -2402,7 +2464,7 @@ Once you have created and tested the new package and it has been
 approved by the security team, it needs to be uploaded so that it can
 be installed in the archives. For security uploads, the place to
 upload to is
-<tt>ftp://security.debian.org/pub/SecurityUploadQueue/</tt> .
+<tt>ftp://security-master.debian.org/pub/SecurityUploadQueue/</tt> .
 
 <p>
 Once an upload to the security queue has been accepted, the package
@@ -2458,7 +2520,9 @@ override file updated, as described in <ref id="override-file">.
 If for some reason you want to completely remove a package (say, if it
 is an old compatibility library which is no longer required), you
 need to file a bug against <tt>ftp.debian.org</tt> asking that the
-package be removed.  Make sure you indicate which distribution the
+package be removed;
+as all bugs, this bug should normally have normal severity.
+Make sure you indicate which distribution the
 package should be removed from. Normally, you can only have packages
 removed from <em>unstable</em> and <em>experimental</em>.  Packages
 are not removed from <em>testing</em> directly. Rather, they will be
@@ -2725,12 +2789,22 @@ new Debian version, there is no corresponding source update.  If you
 get this wrong, the archive maintainers will reject your upload (due
 to lack of corresponding source code).
        <p>
-The ``magic'' for a recompilation-only NMU is triggered by using the
-third-level number on the Debian part of the version.  For instance,
-if the latest version you are recompiling against was version
-``2.9-3'', your NMU should carry a version of ``2.9-3.0.1''.  If the
-latest version was ``3.4-2.1'', your NMU should have a version number
-of ``3.4-2.1.1''.
+The ``magic'' for a recompilation-only NMU is triggered by using a
+suffix appended to the package version number,
+following the form b&lt;number&gt;.
+For instance, if the latest version you are
+recompiling against was version ``2.9-3'', your NMU should carry a
+version of ``2.9-3+b1''.  If the latest version was ``3.4+b1'' (i.e, a
+native package with a previous recompilation NMU), your NMU should have
+a version number of ``3.4+b2''.
+
+<footnote>
+In the past, such NMUs used the third-level number on the Debian part of
+the revision to denote their recompilation-only status; however, this
+syntax was ambiguous with native packages and did not allow proper
+ordering of recompile-only NMUs, source NMUs, and security NMUs on the
+same package, and has therefore been abandoned in favor of this new
+syntax.</footnote>
        <p>
 Similar to initial porter uploads, the correct way of invoking
 <prgn>dpkg-buildpackage</prgn> is <tt>dpkg-buildpackage -B</tt> to only
@@ -2849,7 +2923,7 @@ $arch@buildd.debian.org.
        <p>
 Some packages still have issues with building and/or working on some
 of the architectures supported by Debian, and cannot be ported at all,
-or not with a reasonable amount of time. An example is a package that
+or not within a reasonable amount of time. An example is a package that
 is SVGA-specific (only i386), or uses other hardware-specific features
 not supported on all architectures.
        <p>
@@ -2879,7 +2953,7 @@ In order to prevent autobuilders from needlessly trying to build your
 package, it must be included in <file>packages-arch-specific</file>, a
 list used by the <prgn>wanna-build</prgn> script.
 The current version is available as
-<url id="http://cvs.debian.org/srcdep/Packages-arch-specific?rev=HEAD&amp;cvsroot=dak&amp;content-type=text/vnd.viewcvs-markup">;
+<url id="http://cvs.debian.org/srcdep/Packages-arch-specific?cvsroot=dak">;
 please see the top of the file for whom to contact for changes.
       </list>
        <p>
@@ -2889,7 +2963,7 @@ without making it fail to build on unsupported architectures:
 A porter or any other person trying to build your package might
 accidently upload it without noticing it doesn't work.
 If in the past some binary packages were uploaded on unsupported architectures,
-request there removal by filing a bug against
+request their removal by filing a bug against
 <package>ftp.debian.org</package>
 
 
@@ -2921,9 +2995,10 @@ Debian maintainer, talk to the upstream maintainer, or submit a bug.
 However, aesthetic changes must <em>not</em> be made in a non-maintainer
 upload.
        <p>
-And please remember the Hippocratic Oath: "Above all, do no harm."
-It is better if a package has an grave bug open, than if a not working
-patch was applied, and the bug is only hidden now but not resolved.
+And please remember the Hippocratic Oath: "Above all, do no harm."  It
+is better to leave a package with an open grave bug than applying a
+non-functional patch, or one that hides the bug instead of resolving
+it.
 
 
       <sect1 id="nmu-guidelines">How to do a NMU
@@ -2983,7 +3058,7 @@ managers. Please take additional care, and acknowledge that the usual way
 for a package to enter testing is through unstable.
        <p>
 For the stable distribution, please take extra care. Of course, the release
-managers may also change the rules here. Please verify before upload that
+managers may also change the rules here. Please verify before you upload that
 all your changes are OK for inclusion into the next stable release by the
 release manager.
        <p>
@@ -3275,7 +3350,7 @@ urgency uploaded since the previous testing transition is taken into account.
 Those delays may be doubled during a freeze, or testing transitions may be
 switched off altogether;
     <item>
-It must have fewer release-critical bugs than the version currently available
+It must have the same number or fewer release-critical bugs than the version currently available
 in <em>testing</em>;
     <item>
 It must be available on all architectures on which it has previously
@@ -3543,7 +3618,7 @@ it's usually the file maintainers spend the most time on.
        <sect1 id="helper-scripts">Helper scripts
        <p>
 The rationale for using helper scripts in <file>debian/rules</file> is
-that lets maintainers use and share common logic among many packages.
+that they let maintainers use and share common logic among many packages.
 Take for instance the question of installing menu entries: you need to
 put the file into <file>/usr/lib/menu</file> (or
 <file>/usr/lib/menu</file> for executable binary menufiles, if this is needed),
@@ -3616,7 +3691,7 @@ of the above, and provides a facility for creating new and updating old
 patches. See the package <package>dbs</package> for more information and
 <package>hello-dbs</package> for an example.
        <p>
-<prgn>dpatch</prgn> also provides these facilities, but it's intented to be
+<prgn>dpatch</prgn> also provides these facilities, but it's intended to be
 even easier to use. See the package <package>dpatch</package> for
 documentation and examples (in <file>/usr/share/doc/dpatch</file>).
 
@@ -3759,10 +3834,11 @@ package related to other packages in some way that is not handled by
 the package manager (e.g., "this is the client for the foo server")?
            <p>
 Be careful to avoid spelling and grammar mistakes. Ensure that you
-spell-check it.  <prgn>ispell</prgn> has a special <tt>-g</tt> option
-for <file>debian/control</file> files:
+spell-check it.  Both <prgn>ispell</prgn> and <prgn>aspell</prgn>
+have special modes for checking <file>debian/control</file> files:
 
 <example>ispell -d american -g debian/control</example>
+<example>aspell -d en -D -c debian/control</example>
            <p>
 Users usually expect these questions to be answered in the package
 description:
@@ -3817,7 +3893,10 @@ Note that we expect this field will eventually be replaced by a proper
 <file>debian/control</file> field understood by <prgn>dpkg</prgn> and
 <tt>&packages-host;</tt>.  If you don't want to bother migrating the
 home page from the description to this field, you should probably wait
-until that is available.</p>
+until that is available.
+ Please make sure that this line matches the regular expression
+ <tt>/^  Homepage: [^ ]*$/</tt>,
+ as this allows <file>packages.debian.org</file> to parse it correctly.</p>
         </sect1>
       </sect>
 
@@ -3888,15 +3967,9 @@ id="bug-answering"> for more information on how to use the bug
 tracking system.
           <p>
 It is an old tradition to acknowledge bugs fixed in non-maintainer
-uploads in the first changelog entry of the proper maintainer upload,
-for instance, in a changelog entry like this:
-<example>
-  * Maintainer upload, closes: #42345, #44484, #42444.
-</example>
-This will close the NMU bugs tagged "fixed" when the package makes
-it into the archive. The bug for the fact that an NMU was done can be
-closed the same way. Of course, it's also perfectly acceptable to
-close NMU-fixed bugs by other means; see <ref id="bug-answering">.
+uploads in the first changelog entry of the proper maintainer upload.
+Please use the option <tt>-v</tt> to <prgn>dpkg-buildpackage</prgn>
+to close the relevant bug report.
         </sect1>
 
        <sect1 id="bpp-changelog-errors">
@@ -4084,8 +4157,8 @@ Also, we document some best practices here.
        <p>
 These guidelines include some writing style and typography
 recommendations, general considerations about debconf usage as well as
-more specific recommendations for some parts of the distribution (for
-instance, the installation system).
+more specific recommendations for some parts of the distribution (the
+installation system for instance).
 
        <sect1>Do not abuse debconf
        <p>
@@ -4288,7 +4361,7 @@ usual blue one).
 
        <sect2>Description: short and extended description
        <p>
-Templates descriptions have two parts: short and extended. The short 
+Template descriptions have two parts: short and extended. The short 
 description is in the "Description:" line of the template.
        <p>
 The short description should be kept short (50 characters or so) so
@@ -4571,7 +4644,7 @@ should retrieve the source package.</p>
           <p>
 Policy specifies that documentation should be shipped in HTML format.
 We also recommend shipping documentation in PDF and plain text format if
-convenient and quality output is possible.  However, it is generally
+convenient and if output of reasonable quality is possible.  However, it is generally
 not appropriate to ship plain text versions of documentation whose source
 format is HTML.</p>
           <p>
@@ -4702,7 +4775,7 @@ to your short description. If you are looking for examples, just run:
    There are two kinds of original source tarballs: Pristine source
    and repackaged upstream source.
        </p>
-       <sect2 id="pristine source">
+       <sect2 id="pristinesource">
           <heading>Pristine source</heading>
           <p>
 The defining characteristic of a pristine source tarball is that the
@@ -4710,7 +4783,7 @@ The defining characteristic of a pristine source tarball is that the
 distributed by the upstream author.
 <footnote>
 We cannot prevent upstream authors from changing the tarball
-they distribute without also upping the version number, so
+they distribute without also incrementing the version number, so
 there can be no guarantee that a pristine tarball is identical
 to what upstream <em>currently</em> distributing at any point in
 time. All that can be expected is that it is identical to
@@ -4761,7 +4834,7 @@ case, <prgn>dpkg-source</prgn> renames the temporary directory
           </enumlist>
          </p>
          </sect2>
-         <sect2 id="repackaged origtargz">
+         <sect2 id="repackagedorigtargz">
             <heading>Repackaged upstream source</heading>
             <p>
 You <strong>should</strong> upload packages with a pristine source
@@ -5031,7 +5104,7 @@ a source or a binary package.
       <p>
 You may also be interested in contacting the persons who are
 subscribed to a given source package via <ref id="pkg-tracking-system">.
-You can do so by using the <tt>&lt;package-name&gt;@&pts-host;</tt>
+You can do so by using the <tt>&lt;package&gt;@&pts-host;</tt>
 email address.
 <!-- FIXME: moo@packages.d.o is easily confused with moo@packages.qa.d.o -->
 
@@ -5354,7 +5427,7 @@ list) before providing it for inclusion. It will save time for everyone, and
 avoid the chaos resulting in having several versions of the same document in
 bug reports.
            <p>
-The best solution is to fill a regular bug containing the translation against
+The best solution is to file a regular bug containing the translation against
 the package. Make sure to use the 'PATCH' tag, and to not use a severity higher
 than 'wishlist', since the lack of translation never prevented a program from
 running.
@@ -5553,8 +5626,9 @@ sort of automated functions that one finds in
 <package>debhelper</package>.
        <p>
 The consensus is that <package>debmake</package> is now deprecated in
-favor of <package>debhelper</package>.  However, it's not a bug to use
-<package>debmake</package>.
+favor of <package>debhelper</package>.  It is a bug to use
+<package>debmake</package> in new packages. New packages using 
+<package>debmake</package> will be rejected from the archive.
         </sect1>
 
         <sect1 id="dh-make">