From 610342f2626df48746a20f94a1063b4ded63550c Mon Sep 17 00:00:00 2001 From: Manoj Srivastava Date: Thu, 16 Jun 2005 05:26:53 +0000 Subject: [PATCH] * Clarification of package priority issues vis-a-vis the X Windows Author: jdg Date: 2001/05/24 09:48:12 * Clarification of package priority issues vis-a-vis the X Windows system closes: Bug#91249 * Enhanced x-terminal-emulator policy closes: Bug#91252 * Minor changes to X app-defaults policy closes: Bug#91259 * Clarification of X policy in respect to FHS closes: Bug#91260 * OpenMotif has the same rules as OSF/Motif closes: Bug#91261 * The X Font policy rewrite closes: Bug#91257 * The "man" program is no longer guaranteed to read header information to find alternative manpage names closes: Bug#94995 * Correction to meaning of Standards-Version closes: Bug#97072 * Split section 12.8 (X Window System) into subsections for readability * Finish cleaning up chapter 12 git-archimport-id: srivasta@debian.org--etch/debian-policy--devel--3.0--patch-125 --- debian/changelog | 11 + policy.sgml | 1176 ++++++++++++++++++++++---------------- upgrading-checklist.html | 38 +- 3 files changed, 723 insertions(+), 502 deletions(-) diff --git a/debian/changelog b/debian/changelog index 9dc9305..a9a33c8 100644 --- a/debian/changelog +++ b/debian/changelog @@ -19,6 +19,17 @@ debian-policy (3.5.4.1) unstable; urgency=low * Add a dpkg-statoverride description section closes: Bug#89473 * Fix the ldconfig usage description (remove "only if") closes: Bug#89674 + * Clarification of package priority issues vis-a-vis the X Windows + system closes: Bug#91249 + * Enhanced x-terminal-emulator policy closes: Bug#91252 + * Minor changes to X app-defaults policy closes: Bug#91259 + * Clarification of X policy in respect to FHS closes: Bug#91260 + * OpenMotif has the same rules as OSF/Motif closes: Bug#91261 + * The X Font policy rewrite closes: Bug#91257 + * The "man" program is no longer guaranteed to read header information + to find alternative manpage names closes: Bug#94995 + * Correction to meaning of Standards-Version closes: Bug#97072 + * Split section 12.8 (X Window System) into subsections for readability -- diff --git a/policy.sgml b/policy.sgml index 1ca7586..33ad04f 100644 --- a/policy.sgml +++ b/policy.sgml @@ -115,8 +115,7 @@ packages, nor is it exhaustive where it comes to describing the behavior of the packaging system. Instead, this manual attempts to define the interface to the package management - system that the developers have to be conversant with. - + system that the developers have to be conversant with.

Informally, the criteria used for inclusion is that the material meet one of the following requirements: @@ -181,7 +180,7 @@ normal or important (for should or recommended directive violations) and wishlist (for optional - items). + items).

Compare RFC 2119. Note, however, that these words are used in a different way in this document.

@@ -538,8 +537,7 @@

must meet all policy requirements presented in this - manual that it is possible for them to meet. - + manual that it is possible for them to meet.

It is possible that there are policy requirements which the package is unable to @@ -745,8 +743,7 @@ expectation is that an experienced Unix person who found it missing would say `What on earth is going on, where is foo?', it must be an - important package. - + important package.

This is an important criterion because we are trying to produce, amongst other things, a free @@ -862,8 +859,7 @@ packages@qa.debian.org takes over the maintainership of the package until someone else volunteers for that task. These packages are called - orphaned packages. - + orphaned packages.

The detailed procedure for doing this gracefully can be found in the Debian Developer's Reference, either @@ -1085,8 +1081,7 @@ You may also find this file on the FTP site ftp.debian.org in /debian/doc/package-developer/debconf_specification.txt.gz - or on your local mirror. - + or on your local mirror.

2.5% of Debian packages [see essential packages. - + essential packages.

Debconf or another tool that implements the Debian Configuration management @@ -1191,9 +1185,10 @@

In the source package's Standards-Version control - field, you must specify the most recent version number of - this policy document with which your package complies. - The current version number is &version;. + field, you should specify the most recent version number + of this policy document with which your package complied + when it was last updated. The current version number is + &version;.

@@ -1219,8 +1214,7 @@ Thus only the first three components of the policy version are significant in the Standards-Version control field, and so either these three components or the all - four components may be specified. - + four components may be specified.

In the past, people specified the full version number in the Standards-Version field, for example `2.3.0.0'. @@ -1240,8 +1234,7 @@ available and update your package, if necessary. When your package complies with the new standards you should update the Standards-Version source package field and - release it. - + release it.

See the file upgrading-checklist for information about policy which has changed between @@ -1272,8 +1265,7 @@ an informational list can be found in /usr/share/doc/build-essential/list (which is contained in the build-essential - package). - + package).

Rationale: @@ -1311,8 +1303,7 @@ should list only those packages explicitly required by the build. It is not necessary to list packages which are required merely because some other package in the list of - build-time dependencies depends on them. - + build-time dependencies depends on them.

The reason for this is that dependencies change, and you should list all those packages, and only @@ -1391,8 +1382,7 @@

In non-experimental packages you must use a format for debian/changelog which is supported by the most - recent released version of dpkg. - + recent released version of dpkg.

If you wish to use an alternative format, you may do so as long as you include a parser for it in your @@ -1584,8 +1574,7 @@ Package: libc6 this contains the (space-separated) name(s) of the distribution(s) where this version of the package should be installed. Valid distributions are determined by the - archive maintainers. - + archive maintainers. Current distribution names are: stable @@ -1693,7 +1682,6 @@ Package: libc6 epoch -

This is a single (generally small) unsigned integer. It may be omitted, in which case zero is assumed. If it is @@ -1706,12 +1694,10 @@ Package: libc6 of older versions of a package, and also a package's previous version numbering schemes, to be left behind.

-
upstream_version -

