X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=policy.sgml;h=8c654d1b3b85a8da40369414278f3e359a06c6f0;hb=1c606d22249cf37699ea9d025a6a1fca4c5dc8d8;hp=23c19133cec07ace97af3844b82a8ca4dd22c5e5;hpb=bec143010dd02798dbb7b6fa26d754a476cf0166;p=debian%2Fdebian-policy.git diff --git a/policy.sgml b/policy.sgml index 23c1913..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).

@@ -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: @@ -6425,7 +6582,7 @@ rmdir /usr/local/share/emacs 2>/dev/null || true

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

@@ -7960,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.

@@ -9913,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. +

+
@@ -10443,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