X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=policy.sgml;h=8c654d1b3b85a8da40369414278f3e359a06c6f0;hb=1c606d22249cf37699ea9d025a6a1fca4c5dc8d8;hp=2d72b29f5d623cf388650653cb65bc885946b0b5;hpb=f8268e8c682f99a73c390c28c4fef5e0136582a8;p=debian%2Fdebian-policy.git diff --git a/policy.sgml b/policy.sgml index 2d72b29..8c654d1 100644 --- a/policy.sgml +++ b/policy.sgml @@ -279,6 +279,14 @@ .

+ +

+ Finally, a specification for + machine-readable copyright files is maintained as part of + the debian-policy package using the same + procedure as the other policy documents. Use of this format is + optional. +

@@ -706,21 +714,62 @@

The Debian archive maintainers provide the authoritative list of sections. At present, they are: - admin, cli-mono, comm, database, - devel, debug, doc, editors, - education, electronics, embedded, - fonts, games, gnome, graphics, - gnu-r, gnustep, hamradio, haskell, - httpd, interpreters, introspection, - java, kde, kernel, libs, - libdevel, lisp, localization, - mail, math, metapackages, misc, - net, news, ocaml, oldlibs, - otherosfs, perl, php, python, - ruby, science, shells, sound, - tex, text, utils, vcs, - video, web, x11, xfce, - zope. The additional section debian-installer +admin, +cli-mono, +comm, +database, +debug, +devel, +doc, +editors, +education, +electronics, +embedded, +fonts, +games, +gnome, +gnu-r, +gnustep, +graphics, +hamradio, +haskell, +httpd, +interpreters, +introspection, +java, +kde, +kernel, +libdevel, +libs, +lisp, +localization, +mail, +math, +metapackages, +misc, +net, +news, +ocaml, +oldlibs, +otherosfs, +perl, +php, +python, +ruby, +science, +shells, +sound, +tasks, +tex, +text, +utils, +vcs, +video, +web, +x11, +xfce, +zope. + The additional section debian-installer contains special packages used by the installer and is not used for normal Debian packages.

@@ -1943,7 +1992,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 +2005,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. The intent of this split is so that binary-only builds need not install the dependencies required for the build-indep target. However, this is not @@ -2491,18 +2544,21 @@ endif

- 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 printable ASCII characters (i.e., - characters that have values between 33 and 126, inclusive) - except colon and must not with a begin with #. 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: + 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: Package: libc6 @@ -2616,6 +2672,7 @@ Package: libc6 Build-Depends et al Standards-Version (recommended) Homepage + Vcs-Browser, Vcs-Git, et al.

@@ -2631,6 +2688,7 @@ Package: libc6 Depends et al Description (mandatory) Homepage + Built-Using

@@ -2686,6 +2744,7 @@ Package: libc6 Maintainer (mandatory) Description (mandatory) Homepage + Built-Using

@@ -2696,7 +2755,7 @@ Package: libc6

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 . Format (mandatory) @@ -2708,6 +2767,7 @@ Package: libc6 Uploaders DM-Upload-Allowed Homepage + Vcs-Browser, Vcs-Git, et al. Standards-Version (recommended) Build-Depends et al Checksums-Sha1 @@ -3710,16 +3770,65 @@ Checksums-Sha256: DM-Upload-Allowed

- 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 for more details.

+ + + Version Control System (VCS) fields + +

+ Debian source packages are increasingly developed using VCSs. The + purpose of the following fields is to indicate a publicly accessible + repository where the Debian source package is developed. + + + Vcs-Browser + +

+ URL of a web interface for browsing the repository. +

+ + + + Vcs-Arch, Vcs-Bzr (Bazaar), Vcs-Cvs, + Vcs-Darcs, Vcs-Git, Vcs-Hg + (Mercurial), Vcs-Mtn (Monotone), Vcs-Svn + (Subversion) + + +

+ The field name identifies the VCS. The field's value uses the + version control system's conventional syntax for describing + repository locations and should be sufficient to locate the + repository used for packaging. Ideally, it also locates the + branch used for development of new versions of the Debian + package. +

+

+ In the case of Git, the value consists of a URL, optionally + followed by the word -b and the name of a branch in + the indicated repository, following the syntax of the + git clone command. If no branch is specified, the + packaging should be on the default branch. +

+

+ More than one different VCS may be specified for the same + package. +

+
+ +

+
@@ -4590,13 +4699,13 @@ fi

The relations allowed are <<, <=, - =, >= and >> for - strictly earlier, earlier or equal, exactly equal, later or - equal and strictly later, respectively. The deprecated - forms < and > were used to mean - earlier/later or equal, rather than strictly earlier/later, - so they should not appear in new packages (though - dpkg still supports them). + =, >= and >> for strictly + earlier, earlier or equal, exactly equal, later or equal and + strictly later, respectively. The deprecated + forms < and > were confusingly used to + mean earlier/later or equal, rather than strictly earlier/later, + and must not appear in new packages (though dpkg + still supports them with a warning).

