<!-- common, language independant entities -->
<!entity % commondata SYSTEM "common.ent" > %commondata;
<!-- CVS revision of this document -->
- <!entity cvs-rev "$Revision: 1.86 $">
+ <!entity cvs-rev "$Revision: 1.90 $">
<!-- if you are translating this document, please notate the RCS
revision of the developers reference here -->
<copyright>
<copyrightsummary>
-copyright ©1998 &ndash 2001 Adam Di Carlo</copyrightsummary>
+copyright ©1998 &ndash 2002 Adam Di Carlo</copyrightsummary>
<copyrightsummary>
copyright ©1997, 1998 Christian Schwarz</copyrightsummary>
<p>
<chapt id="new-maintainer">Applying to Become a Maintainer
- <sect>Getting started
+ <sect id="getting-started">Getting started
<p>
-So, you've read all the documentation, you understand what everything
-in the <package>hello</package> example package is for, and you're about to
-Debianize your favourite piece of software. How do you actually
-become a Debian developer so that your work can be incorporated into
-the Project?
+So, you've read all the documentation, you've gone through the <url
+id="&url-newmaint-guide;" name="Debian New Maintainers' Guide">,
+understand what everything in the <package>hello</package> example
+package is for, and you're about to Debianize your favourite piece of
+software. How do you actually become a Debian developer so that your
+work can be incorporated into the Project?
<p>
Firstly, subscribe to &email-debian-devel; if you haven't already.
Send the word <tt>subscribe</tt> in the <em>Subject</em> of an email
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
a lot of timer later on.
- <sect id="mentors">Debian Mentors
+ <sect id="mentors">Debian Mentors and Sponsors
<p>
The mailing list &email-debian-mentors; has been set up for novice
maintainers who seek help with initial packaging and other
<p>
Those who prefer one-on-one help (e.g., via private email) should also
post to that list and an experienced developer will volunteer to help.
+ <p>
+In addition, if you have some packages ready for inclusion in Debian,
+but are waiting for your new maintainer application to go through, you
+might be able find a sponsor to upload your package for you. Sponsors
+are people who are official Debian maintainers, and who are willing to
+critique and upload your packages for you. Sponsorees can request a
+sponsors at <url id="&url-sponsors;">.
<chapt id="developer-duties">Debian Developer's Duties
<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
<em>unstable</em> point to the appropriate release directories.
- <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
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 — see <ref id="devscripts">
+and <ref id="dpkg-dev-el">.
+
+
<sect id="upload-checking">Checking the package prior to upload
<p>
<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>,
-<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.
<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
-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
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>
<package>yada</package> is another packaging helper tool. It uses a
<file>debian/packages</file> file to auto-generate
-<file>debian/rules</file> other necessary files in the
+<file>debian/rules</file> and other necessary files in the
<file>debian/</file> subdirectory.
<p>
Note that <package>yada</package> is called "essentially unmaintained"
By "base system", we mean the bare minimum of packages required to
operate and install the rest of the system.
<p>
-Having a system link this can be useful in many ways. For instance,
+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.
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">
<heading><package>debget</package>
<p>
<!-- FIXME: add the following
dpkg-awk
- dpkg-cross
- dpkg-dev-el
alien
dpkg-repack
grep-dctrl