X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=developers-reference.sgml;h=987c7d3824ed9403d83b3eb7f80f078409c19e21;hb=8f9b616f9f3c3ded74506aa480dcd14ece70be38;hp=f9c21e0db714bedbcdd5284cc9ddd61b04416f06;hpb=60021a3200167fc30b265fcee04aab2595c4a673;p=developers-reference.git diff --git a/developers-reference.sgml b/developers-reference.sgml index f9c21e0..987c7d3 100644 --- a/developers-reference.sgml +++ b/developers-reference.sgml @@ -2,8 +2,16 @@ %versiondata; - - + + %commondata; + + + + + ]> (DFSG) and with all other policy requirements as -described in the . The DFSG is our definition of ``free -software.'' Check out the Debian Policy Manual for details. +Every package in the main section must fully comply with the (DFSG) and +with all other policy requirements as described in the . The DFSG is +our definition of ``free software.'' Check out the Debian Policy +Manual for details.

The packages which do not apply to the DFSG are placed in the non-free section. These packages are not considered as part @@ -613,9 +521,9 @@ Packages in the contrib section have to comply with the DFSG, but may fail other requirements. For instance, they may depend on non-free packages.

-The contains a more exact definition of the three -sections. The above discussion is just an introduction. +The +contains a more exact definition of the three sections. The above +discussion is just an introduction.

The separation of the three sections at the top-level of the archive is important for all people who want to distribute Debian, either via @@ -641,17 +549,21 @@ The Linux 2.0 kernel supports Intel x86, DEC Alpha, SPARC, Motorola 680x0 (like Atari, Amiga and Macintoshes), MIPS, and PowerPC. The Linux 2.2 kernel supports even more architectures, including ARM and UltraSPARC. Since Linux supports these platforms, Debian decided that -it should, too. Therefore, Debian has ports underway. In fact, we +it should, too. Therefore, Debian has ports underway; in fact, we also have ports underway to non-Linux kernel. Aside from i386 (our name for Intel x86), there is m68k, alpha, powerpc, sparc, hurd-i386, and arm, as of this writing. -

Debian GNU/Linux 1.3 is only available as i386. Debian 2.0 shipped for i386 and m68k architectures. Debian 2.1 ships for the i386, m68k, alpha, and -sparc architectures. +sparc architectures. Debian 2.2 adds support for the +powerpc architecture. +

+Information for developers or uses about the specific ports are +available at the . Subsections @@ -684,8 +596,8 @@ the software). In this case, the .diff.gz contains the changes made by the Debian maintainer.

The .dsc lists all the files in the source package together -with checksums (md5sums) and some additional info about the package -(maintainer, version, etc.). +with checksums (md5sums) and some additional info about +the package (maintainer, version, etc.). Distribution directories @@ -754,8 +666,8 @@ Note that development under unstable is continued during the created when the older unstable is moved to frozen. Another wrinkle is that when the frozen distribution is offically released, the old stable distribution is completely removed -from the Debian archives (although you can still find it from servers -which serve up older, obsolete distributions). +from the Debian archives (although they do live on at +archive-host;).

In summary, there is always a stable and an unstable distribution available, and the frozen distribution shows up @@ -840,16 +752,15 @@ point to the appropriate release directories. Announcing new packages

If you want to create a new package for the Debian distribution, you -should first check the list. Checking -the WNPP ensures that no one is already working on packaging that -software, and that effort is not duplicated. Assuming no one else is -already working on your prospective package, you must then send a -short email to debian-devel@lists.debian.org describing -your plan to create a new package. You should set the subject of the -email to ``intent to package foobar'', substituting the -name of the new package for foobar. +should first check the list. Checking the WNPP ensures that no +one is already working on packaging that software, and that effort is +not duplicated. Assuming no one else is already working on your +prospective package, you must then send a short email to +&email-debian-devel; describing your plan to create a new package. +You should set the subject of the email to ``intent to package +foo'', substituting the name of the new package for +foo.

There are a number of reasons why we ask maintainers to follow these steps: @@ -861,9 +772,9 @@ on it already. It lets other people thinking about working on the package know that there already is a volunteer, and efforts may be shared. The ``intent -to package'' message to debian-devel@lists.debian.org -will be picked up the the WNPP maintainer, and your intention will be -published in subsequent versions of the WNPP document. +to package'' message to &email-debian-devel@; will be picked up the +the WNPP maintainer, and your intention will be published in +subsequent versions of the WNPP document. It lets the rest of the maintainers know more about the package than the one line description and the changelog entry ``Initial version'' @@ -889,27 +800,14 @@ archive maintainers for its handling. This is usually generated by

