]>
<debiandoc>
<!--
-
- Topics to be included:
+ TODO:
- bugs in upstream versions should be reported upstream!
- fill in ftp and www server discussion
-
+ - porter instructions - - volunteers needed for this x86-centric maintainer!
+ - talk about CVS access
-->
<book>
A copy of the GNU General Public License is available as
<tt>/usr/doc/copyright/GPL</tt> in the Debian GNU/Linux distribution
or on the World Wide Web at <url
-id="http://www.gnu.org/copyleft/gpl.html">. You can also obtain it by
-writing to the Free Software Foundation, Inc., 59 Temple Place - Suite
-330, Boston, MA 02111-1307, USA.
+id="http://www.gnu.org/copyleft/gpl.html" name="the GNU website">.
+You can also obtain it by writing to the Free Software Foundation,
+Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
<toc sect>
<p>
So, you've read all the documentation, you understand what everything
in the <prgn/hello/ example package is for, and you're about to
-Debianise your favourite piece of software. How do you actually
+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@lists.debian.org/ if you
haven't already. Send the word <tt/subscribe/ in the <em/Subject/ of
a mail to <email/debian-devel-REQUEST@lists.debian.org/. In case of
-problems contact the list administrator at
+problems, contact the list administrator at
<email/listmaster@lists.debian.org/. More information on available
mailing lists can be found in <ref id="mailing-lists">.
<p>
<sect>Registering as a Debian developer
<p>
-Before you decide to work in the Debian Project you have to read the
-<url id="http://www.debian.org/social_contract" name="Debian Social
-Contract">. Registering as a developer means that you agree with and
-pledge to uphold the Debian Social Contract; it is very important that
-maintainers are in accord with the essential ideas behind Debian
-GNU/Linux. Reading the <url
+Before you decide to register with the Debian Project, you will need
+to read the <url id="http://www.debian.org/social_contract"
+name="Debian Social Contract">. Registering as a developer means that
+you agree with and pledge to uphold the Debian Social Contract; it is
+very important that maintainers are in accord with the essential ideas
+behind Debian GNU/Linux. Reading the <url
id="http://www.gnu.org/gnu/manifesto.html" name="GNU Manifesto"> would
also be a good idea.
<p>
<ftpsite/ftp.debian.org/ or <ftpsite/ftp.us.debian.org/ in the
<ftppath>/pub/debian/README.non-US</ftppath> file.
<p>
-If you live in a country where use of cryptography even for
-authentication is forbidden then please contact us so we can make
-special arrangements. This does not apply in France, where I believe
-only encryption and not authentication is forbidden.
+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
+products for authenication, rather than encryption purposes (as is
+the case in France). The Debian Project does not require the use of
+cryptography <em/qua/ cryptography in any manner. If you live in a
+country where use of cryptography even for authentication is forbidden
+then please contact us so we can make special arrangements.
<p>
Once you have all your information ready, and your public key is
available on public key servers, send a message to
<sect id="mentors">Debian Mentors
<p>
There is a mailing list called <email/debian-mentors@lists.debian.org/
-which has been set up for newbie maintainers who seek help with
+which has been set up for novice maintainers who seek help with
initial packaging and other developer-related issues. Every new
developer is invited to subscribe to that list (see <ref
id="mailing-lists"> for details).
<tt>/usr/doc/debian/mailing-lists.txt</tt> if you have the
<prgn>doc-debian</prgn> package installed.
<p>
-When replying to messages on the mailing list, please do not send a
-carbon copy (<tt/CC/--this does not mean `courtesy copy') to the
-original poster. Anyone who posts to a mailing list should read it to
-see the responses.
+When replying to messages on the mailing list, please do not send
+a carbon copy (<tt/CC/--this does not mean `courtesy copy') to
+the original poster unless they explicitly request that this be
+done. Anyone who posts to a mailing list should read it to see the
+responses.
<p>
In addition, all messages should usually only be sent to one of the
following mailing lists: <email/debian-devel@lists.debian.org/,
<email/debian-announce@lists.debian.org/, or
<email/debian-devel-announce@lists.debian.org/. Additional mailing
lists are available for special purposes; see <url
-id="http://www.debian.org/MailingLists/subscribe">. Cross-posting is
-discouraged.
+id="http://www.debian.org/MailingLists/subscribe">. Cross-posting
+(sending the same message to multiple lists) is discouraged.
<p>
<email/debian-private@lists.debian.org/ is a special mailing lists for
private discussions amongst Debian developers. It is meant to be used
main/binary-all/devel/
...
main/binary-i386/
-main/binary-m86k/
+main/binary-i386/admin/
+main/binary-i386/base/
+ ...
+main/binary-m86k
+main/binary-m86k/admin/
+main/binary-m86k/base/
...
main/source/
+main/source/admin/
+main/source/base/
+ ...
main/disks-i386/
main/disks-m68k/
...
<sect>Sections
<p>
-The <em>main</em> section is what makes up the <em>Debian GNU/Linux
-distribution</>. This is because the packages in the other two
-sections do not fully comply with all our guidelines. As such, they
-are not officially part of Debian.
+The <em>main</em> section is what makes up the <em>official Debian
+GNU/Linux distribution</>. This is because the packages in the other
+two sections do not fully comply with all our guidelines. As such,
+they are not officially part of Debian.
<p>
-For example, every package in the main distribution must fully comply
+For example, every package in the main section must fully comply
with the <url id="http://www.debian.org/social_contract#guidelines"
name="Debian Free Software Guidelines"> (DFSG) and with all other
policy requirements as described in the <url
<p>
(The <url id="http://www.debian.org/doc/debian-policy/" name="Debian
Policy Manual"> contains a more exact definition of the three
-sections. This is just meant to be an introduction.)
+sections. The above discussion is just an introduction.)
<p>
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
<p>
On the other hand, a CD-ROM vendor could easily check the individual
package licenses of the packages in <em/non-free/ and include as many
-on the CD-ROMs as he's allowed. (Since this varies from vendor to
-vendor very much, this job can't be done by the Debian developers.)
+on the CD-ROMs as he's allowed. (Since this varies greatly from vendor
+to vendor, this job can't be done by the Debian developers.)
<sect>Architectures
too.
<p>
The Linux 2.0 kernel supports Intel, DEC Alphas, SUN Sparcs, M68000
-machines (like Atari and Amiga), MIPS, and PowerPC.
+(a.k.a. m68k) machines (like Atari and Amiga), MIPS, and PowerPC
+(a.k.a. ppc).
<p>
Debian GNU/Linux 1.3 is only available for Intel platforms. Debian
2.0 supports Intel and m68k architectures. The next version of Debian
<sect>Subsections
<p>
The sections <em/main/, <em/contrib/, and <em/non-free/ are split into
-<em/subsections/, to simplify the installation process and the
-maintainance of the archive. Subsections are not formally defined,
+<em/subsections/ to simplify the installation process and the
+maintainance of the archive. Subections are not formally defined,
excepting perhaps for the "base" subsection. Subsections exist simply
to simpilfy the organization and browsing of available packages.
Please check the current Debian distribution to see which sections are
<em/binary/ packages.
<p>
Source packages consist of either two or three files: a <tt/.dsc/
-file, and either one <tt/.tar.gz/ file or a <tt/.orig.tar.gz/ and a
+file, and either one <tt/.tar.gz/ file or an <tt/.orig.tar.gz/ and a
<tt/.diff.gz/ file.
<p>
If a package is developed specially for Debian and is not distributed
<p>
If a package is distributed elsewhere too, the <tt/.orig.tar.gz/ file
stores the so-called <em/upstream source code/, that is the source
-code that's distributed from the <em/upstream maintainer/ (author). In
-this case, the <tt/.diff.gz/ contains the changes made by the Debian
-maintainer.
+code that's distributed from the <em/upstream maintainer/ (often the
+author of the software). In this case, the <tt/.diff.gz/ contains the
+changes made by the Debian maintainer.
<p>
-The <tt/.dsc/ lists all components of the source package together with
+The <tt/.dsc/ lists all the files in the source package together with
checksums (md5sums) and some additional info about the package
(maintainer, version, etc.).
Debian project.
<p>
The ``development'' is done in the <em/unstable/ distribution (that's
-why this distribution is sometimes called <em/development
+why this distribution is sometimes called the <em/development
distribution/). Every Debian developer can update his or her packages in
this distribution at any time. Thus, the contents of this distribution
-changes from day to day and since no special effort is done to test
+change from day to day and since no special effort is done to test
this distribution it's sometimes ``unstable.''
<p>
-After about a period of development, the <em/unstable/ distribution is
-copied in a new distribution directory, called <em/frozen/. After
-that, no changes are allowed to the frozen distribution, except bug
-fixes. (That's why it's called ``frozen.'') After another month or a
+After a period of development, the <em/unstable/ distribution is
+copied in a new distribution directory, called <em/frozen/. When that
+occurs, no changes are allowed to the frozen distribution except bug
+fixes; that's why it's called ``frozen.'' After another month or a
little longer, the <em/frozen/ distribution is renamed to <em/stable/,
overriding the old <em/stable/ distribution, which is removed at that
time.
This development cycle is based on the assumption that the
<em/unstable/ distribution becomes <em/stable/ after passing a period
of testing as <em/frozen/. Unfortunately, even once a distribution is
-considered <em/stable/, a few bugs inevitably remain--that's why the
-stable distribution is updated every now and then. However, these
-updates are tested very carefully and have to be acknowledged
+considered stable, a few bugs inevitably remain--that's why the stable
+distribution is updated every now and then. However, these updates are
+tested very carefully and have to be introduced into the archive
individually to reduce the risk of introducing new bugs. You can find
proposed additions to <em/stable/ in the <tt/proposed-updates/
-directory.
+directory. Those packages in <tt/proposed-updates/ that pass muster
+are periodically moved as a batch into the stable distribution and the
+revision level of the stable distribution is incremented (e.g., `1.3'
+becomes `1.3r1', `2.0r2' becomes `2.0r3', and so forth).
<p>
-Note, that development is continued during the ``freeze'' period,
-since a new <em/unstable/ distribution is be created when the older
+Note that development is continued during the ``freeze'' period, since
+a new <em/unstable/ distribution is be created when the older
<em/unstable/ is moved to <em/frozen/.
<p>
In summary, there is always a <em/stable/ and an <em/unstable/
<sect id="codenames">Release code names
<p>
Every released Debian distribution has a <em/code name/: Debian 1.1 is
-called <em/buzz/, Debian 1.2 <em/rex/, Debian 1.3 <em/bo/, Debian 2.0
-<em/hamm/, Debian 2.1 will be called <em/slink/, etc. There is also a
-"pseudo-distribution", called <em/sid/, which is
-used to contain packages for architectures which are not yet
-officially supported or released by Debian. are intended to be
-released for some future distribution.
+called <em/buzz/; Debian 1.2, <em/rex/; Debian 1.3, <em/bo/; Debian
+2.0, <em/hamm/; Debian 2.1, <em/slink/. There is also a
+"pseudo-distribution", called <em/sid/, which is contains packages for
+architectures which are not yet officially supported or released by
+Debian. These architectures are planned to be integrated into the
+mainstream distribution at some future date.
<p>
Since the Debian has an open development model (i.e., everyone can
participate and follow the development) even the ``development
should first check the <url
id="http://www.debian.org/doc/prospective-packages.html"
name="Work-Needing and Prospective Packages (WNPP)"> page. 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
+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@lists.debian.org/ describing your
plan to create a new package. You should set the subject of the email
line of testers); we should encourage these people.
<item>
-I think the announcements gives us a better feel of what is going on,
-and what is new, in the project.
+The announcements give maintainers and other interested parties a
+better feel of what is going on, and what is new, in the project.
+
<item>
We should not dismiss anybody who installs from unstable and helps us
deserve what you get"--we derive a certain benefit from the alpha
testers.
- <item>
-If we appreciate alpha testers, than any name changes have to be
-backwards compatible with the people who already installed the old
-package (conflict and replace old package name at a minimum).
</list>
need not then be uploaded.
<p>
By default <prgn/dpkg-genchanges/ and <prgn/dpkg-buildpackage/ will
-include the original source tar-file if and only if the Debian
+include the original source tar file if and only if the Debian
revision part of the source version number is <tt/0/ or <tt/1/,
indicating a new upstream version. This behaviour may be modified by
using <tt/-sa/ to always include it or <tt/-sd/ to always leave it
Make sure you try the following activities (you'll need to have an
older version of the Debian package around).
<list>
- <item> install the package and make sure the software
- works
-
- <item> upgrade the package from an older version to your
- new version
+ <item> install the package and make sure the software
+ works, or upgrade the package from an older version to
+ your new version if a Debian package for it already
+ exists
<item> downgrade the package to the previous version
- (this tests the <tt/postrm/ and <tt/prerm/ scripts)
+ (if one exists) -- this tests the <tt/postrm/ and
+ <tt/prerm/ scripts
<item> remove the package
have this account. You can use either <prgn/ssh/ or <prgn/ftp/ to
transfer the files. In either case, the files need to be placed into
<ftppath>/home/Debian/ftp/private/project/Incoming</ftppath>. (You
-cannot upload to Incoming on master using anonymous FTP--you must use
-your user-name and password.)
+cannot upload to Incoming on master using anonymous FTP -- you must use
+your username and password.)
+ <p>
+<em/Note:/ Do not upload packages containing software that is
+export-controlled by the United States government to <tt/master/.
+This includes almost all cryptographic software, and even 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/ (see below). If you are
+not sure whether U.S. export controls apply to your package, post a
+message to <email/debian-devel@lists.debian.org/ and ask.
<p>
You may also find the Debian package <prgn/dupload/ useful when
uploading packages. This handy program is distributed with defaults
<p>
To upload a package to the <em/non-us/ server you just have to
transfer the files via anonymous ftp to <url
-id="ftp://nonus.debian.org/pub/debian-non-US/Incoming">. Note, that
+id="ftp://non-us.debian.org/pub/debian-non-US/Incoming">. Note, that
the <tt>.changes</tt> file must have a valid PGP signature from one of
the keys of the developers keyring.
If a package is released with the <tt/Distribution:/ set to
<tt/stable/, the announcement is sent to
<email/debian-changes@lists.debian.org/.
- <p>
+ <p>
If a package is released with <tt/Distribution:/ set to <tt/unstable/,
<tt/experimental/, or <tt/frozen/ (when present), the announcement
should be posted to <email/debian-devel-changes@lists.debian.org/
instead.
<p>
-If you use dupload, it is clever enough to determine for itself where
-the announcement should go, and will automatically mail the
-announcement.
+On occassion, it is necessary to upload a package to both the <tt/stable/
+and <tt/unstable/ distributions; this is done by putting both distributions
+in the <tt/Distribution:/ line. In such a case the upload announcement
+should go to both of the above mailing lists.
+ <p>
+The <prgn/dupload/ program is clever enough to determine for itself
+where the announcement should go, and will automatically mail the
+announcement. See <ref id="dupload">.
<sect>Notification that a new package has been installed
<p>
is also available at in the Work-Needing and Prospective Packages
document (WNPP), <url
id="ftp://ftp.debian.org/debian/doc/package-developer/prospective-packages.html">
-and at <url
-id="http://www.debian.org/doc/prospective-packages.html">. 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@debian.org/.
+and at <url id="http://www.debian.org/doc/prospective-packages.html">.
+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@debian.org/.
+
<p>
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
<sect>Moving packages
<p>
-Sometimes a package will change either it's section or it's
-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 <url
+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 <url
id="http://www.debian.org/doc/debian-policy/" name="Debian Policy
Manual"> for guidelines).
<p>
<sect id="lintian-reports">Lintian reports
<p>
You should periodically get the new <prgn/lintian/ from `unstable' and
-check over all your packages. Alternatively you can check for you're
-maintainer email address at <url id="http://www.debian.org/lintian/">.
-That page, which is updated automatically, contains <prgn/lintian/
-reports against the latest version of the package (usually from
+check over all your packages. Alternatively you can check for your
+maintainer email address at the <url
+id="http://www.debian.org/lintian/" name="online lintian report">.
+That report, which is updated automatically, contains <prgn/lintian/
+reports against the latest version of the distribution (usually from
'unstable') using the latest <prgn/lintian/.
If you report more then 10 bugs on the same topic at once, it is
recommended that you send a message to
<email/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 prevent the situation
-where several maintainers start filing the same bug report
-simultaneously.
+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.
<p>
-Note, that when sending lots of bugs on the same subject, you should
+Note that when sending lots of bugs on the same subject, you should
send the bug report to <email/maintonly@bugs.debian.org/ so that the
bug report is not forwarded to the bug distribution mailing list.