/[ddp]/manuals/trunk/developers-reference/pkgs.dbk
ViewVC logotype

Diff of /manuals/trunk/developers-reference/pkgs.dbk

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 7071 by hertzog, Sun Feb 14 17:46:38 2010 UTC revision 8539 by taffit-guest, Thu Mar 3 03:16:36 2011 UTC
# Line 21  pages</ulink> for more information. Line 21  pages</ulink> for more information.
21  </para>  </para>
22  <para>  <para>
23  Assuming no one else is already working on your prospective package, you must  Assuming no one else is already working on your prospective package, you must
24  then submit a bug report (<xref linkend="submit-bug"/> ) against the  then submit a bug report (<xref linkend="submit-bug"/>) against the
25  pseudo-package <systemitem role="package">wnpp</systemitem> describing your  pseudo-package <systemitem role="package">wnpp</systemitem> describing your
26  plan to create a new package, including, but not limiting yourself to, a  plan to create a new package, including, but not limiting yourself to, a
27  description of the package, the license of the prospective package, and the  description of the package, the license of the prospective package, and the
28  current URL where it can be downloaded from.  current URL where it can be downloaded from.
29  </para>  </para>
30  <para>  <para>
31  You should set the subject of the bug to <literal>ITP:  You should set the subject of the bug to <literal>ITP:
32  <replaceable>foo</replaceable> -- <replaceable>short  <replaceable>foo</replaceable> -- <replaceable>short
33  description</replaceable></literal>, substituting the name of the new  description</replaceable></literal>, substituting the name of the new
34  package for <replaceable>foo</replaceable>.  package for <replaceable>foo</replaceable>.
35  The severity of the bug report must be set to <literal>wishlist</literal>.  The severity of the bug report must be set to <literal>wishlist</literal>.
36  Please send a copy to &email-debian-devel; by using the X-Debbugs-CC  Please send a copy to &email-debian-devel; by using the X-Debbugs-CC
37  header (don't use CC:, because that way the message's subject won't  header (don't use CC:, because that way the message's subject won't
38  indicate the bug number). If you are packaging so many new packages (>10)  indicate the bug number). If you are packaging so many new packages (>10)
39  that notifying the mailing list in seperate messages is too disruptive,  that notifying the mailing list in separate messages is too disruptive,
40  send a summary after filing the bugs to the debian-devel list instead.  send a summary after filing the bugs to the debian-devel list instead.
41  This will inform the other developers about upcoming packages and will  This will inform the other developers about upcoming packages and will
42  allow a review of your description and package name.  allow a review of your description and package name.
# Line 49  be automatically closed once the new pac Line 49  be automatically closed once the new pac
49  </para>  </para>
50  <para>  <para>
51  If you think your package needs some explanations for the administrators of the  If you think your package needs some explanations for the administrators of the
52  NEW package queue, include them in your changelog, send to ftpmaster@debian.org  NEW package queue, include them in your changelog, send to &email-ftpmaster;
53  a reply to the email you receive as a maintainer after your upload, or reply to  a reply to the email you receive as a maintainer after your upload, or reply to
54  the rejection email in case you are already re-uploading.  the rejection email in case you are already re-uploading.
55  </para>  </para>
56  <para>  <para>
57  When closing security bugs include CVE numbers as well as the Closes: #nnnnn.  When closing security bugs include CVE numbers as well as the
58    <literal>Closes: #<replaceable>nnnnn</replaceable></literal>.
59  This is useful for the security team to track vulnerabilities.  If an upload is  This is useful for the security team to track vulnerabilities.  If an upload is
60  made to fix the bug before the advisory ID is known, it is encouraged to modify  made to fix the bug before the advisory ID is known, it is encouraged to modify
61  the historical changelog entry with the next upload.  Even in this case, please  the historical changelog entry with the next upload.  Even in this case, please
# Line 121  for native packages. Line 122  for native packages.
122  The <filename>debian/changelog</filename> file conforms to a certain structure,  The <filename>debian/changelog</filename> file conforms to a certain structure,
123  with a number of different fields.  One field of note, the  with a number of different fields.  One field of note, the
124  <literal>distribution</literal>, is described in <xref  <literal>distribution</literal>, is described in <xref
125  linkend="distribution"/> .  More information about the structure of this file  linkend="distribution"/>.  More information about the structure of this file
126  can be found in the Debian Policy section titled  can be found in the Debian Policy section titled
127  <filename>debian/changelog</filename>.  <filename>debian/changelog</filename>.
128  </para>  </para>
129  <para>  <para>
130  Changelog entries can be used to automatically close Debian bugs when the  Changelog entries can be used to automatically close Debian bugs when the
131  package is installed into the archive.  See <xref linkend="upload-bugfix"/> .  package is installed into the archive.  See <xref linkend="upload-bugfix"/>.
132  </para>  </para>
133  <para>  <para>
134  It is conventional that the changelog entry of a package that contains a new  It is conventional that the changelog entry of a package that contains a new
135  upstream version of the software looks like this:  upstream version of the software looks like this:
136  </para>  </para>
137  <screen>  <screen>
138    * new upstream version    * New upstream release.
139  </screen>  </screen>
140  <para>  <para>
141  There are tools to help you create entries and finalize the  There are tools to help you create entries and finalize the
142  <filename>changelog</filename> for release — see <xref linkend="devscripts"/>  <filename>changelog</filename> for release — see <xref linkend="devscripts"/>
143  and <xref linkend="dpkg-dev-el"/> .  and <xref linkend="dpkg-dev-el"/>.
144  </para>  </para>
145  <para>  <para>
146  See also <xref linkend="bpp-debian-changelog"/> .  See also <xref linkend="bpp-debian-changelog"/>.
147  </para>  </para>
148  </section>  </section>
149    
# Line 173  output a very verbose description of the Line 174  output a very verbose description of the
174  </para>  </para>
175  <para>  <para>
176  Normally, a package should <emphasis>not</emphasis> be uploaded if it causes  Normally, a package should <emphasis>not</emphasis> be uploaded if it causes
177  lintian to emit errors (they will start with <literal>E</literal>).  <command>lintian</command> to emit errors (they will start with <literal>E</literal>).
178  </para>  </para>
179  <para>  <para>
180  For more information on <command>lintian</command>, see <xref  For more information on <command>lintian</command>, see <xref
181  linkend="lintian"/> .  linkend="lintian"/>.
182  </para>  </para>
183  </listitem>  </listitem>
184  <listitem>  <listitem>
185  <para>  <para>
186  Optionally run <xref linkend="debdiff"/> to analyze changes from an older  Optionally run <command>debdiff</command> (see <xref linkend="debdiff"/>) to analyze changes from an older
187  version, if one exists.  version, if one exists.
188  </para>  </para>
189  </listitem>  </listitem>
# Line 202  Remove the package, then reinstall it. Line 203  Remove the package, then reinstall it.
203  Copy the source package in a different directory and try unpacking it and  Copy the source package in a different directory and try unpacking it and
204  rebuilding it.  This tests if the package relies on existing files outside of  rebuilding it.  This tests if the package relies on existing files outside of
205  it, or if it relies on permissions being preserved on the files shipped inside  it, or if it relies on permissions being preserved on the files shipped inside
206  the .diff.gz file.  the <filename>.diff.gz</filename> file.
207  </para>  </para>
208  </listitem>  </listitem>
209  </itemizedlist>  </itemizedlist>
# Line 229  accompanied by another file that contain Line 230  accompanied by another file that contain
230  </itemizedlist>  </itemizedlist>
231  <para>  <para>
232  For the native packages, the source package includes a Debian source control  For the native packages, the source package includes a Debian source control
233  file (<literal>.dsc</literal>) and the source tarball  file (<filename>.dsc</filename>) and the source tarball
234  (<literal>.tar.{gz,bz2,lzma}</literal>). A source package of a non-native package  (<filename>.tar.{gz,bz2,lzma}</filename>). A source package of a non-native package
235  includes a Debian source control file, the original source tarball  includes a Debian source control file, the original source tarball
236  (<literal>.orig.tar.{gz,bz2,lzma}</literal>) and the Debian changes  (<filename>.orig.tar.{gz,bz2,lzma}</filename>) and the Debian changes
237  (<literal>.diff.gz</literal> for the source format “1.0” or  (<filename>.diff.gz</filename> for the source format “1.0” or
238  <literal>.debian.tar.{gz,bz2,lzma}</literal> for the source format “3.0 (quilt)”).  <filename>.debian.tar.{gz,bz2,lzma}</filename> for the source format “3.0 (quilt)”).
239  </para>  </para>
240  <para>  <para>
241  With source format “1.0”, whether a package is native or not was determined  With source format “1.0”, whether a package is native or not was determined
# Line 267  the archive. Line 268  the archive.
268  </para>  </para>
269  <para>  <para>
270  Please notice that, in non-native packages, permissions on files that are not  Please notice that, in non-native packages, permissions on files that are not
271  present in the .orig.tar.{gz,bz2} will not be preserved, as diff does not store file  present in the <filename>*.orig.tar.{gz,bz2,lzma}</filename> will not be preserved, as diff does not store file
272  permissions in the patch. However when using source format “3.0 (quilt)”,  permissions in the patch. However when using source format “3.0 (quilt)”,
273  permissions of files inside the <filename>debian</filename> directory are  permissions of files inside the <filename>debian</filename> directory are
274  preserved since they are stored in a tar archive.  preserved since they are stored in a tar archive.
# Line 280  preserved since they are stored in a tar Line 281  preserved since they are stored in a tar
281  Each upload needs to specify which distribution the package is intended for.  Each upload needs to specify which distribution the package is intended for.
282  The package build process extracts this information from the first line of the  The package build process extracts this information from the first line of the
283  <filename>debian/changelog</filename> file and places it in the  <filename>debian/changelog</filename> file and places it in the
284  <literal>Distribution</literal> field of the <literal>.changes</literal> file.  <literal>Distribution</literal> field of the <filename>.changes</filename> file.
285  </para>  </para>
286  <para>  <para>
287  There are several possible values for this field: <literal>stable</literal>,  There are several possible values for this field: <literal>stable</literal>,
# Line 289  There are several possible values for th Line 290  There are several possible values for th
290  <literal>unstable</literal>.  <literal>unstable</literal>.
291  </para>  </para>
292  <para>  <para>
293  Actually, there are two other possible distributions: <literal>stable-security  Actually, there are two other possible distributions: <literal>stable-security</literal>
294  </literal> and <literal>testing-security</literal>, but read  and <literal>testing-security</literal>, but read
295  <xref linkend="bug-security"/> for more information on those.  <xref linkend="bug-security"/> for more information on those.
296  </para>  </para>
297  <para>  <para>
# Line 298  It is not possible to upload a package i Line 299  It is not possible to upload a package i
299  time.  time.
300  </para>  </para>
301  <section id="upload-stable">  <section id="upload-stable">
302  <title>Special case: uploads to the <literal>stable</literal> and  <title>Special case: uploads to the <literal>stable</literal> and
303  <literal>oldstable</literal> distributions</title>  <literal>oldstable</literal> distributions</title>
304  <para>  <para>
305  Uploading to <literal>stable</literal> means that the package will transferred  Uploading to <literal>stable</literal> means that the package will transferred
# Line 358  Packages uploaded to <literal>stable</li Line 359  Packages uploaded to <literal>stable</li
359  running <literal>stable</literal>, so that their dependencies are limited to  running <literal>stable</literal>, so that their dependencies are limited to
360  the libraries (and other packages) available in <literal>stable</literal>;  the libraries (and other packages) available in <literal>stable</literal>;
361  for example, a package uploaded to <literal>stable</literal> that depends on  for example, a package uploaded to <literal>stable</literal> that depends on
362  a library package that only exists in <literal>unstable</literal> will be  a library package that only exists in <literal>unstable</literal> will be
363  rejected.  Making changes to dependencies of other packages (by messing with  rejected.  Making changes to dependencies of other packages (by messing with
364  <literal>Provides</literal> or <literal>shlibs</literal> files), possibly  <literal>Provides</literal> or <filename>shlibs</filename> files), possibly
365  making those other packages uninstallable, is strongly discouraged.  making those other packages uninstallable, is strongly discouraged.
366  </para>  </para>
367  <para>  <para>
368  Uploads to the <literal>oldstable</literal> distributions are possible as  Uploads to the <literal>oldstable</literal> distributions are possible as
369  long as it hasn't been archived. The same rules as for <literal>stable  long as it hasn't been archived. The same rules as for <literal>stable</literal>
370  </literal> apply.  apply.
371  </para>  </para>
372  </section>  </section>
373    
# Line 399  upload may be rejected because the archi Line 400  upload may be rejected because the archi
400  changes file and see that not all files have been uploaded.  changes file and see that not all files have been uploaded.
401  </para>  </para>
402  <para>  <para>
403  You may also find the Debian packages <xref linkend="dupload"/> or <xref  You may also find the Debian packages <link linkend="dupload">dupload</link>
404  linkend="dput"/> useful when uploading packages.  These handy programs help  or <link linkend="dput">dput</link> useful when uploading packages.These
405  automate the process of uploading packages into Debian.  handy programs help automate the process of uploading packages into Debian.
406  </para>  </para>
407  <para>  <para>
408  For removing packages, please see  For removing packages, please see
409  <ulink url="ftp://&ftp-upload-host;&upload-queue;/README"/> and  <ulink url="ftp://&ftp-upload-host;&upload-queue;README"/> and
410  the Debian package <xref linkend="dcut"/> .  the Debian package <link linkend="dcut">dcut</link>.
411  </para>  </para>
412  </section>  </section>
413    
# Line 416  the Debian package <xref linkend="dcut"/ Line 417  the Debian package <xref linkend="dcut"/
417  <para>  <para>
418  It is sometimes useful to upload a package immediately, but to want this  It is sometimes useful to upload a package immediately, but to want this
419  package to arrive in the archive only a few days later. For example,  package to arrive in the archive only a few days later. For example,
420  when preparing a <link linkend="nmu">Non-maintainer Upload</link>,  when preparing a <link linkend="nmu">Non-Maintainer Upload</link>,
421  you might want to give the maintainer a few days to react.  you might want to give the maintainer a few days to react.
422  </para>  </para>
423    
424  <para>  <para>
425  An upload to the delayed directory keeps the package in  An upload to the delayed directory keeps the package in
426  <ulink url="http://ftp-master.debian.org/deferred.html">  <ulink url="http://ftp-master.debian.org/deferred.html">the deferred uploads queue</ulink>.
 the deferred uploads queue"</ulink>.  
