chiark / gitweb /
Small corrections.
[developers-reference.git] / developers-reference.sgml
index 45aaac6adfaac62e6849c20ed4a9796b660ce247..0b0de53fac9614ff1b7301e56bd6819a400ff0e0 100644 (file)
@@ -5,7 +5,7 @@
   <!-- common, language independant entities -->
   <!entity % commondata  SYSTEM "common.ent" > %commondata;
   <!-- CVS revision of this document -->
   <!-- common, language independant entities -->
   <!entity % commondata  SYSTEM "common.ent" > %commondata;
   <!-- CVS revision of this document -->
-  <!entity cvs-rev "$Revision: 1.82 $">
+  <!entity cvs-rev "$Revision: 1.88 $">
 
   <!-- if you are translating this document, please notate the RCS
        revision of the developers reference here -->
 
   <!-- if you are translating this document, please notate the RCS
        revision of the developers reference here -->
@@ -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.
        <p>
 public key servers.  The New Maintainer Group will put your public key
 on the servers if it isn't already there.
        <p>
-Due to export restrictions by the United States government some Debian
-packages, including <package>gnupg</package>, are located on ftp sites
-outside of the United States. You can find the current locations of
-those packages at <url id="&url-readme-non-us;">.
-       <p>
 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
 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
 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
-<em>not</em> forward email from that list to anyone.
+<em>not</em> 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 <tt>master.debian.org</tt> and looking
+in the <file>~debian/archive/debian-private</file> directory.
        <p>
 &email-debian-email; is a special mailing list used as a grab-bag 
 for Debian related correspondence such as contacting upstream authors
        <p>
 &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
        <p>
 The ftp-master server, <tt>ftp-master.debian.org</tt> (or
 <tt>auric.debian.org</tt>), holds the canonical copy of the Debian
        <p>
 The ftp-master server, <tt>ftp-master.debian.org</tt> (or
 <tt>auric.debian.org</tt>), 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 <ref id="upload">.
        <p>
 Problems with the Debian FTP archive generally need to be reported as
 go to this server; see <ref id="upload">.
        <p>
 Problems with the Debian FTP archive generally need to be reported as
@@ -872,7 +870,7 @@ symbolic links for <em>stable</em>, <em>testing</em>, and
 
     <chapt id="upload">Package uploads
 
 
     <chapt id="upload">Package uploads
 
-      <sect>Announcing new packages
+      <sect>New packages
        <p>
 If you want to create a new package for the Debian distribution, you
 should first check the <url id="&url-wnpp;" name="Work-Needing and
        <p>
 If you want to create a new package for the Debian distribution, you
 should first check the <url id="&url-wnpp;" name="Work-Needing and
@@ -924,6 +922,39 @@ The announcements give maintainers and other interested parties a
 better feel of what is going on, and what is new, in the project.
          </list>
 
 better feel of what is going on, and what is new, in the project.
          </list>
 
+      <sect id="changelog-entries">
+        <heading>Adding an entry to <file>debian/changelog</file></heading>
+         <p>
+Changes that you make to the package need to be recorded in the
+<file>debian/changelog</file>.  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
+<file>/usr/share/doc/<var>package</var>/changelog.Debian.gz</file>, or
+<file>/usr/share/doc/<var>package</var>/changelog.gz</file> for native
+packages.
+         <p>
+The <file>debian/changelog</file> file conform to a certain structure,
+with a number of different fields.  One field of note, the
+<em>distribution</em>, is described in <ref id="upload-dist">.  More
+information about the structure of this file can be found in
+the Debian Policy section titled "<file>debian/changelog</file>".
+         <p>
+Changelog entries can be used to automatically close Debian bugs when
+the package is installed into the archive.  See <ref
+id="upload-bugfix">.
+         <p>
+It is conventional that the changelog entry notating of a package that
+contains a new upstream version of the software looks like this:
+<example>
+  * new upstream version
+</example>
+         <p>
+There are tools to help you create entries and finalize the
+<file>changelog</file> for release &mdash; see <ref id="devscripts">
+and <ref id="dpkg-dev-el">.
+
+
 
       <sect id="upload-checking">Checking the package prior to upload
          <p>
 
       <sect id="upload-checking">Checking the package prior to upload
          <p>