This is the main part of the version number. It is usually the version number of the original (`upstream') @@ -1732,8 +1718,7 @@ Package: libc6

The upstream_version may contain only - alphanumerics - + alphanumerics

Alphanumerics are A-Za-z0-9 only.

and the characters . + - @@ -1746,7 +1731,6 @@ Package: libc6 debian_revision -

This part of the version number specifies the version of the Debian package based on the upstream version. It @@ -1878,8 +1862,7 @@ Package: libc6

Maintainers should preserve the modification times of the upstream source files in a package, as far as is reasonably - possible. - + possible.

The rationale is that there is some information conveyed by knowing the age of the file, for example, you could @@ -1970,8 +1953,7 @@ Package: libc6 touch build when the build process is complete. This will ensure that if debian/rules build is run again it will not rebuild the whole - program. - + program.

Another common way to do this is for build to depend on build-stamp and to do @@ -2034,8 +2016,7 @@ Package: libc6

The binary targets must be invoked as - root. - + root.

The fakeroot package often allows one to build a package correctly even without being @@ -2047,7 +2028,6 @@ Package: libc6 clean -

This must undo any effects that the build and binary targets may have had, except @@ -2078,7 +2058,6 @@ Package: libc6 get-orig-source (optional) -

This target fetches the most recent version of the original source package from a canonical archive site @@ -2165,8 +2144,7 @@ Package: libc6

This file records the changes to the Debian-specific parts of the - package - + package

Though there is nothing stopping an author who is also the Debian maintainer from using it for all their @@ -2217,8 +2195,7 @@ Package: libc6 keyword=value settings in the dpkg changelog format (though there is currently only one useful keyword, - urgency). - + urgency).

Usual urgency values are low, medium, high and critical. They have an @@ -2244,8 +2221,7 @@ Package: libc6 System (BTS), they may be automatically closed on the inclusion of this package into the Debian archive by including the string: closes: Bug#nnnnn - in the change details. - + in the change details.

To be precise, the string should match the following Perl regular expression: @@ -2270,8 +2246,7 @@ Package: libc6

- The date should be in RFC822 format - + The date should be in RFC822 format

This is generated by the 822-date program. @@ -2345,8 +2320,7 @@ Package: libc6

It should not exist in a shipped source package, and so it (and any backup files or temporary files such as - files.new - + files.new

files.new is used as a temporary file by dpkg-gencontrol and @@ -2383,8 +2357,7 @@ Package: libc6

- The source package may not contain any hard links - + The source package may not contain any hard links

This is not currently detected when building source packages, but only when extracting @@ -2396,8 +2369,7 @@ Package: libc6 work.

, device special files, sockets or setuid or - setgid files. - + setgid files.

Setgid directories are allowed.

@@ -2449,8 +2421,7 @@ Package: libc6

The description field needs to make sense to anyone, even people who have no idea about any of the things the - package deals with. - + package deals with.

The blurb that comes with a program in its announcements and/or README files is @@ -2561,8 +2532,7 @@ Package: libc6 aborted half way through for some reason, the second call should merely do the things that were left undone the first time, if any, and exit with a success status if everything - is OK. - + is OK.

This is so that if an error occurs, the user interrupts dpkg or some other unforeseen circumstance @@ -2869,8 +2839,7 @@ Package: libc6 system administrator to understand. It can easily lead to `missing' programs if, for example, a package is installed which overwrites a file from another - package, and is then removed again. - + package, and is then removed again.

Part of the problem is due to what is arguably a bug in dpkg. @@ -3276,7 +3245,6 @@ Build-Depends: kernel-headers-2.2.10 [!hurd-i386], Depends -

This declares an absolute dependency. A package will not be configured unless all of the packages listed in @@ -3313,7 +3281,6 @@ Build-Depends: kernel-headers-2.2.10 [!hurd-i386], Suggests -

This is used to declare that one package may be more useful with one or more others. Using this field @@ -3336,7 +3303,6 @@ Build-Depends: kernel-headers-2.2.10 [!hurd-i386], Pre-Depends -

This field is like Depends, except that it also forces dpkg to complete installation @@ -3691,8 +3657,7 @@ Replaces: mail-transport-agent ld-linux.so.*) can find the library between the time that dpkg installs it and the time that ldconfig is run in the postinst - script. - + script.

The package management system requires the library to be placed before the symbolic link pointing to it in the @@ -3729,8 +3694,7 @@ Replaces: mail-transport-agent Any package installing shared libraries in one of the default library directories of the dynamic linker (which are currently /usr/lib and /lib) or a directory that is - listed in /etc/ld.so.conf - + listed in /etc/ld.so.conf

These are currently @@ -3785,8 +3749,7 @@ Replaces: mail-transport-agent any shared libraries or compiled binaries, it must run dpkg-shlibdeps on these to determine the libraries used and hence the dependencies needed by this - package. - + package.

In the past, the shared libraries linked to were determined by calling ldd, but now @@ -3883,8 +3846,7 @@ Replaces: mail-transport-agent control file area of the temporary build directory and given the name shlibs. These files give details of any shared libraries included in the - package. - + package.

