X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=policy.sgml;h=502ea69879d53c4bce0d8c8c3d670cef6f2e1ec6;hb=45cbe7427e1cd495ecd5865f718728319fb69f44;hp=ce2e11639dd268534b453d9536fb0bdf03c8e07d;hpb=52acf33f06448908c324e7ac7ecd9dcdacce7b9b;p=debian%2Fdebian-policy.git diff --git a/policy.sgml b/policy.sgml index ce2e116..502ea69 100644 --- a/policy.sgml +++ b/policy.sgml @@ -15,7 +15,7 @@ This manual describes the policy requirements for the Debian - GNU/Linux distribution. This includes the structure and + distribution. This includes the structure and contents of the Debian archive and several design issues of the operating system, as well as technical requirements that each package must satisfy to be included in the distribution. @@ -50,7 +50,7 @@

A copy of the GNU General Public License is available as - /usr/share/common-licenses/GPL in the Debian GNU/Linux + /usr/share/common-licenses/GPL in the Debian distribution or on the World Wide Web at . You can also @@ -68,7 +68,7 @@ Scope

This manual describes the policy requirements for the Debian - GNU/Linux distribution. This includes the structure and + distribution. This includes the structure and contents of the Debian archive and several design issues of the operating system, as well as technical requirements that each package must satisfy to be included in the @@ -314,7 +314,7 @@ The Debian Archive

- The Debian GNU/Linux system is maintained and distributed as a + The Debian system is maintained and distributed as a collection of packages. Since there are so many of them (currently well over 15000), they are split into sections and given priorities to simplify @@ -348,8 +348,7 @@

- The main archive area forms the Debian GNU/Linux - distribution. + The main archive area forms the Debian distribution.

@@ -796,7 +795,7 @@ Binary packages

- The Debian GNU/Linux distribution is based on the Debian + The Debian distribution is based on the Debian package management system, called dpkg. Thus, all packages in the Debian distribution must be provided in the .deb file format. @@ -907,23 +906,40 @@ - + The maintainer of a package

- Every package must have a Debian maintainer (the - maintainer may be one person or a group of people - reachable from a common email address, such as a mailing - list). The maintainer is responsible for ensuring that - the package is placed in the appropriate distributions. -

- -

- The maintainer must be specified in the - Maintainer control field with their correct name - and a working email address. If one person maintains - several packages, they should try to avoid having - different forms of their name and email address in + Every package must have a maintainer, except for orphaned + packages as described below. The maintainer may be one person + or a group of people reachable from a common email address, such + as a mailing list. The maintainer is responsible for + maintaining the Debian packaging files, evaluating and + responding appropriately to reported bugs, uploading new + versions of the package (either directly or through a sponsor), + ensuring that the package is placed in the appropriate archive + area and included in Debian releases as appropriate for the + stability and utility of the package, and requesting removal of + the package from the Debian distribution if it is no longer + useful or maintainable. +

+ +

+ The maintainer must be specified in the Maintainer + control field with their correct name and a working email + address. The email address given in the Maintainer + control field must accept mail from those role accounts in + Debian used to send automated mails regarding the package. This + includes non-spam mail from the bug-tracking system, all mail + from the Debian archive maintenance software, and other role + accounts or automated processes that are commonly agreed on by + the project. + A sample implementation of such a whitelist written for the + Mailman mailing list management software is used for mailing + lists hosted by alioth.debian.org. + + If one person or team maintains several packages, they should + use the same form of their name and email address in the Maintainer fields of those packages.

@@ -933,15 +949,23 @@

- If the maintainer of a package quits from the Debian - project, "Debian QA Group" - packages@qa.debian.org takes over the - maintainer-ship of the package until someone else - volunteers for that task. These packages are called - orphaned packages. - The detailed procedure for doing this gracefully can - be found in the Debian Developer's Reference, - see . + If the maintainer of the package is a team of people with a + shared email address, the Uploaders control field must + be present and must contain at least one human with their + personal email address. See for the + syntax of that field. +

+ +

+ An orphaned package is one with no current maintainer. Orphaned + packages should have their Maintainer control field set + to Debian QA Group <packages@qa.debian.org>. + These packages are considered maintained by the Debian project + as a whole until someone else volunteers to take over + maintenance. + The detailed procedure for gracefully orphaning a package can + be found in the Debian Developer's Reference + (see ).