@@ -1117,21 +1148,21 @@ directory on <tt>ftp-master</tt> and then move them to
 <tt>&us-upload-dir;</tt>.
           <p>
 <em>Note:</em> Do not upload to <tt>ftp-master</tt> packages
 <tt>&us-upload-dir;</tt>.
           <p>
 <em>Note:</em> Do not upload to <tt>ftp-master</tt> packages
-containing software that is export-controlled by the United States
-government, nor to the overseas upload queues on <tt>chiark</tt> or
-<tt>erlangen</tt>.  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 <tt>non-us</tt> (see <ref id="upload-non-us">).  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
+<em>contrib</em> or <em>non-free</em>.  If you can't upload it to
+<tt>ftp-master</tt>, then neither can you upload it to the overseas
+upload queues on <tt>chiark</tt> or <tt>erlangen</tt>.  Uploads of
+such software should go to <tt>non-us</tt> (see <ref
+id="upload-non-us">).  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.
          <p>
 You may also find the Debian packages <package>dupload</package> or
 <package>dput</package> useful
 when uploading packages.  These handy program are distributed with
 defaults for uploading via <prgn>ftp</prgn> to <tt>ftp-master</tt>,
 message to &email-debian-devel; and ask.
          <p>
 You may also find the Debian packages <package>dupload</package> or
 <package>dput</package> useful
 when uploading packages.  These handy program are distributed with
 defaults for uploading via <prgn>ftp</prgn> to <tt>ftp-master</tt>,
-<tt>chiark</tt>, and <tt>erlangen</tt>.  It can also be configured to
+<tt>chiark</tt>, and <tt>erlangen</tt>. They can also be configured to
 use <prgn>ssh</prgn> or <prgn>rsync</prgn>.  See <manref name="dupload"
 section="1">, <manref name="dupload" section="5"> and <manref name="dput"
 section="1"> for more information.
 use <prgn>ssh</prgn> or <prgn>rsync</prgn>.  See <manref name="dupload"
 section="1">, <manref name="dupload" section="5"> and <manref name="dput"
 section="1"> for more information.
@@ -1143,25 +1174,28 @@ file: <example>dinstall -n foo.changes</example>
        <sect1 id="upload-non-us">Uploading to <tt>non-US</tt> (pandora)
          <p>
 As discussed above, export controlled software should not be uploaded
        <sect1 id="upload-non-us">Uploading to <tt>non-US</tt> (pandora)
          <p>
 As discussed above, export controlled software should not be uploaded
-to <tt>ftp-master</tt>.  Instead, use <prgn>scp</prgn> or <prgn>rsync</prgn>
-to copy the package to <ftpsite>non-us.debian.org</ftpsite>, placing
-the files in <tt>&non-us-upload-dir;</tt>. By default, you can
-use the same account/password that works on <tt>ftp-master</tt>.
-If you use anonymous FTP to upload, place the files into
-<ftppath>/pub/UploadQueue/</ftppath>.
-         <p>
-The program <prgn>dupload</prgn> comes with support for uploading to
-<tt>non-us</tt>; please refer to the documentation that comes with
-the program for details.
+to <tt>ftp-master</tt>.  Instead, upload the package to
+<ftpsite>non-us.debian.org</ftpsite>, placing the files in
+<tt>&non-us-upload-dir;</tt> (both <ref id="dupload"> and <ref
+id="dput"> can be used also, with the right invokation). By default,
+you can use the same account/password that works on
+<tt>ftp-master</tt>.  If you use anonymous FTP to upload, place the
+files into <ftppath>/pub/UploadQueue/</ftppath>.
          <p>
 You can check your upload the same way it's done on <tt>ftp-master</tt>,
 with:
 <example>dinstall -n foo.changes</example>
          <p>
 Note that U.S. residents or citizens are subject to restrictions on
          <p>
 You can check your upload the same way it's done on <tt>ftp-master</tt>,
 with:
 <example>dinstall -n foo.changes</example>
          <p>
 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 <em>main</em> section of the Debian archive and does not depend
