From: Manoj Srivastava Date: Thu, 16 Jun 2005 05:08:40 +0000 (+0000) Subject: * [AMENDMENT 15/01/2000] revision of the "to build with X support or X-Git-Url: https://git.donarmstrong.com/?a=commitdiff_plain;h=e838d3860e3268d1a6fc87c63283c96bf4d56e7f;p=debian%2Fdebian-policy.git * [AMENDMENT 15/01/2000] revision of the "to build with X support or Author: srivasta Date: 2000/08/24 07:08:37 * [AMENDMENT 15/01/2000] revision of the "to build with X support or not" policy. closes: Bug#53759 * [ACCEPTED 2000/06/06] Must/Should/May in policy This is only a clarifying change, and was not intended to change the intent of policy. closes: Bug#64437 * [ACCEPTED 03/05/2000] About the use of conffiles. closes: Bug#61308 * [AMENDMENT 10/05/2000] s/mail\.mail/root\.mail/ closes: Bug#62668 * [ACCEPTED 04/05/2000] Update for new non-US layout closes: Bug#62946 * [ACCEPTED 04/05/2000] s/debian-devel/debian-legal/ closes: Bug#62947 * [ACCEPTED 04/05/2000] s/bash/base-files/ closes: Bug#62948 * Typo: 1744s/tty/ttyS/ closes: Bug#64516 * proposal for mp3-encoder virtual package closes: Bug#64004 * proposal for mp3-decoder virtual package closes: Bug#64006 * new virtual package time-daemon closes: Bug#69031 * [PATCH] typos in menu-policy.sgml closes: Bug#69424 * [PATCH] typos and awkwardness in policy.sgml closes: Bug#69426 * the example for using nostrip in DEB_BUILD_OPTIONS is incorrect. closes: Bug#69487 * [PATCH] more corrections closes: Bug#69670 * [AMENDMENT 26/10/99] Amend non-free definition closes: Bug#46522 * [AMMENDMENT 29/10/99] /bin/sh needs echo -n closes: Bug#48247 * [AMENDMENT 1999/11/23] Clarify meaning of Essential: yes closes: Bug#50832 * [ACCEPTED] Request for new virtual packages: rsh-client and telnet-client closes: Bug#58759 git-archimport-id: srivasta@debian.org--etch/debian-policy--devel--3.0--patch-63 --- diff --git a/debian/changelog b/debian/changelog index 1df0726..85526f0 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,33 @@ +debian-policy (3.2.1.0) unstable; urgency=low + + * [AMENDMENT 15/01/2000] revision of the "to build with X support or + not" policy. closes: Bug#53759 + * [ACCEPTED 2000/06/06] Must/Should/May in policy This is only a + clarifying change, and was not intended to change the intent of + policy. closes: Bug#64437 + * [ACCEPTED 03/05/2000] About the use of conffiles. closes: Bug#61308 + * [AMENDMENT 10/05/2000] s/mail\.mail/root\.mail/ closes: Bug#62668 + * [ACCEPTED 04/05/2000] Update for new non-US layout closes: Bug#62946 + * [ACCEPTED 04/05/2000] s/debian-devel/debian-legal/ closes: Bug#62947 + * [ACCEPTED 04/05/2000] s/bash/base-files/ closes: Bug#62948 + * Typo: 1744s/tty/ttyS/ closes: Bug#64516 + * proposal for mp3-encoder virtual package closes: Bug#64004 + * proposal for mp3-decoder virtual package closes: Bug#64006 + * new virtual package time-daemon closes: Bug#69031 + * [PATCH] typos in menu-policy.sgml closes: Bug#69424 + * [PATCH] typos and awkwardness in policy.sgml closes: Bug#69426 + * the example for using nostrip in DEB_BUILD_OPTIONS is + incorrect. closes: Bug#69487 + * [PATCH] more corrections closes: Bug#69670 + * [AMENDMENT 26/10/99] Amend non-free definition closes: Bug#46522 + * [AMMENDMENT 29/10/99] /bin/sh needs echo -n closes: Bug#48247 + * [AMENDMENT 1999/11/23] Clarify meaning of Essential: yes + closes: Bug#50832 + * [ACCEPTED] Request for new virtual packages: rsh-client and + telnet-client closes: Bug#58759 + + -- Manoj Srivastava Thu, 24 Aug 2000 02:06:30 -0500 + debian-policy (3.2.0.0) unstable; urgency=low * Fixed bugs in debian-policy package: diff --git a/menu-policy.sgml b/menu-policy.sgml index d6366ce..ce6d243 100644 --- a/menu-policy.sgml +++ b/menu-policy.sgml @@ -12,7 +12,7 @@ 2 or (at your option) any later. The debian-policy mailing list has taken responsibility for the - contents of this document8, with the package maintainers responsible + contents of this document, with the package maintainers responsible for packagingn adminstrivia only. --> @@ -109,7 +109,7 @@