An example may help here. Let us say that the source package foo generates two binary @@ -3954,8 +3916,7 @@ dpkg-shlibdeps debian/tmp/usr/bin/* debian/tmp/usr/sbin/* \ debian/tmp/usr/lib/* Otherwise, you will need to explicitly list the compiled - binaries and libraries. - + binaries and libraries.

If you are using debhelper, the dh_shlibdeps program will do this work for @@ -4021,8 +3982,7 @@ dpkg-shlibdeps debian/tmp/usr/bin/* debian/tmp/usr/sbin/* \ exactly match for the library to be recognized by the dynamic linker, and is usually of the form name.so.major-version, in our - example, libz.so.1. - + example, libz.so.1.

This can be determined using the command @@ -4076,8 +4036,7 @@ install -m644 debian/shlibs.package debian/package/DEBIAN/ An alternative way of doing this is to create the shlibs file in the control area directly from debian/rules without using a debian/shlibs - file at all, - + file at all,

This is what dh_makeshlibs in the debhelper suite does. @@ -4221,8 +4180,7 @@ libbar 1 bar1 (>= 1.0-1) removed by the postinst and prerm maintainer scripts and not be included in the .deb archive. These scripts must not fail if - either of these operations fail. - + either of these operations fail.

In the future, it may be possible to tell dpkg not to unpack files matching certain @@ -4568,9 +4526,10 @@ rmdir /usr/local/share/emacs 2>/dev/null || true reloaded without actually stopping and restarting the service,

- force-reload

cause the - configuration to be reloaded if the service supports - this, otherwise restart the service.

+ force-reload +

cause the configuration to be reloaded if the + service supports this, otherwise restart the + service.

The start, stop, restart, and @@ -5406,8 +5365,7 @@ install -s # (or use strip on the files in debian/tmp) the environment variable DEB_BUILD_OPTIONS contains the string nostrip, do not strip the files at installation time. This allows one to generate a package - with debugging information included. - + with debugging information included.

Rationale: Using -g by default causes wasted CPU cycles since the information is stripped away @@ -5480,8 +5438,7 @@ strip --strip-unneeded your-lib needed for relocation processing.) Shared libraries can function perfectly well when stripped, since the symbols for dynamic linking are in a separate part of the ELF object - file. - + file.

You might also want to use the options --remove-section=.comment and @@ -5510,8 +5467,7 @@ strip --strip-unneeded your-lib those files, which contain a lot of useful information about a library (such as library dependency information for static linking). Also, they're essential for programs - using libltdl. - + using libltdl.

Although libtool is fully capable of linking against shared libraries which don't have @@ -5522,7 +5478,7 @@ strip --strip-unneeded your-lib for each library every time it is linked. With the advent of libtool version 1.4 (and to a lesser extent libtool version 1.3), the - .la files will also store information about + .la files also store information about inter-library dependencies which cannot necessarily be derived after the .la file is deleted.

@@ -5561,8 +5517,7 @@ strip --strip-unneeded your-lib libraries you need to create two packages: librarynamesoversion, where soversion is the version number in the - soname of the shared library - + soname of the shared library

The soname is the shared object name: it's the thing that has to match exactly between building an executable @@ -5651,8 +5606,7 @@ strip --strip-unneeded your-lib

The standard shell interpreter /bin/sh can be a symbolic link to any POSIX compatible shell, if echo - -n does not generate a newline. - + -n does not generate a newline.

Debian policy specifies POSIX behavior for /bin/sh, but echo -n has widespread @@ -5693,8 +5647,7 @@ strip --strip-unneeded your-lib scripting languages. See Csh Programming Considered Harmful, one of the comp.unix.* FAQs, which can be found at . - + id="http://language.perl.com/versus/csh.whynot">.

It can also be found on @@ -5889,8 +5842,7 @@ ln -fs ../sbin/sendmail debian/tmp/usr/bin/runq

In order to ensure that local changes are preserved correctly, no package may contain or make hard links to - conffiles. - + conffiles.

Rationale: There are two problems with hard links. The first is that some editors break the link while @@ -6091,8 +6043,7 @@ ln -fs ../sbin/sendmail debian/tmp/usr/bin/runq 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. - + logrotate.

The traditional approach to log files has been to set up ad hoc log rotation schemes using simple shell @@ -6191,8 +6142,7 @@ endscript reconfigure the package to correspond to their local security policy by changing the permissions on a binary: they can do this by using dpkg-statoverride, as - described below. - + described below.

Ordinary files installed by dpkg (as opposed to conffiles and other similar objects) @@ -6334,22 +6284,32 @@ done string in some place, the following format should be used: arch-os - - where arch is one of the following: - i386, alpha, arm, m68k, - powerpc, sparc and os - is one of: linux, gnu. Use of - gnu in this string is reserved for the GNU/Hurd - operating system. + +

+ The following architectures and operating systems are + currently recognised by dpkg-archictecture. + The architecture, arch, is one of + the following: alpha, arm, + hppa, i386, ia64, + m68k, mips, mipsel, + powerpc, s390, sh, + sheb, sparc and sparc64. The + operating system, os, is one of: + linux, gnu, freebsd and + openbsd. Use of gnu in this string is + reserved for the GNU/Hurd operating system. +

+

- Note, that we don't want to use + Note that we don't want to use arch-debian-linux to apply to the rule - `architecture-vendor-os' since this would make our programs - incompatible with other Linux distributions. Also note that - we don't use arch-unknown-linux, since - the unknown does not look very good. + architecture-vendor-os + since this would make our programs incompatible with other + Linux distributions. We also don't use something like + arch-unknown-linux, since the + unknown does not look very good.

@@ -6359,21 +6319,25 @@ done

The configuration files /etc/services, /etc/protocols, and /etc/rpc are managed - by the netbase package and may not be modified - by other packages.

+ by the netbase package and must not be modified + by other packages. +

If a package requires a new entry in one of these files, the maintainer should get in contact with the netbase maintainer, who will add the entries and release a new version of the netbase - package.

+ package. +

The configuration file /etc/inetd.conf must not be modified by the package's scripts except via the update-inetd script or the - DebianNet.pm Perl module.

+ DebianNet.pm Perl module. See their documentation + for details on how to add entries. +

If a package wants to install an example entry into @@ -6381,11 +6345,13 @@ done exactly one hash character (#). Such lines are treated as `commented out by user' by the update-inetd script and are not changed or - activated during a package updates.

- + activated during package updates. +

+ - Using pseudo-ttys and modifying wtmp, utmp and lastlog + Using pseudo-ttys and modifying wtmp, utmp and + lastlog

Some programs need to create pseudo-ttys. This should be done @@ -6397,8 +6363,8 @@ done

The files /var/run/utmp, /var/log/wtmp and /var/log/lastlog must be installed writeable by - group utmp. Programs who need to modify those files must - be installed setgid utmp. + group utmp. Programs which need to modify those + files must be installed setgid utmp.

@@ -6407,74 +6373,80 @@ done

Some programs have the ability to launch an editor or pager - program to edit or display a text document. Since there are + program to edit or display a text document. Since there are lots of different editors and pagers available in the Debian distribution, the system administrator and each user should have the possibility to choose his/her preferred editor and - pager.

+ pager. +

In addition, every program should choose a good default editor/pager if none is selected by the user or system - administrator.

+ administrator. +

Thus, every program that launches an editor or pager must - use the EDITOR or PAGER environment variables to determine - the editor/pager the user wants to get started. If these + use the EDITOR or PAGER environment variable to determine + the editor or pager the user wishes to use. If these variables are not set, the programs /usr/bin/editor - and /usr/bin/pager should be used, respectively.

+ and /usr/bin/pager should be used, respectively. +

- These two files are managed through `alternatives.' That is, - every package providing an editor or pager must call the + These two files are managed through the dpkg + `alternatives' mechanism. Thus every package providing an + editor or pager must call the update-alternatives script to register these - programs.

+ programs. +

- If it is very hard to adapt a program to make us of the - EDITOR and PAGER variables, that program may be configured - to use /usr/bin/sensible-editor and - /usr/bin/sensible-pager as editor or pager program, - respectively. These are two scripts provided in the Debian - base system that check the EDITOR and PAGER variables and - launch the appropriate program or fall back to - /usr/bin/editor and /usr/bin/pager, - automatically.

+ If it is very hard to adapt a program to make use of the + EDITOR or PAGER variables, that program may be configured to + use /usr/bin/sensible-editor and + /usr/bin/sensible-pager as the editor or pager + program respectively. These are two scripts provided in the + Debian base system that check the EDITOR and PAGER variables + and launch the appropriate program, and fall back to + /usr/bin/editor and /usr/bin/pager if the + variable is not set. +

A program may also use the VISUAL environment variable to - determine the user's choice of editor. If it exists, it - should take precedence over EDITOR. This is in fact what - /usr/bin/sensible-editor does.

+ determine the user's choice of editor. If it exists, it + should take precedence over EDITOR. This is in fact what + /usr/bin/sensible-editor does. +

It is not required for a package to depend on - `editor' and `pager', nor is it required for a package to - provide such virtual packages. - + editor and pager, nor is it required for a + package to provide such virtual packages.

- The Debian base system already provides an editor and - a pager program, + The Debian base system already provides an editor and a + pager program,

- - Web servers and applications

This section describes the locations and URLs that should - be used by all web servers and web application in the Debian - system.

+ be used by all web servers and web applications in the + Debian system. +

-

Cgi-bin executable files are installed in the +

+ Cgi-bin executable files are installed in the directory /usr/lib/cgi-bin/cgi-bin-name @@ -6486,14 +6458,18 @@ http://localhost/cgi-bin/cgi-bin-name

-

Access to html documents

+

Access to HTML documents

- Html documents for a package are stored in + HTML documents for a package are stored in /usr/share/doc/package but should be accessed via symlinks as - /usr/doc/package for - backward compatibility, see + /usr/doc/package +

+ for backward compatibility; see +

+
and can be referred to as http://localhost/doc/package/filename @@ -6508,14 +6484,15 @@ http://localhost/doc/package/filename the Web Document Root. Instead they should use the /usr/share/doc/package directory for documents and register the Web Application via the - menu package. If access to the web-root is unavoidable - then use + menu package. If access to the web document root is + unavoidable then use /var/www - as the Document Root. This might be just a - symbolic link to the location where the sysadmin has - put the real document root.

+ as the Document Root. This might be just a symbolic + link to the location where the system administrator + has put the real document root. +

@@ -6525,50 +6502,56 @@ http://localhost/doc/package/filename Mail transport, delivery and user agents

- Debian packages which process electronic mail, whether - mail-user-agents (MUAs) or mail-transport-agents (MTAs), - must make sure that they are compatible with the - configuration decisions below. Failure to do this may - result in lost mail, broken From: lines, and other - serious brain damage!

+ Debian packages which process electronic mail, whether mail + user agents (MUAs) or mail transport agents (MTAs), must + ensure that they are compatible with the configuration + decisions below. Failure to do this may result in lost + mail, broken From: lines, and other serious brain + damage! +

- The mail spool is /var/mail and the interface - to send a mail message is /usr/sbin/sendmail (as - per the FHS). On older systems, the mail spool may be - physically located in /var/spool/mail, but all access to the - mail spool should be via the /var/mail symlink. The mail - spool is part of the base system and not part of the MTA - package. -

+ The mail spool is /var/mail and the interface to + send a mail message is /usr/sbin/sendmail (as per + the FHS). On older systems, the mail spool may be + physically located in /var/spool/mail, but all + access to the mail spool should be via the + /var/mail symlink. The mail spool is part of the + base system and not part of the MTA package. +

All Debian MUAs, MTAs, MDAs and other mailbox accessing - programs (like IMAP daemons) must lock the mailbox in an + programs (such as IMAP daemons) must lock the mailbox in an NFS-safe way. This means that fcntl() locking must - be combined with dot locking. To avoid deadlocks, a - program should use fcntl() first and dot locking - after this or alternatively implement the two locking - methods in a non blocking way + be combined with dot locking. To avoid deadlocks, a program + should use fcntl() first and dot locking after + this, or alternatively implement the two locking methods in + a non blocking way

If it is not possible to establish both locks, the system shouldn't wait for the second lock to be established, but remove the first lock, wait a (random) - time, and start over locking again.

+ time, and start over locking again. +

. Using the functions maillock and mailunlock provided by the liblockfile*

- liblockfile version >>1.01

+ You will need to depend on liblockfile1 + (>>1.01) to use these functions. +

packages is the recommended way to realize this.

- Mailboxes are generally 660 user.mail - unless the user has chosen otherwise. A MUA may remove a + Mailboxes are generally mode 660 + user.mail unless the system + administrator has chosen otherwise. A MUA may remove a mailbox (unless it has nonstandard permissions) in which case the MTA or another MUA must recreate it if needed. - Mailboxes must be writable by group mail.

+ Mailboxes must be writable by group mail. +

The mail spool is 2775 root.mail, and MUAs should @@ -6579,13 +6562,17 @@ http://localhost/doc/package/filename

/etc/aliases is the source file for the system mail aliases (e.g., postmaster, usenet, etc.), it is the one - which the sysadmin and postinst scripts may edit. - After /etc/aliases is edited the program or human - editing it must call newaliases. All MTA + which the sysadmin and postinst scripts may + edit. After /etc/aliases is edited the program or + human editing it must call newaliases. All MTA packages must come with a newaliases program, - even if it does nothing, but older MTA packages do not do + even if it does nothing, but older MTA packages did not do this so programs should not fail if newaliases - cannot be found.

+ cannot be found. Note that because of this, all MTA + packages must have Provides, Conflicts and + Replaces: mail-transport-agent control file + fields. +

The convention of writing forward to @@ -6600,23 +6587,26 @@ http://localhost/doc/package/filename is supported.

- If you need to know what name to use (for example) on - outgoing news and mail messages which are generated locally, - you should use the file /etc/mailname. It will - contain the portion after the username and @ (at) - sign for email addresses of users on the machine (followed - by a newline).

+ If your package needs to know what hostname to use on (for + example) outgoing news and mail messages which are generated + locally, you should use the file /etc/mailname. It + will contain the portion after the username and @ + (at) sign for email addresses of users on the machine + (followed by a newline). +

- A package should check for the existence of this file. If - it exists it should use it without comment. (An MTA's - prompting configuration script may wish to prompt the user - even if it finds this file exists.) If it does not exist it - should prompt the user for the value and store it in - /etc/mailname as well as using it in the package's - configuration. The prompt should make it clear that the - name will not just be used by that package. For example, in - this situation the INN package says: + Such package should check for the existence of this file + when it is being configured. If it exists, it should be + used without comment, although an MTA's configuration script + may wish to prompt the user even if it finds that this file + exists. If the file does not exist, the package should + prompt the user for the value (preferably using + debconf) and store it in /etc/mailname + as well as using it in the package's configuration. The + prompt should make it clear that the name will not just be + used by that package. For example, in this situation the + inn package could say something like: Please enter the `mail name' of your system. This is the hostname portion of the address to be shown on outgoing @@ -6643,12 +6633,12 @@ name [`syshostname']: are: - /etc/news/organization + /etc/news/organization

A string which should appear as the organization header for all messages posted by NNTP clients on the machine

- /etc/news/server + /etc/news/server

Contains the FQDN of the upstream NNTP server, or localhost if the local machine is an NNTP server.

@@ -6661,241 +6651,420 @@ name [`syshostname']: Programs for the X Window System -

- Programs that may be configured with support for the X Window - System must be configured to do so and must declare any - package dependencies necessary to satisfy their runtime - requirements when using the X Window System, unless the package - in question is of standard or higher priority, in which case - X-specific binaries may be split into a separate package, or - alternative versions of the package with X support may be - provided. -

+ + Providing X support and package priorities + +

+ Programs that can be configured with support for the X + Window System must be configured to do so and must declare + any package dependencies necessary to satisfy their + runtime requirements when using the X Window System. If + such a package is of higher priority than the X packages + on which it depends, it is required that either the + X-specific components be split into a separate package, or + that an alternative version of the package, which includes + X support, be provided, or that the package's priority be + lowered. +

+
+ + Packages providing an X server -

- Packages which provide an X server that, directly or - indirectly, communicates with real input and display hardware - should declare in their control data that they provide the - virtual package xserver. - -

- This implements current practice, and provides an actual - policy for usage of the "xserver" virtual package which - appears in the virtual packages list. In a nutshell, X - servers that interface directly with the display and input - hardware or via another subsystem (e.g., GGI) should provide - xserver. Things like Xvfb, Xnest, and Xprt should not. -

- -

+

+ Packages that provide an X server that, directly or + indirectly, communicates with real input and display + hardware should declare in their control data that they + provide the virtual package xserver. +

+ This implements current practice, and provides an + actual policy for usage of the xserver + virtual package which appears in the virtual packages + list. In a nutshell, X servers that interface + directly with the display and input hardware or via + another subsystem (e.g., GGI) should provide + xserver. Things like Xvfb, + Xnest, and Xprt should not. +

+ +

+
-

- Packages that provide a terminal emulator for the X - Window System which support a terminal type with a terminfo - description provided in the ncurses-base package - should declare in their control data that they provide the - virtual package x-terminal-emulator. They should - also register themselves as an alternative for - /usr/bin/x-terminal-emulator, with a priority of - 20. -

+ + Packages providing a terminal emulator -

- Packages that provide window managers should declare in - their control data that they provide the virtual package - x-window-manager. They should also register themselves as an - alternative for /usr/bin/x-window-manager, with a priority - calculated as follows: - - Start with a priority of 20. - If the window manager supports the Debian menu system, - add 20 points if this support is available in the - package's default configuration (i.e., no - configuration files belonging to the system or user - have to be edited to activate the feature); if - configuration files must be modified, add only 10 - points. - If the window manager permits the X session to be - restarted using a different window manager - (without killing the X server) in its default - configuration, add 10 points; otherwise add - none. - -

+

+ Packages that provide a terminal emulator for the X Window + System which meet the criteria listed below should declare + in their control data that they provide the virtual + package x-terminal-emulator. They should also + register themselves as an alternative for + /usr/bin/x-terminal-emulator, with a priority of + 20. +

-

- Packages that provide fonts for the X Window System - must do a number of things to ensure that they are both - available without modification of the X or font server - configuration, and that they do not corrupt files used by - other font packages to register information about themselves. - - - Fonts of any type supported by the X Window System - should be be in a separate binary package from any - executables, libraries, or documentation (except that - specific to the fonts shipped); if a program or - library is unusable without one or more - specific fonts, the package containing the program or - library should declare a dependency on the package(s) - containing the font(s) it requires. - - - BDF fonts should be converted to PCF fonts with the - bdftopcf utility (available in the - xutils package), gzipped, and - placed in a directory that corresponds to their - resolution: - - - 100 dpi fonts should be placed in - /usr/X11R6/lib/X11/fonts/100dpi/. - - - 75 dpi fonts should be placed in - /usr/X11R6/lib/X11/fonts/75dpi/. - - - Character-cell fonts, cursor fonts, and other - low-resolution fonts should be placed in - /usr/X11R6/lib/X11/fonts/misc/. - - - - - Speedo fonts should be placed in - /usr/X11R6/lib/X11/fonts/Speedo/. - - - Type 1 fonts should be placed in - /usr/X11R6/lib/X11/fonts/Type1/. If font - metric files are available, they may be placed here as - well. - - - Subdirectories of /usr/X11R6/lib/X11/fonts/ - other than those listed above should be neither created nor - used. (The PEX and cyrillic directories are - excepted for historical reasons, but installation of files into - these directories remains discouraged.) - - - Font packages may, instead of placing files directly in - the X font directories listed above, provide symbolic links in - the font directory which point to the files' actual location - in the filesystem. Such a location should comply with the - FHS. - - - Font packages should not contain both 75dpi and 100dpi - versions of a font. If both are available, they should be - provided in separate binary packages with "-75dpi" or "-100dpi" - appended to the names of the packages containing the - corresponding fonts. - - - Fonts destined for the misc subdirectory should - not be included in the same package as 75dpi or 100dpi fonts; - instead, they should be provided in a separate package with - "-misc" appended to its name. - - - Font packages must not provide the files - fonts.dir, fonts.alias, or - fonts.scale in a font directory. - - - fonts.dir files must not be provided at - all. - - - fonts.alias and fonts.scale - files, if needed, should be provided in the - directory - /etc/X11/fonts/fontdir/package.extension, - where fontdir is the name of the - subdirectory of - /usr/X11R6/lib/X11/fonts/ where the - package's corresponding fonts are stored (e.g., - 75dpi or misc), - package is the name of the package that - provides these fonts, and extension is - either scale or alias, - whichever corresponds to the file - contents. - - - - - Font packages must declare a dependency on - xutils and, in the package - post-installation and post-removal scripts, invoke the - mkfontdir command on each directory into - which they installed fonts. - - - Font packages that provide one or more - fonts.scale files as described above must declare a - versioned dependency on xutils (>= - 4.0.2) and invoke update-fonts-scale on each - directory into which they installed fonts - before invoking mkfontdir on that - directory. This invocation must occur in both the - post-installation and post-removal scripts. - - - Font packages that provide one or more - fonts.alias files as described above must - declare a versioned dependency on xutils - (>= 4.0.2) and, in the package - post-installation and post-removal scripts, invoke - update-fonts-alias on each directory into - which they installed fonts. - - - Font packages must not provide alias names for the - fonts they include which collide with alias names already in - use by fonts already packaged. - - - Font packages must not provide fonts with the same XLFD - registry name as another font already packaged. - - -

+

+ To be an x-terminal-emulator, a program must: + +

+ Be able to emulate a DEC VT100 terminal, or a + compatible terminal. +

+ +

+ Support the command-line option -e + command, which creates a new + terminal window +

+ "New terminal window" does not necessarily mean + a new top-level X window directly parented by + the window manager; it could, if the terminal + emulator application were so coded, be a new + "view" in a multiple-document interface (MDI). +

+ + and runs the specified command. +

+ +

+ Support the command-line option -T + title, which creates a new terminal + window with the window title title. +

+ +

+
-

- Application defaults files must be installed in the - directory /etc/X11/app-defaults/ (use of a - localized subdirectory of /etc/X11/ as described in - the X Toolkit Intrinsics - C Language Interface - manual is also permitted). They must be registered as - conffiles or handled as configuration files. For - programs that are not linked against the X Toolkit (Xt) - library, customization of programs' X resources may also be - supported with the provision of a file with the same name as - that of the package placed in the - /etc/X11/Xresources/ directory, which must - registered as a conffile or handled as a - configuration file. Important: packages that - install files into the /etc/X11/Xresources/ - directory must declare a conflict with xbase - (<< 3.3.2.3a-2); if this is not done it is - possible for the installing package to destroy a - previously-existing /etc/X11/Xresources file which - had been customized by the system administrator. -

- -

- Packages using the X Window System should abide by the - FHS standard whenever possible; they should install - binaries, libraries, manual pages, and other files in - FHS-mandated locations wherever possible. This means that - files must not be installed into /usr/X11R6/bin/, - /usr/X11R6/lib/, or /usr/X11R6/man/ - unless this is necessary for the package to operate - properly. Configuration files for window managers and + + Packages providing a window manager + +

+ Packages that provide a window manager should declare in + their control data that they provide the virtual package + x-window-manager. They should also register + themselves as an alternative for + /usr/bin/x-window-manager, with a priority + calculated as follows: + +

Start with a priority of 20.

+ + +

+ If the window manager supports the Debian menu + system, add 20 points if this support is available + in the package's default configuration (i.e., no + configuration files belonging to the system or user + have to be edited to activate the feature); if + configuration files must be modified, add only 10 + points. +

+
+ + +

+ If the window manager permits the X session to be + restarted using a different window manager + (without killing the X server) in its default + configuration, add 10 points; otherwise add none. +

+
+ +

+ + + + Packages providing fonts + +

+ Packages that provide fonts for the X Window + System +

+ For the purposes of Debian Policy, a "font for the X + Window System" is one which is accessed via X protocol + requests. Fonts for the Linux console, for PostScript + renderers, or any other purpose, do not fit this + definition. Any tool which makes such fonts available + to the X Window System, however, must abide by this + font policy. +

+ + must do a number of things to ensure that they are both + available without modification of the X or font server + configuration, and that they do not corrupt files used by + other font packages to register information about + themselves. + + +

+ Fonts of any type supported by the X Window System + must be be in a separate binary package from any + executables, libraries, or documentation (except + that specific to the fonts shipped, such as their + license information). If one or more of the fonts + so packaged are necessary for proper operation of + the package with which they are associated the font + package may be Recommended; if the fonts merely + provide an enhancement, a Suggests relationship may + be used. Packages must not Depend on font + packages. +

+ This is because the X server may retrieve fonts + from the local filesystem or over the network + from an X font server; the Debian package system + is empowered to deal only with the local + filesystem. +

+ +

+
+ + +

+ BDF fonts must be converted to PCF fonts with the + bdftopcf utility (available in the + xutils package, gzipped, and + placed in a directory that corresponds to their + resolution: + +

+ 100 dpi fonts must be placed in + /usr/X11R6/lib/X11/fonts/100dpi/. +

+ +

+ 75 dpi fonts must be placed in + /usr/X11R6/lib/X11/fonts/75dpi/. +

+ +

+ Character-cell fonts, cursor fonts, and other + low-resolution fonts must be placed in + /usr/X11R6/lib/X11/fonts/misc/. +

+ +

+ + +

+ Speedo fonts must be placed in + /usr/X11R6/lib/X11/fonts/Speedo/. +

+ +

+ Type 1 fonts must be placed in + /usr/X11R6/lib/X11/fonts/Type1/. If font + metric files are available, they must be placed here + as well. +

+ + +

+ Subdirectories of /usr/X11R6/lib/X11/fonts/ + other than those listed above must be neither + created nor used. (The PEX, CID, + and cyrillic directories are excepted for + historical reasons, but installation of files into + these directories remains discouraged.) +

+
+ + +

+ Font packages may, instead of placing files directly + in the X font directories listed above, provide + symbolic links in the font directory which point to + the files' actual location in the filesystem. Such + a location must comply with the FHS. +

+
+ + +

+ Font packages should not contain both 75dpi and + 100dpi versions of a font. If both are available, + they should be provided in separate binary packages + with -75dpi or -100dpi appended to + the names of the packages containing the + corresponding fonts. +

+
+ + +

+ Fonts destined for the misc subdirectory + should not be included in the same package as 75dpi + or 100dpi fonts; instead, they should be provided in + a separate package with -misc appended to + its name. +

+
+ + +

+ Font packages must not provide the files + fonts.dir, fonts.alias, or + fonts.scale in a font directory: + +

+ fonts.dir files must not be provided at all. +

+ + +

+ fonts.alias and fonts.scale + files, if needed, should be provided in the + directory + /etc/X11/fonts/fontdir/package.extension, + where fontdir is the name of the + subdirectory of + /usr/X11R6/lib/X11/fonts/ where the + package's corresponding fonts are stored + (e.g., 75dpi or misc), + package is the name of the package + that provides these fonts, and + extension is either scale + or alias, whichever corresponds to + the file contents. +

+
+ +

+ + + +

+ Font packages must declare a dependency on + xutils (>> 4.0.3) in their control + data. +

+
+ + +

+ Font packages that provide one or more + fonts.scale files as described above must + invoke update-fonts-scale on each + directory into which they installed fonts + before invoking + update-fonts-dir on that directory. + This invocation must occur in both the + postinst (for all arguments) and + postrm (for all arguments except + upgrade) scripts. +

+
+ + +

+ Font packages that provide one or more + fonts.alias files as described above must + invoke update-fonts-alias on each + directory into which they installed fonts. This + invocation must occur in both the + postinst (for all arguments) and + postrm (for all arguments except + upgrade) scripts. +

+
+ + +

+ Font packages must invoke + update-fonts-dir on each directory into + which they installed fonts. This invocation must + occur in both the postinst (for all + arguments) and postrm (for all + arguments except upgrade) scripts. +

+
+ + +

+ Font packages must not provide alias names for the + fonts they include which collide with alias names + already in use by fonts already packaged. +

+
+ + +

+ Font packages must not provide fonts with the same + XLFD registry name as another font already packaged. +

+
+
+

+
+ + + Application defaults files + +

+ Application defaults files must be installed in the + directory /etc/X11/app-defaults/ (use of a + localized subdirectory of /etc/X11/ as described + in the X Toolkit Intrinsics - C Language + Interface manual is also permitted). They must be + registered as conffiles or handled as + configuration files. Packages must not provide the + directory /usr/X11R6/lib/X11/app-defaults/. +

+ +

+ Customization of programs' X resources may also be + supported with the provision of a file with the same name + as that of the package placed in the + /etc/X11/Xresources/ directory, which must + registered as a conffile or handled as a + configuration file. +

+ Note that this mechanism is not the same as using + app-defaults; app-defaults are tied to the client + binary on the local filesystem, whereas X resources + are stored in the X server and affect all connecting + clients. +

+ + Important: packages that install files into the + /etc/X11/Xresources/ directory must conflict with + xbase (<< 3.3.2.3a-2); if this is not done + it is possible for the installing package to destroy a + previously-existing /etc/X11/Xresources file + which had been customized by the system administrator. +

+
+ + + Installation directory issues + +

+ Packages using the X Window System should not be + configured to install files under the /usr/X11R6/ + directory unless they use imake. The + /usr/X11R6/ directory hierarchy should be + regarded as deprecated for all packages except the X + Window System itself, and those which use the + imake program it provides, in which case the + packages may transition out of the /usr/X11R6/ + directory at the maintainer's discretion. +

+ Imake-using programs are exempt because, + as long as they are written correctly, the pathnames + they use to locate resources and install themselves + are derived wholly from the X Window System + configuration. Thus, in the event that the X Window + System moves to /usr/X11R7/, + /usr/X12/, or just plain /usr/, all + that is required for these programs is a recompile + against the corresponding X Window System library + development packages. +

+ + Programs that use GNU autoconf and + automake are usually easily configured at + compile time to use /usr/ instead of + /usr/X11R6/, and this should be done whenever + possible. Configuration files for window managers and display managers should be placed in a subdirectory of /etc/X11/ corresponding to the package name due to these programs' tight integration with the mechanisms @@ -6906,43 +7075,54 @@ name [`syshostname']: /usr/X11R6/lib/X11/ is permitted but discouraged; package maintainers should determine if subdirectories of /usr/lib/ and /usr/share/ can be used - instead (symlinks from the X11R6 directories to - FHS-compliant locations is encouraged if the program is - not easily configured to look elsewhere for its files). - Packages must not provide or install files into the - directories /usr/bin/X11/, - /usr/include/X11/, or /usr/lib/X11/. - Files within a package should, however, make reference to - these directories, rather than their X11R6-named - counterparts /usr/X11R6/bin/, - /usr/X11R6/include/X11/, and - /usr/X11R6/lib/X11/, if the resources being - referred to have not been moved to FHS-compliant + instead. (The use of symbolic links from the + X11R6 directories to other FHS-compliant + locations is encouraged if the program is not easily + configured to look elsewhere for its files.) Packages + must not provide or install files into the directories + /usr/bin/X11/, /usr/include/X11/ or + /usr/lib/X11/. Files within a package should, + however, make reference to these directories, rather than + their X11R6-named counterparts + /usr/X11R6/bin/, /usr/X11R6/include/X11/ + and /usr/X11R6/lib/X11/, if the resources being + referred to have not been moved to other FHS-compliant locations. -

+

+
-

- Programs that require the non-DFSG-compliant OSF/Motif - library 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 OSF/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 OSF/Motif in - his or her possession. -

+ + 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 his or her possession. +

+
@@ -6964,16 +7144,18 @@ name [`syshostname']: Please refer to the `Debian Emacs Policy' (documented in debian-emacs-policy.gz of the emacsen-common package) for details of how to - package emacs lisp programs.

- + package emacs lisp programs. +

+ Games

- The permissions on /var/games are 755 - root.root.

- + The permissions on /var/games are mode 755, owner + root and group root. +

+

Each game decides on its own security policy.

@@ -7068,13 +7250,28 @@ debian/tmp/usr/share/man/man[1-9]/the_requested_manpage.[1-9].gz is better to use a symbolic link than the .so feature, but there is no need to fiddle with the relevant parts of the upstream source to change from .so to - symlinks: don't do it unless it's easy. You should not create hard - links in the manual page directories, nor put + symlinks: don't do it unless it's easy. You should not + create hard links in the manual page directories, nor put absolute filenames in .so directives. The filename in a .so in a manpage should be relative to the base of the manpage tree (usually - /usr/share/man).

- + /usr/share/man). If you do not create any links + (whether symlinks, hard links, or .so directives) + in the filesystem to the alternate names of the manpage, + then you should not rely on man finding your + manpage under those names based solely on the information in + the manpage's header. +

+ Supporting this in man often requires + unreasonable processing time to find a manual page or to + report that none exists, and moves knowledge into man's + database that would be better left in the filesystem. + This support is therefore deprecated and will cease to + be present in the future. +

+
+

+ Info documents @@ -7086,7 +7283,7 @@ debian/tmp/usr/share/man/man[1-9]/the_requested_manpage.[1-9].gz

Your package should call install-info to update the Info dir - file, in its post-installation script: + file, in its postinst script: install-info --quiet --section Development Development \ /usr/share/info/foobar.info @@ -7104,7 +7301,7 @@ install-info --quiet --section Development Development \ the second is used when creating a new one.

- You should remove the entries in the pre-removal script: + You should remove the entries in the prerm script: install-info --quiet --remove /usr/share/info/foobar.info

@@ -7203,8 +7400,7 @@ fi you should if possible ship HTML versions in a binary package, in the directory /usr/share/doc/appropriate package or its - subdirectories. - + subdirectories.

The rationale: The important thing here is that HTML docs should be available in some package, not necessarily in the main binary package, though.

@@ -7253,8 +7449,7 @@ fi files /usr/share/common-licenses/BSD, /usr/share/common-licenses/Artistic, /usr/share/common-licenses/GPL, and - /usr/share/common-licenses/LGPL. - + /usr/share/common-licenses/LGPL.

Why "licenses" and not "copyright"? Because /usr/doc/copyright used to contain all the @@ -7317,8 +7512,7 @@ fi lynx -dump -nolist. If the upstream changelog files do not already conform to this naming convention, then this may be achieved either by renaming the files, or adding a - symbolic link, at the maintainer's discretion. - + symbolic link, at the maintainer's discretion.

Rationale: People should not have to look into two places for upstream changelogs merely because they are diff --git a/upgrading-checklist.html b/upgrading-checklist.html index 7d529ac..329f8a6 100644 --- a/upgrading-checklist.html +++ b/upgrading-checklist.html @@ -55,11 +55,27 @@ picking your way through this list.

 3.5.5.0                    May 01
 
+     - Manpages should not rely on header information to have
+       alternative manpage names available; it should only use
+       symlinks or .so pages to do this [13.1]
      - [Clarified note in 3.5.3.0 upgrading checklist regarding
         examples and templates: this refers only to those examples used
         by scripts; see section 11.7.3 for the whole story]
      - Included a new section 11.9.1 describing the use of
        dpkg-statoverride; this does not have the weight of policy
+     - Clarify Standards-Version: you don't need to rebuild your
+       packages just to change the Standards-Version!
+     - X Windows related things:
+       * Clarification of priority levels of X Window System related
+         packages [12.8.1]
+       * Rules for defining x-terminal-emulator improved [12.8.3]
+       * X Font policy rewritten: you must read this if you provide
+         fonts for the X Window System [12.8.5]
+       * Packages must not ship /usr/X11R6/lib/X11/app-defaults/ [12.8.6]
+       * X-related packages should usually use the regular FHS
+         locations; imake-using packages are exempted from this [12.8.7]
+       * OpenMotif linked binaries have the same rules as
+         OSF/Motif-linked ones [12.8.8]
 
 
 3.5.4.0                    Apr 01
@@ -86,7 +102,7 @@ picking your way through this list.
 3.5.2.0                    Feb 01
 
      - X app-defaults directory has moved from
-       /usr/X11R6/lib/X11/app-defaults to /etc/X11/app-defaults [12.8]
+       /usr/X11R6/lib/X11/app-defaults to /etc/X11/app-defaults [12.8.6]
 
 
 3.5.1.0                    Feb 01
@@ -98,7 +114,7 @@ picking your way through this list.
 3.5.0.0                    Jan 01
 
      - Font packages for the X Window System must now declare a
-       dependency on xutils (>= 4.0.2) [12.8]
+       dependency on xutils (>= 4.0.2) [12.8.5]
 
 
 3.2.1.1                    Jan 01
@@ -118,7 +134,7 @@ picking your way through this list.
 
      - A package of priority standard or higher may provide two
        binaries, one compiled with support for the X Window System,
-       and the other without [12.8]
+       and the other without [12.8.1]
 
 
 3.2.0.0                    Aug 00
@@ -132,16 +148,16 @@ picking your way through this list.
      - Please note that the new release of the X window system (4.x)
        shall probably need sweeping changes in policy
      - Policy for packages providing the following X-based features
-       has been codified [12.8]:
-       - X server (virtual package xserver)
-       - X terminal emulator (virtual package x-terminal-emulator)
+       has been codified:
+       - X server (virtual package xserver) [12.8.2]
+       - X terminal emulator (virtual package x-terminal-emulator) [12.8.3]
        - X window manager (virtual package x-window-manager, and
          /usr/bin/x-window-manager alternative, with priority
-         calculation guidelines)
-       - X fonts (this section has been written from scratch)
-       - X application defaults
+         calculation guidelines) [12.8.4]
+       - X fonts (this section has been written from scratch) [12.8.5]
+       - X application defaults [12.8.6]
      - Policy for packages using the X Window System and FHS issues
-       has been clarified; see [12.8]
+       has been clarified; see [12.8.7]
      - No package may contain or make hard links to conffiles [11.7.3]
      - Noted that newer dpkg versions do not require extreme care in
        always creating the shared lib before the symlink, so the unpack
@@ -303,7 +319,7 @@ picking your way through this list.
       + /etc/news/organization and /etc/news/server should be supported
         by all news servers and clients
 
-    - Updated section 4.7 Programs for the X Windows system:
+    - Updated section 4.7 Programs for the X Window System:
       + programs requiring a non-free Motif library should be provided
         as foo-smotif and foo-dmotif package
       + if lesstif works reliably for such program, it should be linked
-- 
2.39.5