| 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 ``ITP: <replaceable>foo</replaceable> |
You should set the subject of the bug to <literal>ITP: |
| 32 |
-- <replaceable>short description</replaceable>'', substituting the name of the |
<replaceable>foo</replaceable> -- <replaceable>short |
| 33 |
new package for <replaceable>foo</replaceable>. The severity of the bug report |
description</replaceable></literal>, substituting the name of the new |
| 34 |
must be set to <literal>wishlist</literal>. If you feel it's necessary, send |
package for <replaceable>foo</replaceable>. |
| 35 |
a copy to &email-debian-devel; by putting the address in the |
The severity of the bug report must be set to <literal>wishlist</literal>. |
| 36 |
<literal>X-Debbugs-CC:</literal> header of the message (no, don't use |
Please send a copy to &email-debian-devel; by using the X-Debbugs-CC |
| 37 |
<literal>CC:</literal>, because that way the message's subject won't indicate |
header (don't use CC:, because that way the message's subject won't |
| 38 |
the bug number). |
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, |
| 40 |
|
do 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 |
| 42 |
|
allow a review of your description and package name. |
| 43 |
</para> |
</para> |
| 44 |
<para> |
<para> |
| 45 |
Please include a <literal>Closes: |
Please include a <literal>Closes: |
| 48 |
package is installed in the archive (see <xref linkend="upload-bugfix"/> ). |
package is installed in the archive (see <xref linkend="upload-bugfix"/> ). |
| 49 |
</para> |
</para> |
| 50 |
<para> |
<para> |
| 51 |
|
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 |
| 53 |
|
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. |
| 55 |
|
</para> |
| 56 |
|
<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 Closes: #nnnnn. |
| 58 |
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 |
| 59 |
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 |
| 82 |
<para> |
<para> |
| 83 |
It lets the rest of the maintainers know more about the package than the one |
It lets the rest of the maintainers know more about the package than the one |
| 84 |
line description and the usual changelog entry ``Initial release'' that gets |
line description and the usual changelog entry ``Initial release'' that gets |
| 85 |
posted to <literal>debian-devel-changes</literal>. |
posted to &email-debian-devel-changes;. |
| 86 |
</para> |
</para> |
| 87 |
</listitem> |
</listitem> |
| 88 |
<listitem> |
<listitem> |
| 89 |
<para> |
<para> |
| 90 |
It is helpful to the people who live off unstable (and form our first line of |
It is helpful to the people who live off <literal>unstable</literal> (and form |
| 91 |
testers). We should encourage these people. |
our first line of testers). We should encourage these people. |
| 92 |
</para> |
</para> |
| 93 |
</listitem> |
</listitem> |
| 94 |
<listitem> |
<listitem> |
| 279 |
<literal>Distribution</literal> field of the <literal>.changes</literal> file. |
<literal>Distribution</literal> field of the <literal>.changes</literal> file. |
| 280 |
</para> |
</para> |
| 281 |
<para> |
<para> |
| 282 |
There are several possible values for this field: `stable', `unstable', |
There are several possible values for this field: <literal>stable</literal>, |
| 283 |
`testing-proposed-updates' and `experimental'. Normally, packages are uploaded |
<literal>unstable</literal>, <literal>testing-proposed-updates</literal> and |
| 284 |
into <literal>unstable</literal>. |
<literal>experimental</literal>. Normally, packages are uploaded into |
| 285 |
|
<literal>unstable</literal>. |
| 286 |
</para> |
</para> |
| 287 |
<para> |
<para> |
| 288 |
Actually, there are two other possible distributions: `stable-security' and |
Actually, there are two other possible distributions: <literal>stable-security |
| 289 |
`testing-security', but read <xref linkend="bug-security"/> for more |
</literal> and <literal>testing-security</literal>, but read |
| 290 |
information on those. |
<xref linkend="bug-security"/> for more information on those. |
| 291 |
</para> |
</para> |
| 292 |
<para> |
<para> |
| 293 |
It is not possible to upload a package into several distributions at the same |
It is not possible to upload a package into several distributions at the same |
| 294 |
time. |
time. |
| 295 |
</para> |
</para> |
| 296 |
<section id="upload-stable"> |
<section id="upload-stable"> |
| 297 |
<title>Special case: uploads to the <literal>stable</literal> distribution</title> |
<title>Special case: uploads to the <literal>stable</literal> and |
| 298 |
|
<literal>oldstable</literal> distributions</title> |
| 299 |
<para> |
<para> |
| 300 |
Uploading to <literal>stable</literal> means that the package will transfered |
Uploading to <literal>stable</literal> means that the package will transfered |
| 301 |
to the <literal>proposed-updates-new</literal>-queue for review by the stable |
to the <literal>proposed-updates-new</literal> queue for review by the stable |
| 302 |
release managers, and if approved will be installed in |
release managers, and if approved will be installed in |
| 303 |
<filename>stable-proposed-updates</filename> directory of the Debian archive. |
<filename>stable-proposed-updates</filename> directory of the Debian archive. |
| 304 |
From there, it will be included in <literal>stable</literal> with the next |
From there, it will be included in <literal>stable</literal> with the next |
| 305 |
point release. |
point release. |
| 306 |
</para> |
</para> |
| 307 |
<para> |
<para> |
| 308 |
|
To ensure that your upload will be accepted, you should discuss the changes |
| 309 |
|
with the stable release team before you upload. For that, send a mail to |
| 310 |
|
the &email-debian-release; mailing list, including the patch you want to |
| 311 |
|
apply to the package version currently in <literal>stable</literal>. Always |
| 312 |
|
be verbose and detailed in your changelog entries for uploads to the |
| 313 |
|
<literal>stable</literal> distribution. |
| 314 |
|
</para> |
| 315 |
|
<para> |
| 316 |
Extra care should be taken when uploading to <literal>stable</literal>. |
Extra care should be taken when uploading to <literal>stable</literal>. |
| 317 |
Basically, a package should only be uploaded to stable if one of the following |
Basically, a package should only be uploaded to <literal>stable</literal> if |
| 318 |
happens: |
one of the following happens: |
| 319 |
</para> |
</para> |
| 320 |
<itemizedlist> |
<itemizedlist> |
| 321 |
<listitem> |
<listitem> |
| 340 |
used for Debian security advisories are automatically copied to the appropriate |
used for Debian security advisories are automatically copied to the appropriate |
| 341 |
<filename>proposed-updates</filename> archive when the advisory is released. |
<filename>proposed-updates</filename> archive when the advisory is released. |
| 342 |
See <xref linkend="bug-security"/> for detailed information on handling |
See <xref linkend="bug-security"/> for detailed information on handling |
| 343 |
security problems. |
security problems. If the security teams deems the problem to be too |
| 344 |
|
benign to be fixed through a <literal>DSA</literal>, the stable release |
| 345 |
|
managers are usually willing to include your fix nonetheless in a regular |
| 346 |
|
upload to <literal>stable</literal>. |
| 347 |
</para> |
</para> |
| 348 |
<para> |
<para> |
| 349 |
Changing anything else in the package that isn't important is discouraged, |
Changing anything else in the package that isn't important is discouraged, |
| 354 |
running <literal>stable</literal>, so that their dependencies are limited to |
running <literal>stable</literal>, so that their dependencies are limited to |
| 355 |
the libraries (and other packages) available in <literal>stable</literal>; |
the libraries (and other packages) available in <literal>stable</literal>; |
| 356 |
for example, a package uploaded to <literal>stable</literal> that depends on |
for example, a package uploaded to <literal>stable</literal> that depends on |
| 357 |
a library package that only exists in unstable will be rejected. Making |
a library package that only exists in <literal>unstable</literal> will be |
| 358 |
changes to dependencies of other packages (by messing with |
rejected. Making changes to dependencies of other packages (by messing with |
| 359 |
<literal>Provides</literal> or shlibs files), possibly making those other |
<literal>Provides</literal> or <literal>shlibs</literal> files), possibly |
| 360 |
packages uninstallable, is strongly discouraged. |
making those other packages uninstallable, is strongly discouraged. |
| 361 |
</para> |
</para> |
| 362 |
<para> |
<para> |
| 363 |
The Release Team (which can be reached at |
Uploads to the <literal>oldstable</literal> distributions are possible as |
| 364 |
&email-debian-release;) will regularly evaluate the uploads to |
long as it hasn't been archived. The same rules as for <literal>stable |
| 365 |
<literal>stable-proposed-updates</literal> and decide if your package can be |
</literal> apply. |
|
included in <literal>stable</literal>. Please be clear (and verbose, if |
|
|
necessary) in your changelog entries for uploads to |
|
|
<literal>stable</literal>, because otherwise the package won't be considered |
|
|
for inclusion. |
|
|
</para> |
|
|
<para> |
|
|
It's best practice to speak with the stable release manager |
|
|
<emphasis>before</emphasis> uploading to |
|
|
<literal>stable</literal>/<literal>stable-proposed-updates</literal>, so |
|
|
that the uploaded package fits the needs of the next point release. |
|
| 366 |
</para> |
</para> |
| 367 |
</section> |
</section> |
| 368 |
|
|
| 407 |
|
|
| 408 |
<section id="delayed-incoming"> |
<section id="delayed-incoming"> |
| 409 |
<title>Delayed uploads</title> |
<title>Delayed uploads</title> |
| 410 |
|
|
| 411 |
<para> |
<para> |
| 412 |
Delayed uploads are done for the moment via the delayed queue at <literal>gluck |
It is sometimes useful to upload a package immediately, but to want this |
| 413 |
</literal>. The upload-directory is |
package to arrive in the archive only a few days later. For example, |
| 414 |
<literal>gluck:~tfheen/DELAYED/[012345678]-day</literal>. 0-day is uploaded |
when preparing a <link linkend="nmu">Non-maintainer Upload</link>, |
| 415 |
multiple times per day to <literal>&ftp-master-host;</literal>. |
you might want to give the maintainer a few days to react. |
|
</para> |
|
|
<para> |
|
|
With a fairly recent dput, this section |
|
| 416 |
</para> |
</para> |
| 417 |
<screen> |
|
|
[tfheen_delayed] |
|
|
method = scp |
|
|
fqdn = gluck.debian.org |
|
|
incoming = ~tfheen |
|
|
</screen> |
|
| 418 |
<para> |
<para> |
| 419 |
in <filename>~/.dput.cf</filename> should work fine for uploading to the |
An upload to the delayed directory keeps the package in |
| 420 |
<literal>DELAYED</literal> queue. |
<ulink url="http://ftp-master.debian.org/deferred.html"> |
| 421 |
|
the deferred uploads queue"</ulink>. |
| 422 |
|
When the specified waiting time is over, the package is moved into |
| 423 |
|
the regular incoming directory for processing. |
| 424 |
|
This is done through automatic uploading to |
| 425 |
|
<literal>&ftp-master-host;</literal> in upload-directory |
| 426 |
|
<literal>DELAYED/[012345678]-day</literal>. 0-day is uploaded |
| 427 |
|
multiple times per day to <literal>&ftp-master-host;</literal>. |
| 428 |
</para> |
</para> |
| 429 |
<para> |
<para> |
| 430 |
<emphasis>Note:</emphasis> Since this upload queue goes to |
With dput, you can use the <literal>--delayed <replaceable>DELAY</replaceable></literal> |
| 431 |
<literal>&ftp-master-host;</literal>, the prescription found in <xref |
parameter to put the package into one of the queues. |
|
linkend="upload-ftp-master"/> applies here as well. |
|
| 432 |
</para> |
</para> |
| 433 |
</section> |
</section> |
| 434 |
|
|
| 436 |
<title>Security uploads</title> |
<title>Security uploads</title> |
| 437 |
<para> |
<para> |
| 438 |
Do <emphasis role="strong">NOT</emphasis> upload a package to the security |
Do <emphasis role="strong">NOT</emphasis> upload a package to the security |
| 439 |
upload queue (oldstable-security, stable-security, etc.) without prior |
upload queue (<literal>oldstable-security</literal>, <literal>stable-security |
| 440 |
authorization from the security team. If the package does not exactly meet the |
</literal>, etc.) without prior authorization from the security team. If the |
| 441 |
team's requirements, it will cause many problems and delays in dealing with the |
package does not exactly meet the team's requirements, it will cause many |
| 442 |
unwanted upload. For details, please see section <xref |
problems and delays in dealing with the unwanted upload. For details, please |
| 443 |
linkend="bug-security"/> . |
see section <xref linkend="bug-security"/> . |
| 444 |
</para> |
</para> |
| 445 |
</section> |
</section> |
| 446 |
|
|
| 447 |
<section id="s5.6.5"> |
<section id="s5.6.5"> |
| 448 |
<title>Other upload queues</title> |
<title>Other upload queues</title> |
| 449 |
<para> |
<para> |
| 450 |
The scp queues on <literal>&ftp-master-host;</literal>, and security are mostly |
The scp queues on <literal>&ftp-master-host;</literal>, and <literal> |
| 451 |
unusable due to the login restrictions on those hosts. |
security.debian.org</literal> are mostly unusable due to the login restrictions |
| 452 |
|
on those hosts. |
| 453 |
</para> |
</para> |
| 454 |
<para> |
<para> |
| 455 |
The anonymous queues on ftp.uni-erlangen.de and ftp.uk.debian.org are currently |
The anonymous queues on ftp.uni-erlangen.de and ftp.uk.debian.org are currently |
| 458 |
<para> |
<para> |
| 459 |
The queues on master.debian.org, samosa.debian.org, master.debian.or.jp, and |
The queues on master.debian.org, samosa.debian.org, master.debian.or.jp, and |
| 460 |
ftp.chiark.greenend.org.uk are down permanently, and will not be resurrected. |
ftp.chiark.greenend.org.uk are down permanently, and will not be resurrected. |
|
The queue in Japan will be replaced with a new queue on hp.debian.or.jp some |
|
|
day. |
|
|
</para> |
|
|
<para> |
|
|
For the time being, the anonymous ftp queue on auric.debian.org (the former |
|
|
ftp-master) works, but it is deprecated and will be removed at some point in |
|
|
the future. |
|
| 461 |
</para> |
</para> |
| 462 |
</section> |
</section> |
| 463 |
|
|
| 467 |
The Debian archive maintainers are responsible for handling package uploads. |
The Debian archive maintainers are responsible for handling package uploads. |
| 468 |
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 |
| 469 |
archive maintenance tools, <command>katie</command>. Specifically, updates to |
archive maintenance tools, <command>katie</command>. Specifically, updates to |
| 470 |
existing packages to the `unstable' distribution are handled automatically. In |
existing packages to the <literal>unstable</literal> distribution are handled |
| 471 |
other cases, notably new packages, placing the uploaded package into the |
automatically. In other cases, notably new packages, placing the uploaded |
| 472 |
distribution is handled manually. When uploads are handled manually, the |
package into the distribution is handled manually. When uploads are handled |
| 473 |
change to the archive may take up to a month to occur. Please be patient. |
manually, the change to the archive may take up to a month to occur. Please |
| 474 |
|
be patient. |
| 475 |
</para> |
</para> |
| 476 |
<para> |
<para> |
| 477 |
In any case, you will receive an email notification indicating that the package |
In any case, you will receive an email notification indicating that the package |
| 515 |
<para> |
<para> |
| 516 |
To alter the actual section that a package is put in, you need to first make |
To alter the actual section that a package is put in, you need to first make |
| 517 |
sure that the <filename>debian/control</filename> file in your package is |
sure that the <filename>debian/control</filename> file in your package is |
| 518 |
accurate. Next, send an email &email-override; or submit a |
accurate. Next, submit a |
| 519 |
bug against <systemitem role="package">ftp.debian.org</systemitem> requesting |
bug against <systemitem role="package">ftp.debian.org</systemitem> requesting |
| 520 |
that the section or priority for your package be changed from the old section |
that the section or priority for your package be changed from the old section |
| 521 |
or priority to the new one. Be sure to explain your reasoning. |
or priority to the new one. Use a Subject like |
| 522 |
|
<literal>override: PACKAGE1:section/priority, [...], |
| 523 |
|
PACKAGEX:section/priority</literal>, and include the justification for the |
| 524 |
|
change in the body of the bug report. |
| 525 |
</para> |
</para> |
| 526 |
<para> |
<para> |
| 527 |
For more information about <literal>override files</literal>, see |
For more information about <literal>override files</literal>, see |
| 672 |
If the bug is real but it's caused by another package, just reassign the bug to |
If the bug is real but it's caused by another package, just reassign the bug to |
| 673 |
the right package. If you don't know which package it should be reassigned to, |
the right package. If you don't know which package it should be reassigned to, |
| 674 |
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 |
| 675 |
on &email-debian-devel;. Please make sure that the |
on &email-debian-devel;. Please inform the maintainer(s) of the package |
| 676 |
maintainer(s) of the package the bug is reassigned to know why you reassigned |
you reassign the bug to, for example by Cc:ing the message that does the |
| 677 |
it. |
reassign to <email>packagename@packages.debian.org</email> and explaining |
| 678 |
|
your reasons in that mail. Please note that a simple reassignment is |
| 679 |
|
<emphasis>not</emphasis> e-mailed to the maintainers of the package |
| 680 |
|
being reassigned to, so they won't know about it until they look at |
| 681 |
|
a bug overview for their packages. |
| 682 |
</para> |
</para> |
| 683 |
<para> |
<para> |
| 684 |
|
If the bug affects the operation of your package, please consider |
| 685 |
|
cloning the bug and reassigning the clone to the package that really |
| 686 |
|
causes the behavior. Otherwise, the bug will not be shown in your |
| 687 |
|
package's bug list, possibly causing users to report the same bug over |
| 688 |
|
and over again. You should block "your" bug with the reassigned, cloned |
| 689 |
|
bug to document the relationship. |
| 690 |
|
</para> |
| 691 |
|
</listitem> |
| 692 |
|
<listitem> |
| 693 |
|
<para> |
| 694 |
Sometimes you also have to adjust the severity of the bug so that it matches |
Sometimes you also have to adjust the severity of the bug so that it matches |
| 695 |
our definition of the severity. That's because people tend to inflate the |
our definition of the severity. That's because people tend to inflate the |
| 696 |
severity of bugs to make sure their bugs are fixed quickly. Some bugs may even |
severity of bugs to make sure their bugs are fixed quickly. Some bugs may even |
| 745 |
</listitem> |
</listitem> |
| 746 |
<listitem> |
<listitem> |
| 747 |
<para> |
<para> |
| 748 |
Once a corrected package is available in the <literal>unstable</literal> |
Once a corrected package is available in the archive, the bug should be |
| 749 |
distribution, you can close the bug. This can be done automatically, read |
closed indicating the version in which it was fixed. This can be done |
| 750 |
<xref linkend="upload-bugfix"/> . |
automatically, read <xref linkend="upload-bugfix"/>. |
| 751 |
</para> |
</para> |
| 752 |
</listitem> |
</listitem> |
| 753 |
</orderedlist> |
</orderedlist> |
| 832 |
The Debian Security Team exists to coordinate this activity, keeping track of |
The Debian Security Team exists to coordinate this activity, keeping track of |
| 833 |
outstanding security problems, helping maintainers with security problems or |
outstanding security problems, helping maintainers with security problems or |
| 834 |
fixing them themselves, sending security advisories, and maintaining |
fixing them themselves, sending security advisories, and maintaining |
| 835 |
security.debian.org. |
<literal>security.debian.org</literal>. |
| 836 |
</para> |
</para> |
|
<!-- information about the security database goes here once it's ready --> |
|
|
<!-- (mdz) --> |
|
| 837 |
<para> |
<para> |
| 838 |
When you become aware of a security-related bug in a Debian package, whether or |
When you become aware of a security-related bug in a Debian package, whether or |
| 839 |
not you are the maintainer, collect pertinent information about the problem, |
not you are the maintainer, collect pertinent information about the problem, |
| 840 |
and promptly contact the security team at |
and promptly contact the security team at |
| 841 |
&email-security-team; as soon as possible. <emphasis |
&email-security-team; as soon as possible. <emphasis |
| 842 |
role="strong">DO NOT UPLOAD</emphasis> any packages for stable; the security |
role="strong">DO NOT UPLOAD</emphasis> any packages for <literal>stable</literal> |
| 843 |
team will do that. Useful information includes, for example: |
without contacting the team. Useful information includes, for example: |
| 844 |
</para> |
</para> |
| 845 |
<itemizedlist> |
<itemizedlist> |
| 846 |
<listitem> |
<listitem> |
| 847 |
<para> |
<para> |
| 848 |
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 |
| 849 |
version that is present in a supported Debian release, as well as testing and |
version that is present in a supported Debian release, as well as |
| 850 |
unstable. |
<literal>testing</literal> and <literal>unstable</literal>. |
| 851 |
</para> |
</para> |
| 852 |
</listitem> |
</listitem> |
| 853 |
<listitem> |
<listitem> |
| 875 |
</para> |
</para> |
| 876 |
</listitem> |
</listitem> |
| 877 |
</itemizedlist> |
</itemizedlist> |
| 878 |
|
<para>As the maintainer of the package, you have the responsibility to |
| 879 |
|
maintain it, even in the stable release. You are in the best position |
| 880 |
|
to evaluate patches and test updated packages, so please see the sections |
| 881 |
|
below on how to prepare packages for the Security Team to handle.</para> |
| 882 |
|
|
| 883 |
|
<section id="bug-security-tracker"> |
| 884 |
|
<title>The Security Tracker</title> |
| 885 |
|
<para> |
| 886 |
|
The security team maintains a central database, the |
| 887 |
|
<ulink url="http://security-tracker.debian.net/">Debian Security Tracker</ulink>. |
| 888 |
|
This contains all public information that is known about security issues: |
| 889 |
|
which packages and versions are affected or fixed, and thus whether stable, |
| 890 |
|
testing and/or unstable are vulnerable. Information that is still confidential |
| 891 |
|
is not added to the tracker. |
| 892 |
|
</para> |
| 893 |
|
<para> |
| 894 |
|
You can search it for a specific issue, but also on package name. Look |
| 895 |
|
for your package to see which issues are still open. If you can, please provide |
| 896 |
|
more information about those issues, or help to address them in your package. |
| 897 |
|
Instructions are on the tracker web pages. |
| 898 |
|
</para> |
| 899 |
|
</section> |
| 900 |
|
|
| 901 |
<section id="bug-security-confidentiality"> |
<section id="bug-security-confidentiality"> |
| 902 |
<title>Confidentiality</title> |
<title>Confidentiality</title> |
| 903 |
<para> |
<para> |
| 956 |
be sure to mention this fact. |
be sure to mention this fact. |
| 957 |
</para> |
</para> |
| 958 |
<para> |
<para> |
| 959 |
Please note that if secrecy is needed you may not upload a fix to unstable (or |
Please note that if secrecy is needed you may not upload a fix to |
| 960 |
|
<literal>unstable</literal> (or |
| 961 |
anywhere else, such as a public CVS repository). It is not sufficient to |
anywhere else, such as a public CVS repository). It is not sufficient to |
| 962 |
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 |
| 963 |
will) be examined by the general public. |
will) be examined by the general public. |
| 967 |
requested: the problem has been known for a while, or the problem or exploit |
requested: the problem has been known for a while, or the problem or exploit |
| 968 |
has become public. |
has become public. |
| 969 |
</para> |
</para> |
| 970 |
|
<para> |
| 971 |
|
The Security Team has a PGP-key to enable encrypted communication about |
| 972 |
|
sensitive issues. See the <ulink url="http://www.debian.org/security/faq.en.html#contact">Security Team FAQ</ulink> for details. |
| 973 |
|
</para> |
| 974 |
</section> |
</section> |
| 975 |
|
|
| 976 |
<section id="bug-security-advisories"> |
<section id="bug-security-advisories"> |
| 977 |
<title>Security Advisories</title> |
<title>Security Advisories</title> |
| 978 |
<para> |
<para> |
| 979 |
Security advisories are only issued for the current, released stable |
Security advisories are only issued for the current, released stable |
| 980 |
distribution, and <emphasis>not</emphasis> for testing or unstable. When |
distribution, and <emphasis>not</emphasis> for <literal>testing</literal> |
| 981 |
released, advisories are sent to the |
or <literal>unstable</literal>. When released, advisories are sent to the |
| 982 |
&email-debian-security-announce; mailing list and posted on |
&email-debian-security-announce; mailing list and posted on |
| 983 |
<ulink url="&url-debian-security-advisories;">the security web |
<ulink url="&url-debian-security-advisories;">the security web |
| 984 |
page</ulink>. Security advisories are written and posted by the security team. |
page</ulink>. Security advisories are written and posted by the security team. |
| 1107 |
<itemizedlist> |
<itemizedlist> |
| 1108 |
<listitem> |
<listitem> |
| 1109 |
<para> |
<para> |
| 1110 |
Target the right distribution in your <filename>debian/changelog</filename>. |
<emphasis role="strong">Target the right distribution</emphasis> |
| 1111 |
For stable this is <literal>stable-security</literal> and for testing this is |
in your <filename>debian/changelog</filename>. |
| 1112 |
<literal>testing-security</literal>, and for the previous stable release, this |
For <literal>stable</literal> this is <literal>stable-security</literal> and |
| 1113 |
is <literal>oldstable-security</literal>. Do not target |
for testing this is <literal>testing-security</literal>, and for the previous |
| 1114 |
|
stable release, this is <literal>oldstable-security</literal>. Do not target |
| 1115 |
<replaceable>distribution</replaceable><literal>-proposed-updates</literal> or |
<replaceable>distribution</replaceable><literal>-proposed-updates</literal> or |
| 1116 |
<literal>stable</literal>! |
<literal>stable</literal>! |
| 1117 |
</para> |
</para> |
| 1118 |
</listitem> |
</listitem> |
| 1119 |
<listitem> |
<listitem> |
| 1120 |
<para> |
<para> |
| 1121 |
The upload should have urgency=high. |
The upload should have <emphasis role="strong">urgency=high</emphasis>. |
| 1122 |
</para> |
</para> |
| 1123 |
</listitem> |
</listitem> |
| 1124 |
<listitem> |
<listitem> |
| 1125 |
<para> |
<para> |
| 1126 |
Make descriptive, meaningful changelog entries. Others will rely on them to |
Make descriptive, meaningful changelog entries. Others will rely on them to |
| 1127 |
determine whether a particular bug was fixed. Always include an external |
determine whether a particular bug was fixed. Add <literal>closes:</literal> |
| 1128 |
reference, preferably a CVE identifier, so that it can be cross-referenced. |
statements for any <emphasis role="strong">Debian bugs</emphasis> filed. |
| 1129 |
Include the same information in the changelog for unstable, so that it is clear |
Always include an external reference, preferably a <emphasis role="strong">CVE |
| 1130 |
that the same bug was fixed, as this is very helpful when verifying that the |
identifier</emphasis>, so that it can be cross-referenced. However, if a CVE |
| 1131 |
bug is fixed in the next stable release. If a CVE identifier has not yet been |
identifier has not yet been assigned, do not wait for it but continue the |
| 1132 |
assigned, the security team will request one so that it can be included in the |
process. The identifier can be cross-referenced later. |
|
package and in the advisory. |
|
|
</para> |
|
|
</listitem> |
|
|
<listitem> |
|
|
<para> |
|
|
Make sure the version number is proper. It must be greater than the current |
|
|
package, but less than package versions in later distributions. If in doubt, |
|
|
test it with <literal>dpkg --compare-versions</literal>. Be careful not to |
|
|
re-use a version number that you have already used for a previous upload. For |
|
|
<literal>testing</literal>, there must be a higher version in |
|
|
<literal>unstable</literal>. If there is none yet (for example, if |
|
|
<literal>testing</literal> and <literal>unstable</literal> have the same |
|
|
version) you must upload a new version to unstable first. |
|
| 1133 |
</para> |
</para> |
| 1134 |
</listitem> |
</listitem> |
| 1135 |
<listitem> |
<listitem> |
| 1136 |
<para> |
<para> |
| 1137 |
Do not make source-only uploads if your package has any binary-all packages (do |
Make sure the <emphasis role="strong">version number</emphasis> is proper. |
| 1138 |
not use the <literal>-S</literal> option to |
It must be greater than the current package, but less than package versions in |
| 1139 |
<command>dpkg-buildpackage</command>). The <command>buildd</command> |
later distributions. If in doubt, test it with <literal>dpkg |
| 1140 |
infrastructure will not build those. This point applies to normal package |
--compare-versions</literal>. Be careful not to re-use a version number that |
| 1141 |
uploads as well. |
you have already used for a previous upload, or one that conflicts with a |
| 1142 |
|
binNMU. The convention is to append |
| 1143 |
|
<literal>+</literal><replaceable>codename</replaceable><literal>1</literal>, e.g. |
| 1144 |
|
<literal>1:2.4.3-4+etch1</literal>, of course increasing 1 for any subsequent |
| 1145 |
|
uploads. |
| 1146 |
</para> |
</para> |
| 1147 |
</listitem> |
</listitem> |
| 1148 |
<listitem> |
<listitem> |
| 1149 |
<para> |
<para> |
| 1150 |
Unless the upstream source has been uploaded to security.debian.org before (by |
Unless the upstream source has been uploaded to <literal>security.debian.org |
| 1151 |
a previous security update), build the upload with full upstream source |
</literal> before (by a previous security update), build the upload <emphasis |
| 1152 |
(<literal>dpkg-buildpackage -sa</literal>). If there has been a previous |
role="strong">with full upstream source</emphasis> (<literal>dpkg-buildpackage |
| 1153 |
upload to security.debian.org with the same upstream version, you may upload |
-sa</literal>). If there has been a previous upload to |
| 1154 |
without upstream source (<literal>dpkg-buildpackage -sd</literal>). |
<literal>security.debian.org</literal> with the same upstream version, you may |
| 1155 |
|
upload without upstream source (<literal> dpkg-buildpackage -sd</literal>). |
| 1156 |
</para> |
</para> |
| 1157 |
</listitem> |
</listitem> |
| 1158 |
<listitem> |
<listitem> |
| 1159 |
<para> |
<para> |
| 1160 |
Be sure to use the exact same <filename>*.orig.tar.gz</filename> as used in the |
Be sure to use the <emphasis role="strong">exact same |
| 1161 |
|
<filename>*.orig.tar.gz</filename></emphasis> as used in the |
| 1162 |
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 |
| 1163 |
main archives later. |
main archives later. |
| 1164 |
</para> |
</para> |
| 1165 |
</listitem> |
</listitem> |
| 1166 |
<listitem> |
<listitem> |
| 1167 |
<para> |
<para> |
| 1168 |
Build the package on a clean system which only has packages installed from the |
Build the package on a <emphasis role="strong">clean system</emphasis> which only |
| 1169 |
distribution you are building for. If you do not have such a system yourself, |
has packages installed from the distribution you are building for. If you do not |
| 1170 |
you can use a debian.org machine (see <xref linkend="server-machines"/> ) or |
have such a system yourself, you can use a debian.org machine (see |
| 1171 |
setup a chroot (see <xref linkend="pbuilder"/> and <xref |
<xref linkend="server-machines"/> ) or setup a chroot (see |
| 1172 |
linkend="debootstrap"/> ). |
<xref linkend="pbuilder"/> and <xref linkend="debootstrap"/> ). |
| 1173 |
</para> |
</para> |
| 1174 |
</listitem> |
</listitem> |
| 1175 |
</itemizedlist> |
</itemizedlist> |
| 1179 |
<title>Uploading the fixed package</title> |
<title>Uploading the fixed package</title> |
| 1180 |
<para> |
<para> |
| 1181 |
Do <emphasis role="strong">NOT</emphasis> upload a package to the security |
Do <emphasis role="strong">NOT</emphasis> upload a package to the security |
| 1182 |
upload queue (oldstable-security, stable-security, etc.) without prior |
upload queue (<literal>oldstable-security</literal>, <literal>stable-security |
| 1183 |
authorization from the security team. If the package does not exactly meet the |
</literal>, etc.) without prior authorization from the security team. If the |
| 1184 |
team's requirements, it will cause many problems and delays in dealing with the |
package does not exactly meet the team's requirements, it will cause many |
| 1185 |
unwanted upload. |
problems and delays in dealing with the unwanted upload. |
| 1186 |
</para> |
</para> |
| 1187 |
<para> |
<para> |
| 1188 |
Do <emphasis role="strong">NOT</emphasis> upload your fix to proposed-updates |
Do <emphasis role="strong">NOT</emphasis> upload your fix to <literal> |
| 1189 |
without coordinating with the security team. Packages from security.debian.org |
proposed-updates</literal> without coordinating with the security team. |
| 1190 |
will be copied into the proposed-updates directory automatically. If a package |
Packages from <literal>security.debian.org</literal> will be copied into |
| 1191 |
|
the <literal>proposed-updates</literal> directory automatically. If a package |
| 1192 |
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, |
| 1193 |
the security update will be rejected by the archive system. That way, the |
the security update will be rejected by the archive system. That way, the |
| 1194 |
stable distribution will end up without a security update for this package |
stable distribution will end up without a security update for this package |
| 1202 |
</para> |
</para> |
| 1203 |
<para> |
<para> |
| 1204 |
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 |
| 1205 |
automatically be rebuilt for all architectures and stored for verification by |
automatically be built for all architectures and stored for verification by |
| 1206 |
the security team. |
the security team. |
| 1207 |
</para> |
</para> |
| 1208 |
<para> |
<para> |
| 1212 |
</para> |
</para> |
| 1213 |
<para> |
<para> |
| 1214 |
If a member of the security team accepts a package, it will be installed on |
If a member of the security team accepts a package, it will be installed on |
| 1215 |
security.debian.org as well as proposed for the proper |
<literal>security.debian.org</literal> as well as proposed for the proper |
| 1216 |
<replaceable>distribution</replaceable><literal>-proposed-updates</literal> |
<replaceable>distribution</replaceable><literal>-proposed-updates</literal> |
| 1217 |
on <literal>&ftp-master-host;</literal>. |
on <literal>&ftp-master-host;</literal>. |
| 1218 |
</para> |
</para> |
| 1265 |
If for some reason you want to completely remove a package (say, if it is an |
If for some reason you want to completely remove a package (say, if it is an |
| 1266 |
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 |
| 1267 |
against <literal>ftp.debian.org</literal> asking that the package be removed; |
against <literal>ftp.debian.org</literal> asking that the package be removed; |
| 1268 |
as all bugs, this bug should normally have normal severity. Make sure you |
as all bugs, this bug should normally have normal severity. |
| 1269 |
indicate which distribution the package should be removed from. Normally, you |
The bug title should be in the form <literal>RM: <replaceable>package |
| 1270 |
can only have packages removed from <literal>unstable</literal> and |
</replaceable> <replaceable>[architecture list]</replaceable> -- |
| 1271 |
<literal>experimental</literal>. Packages are not removed from |
<replaceable>reason</replaceable></literal>, where <replaceable>package</replaceable> |
| 1272 |
|
is the package to be removed and <replaceable>reason</replaceable> is a |
| 1273 |
|
short summary of the reason for the removal request. |
| 1274 |
|
<replaceable>[architecture list]</replaceable> is optional and only needed |
| 1275 |
|
if the removal request only applies to some architectures, not all. Note |
| 1276 |
|
that the <command>reportbug</command> will create a title conforming |
| 1277 |
|
to these rules when you use it to report a bug against the <literal> |
| 1278 |
|
ftp.debian.org</literal> pseudo-package. |
| 1279 |
|
</para> |
| 1280 |
|
|
| 1281 |
|
<para> |
| 1282 |
|
If you want to remove a package you maintain, you should note this in |
| 1283 |
|
the bug title by prepending <literal>ROM</literal> (Request Of Maintainer). |
| 1284 |
|
There are several other standard acronyms used in the reasoning for a package |
| 1285 |
|
removal, see <ulink url="http://&ftp-master-host;/removals.html"></ulink> |
| 1286 |
|
for a complete list. That page also provides a convenient overview of |
| 1287 |
|
pending removal requests. |
| 1288 |
|
</para> |
| 1289 |
|
|
| 1290 |
|
<para> |
| 1291 |
|
Note that removals can only be done for the <literal>unstable |
| 1292 |
|
</literal>, <literal>experimental</literal> and <literal>stable |
| 1293 |
|
</literal> distribution. Packages are not removed from |
| 1294 |
<literal>testing</literal> directly. Rather, they will be removed |
<literal>testing</literal> directly. Rather, they will be removed |
| 1295 |
automatically after the package has been removed from |
automatically after the package has been removed from |
| 1296 |
<literal>unstable</literal> and no package in <literal>testing</literal> |
<literal>unstable</literal> and no package in <literal>testing |
| 1297 |
depends on it. |
</literal> depends on it. |
| 1298 |
</para> |
</para> |
| 1299 |
<para> |
<para> |
| 1300 |
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 |
| 1314 |
<para> |
<para> |
| 1315 |
Usually you only ask for the removal of a package maintained by yourself. If |
Usually you only ask for the removal of a package maintained by yourself. If |
| 1316 |
you want to remove another package, you have to get the approval of its |
you want to remove another package, you have to get the approval of its |
| 1317 |
maintainer. |
maintainer. Should the package be orphaned and thus have no maintainer, |
| 1318 |
|
you should first discuss the removal request on &email-debian-qa;. If |
| 1319 |
|
there is a consensus that the package should be removed, you should |
| 1320 |
|
reassign and retitle the <literal>O:</literal> bug filed against the |
| 1321 |
|
<literal>wnpp</literal> package instead of filing a new bug as |
| 1322 |
|
removal request. |
| 1323 |
</para> |
</para> |
| 1324 |
<para> |
<para> |
| 1325 |
Further information relating to these and other package removal related topics |
Further information relating to these and other package removal related topics |
| 1334 |
showpkg <replaceable>package</replaceable></literal>, the program will show |
showpkg <replaceable>package</replaceable></literal>, the program will show |
| 1335 |
details for <replaceable>package</replaceable>, including reverse depends. |
details for <replaceable>package</replaceable>, including reverse depends. |
| 1336 |
Other useful programs include <literal>apt-cache rdepends</literal>, |
Other useful programs include <literal>apt-cache rdepends</literal>, |
| 1337 |
<command>apt-rdepends</command> and <command>grep-dctrl</command>. Removal of |
<command>apt-rdepends</command>, <command>build-rdeps</command> (in the |
| 1338 |
|
<systemitem role="package">devscripts</systemitem> package) and |
| 1339 |
|
<command>grep-dctrl</command>. Removal of |
| 1340 |
orphaned packages is discussed on &email-debian-qa;. |
orphaned packages is discussed on &email-debian-qa;. |
| 1341 |
</para> |
</para> |
| 1342 |
<para> |
<para> |
| 1345 |
code has evolved into another package (e.g. <literal>libfoo12</literal> was |
code has evolved into another package (e.g. <literal>libfoo12</literal> was |
| 1346 |
removed because <literal>libfoo13</literal> supersedes it) or closed if the |
removed because <literal>libfoo13</literal> supersedes it) or closed if the |
| 1347 |
software is simply no longer part of Debian. |
software is simply no longer part of Debian. |
| 1348 |
|
When closing the bugs, |
| 1349 |
|
to avoid marking the bugs as fixed in versions of the packages |
| 1350 |
|
in previous Debian releases, they should be marked as fixed |
| 1351 |
|
in the version <literal><most-recent-version-ever-in-Debian>+rm</literal>. |
| 1352 |
</para> |
</para> |
| 1353 |
<section id="s5.9.2.1"> |
<section id="s5.9.2.1"> |
| 1354 |
<title>Removing packages from <filename>Incoming</filename></title> |
<title>Removing packages from <filename>Incoming</filename></title> |
| 1370 |
<section id="s5.9.3"> |
<section id="s5.9.3"> |
| 1371 |
<title>Replacing or renaming packages</title> |
<title>Replacing or renaming packages</title> |
| 1372 |
<para> |
<para> |
| 1373 |
When you make a mistake naming your package, you should follow a two-step |
When the upstream maintainers for one of your packages chose to |
| 1374 |
process to rename it. First, set your <filename>debian/control</filename> file |
rename their software (or you made a mistake naming your package), |
| 1375 |
to replace and conflict with the obsolete name of the package (see the <ulink |
you should follow a two-step process to rename it. In the first |
| 1376 |
url="&url-debian-policy;">Debian Policy Manual</ulink> for |
step, change the <filename>debian/control</filename> file to |
| 1377 |
details). Once you've uploaded the package and the package has moved into the |
reflect the new name and to replace, provide and conflict with the |
| 1378 |
archive, file a bug against <literal>ftp.debian.org</literal> asking to remove |
obsolete package name (see the <ulink url="&url-debian-policy;"> |
| 1379 |
the package with the obsolete name. Do not forget to properly reassign the |
Debian Policy Manual</ulink> for details). Please note that you |
| 1380 |
package's bugs at the same time. |
should only add a <literal>Provides</literal> relation if all |
| 1381 |
|
packages depending on the obsolete package name continue to work |
| 1382 |
|
after the renaming. Once you've uploaded the package and the package |
| 1383 |
|
has moved into the archive, file a bug against <literal> |
| 1384 |
|
ftp.debian.org</literal> asking to remove the package with the |
| 1385 |
|
obsolete name (see <xref linkend="removing-pkgs"/>). Do not forget |
| 1386 |
|
to properly reassign the package's bugs at the same time. |
| 1387 |
</para> |
</para> |
| 1388 |
<para> |
<para> |
| 1389 |
At other times, you may make a mistake in constructing your package and wish to |
At other times, you may make a mistake in constructing your package and wish to |
| 1481 |
Porting is the act of building Debian packages for architectures that are |
Porting is the act of building Debian packages for architectures that are |
| 1482 |
different from the original architecture of the package maintainer's binary |
different from the original architecture of the package maintainer's binary |
| 1483 |
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 |
| 1484 |
the actual compiling of Debian packages. For instance, for a single |
the actual compiling of Debian packages. For instance, when a maintainer |
| 1485 |
<literal>i386</literal> binary package, there must be a recompile for each |
uploads a (portable) source packages with binaries for the <literal>i386 |
| 1486 |
architecture, which amounts to &number-of-arches; more builds. |
</literal> architecture, it will be built for each of the other architectures, |
| 1487 |
|
amounting to &number-of-arches; more builds. |
| 1488 |
</para> |
</para> |
| 1489 |
<section id="kind-to-porters"> |
<section id="kind-to-porters"> |
| 1490 |
<title>Being kind to porters</title> |
<title>Being kind to porters</title> |
| 1515 |
<literal>Build-Depends-Indep</literal> settings in |
<literal>Build-Depends-Indep</literal> settings in |
| 1516 |
<filename>debian/control</filename> are set properly. The best way to validate |
<filename>debian/control</filename> are set properly. The best way to validate |
| 1517 |
this is to use the <systemitem role="package">debootstrap</systemitem> package |
this is to use the <systemitem role="package">debootstrap</systemitem> package |
| 1518 |
to create an unstable chroot environment (see <xref linkend="debootstrap"/> ). |
to create an <literal>unstable</literal> chroot environment (see <xref |
| 1519 |
|
linkend="debootstrap"/> ). |
| 1520 |
Within that chrooted environment, install the <systemitem |
Within that chrooted environment, install the <systemitem |
| 1521 |
role="package">build-essential</systemitem> package and any package |
role="package">build-essential</systemitem> package and any package |
| 1522 |
dependencies mentioned in <literal>Build-Depends</literal> and/or |
dependencies mentioned in <literal>Build-Depends</literal> and/or |
| 1536 |
</listitem> |
</listitem> |
| 1537 |
<listitem> |
<listitem> |
| 1538 |
<para> |
<para> |
| 1539 |
Don't set architecture to a value other than ``all'' or ``any'' unless you |
Don't set architecture to a value other than <literal>all</literal> or |
| 1540 |
really mean it. In too many cases, maintainers don't follow the instructions |
<literal>any</literal> unless you really mean it. In too many cases, |
| 1541 |
in the <ulink url="&url-debian-policy;">Debian Policy |
maintainers don't follow the instructions in the <ulink |
| 1542 |
Manual</ulink>. Setting your architecture to ``i386'' is usually incorrect. |
url="&url-debian-policy;">Debian Policy Manual</ulink>. Setting your |
| 1543 |
|
architecture to only one architecture (such as <literal>i386</literal> |
| 1544 |
|
or <literal>amd64</literal>) is usually incorrect. |
| 1545 |
</para> |
</para> |
| 1546 |
</listitem> |
</listitem> |
| 1547 |
<listitem> |
<listitem> |
| 1556 |
<para> |
<para> |
| 1557 |
Make sure you don't ship your source package with the |
Make sure you don't ship your source package with the |
| 1558 |
<filename>debian/files</filename> or <filename>debian/substvars</filename> |
<filename>debian/files</filename> or <filename>debian/substvars</filename> |
| 1559 |
files. They should be removed by the `clean' target of |
files. They should be removed by the <literal>clean</literal> target of |
| 1560 |
<filename>debian/rules</filename>. |
<filename>debian/rules</filename>. |
| 1561 |
</para> |
</para> |
| 1562 |
</listitem> |
</listitem> |
| 1572 |
<listitem> |
<listitem> |
| 1573 |
<para> |
<para> |
| 1574 |
Don't depend on the package you're building being installed already (a sub-case |
Don't depend on the package you're building being installed already (a sub-case |
| 1575 |
of the above issue). |
of the above issue). There are, of course, exceptions to this rule, but be |
| 1576 |
|
aware that any case like this needs manual bootstrapping and cannot be done |
| 1577 |
|
by automated package builders. |
| 1578 |
</para> |
</para> |
| 1579 |
</listitem> |
</listitem> |
| 1580 |
<listitem> |
<listitem> |
| 1587 |
</listitem> |
</listitem> |
| 1588 |
<listitem> |
<listitem> |
| 1589 |
<para> |
<para> |
| 1590 |
Make sure your debian/rules contains separate ``binary-arch'' and |
Make sure your debian/rules contains separate <literal>binary-arch</literal> |
| 1591 |
``binary-indep'' targets, as the Debian Policy Manual requires. Make sure that |
and <literal>binary-indep</literal> targets, as the Debian Policy Manual |
| 1592 |
both targets work independently, that is, that you can call the target without |
requires. Make sure that both targets work independently, that is, that you |
| 1593 |
having called the other before. To test this, try to run |
can call the target without having called the other before. To test this, |
| 1594 |
<literal>dpkg-buildpackage -B</literal>. |
try to run <command>dpkg-buildpackage -B</command>. |
| 1595 |
</para> |
</para> |
| 1596 |
</listitem> |
</listitem> |
| 1597 |
</orderedlist> |
</orderedlist> |
| 1618 |
-m<replaceable>porter-email</replaceable></literal>. Of course, set |
-m<replaceable>porter-email</replaceable></literal>. Of course, set |
| 1619 |
<replaceable>porter-email</replaceable> to your email address. This will do a |
<replaceable>porter-email</replaceable> to your email address. This will do a |
| 1620 |
binary-only build of only the architecture-dependent portions of the package, |
binary-only build of only the architecture-dependent portions of the package, |
| 1621 |
using the `binary-arch' target in <filename>debian/rules</filename>. |
using the <literal>binary-arch</literal> target in <filename>debian/rules |
| 1622 |
|
</filename>. |
| 1623 |
</para> |
</para> |
| 1624 |
<para> |
<para> |
| 1625 |
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 |
| 1636 |
bad compiler, ...). Then you may just need to recompile it in an updated |
bad compiler, ...). Then you may just need to recompile it in an updated |
| 1637 |
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 |
| 1638 |
that the old bad package can be replaced in the Debian archive |
that the old bad package can be replaced in the Debian archive |
| 1639 |
(<command>katie</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 |
| 1640 |
version number greater than the currently available one). |
version number greater than the currently available one). |
| 1641 |
</para> |
</para> |
| 1642 |
<para> |
<para> |
| 1643 |
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 |
| 1644 |
uninstallable. This could happen when a source package generates |
uninstallable. This could happen when a source package generates |
| 1645 |
arch-dependent and arch-independent packages that depend on each other via |
arch-dependent and arch-independent packages that have inter-dependencies |
| 1646 |
$(Source-Version). |
generated using dpkg's substitution variable <literal>$(Source-Version) |
| 1647 |
|
</literal>. |
| 1648 |
</para> |
</para> |
| 1649 |
<para> |
<para> |
| 1650 |
Despite the required modification of the changelog, these are called |
Despite the required modification of the changelog, these are called |
| 1660 |
</para> |
</para> |
| 1661 |
<para> |
<para> |
| 1662 |
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 |
| 1663 |
appended to the package version number, following the form b<number>. |
appended to the package version number, following the form <literal> |
| 1664 |
|
b<replaceable>number</replaceable></literal>. |
| 1665 |
For instance, if the latest version you are recompiling against was version |
For instance, if the latest version you are recompiling against was version |
| 1666 |
``2.9-3'', your NMU should carry a version of ``2.9-3+b1''. If the latest |
<literal>2.9-3</literal>, your binary-only NMU should carry a version of |
| 1667 |
version was ``3.4+b1'' (i.e, a native package with a previous recompilation |
<literal>2.9-3+b1</literal>. If the latest version was <literal>3.4+b1 |
| 1668 |
NMU), your NMU should have a version number of ``3.4+b2''. <footnote><para> In |
</literal> (i.e, a native package with a previous recompilation NMU), your |
| 1669 |
the past, such NMUs used the third-level number on the Debian part of the |
binary-only NMU should have a version number of <literal>3.4+b2</literal>. |
| 1670 |
revision to denote their recompilation-only status; however, this syntax was |
<footnote><para> In the past, such NMUs used the third-level number on the |
| 1671 |
ambiguous with native packages and did not allow proper ordering of |
Debian part of the revision to denote their recompilation-only status; |
| 1672 |
recompile-only NMUs, source NMUs, and security NMUs on the same package, and |
however, this syntax was ambiguous with native packages and did not allow |
| 1673 |
has therefore been abandoned in favor of this new syntax. </para> </footnote> |
proper ordering of recompile-only NMUs, source NMUs, and security NMUs on |
| 1674 |
|
the same package, and has therefore been abandoned in favor of this new syntax. |
| 1675 |
|
</para> </footnote> |
| 1676 |
</para> |
</para> |
| 1677 |
<para> |
<para> |
| 1678 |
Similar to initial porter uploads, the correct way of invoking |
Similar to initial porter uploads, the correct way of invoking |
| 1693 |
release managers decide and announce which architectures are candidates. |
release managers decide and announce which architectures are candidates. |
| 1694 |
</para> |
</para> |
| 1695 |
<para> |
<para> |
| 1696 |
If you are a porter doing an NMU for `unstable', the above guidelines for |
If you are a porter doing an NMU for <literal>unstable</literal>, the above |
| 1697 |
porting should be followed, with two variations. Firstly, the acceptable |
guidelines for porting should be followed, with two variations. Firstly, the |
| 1698 |
waiting period — the time between when the bug is submitted to the BTS and |
acceptable waiting period — the time between when the bug is submitted to |
| 1699 |
when it is OK to do an NMU — is seven days for porters working on the |
the BTS and when it is OK to do an NMU — is seven days for porters working |
| 1700 |
unstable distribution. This period can be shortened if the problem is critical |
on the <literal>unstable</literal> distribution. This period can be shortened |
| 1701 |
and imposes hardship on the porting effort, at the discretion of the porter |
if the problem is critical and imposes hardship on the porting effort, at the |
| 1702 |
group. (Remember, none of this is Policy, just mutually agreed upon |
discretion of the porter group. (Remember, none of this is Policy, just |
| 1703 |
guidelines.) For uploads to stable or testing, please coordinate with the |
mutually agreed upon guidelines.) For uploads to <literal>stable</literal> or |
| 1704 |
appropriate release team first. |
<literal>testing </literal>, please coordinate with the appropriate release |
| 1705 |
|
team first. |
| 1706 |
</para> |
</para> |
| 1707 |
<para> |
<para> |
| 1708 |
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 |
| 1709 |
to the BTS should be of severity `serious' or greater. This ensures that a |
to the BTS should be of severity <literal>serious</literal> or greater. This |
| 1710 |
single source package can be used to compile every supported Debian |
ensures that a single source package can be used to compile every supported |
| 1711 |
architecture by release time. It is very important that we have one version of |
Debian architecture by release time. It is very important that we have one |
| 1712 |
the binary and source package for all architecture in order to comply with many |
version of the binary and source package for all architectures in order to |
| 1713 |
licenses. |
comply with many licenses. |
| 1714 |
</para> |
</para> |
| 1715 |
<para> |
<para> |
| 1716 |
Porters should try to avoid patches which simply kludge around bugs in the |
Porters should try to avoid patches which simply kludge around bugs in the |
| 1759 |
</para> |
</para> |
| 1760 |
</section> |
</section> |
| 1761 |
|
|
| 1762 |
<section id="buildd"> |
<section id="wanna-build"> |
| 1763 |
<title><systemitem role="package">buildd</systemitem></title> |
<title><systemitem role="package">wanna-build</systemitem></title> |
| 1764 |
<para> |
<para> |
| 1765 |
The <systemitem role="package">buildd</systemitem> system is used as a |
The <systemitem role="package">wanna-build</systemitem> system is used as a |
| 1766 |
distributed, client-server build distribution system. It is usually used in |
distributed, client-server build distribution system. It is usually used in |
| 1767 |
conjunction with <literal>build daemons</literal>, which are ``slave'' hosts |
conjunction with build daemons running the <systemitem role="package">buildd |
| 1768 |
which simply check out and attempt to auto-build packages which need to be |
</systemitem> program. <literal>Build daemons</literal> are ``slave'' hosts |
| 1769 |
ported. There is also an email interface to the system, which allows porters |
which contact the central <systemitem role="package"> wanna-build</systemitem> |
| 1770 |
to ``check out'' a source package (usually one which cannot yet be auto-built) |
system to receive a list of packages that need to be built. |
| 1771 |
and work on it. |
</para> |
| 1772 |
</para> |
<para> |
| 1773 |
<para> |
<systemitem role="package">wanna-build</systemitem> is not yet available as a |
| 1774 |
<systemitem role="package">buildd</systemitem> is not yet available as a |
package; however, all Debian porting efforts are using it for automated |
| 1775 |
package; however, most porting efforts are either using it currently or |
package building. The tool used to do the actual package builds, <systemitem |
| 1776 |
planning to use it in the near future. The actual automated builder is |
role="package">sbuild</systemitem> is available as a package, see its |
| 1777 |
packaged as <systemitem role="package">sbuild</systemitem>, see its description |
description in <xref linkend="sbuild"/> . Please note that the packaged |
| 1778 |
in <xref linkend="sbuild"/> . The complete <systemitem |
version is not the same as the one used on build daemons, but it is close |
| 1779 |
role="package">buildd</systemitem> system also collects a number of as yet |
enough to reproduce problems. |
| 1780 |
unpackaged components which are currently very useful and in use continually, |
</para> |
| 1781 |
such as <command>andrea</command> and <command>wanna-build</command>. |
<para> |
| 1782 |
</para> |
Most of the data produced by <systemitem role="package">wanna-build |
| 1783 |
<para> |
</systemitem> which is generally useful to porters is available on the |
| 1784 |
Some of the data produced by <systemitem role="package">buildd</systemitem> |
web at <ulink url="&url-buildd;"></ulink>. This data includes nightly |
| 1785 |
which is generally useful to porters is available on the web at <ulink |
updated statistics, queueing information and logs for build attempts. |
|
url="&url-buildd;"></ulink>. This data includes nightly updated |
|
|
information from <command>andrea</command> (source dependencies) and |
|
|
<systemitem role="package">quinn-diff</systemitem> (packages needing |
|
|
recompilation). |
|
| 1786 |
</para> |
</para> |
| 1787 |
<para> |
<para> |
| 1788 |
We are quite proud of this system, since it has so many possible uses. |
We are quite proud of this system, since it has so many possible uses. |
| 1792 |
also enable Debian to recompile entire distributions quickly. |
also enable Debian to recompile entire distributions quickly. |
| 1793 |
</para> |
</para> |
| 1794 |
<para> |
<para> |
| 1795 |
The buildds admins of each arch can be contacted at the mail address |
The wanna-build team, in charge of the buildds, |
| 1796 |
$arch@buildd.debian.org. |
can be reached at <literal>debian-wb-team@lists.debian.org</literal>. |
| 1797 |
|
To determine who (wanna-build team, release team) and how (mail, BTS) |
| 1798 |
|
to contact, refer to <ulink url="&url-wb-team;"></ulink>. |
| 1799 |
|
</para> |
| 1800 |
|
|
| 1801 |
|
<para> |
| 1802 |
|
When requesting binNMUs or give-backs (retries after a failed build), |
| 1803 |
|
please use the format described at <ulink url="&url-release-wb;"/>. |
| 1804 |
</para> |
</para> |
| 1805 |
|
|
| 1806 |
</section> |
</section> |
| 1807 |
|
|
| 1808 |
</section> |
</section> |
| 1813 |
Some packages still have issues with building and/or working on some of the |
Some packages still have issues with building and/or working on some of the |
| 1814 |
architectures supported by Debian, and cannot be ported at all, or not within a |
architectures supported by Debian, and cannot be ported at all, or not within a |
| 1815 |
reasonable amount of time. An example is a package that is SVGA-specific (only |
reasonable amount of time. An example is a package that is SVGA-specific (only |
| 1816 |
i386), or uses other hardware-specific features not supported on all |
available for <literal>i386</literal> and <literal>amd64</literal>), or uses |
| 1817 |
architectures. |
other hardware-specific features not supported on all architectures. |
| 1818 |
</para> |
</para> |
| 1819 |
<para> |
<para> |
| 1820 |
In order to prevent broken packages from being uploaded to the archive, and |
In order to prevent broken packages from being uploaded to the archive, and |
| 1832 |
</para> |
</para> |
| 1833 |
<para> |
<para> |
| 1834 |
Additionally, if you believe the list of supported architectures is pretty |
Additionally, if you believe the list of supported architectures is pretty |
| 1835 |
constant, you should change 'any' to a list of supported architectures in |
constant, you should change <literal>any</literal> to a list of supported |
| 1836 |
debian/control. This way, the build will fail also, and indicate this to a |
architectures in <filename>debian/control</filename>. This way, the build will |
| 1837 |
human reader without actually trying. |
fail also, and indicate this to a human reader without actually trying. |
| 1838 |
</para> |
</para> |
| 1839 |
</listitem> |
</listitem> |
| 1840 |
<listitem> |
<listitem> |
| 1864 |
<section id="nmu"> |
<section id="nmu"> |
| 1865 |
<title>Non-Maintainer Uploads (NMUs)</title> |
<title>Non-Maintainer Uploads (NMUs)</title> |
| 1866 |
<para> |
<para> |
| 1867 |
Under certain circumstances it is necessary for someone other than the official |
Every package has one or more maintainers. Normally, these are the people who |
| 1868 |
package maintainer to make a release of a package. This is called a |
work on and upload new versions of the package. In some situations, it is |
| 1869 |
non-maintainer upload, or NMU. |
useful that other developers can upload a new version as well, for example if |
| 1870 |
</para> |
they want to fix a bug in a package they don't maintain, when the maintainer |
| 1871 |
<para> |
needs help to respond to issues. Such uploads are called |
| 1872 |
This section handles only source NMUs, i.e. NMUs which upload a new version of |
<emphasis>Non-Maintainer Uploads (NMU)</emphasis>. |
|
the package. For binary-only NMUs by porters or QA members, please see <xref |
|
|
linkend="binary-only-nmu"/> . If a buildd builds and uploads a package, that |
|
|
too is strictly speaking a binary NMU. See <xref linkend="buildd"/> for some |
|
|
more information. |
|
|
</para> |
|
|
<para> |
|
|
The main reason why NMUs are done is when a developer needs to fix another |
|
|
developer's package in order to address serious problems or crippling bugs or |
|
|
when the package maintainer is unable to release a fix in a timely fashion. |
|
|
</para> |
|
|
<para> |
|
|
First and foremost, it is critical that NMU patches to source should be as |
|
|
non-disruptive as possible. Do not do housekeeping tasks, do not change the |
|
|
name of modules or files, do not move directories; in general, do not fix |
|
|
things which are not broken. Keep the patch as small as possible. If things |
|
|
bother you aesthetically, talk to the Debian maintainer, talk to the upstream |
|
|
maintainer, or submit a bug. However, aesthetic changes must |
|
|
<emphasis>not</emphasis> be made in a non-maintainer upload. |
|
|
</para> |
|
|
<para> |
|
|
And please remember the Hippocratic Oath: Above all, do no harm. It is better |
|
|
to leave a package with an open grave bug than applying a non-functional patch, |
|
|
or one that hides the bug instead of resolving it. |
|
| 1873 |
</para> |
</para> |
| 1874 |
|
|
| 1875 |
<section id="nmu-guidelines"> |
<section id="nmu-guidelines"> |
| 1876 |
<title>How to do a NMU</title> |
<title>When and how to do an NMU</title> |
| 1877 |
<para> |
|
|
NMUs which fix important, serious or higher severity bugs are encouraged and |
|
|
accepted. You should endeavor to reach the current maintainer of the package; |
|
|
they might be just about to upload a fix for the problem, or have a better |
|
|
solution. |
|
|
</para> |
|
|
<para> |
|
|
NMUs should be made to assist a package's maintainer in resolving bugs. |
|
|
Maintainers should be thankful for that help, and NMUers should respect the |
|
|
decisions of maintainers, and try to personally help the maintainer by their |
|
|
work. |
|
|
</para> |
|
| 1878 |
<para> |
<para> |
| 1879 |
A NMU should follow all conventions, written down in this section. For an |
Before doing an NMU, consider the following questions: |
|
upload to testing or unstable, this order of steps is recommended: |
|
| 1880 |
</para> |
</para> |
| 1881 |
<itemizedlist> |
<itemizedlist> |
| 1882 |
<listitem> |
<listitem> |
| 1883 |
<para> |
<para> |
| 1884 |
Make sure that the package's bugs that the NMU is meant to address are all |
Does your NMU really fix bugs? Fixing cosmetic issues or changing the |
| 1885 |
filed in the Debian Bug Tracking System (BTS). If they are not, submit them |
packaging style in NMUs is discouraged. |
|
immediately. |
|
| 1886 |
</para> |
</para> |
| 1887 |
</listitem> |
</listitem> |
| 1888 |
<listitem> |
<listitem> |
| 1889 |
<para> |
<para> |
| 1890 |
Wait a few days for the response from the maintainer. If you don't get any |
Did you give enough time to the maintainer? When was the bug reported to the |
| 1891 |
response, you may want to help them by sending the patch that fixes the bug. |
BTS? Being busy for a week or two isn't unusual. Is the bug so severe that it |
| 1892 |
Don't forget to tag the bug with the patch keyword. |
needs to be fixed right now, or can it wait a few more days? |
| 1893 |
</para> |
</para> |
| 1894 |
</listitem> |
</listitem> |
| 1895 |
<listitem> |
<listitem> |
| 1896 |
<para> |
<para> |
| 1897 |
Wait a few more days. If you still haven't got an answer from the maintainer, |
How confident are you about your changes? Please remember the Hippocratic Oath: |
| 1898 |
send them a mail announcing your intent to NMU the package. Prepare an NMU as |
"Above all, do no harm." It is better to leave a package with an open grave bug |
| 1899 |
described in this section, and test it carefully on your machine (cf. <xref |
than applying a non-functional patch, or one that hides the bug instead of |
| 1900 |
linkend="sanitycheck"/> ). Double check that your patch doesn't have any |
resolving it. If you are not 100% sure of what you did, it might be a good idea |
| 1901 |
unexpected side effects. Make sure your patch is as small and as |
to seek advice from others. Remember that if you break something in your NMU, |
| 1902 |
non-disruptive as it can be. |
many people will be very unhappy about it. |
| 1903 |
</para> |
</para> |
| 1904 |
</listitem> |
</listitem> |
| 1905 |
<listitem> |
<listitem> |
| 1906 |
<para> |
<para> |
| 1907 |
Upload your package to incoming in <filename>DELAYED/7-day</filename> (cf. |
Have you clearly expressed your intention to NMU, at least in the BTS? |
| 1908 |
<xref linkend="delayed-incoming"/> ), send the final patch to the maintainer |
It is also a good idea to try to contact the |
| 1909 |
via the BTS, and explain to them that they have 7 days to react if they want to |
maintainer by other means (private email, IRC). |
|
cancel the NMU. |
|
| 1910 |
</para> |
</para> |
| 1911 |
</listitem> |
</listitem> |
| 1912 |
<listitem> |
<listitem> |
| 1913 |
<para> |
<para> |
| 1914 |
Follow what happens, you're responsible for any bug that you introduced with |
If the maintainer is usually active and responsive, have you tried to contact |
| 1915 |
your NMU. You should probably use <xref linkend="pkg-tracking-system"/> (PTS) |
him? In general it should be considered preferable that a maintainer takes care |
| 1916 |
to stay informed of the state of the package after your NMU. |
of an issue himself and that he is given the chance to review and correct your |
| 1917 |
|
patch, because he can be expected to be more aware of potential issues which an |
| 1918 |
|
NMUer might miss. It is often a better use of everyone's time if the maintainer |
| 1919 |
|
is given an opportunity to upload a fix on their own. |
| 1920 |
</para> |
</para> |
| 1921 |
</listitem> |
</listitem> |
| 1922 |
</itemizedlist> |
</itemizedlist> |
| 1923 |
<para> |
<para> |
| 1924 |
At times, the release manager or an organized group of developers can announce |
When doing an NMU, you must first make sure that your intention to NMU is |
| 1925 |
a certain period of time in which the NMU rules are relaxed. This usually |
clear. Then, you must send a patch with the differences between the |
| 1926 |
involves shortening the period during which one is to wait before uploading the |
current package and your proposed NMU to the BTS. The |
| 1927 |
fixes, and shortening the DELAYED period. It is important to notice that even |
<literal>nmudiff</literal> script in the <literal>devscripts</literal> package |
| 1928 |
in these so-called bug squashing party times, the NMU'er has to file bugs and |
might be helpful. |
| 1929 |
contact the developer first, and act later. Please see <xref |
</para> |
| 1930 |
linkend="qa-bsp"/> for details. |
<para> |
| 1931 |
</para> |
While preparing the patch, you should better be aware of any package-specific |
| 1932 |
<para> |
practices that the maintainer might be using. Taking them into account reduces |
| 1933 |
For the testing distribution, the rules may be changed by the release managers. |
the burden of getting your changes integrated back in the normal package |
| 1934 |
Please take additional care, and acknowledge that the usual way for a package |
workflow and thus increases the possibilities that that will happen. A good |
| 1935 |
to enter testing is through unstable. |
place where to look for for possible package-specific practices is |
| 1936 |
</para> |
<ulink url="&url-debian-policy;ch-source.html#s-readmesource"><literal>debian/README.source</literal></ulink>. |
| 1937 |
<para> |
</para> |
| 1938 |
For the stable distribution, please take extra care. Of course, the release |
<para> |
| 1939 |
managers may also change the rules here. Please verify before you upload that |
Unless you have an excellent reason not to do so, you must then give some time |
| 1940 |
all your changes are OK for inclusion into the next stable release by the |
to the maintainer to react (for example, by uploading to the |
| 1941 |
release manager. |
<literal>DELAYED</literal> queue). Here are some recommended values to use for delays: |
| 1942 |
</para> |
</para> |
| 1943 |
|
<itemizedlist> |
| 1944 |
|
<listitem> |
| 1945 |
<para> |
<para> |
| 1946 |
When a security bug is detected, the security team may do an NMU, using their |
Upload fixing only release-critical bugs older than 7 days: 2 days |
|
own rules. Please refer to <xref linkend="bug-security"/> for more |
|
|
information. |
|
| 1947 |
</para> |
</para> |
| 1948 |
|
</listitem> |
| 1949 |
|
<listitem> |
| 1950 |
<para> |
<para> |
| 1951 |
For the differences for Porters NMUs, please see <xref |
Upload fixing only release-critical and important bugs: 5 days |
|
linkend="source-nmu-when-porter"/> . |
|
| 1952 |
</para> |
</para> |
| 1953 |
|
</listitem> |
| 1954 |
|
<listitem> |
| 1955 |
<para> |
<para> |
| 1956 |
Of course, it is always possible to agree on special rules with a maintainer |
Other NMUs: 10 days |
|
(like the maintainer asking please upload this fix directly for me, and no diff |
|
|
required). |
|
| 1957 |
</para> |
</para> |
| 1958 |
</section> |
</listitem> |
| 1959 |
|
</itemizedlist> |
| 1960 |
|
|
|
<section id="nmu-version"> |
|
|
<title>NMU version numbering</title> |
|
| 1961 |
<para> |
<para> |
| 1962 |
Whenever you have made a change to a package, no matter how trivial, the |
Those delays are only examples. In some cases, such as uploads fixing security |
| 1963 |
version number needs to change. This enables our packing system to function. |
issues, or fixes for trivial bugs that blocking a transition, it is desirable |
| 1964 |
|
that the fixed package reaches <literal>unstable</literal> sooner. |
| 1965 |
</para> |
</para> |
| 1966 |
|
|
| 1967 |
<para> |
<para> |
| 1968 |
If you are doing a non-maintainer upload (NMU), you should add a new minor |
Sometimes, release managers decide to allow NMUs with shorter delays for a |
| 1969 |
version number to the <replaceable>debian-revision</replaceable> part of the |
subset of bugs (e.g release-critical bugs older than 7 days). Also, some |
| 1970 |
version number (the portion after the last hyphen). This extra minor number |
maintainers list themselves in the <ulink url="&url-low-threshold-nmu;">Low |
| 1971 |
will start at `1'. For example, consider the package `foo', which is at |
Threshold NMU list</ulink>, and accept that NMUs are uploaded without delay. But |
| 1972 |
version 1.1-3. In the archive, the source package control file would be |
even in those cases, it's still a good idea to give the maintainer a few days |
| 1973 |
<filename>foo_1.1-3.dsc</filename>. The upstream version is `1.1' and the |
to react before you upload, especially if the patch wasn't available in the BTS |
| 1974 |
Debian revision is `3'. The next NMU would add a new minor number `.1' to the |
before, or if you know that the maintainer is generally active. |
|
Debian revision; the new source control file would be |
|
|
<filename>foo_1.1-3.1.dsc</filename>. |
|
|
</para> |
|
|
<para> |
|
|
The Debian revision minor number is needed to avoid stealing one of the package |
|
|
maintainer's version numbers, which might disrupt their work. It also has the |
|
|
benefit of making it visually clear that a package in the archive was not made |
|
|
by the official maintainer. |
|
| 1975 |
</para> |
</para> |
| 1976 |
|
|
| 1977 |
<para> |
<para> |
| 1978 |
If there is no <replaceable>debian-revision</replaceable> component in the |
After you upload an NMU, you are responsible for the possible problems that you |
| 1979 |
version number then one should be created, starting at `0.1' (but in case of a |
might have introduced. You must keep an eye on the package (subscribing to the |
| 1980 |
debian native package still upload it as native package). If it is absolutely |
package on the PTS is a good way to achieve this). |
|
necessary for someone other than the usual maintainer to make a release based |
|
|
on a new upstream version then the person making the release should start with |
|
|
the <replaceable>debian-revision</replaceable> value `0.1'. The usual |
|
|
maintainer of a package should start their |
|
|
<replaceable>debian-revision</replaceable> numbering at `1'. |
|
| 1981 |
</para> |
</para> |
| 1982 |
|
|
| 1983 |
<para> |
<para> |
| 1984 |
If you upload a package to testing or stable, sometimes, you need to fork the |
This is not a license to perform NMUs thoughtlessly. If you NMU when it is |
| 1985 |
version number tree. For this, version numbers like 1.1-3sarge0.1 could be |
clear that the maintainers are active and would have acknowledged a patch in a |
| 1986 |
used. |
timely manner, or if you ignore the recommendations of this document, your |
| 1987 |
|
upload might be a cause of conflict with the maintainer. |
| 1988 |
|
You should always be prepared to |
| 1989 |
|
defend the wisdom of any NMU you perform on its own merits. |
| 1990 |
</para> |
</para> |
| 1991 |
</section> |
</section> |
| 1992 |
|
|
| 1993 |
<section id="nmu-changelog"> |
<section id="nmu-changelog"> |
| 1994 |
<title>Source NMUs must have a new changelog entry</title> |
<title>NMUs and debian/changelog</title> |
|
<para> |
|
|
Anyone who is doing a source NMU must create a changelog entry, describing |
|
|
which bugs are fixed by the NMU, and generally why the NMU was required and |
|
|
what it fixed. The changelog entry will have the email address of the person |
|
|
who uploaded it in the log entry and the NMU version number in it. |
|
|
</para> |
|
| 1995 |
<para> |
<para> |
| 1996 |
By convention, source NMU changelog entries start with the line |
Just like any other (source) upload, NMUs must add an entry to |
| 1997 |
|
<literal>debian/changelog</literal>, telling what has changed with this |
| 1998 |
|
upload. The first line of this entry must explicitely mention that this upload is an NMU, e.g.: |
| 1999 |
</para> |
</para> |
| 2000 |
<screen> |
<screen> |
| 2001 |
* Non-maintainer upload |
* Non-maintainer upload. |
| 2002 |
</screen> |
</screen> |
|
</section> |
|
| 2003 |
|
|
|
<section id="nmu-patch"> |
|
|
<title>Source NMUs and the Bug Tracking System</title> |
|
| 2004 |
<para> |
<para> |
| 2005 |
Maintainers other than the official package maintainer should make as few |
The way to version NMUs differs for native and non-native packages. |
| 2006 |
changes to the package as possible, and they should always send a patch as a |
</para> |
| 2007 |
unified context diff (<literal>diff -u</literal>) detailing their changes to |
<para> |
| 2008 |
the Bug Tracking System. |
If the package is a native package (without a debian revision in the version number), |
| 2009 |
|
the version must be the version of the last maintainer upload, plus |
| 2010 |
|
<literal>+nmu<replaceable>X</replaceable></literal>, where |
| 2011 |
|
<replaceable>X</replaceable> is a counter starting at <literal>1</literal>. |
| 2012 |
|
If |
| 2013 |
|
the last upload was also an NMU, the counter should be increased. For example, |
| 2014 |
|
if the current version is <literal>1.5</literal>, then an NMU would get |
| 2015 |
|
version <literal>1.5+nmu1</literal>. |
| 2016 |
|
</para> |
| 2017 |
|
<para> |
| 2018 |
|
If the package is a not a native package, you should add a minor version number |
| 2019 |
|
to the debian revision part of the version number (the portion after the last |
| 2020 |
|
hyphen). This extra number must start at 1. For example, |
| 2021 |
|
if the current version is <literal>1.5-2</literal>, then an NMU would get |
| 2022 |
|
version <literal>1.5-2.1</literal>. If a new upstream version |
| 2023 |
|
is packaged in the NMU, the debian revision is set to <literal>0</literal>, for |
| 2024 |
|
example <literal>1.6-0.1</literal>. |
| 2025 |
|
</para> |
| 2026 |
|
<para> |
| 2027 |
|
In both cases, if the last upload was also an NMU, the counter should |
| 2028 |
|
be increased. For example, if the current version is |
| 2029 |
|
<literal>1.5+nmu3</literal> (a native package which has already been |
| 2030 |
|
NMUed), the NMU would get version <literal>1.5+nmu4</literal>. . |
| 2031 |
|
</para> |
| 2032 |
|
<para> |
| 2033 |
|
A special versioning scheme is needed to avoid disrupting the maintainer's |
| 2034 |
|
work, since using an integer for the Debian revision will potentially |
| 2035 |
|
conflict with a maintainer upload already in preparation at the time of an |
| 2036 |
|
NMU, or even one sitting in the ftp NEW queue. |
| 2037 |
|
It also has the |
| 2038 |
|
benefit of making it visually clear that a package in the archive was not made |
| 2039 |
|
by the official maintainer. |
| 2040 |
</para> |
</para> |
| 2041 |
|
|
| 2042 |
<para> |
<para> |
| 2043 |
What if you are simply recompiling the package? If you just need to recompile |
If you upload a package to testing or stable, you sometimes need to "fork" the |
| 2044 |
it for a single architecture, then you may do a binary-only NMU as described in |
version number tree. This is the case for security uploads, for example. For |
| 2045 |
<xref linkend="binary-only-nmu"/> which doesn't require any patch to be sent. |
this, a version of the form |
| 2046 |
If you want the package to be recompiled for all architectures, then you do a |
<literal>+deb<replaceable>XY</replaceable>u<replaceable>Z</replaceable></literal> |
| 2047 |
source NMU as usual and you will have to send a patch. |
should be used, where <replaceable>X</replaceable> and |
| 2048 |
|
<replaceable>Y</replaceable> are the major and minor release numbers, and |
| 2049 |
|
<replaceable>Z</replaceable> is a counter starting at <literal>1</literal>. |
| 2050 |
|
When the release number is not yet known (often the case for |
| 2051 |
|
<literal>testing</literal>, at the beginning of release cycles), the lowest |
| 2052 |
|
release number higher than the last stable release number must be used. For |
| 2053 |
|
example, while Etch (Debian 4.0) is stable, a security NMU to stable for a |
| 2054 |
|
package at version <literal>1.5-3</literal> would have version |
| 2055 |
|
<literal>1.5-3+deb40u1</literal>, whereas a security NMU to Lenny would get |
| 2056 |
|
version <literal>1.5-3+deb50u1</literal>. After the release of Lenny, security |
| 2057 |
|
uploads to the <literal>testing</literal> distribution will be versioned |
| 2058 |
|
<literal>+deb51uZ</literal>, until it is known whether that release will be |
| 2059 |
|
Debian 5.1 or Debian 6.0 (if that becomes the case, uploads will be versioned |
| 2060 |
|
as <literal>+deb60uZ</literal>. |
| 2061 |
</para> |
</para> |
| 2062 |
|
</section> |
| 2063 |
|
|
| 2064 |
|
<section id="nmu-delayed"> |
| 2065 |
|
<title>Using the <literal>DELAYED/</literal> queue</title> |
| 2066 |
|
|
| 2067 |
<para> |
<para> |
| 2068 |
Bugs fixed by source NMUs used to be tagged fixed instead of closed, but since |
Having to wait for a response after you request permission to NMU is |
| 2069 |
version tracking is in place, such bugs are now also closed with the NMU |
inefficient, because it costs the NMUer a context switch to come back to the |
| 2070 |
version. |
issue. |
| 2071 |
|
The <literal>DELAYED</literal> queue (see <xref linkend="delayed-incoming"/>) |
| 2072 |
|
allows the developer doing the NMU to perform all the necessary tasks at the |
| 2073 |
|
same time. For instance, instead of telling the maintainer that you will |
| 2074 |
|
upload the updated |
| 2075 |
|
package in 7 days, you should upload the package to |
| 2076 |
|
<literal>DELAYED/7</literal> and tell the maintainer that he has 7 days to |
| 2077 |
|
react. During this time, the maintainer can ask you to delay the upload some |
| 2078 |
|
more, or cancel your upload. |
| 2079 |
</para> |
</para> |
| 2080 |
|
|
| 2081 |
<para> |
<para> |
| 2082 |
Also, after doing an NMU, you have to send the information to the existing bugs |
The <literal>DELAYED</literal> queue should not be used to put additional |
| 2083 |
that are fixed by your NMU, including the unified diff. Historically, it was |
pressure on the maintainer. In particular, it's important that you are |
| 2084 |
custom to open a new bug and include a patch showing all the changes you have |
available to cancel or delay the upload before the delay expires since the |
| 2085 |
made. The normal maintainer will either apply the patch or employ an alternate |
maintainer cannot cancel the upload himself. |
|
method of fixing the problem. Sometimes bugs are fixed independently upstream, |
|
|
which is another good reason to back out an NMU's patch. If the maintainer |
|
|
decides not to apply the NMU's patch but to release a new version, the |
|
|
maintainer needs to ensure that the new upstream version really fixes each |
|
|
problem that was fixed in the non-maintainer release. |
|
| 2086 |
</para> |
</para> |
| 2087 |
|
|
| 2088 |
<para> |
<para> |
| 2089 |
In addition, the normal maintainer should <emphasis>always</emphasis> retain |
If you make an NMU to <literal>DELAYED</literal> and the maintainer updates |
| 2090 |
the entry in the changelog file documenting the non-maintainer upload -- and of |
his package before the delay expires, your upload will be rejected because a |
| 2091 |
course, also keep the changes. If you revert some of the changes, please |
newer version is already available in the archive. |
| 2092 |
reopen the relevant bug reports. |
Ideally, the maintainer will take care to include your proposed changes (or |
| 2093 |
|
at least a solution for the problems they address) in that upload. |
| 2094 |
</para> |
</para> |
| 2095 |
|
|
| 2096 |
</section> |
</section> |
| 2097 |
|
|
| 2098 |
<section id="nmu-build"> |
<section id="nmu-maintainer"> |
| 2099 |
<title>Building source NMUs</title> |
<title>NMUs from the maintainer's point of view</title> |
| 2100 |
|
|
| 2101 |
<para> |
<para> |
| 2102 |
Source NMU packages are built normally. Pick a distribution using the same |
When someone NMUs your package, this means they want to help you to keep it in |
| 2103 |
rules as found in <xref linkend="distribution"/> , follow the other |
good shape. This gives users fixed packages faster. You |
| 2104 |
instructions in <xref linkend="upload"/> . |
can consider asking the NMUer to become a co-maintainer of the package. |
| 2105 |
|
Receiving an NMU on a package is not a bad |
| 2106 |
|
thing; it just means that the package is interesting enough for other people to |
| 2107 |
|
work on it. |
| 2108 |
</para> |
</para> |
| 2109 |
|
|
| 2110 |
<para> |
<para> |
| 2111 |
Make sure you do <emphasis>not</emphasis> change the value of the maintainer in |
To acknowledge an NMU, include its changes and changelog entry in your next |
| 2112 |
the <filename>debian/control</filename> file. Your name as given in the NMU |
maintainer upload. If you do not acknowledge the NMU by including the |
| 2113 |
entry of the <filename>debian/changelog</filename> file will be used for |
NMU changelog entry in your changelog, the bugs will remain closed in the |
| 2114 |
signing the changes file. |
BTS but will be listed as affecting your maintainer version of the package. |
| 2115 |
</para> |
</para> |
| 2116 |
|
|
| 2117 |
</section> |
</section> |
| 2118 |
|
|
| 2119 |
<section id="ack-nmu"> |
<section id="nmu-binnmu"> |
| 2120 |
<title>Acknowledging an NMU</title> |
<title>Source NMUs vs Binary-only NMUs (binNMUs)</title> |
| 2121 |
|
|
| 2122 |
<para> |
<para> |
| 2123 |
If one of your packages has been NMU'ed, you have to incorporate the changes in |
The full name of an NMU is <emphasis>source NMU</emphasis>. There is also |
| 2124 |
your copy of the sources. This is easy, you just have to apply the patch that |
another type, namely the <emphasis>binary-only NMU</emphasis>, or |
| 2125 |
has been sent to you. Once this is done, you have to close the bugs that have |
<emphasis>binNMU</emphasis>. A binNMU is also a package upload by someone |
| 2126 |
been tagged fixed by the NMU. The easiest way is to use the |
other than the package's maintainer. However, it is a binary-only upload. |
|
<literal>-v</literal> option of <command>dpkg-buildpackage</command>, as this |
|
|
allows you to include just all changes since your last maintainer upload. |
|
|
Alternatively, you can close them manually by sending the required mails to the |
|
|
BTS or by adding the required <literal>closes: #nnnn</literal> in the changelog |
|
|
entry of your next upload. |
|
| 2127 |
</para> |
</para> |
| 2128 |
|
|
| 2129 |
<para> |
<para> |
| 2130 |
In any case, you should not be upset by the NMU. An NMU is not a personal |
When a library (or other dependency) is updated, the packages using it may need |
| 2131 |
attack against the maintainer. It is a proof that someone cares enough about |
to be rebuilt. Since no changes to the source are needed, the same source |
| 2132 |
the package that they were willing to help you in your work, so you should be |
package is used. |
|
thankful. You may also want to ask them if they would be interested in helping |
|
|
you on a more frequent basis as co-maintainer or backup maintainer (see <xref |
|
|
linkend="collaborative-maint"/> ). |
|
| 2133 |
</para> |
</para> |
|
</section> |
|
| 2134 |
|
|
|
<section id="nmu-vs-qa"> |
|
|
<title>NMU vs QA uploads</title> |
|
| 2135 |
<para> |
<para> |
| 2136 |
Unless you know the maintainer is still active, it is wise to check the package |
BinNMUs are usually triggered on the buildds by wanna-build. |
| 2137 |
to see if it has been orphaned. The current list of orphaned packages which |
An entry is added to debian/changelog, |
| 2138 |
haven't had their maintainer set correctly is available at <ulink |
explaining why the upload was needed and increasing the version number as |
| 2139 |
url="&url-debian-qa-orphaned;"></ulink>. If you perform an NMU on an |
described in <xref linkend="binary-only-nmu"/>. |
| 2140 |
improperly orphaned package, please set the maintainer to <literal>Debian QA Group |
This entry should not be included in the next upload. |
|
<packages@qa.debian.org></literal>. |
|
| 2141 |
</para> |
</para> |
|
</section> |
|
| 2142 |
|
|
|
<section id="nmu-who"> |
|
|
<title>Who can do an NMU</title> |
|
| 2143 |
<para> |
<para> |
| 2144 |
Only official, registered Debian Developers can do binary or source NMUs. A |
Buildds upload packages for their architecture to the archive as binary-only |
| 2145 |
Debian Developer is someone who has their key in the Debian key ring. |
uploads. Strictly speaking, these are binNMUs. However, they are not normally |
| 2146 |
Non-developers, however, are encouraged to download the source package and |
called NMU, and they don't add an entry to debian/changelog. |
|
start hacking on it to fix problems; however, rather than doing an NMU, they |
|
|
should just submit worthwhile patches to the Bug Tracking System. Maintainers |
|
|
almost always appreciate quality patches and bug reports. |
|
| 2147 |
</para> |
</para> |
| 2148 |
|
|
| 2149 |
</section> |
</section> |
| 2150 |
|
|
| 2151 |
<section id="nmu-terms"> |
<section id="nmu-qa-upload"> |
| 2152 |
<title>Terminology</title> |
<title>NMUs vs QA uploads</title> |
| 2153 |
|
|
| 2154 |
<para> |
<para> |
| 2155 |
There are two new terms used throughout this section: ``binary-only NMU'' and |
NMUs are uploads of packages by somebody else than their assigned maintainer. |
| 2156 |
``source NMU''. These terms are used with specific technical meaning |
There is |
| 2157 |
throughout this document. Both binary-only and source NMUs are similar, since |
another type of upload where the uploaded package is not yours: QA uploads. QA |
| 2158 |
they involve an upload of a package by a developer who is not the official |
uploads are uploads of orphaned packages. |
|
maintainer of that package. That is why it's a |
|
|
<literal>non-maintainer</literal> upload. |
|
| 2159 |
</para> |
</para> |
| 2160 |
|
|
| 2161 |
<para> |
<para> |
| 2162 |
A source NMU is an upload of a package by a developer who is not the official |
QA uploads are very much like normal maintainer uploads: they may fix anything, |
| 2163 |
maintainer, for the purposes of fixing a bug in the package. Source NMUs |
even minor issues; the version numbering is normal, and there is no need to use |
| 2164 |
always involves changes to the source (even if it is just a change to |
a delayed upload. The difference is that you are not listed as the Maintainer |
| 2165 |
<filename>debian/changelog</filename>). This can be either a change to the |
or Uploader for the package. Also, the changelog entry of a QA upload has a |
| 2166 |
upstream source, or a change to the Debian bits of the source. Note, however, |
special first line: |
|
that source NMUs may also include architecture-dependent packages, as well as |
|
|
an updated Debian diff. |
|
| 2167 |
</para> |
</para> |
| 2168 |
|
|
| 2169 |
|
<screen> |
| 2170 |
|
* QA upload. |
| 2171 |
|
</screen> |
| 2172 |
|
|
| 2173 |
<para> |
<para> |
| 2174 |
A binary-only NMU is a recompilation and upload of a binary package for a given |
If you want to do an NMU, and it seems that the maintainer is not active, it is |
| 2175 |
architecture. As such, it is usually part of a porting effort. A binary-only |
wise to check if the package is orphaned |
| 2176 |
NMU is a non-maintainer uploaded binary version of a package, with no source |
(this information is displayed on the package's Package Tracking System page). |
| 2177 |
changes required. There are many cases where porters must fix problems in the |
When doing the first QA upload to an |
| 2178 |
source in order to get them to compile for their target architecture; that |
orphaned package, the maintainer should be set to <literal>Debian QA Group |
| 2179 |
would be considered a source NMU rather than a binary-only NMU. As you can |
<packages@qa.debian.org></literal>. Orphaned packages which did |
| 2180 |
see, we don't distinguish in terminology between porter NMUs and non-porter |
not yet have a QA upload still have their old maintainer set. There is a list |
| 2181 |
NMUs. |
of them at <ulink url="&url-orphaned-not-qa;"/>. |
| 2182 |
</para> |
</para> |
| 2183 |
|
|
| 2184 |
<para> |
<para> |
| 2185 |
Both classes of NMUs, source and binary-only, can be lumped under the term |
Instead of doing a QA upload, you can also consider adopting the package by |
| 2186 |
``NMU''. However, this often leads to confusion, since most people think |
making yourself the maintainer. You don't need permission from anybody to |
| 2187 |
``source NMU'' when they think ``NMU''. So it's best to be careful: always use |
adopt an orphaned package, you can just set yourself as maintainer and upload |
| 2188 |
``binary NMU'' or ``binNMU'' for binary-only NMUs. |
the new version (see <xref linkend="adopting"/>). |
| 2189 |
</para> |
</para> |
| 2190 |
|
|
| 2191 |
</section> |
</section> |
| 2192 |
|
|
| 2193 |
</section> |
</section> |
| 2277 |
<section id="testing-basics"> |
<section id="testing-basics"> |
| 2278 |
<title>Basics</title> |
<title>Basics</title> |
| 2279 |
<para> |
<para> |
| 2280 |
Packages are usually installed into the `testing' distribution after they have |
Packages are usually installed into the <literal>testing</literal> distribution |
| 2281 |
undergone some degree of testing in unstable. |
after they have undergone some degree of <literal>testing</literal> in |
| 2282 |
|
<literal>unstable</literal>. |
| 2283 |
</para> |
</para> |
| 2284 |
<para> |
<para> |
| 2285 |
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 |
| 2286 |
make them uninstallable; they also have to have generally no known |
make them uninstallable; they also have to have generally no known |
| 2287 |
release-critical bugs at the time they're installed into testing. This way, |
release-critical bugs at the time they're installed into <literal>testing |
| 2288 |
`testing' should always be close to being a release candidate. Please see |
</literal>. This way, <literal>testing</literal> should always be close to |
| 2289 |
below for details. |
being a release candidate. Please see below for details. |
| 2290 |
</para> |
</para> |
| 2291 |
</section> |
</section> |
| 2292 |
|
|
| 2294 |
<title>Updates from unstable</title> |
<title>Updates from unstable</title> |
| 2295 |
<para> |
<para> |
| 2296 |
The scripts that update the <literal>testing</literal> distribution are run |
The scripts that update the <literal>testing</literal> distribution are run |
| 2297 |
each day after the installation of the updated packages; these scripts are |
twice each day, right after the installation of the updated packages; these |
| 2298 |
called <literal>britney</literal>. They generate the |
scripts are called <literal>britney</literal>. They generate the |
| 2299 |
<filename>Packages</filename> files for the <literal>testing</literal> |
<filename>Packages</filename> files for the <literal>testing</literal> |
| 2300 |
distribution, but they do so in an intelligent manner; they try to avoid any |
distribution, but they do so in an intelligent manner; they try to avoid any |
| 2301 |
inconsistency and to use only non-buggy packages. |
inconsistency and to use only non-buggy packages. |
| 2310 |
The package must have been available in <literal>unstable</literal> for 2, 5 |
The package must have been available in <literal>unstable</literal> for 2, 5 |
| 2311 |
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 |
| 2312 |
the urgency is sticky, meaning that the highest urgency uploaded since the |
the urgency is sticky, meaning that the highest urgency uploaded since the |
| 2313 |
previous testing transition is taken into account. Those delays may be doubled |
previous <literal>testing</literal> transition is taken into account. Those |
| 2314 |
during a freeze, or testing transitions may be switched off altogether; |
delays may be doubled during a freeze, or <literal>testing</literal> |
| 2315 |
|
transitions may be switched off altogether; |
| 2316 |
</para> |
</para> |
| 2317 |
</listitem> |
</listitem> |
| 2318 |
<listitem> |
<listitem> |
| 2325 |
<listitem> |
<listitem> |
| 2326 |
<para> |
<para> |
| 2327 |
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 |
| 2328 |
in unstable. <xref linkend="madison"/> may be of interest to check that |
in <literal>unstable</literal>. <xref linkend="dak-ls"/> may be of interest |
| 2329 |
information; |
to check that information; |
| 2330 |
</para> |
</para> |
| 2331 |
</listitem> |
</listitem> |
| 2332 |
<listitem> |
<listitem> |
| 2345 |
</listitem> |
</listitem> |
| 2346 |
</itemizedlist> |
</itemizedlist> |
| 2347 |
<para> |
<para> |
| 2348 |
To find out whether a package is progressing into testing or not, see the |
To find out whether a package is progressing into <literal>testing</literal> |
| 2349 |
testing script output on the <ulink |
or not, see the <literal>testing</literal> script output on the <ulink |
| 2350 |
url="&url-testing-maint;">web page of the testing |
url="&url-testing-maint;">web page of the testing |
| 2351 |
distribution</ulink>, or use the program <command>grep-excuses</command> which |
distribution</ulink>, or use the program <command>grep-excuses</command> which |
| 2352 |
is in the <systemitem role="package">devscripts</systemitem> package. This |
is in the <systemitem role="package">devscripts</systemitem> package. This |
| 2369 |
</para> |
</para> |
| 2370 |
<para> |
<para> |
| 2371 |
Some further dependency analysis is shown on <ulink |
Some further dependency analysis is shown on <ulink |
| 2372 |
url="http://bjorn.haxx.se/debian/"></ulink> — but be warned, this page also |
url="http://release.debian.org/migration/"></ulink> — but be warned, this page also |
| 2373 |
shows build dependencies which are not considered by britney. |
shows build dependencies which are not considered by britney. |
| 2374 |
</para> |
</para> |
| 2375 |
<section id="outdated"> |
<section id="outdated"> |
| 2376 |
<title>out-of-date</title> |
<title>out-of-date</title> |
| 2377 |
<para> |
<para> |
| 2378 |
<!-- FIXME: better rename this file than document rampant professionalism? --> |
<!-- FIXME: better rename this file than document rampant professionalism? --> |
| 2379 |
For the testing migration script, outdated means: There are different versions |
For the <literal>testing</literal> migration script, outdated means: There are |
| 2380 |
in unstable for the release architectures (except for the architectures in |
different versions in <literal>unstable</literal> for the release architectures |
| 2381 |
fuckedarches; fuckedarches is a list of architectures that don't keep up (in |
(except for the architectures in fuckedarches; fuckedarches is a list of |
| 2382 |
update_out.py), but currently, it's empty). outdated has nothing whatsoever to |
architectures that don't keep up (in <filename>update_out.py</filename>), but |
| 2383 |
do with the architectures this package has in testing. |
currently, it's empty). outdated has nothing whatsoever to do with the |
| 2384 |
|
architectures this package has in <literal>testing</literal>. |
| 2385 |
</para> |
</para> |
| 2386 |
<para> |
<para> |
| 2387 |
Consider this example: |
Consider this example: |
| 2410 |
</tgroup> |
</tgroup> |
| 2411 |
</informaltable> |
</informaltable> |
| 2412 |
<para> |
<para> |
| 2413 |
The package is out of date on alpha in unstable, and will not go to testing. |
The package is out of date on alpha in <literal>unstable</literal>, and will |
| 2414 |
And removing foo from testing would not help at all, the package is still out |
not go to <literal>testing</literal>. Removing the package would not help at all, the |
| 2415 |
of date on alpha, and will not propagate to testing. |
package is still out of date on <literal>alpha</literal>, and will not |
| 2416 |
|
propagate to testing. |
| 2417 |
</para> |
</para> |
| 2418 |
<para> |
<para> |
| 2419 |
However, if ftp-master removes a package in unstable (here on arm): |
However, if ftp-master removes a package in <literal>unstable</literal> (here |
| 2420 |
|
on <literal>arm</literal>): |
| 2421 |
</para> |
</para> |
| 2422 |
<informaltable pgwide="1"> |
<informaltable pgwide="1"> |
| 2423 |
<tgroup cols="4"> |
<tgroup cols="4"> |
| 2447 |
</informaltable> |
</informaltable> |
| 2448 |
<para> |
<para> |
| 2449 |
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 |
| 2450 |
unstable (and the extra hurd-i386 doesn't matter, as it's not a release |
<literal>unstable</literal> (and the extra <literal>hurd-i386</literal> |
| 2451 |
architecture). |
doesn't matter, as it's not a release architecture). |
| 2452 |
</para> |
</para> |
| 2453 |
<para> |
<para> |
| 2454 |
Sometimes, the question is raised if it is possible to allow packages in that |
Sometimes, the question is raised if it is possible to allow packages in that |
| 2467 |
be removed to allow <literal>b</literal> in. |
be removed to allow <literal>b</literal> in. |
| 2468 |
</para> |
</para> |
| 2469 |
<para> |
<para> |
| 2470 |
Of course, there is another reason to remove a package from testing: It's just |
Of course, there is another reason to remove a package from <literal>testing |
| 2471 |
too buggy (and having a single RC-bug is enough to be in this state). |
</literal>: It's just too buggy (and having a single RC-bug is enough to be |
| 2472 |
|
in this state). |
| 2473 |
</para> |
</para> |
| 2474 |
<para> |
<para> |
| 2475 |
Furthermore, if a package has been removed from unstable, and no package in |
Furthermore, if a package has been removed from <literal>unstable</literal>, |
| 2476 |
testing depends on it any more, then it will automatically be removed. |
and no package in <literal>testing</literal> depends on it any more, then it |
| 2477 |
|
will automatically be removed. |
| 2478 |
</para> |
</para> |
| 2479 |
</section> |
</section> |
| 2480 |
|
|
| 2525 |
<section id="s5.13.2.4"> |
<section id="s5.13.2.4"> |
| 2526 |
<title>influence of package in testing</title> |
<title>influence of package in testing</title> |
| 2527 |
<para> |
<para> |
| 2528 |
Generally, there is nothing that the status of a package in testing means for |
Generally, there is nothing that the status of a package in <literal>testing |
| 2529 |
transition of the next version from unstable to testing, with two exceptions: |
</literal> means for transition of the next version from <literal>unstable |
| 2530 |
|
</literal> to <literal>testing</literal>, with two exceptions: |
| 2531 |
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 |
| 2532 |
RC-buggy. The second exception is if the version of the package in testing is |
RC-buggy. The second exception is if the version of the package in <literal> |
| 2533 |
out of sync on the different arches: Then any arch might just upgrade to the |
testing</literal> is out of sync on the different arches: Then any arch might |
| 2534 |
version of the source package; however, this can happen only if the package was |
just upgrade to the version of the source package; however, this can happen |
| 2535 |
previously forced through, the arch is in fuckedarches, or there was no binary |
only if the package was previously forced through, the arch is in fuckedarches, |
| 2536 |
package of that arch present in unstable at all during the testing migration. |
or there was no binary package of that arch present in <literal>unstable |
| 2537 |
|
</literal> at all during the <literal>testing</literal> migration. |
| 2538 |
</para> |
</para> |
| 2539 |
<para> |
<para> |
| 2540 |
In summary this means: The only influence that a package being in testing has |
In summary this means: The only influence that a package being in <literal> |
| 2541 |
on a new version of the same package is that the new version might go in |
testing</literal> has on a new version of the same package is that the new |
| 2542 |
easier. |
version might go in easier. |
| 2543 |
</para> |
</para> |
| 2544 |
</section> |
</section> |
| 2545 |
|
|
| 2558 |
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.) |
| 2559 |
</para> |
</para> |
| 2560 |
<para> |
<para> |
| 2561 |
Now, the more complex part happens: Britney tries to update testing with the |
Now, the more complex part happens: Britney tries to update <literal>testing |
| 2562 |
valid candidates; first, each package alone, and then larger and even larger |
</literal> with the valid candidates. For that, britney tries to add each |
| 2563 |
sets of packages together. Each try is accepted if testing is not more |
valid candidate to the testing distribution. If the number of uninstallable |
| 2564 |
uninstallable after the update than before. (Before and after this part, some |
packages in <literal>testing</literal> doesn't increase, the package is |
| 2565 |
hints are processed; but as only release masters can hint, this is probably not |
accepted. From that point on, the accepted package is considered to be part |
| 2566 |
so important for you.) |
of <literal>testing</literal>, such that all subsequent installability |
| 2567 |
|
tests include this package. Hints from the release team are processed |
| 2568 |
|
before or after this main run, depending on the exact type. |
| 2569 |
</para> |
</para> |
| 2570 |
<para> |
<para> |
| 2571 |
If you want to see more details, you can look it up on |
If you want to see more details, you can look it up on |
| 2572 |
merkel:/org/&ftp-debian-org;/testing/update_out/ (or there in |
<filename>merkel:/org/&ftp-debian-org;/testing/update_out/</filename> (or |
| 2573 |
~aba/testing/update_out to see a setup with a smaller packages file). Via web, |
in <filename>merkel:~aba/testing/update_out</filename> to see a setup with |
| 2574 |
it's at <ulink |
a smaller packages file). Via web, it's at <ulink |
| 2575 |
url="http://&ftp-master-host;/testing/update_out_code/"></ulink> |
url="http://&ftp-master-host;/testing/update_out_code/"></ulink> |
| 2576 |
</para> |
</para> |
| 2577 |
<para> |
<para> |
| 2585 |
<section id="t-p-u"> |
<section id="t-p-u"> |
| 2586 |
<title>Direct updates to testing</title> |
<title>Direct updates to testing</title> |
| 2587 |
<para> |
<para> |
| 2588 |
The testing distribution is fed with packages from unstable according to the |
The <literal>testing</literal> distribution is fed with packages from |
| 2589 |
rules explained above. However, in some cases, it is necessary to upload |
<literal>unstable</literal> according to the rules explained above. However, |
| 2590 |
packages built only for testing. For that, you may want to upload to |
in some cases, it is necessary to upload packages built only for <literal> |
| 2591 |
<literal>testing-proposed-updates</literal>. |
testing</literal>. For that, you may want to upload to <literal> |
| 2592 |
|
testing-proposed-updates</literal>. |
| 2593 |
</para> |
</para> |
| 2594 |
<para> |
<para> |
| 2595 |
Keep in mind that packages uploaded there are not automatically processed, they |
Keep in mind that packages uploaded there are not automatically processed, they |
| 2601 |
<para> |
<para> |
| 2602 |
You should not upload to <literal>testing-proposed-updates</literal> when you |
You should not upload to <literal>testing-proposed-updates</literal> when you |
| 2603 |
can update your packages through <literal>unstable</literal>. If you can't |
can update your packages through <literal>unstable</literal>. If you can't |
| 2604 |
(for example because you have a newer development version in unstable), you may |
(for example because you have a newer development version in <literal>unstable |
| 2605 |
use this facility, but it is recommended that you ask for authorization from |
</literal>), you may use this facility, but it is recommended that you ask for |
| 2606 |
the release manager first. Even if a package is frozen, updates through |
authorization from the release manager first. Even if a package is frozen, |
| 2607 |
unstable are possible, if the upload via unstable does not pull in any new |
updates through <literal>unstable</literal> are possible, if the upload via |
| 2608 |
dependencies. |
<literal>unstable</literal> does not pull in any new dependencies. |
| 2609 |
</para> |
</para> |
| 2610 |
<para> |
<para> |
| 2611 |
Version numbers are usually selected by adding the codename of the testing |
Version numbers are usually selected by adding the codename of the |
| 2612 |
distribution and a running number, like 1.2sarge1 for the first upload through |
<literal>testing</literal> distribution and a running number, like |
| 2613 |
<literal>testing-proposed-updates</literal> of package version 1.2. |
<literal>1.2sarge1</literal> for the first upload through |
| 2614 |
|
<literal>testing-proposed-updates</literal> of package version |
| 2615 |
|
<literal>1.2</literal>. |
| 2616 |
</para> |
</para> |
| 2617 |
<para> |
<para> |
| 2618 |
Please make sure you didn't miss any of these items in your upload: |
Please make sure you didn't miss any of these items in your upload: |
| 2621 |
<listitem> |
<listitem> |
| 2622 |
<para> |
<para> |
| 2623 |
Make sure that your package really needs to go through |
Make sure that your package really needs to go through |
| 2624 |
<literal>testing-proposed-updates</literal>, and can't go through unstable; |
<literal>testing-proposed-updates</literal>, and can't go through <literal> |
| 2625 |
|
unstable</literal>; |
| 2626 |
</para> |
</para> |
| 2627 |
</listitem> |
</listitem> |
| 2628 |
<listitem> |
<listitem> |
| 2669 |
<title>What are release-critical bugs, and how do they get counted?</title> |
<title>What are release-critical bugs, and how do they get counted?</title> |
| 2670 |
<para> |
<para> |
| 2671 |
All bugs of some higher severities are by default considered release-critical; |
All bugs of some higher severities are by default considered release-critical; |
| 2672 |
currently, these are critical, grave, and serious bugs. |
currently, these are <literal>critical</literal>, <literal>grave</literal> and |
| 2673 |
|
<literal>serious</literal> bugs. |
| 2674 |
</para> |
</para> |
| 2675 |
<para> |
<para> |
| 2676 |
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 |
| 2677 |
be released with the stable release of Debian: in general, if a package has |
be released with the <literal>stable</literal> release of Debian: in general, |
| 2678 |
open release-critical bugs filed on it, it won't get into testing, and |
if a package has open release-critical bugs filed on it, it won't get into |
| 2679 |
consequently won't be released in stable. |
<literal>testing</literal>, and consequently won't be released in <literal> |
| 2680 |
</para> |
stable</literal>. |
|
<para> |
|
|
The unstable bug count are all release-critical bugs without either any |
|
|
release-tag (such as potato, woody) or with release-tag sid; also, only if they |
|
|
are neither fixed nor set to sarge-ignore. The testing bug count for a package |
|
|
is considered to be roughly the bug count of unstable count at the last point |
|
|
when the testing version equalled the unstable version. |
|
| 2681 |
</para> |
</para> |
| 2682 |
<para> |
<para> |
| 2683 |
This will change post-sarge, as soon as we have versions in the bug tracking |
The <literal>unstable</literal> bug count are all release-critical bugs which |
| 2684 |
system. |
are marked to apply to <replaceable>package</replaceable>/<replaceable>version |
| 2685 |
|
</replaceable> combinations that are available in unstable for a release |
| 2686 |
|
architecture. The <literal>testing</literal> bug count is defined analogously. |
| 2687 |
</para> |
</para> |
| 2688 |
</section> |
</section> |
| 2689 |
|
|
| 2690 |
<section id="s5.13.4.2"> |
<section id="s5.13.4.2"> |
| 2691 |
<title>How could installing a package into testing possibly break other packages?</title> |
<title>How could installing a package into <literal>testing</literal> possibly |
| 2692 |
|
break other packages?</title> |
| 2693 |
<para> |
<para> |
| 2694 |
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 |
| 2695 |
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 |
| 2696 |
package acmefoo is installed into testing, along with its binary packages |
package <literal>acmefoo</literal> is installed into <literal>testing</literal>, |
| 2697 |
acme-foo-bin, acme-bar-bin, libacme-foo1 and libacme-foo-dev, the old version |
along with its binary packages <literal>acme-foo-bin</literal>, <literal> |
| 2698 |
is removed. |
acme-bar-bin</literal>, <literal>libacme-foo1</literal> and <literal> |
| 2699 |
|
libacme-foo-dev</literal>, the old version is removed. |
| 2700 |
</para> |
</para> |
| 2701 |
<para> |
<para> |
| 2702 |
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 |
| 2703 |
of a library, such as libacme-foo0. Removing the old acmefoo will remove |
of a library, such as <literal>libacme-foo0</literal>. Removing the old |
| 2704 |
libacme-foo0, which will break any packages which depend on it. |
<literal>acmefoo</literal> will remove <literal>libacme-foo0</literal>, which |
| 2705 |
|
will break any packages which depend on it. |
| 2706 |
</para> |
</para> |
| 2707 |
<para> |
<para> |
| 2708 |
Evidently, this mainly affects packages which provide changing sets of binary |
Evidently, this mainly affects packages which provide changing sets of binary |
| 2714 |
When the set of binary packages provided by a source package change in this |
When the set of binary packages provided by a source package change in this |
| 2715 |
way, all the packages that depended on the old binaries will have to be updated |
way, all the packages that depended on the old binaries will have to be updated |
| 2716 |
to depend on the new binaries instead. Because installing such a source |
to depend on the new binaries instead. Because installing such a source |
| 2717 |
package into testing breaks all the packages that depended on it in testing, |
package into <literal>testing</literal> breaks all the packages that depended on |
| 2718 |
|
it in <literal>testing</literal>, |
| 2719 |
some care has to be taken now: all the depending packages must be updated and |
some care has to be taken now: all the depending packages must be updated and |
| 2720 |
ready to be installed themselves so that they won't be broken, and, once |
ready to be installed themselves so that they won't be broken, and, once |
| 2721 |
everything is ready, manual intervention by the release manager or an assistant |
everything is ready, manual intervention by the release manager or an assistant |
| 2723 |
</para> |
</para> |
| 2724 |
<para> |
<para> |
| 2725 |
If you are having problems with complicated groups of packages like this, |
If you are having problems with complicated groups of packages like this, |
| 2726 |
contact debian-devel or debian-release for help. |
contact &email-debian-devel; or &email-debian-release; for help. |
| 2727 |
</para> |
</para> |
| 2728 |
</section> |
</section> |
| 2729 |
|
|