+on any package outside of <em>main</em> (e.g., does not depend on
+anything in <em>non-US/main</em>) can be uploaded to <tt>ftp-master</tt>
+or its queues, described above.
          <p>
 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
          <p>
 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, <em>including
 consulting a lawyer</em>.
          <p>
 breaking current US law by doing an upload to non-US, <em>including
 consulting a lawyer</em>.
          <p>
-For packages in non-US main or contrib, developers should at least
-follow the <url id="&url-u.s.-export;" name="procedure outlined by the
-US Government">.  Maintainers of non-US/non-free packages should
-further consult these <url id="&url-notification-of-export;"
-name="rules on notification of export"> of non-free software.
+For packages in <em>non-US/main</em>, <em>non-US/contrib</em>,
+developers should at least follow the <url id="&url-u.s.-export;"
+name="procedure outlined by the US Government">.  Maintainers of
+<em>non-US/non-free</em> packages should further consult the <url
+id="&url-notification-of-export;" name="rules on notification of
+export"> of non-free software.
          <p>
 This section is for information only and does not constitute legal
 advice. Again, it is strongly recommended that U.S. citizens and
          <p>
 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.
     <chapt id="tools">Overview of Debian Maintainer Tools
       <p>
 This section contains a rough overview of the tools available to
     <chapt id="tools">Overview of Debian Maintainer Tools
       <p>
 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.
+      <p>
+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.
       <p>
 Some people prefer to use high-level package maintenance tools and
 some do not.  Debian is officially agnostic on this issue; any tool
       <p>
 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.
       <p>
 Most of the descriptions of these packages come from the actual
 package descriptions themselves.  Further information can be found in
       <p>
 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 <tt>apt-cache show <var>package_name</var></tt>.
 
 
       <sect id="dpkg-dev">
 
 
       <sect id="dpkg-dev">
@@ -2140,14 +2180,18 @@ id="upload-checking"> and <ref id="lintian-reports">.
         <p>
 <package>debconf</package> provides a consistent interface to
 configuring packages interactively.  It is user interface
         <p>
 <package>debconf</package> 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.
         <p>
 text-only interface, an HTML interface, or a dialog interface.  New
 interfaces can be added modularly.
         <p>
+You can find documentation for this package in the
+<package>debconf-doc</package> package.
+        <p>
 Many feel that this system should be used for all packages requiring
 interactive configuration.  <package>debconf</package> is not
 currently required by Debian Policy, however, that may change in the
 future.
 Many feel that this system should be used for all packages requiring
 interactive configuration.  <package>debconf</package> is not
 currently required by Debian Policy, however, that may change in the
 future.
+        <p>
 
 
       <sect id="debhelper">
 
 
       <sect id="debhelper">
@@ -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.
        <p>
 various files into your package, compress files, fix file permissions,
 integrate your package with the Debian menu system.
        <p>
-Unlike <package>debmake</package>, <package>debhelper</package> is
-broken into several small, granular commands which act in a consistent
-manner.  As such, it allows a greater granularity of control than
-<package>debmake</package>.
+Unlike some approaches, <package>debhelper</package> 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".
+       <p>
+There are a number of little <package>debhelper</package> add-on
+packages, too transient to document.  You can see the list of most of
+them by doing <tt>apt-cache search ^dh-</tt>.
 
 
       <sect id="debmake">
 
 
       <sect id="debmake">
@@ -2181,16 +2229,18 @@ The consensus is that <package>debmake</package> is now deprecated in
 favor of <package>debhelper</package>.  However, it's not a bug to use
 <package>debmake</package>.
 
 favor of <package>debhelper</package>.  However, it's not a bug to use
 <package>debmake</package>.
 
+
       <sect id="yada">
        <heading><package>yada</package>
        <p>
       <sect id="yada">
        <heading><package>yada</package>
        <p>
