| 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. |
| 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 |
| 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 |
|
|
| 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> |
| 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> |
| 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 |
| 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. |
| 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>, |
| 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> |
| 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 |
| 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 |
|
|
| 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 |
|
|
| 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 |
| 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 |
|
|
| 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 |
|
|
| 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. |
| 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> |
| 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> |
| 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. |
| 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 |
| 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 |
| 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 |
| 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>. |
| 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> |
| 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 |
|
|
| 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> |
| 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> |
| 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> |
| 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> |
| 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: |
| 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> |
| 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> |
| 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> |
| 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, |
| 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 |
| 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 |
| 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 |
|
|
| 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> |
| 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 |
| 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 |
| 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> |
| 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 |
| 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 |
| 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"> |
| 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 |
| 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. |
| 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>. |
| 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 |
| 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 |
| 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 |
| 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 |
| 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 |
| 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 |
| 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. |
| 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 |
|
|
| 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> |
| 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. |
| 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 |
|
|
| 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> |
| 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 |
| 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> |
| 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>. |
| 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 |
| 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 |
|
|
| 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. |
| 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> |
| 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 |
|
|
| 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"> |
| 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> |
| 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> |
| 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> |
| 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 |
|
|
| 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> |
| 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> |
| 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> |
| 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> |
| 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 |
| 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> |
| 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> |
| 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 |
| 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> |
| 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 |
| 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 |
| 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 |
| 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> |
| 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> |
| 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> |
| 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> |