X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=developers-reference.git;a=blobdiff_plain;f=developers-reference.sgml;h=0b0de53fac9614ff1b7301e56bd6819a400ff0e0;hp=45aaac6adfaac62e6849c20ed4a9796b660ce247;hb=d8f60cb36cd4fd22d02851d4465749f4233391da;hpb=eb4fa58d9eea5c7b19d057a7cafe5d6ba73ff258 diff --git a/developers-reference.sgml b/developers-reference.sgml index 45aaac6..0b0de53 100644 --- a/developers-reference.sgml +++ b/developers-reference.sgml @@ -5,7 +5,7 @@ %commondata; - + @@ -204,11 +204,6 @@ That document contains instructions on how to put your key on the public key servers. The New Maintainer Group will put your public key on the servers if it isn't already there.

-Due to export restrictions by the United States government some Debian -packages, including gnupg, are located on ftp sites -outside of the United States. You can find the current locations of -those packages at . -

Some countries restrict the use of cryptographic software by their citizens. This need not impede one's activities as a Debian package maintainer however, as it may be perfectly legal to use cryptographic @@ -428,7 +423,10 @@ discussions amongst Debian developers. It is meant to be used for posts which for whatever reason should not be published publically. As such, it is a low volume list, and users are urged not to use &email-debian-private; unless it is really necessary. Moreover, do -not forward email from that list to anyone. +not forward email from that list to anyone. Archives of this +list are not available on the web for obvious reasons, but you can see +them using your shell account master.debian.org and looking +in the ~debian/archive/debian-private directory.

&email-debian-email; is a special mailing list used as a grab-bag for Debian related correspondence such as contacting upstream authors @@ -479,7 +477,7 @@ full, suspicious activity, or whatever, send an email to

The ftp-master server, ftp-master.debian.org (or auric.debian.org), holds the canonical copy of the Debian -archive (excluding the non-U.S. packages). Generally, package uploads +archive (excluding the non-US packages). Generally, package uploads go to this server; see .

Problems with the Debian FTP archive generally need to be reported as @@ -872,7 +870,7 @@ symbolic links for stable, testing, and Package uploads - Announcing new packages + New packages

If you want to create a new package for the Debian distribution, you should first check the + Adding an entry to debian/changelog +

+Changes that you make to the package need to be recorded in the +debian/changelog. These changes should provide a concise +description of what was changed, why (if it's in doubt), and note if +any bugs were closed. They also record when the package was +completed. This file will be installed in +/usr/share/doc/package/changelog.Debian.gz, or +/usr/share/doc/package/changelog.gz for native +packages. +

+The debian/changelog file conform 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 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 . +

+It is conventional that the changelog entry notating of a package that +contains a new upstream version of the software looks like this: + + * new upstream version + +

+There are tools to help you create entries and finalize the +changelog for release — see +and . + + Checking the package prior to upload

@@ -1117,21 +1148,21 @@ directory on ftp-master and then move them to &us-upload-dir;.

Note: Do not upload to ftp-master packages -containing software that is export-controlled by the United States -government, 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 ). If you are not -sure whether U.S. export controls apply to your package, post a +containing software that is patent-restricted by the United States +government, nor any cryptographic packages which belong to +contrib or non-free. If you can't upload it to +ftp-master, then neither can you upload it to the overseas +upload queues on chiark or erlangen. Uploads of +such software should go to non-us (see ). If you are not sure whether U.S. patent +controls or cryptographic controls apply to your package, post a message to &email-debian-devel; and ask.

You may also find the Debian packages dupload or dput useful when uploading packages. These handy program are distributed with defaults for uploading via ftp to ftp-master, -chiark, and erlangen. It can also be configured to +chiark, and erlangen. They can also be configured to use ssh or rsync. See , and for more information. @@ -1143,25 +1174,28 @@ file: dinstall -n foo.changes Uploading to non-US (pandora)

As discussed above, export controlled software should not be uploaded -to ftp-master. Instead, use scp or rsync -to copy the package to non-us.debian.org, placing -the files in &non-us-upload-dir;. By default, you can -use the same account/password that works on ftp-master. -If you use anonymous FTP to upload, place the files into -/pub/UploadQueue/. -

-The program dupload comes with support for uploading to -non-us; please refer to the documentation that comes with -the program for details. +to ftp-master. Instead, upload the package to +non-us.debian.org, placing the files in +&non-us-upload-dir; (both and can be used also, with the right invokation). By default, +you can use the same account/password that works on +ftp-master. If you use anonymous FTP to upload, place the +files into /pub/UploadQueue/.

You can check your upload the same way it's done on ftp-master, with: dinstall -n foo.changes

Note that U.S. residents or citizens are subject to restrictions on -export of cryptographic software. As of this writing, U.S. citizens are -allowed to export some cryptographic software, subject to notification -rules by the U.S. Department of Commerce. +export of cryptographic software. As of this writing, U.S. citizens +are allowed to export some cryptographic software, subject to +notification rules by the U.S. Department of Commerce. However, this +restriction has been waived for software which is already available +outside the U.S. Therefore, any cryptographic software which belongs +in the main section of the Debian archive and does not depend +on any package outside of main (e.g., does not depend on +anything in non-US/main) can be uploaded to ftp-master +or its queues, described above.