@@ -4628,7 +4737,7 @@ Depends: libc6 (>= 2.2.1), exim | mail-transport-agent Relationships may be restricted to a certain set of architectures. This is indicated in brackets after each individual package name and the optional version specification. - The brackets enclose a list of Debian architecture names + The brackets enclose a non-empty list of Debian architecture names in the format described in , separated by whitespace. Exclamation marks may be prepended to each of the names. (It is not permitted for some names to be @@ -4660,7 +4769,8 @@ Build-Depends: kernel-headers-2.2.10 [!hurd-i386],

- For binary relationship fields, the architecture restriction + For binary relationship fields and the Built-Using + field, the architecture restriction syntax is only supported in the source package control file debian/control. When the corresponding binary package control file is generated, the relationship will either @@ -5384,6 +5494,53 @@ Replaces: mail-transport-agent

+ + + Additional source packages used to build the binary + - Built-Using + + +

+ Some binary packages incorporate parts of other packages when built + but do not have to depend on those packages. Examples include + linking with static libraries or incorporating source code from + another package during the build. In this case, the source packages + of those other packages are a required part of the complete source + (the binary package is not reproducible without them). +

+ +

+ A Built-Using field must list the corresponding source + package for any such binary package incorporated during the build + + Build-Depends in the source package is not adequate since + it (rightfully) does not document the exact version used in the + build. + , + including an "exactly equal" ("=") version relation on the version + that was used to build that binary package + The archive software might reject packages that refer to + non-existent sources. + . +

+ +

+ A package using the source code from the gcc-4.6-source + binary package built from the gcc-4.6 source package would + have this field in its control file: + +Built-Using: gcc-4.6 (= 4.6.0-11) + +

+ +

+ A package including binaries from grub2 and loadlin would + have this field in its control file: + +Built-Using: grub2 (= 1.99-9), loadlin (= 1.6e-1) + +

+
@@ -6161,11 +6318,11 @@ install -m644 debian/shlibs.package debian/package/DEBIAN/ File System Structure

- 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: @@ -6246,6 +6403,25 @@ install -m644 debian/shlibs.package debian/package/DEBIAN/ symlinked there, is relaxed to a recommendation.

+ +

+ The additional directory /run in the root + file system is allowed. /run + replaces /var/run, and the + subdirectory /run/lock + replaces /var/lock, with + the /var directories replaced by symlinks + for backwards compatibility. /run + and /run/lock must follow all of the + requirements in the FHS for /var/run + and /var/lock, respectively, such as file + naming conventions, file format requirements, or the + requirement that files be cleared during the boot + process. Files and directories residing + in /run should be stored on a temporary + file system. +

+

The following directories in the root filesystem are @@ -6388,6 +6564,29 @@ rmdir /usr/local/share/emacs 2>/dev/null || true though the spool may still be physically located there.

+ + + /run and /run/lock + +

+ The directory /run is cleared at boot, normally + by being a mount point for a temporary file system. Packages + therefore must not assume that any files or directories + under /run other than /run/lock + exist unless the package has arranged to create those files or + directories since the last reboot. Normally, this is done by + the package via an init script. See + for more information. +

+ +

+ Packages must not include files or directories + under /run, or under the + older /var/run and /var/lock paths. + The latter paths will normally be symlinks or other + redirections to /run for backwards compatibility. +

+
@@ -6762,15 +6961,14 @@ test -f program-executed-later-in-script || exit 0

- /var/run and /var/lock may be mounted - as temporary filesystems - For example, using the RAMRUN and RAMLOCK - options in /etc/default/rcS. - , so the init.d scripts must handle this - correctly. This will typically amount to creating any required - subdirectories dynamically when the init.d script - is run, rather than including them in the package and relying on - dpkg to create them. + Files and directories under /run, including ones + referred to via the compatibility paths /var/run + and /var/lock, are normally stored on a temporary + filesystem and are normally not persistent across a reboot. + The init.d scripts must handle this correctly. + This will typically mean creating any required subdirectories + dynamically when the init.d script is run. + See for more information.

@@ -7919,10 +8117,13 @@ fname () {

You may wish to restrict your script to SUSv3 features plus the above set when possible so that it may use /bin/sh - as its interpreter. If your script works with dash - (originally called ash), it probably complies with - the above requirements, but if you are in doubt, use - /bin/bash. + as its interpreter. Checking your script + with checkbashisms from + the devscripts package or running your script + with an alternate shell such as posh may help + uncover violations of the above requirements. If in doubt + whether a script complies with these requirements, + use /bin/bash.

@@ -9872,7 +10073,31 @@ END-INFO-DIR-ENTRY You should not use the copyright file as a general README file. If your package has such a file it should be installed in /usr/share/doc/package/README or - README.Debian or some other appropriate place.

+ README.Debian or some other appropriate place. +

+ +

+ All copyright files must be encoded in UTF-8. +

+ + + Machine-readable copyright information + +

+ A specification for a standard, machine-readable format + for debian/copyright files is maintained as part + of the debian-policy package. This + document may be found in the copyright-format + files in the debian-policy package. It is + also available from the Debian web mirrors at + . +

+ +

+ Use of this format is optional. +

+
@@ -10402,10 +10627,10 @@ END-INFO-DIR-ENTRY the PATH if necessary, and pass its second and subsequent arguments to the command it calls. If no root-command is supplied - then dpkg-buildpackage will take no - special action to gain root privilege, so that for - most packages it will have to be invoked as root to - start with.

+ then dpkg-buildpackage will use + the fakeroot command, which is sufficient + to build most packages without actually requiring root + privileges.

-b, -B