-<package>yada</package> is a new packaging helper tool with a slightly
-different philosophy.  It uses a <file>debian/packages</file> file to
-auto-generate other necessary files in the <file>debian/</file>
-subdirectory.
+<package>yada</package> is another packaging helper tool.  It uses a
+<file>debian/packages</file> file to auto-generate
+<file>debian/rules</file> and other necessary files in the
+<file>debian/</file> subdirectory.
        <p>
        <p>
-Note that <package>yada</package> is still quite new and possibly not
-yet as robust as other systems.
+Note that <package>yada</package> is called "essentially unmaintained"
+by it's own maintainer, Charles Briscoe-Smith.  As such, it can be
+considered deprecated.
 
 
       <sect id="equivs">
 
 
       <sect id="equivs">
@@ -2227,14 +2277,39 @@ to send mail about the upload of a package.  You can configure it for
 new upload locations or methods.
 
 
 new upload locations or methods.
 
 
+      <sect id="dput">
+       <heading><package>dput</package>
+       <p>
+The <package>dput</package> package and script does much the same
+thing as <package>dupload</package>, but in a different way.  It has
+some features over <package>dupload</package>, such as the ability to
+check the GnuPG signature and checksums before uploading, and the
+possibility of running <tt>dinstall</tt> in dry-run mode after the
+upload.
+
+
       <sect id="fakeroot">
        <heading><package>fakeroot</package>
        <p>
 <package>fakeroot</package> simulates root privileges.  This enables
 you to build packages without being root (packages usually want to
 install files with root ownership).  If you have
       <sect id="fakeroot">
        <heading><package>fakeroot</package>
        <p>
 <package>fakeroot</package> simulates root privileges.  This enables
 you to build packages without being root (packages usually want to
 install files with root ownership).  If you have
-<package>fakeroot</package> installed, you can say, i.e.,
-<tt>dpkg-buildpackage -rfakeroot</tt> as a user.
+<package>fakeroot</package> installed, you can build packages as a
+user: <tt>dpkg-buildpackage -rfakeroot</tt>.
+
+
+      <sect id="debootstrap">
+       <heading><package>debootstrap</package>
+       <p>
+The <package>debootstrap</package> 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.
+       <p>
+Having a system like this can be useful in many ways. For instance,
+you can <prgn>chroot</prgn> 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.
 
 
       <sect id="devscripts">
 
 
       <sect id="devscripts">
@@ -2242,10 +2317,21 @@ install files with root ownership).  If you have
        <p>
 <package>devscripts</package> is a package containing a few wrappers
 and tools which you may find helpful for maintaining your Debian
        <p>
 <package>devscripts</package> is a package containing a few wrappers
 and tools which you may find helpful for maintaining your Debian
-packages.  Example scripts include <prgn>debchange</prgn>, which will
-manipulate your <file>debian/changelog</file> file from the
-command-line, and <prgn>debuild</prgn>, which is a wrapper around
-<prgn>dpkg-buildpackage</prgn>.
+packages.  Example scripts include <prgn>debchange</prgn> and
+<prgn>dch</prgn>, which manipulate your <file>debian/changelog</file>
+file from the command-line, and <prgn>debuild</prgn>, which is a
+wrapper around <prgn>dpkg-buildpackage</prgn>.
+
+
+
+      <sect id="dpkg-dev-el">
+       <heading><package>dpkg-dev-el</package>
+       <p>
+<package>dpkg-dev-el</package> is an Emacs lisp package which provides
+assistance when editing some of the files in the <file>debian</file>
+directory of your package.  For instance, when editing
+<file>debian/changelog</file>, there are handy functions for
+finalizing a version and listing the package's current bugs.
 
 
       <sect id="debget">
 
 
       <sect id="debget">
@@ -2253,8 +2339,17 @@ command-line, and <prgn>debuild</prgn>, which is a wrapper around
        <p>
 <package>debget</package> is a package containing a convenient script
 which can be helpful in downloading files from the Debian archive.
        <p>
 <package>debget</package> 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
+<tt>apt-get source <var>package</var></tt> does pretty much the same
+thing).
+
 
 
+<!-- FIXME: add the following
+  dpkg-awk
+  alien
+  dpkg-repack
+  grep-dctrl
+  pbuilder -->
 
 
   </book>
 
 
   </book>