chiark / gitweb /
Document the existence of "hints" that release managers can use
[developers-reference.git] / pkgs.dbk
index 38256bfe2cd3b863ca1c524d883ed59d105c846f..88bb6d807340e27ca7079d619c11977bbade4870 100644 (file)
--- a/pkgs.dbk
+++ b/pkgs.dbk
@@ -231,11 +231,11 @@ accompanied by another file that contains the changes made by Debian
 <para>
 For the native packages, the source package includes a Debian source control
 file (<filename>.dsc</filename>) and the source tarball
-(<filename>.tar.{gz,bz2,lzma}</filename>). A source package of a non-native package
+(<filename>.tar.{gz,bz2,xz}</filename>). A source package of a non-native package
 includes a Debian source control file, the original source tarball
-(<filename>.orig.tar.{gz,bz2,lzma}</filename>) and the Debian changes
+(<filename>.orig.tar.{gz,bz2,xz}</filename>) and the Debian changes
 (<filename>.diff.gz</filename> for the source format “1.0” or
-<filename>.debian.tar.{gz,bz2,lzma}</filename> for the source format “3.0 (quilt)”).
+<filename>.debian.tar.{gz,bz2,xz}</filename> for the source format “3.0 (quilt)”).
 </para>
 <para>
 With source format “1.0”, whether a package is native or not was determined
@@ -268,7 +268,7 @@ the archive.
 </para>
 <para>
 Please notice that, in non-native packages, permissions on files that are not
-present in the <filename>*.orig.tar.{gz,bz2,lzma}</filename> will not be preserved, as diff does not store file
+present in the <filename>*.orig.tar.{gz,bz2,xz}</filename> will not be preserved, as diff does not store file
 permissions in the patch. However when using source format “3.0 (quilt)”,
 permissions of files inside the <filename>debian</filename> directory are
 preserved since they are stored in a tar archive.
@@ -311,8 +311,9 @@ point release.
 </para>
 <para>
 To ensure that your upload will be accepted, you should discuss the changes
-with the stable release team before you upload. For that, send a mail to
-the &email-debian-release; mailing list, including the patch you want to
+with the stable release team before you upload. For that, file a bug against
+the <systemitem role="package">release.debian.org</systemitem> pseudo-package
+using <command>reportbug</command>, including the patch you want to
 apply to the package version currently in <literal>stable</literal>. Always
 be verbose and detailed in your changelog entries for uploads to the
 <literal>stable</literal> distribution.
@@ -428,7 +429,8 @@ When the specified waiting time is over, the package is moved into
 the regular incoming directory for processing.
 This is done through automatic uploading to
 <literal>&ftp-upload-host;</literal> in upload-directory
-<literal>DELAYED/[012345678]-day</literal>. 0-day is uploaded
+<literal>DELAYED/<replaceable>X</replaceable>-day</literal>
+(<replaceable>X</replaceable> between 0 and 15). 0-day is uploaded
 multiple times per day to <literal>&ftp-upload-host;</literal>.
 </para>
 <para>
@@ -470,11 +472,11 @@ not support <link linkend="delayed-incoming">delayed uploads</link>.
 <para>
 The Debian archive maintainers are responsible for handling package uploads.
 For the most part, uploads are automatically handled on a daily basis by the
-archive maintenance tools, <command>katie</command>.  Specifically, updates to
-existing packages to the <literal>unstable</literal> distribution are handled
-automatically.  In other cases, notably new packages, placing the uploaded
-package into the distribution is handled manually.  When uploads are handled
-manually, the change to the archive may take up to a month to occur.  Please
+archive maintenance tools, <command>dak process-upload</command>. Specifically,
+updates to existing packages to the <literal>unstable</literal> distribution are
+handled automatically. In other cases, notably new packages, placing the
+uploaded package into the distribution is handled manually. When uploads are
+handled manually, the change to the archive may take some time to occur. Please
 be patient.
 </para>
 <para>
@@ -841,14 +843,22 @@ fixing them themselves, sending security advisories, and maintaining
 <para>
 When you become aware of a security-related bug in a Debian package, whether or
 not you are the maintainer, collect pertinent information about the problem,
