<p>
All packages in the Debian distribution proper must be freely useable,
-modifiable and redistributable in both source and binary form. It
-must be possible for anyone to distribute and use modified source code
-and their own own compiled binaries, at least when they do so as part
+modifiable and redistributable in both source and binary
+form.<footnote>It is OK for there to be a requirement that modified
+versions carry a warning, or that they be released with a different
+name or version number, or something similar, because we can comply
+with this requirement if necessary.</footnote>
+It must be possible for anyone to distribute and use modified source
+code and their own compiled binaries, at least when they do so as part
of a Debian distribution.
<p>
-Packages whose copyright permission notices (or patent problems) do
-not allow distribution and copying for profit, without restriction on
-the amount charged, or where distribution is restricted according to
-the medium used, or where the distributor must ask any kind of special
-permission of the authors, or with other onerous conditions, may only
-be placed in the semi-supported non-free section of the Debian FTP
-archives. This is important so that CDROM manufacturers can
-distribute Debian without having to check the copyright of each
+Packages
+<list compact>
+<item>
+whose copyright permission notices (or patent problems) do not allow
+distribution and copying for profit, without restriction on the amount
+charged, or
+<item>
+where distribution is restricted according to the medium used, or
+<item>
+where the distributor must ask any kind of special permission of the
+authors, or
+<item>
+with other onerous conditions,
+</list>
+may only be placed in the semi-supported non-free section of the
+Debian FTP archives. This is important so that CDROM manufacturers
+can distribute Debian without having to check the copyright of each
package individually, simply by leaving out the contents of the
non-free area; CDROM distributors are encouraged, though, to check the
copyrights on programs in non-free individually and include as many as
they can.
<p>
-Packages whose copyright permission notices (or patent problems) allow
-only distribution of compiled binaries (and thus of which only
-binaries are available), or where the source code which may be
+Packages
+<list compact>
+<item>
+whose copyright permission notices (or patent problems) allow only
+distribution of compiled binaries (and thus of which only binaries are
+available), or
+<item>
+where the source code which may be
distributed is not the complete source code required to compile the
program (ie, the program cannot be compiled using only packages in the
-main Debian distribution), or which depend for their use on non-free
-or contrib packages, or allow free use only for a trial period
-(shareware), or are demonstration programs lacking vital functionality
-(crippleware), or are only installer-packages which require the user
-to supply a separate file to be installed, or which fail to meet some
-other policy requirements, may only be placed in the semi-supported
-contrib section of the Debian FTP archives (unless they need to be in
-non-free - see above).
+main Debian distribution), or
+<item>
+which depend for their use on non-free or contrib packages, or
+<item>
+allow free use only for a trial period (shareware), or
+<item>
+are demonstration programs lacking vital functionality (crippleware),
+or
+<item>
+are only installer-packages which require the user to supply a
+separate file to be installed, or
+<item>
+which fail to meet some other policy requirements,
+</list>
+may only be placed in the semi-supported contrib section of the Debian
+FTP archives (unless they need to be in non-free - see above).
<p>
Programs whose authors encourage the user to make donations are fine
Debian policy manual
--------------------
Ian Jackson <ijackson@gnu.ai.mit.edu>
- version 0.2.0.0 (dpkg 1.3.7), 22 August 1996
+ version 0.2.1.1 (dpkg 1.3.10), 25 August 1996
0.1 Abstract
------------
4.4. Changes to the upstream sources
4.5. Error trapping in makefiles
- 5. How to become a Debian developer
- 5.1. Before you start work
+ 5. Procedure - how to participate in the Debian project
+ 5.1. Before you start work on a package
5.2. When you have a package to upload
5.3. Upload handling - `.changes' files
+ 5.4. The Debian mailing lists
- 6. The Debian mailing lists
-
- 7. Conversion procedure from old source packages
+ 6. Conversion procedure from old source packages
0.3. Copyright Notice
administrators' manual.
This document assumes familiarity with these other two manuals.
+ Unfortunately the system administrators' manual does not exist yet.
The Debian version of the FSF's GNU hello program is provided as an
example for people wishing to create Debian packages.
without violating copyrights.
All packages in the Debian distribution proper must be freely useable,
- modifiable and redistributable in both source and binary form. It must
- be possible for anyone to distribute and use modified source code and
- their own own compiled binaries, at least when they do so as part of a
- Debian distribution.
-
- Packages whose copyright permission notices (or patent problems) do
- not allow distribution and copying for profit, without restriction on
- the amount charged, or where distribution is restricted according to
- the medium used, or where the distributor must ask any kind of special
- permission of the authors, or with other onerous conditions, may only
- be placed in the semi-supported non-free section of the Debian FTP
- archives. This is important so that CDROM manufacturers can distribute
- Debian without having to check the copyright of each package
- individually, simply by leaving out the contents of the non-free area;
- CDROM distributors are encouraged, though, to check the copyrights on
- programs in non-free individually and include as many as they can.
-
- Packages whose copyright permission notices (or patent problems) allow
- only distribution of compiled binaries (and thus of which only
- binaries are available), or where the source code which may be
- distributed is not the complete source code required to compile the
- program (ie, the program cannot be compiled using only packages in the
- main Debian distribution), or which depend for their use on non-free
- or contrib packages, or allow free use only for a trial period
- (shareware), or are demonstration programs lacking vital functionality
- (crippleware), or are only installer-packages which require the user
- to supply a separate file to be installed, or which fail to meet some
- other policy requirements, may only be placed in the semi-supported
- contrib section of the Debian FTP archives (unless they need to be in
- non-free - see above).
+ modifiable and redistributable in both source and binary form.[1] It
+ must be possible for anyone to distribute and use modified source code
+ and their own own compiled binaries, at least when they do so as part
+ of a Debian distribution.
+
+ [1] It is OK for there to be a requirement that modified versions
+ carry a warning, or that they be released with a different name
+ or version number, or something similar, because we can comply
+ with this requirement if necessary.
+
+ Packages
+ * whose copyright permission notices (or patent problems) do not
+ allow distribution and copying for profit, without restriction on
+ the amount charged, or
+ * where distribution is restricted according to the medium used, or
+ * where the distributor must ask any kind of special permission of
+ the authors, or
+ * with other onerous conditions,
+ may only be placed in the semi-supported non-free section of the
+ Debian FTP archives. This is important so that CDROM manufacturers can
+ distribute Debian without having to check the copyright of each
+ package individually, simply by leaving out the contents of the
+ non-free area; CDROM distributors are encouraged, though, to check the
+ copyrights on programs in non-free individually and include as many as
+ they can.
+
+ Packages
+ * whose copyright permission notices (or patent problems) allow
+ only distribution of compiled binaries (and thus of which only
+ binaries are available), or
+ * where the source code which may be distributed is not the
+ complete source code required to compile the program (ie, the
+ program cannot be compiled using only packages in the main Debian
+ distribution), or
+ * which depend for their use on non-free or contrib packages, or
+ * allow free use only for a trial period (shareware), or
+ * are demonstration programs lacking vital functionality
+ (crippleware), or
+ * are only installer-packages which require the user to supply a
+ separate file to be installed, or
+ * which fail to meet some other policy requirements,
+ may only be placed in the semi-supported contrib section of the Debian
+ FTP archives (unless they need to be in non-free - see above).
Programs whose authors encourage the user to make donations are fine
for the main distribution, provided that the authors do not claim that
The value corresponds to a version of the Debian manuals, as can be
found on the title page or page headers and footers (depending on the
format). The value for this version of the manuals and packaging
- standards is `0.2.0.0'.
+ standards is `0.2.1.1'.
The version number has four components - major and minor number and
major and minor patchlevel. When the standards change in a way that
signaled by a change to the minor number. The major patchlevel will be
changed for any change to the meaning of the standards, however small;
the minor patchlevel will be changed when only cosmetic, typographical
- or other edits which do not change the meaning are made.
+ or other edits which do not change the meaning are made, or changes
+ which do not affect the contents of packages.
You should regularly, and especially if your package has become out of
date, install the most recent version of dpkg and read
-------------------------------------------------------------------------------
-5. How to become a Debian developer
-------------------------------------
+5. Procedure - how to participate in the Debian project
+--------------------------------------------------------
-5.1. Before you start work
---------------------------
+5.1. Before you start work on a package
+---------------------------------------
So, you've read all the documentation, you understand what everything
in the hello example package is for, and you're about to Debianise
All of them are mandatory for a Debian upload. See the list of control
fields in the dpkg programmers' manual for the contents of these
- fields.
+ fields.
+ The first time a version is uploaded which corresponds to a particular
+ upstream version the original source tarfile should be uploaded and
+ included in the `.changes' file; subsequent times the very same
+ tarfile should be used to build the new diffs and `.dsc' files, and it
+ need not then be uploaded.
--------------------------------------------------------------------------------
+ By default dpkg-genchanges and dpkg-buildpackage will include the
+ original source tarfile 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.
+ If no original source is included in the upload then the original
+ source tarfile used by dpkg-source when constructing the `.dsc' file
+ and diff to be uploaded *must* be byte-for-byte identical with the one
+ already in the archive. If there is some reason why this is not the
+ case then the new version of the original source should be uploaded,
+ possibly by using the `-sa' flag.
-6. The Debian mailing lists
----------------------------
+
+5.4. The Debian mailing lists
+-----------------------------
The mailing list server is at `lists.debian.org'. Mail
`debian-<foo>-REQUEST@lists.debian.org'[1] with the word `subscribe'
see the responses.
As ever on the net, please trim down the quoting of articles you're
- replying to.
+ replying to. In general, please adhere to the usual conventions for
+ posting messages.
-------------------------------------------------------------------------------
-7. Conversion procedure from old source packages
+6. Conversion procedure from old source packages
------------------------------------------------
This is a brief summary of the procedure for converting a
pre-2.0.0.0-format source package into the new format.
+ You are strongly advised to download and examine the hello package,
+ and to read the section in the dpkg programmers' manual describing the
+ source packaging tools. More detail about the exact functionality of
+ these tools is available in dpkg-source(1).
+
* Download the original source code from wherever it can be found
and do any rearrangement required to make it look like the
original tree of the Debian source. Put it in
- `<package>-<upstream-version>.orig'.
+ `<package>-<upstream-version>.orig/' or
+ `<package>_<upstream-version>.orig.tar.gz'.
* Rename all files `debian.*' to `debian/*'. There may be some
exceptions to this, but this is a good start.
package fields.
* Add the `Source' field.
* Add the `Standards-Version' field. The current value is
- `0.2.0.0'.
+ `0.2.1.1'.
* Change the `Architecture' field for each package to `any',
`all' or whatever. If there isn't an `Architecture' field
add one.
`/usr/doc/copyright/<package>'. If it isn't then find
`debian/copyright' and decide what to do with the `README'.
- * Check for various other anachronisms:
+ * Check for various other anachronisms and problems:
* Remove any `Package_Revision', `Package-Revision' or
`Revision' fields.
* Rename `Optional' to `Suggests', `Recommended' to
* Change `/usr/doc/examples/<package>' to
`/usr/doc/<package>/examples'.
* Make sure that manpages are installed compressed.
+ * Check that the description has an extended description, is
+ well-formatted and meaningful and helpful to people wanting
+ to know whether to install a package.
* Look everything over.
- * Do a test build using `dpkg-buildpackage -ur -uc -r<whatever>'.
- Check the permissions and locations of files in the resulting
- package by eyeballing the output of `dpkg-deb --contents', and
- check that the source build happened OK. Test install the binary
- package(s) and test extract the source package(s).
+ * Do a test build using `dpkg-buildpackage -ur -uc -sa
+ -r<whatever>'. Check the permissions and locations of files in
+ the resulting package by eyeballing the output of `dpkg-deb
+ --contents', and check that the source build happened OK. Test
+ install the binary package(s) and test extract the source
+ package(s).
- * Sign the release: either re-run dpkg-buildpackage (this will
- rebuild the package entirely), or PGP-sign the `.dsc', rebuild
- the `.changes' using dpkg-genchanges, and then PGP-sign the
+ * Sign the release: either rebuild everything with
+ `dpkg-buildpackage -sa', or PGP-sign the `.dsc', rebuild the
+ `.changes' using `dpkg-genchanges -sa', and then PGP-sign the
`.changes'.
+ The use of `-sa' on dpkg-buildpackage and dpkg-genchanges is important
+ when doing the first build/uploading of a new-format source package.
+ Unless this happens to be Debian revision `0' or `1' by default the
+ original source tarfile will not be included in the uploaded files
+ listed in the `.changes' file, and so it won't be installed on the FTP
+ site. `-sa' requests that the original source be included regardless.
-------------------------------------------------------------------------------
Debian policy manual
- Ian Jackson <ijackson@gnu.ai.mit.edu> - version 0.2.0.0 (dpkg 1.3.7),
- 22 August 1996
+ Ian Jackson <ijackson@gnu.ai.mit.edu> - version 0.2.1.1 (dpkg 1.3.10),
+ 25 August 1996