@@ -1143,7 +1167,7 @@

The base system is a minimum subset of the Debian - GNU/Linux system that is installed before everything else + system that is installed before everything else on a new system. Only very few packages are allowed to form part of the base system, in order to keep the required disk usage very small. @@ -1636,11 +1660,20 @@ The maintainer name and email address used in the changelog should be the details of the person uploading this version. They are not necessarily those of the - usual package maintainer. The information here will be - copied to the Changed-By field in the - .changes file (see ), - and then later used to send an acknowledgement when the - upload has been installed. + usual package maintainer. + If the developer uploading the package is not one of the usual + maintainers of the package (as listed in + the Maintainer + or Uploaders control + fields of the package), the first line of the changelog is + conventionally used to explain why a non-maintainer is + uploading the package. The Debian Developer's Reference + (see ) documents the conventions + used. + The information here will be copied to the Changed-By + field in the .changes file + (see ), and then later used to send an + acknowledgement when the upload has been installed.

@@ -1792,23 +1825,26 @@ identical behavior.

+

+ The following targets are required and must be implemented + by debian/rules: clean, binary, + binary-arch, binary-indep, and build. + These are the targets called by dpkg-buildpackage. +

+

Since an interactive debian/rules script makes it - impossible to auto-compile that package and also makes it - hard for other people to reproduce the same binary - package, all required targets must be - non-interactive. At a minimum, required targets are the - ones called by dpkg-buildpackage, namely, - clean, binary, binary-arch, - binary-indep, and build. It also follows - that any target that these targets depend on must also be + impossible to auto-compile that package and also makes it hard + for other people to reproduce the same binary package, all + required targets must be non-interactive. It also follows that + any target that these targets depend on must also be non-interactive.

- The targets are as follows (required unless stated otherwise): + The targets are as follows: - build + build (required)

The build target should perform all the @@ -1919,8 +1955,8 @@

- binary, binary-arch, - binary-indep + binary (required), binary-arch + (required), binary-indep (required)

@@ -1968,7 +2004,7 @@

- clean + clean (required)

This must undo any effects that the build @@ -2050,14 +2086,21 @@

The architectures we build on and build for are determined - by make variables using the utility - dpkg-architecture. - You can determine the - Debian architecture and the GNU style architecture - specification string for the build machine (the machine type - we are building on) as well as for the host machine (the - machine type we are building for). Here is a list of - supported make variables: + by make variables using the + utility dpkg-architecture. + You can determine the Debian architecture and the GNU style + architecture specification string for the build architecture as + well as for the host architecture. The build architecture is + the architecture on which debian/rules is run and + the package build is performed. The host architecture is the + architecture on which the resulting package will be installed + and run. These are normally the same, but may be different in + the case of cross-compilation (building packages for one + architecture on machines of a different architecture). +

+ +

+ Here is a list of supported make variables: DEB_*_ARCH (the Debian architecture) @@ -2081,8 +2124,8 @@ DEB_*_GNU_TYPE) where * is either BUILD for specification of - the build machine or HOST for specification of the - host machine. + the build architecture or HOST for specification of the + host architecture.

@@ -2492,6 +2535,7 @@ Package: libc6 Source (mandatory) Maintainer (mandatory) Uploaders + DM-Upload-Allowed Section (recommended) Priority (recommended) Build-Depends et al @@ -2597,6 +2641,7 @@ Package: libc6 Version (mandatory) Maintainer (mandatory) Uploaders + DM-Upload-Allowed Homepage Standards-Version (recommended) Build-Depends et al @@ -2718,20 +2763,32 @@ Package: libc6 putting the name in round brackets and moving it to the end, and bringing the email address forward).

+ +

+ See for additional requirements and + information about package maintainers. +

Uploaders

- List of the names and email addresses of co-maintainers of - the package, if any. If the package has other maintainers - beside the one named in the - Maintainer field, their names - and email addresses should be listed here. The format of each - entry is the same as that of the Maintainer field, and - multiple entries must be comma separated. This is an optional - field. + List of the names and email addresses of co-maintainers of the + package, if any. If the package has other maintainers besides + the one named in the Maintainer + field, their names and email addresses should be listed + here. The format of each entry is the same as that of the + Maintainer field, and multiple entries must be comma + separated. +