-and promptly contact the security team at
-&email-security-team; as soon as possible.  <emphasis
-role="strong">DO NOT UPLOAD</emphasis> any packages for <literal>stable</literal>
-without contacting the team.  Useful information includes, for example:
+and promptly contact the security team, preferably by filing a ticket in
+their Request Tracker.
+See <ulink url="http://wiki.debian.org/rt.debian.org#Security_Team"></ulink>.
+Alternatively you may email &email-security-team;.
+<emphasis role="strong">DO NOT UPLOAD</emphasis> any packages for
+<literal>stable</literal> without contacting the team.  Useful information
+includes, for example:
 </para>
 <itemizedlist>
 <listitem>
 <para>
+Whether or not the bug is already public.
+</para>
+</listitem>
+<listitem>
+<para>
 Which versions of the package are known to be affected by the bug.  Check each
 version that is present in a supported Debian release, as well as
 <literal>testing</literal> and <literal>unstable</literal>.
@@ -1151,18 +1161,19 @@ uploads.
 </listitem>
 <listitem>
 <para>
-Unless the upstream source has been uploaded to <literal>security.debian.org
-</literal> before (by a previous security update), build the upload <emphasis
-role="strong">with full upstream source</emphasis> (<literal>dpkg-buildpackage
--sa</literal>).  If there has been a previous upload to
-<literal>security.debian.org</literal> with the same upstream version, you may
-upload without upstream source (<literal>dpkg-buildpackage -sd</literal>).
+Unless the upstream source has been uploaded to
+<literal>security.debian.org</literal> before (by a previous security update),
+build the upload <emphasis role="strong">with full upstream source</emphasis>
+(<literal>dpkg-buildpackage -sa</literal>).  If there has been a previous
+upload to <literal>security.debian.org</literal> with the same upstream
+version, you may upload without upstream source (<literal>dpkg-buildpackage
+-sd</literal>).
 </para>
 </listitem>
 <listitem>
 <para>
 Be sure to use the <emphasis role="strong">exact same
-<filename>*.orig.tar.{gz,bz2,lzma}</filename></emphasis> as used in the
+<filename>*.orig.tar.{gz,bz2,xz}</filename></emphasis> as used in the
 normal archive, otherwise it is not possible to move the security fix into the
 main archives later.
 </para>
@@ -1237,7 +1248,7 @@ chapter gives guidelines on what to do in these cases.
 <title>Moving packages</title>
 <para>
 Sometimes a package will change its section.  For instance, a package from the
-`non-free' section might be GPL'd in a later version, in which case the package
+<literal>non-free</literal> section might be GPL'd in a later version, in which case the package
 should be moved to `main' or `contrib'.<footnote><para> See the <ulink
 url="&url-debian-policy;">Debian Policy Manual</ulink> for
 guidelines on what section a package belongs in.  </para> </footnote>
@@ -1248,7 +1259,7 @@ control information to place the package in the desired section, and re-upload
 the package (see the <ulink
 url="&url-debian-policy;">Debian Policy Manual</ulink> for
 details).  You must ensure that you include the
-<filename>.orig.tar.{gz,bz2,lzma}</filename> in your upload (even if you are not uploading
+<filename>.orig.tar.{gz,bz2,xz}</filename> in your upload (even if you are not uploading
 a new upstream version), or it will not appear in the new section together with
 the rest of the package.  If your new section is valid, it will be moved
 automatically.  If it does not, then contact the ftpmasters in order to
@@ -1268,7 +1279,7 @@ described in <xref linkend="override-file"/>.
 <para>
 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 <literal>ftp.debian.org</literal> asking that the package be removed;
+against <systemitem role="package">&ftp-debian-org;</systemitem> asking that the package be removed;
 as all bugs, this bug should normally have normal severity.
 The bug title should be in the form <literal>RM: <replaceable>package</replaceable>
 <replaceable>[architecture list]</replaceable> --
@@ -1278,8 +1289,8 @@ short summary of the reason for the removal request.
 <replaceable>[architecture list]</replaceable> is optional and only needed
 if the removal request only applies to some architectures, not all. Note
 that the <command>reportbug</command> will create a title conforming
-to these rules when you use it to report a bug against the 
-<literal>ftp.debian.org</literal> pseudo-package.
+to these rules when you use it to report a bug against the
+<systemitem role="package">&ftp-debian-org;</systemitem> pseudo-package.
 </para>
 
 <para>
@@ -1298,15 +1309,18 @@ distribution.  Packages are not removed from
 <literal>testing</literal> directly.  Rather, they will be removed
 automatically after the package has been removed from
 <literal>unstable</literal> and no package in
-<literal>testing</literal> depends on it.
+<literal>testing</literal> depends on it. (Removals from
+<literal>testing</literal> are possible though by filing a removal bug report
+against the <systemitem role="package">&release-debian-org;</systemitem>
+pseudo-package. See the section <xref linkend="removals"/>.)
 </para>
 <para>
 There is one exception when an explicit removal request is not necessary: If a
-(source or binary) package is an orphan, it will be removed semi-automatically.
-For a binary-package, this means if there is no longer any source package
-producing this binary package; if the binary package is just no longer produced
-on some architectures, a removal request is still necessary.  For a
-source-package, this means that all binary packages it refers to have been
+(source or binary) package is no longer built from source, it will be removed
+semi-automatically. For a binary-package, this means if there is no longer any
+source package producing this binary package; if the binary package is just no
+longer produced on some architectures, a removal request is still necessary. For
+source-package, this means that all binary packages it refers to have been
 taken over by another source package.
 </para>
 <para>
@@ -1384,7 +1398,7 @@ Policy Manual</ulink> for details).  Please note that you
 should only add a <literal>Provides</literal> relation if all
 packages depending on the obsolete package name continue to work
 after the renaming. Once you've uploaded the package and the package
