From: Russ Allbery Date: Mon, 26 Dec 2011 18:11:34 +0000 (-0800) Subject: Merge branch 'master' into bug23712-rra X-Git-Url: https://git.donarmstrong.com/?a=commitdiff_plain;h=6bdc982dafc8714fd06349b68e05c25b0cd38001;hp=-c;p=debian%2Fdebian-policy.git Merge branch 'master' into bug23712-rra --- 6bdc982dafc8714fd06349b68e05c25b0cd38001 diff --combined policy.sgml index 1b5b217,55a33ba..9ad47d5 --- a/policy.sgml +++ b/policy.sgml @@@ -488,9 -488,9 +488,9 @@@ In addition, the packages in main - must not require a package outside of main - for compilation or execution (thus, the package must - not declare a "Depends", "Recommends", or + must not require or recommend a package outside + of main for compilation or execution (thus, the + package must not declare a "Depends", "Recommends", or "Build-Depends" relationship on a non-main package), @@@ -709,12 -709,13 +709,13 @@@ list of sections. At present, they are: admin, cli-mono, comm, database, devel, debug, doc, editors, - electronics, embedded, fonts, - games, gnome, graphics, gnu-r, - gnustep, hamradio, haskell, - httpd, interpreters, java, kde, - kernel, libs, libdevel, lisp, - localization, mail, math, misc, + 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, @@@ -2543,7 -2544,7 +2544,7 @@@ Package: libc lines. The first line of the value, the part on the same line as the field name, often has special significance or may have to be empty. Other lines are added following the same syntax as the - continuation lines the folded fields. Whitespace, including newlines, + continuation lines of the folded fields. Whitespace, including newlines, is significant in the values of multiline fields. @@@ -2717,7 -2718,7 +2718,7 @@@

- The source package control file is generated by + The Debian source control file is generated by dpkg-source when it builds the source archive, from other files in the source package, described above. When unpacking, it is checked against @@@ -2974,34 -2975,42 +2975,42 @@@

- In the source package control file .dsc, this - field may contain either the architecture - wildcard any or a list of architectures and - architecture wildcards separated by spaces. If a list is - given, it may include (or consist solely of) the special + In the Debian source control file .dsc, this + field contains a list of architectures and architecture + wildcards separated by spaces. When the list contains the + architecture wildcard any, the only other value + allowed in the list is all. +

+ +

+ The list may include (or consist solely of) the special value all. In other words, in .dsc files unlike the debian/control, all may occur in combination with specific architectures. - The Architecture field in the source package control + The Architecture field in the Debian source control file .dsc is generally constructed from the Architecture fields in the debian/control in the source package.

- 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.

@@@ -3294,6 -3303,7 +3303,7 @@@ 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. @@@ -3304,7 -3314,8 +3314,8 @@@ will be allowed to trail off to the right. None, one or two initial spaces may be deleted, but the number of spaces deleted from each line will be the same (so that you can have - indenting work correctly, for example). + indenting work correctly, for example). The line must + contain at least one non-whitespace character. @@@ -3719,7 -3730,7 +3730,7 @@@ Checksums-Sha256 Additional user-defined fields may be added to the source package control file. Such fields will be ignored, and not copied to (for example) binary or - source package control files or upload control files. + Debian source control files or upload control files.

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

@@@ -3747,7 -3758,7 +3758,7 @@@ XBS-Comment: I stand between the candle and the star. - then the binary and source package control files will contain the + then the binary and Debian source control files will contain the field Comment: I stand between the candle and the star. @@@ -4619,6 -4630,7 +4630,7 @@@ Depends: libc6 (>= 2.2.1), exim | mail- 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 + 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 prepended with exclamation marks while others aren't.) @@@ -4686,7 -4698,8 +4698,8 @@@ Build-Depends: foo [!i386] | bar [!amd6

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: @@@ -6324,12 -6337,11 +6337,11 @@@ install -m644 debian/shlibs.packag For example, the emacsen-common package could contain something like - if [ ! -e /usr/local/share/emacs ] - then - if mkdir /usr/local/share/emacs 2>/dev/null - then - chown root:staff /usr/local/share/emacs - chmod 2775 /usr/local/share/emacs + if [ ! -e /usr/local/share/emacs ]; then + if mkdir /usr/local/share/emacs 2>/dev/null; then + if chown root:staff /usr/local/share/emacs; then + chmod 2775 /usr/local/share/emacs || true + fi fi fi @@@ -7128,18 -7140,20 +7140,20 @@@ Reloading description config

