X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=pkgs.dbk;h=e98b54e47784de104c0e13ed5b8e32b0e3e31215;hb=373b7237c8f6b807ce10c0a8e123ca05f890969d;hp=b634c8387de042924e506d64dac0b814a8dfabc3;hpb=584f47c953135ae9e708ee23afe5cb279bd5b0a4;p=developers-reference.git
diff --git a/pkgs.dbk b/pkgs.dbk
index b634c83..e98b54e 100644
--- a/pkgs.dbk
+++ b/pkgs.dbk
@@ -21,40 +21,41 @@ pages for more information.
Assuming no one else is already working on your prospective package, you must
-then submit a bug report ( ) against the
+then submit a bug report () against the
pseudo-package wnpp describing your
plan to create a new package, including, but not limiting yourself to, a
description of the package, the license of the prospective package, and the
current URL where it can be downloaded from.
-You should set the subject of the bug to ITP:
+You should set the subject of the bug to ITP:
foo -- short
description, substituting the name of the new
-package for foo.
+package for foo.
The severity of the bug report must be set to wishlist.
Please send a copy to &email-debian-devel; by using the X-Debbugs-CC
header (don't use CC:, because that way the message's subject won't
indicate the bug number). If you are packaging so many new packages (>10)
-that notifying the mailing list in seperate messages is too disruptive,
-do send a summary after filing the bugs to the debian-devel list instead.
+that notifying the mailing list in separate messages is too disruptive,
+send a summary after filing the bugs to the debian-devel list instead.
This will inform the other developers about upcoming packages and will
allow a review of your description and package name.
-Please include a Closes:
-bug#nnnnn entry in the changelog of the
-new package in order for the bug report to be automatically closed once the new
-package is installed in the archive (see ).
+Please include a Closes: #nnnnn
+entry in the changelog of the new package in order for the bug report to
+be automatically closed once the new package is installed in the archive
+(see ).
If you think your package needs some explanations for the administrators of the
-NEW package queue, include them in your changelog, send to ftpmaster@debian.org
+NEW package queue, include them in your changelog, send to &email-ftpmaster;
a reply to the email you receive as a maintainer after your upload, or reply to
the rejection email in case you are already re-uploading.
-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.
This is useful for the security team to track vulnerabilities. If an upload is
made to fix the bug before the advisory ID is known, it is encouraged to modify
the historical changelog entry with the next upload. Even in this case, please
@@ -121,28 +122,28 @@ for native packages.
The debian/changelog file conforms to a certain structure,
with a number of different fields. One field of note, the
distribution, is described in . More information about the structure of this file
+linkend="distribution"/>. More information about the structure of this file
can be found in the Debian Policy section titled
debian/changelog.
Changelog entries can be used to automatically close Debian bugs when the
-package is installed into the archive. See .
+package is installed into the archive. See .
It is conventional that the changelog entry of a package that contains a new
upstream version of the software looks like this:
- * new upstream version
+ * New upstream release.
There are tools to help you create entries and finalize the
changelog for release â see
-and .
+and .
-See also .
+See also .
@@ -177,12 +178,12 @@ lintian to emit errors (they will start with E).
For more information on lintian, see .
+linkend="lintian"/>.
-Optionally run to analyze changes from an older
+Optionally run debdiff (see ) to analyze changes from an older
version, if one exists.
@@ -202,7 +203,7 @@ Remove the package, then reinstall it.
Copy the source package in a different directory and try unpacking it and
rebuilding it. This tests if the package relies on existing files outside of
it, or if it relies on permissions being preserved on the files shipped inside
-the .diff.gz file.
+the .diff.gz file.
@@ -229,12 +230,12 @@ accompanied by another file that contains the changes made by Debian
For the native packages, the source package includes a Debian source control
-file (.dsc) and the source tarball
-(.tar.{gz,bz2,lzma}). A source package of a non-native package
+file (.dsc) and the source tarball
+(.tar.{gz,bz2,lzma}). A source package of a non-native package
includes a Debian source control file, the original source tarball
-(.orig.tar.{gz,bz2,lzma}) and the Debian changes
-(.diff.gz for the source format â1.0â or
-.debian.tar.{gz,bz2,lzma} for the source format â3.0 (quilt)â).
+(.orig.tar.{gz,bz2,lzma}) and the Debian changes
+(.diff.gz for the source format â1.0â or
+.debian.tar.{gz,bz2,lzma} for the source format â3.0 (quilt)â).
With source format â1.0â, whether a package is native or not was determined
@@ -267,7 +268,7 @@ the archive.
Please notice that, in non-native packages, permissions on files that are not
-present in the .orig.tar.{gz,bz2} will not be preserved, as diff does not store file
+present in the *.orig.tar.{gz,bz2,lzma} will not be preserved, as diff does not store file
permissions in the patch. However when using source format â3.0 (quilt)â,
permissions of files inside the debian directory are
preserved since they are stored in a tar archive.
@@ -280,7 +281,7 @@ preserved since they are stored in a tar archive.
Each upload needs to specify which distribution the package is intended for.
The package build process extracts this information from the first line of the
debian/changelog file and places it in the
-Distribution field of the .changes file.
+Distribution field of the .changes file.
There are several possible values for this field: stable,
@@ -289,8 +290,8 @@ There are several possible values for this field: stable,
unstable.
-Actually, there are two other possible distributions: stable-security
- and testing-security, but read
+Actually, there are two other possible distributions: stable-security
+and testing-security, but read
for more information on those.
@@ -298,7 +299,7 @@ It is not possible to upload a package into several distributions at the same
time.
-Special case: uploads to the stable and
+Special case: uploads to the stable and
oldstable distributions
Uploading to stable means that the package will transferred
@@ -358,15 +359,15 @@ Packages uploaded to stable need to be compiled on systems
running stable, so that their dependencies are limited to
the libraries (and other packages) available in stable;
for example, a package uploaded to stable that depends on
-a library package that only exists in unstable will be
+a library package that only exists in unstable will be
rejected. Making changes to dependencies of other packages (by messing with
-Provides or shlibs files), possibly
+Provides or shlibs files), possibly
making those other packages uninstallable, is strongly discouraged.
Uploads to the oldstable distributions are possible as
-long as it hasn't been archived. The same rules as for stable
- apply.
+long as it hasn't been archived. The same rules as for stable
+apply.
@@ -399,14 +400,14 @@ upload may be rejected because the archive maintenance software will parse the
changes file and see that not all files have been uploaded.
-You may also find the Debian packages or useful when uploading packages. These handy programs help
-automate the process of uploading packages into Debian.
+You may also find the Debian packages dupload
+or dput useful when uploading packages.These
+handy programs help automate the process of uploading packages into Debian.
For removing packages, please see
- and
-the Debian package .
+ and
+the Debian package dcut.
@@ -416,14 +417,13 @@ the Debian package .
It is sometimes useful to upload a package immediately, but to want this
package to arrive in the archive only a few days later. For example,
-when preparing a Non-maintainer Upload,
+when preparing a Non-Maintainer Upload,
you might want to give the maintainer a few days to react.
An upload to the delayed directory keeps the package in
-
-the deferred uploads queue".
+the deferred uploads queue.
When the specified waiting time is over, the package is moved into
the regular incoming directory for processing.
This is done through automatic uploading to
@@ -441,11 +441,11 @@ parameter to put the package into one of the queues.
Security uploads
Do NOT upload a package to the security
-upload queue (oldstable-security, stable-security
-, etc.) without prior authorization from the security team. If the
+upload queue (oldstable-security, stable-security,
+etc.) without prior authorization from the security team. If the
package does not exactly meet the team's requirements, it will cause many
problems and delays in dealing with the unwanted upload. For details, please
-see section .
+see .
@@ -461,7 +461,7 @@ for European developers.
Packages can also be uploaded via ssh to
&ssh-upload-host;; files should be put
/srv/upload.debian.org/UploadQueue. This queue does
-not support delayed uploads.
+not support delayed uploads.
@@ -472,7 +472,7 @@ The Debian archive maintainers are responsible for handling package uploads.
For the most part, uploads are automatically handled on a daily basis by the
archive maintenance tools, katie. Specifically, updates to
existing packages to the unstable distribution are handled
-automatically. In other cases, notably new packages, placing the uploaded
+automatically. In other cases, notably new packages, placing the uploaded
package into the distribution is handled manually. When uploads are handled
manually, the change to the archive may take up to a month to occur. Please
be patient.
@@ -536,7 +536,7 @@ url="&url-bts-devel;#maintincorrect">.
Note that the Section field describes both the section as
well as the subsection, which are described in . If the section is main, it should be omitted.
+linkend="archive-sections"/>. If the section is main, it should be omitted.
The list of allowable subsections can be found in .
@@ -547,7 +547,7 @@ url="&url-debian-policy;ch-archive.html#s-subsections">.
Every developer has to be able to work with the Debian bug tracking system. This includes
-knowing how to file bug reports properly (see ),
+knowing how to file bug reports properly (see ),
how to update them and reorder them, and how to process and close them.
@@ -600,11 +600,11 @@ address.
When responding to bugs, make sure that any discussion you have about bugs is
sent both to the original submitter of the bug, and to the bug itself (e.g.,
-123@&bugs-host;). If you're writing a new mail and you
+123@&bugs-host;). If you're writing a new mail and you
don't remember the submitter email address, you can use the
-123-submitter@&bugs-host; email to contact the submitter
+123-submitter@&bugs-host; email to contact the submitter
and to record your mail within the bug log (that means you
-don't need to send a copy of the mail to 123@&bugs-host;).
+don't need to send a copy of the mail to 123@&bugs-host;).
If you get a bug which mentions FTBFS, this means Fails to build from source.
@@ -613,9 +613,9 @@ Porters frequently use this acronym.
Once you've dealt with a bug report (e.g. fixed it), mark it as
done (close it) by sending an explanation message to
-123-done@&bugs-host;. If you're fixing a bug by changing
+123-done@&bugs-host;. If you're fixing a bug by changing
and uploading the package, you can automate bug closing as described in .
+linkend="upload-bugfix"/>.
You should never close bugs via the bug server
@@ -678,7 +678,7 @@ the right package. If you don't know which package it should be reassigned to,
you should ask for help on IRC or
on &email-debian-devel;. Please inform the maintainer(s) of the package
you reassign the bug to, for example by Cc:ing the message that does the
-reassign to packagename@packages.debian.org and explaining
+reassign to packagename@packages.debian.org and explaining
your reasons in that mail. Please note that a simple reassignment is
not e-mailed to the maintainers of the package
being reassigned to, so they won't know about it until they look at
@@ -740,7 +740,7 @@ bug as patch.
If you have fixed a bug in your local copy, or if a fix has been committed to
-the CVS repository, you may tag the bug as pending to let
+the VCS repository, you may tag the bug as pending to let
people know that the bug is corrected and that it will be closed with the next
upload (add the closes: in the
changelog). This is particularly useful if you are
@@ -792,13 +792,13 @@ closing changelogs are identified:
We prefer the closes: #XXX
syntax, as it is the most concise entry and the easiest to integrate with the
text of the changelog. Unless specified different by the
--v-switch to dpkg-buildpackage,
+-v-switch to dpkg-buildpackage,
only the bugs closed in the most recent changelog entry are closed (basically,
exactly the bugs mentioned in the changelog-part in the
.changes file are closed).
-Historically, uploads identified as Non-maintainer
+Historically, uploads identified as non-maintainer
upload (NMU) were tagged fixed instead of being
closed, but that practice was ceased with the advent of version-tracking. The
same applied to the tag fixed-in-experimental.
@@ -810,8 +810,8 @@ bugs, send a reopen XXX command
to the bug tracking system's control address,
&email-bts-control;. To close any remaining bugs that were
fixed by your upload, email the .changes file to
-XXX-done@&bugs-host;, where XXX
-is the bug number, and put Version: YYY and an empty line as the first two
+XXX-done@&bugs-host;, where XXX
+is the bug number, and put Version: YYY and an empty line as the first two
lines of the body of the email, where YYY is the
first version where the bug has been fixed.
@@ -819,13 +819,13 @@ first version where the bug has been fixed.
Bear in mind that it is not obligatory to close bugs using the changelog as
described above. If you simply want to close bugs that don't have anything to
do with an upload you made, do it by emailing an explanation to
-XXX-done@&bugs-host;. Do XXX-done@&bugs-host;. Do not close bugs in the changelog entry of a version if
the changes in that version of the package don't have any bearing on the bug.
For general information on how to write your changelog entries, see .
+linkend="bpp-debian-changelog"/>.
@@ -850,7 +850,7 @@ without contacting the team. Useful information includes, for example:
Which versions of the package are known to be affected by the bug. Check each
-version that is present in a supported Debian release, as well as
+version that is present in a supported Debian release, as well as
testing and unstable.
@@ -862,7 +862,7 @@ The nature of the fix, if any is available (patches are especially helpful)
Any fixed packages that you have prepared yourself (send only the
-.diff.gz and .dsc files and read .diff.gz and .dsc files and read first)
@@ -875,7 +875,7 @@ testing, etc.)
Any information needed for the advisory (see )
+linkend="bug-security-advisories"/>)
@@ -960,9 +960,9 @@ release of Debian. When sending confidential information to the security team,
be sure to mention this fact.
-Please note that if secrecy is needed you may not upload a fix to
+Please note that if secrecy is needed you may not upload a fix to
unstable (or
-anywhere else, such as a public CVS repository). It is not sufficient to
+anywhere else, such as a public VCS repository). It is not sufficient to
obfuscate the details of the change, as the code itself is public, and can (and
will) be examined by the general public.
@@ -973,7 +973,7 @@ has become public.
The Security Team has a PGP-key to enable encrypted communication about
-sensitive issues. See the Security Team FAQ for details.
+sensitive issues. See the Security Team FAQ for details.
@@ -1103,7 +1103,7 @@ the previous version repeatedly (interdiff from the
patchutils package and
debdiff from devscripts are useful tools for this, see ).
+linkend="debdiff"/>).
Be sure to verify the following items:
@@ -1114,7 +1114,7 @@ Be sure to verify the following items:
Target the right distribution
in your debian/changelog.
For stable this is stable-security and
-for testing this is testing-security, and for the previous
+for testing this is testing-security, and for the previous
stable release, this is oldstable-security. Do not target
distribution-proposed-updates or
stable!
@@ -1138,14 +1138,14 @@ process. The identifier can be cross-referenced later.
-Make sure the version number is proper.
+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 dpkg
--compare-versions. Be careful not to re-use a version number that
you have already used for a previous upload, or one that conflicts with a
binNMU. The convention is to append
+codename1, e.g.
-1:2.4.3-4+etch1, of course increasing 1 for any subsequent
+1:2.4.3-4+lenny1, of course increasing 1 for any subsequent
uploads.
@@ -1156,13 +1156,13 @@ Unless the upstream source has been uploaded to security.debian.org
role="strong">with full upstream source (dpkg-buildpackage
-sa). If there has been a previous upload to
security.debian.org with the same upstream version, you may
-upload without upstream source ( dpkg-buildpackage -sd).
+upload without upstream source (dpkg-buildpackage -sd).
Be sure to use the exact same
-*.orig.tar.{gz,bz2} as used in the
+*.orig.tar.{gz,bz2,lzma} as used in the
normal archive, otherwise it is not possible to move the security fix into the
main archives later.
@@ -1172,8 +1172,8 @@ main archives later.
Build the package on a clean system which only
has packages installed from the distribution you are building for. If you do not
have such a system yourself, you can use a debian.org machine (see
- ) or setup a chroot (see
- and ).
+) or setup a chroot (see
+ and ).
@@ -1183,14 +1183,14 @@ have such a system yourself, you can use a debian.org machine (see
Uploading the fixed package
Do NOT upload a package to the security
-upload queue (oldstable-security, stable-security
-, etc.) without prior authorization from the security team. If the
-package does not exactly meet the team's requirements, it will cause many
+upload queue (oldstable-security, stable-security,
+etc.) without prior authorization from the security team. If the
+package does not exactly meet the team's requirements, it will cause many
problems and delays in dealing with the unwanted upload.
-Do NOT upload your fix to
-proposed-updates without coordinating with the security team.
+Do NOT upload your fix to
+proposed-updates without coordinating with the security team.
Packages from security.debian.org will be copied into
the proposed-updates directory automatically. If a package
with the same or a higher version number is already installed into the archive,
@@ -1202,7 +1202,7 @@ instead.
Once you have created and tested the new package and it has been approved by
the security team, it needs to be uploaded so that it can be installed in the
archives. For security uploads, the place to upload to is
-ftp://security-master.debian.org/pub/SecurityUploadQueue/ .
+ftp://security-master.debian.org/pub/SecurityUploadQueue/.
Once an upload to the security queue has been accepted, the package will
@@ -1248,7 +1248,7 @@ control information to place the package in the desired section, and re-upload
the package (see the Debian Policy Manual for
details). You must ensure that you include the
-.orig.tar.{gz,bz2} in your upload (even if you are not uploading
+.orig.tar.{gz,bz2,lzma} in your upload (even if you are not uploading
a new upstream version), or it will not appear in the new section together with
the rest of the package. If your new section is valid, it will be moved
automatically. If it does not, then contact the ftpmasters in order to
@@ -1259,7 +1259,7 @@ If, on the other hand, you need to change the subsection
of one of your packages (e.g., ``devel'', ``admin''), the procedure is slightly
different. Correct the subsection as found in the control file of the package,
and re-upload that. Also, you'll need to get the override file updated, as
-described in .
+described in .
@@ -1270,16 +1270,16 @@ If for some reason you want to completely remove a package (say, if it is an
old compatibility library which is no longer required), you need to file a bug
against ftp.debian.org asking that the package be removed;
as all bugs, this bug should normally have normal severity.
-The bug title should be in the form RM: package
-[architecture list] --
+The bug title should be in the form RM: package
+[architecture list] --
reason, where package
is the package to be removed and reason is a
-short summary of the reason for the removal request.
+short summary of the reason for the removal request.
[architecture list] is optional and only needed
if the removal request only applies to some architectures, not all. Note
that the reportbug will create a title conforming
-to these rules when you use it to report a bug against the
-ftp.debian.org pseudo-package.
+to these rules when you use it to report a bug against the
+ftp.debian.org pseudo-package.
@@ -1292,13 +1292,13 @@ pending removal requests.
-Note that removals can only be done for the unstable
-, experimental and stable
- distribution. Packages are not removed from
+Note that removals can only be done for the unstable,
+experimental and stable
+distribution. Packages are not removed from
testing directly. Rather, they will be removed
automatically after the package has been removed from
-unstable and no package in testing
- depends on it.
+unstable and no package in
+testing depends on it.
There is one exception when an explicit removal request is not necessary: If a
@@ -1337,7 +1337,7 @@ the apt-cache program from the apt package. When invoked as apt-cache
showpkg package, the program will show
details for package, including reverse depends.
-Other useful programs include apt-cache rdepends,
+Other useful programs include apt-cache rdepends,
apt-rdepends, build-rdeps (in the
devscripts package) and
grep-dctrl. Removal of
@@ -1379,13 +1379,13 @@ rename their software (or you made a mistake naming your package),
you should follow a two-step process to rename it. In the first
step, change the debian/control file to
reflect the new name and to replace, provide and conflict with the
-obsolete package name (see the
-Debian Policy Manual for details). Please note that you
+obsolete package name (see the Debian
+Policy Manual for details). Please note that you
should only add a Provides relation if all
packages depending on the obsolete package name continue to work
after the renaming. Once you've uploaded the package and the package
-has moved into the archive, file a bug against
-ftp.debian.org asking to remove the package with the
+has moved into the archive, file a bug against ftp.debian.org
+asking to remove the package with the
obsolete name (see ). Do not forget
to properly reassign the package's bugs at the same time.
@@ -1448,7 +1448,7 @@ information and procedures.
It is not OK to simply take over a package that you feel is neglected â that
would be package hijacking. You can, of course, contact the current maintainer
and ask them if you may take over the package. If you have reason to believe a
-maintainer has gone AWOL (absent without leave), see .
+maintainer has gone AWOL (absent without leave), see .
Generally, you may not take over the package without the assent of the current
@@ -1464,7 +1464,7 @@ more information).
If you take over an old package, you probably want to be listed as the
package's official maintainer in the bug system. This will happen
automatically once you upload a new version with an updated
-Maintainer: field, although it can take a few hours after
+Maintainer field, although it can take a few hours after
the upload is done. If you do not expect to upload a new version for a while,
you can use to get the bug reports.
However, make sure that the old maintainer has no problem with the fact that
@@ -1487,8 +1487,8 @@ Porting is the act of building Debian packages for architectures that are
different from the original architecture of the package maintainer's binary
package. It is a unique and essential activity. In fact, porters do most of
the actual compiling of Debian packages. For instance, when a maintainer
-uploads a (portable) source packages with binaries for the i386
- architecture, it will be built for each of the other architectures,
+uploads a (portable) source packages with binaries for the i386
+architecture, it will be built for each of the other architectures,
amounting to &number-of-arches; more builds.
@@ -1521,18 +1521,18 @@ Make sure that your Build-Depends and
debian/control are set properly. The best way to validate
this is to use the debootstrap package
to create an unstable chroot environment (see ).
+linkend="debootstrap"/>).
Within that chrooted environment, install the build-essential package and any package
dependencies mentioned in Build-Depends and/or
Build-Depends-Indep. Finally, try building your package
within that chrooted environment. These steps can be automated by the use of
the pbuilder program which is provided by the package of the
-same name (see ).
+same name (see ).
If you can't set up a proper chroot, dpkg-depcheck may be of
-assistance (see ).
+assistance (see ).
See the Debian Policy
@@ -1541,9 +1541,9 @@ Manual for instructions on setting build dependencies.
-Don't set architecture to a value other than all or
+Don't set architecture to a value other than all or
any unless you really mean it. In too many cases,
-maintainers don't follow the instructions in the Debian Policy Manual. Setting your
architecture to only one architecture (such as i386
or amd64) is usually incorrect.
@@ -1592,8 +1592,8 @@ standardize on different compilers.
-Make sure your debian/rules contains separate binary-arch
-and binary-indep targets, as the Debian Policy Manual
+Make sure your debian/rules contains separate binary-arch
+and binary-indep targets, as the Debian Policy Manual
requires. Make sure that both targets work independently, that is, that you
can call the target without having called the other before. To test this,
try to run dpkg-buildpackage -B.
@@ -1623,8 +1623,8 @@ The way to invoke dpkg-buildpackage is as
-mporter-email. Of course, set
porter-email to your email address. This will do a
binary-only build of only the architecture-dependent portions of the package,
-using the binary-arch target in debian/rules
-.
+using the binary-arch target in
+debian/rules.
If you are working on a Debian machine for your porting efforts and you need to
@@ -1638,7 +1638,7 @@ it signed conveniently, or use the remote signing mode of
Sometimes the initial porter upload is problematic because the environment in
which the package was built was not good enough (outdated or obsolete library,
-bad compiler, ...). Then you may just need to recompile it in an updated
+bad compiler, etc.). Then you may just need to recompile it in an updated
environment. However, you have to bump the version number in this case, so
that the old bad package can be replaced in the Debian archive
(dak refuses to install new packages if they don't have a
@@ -1648,8 +1648,7 @@ version number greater than the currently available one).
You have to make sure that your binary-only NMU doesn't render the package
uninstallable. This could happen when a source package generates
arch-dependent and arch-independent packages that have inter-dependencies
-generated using dpkg's substitution variable $(Source-Version)
-.
+generated using dpkg's substitution variable $(Source-Version).
Despite the required modification of the changelog, these are called
@@ -1665,14 +1664,14 @@ source code).
The ``magic'' for a recompilation-only NMU is triggered by using a suffix
-appended to the package version number, following the form
-bnumber.
+appended to the package version number, following the form
+bnumber.
For instance, if the latest version you are recompiling against was version
-2.9-3, your binary-only NMU should carry a version of
-2.9-3+b1. If the latest version was 3.4+b1
- (i.e, a native package with a previous recompilation NMU), your
-binary-only NMU should have a version number of 3.4+b2.
- In the past, such NMUs used the third-level number on the
+2.9-3, your binary-only NMU should carry a version of
+2.9-3+b1. If the latest version was 3.4+b1
+(i.e, a native package with a previous recompilation NMU), your
+binary-only NMU should have a version number of 3.4+b2.
+In the past, such NMUs used the third-level number on the
Debian part of the revision to denote their recompilation-only status;
however, this syntax was ambiguous with native packages and did not allow
proper ordering of recompile-only NMUs, source NMUs, and security NMUs on
@@ -1690,7 +1689,7 @@ to only build the architecture-dependent parts of the package.
When to do a source NMU if you are a porter
Porters doing a source NMU generally follow the guidelines found in , just like non-porters. However, it is expected that the wait
+linkend="nmu"/>, just like non-porters. However, it is expected that the wait
cycle for a porter's source NMU is smaller than for a non-porter, since porters
have to cope with a large quantity of packages. Again, the situation varies
depending on the distribution they are uploading to. It also varies whether
@@ -1698,7 +1697,7 @@ the architecture is a candidate for inclusion into the next stable release; the
release managers decide and announce which architectures are candidates.
-If you are a porter doing an NMU for unstable, the above
+If you are a porter doing an NMU for unstable, the above
guidelines for porting should be followed, with two variations. Firstly, the
acceptable waiting period â the time between when the bug is submitted to
the BTS and when it is OK to do an NMU â is seven days for porters working
@@ -1706,13 +1705,13 @@ on the unstable distribution. This period can be shortened
if the problem is critical and imposes hardship on the porting effort, at the
discretion of the porter group. (Remember, none of this is Policy, just
mutually agreed upon guidelines.) For uploads to stable or
-testing , please coordinate with the appropriate release
+testing, please coordinate with the appropriate release
team first.
Secondly, porters doing source NMUs should make sure that the bug they submit
to the BTS should be of severity serious or greater. This
-ensures that a single source package can be used to compile every supported
+ensures that a single source package can be used to compile every supported
Debian architecture by release time. It is very important that we have one
version of the binary and source package for all architectures in order to
comply with many licenses.
@@ -1760,7 +1759,7 @@ with the porters.
Porter tools
Descriptions of several porting tools can be found in .
+linkend="tools-porting"/>.
@@ -1769,23 +1768,23 @@ linkend="tools-porting"/> .
The wanna-build system is used as a
distributed, client-server build distribution system. It is usually used in
-conjunction with build daemons running the buildd
- program. Build daemons are ``slave'' hosts
-which contact the central wanna-build
+conjunction with build daemons running the buildd
+program. Build daemons are ``slave'' hosts
+which contact the central wanna-build
system to receive a list of packages that need to be built.
wanna-build is not yet available as a
package; however, all Debian porting efforts are using it for automated
package building. The tool used to do the actual package builds, sbuild is available as a package, see its
-description in . Please note that the packaged
+role="package">sbuild is available as a package, see its
+description in . Please note that the packaged
version is not the same as the one used on build daemons, but it is close
-enough to reproduce problems.
+enough to reproduce problems.
-Most of the data produced by wanna-build
- which is generally useful to porters is available on the
+Most of the data produced by wanna-build
+which is generally useful to porters is available on the
web at . This data includes nightly
updated statistics, queueing information and logs for build attempts.
@@ -1845,22 +1844,21 @@ fail also, and indicate this to a human reader without actually trying.
In order to prevent autobuilders from needlessly trying to build your package,
-it must be included in packages-arch-specific, a list used
+it must be included in Packages-arch-specific, a list used
by the wanna-build script. The current version is available
-as ;
+as ;
please see the top of the file for whom to contact for changes.
Please note that it is insufficient to only add your package to
-Packages-arch-specific without making it fail to build on unsupported
+Packages-arch-specific without making it fail to build on unsupported
architectures: A porter or any other person trying to build your package might
accidently upload it without noticing it doesn't work. If in the past some
binary packages were uploaded on unsupported architectures, request their
removal by filing a bug against ftp.debian.org
+role="package">ftp.debian.org.
@@ -1929,7 +1927,7 @@ is given an opportunity to upload a fix on their own.
When doing an NMU, you must first make sure that your intention to NMU is
clear. Then, you must send a patch with the differences between the
current package and your proposed NMU to the BTS. The
-nmudiff script in the devscripts package
+nmudiff script in the devscripts package
might be helpful.
@@ -1938,7 +1936,7 @@ practices that the maintainer might be using. Taking them into account reduces
the burden of getting your changes integrated back in the normal package
workflow and thus increases the possibilities that that will happen. A good
place where to look for for possible package-specific practices is
-debian/README.source.
+debian/README.source.
Unless you have an excellent reason not to do so, you must then give some time
@@ -1996,10 +1994,10 @@ defend the wisdom of any NMU you perform on its own merits.
-NMUs and debian/changelog
+NMUs and debian/changelog
Just like any other (source) upload, NMUs must add an entry to
-debian/changelog, telling what has changed with this
+debian/changelog, telling what has changed with this
upload. The first line of this entry must explicitely mention that this upload is an NMU, e.g.:
@@ -2010,7 +2008,7 @@ upload. The first line of this entry must explicitely mention that this upload
The way to version NMUs differs for native and non-native packages.
-If the package is a native package (without a debian revision in the version number),
+If the package is a native package (without a Debian revision in the version number),
the version must be the version of the last maintainer upload, plus
+nmuX, where
X is a counter starting at 1.
@@ -2021,18 +2019,18 @@ version 1.5+nmu1.
If the package is a not a native package, you should add a minor version number
-to the debian revision part of the version number (the portion after the last
-hyphen). This extra number must start at 1. For example,
+to the Debian revision part of the version number (the portion after the last
+hyphen). This extra number must start at 1. For example,
if the current version is 1.5-2, then an NMU would get
version 1.5-2.1. If a new upstream version
-is packaged in the NMU, the debian revision is set to 0, for
+is packaged in the NMU, the Debian revision is set to 0, for
example 1.6-0.1.
In both cases, if the last upload was also an NMU, the counter should
be increased. For example, if the current version is
1.5+nmu3 (a native package which has already been
-NMUed), the NMU would get version 1.5+nmu4. .
+NMUed), the NMU would get version 1.5+nmu4.
A special versioning scheme is needed to avoid disrupting the maintainer's
@@ -2055,14 +2053,14 @@ should be used, where X and
When the release number is not yet known (often the case for
testing, at the beginning of release cycles), the lowest
release number higher than the last stable release number must be used. For
-example, while Etch (Debian 4.0) is stable, a security NMU to stable for a
+example, while Lenny (Debian 5.0) is stable, a security NMU to stable for a
package at version 1.5-3 would have version
-1.5-3+deb40u1, whereas a security NMU to Lenny would get
-version 1.5-3+deb50u1. After the release of Lenny, security
+1.5-3+deb50u1, whereas a security NMU to Squeeze would get
+version 1.5-3+deb60u1. After the release of Squeeze, security
uploads to the testing distribution will be versioned
-+deb51uZ, until it is known whether that release will be
-Debian 5.1 or Debian 6.0 (if that becomes the case, uploads will be versioned
-as +deb60uZ.
++deb61uZ, until it is known whether that release will be
+Debian 6.1 or Debian 7.0 (if that becomes the case, uploads will be versioned
+as +deb70uZ).
@@ -2139,7 +2137,7 @@ package is used.
BinNMUs are usually triggered on the buildds by wanna-build.
-An entry is added to debian/changelog,
+An entry is added to debian/changelog,
explaining why the upload was needed and increasing the version number as
described in .
This entry should not be included in the next upload.
@@ -2148,7 +2146,7 @@ This entry should not be included in the next upload.
Buildds upload packages for their architecture to the archive as binary-only
uploads. Strictly speaking, these are binNMUs. However, they are not normally
-called NMU, and they don't add an entry to debian/changelog.
+called NMU, and they don't add an entry to debian/changelog.
@@ -2166,8 +2164,8 @@ uploads are uploads of orphaned packages.
QA uploads are very much like normal maintainer uploads: they may fix anything,
even minor issues; the version numbering is normal, and there is no need to use
-a delayed upload. The difference is that you are not listed as the Maintainer
-or Uploader for the package. Also, the changelog entry of a QA upload has a
+a delayed upload. The difference is that you are not listed as the Maintainer
+or Uploader for the package. Also, the changelog entry of a QA upload has a
special first line:
@@ -2195,6 +2193,25 @@ the new version (see ).
+
+NMUs vs team uploads
+
+
+Sometimes you are fixing and/or updating a package because you are member of a
+packaging team (which uses a mailing list as Maintainer or Uploader, see ) but you don't want to add yourself to Uploaders
+because you do not plan to contribute regularly to this specific package. If it
+conforms with your team's policy, you can perform a normal upload without
+being listed directly as Maintainer or Uploader. In that case, you should
+start your changelog entry with the following line:
+
+
+
+ * Team upload.
+
+
+
+
@@ -2204,7 +2221,7 @@ Collaborative maintenance is a term describing the sharing of Debian package
maintenance duties by several people. This collaboration is almost always a
good idea, since it generally results in higher quality and faster bug fix
turnaround times. It is strongly recommended that packages with a priority of
-Standard or which are part of the base set have
+standard or which are part of the base set have
co-maintainers.
@@ -2224,8 +2241,8 @@ easy:
Setup the co-maintainer with access to the sources you build the package from.
Generally this implies you are using a network-capable version control system,
-such as CVS or Subversion. Alioth (see
- ) provides such tools, amongst others.
+such as CVS or Subversion. Alioth (see
+) provides such tools, amongst others.
@@ -2240,7 +2257,7 @@ Uploaders: John Buzz <jbuzz@debian.org>, Adam Rex <arex@debian.org>
-Using the PTS ( ), the co-maintainers
+Using the PTS (), the co-maintainers
should subscribe themselves to the appropriate source package.
@@ -2248,32 +2265,38 @@ should subscribe themselves to the appropriate source package.
Another form of collaborative maintenance is team maintenance, which is
recommended if you maintain several packages with the same group of developers.
-In that case, the Maintainer and Uploaders field of each package must be
+In that case, the Maintainer and Uploaders field of each package must be
managed with care. It is recommended to choose between one of the two
following schemes:
-Put the team member mainly responsible for the package in the Maintainer field.
-In the Uploaders, put the mailing list address, and the team members who care
+Put the team member mainly responsible for the package in the Maintainer field.
+In the Uploaders, put the mailing list address, and the team members who care
for the package.
-Put the mailing list address in the Maintainer field. In the Uploaders field,
+Put the mailing list address in the Maintainer field. In the Uploaders field,
put the team members who care for the package. In this case, you must make
sure the mailing list accept bug reports without any human interaction (like
moderation for non-subscribers).
+
In any case, it is a bad idea to automatically put all team members in the
-Uploaders field. It clutters the Developer's Package Overview listing (see
- ) with packages one doesn't really care for, and creates
-a false sense of good maintenance.
+Uploaders field. It clutters the Developer's Package Overview listing (see
+) with packages one doesn't really care for, and creates
+a false sense of good maintenance. For the same reason, team members do
+not need to add themselves to the Uploaders field just because they are
+uploading the package once, they can do a âTeam uploadâ (see ). Conversely, it is a bad idea to keep a
+package with only the mailing list address as a Maintainer and no
+Uploaders.
@@ -2289,8 +2312,8 @@ after they have undergone some degree of testing in
They must be in sync on all architectures and mustn't have dependencies that
make them uninstallable; they also have to have generally no known
-release-critical bugs at the time they're installed into testing
-. This way, testing should always be close to
+release-critical bugs at the time they're installed into testing.
+This way, testing should always be close to
being a release candidate. Please see below for details.
@@ -2316,21 +2339,21 @@ The package must have been available in unstable for 2, 5
or 10 days, depending on the urgency (high, medium or low). Please note that
the urgency is sticky, meaning that the highest urgency uploaded since the
previous testing transition is taken into account. Those
-delays may be doubled during a freeze, or testing
+delays may be doubled during a freeze, or testing
transitions may be switched off altogether;
It must not have new release-critical bugs (RC bugs affecting the version
-available in unstable, but not affecting the version in
+available in unstable, but not affecting the version in
testing);
It must be available on all architectures on which it has previously been built
-in unstable. may be of interest
+in unstable. dak ls may be of interest
to check that information;
@@ -2345,7 +2368,7 @@ It must not break any dependency of a package which is already available in
The packages on which it depends must either be available in
testing or they must be accepted into
testing at the same time (and they will be if they fulfill
-all the necessary criteria);
+all the necessary criteria).
@@ -2378,14 +2401,14 @@ url="http://release.debian.org/migration/"> â but be warned, this page
shows build dependencies which are not considered by britney.
-out-of-date
+Out-of-date
For the testing migration script, outdated means: There are
different versions in unstable for the release architectures
(except for the architectures in fuckedarches; fuckedarches is a list of
architectures that don't keep up (in update_out.py), but
-currently, it's empty). outdated has nothing whatsoever to do with the
+currently, it's empty). outdated has nothing whatsoever to do with the
architectures this package has in testing.
@@ -2415,10 +2438,10 @@ Consider this example:
-The package is out of date on alpha in unstable, and will
+The package is out of date on alpha in unstable, and will
not go to testing. Removing the package would not help at all, the
-package is still out of date on alpha, and will not
-propagate to testing.
+package is still out of date on alpha, and will not
+propagate to testing.
However, if ftp-master removes a package in unstable (here
@@ -2452,7 +2475,7 @@ on arm):
In this case, the package is up to date on all release architectures in
-unstable (and the extra hurd-i386
+unstable (and the extra hurd-i386
doesn't matter, as it's not a release architecture).
@@ -2472,8 +2495,8 @@ with the new version of b; then a may
be removed to allow b in.
-Of course, there is another reason to remove a package from testing
-: It's just too buggy (and having a single RC-bug is enough to be
+Of course, there is another reason to remove a package from testing:
+It's just too buggy (and having a single RC-bug is enough to be
in this state).
@@ -2484,7 +2507,7 @@ will automatically be removed.
-circular dependencies
+Circular dependencies
A situation which is not handled very well by britney is if package
a depends on the new version of package
@@ -2528,28 +2551,28 @@ happens to one of your packages.
-influence of package in testing
+Influence of package in testing
-Generally, there is nothing that the status of a package in testing
- means for transition of the next version from unstable
- to testing, with two exceptions:
+Generally, there is nothing that the status of a package in testing
+means for transition of the next version from unstable
+to testing, with two exceptions:
If the RC-bugginess of the package goes down, it may go in even if it is still
-RC-buggy. The second exception is if the version of the package in
-testing is out of sync on the different arches: Then any arch might
+RC-buggy. The second exception is if the version of the package in
+testing is out of sync on the different arches: Then any arch might
just upgrade to the version of the source package; however, this can happen
only if the package was previously forced through, the arch is in fuckedarches,
-or there was no binary package of that arch present in unstable
- at all during the testing migration.
+or there was no binary package of that arch present in unstable
+at all during the testing migration.
-In summary this means: The only influence that a package being in
-testing has on a new version of the same package is that the new
+In summary this means: The only influence that a package being in
+testing has on a new version of the same package is that the new
version might go in easier.
-details
+Details
If you are interested in details, this is how britney works:
@@ -2563,8 +2586,8 @@ part of britney.) (There is a similar thing for binary-only updates, but this
is not described here. If you're interested in that, please peruse the code.)
-Now, the more complex part happens: Britney tries to update testing
- with the valid candidates. For that, britney tries to add each
+Now, the more complex part happens: Britney tries to update testing
+with the valid candidates. For that, britney tries to add each
valid candidate to the testing distribution. If the number of uninstallable
packages in testing doesn't increase, the package is
accepted. From that point on, the accepted package is considered to be part
@@ -2577,7 +2600,7 @@ If you want to see more details, you can look it up on
merkel:/org/&ftp-debian-org;/testing/update_out/ (or
in merkel:~aba/testing/update_out to see a setup with
a smaller packages file). Via web, it's at
+url="http://&ftp-master-host;/testing/update_out_code/">.
The hints are available via .
Direct updates to testing
-The testing distribution is fed with packages from
+The testing distribution is fed with packages from
unstable according to the rules explained above. However,
-in some cases, it is necessary to upload packages built only for
-testing. For that, you may want to upload to
-testing-proposed-updates.
+in some cases, it is necessary to upload packages built only for
+testing. For that, you may want to upload to
+testing-proposed-updates.
Keep in mind that packages uploaded there are not automatically processed, they
@@ -2606,17 +2629,17 @@ give on &email-debian-devel-announce;.
You should not upload to testing-proposed-updates when you
can update your packages through unstable. If you can't
-(for example because you have a newer development version in unstable
-), you may use this facility, but it is recommended that you ask for
+(for example because you have a newer development version in unstable),
+you may use this facility, but it is recommended that you ask for
authorization from the release manager first. Even if a package is frozen,
updates through unstable are possible, if the upload via
unstable does not pull in any new dependencies.
-Version numbers are usually selected by adding the codename of the
-testing distribution and a running number, like
-1.2sarge1 for the first upload through
-testing-proposed-updates of package version
+Version numbers are usually selected by adding the codename of the
+testing distribution and a running number, like
+1.2squeeze1 for the first upload through
+testing-proposed-updates of package version
1.2.
@@ -2626,8 +2649,8 @@ Please make sure you didn't miss any of these items in your upload:
Make sure that your package really needs to go through
-testing-proposed-updates, and can't go through
-unstable;
+testing-proposed-updates, and can't go through
+unstable;
@@ -2680,14 +2703,14 @@ currently, these are critical, grave and
Such bugs are presumed to have an impact on the chances that the package will
be released with the stable release of Debian: in general,
-if a package has open release-critical bugs filed on it, it won't get into
-testing, and consequently won't be released in
-stable.
+if a package has open release-critical bugs filed on it, it won't get into
+testing, and consequently won't be released in
+stable.
The unstable bug count are all release-critical bugs which
-are marked to apply to package/version
- combinations that are available in unstable for a release
+are marked to apply to package/version
+combinations that are available in unstable for a release
architecture. The testing bug count is defined analogously.
@@ -2699,13 +2722,13 @@ break other packages?
The structure of the distribution archives is such that they can only contain
one version of a package; a package is defined by its name. So when the source
package acmefoo is installed into testing,
-along with its binary packages acme-foo-bin,
-acme-bar-bin, libacme-foo1 and
-libacme-foo-dev, the old version is removed.
+along with its binary packages acme-foo-bin,
+acme-bar-bin, libacme-foo1 and
+libacme-foo-dev, the old version is removed.
However, the old version may have provided a binary package with an old soname
-of a library, such as libacme-foo0. Removing the old
+of a library, such as libacme-foo0. Removing the old
acmefoo will remove libacme-foo0, which
will break any packages which depend on it.