X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=policy.sgml;h=1a61d4f68a39d509e26eeb5aaa6e83ae3cbc8f1e;hb=f76c91cd6c979dadd1428d87791b0a5e0be706ea;hp=875de37c9c566585bfb69b5ffc56478b4bdb957c;hpb=bc66054dd04da94229a66e897fe1015149f292d4;p=debian%2Fdebian-policy.git
diff --git a/policy.sgml b/policy.sgml
index 875de37..1a61d4f 100644
--- a/policy.sgml
+++ b/policy.sgml
@@ -258,7 +258,6 @@
+ Finally, a
@@ -1943,7 +1951,7 @@
- A package may also provide both of the targets
+ A package may also provide one or both of the targets
build-arch and build-indep.
The build-arch target, if provided, should
perform all the configuration and compilation required for
@@ -1956,9 +1964,13 @@
architecture-independent binary packages (those packages
for which the body of the Architecture field
in debian/control is all).
- The build target should depend on those of the
- targets build-arch and build-indep that
- are provided in the rules file.
+ If build-arch or build-indep targets are
+ provided in the rules file, the build target
+ should either depend on those targets or take the same
+ actions as invoking those targets would perform.
- Each paragraph consists of a series of data fields; each
- field consists of the field name, followed by a colon and
- then the data/value associated with that field. It ends at
- the end of the (logical) line. Horizontal whitespace
- (spaces and tabs) may occur immediately before or after the
- value and is ignored there; it is conventional to put a
- single space after the colon. For example, a field might
- be:
+ Each paragraph consists of a series of data fields. Each field
+ consists of the field name followed by a colon and then the
+ data/value associated with that field. The field name is
+ composed of US-ASCII characters excluding control characters,
+ space, and colon (i.e., characters in the ranges 33-57 and
+ 59-126, inclusive). Field names must not begin with the comment
+ character, #.
+
+ The field ends at the end of the line or at the end of the last
+ continuation line (see below). Horizontal whitespace (spaces
+ and tabs) may occur immediately before or after the value and is
+ ignored there; it is conventional to put a single space after
+ the colon. For example, a field might be:
- Many fields' values may span several lines; in this case
- each continuation line must start with a space or a tab.
- Any trailing spaces or tabs at the end of individual
- lines of a field value are ignored.
+ There are three types of fields:
+
- In fields where it is specified that lines may not wrap,
- only a single line of data is allowed and whitespace is not
- significant in a field body. Whitespace must not appear
+ Whitespace must not appear
inside names (of packages, architectures, files or anything
else) or version numbers, or between the characters of
multi-character version relationships.
+ The presence and purpose of a field, and the syntax of its
+ value may differ between types of control files.
+
Field names are not case-sensitive, but it is usual to
capitalize the field names using mixed case as shown below.
@@ -2532,9 +2584,17 @@ Package: libc6
- Blank lines, or lines consisting only of spaces and tabs,
- are not allowed within field values or between fields - that
- would mean a new paragraph.
+ Paragraph separators (empty lines) and lines consisting only of
+ spaces and tabs are not allowed within field values or between
+ fields. Empty lines in field values are usually escaped by
+ representing them by a space followed by a dot.
+
+ Lines starting with # without any preceding whitespace are comments
+ lines that are only permitted in source package control files
+ (
@@ -2565,7 +2625,7 @@ Package: libc6
- In addition to the control file syntax described
This file consists of a single paragraph, possibly surrounded by
a PGP signature. The fields of that paragraph are listed below.
- Their syntax is described above, in .
+ Their syntax is described above, in .
- The source package control file is generated by
+ The Debian source control file is generated by
- Any parser that interprets the Uploaders field in
-
- In the source package control file
+ The list may include (or consist solely of) the special
value all. In other words, in
- Specifying any indicates that the source package + Specifying only any indicates that the source package isn't dependent on any particular architecture and should compile fine on any one. The produced binary package(s) - will either be specific to whatever the current build - architecture is or will be architecture-independent. + will be specific to whatever the current build architecture is.
Specifying only all indicates that the source package - will only build architecture-independent packages. If this is - the case, all must be used rather than any; - any implies that the source package will build at - least one architecture-dependent package. + will only build architecture-independent packages. +
+ ++ Specifying any all indicates that the source package + isn't dependent on any particular architecture. The set of + produced binary packages will include at least one + architecture-dependant package and one architecture-independent + package.
@@ -3006,7 +3060,7 @@ Package: libc6
This is a boolean field which may occur only in the control file of a binary package or in a per-package fields - paragraph of a main source control data file. + paragraph of a source package control file.
@@ -3242,7 +3296,8 @@ Package: libc6 In a source or binary control file, the Description field contains a description of the binary package, consisting of two parts, the synopsis or the short description, and the - long description. The field's format is as follows: + long description. It is a multiline field with the following + format:
@@ -3262,6 +3317,7 @@ Package: libc6
Those starting with a single space are part of a paragraph.
Successive lines of this form will be word-wrapped when
displayed. The leading space will usually be stripped off.
+ The line must contain at least one non-whitespace character.
- This field contains the human-readable changes data, describing
+ This multiline field contains the human-readable changes data, describing
the differences between the last version and the current one.
- This field is a list of binary packages. Its syntax and
+ This folded field is a list of binary packages. Its syntax and
meaning varies depending on the control file in which it
appears.
When it appears in a
- These fields contain a list of files with a checksum and size
+ These multiline fields contain a list of files with a checksum and size
for each one. Both Checksums-Sha1
and Checksums-Sha256 have the same syntax and differ
only in the checksum algorithm used: SHA-1
@@ -3668,11 +3725,13 @@ Checksums-Sha256:
- The most recent version of a package uploaded to unstable or
- experimental must include the field DM-Upload-Allowed:
- yes in the source section of its source control file for
- the Debian archive to accept uploads signed with a key in the
- Debian Maintainer keyring. See the General
+ Indicates that Debian Maintainers may upload this package to
+ the Debian archive. The only valid value is yes. If
+ the field DM-Upload-Allowed: yes is present in the
+ source section of the source control file of the most recent
+ version of a package in unstable or experimental, the Debian
+ archive will accept uploads of this package signed with a key
+ in the Debian Maintainer keyring. See the General
Resolution
@@ -3704,7 +3763,7 @@ Checksums-Sha256:
field name after the hyphen will be used in the output
file. Where the letter B is used the field
will appear in binary package control files, where the
- letter S is used in source package control
+ letter S is used in Debian source control
files and where C is used in upload control
(.changes) files.
Relationships may also be restricted to a certain set of - architectures using architecture wildcards. The syntax for + architectures using architecture wildcards in the format + described in . The syntax for declaring such restrictions is the same as declaring restrictions using a certain set of architectures without architecture wildcards. For example: @@ -4895,6 +4956,13 @@ Build-Depends: foo [linux-any], bar [any-i386], baz [!linux-any] installation would hamper the ability of the system to continue with any upgrade that might be in progress.
+ ++ You should not specify a Pre-Depends entry for a + package before this has been discussed on the + debian-devel mailing list and a consensus about + doing that has been reached. See . +
@@ -6110,11 +6178,11 @@ install -m644 debian/shlibs.package debian/package/DEBIAN/
- The location of all installed files and directories must
- comply with the Filesystem Hierarchy Standard (FHS),
- version 2.3, with the exceptions noted below, and except
- where doing so would violate other terms of Debian
- Policy. The following exceptions to the FHS apply:
+ The location of all files and directories must comply with the
+ Filesystem Hierarchy Standard (FHS), version 2.3, with the
+ exceptions noted below, and except where doing so would
+ violate other terms of Debian Policy. The following
+ exceptions to the FHS apply:
+ The additional directory
The following directories in the root filesystem are
@@ -6285,12 +6372,11 @@ install -m644 debian/shlibs.package debian/package/DEBIAN/
For example, the emacsen-common package could
contain something like
+ The directory
+ Packages must not include files or directories
+ under
-
Packages must not modify the configuration file
- If a package wants to install a job that has to be executed
- via cron, it should place a file with the name of the
- package in one or more of the following directories:
+ If a package wants to install a job that has to be executed via
+ cron, it should place a file named as specified
+ in into one or more of the following
+ directories:
All files installed in any of these directories must be @@ -7121,15 +7232,18 @@ Reloading description configuration...done.
If a certain job has to be executed at some other frequency or
- at a specific time, the package should install a file
-
Unlike
+ The file name of a cron job file should normally match the + name of the package from which it comes. +
+ ++ If a package supplies multiple cron job files files in the + same directory, the file names should all start with the name + of the package (possibly modified as described below) followed + by a hyphen (-) and a suitable suffix. +
+ ++ A cron job file name must not include any period or plus + characters (. or +) characters as this will + cause cron to ignore the file. Underscores (_) + should be used instead of . and + + characters. +
+
- The MIME support policy can be found in the mime-policy
- files in the debian-policy package.
- It is also available from the Debian web mirrors at
-
+ Packages containing such programs must register them
+ with
Please refer to the documentation that comes with the @@ -7826,10 +7977,13 @@ fname () {
You may wish to restrict your script to SUSv3 features plus the
above set when possible so that it may use
@@ -7868,11 +8022,23 @@ fname () {
- In general, symbolic links within a top-level directory
- should be relative, and symbolic links pointing from one
- top-level directory into another should be absolute. (A
- top-level directory is a sub-directory of the root
- directory
@@ -8125,22 +8291,6 @@ ln -fs ../sbin/sendmail debian/tmp/usr/bin/runq
- Packages which specify the same file as a
- conffile must be tagged as conflicting
- with each other. (This is an instance of the general rule
- about not sharing files. Note that neither alternatives
- nor diversions are likely to be appropriate in this case;
- in particular,
- The maintainer scripts must not alter a conffile
- of any package, including the one the scripts
- belong to.
-
If two or more packages use the same configuration file
and it is reasonable for both to be installed at the same
@@ -8190,6 +8340,34 @@ ln -fs ../sbin/sendmail debian/tmp/usr/bin/runq
and which manages the shared configuration files. (The
sgml-base package is a good example.)
+ If the configuration file cannot be shared as described above,
+ the packages must be marked as conflicting with each other.
+ Two packages that specify the same file as
+ a conffile must conflict. This is an instance of the
+ general rule about not sharing files. Neither alternatives
+ nor diversions are likely to be appropriate in this case; in
+ particular,
+ When two packages both declare the same conffile, they
+ may see left-over configuration files from each other even
+ though they conflict with each other. If a user removes
+ (without purging) one of the packages and installs the other,
+ the new package will take over the conffile from the
+ old package. If the file was modified by the user, it will be
+ treated the same as any other locally
+ modified conffile during an upgrade.
+
+ The maintainer scripts must not alter a conffile
+ of any package, including the one the scripts
+ belong to.
+
- Programs that require the non-DFSG-compliant OSF/Motif or
- OpenMotif libraries
- Both Motif-linked versions are dependent - upon non-DFSG-compliant software and thus cannot be - uploaded to the main distribution; if the - software is itself DFSG-compliant it may be uploaded to - the contrib distribution. While known existing - versions of Motif permit unlimited redistribution of - binaries linked against the library (whether statically or - dynamically), it is the package maintainer's - responsibility to determine whether this is permitted by - the license of the copy of Motif in their possession. -
-In addition, the copyright file must say where the upstream - sources (if any) were obtained. It should name the original - authors of the package and the Debian maintainer(s) who were - involved with its creation. + sources (if any) were obtained, and should name the original + authors.
@@ -9751,8 +9893,8 @@ END-INFO-DIR-ENTRY
+ A specification for a standard, machine-readable format
+ for
+ Use of this format is optional. +
+