- + Cron jobs

Packages must not modify the configuration file /etc/crontab, and they must not modify the files in - /var/spool/cron/crontabs.

+ /var/spool/cron/crontabs. +

- 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: /etc/cron.hourly /etc/cron.daily @@@ -7149,7 -7163,8 +7163,8 @@@ As these directory names imply, the files within them are executed on an hourly, daily, weekly, or monthly basis, respectively. The exact times are listed in - /etc/crontab.

+ /etc/crontab. +

All files installed in any of these directories must be @@@ -7160,15 -7175,18 +7175,18 @@@

If a certain job has to be executed at some other frequency or - at a specific time, the package should install a file - /etc/cron.d/package. This file uses the - same syntax as /etc/crontab and is processed by - cron automatically. The file must also be + at a specific time, the package should install a file in + /etc/cron.d with a name as specified + in . This file uses the same syntax + as /etc/crontab and is processed + by cron automatically. The file must also be treated as a configuration file. (Note that entries in the /etc/cron.d directory are not handled by anacron. Thus, you should only use this directory for jobs which may be skipped if the system is not - running.)

+ running.) +

+

Unlike crontab files described in the IEEE Std 1003.1-2008 (POSIX.1) available from @@@ -7211,6 -7229,28 +7229,28 @@@ execute scripts in /etc/cron.{hourly,daily,weekly,monthly}.

+ + +

+ 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. +

+
@@@ -7486,9 -7526,8 +7526,8 @@@ exec /usr/lib/foo/foo "$@ package that provides online documentation (other than just manual pages) to register these documents with doc-base by installing a - doc-base control file via the - doc-base control file in + /usr/share/doc-base/.

Please refer to the documentation that comes with the @@@ -7907,11 -7946,23 +7946,23 @@@ fname () Symbolic links

- 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 /.) + In general, symbolic links within a top-level directory should + be relative, and symbolic links pointing from one top-level + directory to or into another should be absolute. (A top-level + directory is a sub-directory of the root + directory /.) For example, a symbolic link + from /usr/lib/foo to /usr/share/bar + should be relative (../share/bar), but a symbolic + link from /var/run to /run should be + absolute. + This is necessary to allow top-level directories to be + symlinks. If linking /var/run + to /run were done with the relative symbolic + link ../run, but /var were a + symbolic link to /srv/disk1, the symbolic link + would point to /srv/run rather than the intended + target. +

@@@ -8164,6 -8215,22 +8215,6 @@@ ln -fs ../sbin/sendmail debian/tmp/usr/ Sharing configuration files -

- 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, dpkg does not handle diverted - conffiles well.) -

- -

- 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 @@@ -8213,34 -8280,6 +8264,34 @@@ 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, dpkg does not handle diverted + conffiles well. +

+ +

+ 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. +

@@@ -9382,41 -9421,6 +9433,6 @@@ name ["syshostname"] policy (such as for ).

- - - The OSF/Motif and OpenMotif libraries - -

- Programs that require the non-DFSG-compliant OSF/Motif or - OpenMotif libraries - OSF/Motif and OpenMotif are collectively referred to as - "Motif" in this policy document. - - should be compiled against and tested with LessTif (a free - re-implementation of Motif) instead. If the maintainer - judges that the program or programs do not work - sufficiently well with LessTif to be distributed and - supported, but do so when compiled against Motif, then two - versions of the package should be created; one linked - statically against Motif and with -smotif - appended to the package name, and one linked dynamically - against Motif and with -dmotif appended to the - package name. -

- -

- 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. -

-
@@@ -9781,9 -9785,8 +9797,8 @@@ END-INFO-DIR-ENTR

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.

@@@ -9802,8 -9805,8 +9817,8 @@@ /usr/share/doc/package may be a symbolic link to another directory in /usr/share/doc only if the two packages both come from the same source and the - first package Depends on the second. These rules are - important because copyrights must be extractable by + first package Depends on the second. These rules are important + because copyright files must be extractable by mechanical means.

@@@ -11319,4 -11322,4 +11334,4 @@@ - +