-has moved into the archive, file a bug against <literal>ftp.debian.org</literal>
+has moved into the archive, file a bug against <systemitem role="package">&ftp-debian-org;</systemitem>
 asking to remove the package with the
 obsolete name (see <xref linkend="removing-pkgs"/>).  Do not forget
 to properly reassign the package's bugs at the same time.
@@ -1862,6 +1876,35 @@ role="package">ftp.debian.org</systemitem>.
 </para>
 </section>
 
+<section id="non-free-buildd">
+<title>Marking non-free packages as auto-buildable</title>
+<para>
+By default packages from the <literal>non-free</literal> section are not built by the autobuilder
+network (mostly because the license of the packages could disapprove).
+To enable a package to be build you need to perform the following
+steps:
+</para>
+<orderedlist numeration="arabic">
+<listitem>
+<para>
+Check whether it is legally allowed and technically possible
+to auto-build the package;
+</para>
+</listitem>
+<listitem>
+<para>
+Add <literal>XS-Autobuild: yes</literal> into the header part
+of <filename>debian/control</filename>;
+</para>
+</listitem>
+<listitem>
+<para>
+Send an email to &email-nonfree-release; and explain why the
+package can legitimately and technically be auto-built.
+</para>
+</listitem>
+</orderedlist>
+</section>
 </section>
 
 <section id="nmu">
@@ -1915,11 +1958,11 @@ maintainer by other means (private email, IRC).
 <listitem>
 <para>
 If the maintainer is usually active and responsive, have you tried to contact
-him? In general it should be considered preferable that a maintainer takes care
-of an issue himself and that he is given the chance to review and correct your
-patch, because he can be expected to be more aware of potential issues which an
-NMUer might miss. It is often a better use of everyone's time if the maintainer
-is given an opportunity to upload a fix on their own.
+them? In general it should be considered preferable that maintainers take care
+of an issue themselves and that they are given the chance to review and
+correct your patch, because they can be expected to be more aware of potential
+issues which an NMUer might miss. It is often a better use of everyone's time
+if the maintainer is given an opportunity to upload a fix on their own.
 </para>
 </listitem>
 </itemizedlist>
@@ -1932,9 +1975,9 @@ might be helpful.
 </para>
 <para>
 While preparing the patch, you should better be aware of any package-specific
-practices that the maintainer might be using. Taking them into account reduces
-the burden of getting your changes integrated back in the normal package
-workflow and thus increases the possibilities that that will happen. A good
+practices that the maintainer might be using. Taking them into account
+reduces the burden of integrating your changes into the normal package
+workflow and thus increases the chances that integration will happen. A good
 place where to look for for possible package-specific practices is
 <ulink url="&url-debian-policy;ch-source.html#s-readmesource"><filename>debian/README.source</filename></ulink>.
 </para>