427  When the specified waiting time is over, the package is moved into  When the specified waiting time is over, the package is moved into
428  the regular incoming directory for processing.  the regular incoming directory for processing.
429  This is done through automatic uploading to  This is done through automatic uploading to
# Line 441  parameter to put the package into one of Line 441  parameter to put the package into one of
441  <title>Security uploads</title>  <title>Security uploads</title>
442  <para>  <para>
443  Do <emphasis role="strong">NOT</emphasis> upload a package to the security  Do <emphasis role="strong">NOT</emphasis> upload a package to the security
444  upload queue (<literal>oldstable-security</literal>, <literal>stable-security  upload queue (<literal>oldstable-security</literal>, <literal>stable-security</literal>,
445  </literal>, etc.) without prior authorization from the security team.  If the  etc.) without prior authorization from the security team.  If the
446  package does not exactly meet the team's requirements, it will cause many  package does not exactly meet the team's requirements, it will cause many
447  problems and delays in dealing with the unwanted upload.  For details, please  problems and delays in dealing with the unwanted upload.  For details, please
448  see section <xref linkend="bug-security"/> .  see <xref linkend="bug-security"/>.
449  </para>  </para>
450  </section>  </section>
451    
# Line 461  for European developers. Line 461  for European developers.
461  Packages can also be uploaded via ssh to  Packages can also be uploaded via ssh to
462  <literal>&ssh-upload-host;</literal>; files should be put  <literal>&ssh-upload-host;</literal>; files should be put
463  <literal>/srv/upload.debian.org/UploadQueue</literal>. This queue does  <literal>/srv/upload.debian.org/UploadQueue</literal>. This queue does
464  not support <xref linkend="delayed-incoming">delayed uploads</xref>.  not support <link linkend="delayed-incoming">delayed uploads</link>.
465  </para>  </para>
466  </section>  </section>
467    
# Line 472  The Debian archive maintainers are respo Line 472  The Debian archive maintainers are respo
472  For the most part, uploads are automatically handled on a daily basis by the  For the most part, uploads are automatically handled on a daily basis by the
473  archive maintenance tools, <command>katie</command>.  Specifically, updates to  archive maintenance tools, <command>katie</command>.  Specifically, updates to
474  existing packages to the <literal>unstable</literal> distribution are handled  existing packages to the <literal>unstable</literal> distribution are handled
475  automatically.  In other cases, notably new packages, placing the uploaded  automatically.  In other cases, notably new packages, placing the uploaded
476  package into the distribution is handled manually.  When uploads are handled  package into the distribution is handled manually.  When uploads are handled
477  manually, the change to the archive may take up to a month to occur.  Please  manually, the change to the archive may take up to a month to occur.  Please
478  be patient.  be patient.
# Line 536  url="&url-bts-devel;#maintincorrect"></u Line 536  url="&url-bts-devel;#maintincorrect"></u
536  <para>  <para>
537  Note that the <literal>Section</literal> field describes both the section as  Note that the <literal>Section</literal> field describes both the section as
538  well as the subsection, which are described in <xref  well as the subsection, which are described in <xref
539  linkend="archive-sections"/> .  If the section is main, it should be omitted.  linkend="archive-sections"/>.  If the section is main, it should be omitted.
540  The list of allowable subsections can be found in <ulink  The list of allowable subsections can be found in <ulink
541  url="&url-debian-policy;ch-archive.html#s-subsections"></ulink>.  url="&url-debian-policy;ch-archive.html#s-subsections"></ulink>.
542  </para>  </para>
# Line 547  url="&url-debian-policy;ch-archive.html# Line 547  url="&url-debian-policy;ch-archive.html#
547  <para>  <para>
548  Every developer has to be able to work with the Debian <ulink  Every developer has to be able to work with the Debian <ulink
549  url="&url-bts;">bug tracking system</ulink>.  This includes  url="&url-bts;">bug tracking system</ulink>.  This includes
550  knowing how to file bug reports properly (see <xref linkend="submit-bug"/> ),  knowing how to file bug reports properly (see <xref linkend="submit-bug"/>),
551  how to update them and reorder them, and how to process and close them.  how to update them and reorder them, and how to process and close them.
552  </para>  </para>
553  <para>  <para>
# Line 600  address. Line 600  address.
600  <para>  <para>
601  When responding to bugs, make sure that any discussion you have about bugs is  When responding to bugs, make sure that any discussion you have about bugs is
602  sent both to the original submitter of the bug, and to the bug itself (e.g.,  sent both to the original submitter of the bug, and to the bug itself (e.g.,
603  <email>123@&bugs-host;</email>).  If you're writing a new mail and you  <email><replaceable>123</replaceable>@&bugs-host;</email>).  If you're writing a new mail and you
604  don't remember the submitter email address, you can use the  don't remember the submitter email address, you can use the
605  <email>123-submitter@&bugs-host;</email> email to contact the submitter  <email><replaceable>123</replaceable>-submitter@&bugs-host;</email> email to contact the submitter
606  <emphasis>and</emphasis> to record your mail within the bug log (that means you  <emphasis>and</emphasis> to record your mail within the bug log (that means you
607  don't need to send a copy of the mail to <email>123@&bugs-host;</email>).  don't need to send a copy of the mail to <email><replaceable>123</replaceable>@&bugs-host;</email>).
608  </para>  </para>
609  <para>  <para>
610  If you get a bug which mentions FTBFS, this means Fails to build from source.  If you get a bug which mentions FTBFS, this means Fails to build from source.
# Line 613  Porters frequently use this acronym. Line 613  Porters frequently use this acronym.
613  <para>  <para>
614  Once you've dealt with a bug report (e.g.  fixed it), mark it as  Once you've dealt with a bug report (e.g.  fixed it), mark it as
615  <literal>done</literal> (close it) by sending an explanation message to  <literal>done</literal> (close it) by sending an explanation message to
616  <email>123-done@&bugs-host;</email>.  If you're fixing a bug by changing  <email><replaceable>123</replaceable>-done@&bugs-host;</email>.  If you're fixing a bug by changing
617  and uploading the package, you can automate bug closing as described in <xref  and uploading the package, you can automate bug closing as described in <xref
618  linkend="upload-bugfix"/> .  linkend="upload-bugfix"/>.
619  </para>  </para>
620  <para>  <para>
621  You should <emphasis>never</emphasis> close bugs via the bug server  You should <emphasis>never</emphasis> close bugs via the bug server
# Line 678  the right package.  If you don't know wh Line 678  the right package.  If you don't know wh
678  you should ask for help on <link linkend="irc-channels">IRC</link> or  you should ask for help on <link linkend="irc-channels">IRC</link> or
679  on &email-debian-devel;.  Please inform the maintainer(s) of the package  on &email-debian-devel;.  Please inform the maintainer(s) of the package
680  you reassign the bug to, for example by Cc:ing the message that does the  you reassign the bug to, for example by Cc:ing the message that does the
681  reassign to <email>packagename@packages.debian.org</email> and explaining  reassign to <email><replaceable>packagename</replaceable>@packages.debian.org</email> and explaining
682  your reasons in that mail. Please note that a simple reassignment is  your reasons in that mail. Please note that a simple reassignment is
683  <emphasis>not</emphasis> e-mailed to the maintainers of the package  <emphasis>not</emphasis> e-mailed to the maintainers of the package
684  being reassigned to, so they won't know about it until they look at  being reassigned to, so they won't know about it until they look at
# Line 740  bug as <literal>patch</literal>. Line 740  bug as <literal>patch</literal>.
740  <listitem>  <listitem>
741  <para>  <para>
742  If you have fixed a bug in your local copy, or if a fix has been committed to  If you have fixed a bug in your local copy, or if a fix has been committed to
743  the CVS repository, you may tag the bug as <literal>pending</literal> to let  the VCS repository, you may tag the bug as <literal>pending</literal> to let
744  people know that the bug is corrected and that it will be closed with the next  people know that the bug is corrected and that it will be closed with the next
745  upload (add the <literal>closes:</literal> in the  upload (add the <literal>closes:</literal> in the
746  <filename>changelog</filename>).  This is particularly useful if you are  <filename>changelog</filename>).  This is particularly useful if you are
# Line 792  closing changelogs are identified: Line 792  closing changelogs are identified:
792  We prefer the <literal>closes: #<replaceable>XXX</replaceable></literal>  We prefer the <literal>closes: #<replaceable>XXX</replaceable></literal>
793  syntax, as it is the most concise entry and the easiest to integrate with the  syntax, as it is the most concise entry and the easiest to integrate with the
794  text of the <filename>changelog</filename>.  Unless specified different by the  text of the <filename>changelog</filename>.  Unless specified different by the
795  <replaceable>-v</replaceable>-switch to <command>dpkg-buildpackage</command>,  <literal>-v</literal>-switch to <command>dpkg-buildpackage</command>,
796  only the bugs closed in the most recent changelog entry are closed (basically,  only the bugs closed in the most recent changelog entry are closed (basically,
797  exactly the bugs mentioned in the changelog-part in the  exactly the bugs mentioned in the changelog-part in the
798  <filename>.changes</filename> file are closed).  <filename>.changes</filename> file are closed).
799  </para>  </para>
800  <para>  <para>
801  Historically, uploads identified as <link linkend="nmu">Non-maintainer  Historically, uploads identified as <link linkend="nmu">non-maintainer
802  upload (NMU)</link> were tagged <literal>fixed</literal> instead of being  upload (NMU)</link> were tagged <literal>fixed</literal> instead of being
803  closed, but that practice was ceased with the advent of version-tracking.  The  closed, but that practice was ceased with the advent of version-tracking.  The
804  same applied to the tag <literal>fixed-in-experimental</literal>.  same applied to the tag <literal>fixed-in-experimental</literal>.
# Line 810  bugs, send a <literal>reopen <replaceabl Line 810  bugs, send a <literal>reopen <replaceabl
810  to the bug tracking system's control address,  to the bug tracking system's control address,
811  &email-bts-control;.  To close any remaining bugs that were  &email-bts-control;.  To close any remaining bugs that were
812  fixed by your upload, email the <filename>.changes</filename> file to  fixed by your upload, email the <filename>.changes</filename> file to
813  <email>XXX-done@&bugs-host;</email>, where <replaceable>XXX</replaceable>  <email><replaceable>XXX</replaceable>-done@&bugs-host;</email>, where <replaceable>XXX</replaceable>
814  is the bug number, and put Version: YYY and an empty line as the first two  is the bug number, and put Version: <replaceable>YYY</replaceable> and an empty line as the first two
815  lines of the body of the email, where <replaceable>YYY</replaceable> is the  lines of the body of the email, where <replaceable>YYY</replaceable> is the
816  first version where the bug has been fixed.  first version where the bug has been fixed.
817  </para>  </para>
# Line 819  first version where the bug has been fix Line 819  first version where the bug has been fix
819  Bear in mind that it is not obligatory to close bugs using the changelog as  Bear in mind that it is not obligatory to close bugs using the changelog as
820  described above.  If you simply want to close bugs that don't have anything to  described above.  If you simply want to close bugs that don't have anything to
821  do with an upload you made, do it by emailing an explanation to  do with an upload you made, do it by emailing an explanation to
822  <email>XXX-done@&bugs-host;</email>.  Do <emphasis  <email><replaceable>XXX</replaceable>-done@&bugs-host;</email>.  Do <emphasis
823  role="strong">not</emphasis> close bugs in the changelog entry of a version if  role="strong">not</emphasis> close bugs in the changelog entry of a version if
824  the changes in that version of the package don't have any bearing on the bug.  the changes in that version of the package don't have any bearing on the bug.
825  </para>  </para>
826  <para>  <para>
827  For general information on how to write your changelog entries, see <xref  For general information on how to write your changelog entries, see <xref
828  linkend="bpp-debian-changelog"/> .  linkend="bpp-debian-changelog"/>.
829  </para>  </para>
830  </section>  </section>
831    
# Line 850  without contacting the team.  Useful inf Line 850  without contacting the team.  Useful inf
850  <listitem>  <listitem>
851  <para>  <para>
852  Which versions of the package are known to be affected by the bug.  Check each  Which versions of the package are known to be affected by the bug.  Check each
853  version that is present in a supported Debian release, as well as  version that is present in a supported Debian release, as well as
854  <literal>testing</literal> and <literal>unstable</literal>.  <literal>testing</literal> and <literal>unstable</literal>.
855  </para>  </para>
856  </listitem>  </listitem>
# Line 862  The nature of the fix, if any is availab Line 862  The nature of the fix, if any is availab
862  <listitem>  <listitem>
863  <para>  <para>
864  Any fixed packages that you have prepared yourself (send only the  Any fixed packages that you have prepared yourself (send only the
865  <literal>.diff.gz</literal> and <literal>.dsc</literal> files and read <xref  <filename>.diff.gz</filename> and <filename>.dsc</filename> files and read <xref
866  linkend="bug-security-building"/> first)  linkend="bug-security-building"/> first)
867  </para>  </para>
868  </listitem>  </listitem>
# Line 875  testing, etc.) Line 875  testing, etc.)
875  <listitem>  <listitem>
876  <para>  <para>
877  Any information needed for the advisory (see <xref  Any information needed for the advisory (see <xref
878  linkend="bug-security-advisories"/> )  linkend="bug-security-advisories"/>)
879  </para>  </para>
880  </listitem>  </listitem>
881  </itemizedlist>  </itemizedlist>
# Line 960  release of Debian.  When sending confide Line 960  release of Debian.  When sending confide
960  be sure to mention this fact.  be sure to mention this fact.
961  </para>  </para>
962  <para>  <para>
963  Please note that if secrecy is needed you may not upload a fix to  Please note that if secrecy is needed you may not upload a fix to
964  <literal>unstable</literal> (or  <literal>unstable</literal> (or
965  anywhere else, such as a public CVS repository).  It is not sufficient to  anywhere else, such as a public VCS repository).  It is not sufficient to
966  obfuscate the details of the change, as the code itself is public, and can (and  obfuscate the details of the change, as the code itself is public, and can (and
967  will) be examined by the general public.  will) be examined by the general public.
968  </para>  </para>
# Line 1103  the previous version repeatedly (<comman Line 1103  the previous version repeatedly (<comman
1103  <systemitem role="package">patchutils</systemitem> package and  <systemitem role="package">patchutils</systemitem> package and
1104  <command>debdiff</command> from <systemitem  <command>debdiff</command> from <systemitem
1105  role="package">devscripts</systemitem> are useful tools for this, see <xref  role="package">devscripts</systemitem> are useful tools for this, see <xref
1106  linkend="debdiff"/> ).  linkend="debdiff"/>).
1107  </para>  </para>
1108  <para>  <para>
1109  Be sure to verify the following items:  Be sure to verify the following items:
# Line 1138  process. The identifier can be cross-ref Line 1138  process. The identifier can be cross-ref
1138  </listitem>  </listitem>
1139  <listitem>  <listitem>
1140  <para>  <para>
1141  Make sure the <emphasis role="strong">version number</emphasis> is proper.  Make sure the <emphasis role="strong">version number</emphasis> is proper.
1142  It must be greater than the current package, but less than package versions in  It must be greater than the current package, but less than package versions in
1143  later distributions.  If in doubt, test it with <literal>dpkg  later distributions.  If in doubt, test it with <literal>dpkg
1144  --compare-versions</literal>.  Be careful not to re-use a version number that  --compare-versions</literal>.  Be careful not to re-use a version number that
1145  you have already used for a previous upload, or one that conflicts with a  you have already used for a previous upload, or one that conflicts with a
1146  binNMU. The convention is to append  binNMU. The convention is to append
1147  <literal>+</literal><replaceable>codename</replaceable><literal>1</literal>, e.g.  <literal>+</literal><replaceable>codename</replaceable><literal>1</literal>, e.g.
1148  <literal>1:2.4.3-4+etch1</literal>, of course increasing 1 for any subsequent  <literal>1:2.4.3-4+lenny1</literal>, of course increasing 1 for any subsequent
1149  uploads.  uploads.
1150  </para>  </para>
1151  </listitem>  </listitem>
# Line 1156  Unless the upstream source has been uplo Line 1156  Unless the upstream source has been uplo
1156  role="strong">with full upstream source</emphasis> (<literal>dpkg-buildpackage  role="strong">with full upstream source</emphasis> (<literal>dpkg-buildpackage
1157  -sa</literal>).  If there has been a previous upload to  -sa</literal>).  If there has been a previous upload to
1158  <literal>security.debian.org</literal> with the same upstream version, you may  <literal>security.debian.org</literal> with the same upstream version, you may
1159  upload without upstream source (<literal> dpkg-buildpackage -sd</literal>).  upload without upstream source (<literal>dpkg-buildpackage -sd</literal>).
1160  </para>  </para>
1161  </listitem>  </listitem>
1162  <listitem>  <listitem>
1163  <para>  <para>
1164  Be sure to use the <emphasis role="strong">exact same  Be sure to use the <emphasis role="strong">exact same
1165  <filename>*.orig.tar.{gz,bz2}</filename></emphasis> as used in the  <filename>*.orig.tar.{gz,bz2,lzma}</filename></emphasis> as used in the
1166  normal archive, otherwise it is not possible to move the security fix into the  normal archive, otherwise it is not possible to move the security fix into the
1167  main archives later.  main archives later.
1168  </para>  </para>
# Line 1172  main archives later. Line 1172  main archives later.
1172  Build the package on a <emphasis role="strong">clean system</emphasis> which only  Build the package on a <emphasis role="strong">clean system</emphasis> which only
1173  has packages installed from the distribution you are building for. If you do not  has packages installed from the distribution you are building for. If you do not
1174  have such a system yourself, you can use a debian.org machine (see  have such a system yourself, you can use a debian.org machine (see
1175  <xref linkend="server-machines"/> ) or setup a chroot (see  <xref linkend="server-machines"/>) or setup a chroot (see
1176  <xref linkend="pbuilder"/> and <xref linkend="debootstrap"/> ).  <xref linkend="pbuilder"/> and <xref linkend="debootstrap"/>).
1177  </para>  </para>
1178  </listitem>  </listitem>
1179  </itemizedlist>  </itemizedlist>
# Line 1183  have such a system yourself, you can use Line 1183  have such a system yourself, you can use
1183  <title>Uploading the fixed package</title>  <title>Uploading the fixed package</title>
1184  <para>  <para>
1185  Do <emphasis role="strong">NOT</emphasis> upload a package to the security  Do <emphasis role="strong">NOT</emphasis> upload a package to the security
1186  upload queue (<literal>oldstable-security</literal>, <literal>stable-security  upload queue (<literal>oldstable-security</literal>, <literal>stable-security</literal>,
1187  </literal>, etc.) without prior authorization from the security team.  If the  etc.) without prior authorization from the security team.  If the
1188  package does not exactly meet the team's requirements, it will cause many  package does not exactly meet the team's requirements, it will cause many
1189  problems and delays in dealing with the unwanted upload.  problems and delays in dealing with the unwanted upload.
1190  </para>  </para>
1191  <para>  <para>
1192  Do <emphasis role="strong">NOT</emphasis> upload your fix to <literal>  Do <emphasis role="strong">NOT</emphasis> upload your fix to
1193  proposed-updates</literal> without coordinating with the security team.  <literal>proposed-updates</literal> without coordinating with the security team.
1194  Packages from <literal>security.debian.org</literal> will be copied into  Packages from <literal>security.debian.org</literal> will be copied into
1195  the <literal>proposed-updates</literal> directory automatically.  If a package  the <literal>proposed-updates</literal> directory automatically.  If a package
1196  with the same or a higher version number is already installed into the archive,  with the same or a higher version number is already installed into the archive,
# Line 1202  instead. Line 1202  instead.
1202  Once you have created and tested the new package and it has been approved by  Once you have created and tested the new package and it has been approved by
1203  the security team, it needs to be uploaded so that it can be installed in the  the security team, it needs to be uploaded so that it can be installed in the
1204  archives.  For security uploads, the place to upload to is  archives.  For security uploads, the place to upload to is
1205  <literal>ftp://security-master.debian.org/pub/SecurityUploadQueue/</literal> .  <literal>ftp://security-master.debian.org/pub/SecurityUploadQueue/</literal>.
1206  </para>  </para>
1207  <para>  <para>
1208  Once an upload to the security queue has been accepted, the package will  Once an upload to the security queue has been accepted, the package will
# Line 1248  control information to place the package Line 1248  control information to place the package
1248  the package (see the <ulink  the package (see the <ulink
1249  url="&url-debian-policy;">Debian Policy Manual</ulink> for  url="&url-debian-policy;">Debian Policy Manual</ulink> for
1250  details).  You must ensure that you include the  details).  You must ensure that you include the
1251  <filename>.orig.tar.{gz,bz2}</filename> in your upload (even if you are not uploading  <filename>.orig.tar.{gz,bz2,lzma}</filename> in your upload (even if you are not uploading
1252  a new upstream version), or it will not appear in the new section together with  a new upstream version), or it will not appear in the new section together with
1253  the rest of the package.  If your new section is valid, it will be moved  the rest of the package.  If your new section is valid, it will be moved
1254  automatically.  If it does not, then contact the ftpmasters in order to  automatically.  If it does not, then contact the ftpmasters in order to
# Line 1259  If, on the other hand, you need to chang Line 1259  If, on the other hand, you need to chang
1259  of one of your packages (e.g., ``devel'', ``admin''), the procedure is slightly  of one of your packages (e.g., ``devel'', ``admin''), the procedure is slightly
1260  different.  Correct the subsection as found in the control file of the package,  different.  Correct the subsection as found in the control file of the package,
1261  and re-upload that.  Also, you'll need to get the override file updated, as  and re-upload that.  Also, you'll need to get the override file updated, as
1262  described in <xref linkend="override-file"/> .  described in <xref linkend="override-file"/>.
1263  </para>  </para>
1264  </section>  </section>
1265    
# Line 1270  If for some reason you want to completel Line 1270  If for some reason you want to completel
1270  old compatibility library which is no longer required), you need to file a bug  old compatibility library which is no longer required), you need to file a bug
1271  against <literal>ftp.debian.org</literal> asking that the package be removed;  against <literal>ftp.debian.org</literal> asking that the package be removed;
1272  as all bugs, this bug should normally have normal severity.  as all bugs, this bug should normally have normal severity.
1273  The bug title should be in the form <literal>RM: <replaceable>package  The bug title should be in the form <literal>RM: <replaceable>package</replaceable>
1274  </replaceable> <replaceable>[architecture list]</replaceable> --  <replaceable>[architecture list]</replaceable> --
1275  <replaceable>reason</replaceable></literal>, where <replaceable>package</replaceable>  <replaceable>reason</replaceable></literal>, where <replaceable>package</replaceable>
1276  is the package to be removed and <replaceable>reason</replaceable> is a  is the package to be removed and <replaceable>reason</replaceable> is a
1277  short summary of the reason for the removal request.  short summary of the reason for the removal request.
1278  <replaceable>[architecture list]</replaceable> is optional and only needed  <replaceable>[architecture list]</replaceable> is optional and only needed
1279  if the removal request only applies to some architectures, not all. Note  if the removal request only applies to some architectures, not all. Note
1280  that the <command>reportbug</command> will create a title conforming  that the <command>reportbug</command> will create a title conforming
1281  to these rules when you use it to report a bug against the <literal>  to these rules when you use it to report a bug against the
1282  ftp.debian.org</literal> pseudo-package.  <literal>ftp.debian.org</literal> pseudo-package.
1283  </para>  </para>
1284    
1285  <para>  <para>
# Line 1292  pending removal requests. Line 1292  pending removal requests.
1292  </para>  </para>
1293    
1294  <para>  <para>
1295  Note that removals can only be done for the <literal>unstable  Note that removals can only be done for the <literal>unstable</literal>,
1296  </literal>, <literal>experimental</literal> and <literal>stable  <literal>experimental</literal> and <literal>stable</literal>
1297  </literal> distribution.  Packages are not removed from  distribution.  Packages are not removed from
1298  <literal>testing</literal> directly.  Rather, they will be removed  <literal>testing</literal> directly.  Rather, they will be removed
1299  automatically after the package has been removed from  automatically after the package has been removed from
1300  <literal>unstable</literal> and no package in <literal>testing  <literal>unstable</literal> and no package in
1301  </literal> depends on it.  <literal>testing</literal> depends on it.
1302  </para>  </para>
1303  <para>  <para>
1304  There is one exception when an explicit removal request is not necessary: If a  There is one exception when an explicit removal request is not necessary: If a
# Line 1337  the <command>apt-cache</command> program Line 1337  the <command>apt-cache</command> program
1337  role="package">apt</systemitem> package.  When invoked as <literal>apt-cache  role="package">apt</systemitem> package.  When invoked as <literal>apt-cache
1338  showpkg <replaceable>package</replaceable></literal>, the program will show  showpkg <replaceable>package</replaceable></literal>, the program will show
1339  details for <replaceable>package</replaceable>, including reverse depends.  details for <replaceable>package</replaceable>, including reverse depends.
1340  Other useful programs include <literal>apt-cache rdepends</literal>,  Other useful programs include <command>apt-cache rdepends</command>,
1341  <command>apt-rdepends</command>, <command>build-rdeps</command> (in the  <command>apt-rdepends</command>, <command>build-rdeps</command> (in the
1342  <systemitem role="package">devscripts</systemitem> package) and  <systemitem role="package">devscripts</systemitem> package) and
1343  <command>grep-dctrl</command>.  Removal of  <command>grep-dctrl</command>.  Removal of
# Line 1379  rename their software (or you made a mis Line 1379  rename their software (or you made a mis
1379  you should follow a two-step process to rename it. In the first  you should follow a two-step process to rename it. In the first
1380  step, change the <filename>debian/control</filename> file to  step, change the <filename>debian/control</filename> file to
1381  reflect the new name and to replace, provide and conflict with the  reflect the new name and to replace, provide and conflict with the
1382  obsolete package name (see the <ulink url="&url-debian-policy;">  obsolete package name (see the <ulink url="&url-debian-policy;">Debian
1383  Debian Policy Manual</ulink> for details).  Please note that you  Policy Manual</ulink> for details).  Please note that you
1384  should only add a <literal>Provides</literal> relation if all  should only add a <literal>Provides</literal> relation if all
1385  packages depending on the obsolete package name continue to work  packages depending on the obsolete package name continue to work
1386  after the renaming. Once you've uploaded the package and the package  after the renaming. Once you've uploaded the package and the package
1387  has moved into the archive, file a bug against <literal>  has moved into the archive, file a bug against <literal>ftp.debian.org</literal>
1388  ftp.debian.org</literal> asking to remove the package with the  asking to remove the package with the
1389  obsolete name (see <xref linkend="removing-pkgs"/>).  Do not forget  obsolete name (see <xref linkend="removing-pkgs"/>).  Do not forget
1390  to properly reassign the package's bugs at the same time.  to properly reassign the package's bugs at the same time.
1391  </para>  </para>
# Line 1448  information and procedures. Line 1448  information and procedures.
1448  It is not OK to simply take over a package that you feel is neglected — that  It is not OK to simply take over a package that you feel is neglected — that
1449  would be package hijacking.  You can, of course, contact the current maintainer  would be package hijacking.  You can, of course, contact the current maintainer
1450  and ask them if you may take over the package.  If you have reason to believe a  and ask them if you may take over the package.  If you have reason to believe a
1451  maintainer has gone AWOL (absent without leave), see <xref linkend="mia-qa"/> .  maintainer has gone AWOL (absent without leave), see <xref linkend="mia-qa"/>.
1452  </para>  </para>
1453  <para>  <para>
1454  Generally, you may not take over the package without the assent of the current  Generally, you may not take over the package without the assent of the current
# Line 1464  more information). Line 1464  more information).
1464  If you take over an old package, you probably want to be listed as the  If you take over an old package, you probably want to be listed as the
1465  package's official maintainer in the bug system.  This will happen  package's official maintainer in the bug system.  This will happen
1466  automatically once you upload a new version with an updated  automatically once you upload a new version with an updated
1467  <literal>Maintainer:</literal> field, although it can take a few hours after  <literal>Maintainer</literal> field, although it can take a few hours after
1468  the upload is done.  If you do not expect to upload a new version for a while,  the upload is done.  If you do not expect to upload a new version for a while,
1469  you can use <xref linkend="pkg-tracking-system"/> to get the bug reports.  you can use <xref linkend="pkg-tracking-system"/> to get the bug reports.
1470  However, make sure that the old maintainer has no problem with the fact that  However, make sure that the old maintainer has no problem with the fact that
# Line 1487  Porting is the act of building Debian pa Line 1487  Porting is the act of building Debian pa
1487  different from the original architecture of the package maintainer's binary  different from the original architecture of the package maintainer's binary
1488  package.  It is a unique and essential activity.  In fact, porters do most of  package.  It is a unique and essential activity.  In fact, porters do most of
1489  the actual compiling of Debian packages.  For instance, when a maintainer  the actual compiling of Debian packages.  For instance, when a maintainer
1490  uploads a (portable) source packages with binaries for the <literal>i386  uploads a (portable) source packages with binaries for the <literal>i386</literal>
1491  </literal> architecture, it will be built for each of the other architectures,  architecture, it will be built for each of the other architectures,
1492  amounting to &number-of-arches; more builds.  amounting to &number-of-arches; more builds.
1493  </para>  </para>
1494  <section id="kind-to-porters">  <section id="kind-to-porters">
# Line 1521  Make sure that your <literal>Build-Depen Line 1521  Make sure that your <literal>Build-Depen
1521  <filename>debian/control</filename> are set properly.  The best way to validate  <filename>debian/control</filename> are set properly.  The best way to validate
1522  this is to use the <systemitem role="package">debootstrap</systemitem> package  this is to use the <systemitem role="package">debootstrap</systemitem> package
1523  to create an <literal>unstable</literal> chroot environment (see <xref  to create an <literal>unstable</literal> chroot environment (see <xref
1524  linkend="debootstrap"/> ).  linkend="debootstrap"/>).
1525  Within that chrooted environment, install the <systemitem  Within that chrooted environment, install the <systemitem
1526  role="package">build-essential</systemitem> package and any package  role="package">build-essential</systemitem> package and any package
1527  dependencies mentioned in <literal>Build-Depends</literal> and/or  dependencies mentioned in <literal>Build-Depends</literal> and/or
1528  <literal>Build-Depends-Indep</literal>.  Finally, try building your package  <literal>Build-Depends-Indep</literal>.  Finally, try building your package
1529  within that chrooted environment.  These steps can be automated by the use of  within that chrooted environment.  These steps can be automated by the use of
1530  the <command>pbuilder</command> program which is provided by the package of the  the <command>pbuilder</command> program which is provided by the package of the
1531  same name (see <xref linkend="pbuilder"/> ).  same name (see <xref linkend="pbuilder"/>).
1532  </para>  </para>
1533  <para>  <para>
1534  If you can't set up a proper chroot, <command>dpkg-depcheck</command> may be of  If you can't set up a proper chroot, <command>dpkg-depcheck</command> may be of
1535  assistance (see <xref linkend="dpkg-depcheck"/> ).  assistance (see <xref linkend="dpkg-depcheck"/>).
1536  </para>  </para>
1537  <para>  <para>
1538  See the <ulink url="&url-debian-policy;">Debian Policy  See the <ulink url="&url-debian-policy;">Debian Policy
# Line 1541  Manual</ulink> for instructions on setti Line 1541  Manual</ulink> for instructions on setti
1541  </listitem>  </listitem>
1542  <listitem>  <listitem>
1543  <para>  <para>
1544  Don't set architecture to a value other than <literal>all</literal> or  Don't set architecture to a value other than <literal>all</literal> or
1545  <literal>any</literal> unless you really mean it.  In too many cases,  <literal>any</literal> unless you really mean it.  In too many cases,
1546  maintainers don't follow the instructions in the <ulink  maintainers don't follow the instructions in the <ulink
1547  url="&url-debian-policy;">Debian Policy Manual</ulink>.  Setting your  url="&url-debian-policy;">Debian Policy Manual</ulink>.  Setting your
1548  architecture to only one architecture (such as <literal>i386</literal>  architecture to only one architecture (such as <literal>i386</literal>
1549  or <literal>amd64</literal>) is usually incorrect.  or <literal>amd64</literal>) is usually incorrect.
# Line 1592  standardize on different compilers. Line 1592  standardize on different compilers.
1592  </listitem>  </listitem>
1593  <listitem>  <listitem>
1594  <para>  <para>
1595  Make sure your debian/rules contains separate <literal>binary-arch</literal>  Make sure your <filename>debian/rules</filename> contains separate <literal>binary-arch</literal>
1596  and <literal>binary-indep</literal> targets, as the Debian Policy Manual  and <literal>binary-indep</literal> targets, as the Debian Policy Manual
1597  requires.  Make sure that both targets work independently, that is, that you  requires.  Make sure that both targets work independently, that is, that you
1598  can call the target without having called the other before.  To test this,  can call the target without having called the other before.  To test this,
1599  try to run <command>dpkg-buildpackage -B</command>.  try to run <command>dpkg-buildpackage -B</command>.
# Line 1623  The way to invoke <command>dpkg-buildpac Line 1623  The way to invoke <command>dpkg-buildpac
1623  -m<replaceable>porter-email</replaceable></literal>.  Of course, set  -m<replaceable>porter-email</replaceable></literal>.  Of course, set
1624  <replaceable>porter-email</replaceable> to your email address.  This will do a  <replaceable>porter-email</replaceable> to your email address.  This will do a
1625  binary-only build of only the architecture-dependent portions of the package,  binary-only build of only the architecture-dependent portions of the package,
1626  using the <literal>binary-arch</literal> target in <filename>debian/rules  using the <literal>binary-arch</literal> target in
1627  </filename>.  <filename>debian/rules</filename>.
1628  </para>  </para>
1629  <para>  <para>
1630  If you are working on a Debian machine for your porting efforts and you need to  If you are working on a Debian machine for your porting efforts and you need to
# Line 1638  it signed conveniently, or use the remot Line 1638  it signed conveniently, or use the remot
1638  <para>  <para>
1639  Sometimes the initial porter upload is problematic because the environment in  Sometimes the initial porter upload is problematic because the environment in
1640  which the package was built was not good enough (outdated or obsolete library,  which the package was built was not good enough (outdated or obsolete library,
1641  bad compiler, ...).  Then you may just need to recompile it in an updated  bad compiler, etc.).  Then you may just need to recompile it in an updated
1642  environment.  However, you have to bump the version number in this case, so  environment.  However, you have to bump the version number in this case, so
1643  that the old bad package can be replaced in the Debian archive  that the old bad package can be replaced in the Debian archive
1644  (<command>dak</command> refuses to install new packages if they don't have a  (<command>dak</command> refuses to install new packages if they don't have a
# Line 1648  version number greater than the currentl Line 1648  version number greater than the currentl
1648  You have to make sure that your binary-only NMU doesn't render the package  You have to make sure that your binary-only NMU doesn't render the package
1649  uninstallable.  This could happen when a source package generates  uninstallable.  This could happen when a source package generates
1650  arch-dependent and arch-independent packages that have inter-dependencies  arch-dependent and arch-independent packages that have inter-dependencies
1651  generated using dpkg's substitution variable <literal>$(Source-Version)  generated using dpkg's substitution variable <literal>$(Source-Version)</literal>.
 </literal>.  
1652  </para>  </para>
1653  <para>  <para>
1654  Despite the required modification of the changelog, these are called  Despite the required modification of the changelog, these are called
# Line 1665  source code). Line 1664  source code).
1664  </para>  </para>
1665  <para>  <para>
1666  The ``magic'' for a recompilation-only NMU is triggered by using a suffix  The ``magic'' for a recompilation-only NMU is triggered by using a suffix
1667  appended to the package version number, following the form <literal>  appended to the package version number, following the form
1668  b<replaceable>number</replaceable></literal>.  <literal>b<replaceable>number</replaceable></literal>.
1669  For instance, if the latest version you are recompiling against was version  For instance, if the latest version you are recompiling against was version
1670  <literal>2.9-3</literal>, your binary-only NMU should carry a version of  <literal>2.9-3</literal>, your binary-only NMU should carry a version of
1671  <literal>2.9-3+b1</literal>.  If the latest version was <literal>3.4+b1  <literal>2.9-3+b1</literal>.  If the latest version was <literal>3.4+b1</literal>
1672  </literal> (i.e, a native package with a previous recompilation NMU), your  (i.e, a native package with a previous recompilation NMU), your
1673  binary-only NMU should have a version number of <literal>3.4+b2</literal>.  binary-only NMU should have a version number of <literal>3.4+b2</literal>.<footnote><para>
1674  <footnote><para> In the past, such NMUs used the third-level number on the  In the past, such NMUs used the third-level number on the
1675  Debian part of the revision to denote their recompilation-only status;  Debian part of the revision to denote their recompilation-only status;
1676  however, this syntax was ambiguous with native packages and did not allow  however, this syntax was ambiguous with native packages and did not allow
1677  proper ordering of recompile-only NMUs, source NMUs, and security NMUs on  proper ordering of recompile-only NMUs, source NMUs, and security NMUs on
# Line 1690  to only build the architecture-dependent Line 1689  to only build the architecture-dependent
1689  <title>When to do a source NMU if you are a porter</title>  <title>When to do a source NMU if you are a porter</title>
1690  <para>  <para>
1691  Porters doing a source NMU generally follow the guidelines found in <xref  Porters doing a source NMU generally follow the guidelines found in <xref
1692  linkend="nmu"/> , just like non-porters.  However, it is expected that the wait  linkend="nmu"/>, just like non-porters.  However, it is expected that the wait
1693  cycle for a porter's source NMU is smaller than for a non-porter, since porters  cycle for a porter's source NMU is smaller than for a non-porter, since porters
1694  have to cope with a large quantity of packages.  Again, the situation varies  have to cope with a large quantity of packages.  Again, the situation varies
1695  depending on the distribution they are uploading to.  It also varies whether  depending on the distribution they are uploading to.  It also varies whether
# Line 1698  the architecture is a candidate for incl Line 1697  the architecture is a candidate for incl
1697  release managers decide and announce which architectures are candidates.  release managers decide and announce which architectures are candidates.
1698  </para>  </para>
1699  <para>  <para>
1700  If you are a porter doing an NMU for <literal>unstable</literal>, the above  If you are a porter doing an NMU for <literal>unstable</literal>, the above
1701  guidelines for porting should be followed, with two variations.  Firstly, the  guidelines for porting should be followed, with two variations.  Firstly, the
1702  acceptable waiting period — the time between when the bug is submitted to  acceptable waiting period — the time between when the bug is submitted to
1703  the BTS and when it is OK to do an NMU — is seven days for porters working  the BTS and when it is OK to do an NMU — is seven days for porters working
# Line 1706  on the <literal>unstable</literal> distr Line 1705  on the <literal>unstable</literal> distr
1705  if the problem is critical and imposes hardship on the porting effort, at the  if the problem is critical and imposes hardship on the porting effort, at the
1706  discretion of the porter group.  (Remember, none of this is Policy, just  discretion of the porter group.  (Remember, none of this is Policy, just
1707  mutually agreed upon guidelines.) For uploads to <literal>stable</literal> or  mutually agreed upon guidelines.) For uploads to <literal>stable</literal> or
1708  <literal>testing </literal>, please coordinate with the appropriate release  <literal>testing</literal>, please coordinate with the appropriate release
1709  team first.  team first.
1710  </para>  </para>
1711  <para>  <para>
1712  Secondly, porters doing source NMUs should make sure that the bug they submit  Secondly, porters doing source NMUs should make sure that the bug they submit
1713  to the BTS should be of severity <literal>serious</literal> or greater.  This  to the BTS should be of severity <literal>serious</literal> or greater.  This
1714  ensures that a single source package can be used to compile every supported  ensures that a single source package can be used to compile every supported
1715  Debian architecture by release time.  It is very important that we have one  Debian architecture by release time.  It is very important that we have one
1716  version of the binary and source package for all architectures in order to  version of the binary and source package for all architectures in order to
1717  comply with many licenses.  comply with many licenses.
# Line 1760  with the porters. Line 1759  with the porters.
1759  <title>Porter tools</title>  <title>Porter tools</title>
1760  <para>  <para>
1761  Descriptions of several porting tools can be found in <xref  Descriptions of several porting tools can be found in <xref
1762  linkend="tools-porting"/> .  linkend="tools-porting"/>.
1763  </para>  </para>
1764  </section>  </section>
1765    
# Line 1769  linkend="tools-porting"/> . Line 1768  linkend="tools-porting"/> .
1768  <para>  <para>
1769  The <systemitem role="package">wanna-build</systemitem> system is used as a  The <systemitem role="package">wanna-build</systemitem> system is used as a
1770  distributed, client-server build distribution system.  It is usually used in  distributed, client-server build distribution system.  It is usually used in
1771  conjunction with build daemons running the <systemitem role="package">buildd  conjunction with build daemons running the <systemitem role="package">buildd</systemitem>
1772  </systemitem> program. <literal>Build daemons</literal> are ``slave'' hosts  program. <literal>Build daemons</literal> are ``slave'' hosts
1773  which contact the central <systemitem role="package"> wanna-build</systemitem>  which contact the central <systemitem role="package">wanna-build</systemitem>
1774  system to receive a list of packages that need to be built.  system to receive a list of packages that need to be built.
1775  </para>  </para>
1776  <para>  <para>
1777  <systemitem role="package">wanna-build</systemitem> is not yet available as a  <systemitem role="package">wanna-build</systemitem> is not yet available as a
1778  package; however, all Debian porting efforts are using it for automated  package; however, all Debian porting efforts are using it for automated
1779  package building.  The tool used to do the actual package builds, <systemitem  package building.  The tool used to do the actual package builds, <systemitem
1780  role="package">sbuild</systemitem> is available as a package, see its  role="package">sbuild</systemitem> is available as a package, see its
1781  description in <xref linkend="sbuild"/> .  Please note that the packaged  description in <xref linkend="sbuild"/>.  Please note that the packaged
1782  version is not the same as the one used on build daemons, but it is close  version is not the same as the one used on build daemons, but it is close
1783  enough to reproduce problems.  enough to reproduce problems.
1784  </para>  </para>
1785  <para>  <para>
1786  Most of the data produced by <systemitem role="package">wanna-build  Most of the data produced by <systemitem role="package">wanna-build</systemitem>
1787  </systemitem> which is generally useful to porters is available on the  which is generally useful to porters is available on the
1788  web at <ulink url="&url-buildd;"></ulink>.  This data includes nightly  web at <ulink url="&url-buildd;"></ulink>.  This data includes nightly
1789  updated statistics, queueing information and logs for build attempts.  updated statistics, queueing information and logs for build attempts.
1790  </para>  </para>
# Line 1845  fail also, and indicate this to a human Line 1844  fail also, and indicate this to a human
1844  <listitem>  <listitem>
1845  <para>  <para>
1846  In order to prevent autobuilders from needlessly trying to build your package,  In order to prevent autobuilders from needlessly trying to build your package,
1847  it must be included in <filename>packages-arch-specific</filename>, a list used  it must be included in <filename>Packages-arch-specific</filename>, a list used
1848  by the <command>wanna-build</command> script.  The current version is available  by the <command>wanna-build</command> script.  The current version is available
1849  as <ulink url="&url-buildd-p-a-s;"/>;  as <ulink url="&url-buildd-p-a-s;"/>;
1850  please see the top of the file for whom to contact for changes.  please see the top of the file for whom to contact for changes.
# Line 1854  please see the top of the file for whom Line 1853  please see the top of the file for whom
1853  </itemizedlist>  </itemizedlist>
1854  <para>  <para>
1855  Please note that it is insufficient to only add your package to  Please note that it is insufficient to only add your package to
1856  Packages-arch-specific without making it fail to build on unsupported  <filename>Packages-arch-specific</filename> without making it fail to build on unsupported
1857  architectures: A porter or any other person trying to build your package might  architectures: A porter or any other person trying to build your package might
1858  accidently upload it without noticing it doesn't work.  If in the past some  accidently upload it without noticing it doesn't work.  If in the past some
1859  binary packages were uploaded on unsupported architectures, request their  binary packages were uploaded on unsupported architectures, request their
1860  removal by filing a bug against <systemitem  removal by filing a bug against <systemitem
1861  role="package">ftp.debian.org</systemitem>  role="package">ftp.debian.org</systemitem>.
1862  </para>  </para>
1863  </section>  </section>
1864    
# Line 1928  is given an opportunity to upload a fix Line 1927  is given an opportunity to upload a fix
1927  When doing an NMU, you must first make sure that your intention to NMU is  When doing an NMU, you must first make sure that your intention to NMU is
1928  clear.  Then, you must send a patch with the differences between the  clear.  Then, you must send a patch with the differences between the
1929  current package and your proposed NMU to the BTS. The  current package and your proposed NMU to the BTS. The
1930  <literal>nmudiff</literal> script in the <literal>devscripts</literal> package  <command>nmudiff</command> script in the <systemitem role="package">devscripts</systemitem> package
1931  might be helpful.  might be helpful.
1932  </para>  </para>
1933  <para>  <para>
# Line 1937  practices that the maintainer might be u Line 1936  practices that the maintainer might be u
1936  the burden of getting your changes integrated back in the normal package  the burden of getting your changes integrated back in the normal package
1937  workflow and thus increases the possibilities that that will happen. A good  workflow and thus increases the possibilities that that will happen. A good
1938  place where to look for for possible package-specific practices is  place where to look for for possible package-specific practices is
1939  <ulink url="&url-debian-policy;ch-source.html#s-readmesource"><literal>debian/README.source</literal></ulink>.  <ulink url="&url-debian-policy;ch-source.html#s-readmesource"><filename>debian/README.source</filename></ulink>.
1940  </para>  </para>
1941  <para>  <para>
1942  Unless you have an excellent reason not to do so, you must then give some time  Unless you have an excellent reason not to do so, you must then give some time
# Line 1995  defend the wisdom of any NMU you perform Line 1994  defend the wisdom of any NMU you perform
1994  </section>  </section>
1995    
1996  <section id="nmu-changelog">  <section id="nmu-changelog">
1997  <title>NMUs and debian/changelog</title>  <title>NMUs and <filename>debian/changelog</filename></title>
1998  <para>  <para>
1999  Just like any other (source) upload, NMUs must add an entry to  Just like any other (source) upload, NMUs must add an entry to
2000  <literal>debian/changelog</literal>, telling what has changed with this  <filename>debian/changelog</filename>, telling what has changed with this
2001  upload.  The first line of this entry must explicitely mention that this upload is an NMU, e.g.:  upload.  The first line of this entry must explicitely mention that this upload is an NMU, e.g.:
2002  </para>  </para>
2003  <screen>  <screen>
# Line 2009  upload.  The first line of this entry mu Line 2008  upload.  The first line of this entry mu
2008  The way to version NMUs differs for native and non-native packages.  The way to version NMUs differs for native and non-native packages.
2009  </para>  </para>
2010  <para>  <para>
2011  If the package is a native package (without a debian revision in the version number),  If the package is a native package (without a Debian revision in the version number),
2012  the version must be the version of the last maintainer upload, plus  the version must be the version of the last maintainer upload, plus
2013  <literal>+nmu<replaceable>X</replaceable></literal>, where  <literal>+nmu<replaceable>X</replaceable></literal>, where
2014  <replaceable>X</replaceable> is a counter starting at <literal>1</literal>.  <replaceable>X</replaceable> is a counter starting at <literal>1</literal>.
# Line 2020  version <literal>1.5+nmu1</literal>. Line 2019  version <literal>1.5+nmu1</literal>.
2019  </para>  </para>
2020  <para>  <para>
2021  If the package is a not a native package, you should add a minor version number  If the package is a not a native package, you should add a minor version number
2022  to the debian revision part of the version number (the portion after the last  to the Debian revision part of the version number (the portion after the last
2023  hyphen). This extra number must start at 1.  For example,  hyphen). This extra number must start at <literal>1</literal>.  For example,
2024  if the current version is <literal>1.5-2</literal>, then an NMU would get  if the current version is <literal>1.5-2</literal>, then an NMU would get
2025  version <literal>1.5-2.1</literal>. If a new upstream version  version <literal>1.5-2.1</literal>. If a new upstream version
2026  is packaged in the NMU, the debian revision is set to <literal>0</literal>, for  is packaged in the NMU, the Debian revision is set to <literal>0</literal>, for
2027  example <literal>1.6-0.1</literal>.  example <literal>1.6-0.1</literal>.
2028  </para>  </para>
2029  <para>  <para>
2030  In both cases, if the last upload was also an NMU, the counter should  In both cases, if the last upload was also an NMU, the counter should
2031  be increased. For example, if the current version is  be increased. For example, if the current version is
2032  <literal>1.5+nmu3</literal> (a native package which has already been  <literal>1.5+nmu3</literal> (a native package which has already been
2033  NMUed), the NMU would get version <literal>1.5+nmu4</literal>.  .  NMUed), the NMU would get version <literal>1.5+nmu4</literal>.
2034  </para>  </para>
2035  <para>  <para>
2036  A special versioning scheme is needed to avoid disrupting the maintainer's  A special versioning scheme is needed to avoid disrupting the maintainer's
# Line 2054  should be used, where <replaceable>X</re Line 2053  should be used, where <replaceable>X</re
2053  When the release number is not yet known (often the case for  When the release number is not yet known (often the case for
2054  <literal>testing</literal>, at the beginning of release cycles), the lowest  <literal>testing</literal>, at the beginning of release cycles), the lowest
2055  release number higher than the last stable release number must be used.  For  release number higher than the last stable release number must be used.  For
2056  example, while Etch (Debian 4.0) is stable, a security NMU to stable for a  example, while Lenny (Debian 5.0) is stable, a security NMU to stable for a
2057  package at version <literal>1.5-3</literal> would have version  package at version <literal>1.5-3</literal> would have version
2058  <literal>1.5-3+deb40u1</literal>, whereas a security NMU to Lenny would get  <literal>1.5-3+deb50u1</literal>, whereas a security NMU to Squeeze would get
2059  version <literal>1.5-3+deb50u1</literal>. After the release of Lenny, security  version <literal>1.5-3+deb60u1</literal>. After the release of Squeeze, security
2060  uploads to the <literal>testing</literal> distribution will be versioned  uploads to the <literal>testing</literal> distribution will be versioned
2061  <literal>+deb51uZ</literal>, until it is known whether that release will be  <literal>+deb61uZ</literal>, until it is known whether that release will be
2062  Debian 5.1 or Debian 6.0 (if that becomes the case, uploads will be versioned  Debian 6.1 or Debian 7.0 (if that becomes the case, uploads will be versioned
2063  as <literal>+deb60uZ</literal>.  as <literal>+deb70uZ</literal>).
2064  </para>  </para>
2065  </section>  </section>
2066    
# Line 2138  package is used. Line 2137  package is used.
2137    
2138  <para>  <para>
2139  BinNMUs are usually triggered on the buildds by wanna-build.  BinNMUs are usually triggered on the buildds by wanna-build.
2140  An entry is added to debian/changelog,  An entry is added to <filename>debian/changelog</filename>,
2141  explaining why the upload was needed and increasing the version number as  explaining why the upload was needed and increasing the version number as
2142  described in <xref linkend="binary-only-nmu"/>.  described in <xref linkend="binary-only-nmu"/>.
2143  This entry should not be included in the next upload.  This entry should not be included in the next upload.
# Line 2147  This entry should not be included in the Line 2146  This entry should not be included in the
2146  <para>  <para>
2147  Buildds upload packages for their architecture to the archive as binary-only  Buildds upload packages for their architecture to the archive as binary-only
2148  uploads.  Strictly speaking, these are binNMUs.  However, they are not normally  uploads.  Strictly speaking, these are binNMUs.  However, they are not normally
2149  called NMU, and they don't add an entry to debian/changelog.  called NMU, and they don't add an entry to <filename>debian/changelog</filename>.
2150  </para>  </para>
2151    
2152  </section>  </section>
# Line 2165  uploads are uploads of orphaned packages Line 2164  uploads are uploads of orphaned packages
2164  <para>  <para>
2165  QA uploads are very much like normal maintainer uploads: they may fix anything,  QA uploads are very much like normal maintainer uploads: they may fix anything,
2166  even minor issues; the version numbering is normal, and there is no need to use  even minor issues; the version numbering is normal, and there is no need to use
2167  a delayed upload.  The difference is that you are not listed as the Maintainer  a delayed upload.  The difference is that you are not listed as the <literal>Maintainer</literal>
2168  or Uploader for the package.  Also, the changelog entry of a QA upload has a  or <literal>Uploader</literal> for the package.  Also, the changelog entry of a QA upload has a
2169  special first line:  special first line:
2170  </para>  </para>
2171    
# Line 2194  the new version (see <xref linkend="adop Line 2193  the new version (see <xref linkend="adop
2193    
2194  </section>  </section>
2195    
2196    <section id="nmu-team-upload">
2197    <title>NMUs vs team uploads</title>
2198    
2199    <para>
2200    Sometimes you are fixing and/or updating a package because you are member of a
2201    packaging team (which uses a mailing list as <literal>Maintainer</literal> or <literal>Uploader</literal>, see <xref
2202    linkend="collaborative-maint"/>) but you don't want to add yourself to <literal>Uploaders</literal>
2203    because you do not plan to contribute regularly to this specific package. If it
2204    conforms with your team's policy, you can perform a normal upload without
2205    being listed directly as <literal>Maintainer</literal> or <literal>Uploader</literal>. In that case, you should
2206    start your changelog entry with the following line:
2207    </para>
2208    
2209    <screen>
2210     * Team upload.
2211    </screen>
2212    
2213    </section>
2214    
2215  </section>  </section>
2216    
2217  <section id="collaborative-maint">  <section id="collaborative-maint">
# Line 2203  Collaborative maintenance is a term desc Line 2221  Collaborative maintenance is a term desc
2221  maintenance duties by several people.  This collaboration is almost always a  maintenance duties by several people.  This collaboration is almost always a
2222  good idea, since it generally results in higher quality and faster bug fix  good idea, since it generally results in higher quality and faster bug fix
2223  turnaround times.  It is strongly recommended that packages with a priority of  turnaround times.  It is strongly recommended that packages with a priority of
2224  <literal>Standard</literal> or which are part of the base set have  <literal>standard</literal> or which are part of the base set have
2225  co-maintainers.  co-maintainers.
2226  </para>  </para>
2227  <para>  <para>
# Line 2223  easy: Line 2241  easy:
2241  <para>  <para>
2242  Setup the co-maintainer with access to the sources you build the package from.  Setup the co-maintainer with access to the sources you build the package from.
2243  Generally this implies you are using a network-capable version control system,  Generally this implies you are using a network-capable version control system,
2244  such as <command>CVS</command> or <command>Subversion</command>.  Alioth (see  such as <literal>CVS</literal> or <literal>Subversion</literal>.  Alioth (see
2245  <xref linkend="alioth"/> ) provides such tools, amongst others.  <xref linkend="alioth"/>) provides such tools, amongst others.
2246  </para>  </para>
2247  </listitem>  </listitem>
2248  <listitem>  <listitem>
# Line 2239  Uploaders: John Buzz &lt;jbuzz@debian.or Line 2257  Uploaders: John Buzz &lt;jbuzz@debian.or
2257  </listitem>  </listitem>
2258  <listitem>  <listitem>
2259  <para>  <para>
2260  Using the PTS (<xref linkend="pkg-tracking-system"/> ), the co-maintainers  Using the PTS (<xref linkend="pkg-tracking-system"/>), the co-maintainers
2261  should subscribe themselves to the appropriate source package.  should subscribe themselves to the appropriate source package.
2262  </para>  </para>
2263  </listitem>  </listitem>
# Line 2247  should subscribe themselves to the appro Line 2265  should subscribe themselves to the appro
2265  <para>  <para>
2266  Another form of collaborative maintenance is team maintenance, which is  Another form of collaborative maintenance is team maintenance, which is
2267  recommended if you maintain several packages with the same group of developers.  recommended if you maintain several packages with the same group of developers.
2268  In that case, the Maintainer and Uploaders field of each package must be  In that case, the <literal>Maintainer</literal> and <literal>Uploaders</literal> field of each package must be
2269  managed with care.  It is recommended to choose between one of the two  managed with care.  It is recommended to choose between one of the two
2270  following schemes:  following schemes:
2271  </para>  </para>
2272  <orderedlist numeration="arabic">  <orderedlist numeration="arabic">
2273  <listitem>  <listitem>
2274  <para>  <para>
2275  Put the team member mainly responsible for the package in the Maintainer field.  Put the team member mainly responsible for the package in the <literal>Maintainer</literal> field.
2276  In the Uploaders, put the mailing list address, and the team members who care  In the <literal>Uploaders</literal>, put the mailing list address, and the team members who care
2277  for the package.  for the package.
2278  </para>  </para>
2279  </listitem>  </listitem>
2280  <listitem>  <listitem>
2281  <para>  <para>
2282  Put the mailing list address in the Maintainer field.  In the Uploaders field,  Put the mailing list address in the <literal>Maintainer</literal> field.  In the <literal>Uploaders</literal> field,
2283  put the team members who care for the package.  In this case, you must make  put the team members who care for the package.  In this case, you must make
2284  sure the mailing list accept bug reports without any human interaction (like  sure the mailing list accept bug reports without any human interaction (like
2285  moderation for non-subscribers).  moderation for non-subscribers).
2286  </para>  </para>
2287  </listitem>  </listitem>
2288  </orderedlist>  </orderedlist>
2289    
2290  <para>  <para>
2291  In any case, it is a bad idea to automatically put all team members in the  In any case, it is a bad idea to automatically put all team members in the
2292  Uploaders field.  It clutters the Developer's Package Overview listing (see  <literal>Uploaders</literal> field. It clutters the Developer's Package Overview listing (see
2293  <xref linkend="ddpo"/> ) with packages one doesn't really care for, and creates  <xref linkend="ddpo"/>) with packages one doesn't really care for, and creates
2294  a false sense of good maintenance.  a false sense of good maintenance. For the same reason, team members do
2295    not need to add themselves to the <literal>Uploaders</literal> field just because they are
2296    uploading the package once, they can do a “Team upload” (see <xref
2297    linkend="nmu-team-upload"/>). Conversely, it is a bad idea to keep a
2298    package with only the mailing list address as a <literal>Maintainer</literal> and no
2299    <literal>Uploaders</literal>.
2300  </para>  </para>
2301  </section>  </section>
2302    
# Line 2288  after they have undergone some degree of Line 2312  after they have undergone some degree of
2312  <para>  <para>
2313  They must be in sync on all architectures and mustn't have dependencies that  They must be in sync on all architectures and mustn't have dependencies that
2314  make them uninstallable; they also have to have generally no known  make them uninstallable; they also have to have generally no known
2315  release-critical bugs at the time they're installed into <literal>testing  release-critical bugs at the time they're installed into <literal>testing</literal>.
2316  </literal>.  This way, <literal>testing</literal> should always be close to  This way, <literal>testing</literal> should always be close to
2317  being a release candidate.  Please see below for details.  being a release candidate.  Please see below for details.
2318  </para>  </para>
2319  </section>  </section>
# Line 2315  The package must have been available in Line 2339  The package must have been available in
2339  or 10 days, depending on the urgency (high, medium or low).  Please note that  or 10 days, depending on the urgency (high, medium or low).  Please note that
2340  the urgency is sticky, meaning that the highest urgency uploaded since the  the urgency is sticky, meaning that the highest urgency uploaded since the
2341  previous <literal>testing</literal> transition is taken into account.  Those  previous <literal>testing</literal> transition is taken into account.  Those
2342  delays may be doubled during a freeze, or <literal>testing</literal>  delays may be doubled during a freeze, or <literal>testing</literal>
2343  transitions may be switched off altogether;  transitions may be switched off altogether;
2344  </para>  </para>
2345  </listitem>  </listitem>
2346  <listitem>  <listitem>
2347  <para>  <para>
2348  It must not have new release-critical bugs (RC bugs affecting the version  It must not have new release-critical bugs (RC bugs affecting the version
2349  available in <literal>unstable</literal>, but not affecting the version in  available in <literal>unstable</literal>, but not affecting the version in
2350  <literal>testing</literal>);  <literal>testing</literal>);
2351  </para>  </para>
2352  </listitem>  </listitem>
2353  <listitem>  <listitem>
2354  <para>  <para>
2355  It must be available on all architectures on which it has previously been built  It must be available on all architectures on which it has previously been built
2356  in <literal>unstable</literal>.  <xref linkend="dak-ls"/> may be of interest  in <literal>unstable</literal>. <link linkend="dak-ls">dak ls</link> may be of interest
2357  to check that information;  to check that information;
2358  </para>  </para>
2359  </listitem>  </listitem>
# Line 2344  It must not break any dependency of a pa Line 2368  It must not break any dependency of a pa
2368  The packages on which it depends must either be available in  The packages on which it depends must either be available in
2369  <literal>testing</literal> or they must be accepted into  <literal>testing</literal> or they must be accepted into
2370  <literal>testing</literal> at the same time (and they will be if they fulfill  <literal>testing</literal> at the same time (and they will be if they fulfill
2371  all the necessary criteria);  all the necessary criteria).
2372  </para>  </para>
2373  </listitem>  </listitem>
2374  </itemizedlist>  </itemizedlist>
# Line 2377  url="http://release.debian.org/migration Line 2401  url="http://release.debian.org/migration
2401  shows build dependencies which are not considered by britney.  shows build dependencies which are not considered by britney.
2402  </para>  </para>
2403  <section id="outdated">  <section id="outdated">
2404  <title>out-of-date</title>  <title>Out-of-date</title>
2405  <para>  <para>
2406  <!-- FIXME: better rename this file than document rampant professionalism? -->  <!-- FIXME: better rename this file than document rampant professionalism? -->
2407  For the <literal>testing</literal> migration script, outdated means: There are  For the <literal>testing</literal> migration script, outdated means: There are
2408  different versions in <literal>unstable</literal> for the release architectures  different versions in <literal>unstable</literal> for the release architectures
2409  (except for the architectures in fuckedarches; fuckedarches is a list of  (except for the architectures in fuckedarches; fuckedarches is a list of
2410  architectures that don't keep up (in <filename>update_out.py</filename>), but  architectures that don't keep up (in <filename>update_out.py</filename>), but
2411  currently, it's empty).  outdated has nothing whatsoever to do with the  currently, it's empty).  outdated has nothing whatsoever to do with the
2412  architectures this package has in <literal>testing</literal>.  architectures this package has in <literal>testing</literal>.
2413  </para>  </para>
2414  <para>  <para>
# Line 2414  Consider this example: Line 2438  Consider this example:
2438  </tgroup>  </tgroup>
2439  </informaltable>  </informaltable>
2440  <para>  <para>
2441  The package is out of date on alpha in <literal>unstable</literal>, and will  The package is out of date on <literal>alpha</literal> in <literal>unstable</literal>, and will
2442  not go to <literal>testing</literal>. Removing the package would not help at all, the  not go to <literal>testing</literal>. Removing the package would not help at all, the
2443  package is still out of date on <literal>alpha</literal>, and will not  package is still out of date on <literal>alpha</literal>, and will not
2444  propagate to testing.  propagate to <literal>testing</literal>.
2445  </para>  </para>
2446  <para>  <para>
2447  However, if ftp-master removes a package in <literal>unstable</literal> (here  However, if ftp-master removes a package in <literal>unstable</literal> (here
# Line 2451  on <literal>arm</literal>): Line 2475  on <literal>arm</literal>):
2475  </informaltable>  </informaltable>
2476  <para>  <para>
2477  In this case, the package is up to date on all release architectures in  In this case, the package is up to date on all release architectures in
2478  <literal>unstable</literal> (and the extra <literal>hurd-i386</literal>  <literal>unstable</literal> (and the extra <literal>hurd-i386</literal>
2479  doesn't matter, as it's not a release architecture).  doesn't matter, as it's not a release architecture).
2480  </para>  </para>
2481  <para>  <para>
# Line 2471  with the new version of <literal>b</lite Line 2495  with the new version of <literal>b</lite
2495  be removed to allow <literal>b</literal> in.  be removed to allow <literal>b</literal> in.
2496  </para>  </para>
2497  <para>  <para>
2498  Of course, there is another reason to remove a package from <literal>testing  Of course, there is another reason to remove a package from <literal>testing</literal>:
2499  </literal>: It's just too buggy (and having a single RC-bug is enough to be  It's just too buggy (and having a single RC-bug is enough to be
2500  in this state).  in this state).
2501  </para>  </para>
2502  <para>  <para>
# Line 2483  will automatically be removed. Line 2507  will automatically be removed.
2507  </section>  </section>
2508    
2509  <section id="circular">  <section id="circular">
2510  <title>circular dependencies</title>  <title>Circular dependencies</title>
2511  <para>  <para>
2512  A situation which is not handled very well by britney is if package  A situation which is not handled very well by britney is if package
2513  <literal>a</literal> depends on the new version of package  <literal>a</literal> depends on the new version of package
# Line 2527  happens to one of your packages. Line 2551  happens to one of your packages.
2551  </section>  </section>
2552    
2553  <section id="s5.13.2.4">  <section id="s5.13.2.4">
2554  <title>influence of package in testing</title>  <title>Influence of package in testing</title>
2555  <para>  <para>
2556  Generally, there is nothing that the status of a package in <literal>testing  Generally, there is nothing that the status of a package in <literal>testing</literal>
2557  </literal> means for transition of the next version from <literal>unstable  means for transition of the next version from <literal>unstable</literal>
2558  </literal> to <literal>testing</literal>, with two exceptions:  to <literal>testing</literal>, with two exceptions:
2559  If the RC-bugginess of the package goes down, it may go in even if it is still  If the RC-bugginess of the package goes down, it may go in even if it is still
2560  RC-buggy.  The second exception is if the version of the package in <literal>  RC-buggy.  The second exception is if the version of the package in
2561  testing</literal> is out of sync on the different arches: Then any arch might  <literal>testing</literal> is out of sync on the different arches: Then any arch might
2562  just upgrade to the version of the source package; however, this can happen  just upgrade to the version of the source package; however, this can happen
2563  only if the package was previously forced through, the arch is in fuckedarches,  only if the package was previously forced through, the arch is in fuckedarches,
2564  or there was no binary package of that arch present in <literal>unstable  or there was no binary package of that arch present in <literal>unstable</literal>
2565  </literal> at all during the <literal>testing</literal> migration.  at all during the <literal>testing</literal> migration.
2566  </para>  </para>
2567  <para>  <para>
2568  In summary this means: The only influence that a package being in <literal>  In summary this means: The only influence that a package being in
2569  testing</literal> has on a new version of the same package is that the new  <literal>testing</literal> has on a new version of the same package is that the new
2570  version might go in easier.  version might go in easier.
2571  </para>  </para>
2572  </section>  </section>
2573    
2574  <section id="details">  <section id="details">
2575  <title>details</title>  <title>Details</title>
2576  <para>  <para>
2577  If you are interested in details, this is how britney works:  If you are interested in details, this is how britney works:
2578  </para>  </para>
# Line 2562  part of britney.) (There is a similar th Line 2586  part of britney.) (There is a similar th
2586  is not described here.  If you're interested in that, please peruse the code.)  is not described here.  If you're interested in that, please peruse the code.)
2587  </para>  </para>
2588  <para>  <para>
2589  Now, the more complex part happens: Britney tries to update <literal>testing  Now, the more complex part happens: Britney tries to update <literal>testing</literal>
2590  </literal> with the valid candidates. For that, britney tries to add each  with the valid candidates. For that, britney tries to add each
2591  valid candidate to the testing distribution. If the number of uninstallable  valid candidate to the testing distribution. If the number of uninstallable
2592  packages in <literal>testing</literal> doesn't increase, the package is  packages in <literal>testing</literal> doesn't increase, the package is
2593  accepted. From that point on, the accepted package is considered to be part  accepted. From that point on, the accepted package is considered to be part
# Line 2576  If you want to see more details, you can Line 2600  If you want to see more details, you can
2600  <filename>merkel:/org/&ftp-debian-org;/testing/update_out/</filename> (or  <filename>merkel:/org/&ftp-debian-org;/testing/update_out/</filename> (or
2601  in <filename>merkel:~aba/testing/update_out</filename> to see a setup with  in <filename>merkel:~aba/testing/update_out</filename> to see a setup with
2602  a smaller packages file).  Via web, it's at <ulink  a smaller packages file).  Via web, it's at <ulink
2603  url="http://&ftp-master-host;/testing/update_out_code/"></ulink>  url="http://&ftp-master-host;/testing/update_out_code/"></ulink>.
2604  </para>  </para>
2605  <para>  <para>
2606  The hints are available via <ulink  The hints are available via <ulink
# Line 2589  url="http://&ftp-master-host;/testing/hi Line 2613  url="http://&ftp-master-host;/testing/hi
2613  <section id="t-p-u">  <section id="t-p-u">
2614  <title>Direct updates to testing</title>  <title>Direct updates to testing</title>
2615  <para>  <para>
2616  The <literal>testing</literal> distribution is fed with packages from  The <literal>testing</literal> distribution is fed with packages from
2617  <literal>unstable</literal> according to the rules explained above.  However,  <literal>unstable</literal> according to the rules explained above.  However,
2618  in some cases, it is necessary to upload packages built only for <literal>  in some cases, it is necessary to upload packages built only for
2619  testing</literal>.  For that, you may want to upload to <literal>  <literal>testing</literal>.  For that, you may want to upload to
2620  testing-proposed-updates</literal>.  <literal>testing-proposed-updates</literal>.
2621  </para>  </para>
2622  <para>  <para>
2623  Keep in mind that packages uploaded there are not automatically processed, they  Keep in mind that packages uploaded there are not automatically processed, they
# Line 2605  give on &email-debian-devel-announce;. Line 2629  give on &email-debian-devel-announce;.
2629  <para>  <para>
2630  You should not upload to <literal>testing-proposed-updates</literal> when you  You should not upload to <literal>testing-proposed-updates</literal> when you
2631  can update your packages through <literal>unstable</literal>.  If you can't  can update your packages through <literal>unstable</literal>.  If you can't
2632  (for example because you have a newer development version in <literal>unstable  (for example because you have a newer development version in <literal>unstable</literal>),
2633  </literal>), you may use this facility, but it is recommended that you ask for  you may use this facility, but it is recommended that you ask for
2634  authorization from the release manager first.  Even if a package is frozen,  authorization from the release manager first.  Even if a package is frozen,
2635  updates through <literal>unstable</literal> are possible, if the upload via  updates through <literal>unstable</literal> are possible, if the upload via
2636  <literal>unstable</literal> does not pull in any new dependencies.  <literal>unstable</literal> does not pull in any new dependencies.
2637  </para>  </para>
2638  <para>  <para>
2639  Version numbers are usually selected by adding the codename of the  Version numbers are usually selected by adding the codename of the
2640  <literal>testing</literal> distribution and a running number, like  <literal>testing</literal> distribution and a running number, like
2641  <literal>1.2sarge1</literal> for the first upload through  <literal>1.2squeeze1</literal> for the first upload through
2642  <literal>testing-proposed-updates</literal> of package version  <literal>testing-proposed-updates</literal> of package version
2643  <literal>1.2</literal>.  <literal>1.2</literal>.
2644  </para>  </para>
2645  <para>  <para>
# Line 2625  Please make sure you didn't miss any of Line 2649  Please make sure you didn't miss any of
2649  <listitem>  <listitem>
2650  <para>  <para>
2651  Make sure that your package really needs to go through  Make sure that your package really needs to go through
2652  <literal>testing-proposed-updates</literal>, and can't go through <literal>  <literal>testing-proposed-updates</literal>, and can't go through
2653  unstable</literal>;  <literal>unstable</literal>;
2654  </para>  </para>
2655  </listitem>  </listitem>
2656  <listitem>  <listitem>
# Line 2679  currently, these are <literal>critical</ Line 2703  currently, these are <literal>critical</
2703  <para>  <para>
2704  Such bugs are presumed to have an impact on the chances that the package will  Such bugs are presumed to have an impact on the chances that the package will
2705  be released with the <literal>stable</literal> release of Debian: in general,  be released with the <literal>stable</literal> release of Debian: in general,
2706  if a package has open release-critical bugs filed on it, it won't get into  if a package has open release-critical bugs filed on it, it won't get into
2707  <literal>testing</literal>, and consequently won't be released in <literal>  <literal>testing</literal>, and consequently won't be released in
2708  stable</literal>.  <literal>stable</literal>.
2709  </para>  </para>
2710  <para>  <para>
2711  The <literal>unstable</literal> bug count are all release-critical bugs which  The <literal>unstable</literal> bug count are all release-critical bugs which
2712  are marked to apply to <replaceable>package</replaceable>/<replaceable>version  are marked to apply to <replaceable>package</replaceable>/<replaceable>version</replaceable>
2713  </replaceable> combinations that are available in unstable for a release  combinations that are available in unstable for a release
2714  architecture. The <literal>testing</literal> bug count is defined analogously.  architecture. The <literal>testing</literal> bug count is defined analogously.
2715  </para>  </para>
2716  </section>  </section>
# Line 2698  break other packages?</title> Line 2722  break other packages?</title>
2722  The structure of the distribution archives is such that they can only contain  The structure of the distribution archives is such that they can only contain
2723  one version of a package; a package is defined by its name.  So when the source  one version of a package; a package is defined by its name.  So when the source
2724  package <literal>acmefoo</literal> is installed into <literal>testing</literal>,  package <literal>acmefoo</literal> is installed into <literal>testing</literal>,
2725  along with its binary packages <literal>acme-foo-bin</literal>, <literal>  along with its binary packages <literal>acme-foo-bin</literal>,
2726  acme-bar-bin</literal>, <literal>libacme-foo1</literal> and <literal>  <literal>acme-bar-bin</literal>, <literal>libacme-foo1</literal> and
2727  libacme-foo-dev</literal>, the old version is removed.  <literal>libacme-foo-dev</literal>, the old version is removed.
2728  </para>  </para>
2729  <para>  <para>
2730  However, the old version may have provided a binary package with an old soname  However, the old version may have provided a binary package with an old soname
2731  of a library, such as <literal>libacme-foo0</literal>.  Removing the old  of a library, such as <literal>libacme-foo0</literal>.  Removing the old
2732  <literal>acmefoo</literal> will remove <literal>libacme-foo0</literal>, which  <literal>acmefoo</literal> will remove <literal>libacme-foo0</literal>, which
2733  will break any packages which depend on it.  will break any packages which depend on it.
2734  </para>  </para>

Legend:
Removed from v.7071  
changed lines
  Added in v.8539

  ViewVC Help
Powered by ViewVC 1.1.5