The changes file is a control file with the following fields:

- - Format - Date - Source - Binary - Architecture - Version - Distribution - Urgency - Maintainer - Description - Changes - Files - +&control-file-fields;

All of these fields are mandatory for a Debian upload. See the list -of control fields in the for the contents of these fields. -Only the Distribution field is discussed here, since it -relates to the archive maintenance policies. +of control fields in the for the contents of these fields. Only the +Distribution field is discussed here, since it relates to the +archive maintenance policies. + Picking a distribution

@@ -940,9 +838,9 @@ files, and it need not then be uploaded. By default dpkg-genchanges and dpkg-buildpackage will include the original source tar file if and only if the Debian revision part of the source version -number is 0 or 1, indicating a new upstream version. -This behaviour may be modified by using -sa to always include -it or -sd to always leave it out. +number is 0 or 1, indicating a new upstream version. This behaviour +may be modified by using -sa to always include it or +-sd to always leave it out.

If no original source is included in the upload then the original source tar-file used by dpkg-source when constructing the @@ -1029,22 +927,22 @@ Remove the package, then reinstall it. To upload a package, you need a personal account on master.debian.org. All maintainers should already have this account, see . You can use either -ssh or ftp to transfer the files. In either +scp or ftp to transfer the files. In either case, the files need to be placed into -/home/Debian/ftp/private/project/Incoming. (You -cannot upload to Incoming on master using anonymous FTP -- you must -use your user-name and password.) +&master-upload-dir. (You cannot upload to Incoming +on master using anonymous FTP -- you must use your user-name and +password.)

Note: Do not upload packages containing software that is export-controlled by the United States government to master, -or to the overseas upload queues on chiark or +nor to the overseas upload queues on chiark or erlangen. This prohibition covers almost all cryptographic software, and even sometimes software that contains ``hooks'' to cryptographic software, such as electronic mail readers that support PGP encryption and authentication. Uploads of such software should go -to non-us (see below). If you are not sure whether -U.S. export controls apply to your package, post a message to -debian-devel@lists.debian.org and ask. +to non-us (see ). If you are not +sure whether U.S. export controls apply to your package, post a +message to &email-debian-devel; and ask.

You may also find the Debian package dupload useful when uploading packages. This handy program is distributed with @@ -1054,29 +952,40 @@ use ssh. See and for more information. + Uploading to pandora (non-us) +

+As discussed above, export controlled software should not be uploaded +to master. Instead, use non-anonymous FTP or +scp to copy the package to +pandora.debian.org, placing the files in +&non-us-upload-dir. By default, you can use your +same account which works on master. +

+The program dupload comes with support for uploading to +pandora; please refer to the documentation that comes with +the program for details. + Uploads via chiark

If you have a slow network connection to master, there are alternatives. One is to upload files to Incoming via a upload queue in Europe on chiark. For details connect to -ftp.chiark.greenend.org.uk using anonymous FTP and -read -/pub/debian/private/project/README.how-to-upload. +.

Note: Do not upload packages containing software that is export-controlled by the United States government to the queue on chiark. Since this upload queue goes to master, the prescription found in applies here as well.

-The program dupload supports uploads to chiark; please refer -to the documentation that comes with the program for details. +The program dupload comes with support for uploading to +chiark; please refer to the documentation that comes with the +program for details. Uploads via erlangen

Another upload queue is available in Germany: just upload the files -via anonymous FTP to . +via anonymous FTP to .

The upload must be a complete Debian upload, as you would put it into master's Incoming, i.e., a .changes files @@ -1099,18 +1008,21 @@ export-controlled by the United States government to the queue on erlangen. Since this upload queue goes to master, the prescription found in applies here as well.

-The program dupload supports uploads to +The program dupload comes with support for uploading to erlangen; please refer to the documentation that comes with the program for details. - Uploading to the non-us server + Other Upload Queues +

+Another upload queue is available which is based in the US, and is a +good backup when there are problems reaching master. You can +upload files, just as in erlangen, to .

-To upload a package to the non-us server you just have to -transfer the files via anonymous ftp to . Note, that -the .changes file must have a valid PGP signature from one of -the keys of the developers key-ring. +An upload queue is available in Japan: just upload the files via +anonymous FTP to . + Announcing package uploads @@ -1123,12 +1035,10 @@ PGP-signed .changes file. Some additional explanatory text may be added before the start of the .changes file.

If a package is released with the Distribution: set to -`stable', the announcement is sent to -debian-changes@lists.debian.org. If a package is -released with Distribution: set to `unstable', +`stable', the announcement is sent to &email-debian-changes;. If a +package is released with Distribution: set to `unstable', `experimental', or `frozen' (when present), the announcement should be -posted to debian-devel-changes@lists.debian.org -instead. +posted to &email-debian-devel-changes; instead.