Reduce the coupling between policy and - implementation. If this separtion is not made, every + implementation. If this separation is not made, every time we want to change menu policy, we have to arrange to get the maintainer to release a new version of the package, even if the package has not otherwise @@ -123,9 +123,9 @@ Menu Structure

If you have a package which doesn't fit within the existing - menu heirarchy, please bring it up on the debian-devel mailing + menu hierarchy, please bring it up on the debian-devel mailing list. If you have other proposals for changing the menu - heirarchy, or making other changes to menu policy, please + hierarchy, or making other changes to menu policy, please bring it up on debian-policy.

@@ -284,7 +284,7 @@
XShells -

xterm and its brethern

+

xterm and its brethren

diff --git a/policy.sgml b/policy.sgml index 1826049..acaf2b8 100644 --- a/policy.sgml +++ b/policy.sgml @@ -208,11 +208,15 @@ free in our sense (see Debian Free Software Guidelines, below), or may be imported/exported without restrictions. Thus, the archive is split into the sections - main, non-us, non-free, and - contrib.

+ main, non-free, contrib, + non-US/main, non-US/non-free, and + non-US/contrib.

+

- The main section forms the Debian GNU/Linux - distribution.

+ The main and the non-US/main sections form + the Debian GNU/Linux distribution. +

+

Packages in the other sections are not considered as part of the Debian distribution, though we support their use, and we @@ -417,8 +421,7 @@ The non-free section

`Non-free' contains packages which are not compliant with - the DFSG or which are encumbered by patents or other legal - issues that make their distribution problematic.

+ the DFSG.

All packages in `non-free' must be electronically distributable across international borders. @@ -505,11 +508,11 @@ worthwhile contacting such authors diplomatically to ask them to modify their license terms. However, this is a politically difficult thing to do and you should ask for - advice on debian-devel first.

+ advice on debian-legal first.