@@ -1946,6 +1989,11 @@ to the maintainer to react (for example, by uploading to the
 <itemizedlist>
 <listitem>
 <para>
+Upload fixing only release-critical bugs older than 7 days, with no maintainer activity on the bug for 7 days and no indication that a fix is in progress: 0 days
+</para>
+</listitem>
+<listitem>
+<para>
 Upload fixing only release-critical bugs older than 7 days: 2 days
 </para>
 </listitem>
@@ -2018,7 +2066,7 @@ if the current version is <literal>1.5</literal>, then an NMU would get
 version <literal>1.5+nmu1</literal>.
 </para>
 <para>
-If the package is not a native package, you should add a minor version number
+If the package is not a native package, you should add a minor version number
 to the Debian revision part of the version number (the portion after the last
 hyphen). This extra number must start at <literal>1</literal>.  For example,
 if the current version is <literal>1.5-2</literal>, then an NMU would get
@@ -2076,7 +2124,7 @@ allows the developer doing the NMU to perform all the necessary tasks at the
 same time. For instance, instead of telling the maintainer that you will
 upload the updated
 package in 7 days, you should upload the package to
-<literal>DELAYED/7</literal> and tell the maintainer that he has 7 days to
+<literal>DELAYED/7</literal> and tell the maintainer that they have 7 days to
 react.  During this time, the maintainer can ask you to delay the upload some
 more, or cancel your upload.
 </para>
@@ -2085,12 +2133,12 @@ more, or cancel your upload.
 The <literal>DELAYED</literal> queue should not be used to put additional
 pressure on the maintainer. In particular, it's important that you are
 available to cancel or delay the upload before the delay expires since the
-maintainer cannot cancel the upload himself.
+maintainer cannot cancel the upload themselves.
 </para>
 
 <para>
 If you make an NMU to <literal>DELAYED</literal> and the maintainer updates
-his package before the delay expires, your upload will be rejected because a
+the package before the delay expires, your upload will be rejected because a
 newer version is already available in the archive.
 Ideally, the maintainer will take care to include your proposed changes (or
 at least a solution for the problems they address) in that upload.
@@ -2338,9 +2386,7 @@ the following:
 The package must have been available in <literal>unstable</literal> for 2, 5
 or 10 days, depending on the urgency (high, medium or low).  Please note that
 the urgency is sticky, meaning that the highest urgency uploaded since the
-previous <literal>testing</literal> transition is taken into account.  Those
-delays may be doubled during a freeze, or <literal>testing</literal>
-transitions may be switched off altogether;
+previous <literal>testing</literal> transition is taken into account;
 </para>
 </listitem>
 <listitem>
@@ -2368,7 +2414,13 @@ It must not break any dependency of a package which is already available in
 The packages on which it depends must either be available in
 <literal>testing</literal> or they must be accepted into
 <literal>testing</literal> at the same time (and they will be if they fulfill
-all the necessary criteria).
+all the necessary criteria);
+</para>
+</listitem>
+<listitem>
+<para>
+The phase of the project.  I.e. automatic transitions are turned off during
+the <emphasis>freeze</emphasis> of the <literal>testing</literal> distribution.
 </para>
 </listitem>
 </itemizedlist>
@@ -2392,7 +2444,7 @@ more information about the usual problems which may be causing such troubles.
 </para>
 <para>
 Sometimes, some packages never enter <literal>testing</literal> because the
-set of inter-relationship is too complicated and cannot be sorted out by the
+set of interrelationship is too complicated and cannot be sorted out by the
 scripts.  See below for details.
 </para>
 <para>
@@ -2580,10 +2632,8 @@ If you are interested in details, this is how britney works:
 The packages are looked at to determine whether they are valid candidates.
 This gives the update excuses.  The most common reasons why a package is not
 considered are too young, RC-bugginess, and out of date on some arches.  For
-this part of britney, the release managers have hammers of various sizes to
-force britney to consider a package.  (Also, the base freeze is coded in that
-part of britney.) (There is a similar thing for binary-only updates, but this
-is not described here.  If you're interested in that, please peruse the code.)
+this part of britney, the release managers have hammers of various sizes,
+called hints (see below), to force britney to consider a package.
 </para>
 <para>
 Now, the more complex part happens: Britney tries to update <literal>testing</literal>
@@ -2601,7 +2651,13 @@ url="http://&ftp-master-host;/testing/update_output/"></ulink>.
 </para>
 <para>
 The hints are available via <ulink
-url="http://&ftp-master-host;/testing/hints/"></ulink>.
+url="http://&ftp-master-host;/testing/hints/"></ulink>, where you can find
+the
+<ulink url="http://&ftp-master-host;/testing/hints/README">description</ulink>
+as well.  With the hints, the Debian Release team can block or unblock
+packages, ease or force packages into <literal>testing</literal>, remove
+packages from <literal>testing</literal>, approve uploads to
+<xref linkend="t-p-u">testing-proposed-updates</link> or override the urgency.
 </para>
 </section>