On occasion, it is necessary to upload a package to both the stable and unstable distributions; this is done by @@ -1171,13 +1081,12 @@ The archive maintainers keep track of the canonical sections and priorities for packages in the override file. Sometimes the override file needs correcting. Simply changing the package's control file is not going to work. Instead, -you should email override-change@debian.org or submit a -bug against ftp.debian.org. +you should email &email-override; or submit a bug against +ftp.debian.org.

For more information about override files, see , -/usr/doc/debian/bug-log-mailserver.txt, and -/usr/doc/debian/bug-maint-info.txt. +name="dpkg-scanpackages" section="8">, &file-bts-mailing;, and +&file-bts-info;. @@ -1519,6 +1428,16 @@ In a binary NMU, no real changes are being made to the source. You do not need to touch any of the files in the source package. This includes debian/changelog.

+Sometimes you need to recompile a packages against other packages +which have been updated, such as libraries. You do have to bump the +version number in this case, so that the upgrade system can function +properly. Even so, these are considered binary-only NMUs -- there is +no need in this case for all architectures to recompile. You should +set the version number as in the case of NMU versioning, but add a +``.0.'' before the the NMU version. For instance, a recompile-only +NMU of the source package ``foo_1.3-1'' would be numbered +``foo_1.3-1.0.1''. +

The way to invoke dpkg-buildpackage is as dpkg-buildpackage -B -mporter-email. Of course, set porter-email to your email address. This will do a @@ -1601,7 +1520,14 @@ cannot yet be autobuilt) and work on it. most porting efforts are either using it currently or planning to use it in the near future. It collects a number of as yet unpackaged components which are currently very useful and in use continually, -such as sbuild and wanna-build. +such as andrea, sbuild and +wanna-build. +

+Some of the data produced by buildd which is +generally useful to porters is available on the web at . This data includes nightly updated information +from andrea (source dependencies) and +quinn-diff (packages needing recompilation).

We are very excited about this system, since it potentially has so many uses. Independent development groups can use the system for @@ -1634,25 +1560,32 @@ cases. Moving packages

-Sometimes a package will change either its section or its subsection. -For instance, a package from the `non-free' section might be GPL'd in -a later version; in this case you should consider moving it to `main' -or `contrib' (see the for guidelines). -

-In this case, it is sufficient to edit the package control information -normally and re-upload the package (see the See the for guidelines on what section a package +belongs in. + +

+If you need to change the section for one of your packages, change the +package control information to place the package in the desired +section, and re-upload the package (see the for details). Carefully examine the installation log sent to you when the package is installed into the archive. If for some reason the old location of the package remains, file a bug against ftp.debian.org asking that the old location be removed. Give details on what you did, since it might be a dinstall bug. +

+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 reupload that. Also, you'll need to update +the override file, as described in . - Removing packages + Removing packages

If for some reason you want to completely remove a package (say, if it is an old compatibility library which is not longer required), you @@ -1661,26 +1594,25 @@ package be removed. Make sure you indicate which distribution the package should be removed from.

If in doubt concerning whether a package is disposable, email -debian-devel@lists.debian.org asking for opinions. -Also of interest is the apt-cache program from the -apt package. When invoked as apt-cache showpkg -/var/cache/apt/pkgcache.bin package, the program will -show details for package, including reverse depends. +&email-debian-devel; asking for opinions. Also of interest is 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. Removing packages from Incoming

If you decide to remove a package from Incoming, it is nice but not required to send a notification of that to the appropriate -announce list (either debian-changes@lists.debian.org -or debian-devel-changes@lists.debian.org). +announce list (either &email-debian-changes; or +&email-debian-devel-changes;). Replacing or renaming packages

Sometimes you made a mistake naming the package and you need to rename it. In this case, you need to follow a two-step process. First, set your debian/control file to replace and conflict with the -obsolete name of the package (see the for details). Once you've uploaded that package, and the package has moved into the archive, file a bug against ftp.debian.org asking to remove the package with the @@ -1692,25 +1624,21 @@ obsolete name.

If you can no longer maintain a package, then you should set the package maintainer to Debian QA Group -<debian-qa@lists.debian.org> and email -wnpp@debian.org indicating that the package is now -orphaned. If the package is especially crucial to Debian, you should -instead email debian-devel@lists.debian.org asking for -a new maintainer. +<debian-qa@lists.debian.org> and email &email-wnpp; +indicating that the package is now orphaned. If the package is +especially crucial to Debian, you should instead email +&email-debian-devel; asking for a new maintainer. Adopting a package

Periodically, a listing of packages in need of new maintainers will be -sent to debian-devel@lists.debian.org list. This list -is also available at in the Work-Needing and Prospective Packages -document (WNPP), -and at . -If you wish to take over maintenance of any of the packages listed in -the WNPP, or if you can no longer maintain a packages you have, or you -simply want to know if any one is working on a new package, send a -message to wnpp@debian.org. +sent to &email-debian-devel list. This list is also available at in +the Work-Needing and Prospective Packages document (WNPP), . If you wish to take over maintenance of any of the +packages listed in the WNPP, or if you can no longer maintain a +packages you have, or you simply want to know if any one is working on +a new package, send a message to &email-wnpp;.

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 @@ -1718,16 +1646,14 @@ current maintainer and ask them if you may take over the package. However, without their assent, you may not take over the package. Even if they ignore you, that is still not grounds to take over a package. If you really feel that a maintainer has gone AWOL (absent -without leave), post a query to -debian-private@lists.debian.org. +without leave), post a query to &email-debian-private;.

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 couple of weeks. If you do not expect to upload a new version for a while, send an email -to override-change@debian.org so that bug reports will -go to you right away. +to &email-override; so that bug reports will go to you right away. @@ -1737,9 +1663,8 @@ go to you right away. Monitoring bugs