Debian policy does not prevent upload to non-US by U.S. residents or citizens, but care should be taken in doing so. It is recommended that @@ -1169,11 +1203,12 @@ developers take all necessary steps to ensure that they are not breaking current US law by doing an upload to non-US, including consulting a lawyer.

-For packages in non-US main or contrib, developers should at least -follow the . Maintainers of non-US/non-free packages should -further consult these of non-free software. +For packages in non-US/main, non-US/contrib, +developers should at least follow the . Maintainers of +non-US/non-free packages should further consult the of non-free software.

This section is for information only and does not constitute legal advice. Again, it is strongly recommended that U.S. citizens and @@ -2100,8 +2135,12 @@ Application Managers"> at the Debian web site. Overview of Debian Maintainer Tools

This section contains a rough overview of the tools available to -maintainers. These tools are meant to help convenience developers and -free their time for critical tasks. +maintainers. The following is by no means complete or definitive, but +just a guide to some of the more popular tools. +

+Debian maintainer tools are meant to help convenience developers and +free their time for critical tasks. As Larry Wall says, there's more +than one way to do it.

Some people prefer to use high-level package maintenance tools and some do not. Debian is officially agnostic on this issue; any tool @@ -2112,7 +2151,8 @@ endorse any particular tool to the exclusion of a competing tool.

Most of the descriptions of these packages come from the actual package descriptions themselves. Further information can be found in -the package documentation itself. +the package documentation itself. You can also see more info with the +command apt-cache show package_name. @@ -2140,14 +2180,18 @@ id="upload-checking"> and .

debconf provides a consistent interface to configuring packages interactively. It is user interface -intedependant, allowing end-users to configure packages with a +independant, allowing end-users to configure packages with a text-only interface, an HTML interface, or a dialog interface. New interfaces can be added modularly.

+You can find documentation for this package in the +debconf-doc package. +

Many feel that this system should be used for all packages requiring interactive configuration. debconf is not currently required by Debian Policy, however, that may change in the future. +

@@ -2159,10 +2203,14 @@ building binary Debian packages. Programs are included to install various files into your package, compress files, fix file permissions, integrate your package with the Debian menu system.

-Unlike debmake, debhelper is -broken into several small, granular commands which act in a consistent -manner. As such, it allows a greater granularity of control than -debmake. +Unlike some approaches, debhelper is broken into +several small, granular commands which act in a consistent manner. As +such, it allows a greater granularity of control than some of the +other "debian/rules tools". +

+There are a number of little debhelper add-on +packages, too transient to document. You can see the list of most of +them by doing apt-cache search ^dh-. @@ -2181,16 +2229,18 @@ 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. +yada is another packaging helper tool. It uses a +debian/packages file to auto-generate +debian/rules and other necessary files in the +debian/ subdirectory.

-Note that yada is still quite new and possibly not -yet as robust as other systems. +Note that yada is called "essentially unmaintained" +by it's own maintainer, Charles Briscoe-Smith. As such, it can be +considered deprecated. @@ -2227,14 +2277,39 @@ to send mail about the upload of a package. You can configure it for new upload locations or methods. + + dput +

+The dput package and script does much the same +thing as dupload, but in a different way. It has +some features over dupload, such as the ability to +check the GnuPG signature and checksums before uploading, and the +possibility of running dinstall in dry-run mode after the +upload. + + fakeroot

fakeroot simulates root privileges. This enables you to build packages without being root (packages usually want to install files with root ownership). If you have -fakeroot installed, you can say, i.e., -dpkg-buildpackage -rfakeroot as a user. +fakeroot installed, you can build packages as a +user: dpkg-buildpackage -rfakeroot. + + + + debootstrap +

+The debootstrap package and script allows you to +"bootstrap" a Debian base system into any part of your filesystem. +By "base system", we mean the bare minimum of packages required to +operate and install the rest of the system. +

+Having a system like this can be useful in many ways. For instance, +you can chroot into it if you want to test your build +depends. Or, you can test how your package behaves when installed +into a bare base system. @@ -2242,10 +2317,21 @@ install files with root ownership). If you have

devscripts is a package containing a few wrappers 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 debuild, which is a wrapper around -dpkg-buildpackage. +packages. Example scripts include debchange and +dch, which manipulate your debian/changelog +file from the command-line, and debuild, which is a +wrapper around dpkg-buildpackage. + + + + + dpkg-dev-el +

+dpkg-dev-el is an Emacs lisp package which provides +assistance when editing some of the files in the debian +directory of your package. For instance, when editing +debian/changelog, there are handy functions for +finalizing a version and listing the package's current bugs. @@ -2253,8 +2339,17 @@ command-line, and debuild, which is a wrapper around

debget is a package containing a convenient script which can be helpful in downloading files from the Debian archive. -You can use it to download source packages, for instance. +You can use it to download source packages, for instance (although +apt-get source package does pretty much the same +thing). + +