When in doubt, send mail to - debian-devel@lists.debian.org. Be prepared + debian-legal@lists.debian.org. Be prepared to provide us with the copyright statement. Software covered by the GPL, public domain software and BSD-like copyrights are safe; be wary of the phrases `commercial use @@ -802,13 +805,23 @@ Since these packages can not easily be removed (you'll have to specify an extra force option to dpkg) this flag must not be used unless - absolutely necessary. - - A shared library package must not be tagged - essential--the dependencies will prevent its - premature removal, and we need to be able to remove it - when it has been superseded.

+ absolutely necessary. A shared library package must not + be tagged essential--the dependencies will + prevent its premature removal, and we need to be able to + remove it when it has been superseded. +

+

+ Since dpkg will not prevent upgrading of other packages + while an essential package is in an unconfigured + state, all essential packages must supply all + their core functionality even when unconfigured. If the + package cannot satisfy this requirement it must not be + tagged as essential, and any packages depending on this + package must instead have explicit dependency fields as + appropriate. +

+

You must not tag any packages essential before this has been discussed on the debian-devel @@ -2094,7 +2107,7 @@

Furthermore, as /etc/profile is a configuration - file of the bash package, other packages must not + file of the base-files package, other packages must not put any environment variables or other commands into that file.

@@ -2154,9 +2167,9 @@ build tree with debugging information. If the environment variable DEB_BUILD_OPTIONS contains the string nostrip, do not strip the files at installation - time. This allows to generate a package with debugging + time. This allows one to generate a package with debugging information included. The following makefile snippet is only - an example how to test for either condition: + an example of how one may test for either condition:

Rationale: Building by default with -g causes more @@ -2165,7 +2178,7 @@ it also provides a mechanism to easily be rebuilt with debugging information. This can be done by providing a "build-debug" make target, or allowing the user to - specify "BUILD_DEBUG=yes" in the environment while + specify "DEB_BUILD_OPTIONS=debug" in the environment while compiling that package.

Now this has several added benefits: @@ -2183,7 +2196,7 @@ autobuilders since not having debugging information (and hence also not having to strip it) will increase the speed of compiles. This - skips an entire pass of the compiler, + skips an entire pass of the compiler.

@@ -2196,9 +2209,9 @@ ifneq (,$(findstring debug,$(DEB_BUILD_OPTIONS))) CFLAGS += -g - ifneq (,$(findstring nostrip,$(DEB_BUILD_OPTIONS))) - INSTALL += -s endif + ifeq (,$(findstring nostrip,$(DEB_BUILD_OPTIONS))) + INSTALL += -s endif

@@ -2334,87 +2347,101 @@ of the library installed while moving from the old library to the new.

-

- If your package has some run-time support programs which - use the shared library you must not put them in - the shared library package. If you do that then you won't +

+ If your package has some run-time support programs which + use the shared library you must not put them in + the shared library package. If you do that then you won't be able to install several versions of the shared library without getting filename clashes. Instead, either create a third package for the runtime binaries (this package might typically be named libraryname-runtime--note the absence - of the soname in the package name) or if the - development package is small include them in there.

- -

- If you have several shared libraries built from the same - source tree you may lump them all together into a single - shared library package, provided that you change all their - sonames at once (so that you don't get filename - clashes if you try to install different versions of the - combined shared libraries package).

- + of the soname in the package name) or if the + development package is small include them in there.

+ +

+ If you have several shared libraries built from the same + source tree you may lump them all together into a single + shared library package, provided that you change all their + sonames at once (so that you don't get filename + clashes if you try to install different versions of the + combined shared libraries package).

+

- You should follow the directions in the Debian Packaging + You should follow the directions in the Debian Packaging Manual for putting the shared library in its package, - and you must include a shlibs control area - file with details of the dependencies for packages which - use the library.

- -

- Shared libraries should not be installed - executable, since ld.so does not require this - and trying to execute a shared library results in a core - dump.

- - - - Scripts - -

- All command scripts, including the package maintainer - scripts inside the package and used by dpkg, - should have a #! line naming the shell to be used - to interpret them.

- -

- In the case of Perl scripts this should be - #!/usr/bin/perl.

- -

- Shell scripts (sh and bash) - should almost certainly start with set -e so that - errors are detected. Every script should use - set -e or check the exit status of every - command.

- -

- The standard shell interpreter `/bin/sh' can be a - symbolic link to any POSIX compatible shell. Thus, shell - scripts specifying `/bin/sh' as interpreter should - only use POSIX features. If a script requires non-POSIX - features from the shell interpreter, the appropriate shell - must be specified in the first line of the script (e.g., - `#!/bin/bash') and the package must depend on - the package providing the shell (unless the shell package - is marked `Essential', e.g., in the case of - bash).

- + and you must include a shlibs control area + file with details of the dependencies for packages which + use the library.

+

- You may wish to restrict your script to POSIX features when possible so - that it may use /bin/sh as its interpreter. If - your script works with ash, it's probably - POSIX compliant, but if you are in doubt, use - /bin/bash.

- + Shared libraries should not be installed + executable, since ld.so does not require this + and trying to execute a shared library results in a core + dump.

+ + + + Scripts + +

+ All command scripts, including the package maintainer + scripts inside the package and used by dpkg, + should have a #! line naming the shell to be used + to interpret them.

+

- Perl scripts should check for errors when making any - system calls, including open, print, - close, rename and system.

+ In the case of Perl scripts this should be + #!/usr/bin/perl.

+ +

+ Shell scripts (sh and bash) + should almost certainly start with set -e so that + errors are detected. Every script should use + set -e or check the exit status of every + command.

-

- csh and tcsh should be avoided - as scripting languages. See Csh Programming +

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

+ Debian policy specifies POSIX behavior for /bin/sh, but + echo -n has widespread use in the Linux community + (including especially debian policy, the linux kernel + source, many debian scripts, etc.). This echo -n + mechanism is valid but not required under POSIX, hence + this explicit addition. Also, rumour has it that this + shall be mandated under the LSB anyway. +

+
+ Thus, shell scripts + specifying `/bin/sh' as interpreter should only + use POSIX features. If a script requires non-POSIX + features from the shell interpreter, the appropriate shell + must be specified in the first line of the script (e.g., + `#!/bin/bash') and the package must depend on the + package providing the shell (unless the shell package is + marked `Essential', e.g., in the case of + bash). +

+ +

+ You may wish to restrict your script to POSIX features when possible so + that it may use /bin/sh as its interpreter. If + your script works with ash, it's probably + POSIX compliant, but if you are in doubt, use + /bin/bash.

+ +

+ Perl scripts should check for errors when making any + system calls, including open, print, + close, rename and system.

+ +

+ csh and tcsh should be avoided + as scripting languages. See Csh Programming Considered Harmful, one of the comp.unix.* FAQs. It can be found on , or @@ -2425,19 +2452,19 @@ then you must make sure that they start with #!/bin/csh and make your package depend on the c-shell virtual package.

- -

- Any scripts which create files in world-writeable - directories (e.g., in /tmp) must use a - mechanism which will fail if a file with the same name - already exists.

- + +

+ Any scripts which create files in world-writeable + directories (e.g., in /tmp) must use a + mechanism which will fail if a file with the same name + already exists.

+

- The Debian base distribution provides the - tempfile and mktemp utilities - for use by scripts for this purpose.

- - + The Debian base distribution provides the + tempfile and mktemp utilities + for use by scripts for this purpose.

+ + Symbolic links @@ -2503,9 +2530,9 @@

Debian uses the serial devices - /dev/tty*. Programs using the old + /dev/ttyS*. Programs using the old /dev/cu* devices should be changed to use - /dev/tty*.

+ /dev/ttyS*.

@@ -2584,13 +2611,14 @@

The easy way to achieve this behavior is to make the configuration file a conffile. This is - appropriate if it is possible to distribute a default + appropriate only if it is possible to distribute a default version that will work for most installations, although some system administrators may choose to modify it. This implies that the default version will be part of the package distribution, and must not be modified by the maintainer scripts during installation (or at any other - time).

+ time). +