If you want to be a good maintainer, you should periodically check the - for your packages. The BTS contains all the open bugs against -your packages. + for your +packages. The BTS contains all the open bugs against your packages.

Maintainers interact with the BTS via email addresses at bugs.debian.org. Documentation on available commands can be @@ -1761,8 +1686,8 @@ maintainer address.

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 -BTS can tell you how to do this. + can tell you how +to do this.

We encourage you to file bugs when there are problems. Try to submit the bug from a normal user account at which you are likely to receive @@ -1780,13 +1705,12 @@ maintainer). Responding to Bugs

Make sure that any discussions you have about bugs are sent both to -the original submitter of the bug, and the bug itself (i.e., +the original submitter of the bug, and the bug itself (e.g., 123@bugs.debian.org).

You should never close bugs via the bug server `close' -command sent to control@bugs.debian.org. If you do so, -the original submitter will not receive any feedback on why the bug -was closed. +command sent to &email-bts-control;. If you do so, the original +submitter will not receive any feedback on why the bug was closed. When bugs are closed by new uploads

@@ -1807,12 +1731,11 @@ bug number.

You should periodically get the new lintian from `unstable' and check over all your packages. Alternatively you can -check for your maintainer email address at the . -That report, which is updated automatically, contains -lintian reports against the latest version of the -distribution (usually from 'unstable') using the latest -lintian. +check for your maintainer email address at the . That report, which is updated +automatically, contains lintian reports against the +latest version of the distribution (usually from 'unstable') using the +latest lintian. Reporting lots of bugs at once @@ -1825,12 +1748,11 @@ a new check to lintian so that an error or warning is emitted.

If you report more than 10 bugs on the same topic at once, it is -recommended that you send a message to -debian-devel@lists.debian.org describing your intention -before submitting the report. This will allow other developers to -verify that the bug is a real problem. In addition, it will help -prevent a situation in which several maintainers start filing the same -bug report simultaneously. +recommended that you send a message to &email-debian-devel; describing +your intention before submitting the report. This will allow other +developers to verify that the bug is a real problem. In addition, it +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 maintonly@bugs.debian.org so @@ -1907,6 +1829,27 @@ The consensus is that debmake is now deprecated in favor of debhelper. However, it's not a bug to use debmake. + + yada +

+yada is a new packaging helper tool with a slightly +different philosophy. It uses a debian/packages file to +auto-generate other necessary files in the debian/ +subdirectory. +

+Note that yada is still quite new and possibly not +yet as robust as other systems. + + + + equivs +

+equivs is another package for making packages. It +is often suggested for local use if you need to make a package simply +to fulfill dependancies. It is also sometimes used when making +``meta-packages'', which are packages whose only purpose is to depend +on other packages. + cvs-buildpackage @@ -1949,7 +1892,7 @@ install files with root ownership). If you have and tools which you may find helpful for maintaining your Debian packages. Example scripts include debchange, which will manipulate your debian/changelog file from the -command-line, and build, which is a wrapper around +command-line, and debuild, which is a wrapper around dpkg-buildpackage. @@ -1961,6 +1904,7 @@ which can be helpful in downloading files from the Debian archive. You can use it to download source packages, for instance. +