+ +

+ This is normally an optional field, but if + the Maintainer control field names a group of people + and a shared email address, the Uploaders field must + be present and must contain at least one human with their + personal email address.

@@ -2743,6 +2800,19 @@ Package: libc6

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

+
+ Changed-By @@ -5310,12 +5380,9 @@ Replaces: mail-transport-agent library directories of the dynamic linker (which are currently /usr/lib and /lib) or a directory that is listed in /etc/ld.so.conf - These are currently - - /usr/local/lib - /usr/lib/libc5-compat - /lib/libc5-compat - + These are currently /usr/local/lib plus + directories under /lib and /usr/lib + matching the multiarch triplet for the system architecture. must use ldconfig to update the shared library system. @@ -5495,6 +5562,14 @@ Replaces: mail-transport-agent (ld) when compiling packages, as it will only look for libgdbm.so when compiling dynamically.

+ +

+ If the package provides Ada Library Information + (*.ali) files for use with GNAT, these files must be + installed read-only (mode 0444) so that GNAT will not attempt to + recompile them. This overrides the normal file mode requirements + given in . +

@@ -5976,9 +6051,21 @@ install -m644 debian/shlibs.package debian/package/DEBIAN/ to get access to kernel information.

+ +

+ On GNU/Hurd systems, the following additional + directories are allowed in the root + filesystem: /hurd + and /servers. + These directories are used to store translators and as + a set of standard names for mount points, + respectively. + +

+
-

+

The version of this document referred here can be found in the debian-policy package or on The XSI extension to trap allowing numeric signals must be supported. In addition to the signal numbers listed in the extension, which are the same as for - kill above, 13 (SIGPIPE) must be allowed. + kill above, 13 (SIGPIPE) must be allowed. If a shell script requires non-SUSv3 features from the shell @@ -8014,11 +8101,13 @@ ln -fs ../sbin/sendmail debian/tmp/usr/bin/runq

- Log files must be rotated occasionally so that they don't - grow indefinitely; the best way to do this is to drop a log - rotation configuration file into the directory - /etc/logrotate.d and use the facilities provided by - logrotate. + Log files must be rotated occasionally so that they don't grow + indefinitely. The best way to do this is to install a log + rotation configuration file in the + directory /etc/logrotate.d, normally + named /etc/logrotate.d/package, and use + the facilities provided by logrotate. +

The traditional approach to log files has been to set up ad hoc log rotation schemes using simple shell @@ -8043,17 +8132,20 @@ ln -fs ../sbin/sendmail debian/tmp/usr/bin/runq section="8">): /var/log/foo/*.log { -rotate 12 -weekly -compress -postrotate -/etc/init.d/foo force-reload -endscript + rotate 12 + weekly + compress + missingok + postrotate + start-stop-daemon -K -p /var/run/foo.pid -s HUP -x /usr/sbin/foo -q + endscript } This rotates all files under /var/log/foo, saves 12 - compressed generations, and forces the daemon to reload its - configuration information after the log rotation. + compressed generations, and tells the daemon to reopen its log + files after the log rotation. It skips this log rotation + (via missingok) if no such log file is present, which + avoids errors if the package is removed but not purged.

@@ -8065,7 +8157,7 @@ endscript

- + Permissions and owners

@@ -8106,6 +8198,12 @@ endscript

+

+ Control information files should be owned by root:root + and either mode 644 (for most files) or mode 755 (for + executables such as maintainer + scripts). +

Setuid and setgid executables should be mode 4755 or 2755 @@ -9487,8 +9585,7 @@ END-INFO-DIR-ENTRY

Packages in the contrib or non-free archive areas should state in the copyright file that the package is not - part of the Debian GNU/Linux distribution and briefly explain - why. + part of the Debian distribution and briefly explain why.

@@ -9659,9 +9756,8 @@ END-INFO-DIR-ENTRY dpkg is a suite of programs for creating binary package files and installing and removing them on Unix systems. - dpkg is targeted primarily at Debian - GNU/Linux, but may work on or be ported to other - systems. + dpkg is targeted primarily at Debian, but may + work on or be ported to other systems.