X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=developers-reference.sgml;h=ab5b26f621930ec37d376aadffc170d095cc06e4;hb=e43a8d7567590ae3fc131fd9620dd88d8f2ee50e;hp=1a90106b878eb407169ca059c4b12efdf9047ef7;hpb=34de8a86363cbd42d2b922ad28349830a0255f1e;p=developers-reference.git diff --git a/developers-reference.sgml b/developers-reference.sgml index 1a90106..ab5b26f 100644 --- a/developers-reference.sgml +++ b/developers-reference.sgml @@ -6,7 +6,7 @@ %commondata; - +
The Package Tracking System (PTS) is basically a tool to track by mail
the activity of a source package. You just have to subscribe
@@ -1279,8 +1315,7 @@ various commands to
The
@@ -1447,18 +1482,12 @@ contains a new upstream version of the software looks like this:
There are tools to help you create entries and finalize the
-When a package is uploaded to the Debian archive, it must be accompanied by
-a .changes control file, which gives directions to the archive
-maintenance software for its handling. This is generated by
-
+
+
Before you upload your package, you should do basic testing on it. At
a minimum, you should try the following activities (you'll need to
have an older version of the same Debian package around):
@@ -1481,6 +1510,9 @@ to emit errors (they will start with E).
For more information on
+
There are two types of Debian source packages:
-
+
For the native packages, the source package includes a Debian source control
file (.dsc) and the source tarball (.tar.gz). A source
package of a non-native package includes a Debian source control file, the
original source tarball (.orig.tar.gz) and the Debian patches
(.diff.gz).
-
+
Whether a package is native or not is determined when it is built by
+
The first time a version is uploaded which corresponds to a particular
upstream version, the original source tar file should be uploaded and
included in the
+
By default,
+
If no original source is included in the upload, the original
source tar-file used by
+
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
+
There are several possible values for this field: `stable', `unstable',
`testing-proposed-updates' and `experimental'. Normally, packages are
uploaded into unstable.
-
+
Actually, there are two other possible distributions: `stable-security' and
`testing-security', but read for more information on
those.
-
+
It is technically possible to upload a package into several distributions
at the same time but it usually doesn't make sense to use that feature
because the dependencies of the package may vary with the distribution.
In particular, it never makes sense to combine the experimental
-distribution with anything else.
+distribution with anything else (see ).
-
+
Uploading to stable means that the package will be placed into the
+
Extra care should be taken when uploading to stable. Basically, a
package should only be uploaded to stable if one of the following happens:
+
It is discouraged to change anything else in the package that isn't
important, because even trivial fixes can cause bugs later on. Uploading
new upstream versions to fix security problems is deprecated; applying the
specific patch from the new upstream version to the old one ("back-porting"
the patch) is the right thing to do in most cases.
-
+
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
@@ -1578,7 +1610,7 @@ uploaded to stable that depends on 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 making
those other packages uninstallable, is strongly discouraged.
-
+
The Release Team (which can be reached at &email-debian-release;) will
regularly evaluate the uploads in stable-proposed-updates and decide if
your package can be included in stable. Please be clear (and
@@ -1586,35 +1618,37 @@ verbose, if necessary) in your changelog entries for uploads to
stable, because otherwise the package won't be considered for
inclusion.
-
+
The testing distribution is fed with packages from unstable according to the rules
explained in . However, the release manager may stop the testing
scripts when he wants to freeze the distribution. In that case, you may want to
upload to testing-proposed-updates to provide fixed packages during the freeze.
-
+
Keep in mind that packages uploaded there are not automatically processed, they
have to go through the hands of the release manager. So you'd better have a good
reason to upload there. In order to know what a good reason is in the
release manager's eyes, you should read the instructions that he regularly
gives 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 it but it is recommended to ask
the authorization of the release manager before.
-
To upload a package, you need a personal account on
+Please note that you should transfer
the changes file last. Otherwise, your upload may be rejected because the
archive maintenance software will parse the changes file and see that not
all files have been uploaded. If you don't want to bother with transferring
@@ -1642,10 +1676,12 @@ process of uploading packages into Debian.
After uploading your package, you can check how the archive
maintenance software will process it by running
Note that
As discussed above, export controlled software should not be uploaded
to ftp-master. Instead, upload the package to
@@ -1689,7 +1725,7 @@ advice. Again, it is strongly recommended that U.S. citizens and
residents consult a lawyer before doing uploads to non-US.
-
If you have a slow network connection to ftp-master, there are
alternatives. One is to upload files to
Another upload queue is available in Germany: just upload the files
via anonymous FTP to
Another upload queue is available which is based in the US, and is a
good backup when there are problems reaching ftp-master. You can
@@ -1769,16 +1805,19 @@ checking if any bugs you meant to close didn't get triggered.
The installation notification also includes information on what
section the package was inserted into. If there is a disparity, you
will receive a separate email notifying you of that. Read on below.
+
+Note also that if you upload via queues, the queue daemon software will
+also send you a notification by email.
-
+
The
+
The archive maintainers keep track of the canonical sections and
priorities for packages in the override file. If there is a
disparity between the override file and the package's fields
@@ -1787,14 +1826,14 @@ email noting the divergence when the package is installed into the
archive. You can either correct your
+
To alter the actual section that a package is put in, you need to
first make sure that the
+
For more information about override files, see
+Every developer has to be able to work with the Debian
-Often as a package maintainer, you find bugs in other packages or else
-have bugs reported to your packages which need to be reassigned. The
-
+Operations such as reassigning bugs to other packages, merging separate
+bug reports about the same issue, or reopening bugs when they are
+prematurely closed, are handled using the so-called control mail server.
+All of the commands available in this server are described in the
+
If you want to be a good maintainer, you should periodically check the
Make sure that any discussion you have about bugs are sent both to
the original submitter of the bug, and the bug itself (e.g.,
-
Once you've dealt with a bug report (e.g. fixed it), mark it as
done (close it) by sending an explanation message to
-
@@ -1866,7 +1915,7 @@ other packages. The bug tracking system's features interesting to developers
are described in the
@@ -1943,15 +1992,15 @@ read .
-If you fix a bug in your packages, it is your responsibility as the
-package maintainer to close the bug when it has been fixed. However,
+As bugs and problems are fixed your packages, it is your
+responsibility as the package maintainer to close the bug. However,
you should not close the bug until the package which fixes the bug has
been accepted into the Debian archive. Therefore, once you get
notification that your updated package has been installed into the
archive, you can and should close the bug in the BTS.
However, it's possible to avoid having to manually close bugs after the
-upload -- just list the fixed bugs in your
-If you happen to mistype a bug number or forget one in the changelog file,
-don't hesitate to undo any damage the error caused. To reopen wrongly closed
-bugs, send an reopen XXX command in the bug tracking
-system's control bot. To close any remaining bugs that were fixed by your
-upload, email the
-Bear in mind that it is not obligatory to close bugs using the changelog
-like described above -- if you simply want to close bugs that don't have
-anything to do with an upload of yours, do it simply by emailing an
-explanation to
+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
+For general information on how to write your changelog entries, see
+.
+
@@ -2138,9 +2192,9 @@ fix can break seemingly unrelated features in subtle ways.
Review and test your changes as much as possible. Check the
differences from the previous version repeatedly
(
When packaging the fix, keep the following points in mind:
+If you can't set up a proper chroot,
See the
Source NMU packages are built normally. Pick a distribution using the
-same rules as found in . Just as described in
-, a normal changes file, etc., will be built. In
-fact, all the prescriptions from apply.
+same rules as found in , follow the other
+prescriptions in .
Make sure you do not change the value of the maintainer in
the
A single source package will often build several binary packages,
-either to provide several flavors of the same software (examples are
-the
The second case can be easily managed in
The first case is a bit more difficult since it involves multiple
-recompiles of the same software but with different configure
-options. The
Maintainer scripts include the files
-The following practices supplement the
-The description of the package (as defined by the corresponding field
-in the
-For consistency and aesthetics, you should capitalize the first letter
-of the Synopsis. Don't put a full stop (period) at the end. The
-description itself should consist of full sentences.
-
-Since the first user impression is based on the description, be
-careful to avoid spelling and grammar mistakes. Ensure that you
-spell-check it.
-We recommend that you add the URL for the package's home page to the
-package description in
-If there is no home page for the software, this should naturally be
-left empty.
-
-Note that we expect this field will eventually be replaced by a proper
-
- It is not uncommon to have a large amount of architecture-independent
- data packaged with a program. For example, collection of icons,
- wallpapers or other graphic files, or audio files. If the size of
- this data is negligible compared to the size of the remainder of the
- package, you can keep it all in the same package.
-
-
- However, if the size of the data is considerable, consider splitting
- it out into a separate, architecture-independent package
- ("_all.deb"). By doing this, you avoid needless duplication of the
- same data into eleven or more .debs per each architecture. While
- this adds some extra overhead into the Packages files, it can save a
- lot of disk space on Debian mirrors, and it also reduces processing
- time of Lintian or Linda when run over the entire Debian archive.
-
+It is not uncommon to have a large amount of architecture-independent
+data packaged with a program. For example, audio files, a collection
+of icons, wallpaper patterns, or other graphic files. If the size of
+this data is negligible compared to the size of the rest of the
+package, it's probably best to keep it all in a single package.
+
+However, if the size of the data is considerable, consider splitting
+it out into a separate, architecture-independent package ("_all.deb").
+By doing this, you avoid needless duplication of the same data into
+eleven or more .debs, one per each architecture. While this
+adds some extra overhead into the
We encourage you to file bugs as you find them in Debian packages. In
fact, Debian developers are often the first line testers. Finding and
-reporting bugs in other developer's packages improves the quality of
+reporting bugs in other developers' packages improves the quality of
Debian.
+Read the
Try to submit the bug from a normal user account at which you are
-likely to receive mail. Do not submit bugs as root.
+likely to receive mail, so that people can reach you if they need
+further information about the bug. Do not submit bugs as root.
+
+You can use a tool like
+Make sure the bug is not already filed against a package.
+Each package has a bug list easily reachable at
+http://&bugs-host;/packagename
+Utilities like
+Try to direct your bugs to the proper location. When for example
+your bug is about a package that overwrites files from another package,
+check the bug lists for both of those packages in order to
+avoid filing duplicate bug reports.
-Make sure the bug is not already filed against a package. Try to do a
-good job reporting a bug and redirecting it to the proper location.
For extra credit, you can go through other packages, merging bugs
-which are reported more than once, or setting bug severities to
-`fixed' when they have already been fixed. Note that when you are
+which are reported more than once, or tagging bugs `fixed'
+when they have already been fixed. Note that when you are
neither the bug submitter nor the package maintainer, you should
not actually close the bug (unless you secure permission from the
maintainer).
@@ -3423,7 +3728,7 @@ From time to time you may want to check what has been going on
with the bug reports that you submitted. Take this opportunity to
close those that you can't reproduce anymore. To find
out all the bugs you submitted, you just have to visit
-http://&bugs-host;/from:<your-email-addr>.
+http://&bugs-host;/from:<your-email-addr>.
@@ -3442,7 +3747,7 @@ will help prevent a situation in which several maintainers start
filing the same bug report simultaneously.
Note that when sending lots of bugs on the same subject, you should
-send the bug report to
The Maintainer field of the
@@ -3750,7 +4055,7 @@ You should periodically get the newest
-Refer to for more information on how and when
+Refer to for more information on how and when
to use Lintian.
You can also see a summary of all problems reported by Lintian on your
@@ -3766,8 +4071,33 @@ packages at
@@ -4016,6 +4346,30 @@ directory of your package. For instance, when editing
-
+
+
-
@@ -1564,13 +1596,13 @@ package should only be uploaded to stable if one of the following happens:
-
@@ -2419,13 +2473,17 @@ Make sure that your Build-Depends and
Build-Depends-Indep settings in