In order to ensure that local changes are preserved @@ -2608,7 +2636,7 @@

- The other way to do it is to via the maintainer scripts. + The other way to do it is via the maintainer scripts. In this case, the configuration file must not be listed as a conffile and must not be part of the package distribution. If the existence of a file is required for @@ -2616,7 +2644,7 @@ responsibility of the package maintainer to write scripts which correctly create, update, maintain and remove-on-purge the file. These scripts must be idempotent - (i.e. must work correctly if dpkg needs to + (i.e., must work correctly if dpkg needs to re-run them due to errors during installation or removal), must cope with all the variety of ways dpkg can call maintainer scripts, must not overwrite or @@ -2667,7 +2695,7 @@ If two or more packages use the same configuration file and it is reasonable for both to be installed at the same time, one of these packages must be defined as - owner of the configuration file, i.e. it will be + owner of the configuration file, i.e., it will be the package to list that distributes the file and lists it as a conffile. Other packages that use the configuration file must depend on the owning package if @@ -2722,7 +2750,7 @@

Therefore, if a program needs a dotfile to exist in - advance in $HOME to work sensibly that dotfile + advance in $HOME to work sensibly, that dotfile should be installed in /etc/skel (and listed in conffiles, if it is not generated and modified dynamically by the package's installation scripts).

@@ -3017,7 +3045,7 @@

If it is very hard to adapt a program to make us of the - EDITOR and PAGER variable, that program may be configured + 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 @@ -3140,7 +3168,7 @@ Mailboxes must be writable by group mail.

- The mail spool is 2775 mail.mail, and MUAs should + The mail spool is 2775 root.mail, and MUAs should be setgid mail to do the locking mentioned above (and must obviously avoid accessing other users' mailboxes using this privilege).

@@ -3230,34 +3258,38 @@ Programs for the X Window System

- Some programs can be configured with or without support for the X - Window System. Typically, binaries produced with support for X - will need the X shared libraries to run. + 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.

NOTE The forthcoming major X Window System release shall probably change this drastically.

+

+ This seems to be more what people want. It will enable + packages like vim-tty to become legal if they are + promoted to standard priority. Also, that X client in + mtools can be split into its own package and made + optional. +

+

+ This paves the way for xlib6g and xfree86-common to be + moved from standard to optional, if all + Xlib dependent packages are moved from standard to + optional priority (or if non-Xlib-linked versions are + retained in standard). That, however is up to the + affected package maintainers and the archive + maintainers, and is not mandated by this policy. +

-

- Such programs should be configured with X support, - and should declare a dependency on xlib6g (which - contains X shared libraries). Users who wish to use the - program can install just the relatively small - xfree86-common and xlib6g packages, and do - not need to install the whole of X. - -

Note: With the release of the new X window System - version (4.X), there probably shall be a sweeping change - in the X Window System Policy in the future.

- -

- -

- You should not create two versions (one with X support and one - without) of your package.

Packages which provide an X server that, directly or @@ -3870,20 +3902,20 @@ Changelog files

- Packages that are not Debian-native must contain a copy - of debian/changelog file from the Debian source - tree in /usr/share/doc/package - as changelog.Debian.gz. If an upstream - changelog is available, it should be accessible as - /usr/share/doc/package/changelog.gz - in plain text. If the upstream changelog is distributed - in HTML, it should be made available in that form as + Packages that are not Debian-native must contain a copy of + debian/changelog file from the Debian source tree + in /usr/share/doc/package as + changelog.Debian.gz. If an upstream changelog is + available, it should be accessible as + /usr/share/doc/package/changelog.gz in + plain text. If the upstream changelog is distributed in + HTML, it should be made available in that form as /usr/share/doc/package/changelog.html.gz and the changelog.gz should be generated using, eg, - 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.

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

Rationale: People should not have to look into two @@ -3893,11 +3925,11 @@

- -

- All these files should be installed compressed using gzip -9, - as they will become large with time even if they start out - small. + +

+ All these files should be installed compressed using gzip -9, + as they will become large with time even if they start out + small.

diff --git a/upgrading-checklist.html b/upgrading-checklist.html index 2647c09..84c9881 100644 --- a/upgrading-checklist.html +++ b/upgrading-checklist.html @@ -44,6 +44,14 @@ Manual.

The checklist

+3.2.1.0                    Aug 00
+
+  Policy Manual:
+     - A package of priority standard or hihger may provide two
+       binaries, one compiled with support for the X Window System,
+       and the other without.
+     -
+
 3.2.0.0                    Aug 00
 
   Policy Manual:
diff --git a/virtual-package-names-list.txt b/virtual-package-names-list.txt
index 1441c00..88612d9 100644
--- a/virtual-package-names-list.txt
+++ b/virtual-package-names-list.txt
@@ -88,9 +88,12 @@ pdf-preview             Any preprocessor that creates PDF output
 pdf-viewer              Anything that can display PDF files
 postscript-preview      Any preprocessor that creates Postscript output
 postscript-viewer       Anything that can display Postscript files
+rsh-client              Any package that provides an rsh client
 system-log-daemon       A daemon that provides a logging facility for
                         other applications
 tclsh                   Anything that provides /usr/bin/tclsh (*)
+telent-client           Any package that provides a telnet client
+time-daemon             Anything that servers as a time daemon
 ups-monitor             Anything that is capable of controlling an UPS
 wish                    Anything that provides /usr/bin/wish (*)
 wordlist                Anything that provides /usr/share/dict/words (*)
@@ -108,6 +111,11 @@ news-transport-system   Local news system (INN, C News or B News)
 pgp                     A version of PGP (International or US)
 pop3-server             Any POP3 Server
 
+Graphics and MultiMedia
+-----------------------
+mp3-encoder             Any MP3 encoder package
+mp3-decoder             Any MP3 decoder package
+
 Old and obsolete virtual package names
 --------------------------------------
 Note, that no other package then the ones listed here should use
@@ -172,3 +180,17 @@ Manoj Srivastava
                Added xserver
                Added linux-kernel-log-daemon
                Added system-log-faemon
+
+Manoj Srivastava
+  24 August 2000 Added mp3-encoder
+                 Added mp3-decoder
+                 Added time-daemon
+                 Added rsh-client
+                 Added telnet-client
+
+
+
+
+
+
+