From c5772da2283bebd43113910b2071a64fcbd8a3f7 Mon Sep 17 00:00:00 2001 From: Manoj Srivastava Date: Thu, 16 Jun 2005 05:33:26 +0000 Subject: [PATCH] * Fixed a couple of typos closes Author: srivasta Date: 2002/04/22 09:19:32 * Fixed a couple of typos closes: Bug#139832 * Ran through the policy docukent looking for long instances pf text in the tag, and changed it to where appropriate. This is since the tag can handle line breaking, but the flag does not. closes: Bug#139820 git-archimport-id: srivasta@debian.org--etch/debian-policy--devel--3.0--patch-139 --- debian/changelog | 5 + policy.sgml | 939 ++++++++++++++++++++++++----------------------- 2 files changed, 475 insertions(+), 469 deletions(-) diff --git a/debian/changelog b/debian/changelog index 05c9305..e7ccdf4 100644 --- a/debian/changelog +++ b/debian/changelog @@ -4,6 +4,11 @@ debian-policy (3.5.6.2) unstable; urgency=low * No longer use local debiandoc stuff (it's been fixed upstream) * Added table of contents (index.html) to policy-process.sgml, fixing the new error reported to bug #137521 closes: Bug#137521 + * Fixed a couple of typos closes: Bug#139832 + * Ran through the policy docukent looking for long instances pf text in + the tag, and changed it to where appropriate. This is + since the tag can handle line breaking, but the flag does + not. closes: Bug#139820 -- diff --git a/policy.sgml b/policy.sgml index 0209d4a..c9828ac 100644 --- a/policy.sgml +++ b/policy.sgml @@ -83,7 +83,7 @@

A copy of the GNU General Public License is available as - /usr/share/common-licenses/GPL in the Debian GNU/Linux + /usr/share/common-licenses/GPL in the Debian GNU/Linux distribution or on the World Wide Web at . You can also @@ -200,19 +200,19 @@ as /debian/doc/package-developer/policy.txt.gz (also available from the same directory are several other - formats: policy.html.tar.gz, policy.pdf.gz - and policy.ps.gz) or from the policy.html.tar.gz, policy.pdf.gz + and policy.ps.gz) or from the webpage.

In addition, this manual is distributed via the Debian package - debian-policy. + debian-policy.

The debian-policy package also includes the file - upgrading-checklist.txt which indicates policy + upgrading-checklist.txt which indicates policy changes between versions of this document.

@@ -577,7 +577,7 @@

Every package must be accompanied by a verbatim copy of its copyright and distribution license in the file - /usr/share/doc/package/copyright + /usr/share/doc/package/copyright (see for further details).

@@ -1043,7 +1043,7 @@

- You should not use dpkg-divert on a file + You should not use dpkg-divert on a file belonging to another package without consulting the maintainer of that package first.

@@ -1073,7 +1073,7 @@ debconf, which conforms to the Debian Configuration management specification, version 2 or higher. These are included in the - debconf_specification files in the + debconf_specification files in the debian-policy package. You may also find this file on the FTP site ftp.debian.org in @@ -1098,7 +1098,7 @@ debconf, plus the existance of a nascent second implementation of the Debian configuration management system - (cdebconf), and the stabalization + (cdebconf), and the stabilization of the protocol these things use, the time has finally come to reflect the use of these things in policy. @@ -1131,8 +1131,8 @@ they need to do, and they should ensure that the user will only ever be asked each question once. This means that packages should try to use appropriate shared - configuration files (such as /etc/papersize and - /etc/news/server), and shared + configuration files (such as /etc/papersize and + /etc/news/server), and shared debconf variables rather than each prompting for their own list of required pieces of information. @@ -1143,7 +1143,7 @@ questions again, unless the user has used dpkg --purge to remove the package's configuration. The answers to configuration questions should be stored in an - appropriate place in /etc so that the user can + appropriate place in /etc so that the user can modify them, and how this has been done should be documented.

@@ -1157,7 +1157,7 @@ prompt the user to hit return to acknowledge the message. Copyright messages do not count as vitally important (they belong in - /usr/share/doc/package/copyright); + /usr/share/doc/package/copyright); neither do instructions on how to use a program (these should be in on-line documentation, where all the users can see them).

@@ -1233,7 +1233,7 @@ Standards-Version source package field and release it.

- See the file upgrading-checklist for + See the file upgrading-checklist for information about policy which has changed between different versions of this document.

@@ -1260,7 +1260,7 @@ standard "Hello World!" program written in C or C++. The required packages are called build-essential, and an informational list can be found in - /usr/share/doc/build-essential/list (which is + /usr/share/doc/build-essential/list (which is contained in the build-essential package).

Rationale: @@ -1306,7 +1306,7 @@ you should list all those packages, and only those packages that you need directly. What others need is their business. For example, if you - only link against libimlib, you will need to + only link against libimlib, you will need to build-depend on libimlib2-dev but not against any libjpeg* packages, even though libimlib2-dev currently depends on @@ -1348,7 +1348,7 @@ or #define) and send the patch to the upstream authors, with the default set to the way they originally had it. You can then easily override the default in your - debian/rules or wherever is appropriate.

+ debian/rules or wherever is appropriate.

You should make sure that the configure utility @@ -1358,7 +1358,7 @@

If you need to edit a Makefile where GNU-style configure scripts are used, you - should edit the .in files rather than editing the + should edit the .in files rather than editing the Makefile directly. This allows the user to reconfigure the package if necessary. You should not configure the package and edit the generated @@ -1371,14 +1371,14 @@

You should document your changes and updates to the source - package properly in the debian/changelog file. (Note + package properly in the debian/changelog file. (Note that mistakes in changelogs are usually best rectified by making a new changelog entry rather than "rewriting history" by editing old changelog entries.)

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

If you wish to use an alternative format, you may do @@ -1405,8 +1405,8 @@

When make invokes a command in a makefile (including your package's upstream makefiles and - debian/rules), it does so using sh. This - means that sh's usual bad error handling + debian/rules), it does so using sh. This + means that sh's usual bad error handling properties apply: if you include a miniature script as one of the commands in your makefile you'll find that if you don't do anything about it then errors are not detected @@ -1453,7 +1453,7 @@ data represented in a common format, known as control data. The data is often stored in control files. Binary and source packages have control files, - and the .changes files which control the installation + and the .changes files which control the installation of uploaded files are also in control file format. Dpkg's internal databases are in a similar format. @@ -1567,7 +1567,7 @@ Package: libc6

- In a .changes file or parsed changelog output + In a .changes file or parsed changelog output 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 @@ -1698,7 +1698,7 @@ Package: libc6

This is the main part of the version number. It is usually the version number of the original (`upstream') - package from which the .deb file has been made, + package from which the .deb file has been made, if this is applicable. Usually this will be in the same format as that specified by the upstream author(s); however, it may need to be reformatted to fit into the @@ -1872,7 +1872,7 @@ Package: libc6

- debian/rules - the + debian/rules - the main building script

@@ -1888,7 +1888,7 @@ Package: libc6

- Since an interactive debian/rules script makes it + Since an interactive debian/rules script makes it impossible to auto-compile that package and also makes it hard for other people to reproduce the same binary package, all required targets MUST be @@ -1995,8 +1995,8 @@ Package: libc6 build-arch or build-indep target, if provided, so that the package is built if it has not been already. It should then create the relevant - binary package(s), using dpkg-gencontrol to - make their control files and dpkg-deb to + binary package(s), using dpkg-gencontrol to + make their control files and dpkg-deb to build them and place them in the parent of the top level directory.

@@ -2084,7 +2084,7 @@ Package: libc6

- Additional targets may exist in debian/rules, + Additional targets may exist in debian/rules, either as published or undocumented interfaces or for the package's internal use.

@@ -2135,7 +2135,7 @@ Package: libc6

- debian/changelog + debian/changelog

@@ -2188,12 +2188,12 @@ Package: libc6 distribution(s) lists the distributions where this version should be installed when it is uploaded - it is copied to the Distribution field in the - .changes file. See . + .changes file. See .

urgency is the value for the Urgency - field in the .changes file for the upload. It is + field in the .changes file for the upload. It is not possible to specify an urgency containing commas; commas are used to separate keyword=value settings in the @@ -2282,7 +2282,7 @@ Package: libc6 - debian/substvars + debian/substvars and variable substitutions

@@ -2291,16 +2291,16 @@ Package: libc6 generate control files they perform variable substitutions on their output just before writing it. Variable substitutions have the form ${variable}. - The optional file debian/substvars contains + The optional file debian/substvars contains variable substitutions to be used; variables can also be set - directly from debian/rules using the -V + directly from debian/rules using the -V option to the source packaging commands, and certain predefined variables are also available.

- The debian/substvars file is usually generated and - modified dynamically by debian/rules targets; in + The debian/substvars file is usually generated and + modified dynamically by debian/rules targets; in this case it must be removed by the clean target.

@@ -2308,25 +2308,25 @@ Package: libc6

See for full details about source variable substitutions, including the - format of debian/substvars.

+ format of debian/substvars.

- debian/files + debian/files

This file is not a permanent part of the source tree; it is used while building packages to record which files are being generated. dpkg-genchanges uses it - when it generates a .changes file. + when it generates a .changes file.

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 + files.new is used as a temporary file by dpkg-gencontrol and dpkg-distaddfile - they write a new version of files here before renaming it, @@ -2341,8 +2341,8 @@ Package: libc6

When dpkg-gencontrol is run for a binary - package, it adds an entry to debian/files for the - .deb file that will be created when dpkg-deb + package, it adds an entry to debian/files for the + .deb file that will be created when dpkg-deb --build is run for that binary package. So for most packages all that needs to be done with this file is to delete it in the clean target. @@ -2354,7 +2354,7 @@ Package: libc6 made with dpkg-gencontrol then they should be placed in the parent of the package's top-level directory and dpkg-distaddfile should be called to add - the file to the list in debian/files.

+ the file to the list in debian/files.

Restrictions on objects in source packages @@ -2556,7 +2556,7 @@ Package: libc6 controlling terminal and can interact with the user. If they need to prompt for passwords, do full-screen interaction or something similar you should do these - things to and from /dev/tty, since + things to and from /dev/tty, since dpkg will at some point redirect scripts' standard input and output so that it can log the installation process. Likewise, because these scripts @@ -3643,7 +3643,7 @@ Replaces: mail-transport-agent Firstly, the package should install the shared libraries under their normal names. For example, the libgdbmg1 package should install libgdbm.so.1.7.3 as - /usr/lib/libgdbm.so.1.7.3. The files should not be + /usr/lib/libgdbm.so.1.7.3. The files should not be renamed or re-linked by any prerm or postrm scripts; dpkg will take care of renaming things safely without affecting running programs, @@ -3655,8 +3655,8 @@ Replaces: mail-transport-agent Secondly, the package should include the symbolic link that ldconfig would create for the shared libraries. For example, the libgdbmg1 package should include - a symbolic link from /usr/lib/libgdbm.so.1 to - libgdbm.so.1.7.3. This is needed so that the dynamic + a symbolic link from /usr/lib/libgdbm.so.1 to + libgdbm.so.1.7.3. This is needed so that the dynamic linker (for example ld.so or ld-linux.so.*) can find the library between the time that dpkg installs it and the time that @@ -3665,7 +3665,7 @@ Replaces: mail-transport-agent

The package management system requires the library to be placed before the symbolic link pointing to it in the - .deb file. This is so that when + .deb file. This is so that when dpkg comes to install the symlink (overwriting the previous symlink pointing at an older version of the library), the new shared library is already @@ -3673,7 +3673,7 @@ Replaces: mail-transport-agent library in the temporary packaging directory before creating the symlink. Unfortunately, this was not always effective, since the building of the tar file in the - .deb depended on the behavior of the underlying + .deb depended on the behavior of the underlying file system. Some file systems (such as reiserfs) reorder the files so that the order of creation is forgotten. Starting with release 1.7.0, dpkg @@ -3689,16 +3689,16 @@ Replaces: mail-transport-agent symlink for the shared library without a version number. For example, the libgdbmg1-dev package should include a symlink from /usr/lib/libgdbm.so to - libgdbm.so.1.7.3. This symlink is needed by the + libgdbm.so.1.7.3. This symlink is needed by the linker (ld) when compiling packages, as it will - only look for libgdbm.so when compiling dynamically. + only look for libgdbm.so when compiling dynamically.

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 + /usr/lib and /lib) or a directory that is + listed in /etc/ld.so.conf

These are currently @@ -3743,12 +3743,12 @@ Replaces: mail-transport-agent uses a shared library uses this information to determine the dependencies it requires. The files which contain the mapping from shared libraries to the necessary - dependency information are called shlibs files. + dependency information are called shlibs files.

Thus, when a package is built which contains any shared - libraries, it must provide a shlibs file for other + libraries, it must provide a shlibs file for other packages to use, and when a package is built which contains any shared libraries or compiled binaries, it must run dpkg-shlibdeps on these to determine the @@ -3826,7 +3826,7 @@ Replaces: mail-transport-agent

-

debian/shlibs.local

+

debian/shlibs.local

This lists overrides for this package. Its use is described below (see ). @@ -3834,7 +3834,7 @@ Replaces: mail-transport-agent -

/etc/dpkg/shlibs.override

+

/etc/dpkg/shlibs.override

This lists global overrides. This list is normally empty. It is maintained by the local system @@ -3843,12 +3843,12 @@ Replaces: mail-transport-agent -

DEBIAN/shlibs files in the `build directory'

+

DEBIAN/shlibs files in the `build directory'

When packages are being built, any - debian/shlibs files are copied into the + debian/shlibs files are copied into the control file area of the temporary build directory and - given the name shlibs. These files give + given the name shlibs. These files give details of any shared libraries included in the package.

@@ -3857,20 +3857,20 @@ Replaces: mail-transport-agent packages, libfoo2 and foo-runtime. When building the binary packages, the two packages are created in the - directories debian/libfoo2 and - debian/foo-runtime respectively. - (debian/tmp could be used instead of one + directories debian/libfoo2 and + debian/foo-runtime respectively. + (debian/tmp could be used instead of one of these.) Since libfoo2 provides the libfoo shared library, it will require a shlibs file, which will be installed in - debian/libfoo2/DEBIAN/shlibs, eventually + debian/libfoo2/DEBIAN/shlibs, eventually to become - /var/lib/dpkg/info/libfoo2.shlibs. Then + /var/lib/dpkg/info/libfoo2.shlibs. Then when dpkg-shlibdeps is run on the executable - debian/foo-runtime/usr/bin/foo-prog, it + debian/foo-runtime/usr/bin/foo-prog, it will examine the - debian/libfoo2/DEBIAN/shlibs file to + debian/libfoo2/DEBIAN/shlibs file to determine whether foo-prog's library dependencies are satisfied by any of the libraries provided by libfoo2. For this reason, @@ -3884,20 +3884,20 @@ Replaces: mail-transport-agent -

/var/lib/dpkg/info/*.shlibs

+

/var/lib/dpkg/info/*.shlibs

- These are the shlibs files corresponding to + These are the shlibs files corresponding to all of the packages installed on the system, and are maintained by the relevant package maintainers.

-

/etc/dpkg/shlibs.default

+

/etc/dpkg/shlibs.default

This file lists any shared libraries whose packages - have failed to provide correct shlibs files. - It was used when the shlibs setup was first + have failed to provide correct shlibs files. + It was used when the shlibs setup was first introduced, but it is now normally empty. It is maintained by the dpkg maintainer.

@@ -3908,11 +3908,11 @@ Replaces: mail-transport-agent How to use dpkg-shlibdeps and the - shlibs files + shlibs files

Put a call to dpkg-shlibdeps into your - debian/rules file. If your package contains only + debian/rules file. If your package contains only compiled binaries and libraries (but no scripts), you can use a command such as: @@ -3932,7 +3932,7 @@ dpkg-shlibdeps debian/tmp/usr/bin/* debian/tmp/usr/sbin/* \

This command puts the dependency information into the - debian/substvars file, which is then used by + debian/substvars file, which is then used by dpkg-gencontrol. You will need to place a ${shlib:Depends} variable in the Depends field in the control file for this to work. @@ -3941,7 +3941,7 @@ dpkg-shlibdeps debian/tmp/usr/bin/* debian/tmp/usr/sbin/* \

If dpkg-shlibdeps doesn't complain, you're done. If it does complain you might need to create your own - debian/shlibs.local file, as explained below (see + debian/shlibs.local file, as explained below (see ).

@@ -3950,17 +3950,17 @@ dpkg-shlibdeps debian/tmp/usr/bin/* debian/tmp/usr/sbin/* \ dpkg-shlibdeps on each one which contains compiled libraries or binaries. In such a case, you will need to use the -T option to the dpkg - utilities to specify a different substvars file. + utilities to specify a different substvars file. For more details on this and other options, see .

- The shlibs File Format + The shlibs File Format

- Each shlibs file has the same format. Lines + Each shlibs file has the same format. Lines beginning with # are considered to be comments and are ignored. Each line is of the form: @@ -3971,7 +3971,7 @@ dpkg-shlibdeps debian/tmp/usr/bin/* debian/tmp/usr/sbin/* \

We will explain this by reference to the example of the zlib1g package, which (at the time of writing) - installs the shared library /usr/lib/libz.so.1.1.3. + installs the shared library /usr/lib/libz.so.1.1.3.

@@ -4021,15 +4021,15 @@ libz 1 zlib1g (>= 1:1.1.3) - Providing a shlibs file + Providing a shlibs file

If your package provides a shared library, you should create - a shlibs file following the format described above. - It is usual to call this file debian/shlibs (but if + a shlibs file following the format described above. + It is usual to call this file debian/shlibs (but if you have multiple binary packages, you might want to call it - debian/shlibs.package instead). Then - let debian/rules install it in the control area: + debian/shlibs.package instead). Then + let debian/rules install it in the control area: install -m644 debian/shlibs debian/tmp/DEBIAN @@ -4038,35 +4038,35 @@ install -m644 debian/shlibs debian/tmp/DEBIAN install -m644 debian/shlibs.package debian/package/DEBIAN/shlibs 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 + shlibs file in the control area directly from + debian/rules without using a debian/shlibs file at all,

This is what dh_makeshlibs in the debhelper suite does.

- since the debian/shlibs file itself is ignored by + since the debian/shlibs file itself is ignored by dpkg-shlibdeps.

As dpkg-shlibdeps reads the - DEBIAN/shlibs files in all of the binary packages + DEBIAN/shlibs files in all of the binary packages being built from this source package, all of the - DEBIAN/shlibs files should be installed before + DEBIAN/shlibs files should be installed before dpkg-shlibdeps is called on any of the binary packages.

- Writing the debian/shlibs.local file + Writing the debian/shlibs.local file

This file is intended only as a temporary fix if your binaries or libraries depend on a library whose package - does not yet provide a correct shlibs file. + does not yet provide a correct shlibs file.

@@ -4094,8 +4094,8 @@ libc.so.6 => /lib/libc.so.6 (0x40032000) So the foo binary depends on the libbar shared library, but no package seems to - provide a *.shlibs file handling - libbar.so.1 in /var/lib/dpkg/info/. Let's + provide a *.shlibs file handling + libbar.so.1 in /var/lib/dpkg/info/. Let's determine the package responsible: $ dpkg -S /usr/lib/libbar.so.1 @@ -4106,9 +4106,9 @@ Version: 1.0-1 This tells us that the bar1 package, version 1.0-1, is the one we are using. Now we can file a bug against the bar1 package and create our own - debian/shlibs.local to locally fix the problem. + debian/shlibs.local to locally fix the problem. Including the following line into your - debian/shlibs.local file: + debian/shlibs.local file: libbar 1 bar1 (>= 1.0-1) @@ -4117,8 +4117,8 @@ libbar 1 bar1 (>= 1.0-1)

As soon as the maintainer of bar1 provides a - correct shlibs file, you should remove this line - from your debian/shlibs.local file. (You should + correct shlibs file, you should remove this line + from your debian/shlibs.local file. (You should probably also then have a versioned Build-Depends on bar1 to help ensure that others do not have the same problem building your package.) @@ -4160,14 +4160,14 @@ libbar 1 bar1 (>= 1.0-1)

As mandated by the FHS, packages must not place any - files in /usr/local, either by putting them in + files in /usr/local, either by putting them in the file system archive to be unpacked by dpkg or by manipulating them in their maintainer scripts.

However, the package may create empty directories below - /usr/local so that the system administrator knows + /usr/local so that the system administrator knows where to place site-specific files. These directories should be removed on package removal if they are empty. @@ -4175,20 +4175,20 @@ libbar 1 bar1 (>= 1.0-1)

Note, that this applies only to directories below - /usr/local, not in /usr/local. + /usr/local, not in /usr/local. Packages must not create sub-directories in the directory - /usr/local itself, except those listed in FHS, + /usr/local itself, except those listed in FHS, section 4.5. However, you may create directories below them as you wish. You must not remove any of the directories listed in 4.5, even if you created them.

- Since /usr/local can be mounted read-only from a + Since /usr/local can be mounted read-only from a remote server, these directories must be created and removed by the postinst and prerm maintainer scripts and not be included in the - .deb archive. These scripts must not fail if + .deb archive. These scripts must not fail if either of these operations fail.

@@ -4212,26 +4212,26 @@ rmdir /usr/local/share/emacs 2>/dev/null || true in the prerm script. (Note that this form is used to ensure that if the script is interrupted, the - directory /usr/local/share/emacs will still be + directory /usr/local/share/emacs will still be removed.)

- If you do create a directory in /usr/local for + If you do create a directory in /usr/local for local additions to a package, you should ensure that - settings in /usr/local take precedence over the - equivalents in /usr. + settings in /usr/local take precedence over the + equivalents in /usr.

- However, because /usr/local and its contents are + However, because /usr/local and its contents are for exclusive use of the local administrator, a package must not rely on the presence or absence of files or - directories in /usr/local for normal operation. + directories in /usr/local for normal operation.

- The /usr/local directory itself and all the + The /usr/local directory itself and all the subdirectories created by the package should (by default) have permissions 2775 (group-writable and set-group-id) and be owned by root.staff. @@ -4241,14 +4241,14 @@ rmdir /usr/local/share/emacs 2>/dev/null || true The system-wide mail directory

- The system-wide mail directory is /var/mail. This + The system-wide mail directory is /var/mail. This directory is part of the base system and should not owned by any particular mail agents. The use of the old - location /var/spool/mail is deprecated, even + location /var/spool/mail is deprecated, even though the spool may still be physically located there. To maintain partial upgrade compatibility for systems - which have /var/spool/mail as their physical mail - spool, packages using /var/mail must depend on + which have /var/spool/mail as their physical mail + spool, packages using /var/mail must depend on either libc6 (>= 2.1.3-13), or on base-files (>= 2.2.0), or on later versions of either one of these packages. @@ -4286,8 +4286,8 @@ rmdir /usr/local/share/emacs 2>/dev/null || true

Packages other than base-passwd must not modify - /etc/passwd, /etc/shadow, - /etc/group or /etc/gshadow. + /etc/passwd, /etc/shadow, + /etc/group or /etc/gshadow.

@@ -4302,7 +4302,7 @@ rmdir /usr/local/share/emacs 2>/dev/null || true

Globally allocated by the Debian project, the same on every Debian system. These ids will appear in - the passwd and group files of all + the passwd and group files of all Debian systems, new ids in this range being added automatically as the base-passwd package is updated. @@ -4327,7 +4327,7 @@ rmdir /usr/local/share/emacs 2>/dev/null || true adduser will check for the existence of the user or group, and if necessary choose an unused id based on the ranges specified in - adduser.conf. + adduser.conf.

@@ -4337,7 +4337,7 @@ rmdir /usr/local/share/emacs 2>/dev/null || true Dynamically allocated user accounts. By default adduser will choose UIDs and GIDs for user accounts in this range, though - adduser.conf may be used to modify this + adduser.conf may be used to modify this behavior.

@@ -4360,7 +4360,7 @@ rmdir /usr/local/share/emacs 2>/dev/null || true These ids are for packages which are obscure or which require many statically-allocated ids. These packages should check for and create the accounts in - /etc/passwd or /etc/group (using + /etc/passwd or /etc/group (using adduser if it has this facility) if necessary. Packages which are likely to require further allocations should have a `hole' left after @@ -4396,13 +4396,13 @@ rmdir /usr/local/share/emacs 2>/dev/null || true
- System run levels and init.d scripts + System run levels and init.d scripts Introduction

- The /etc/init.d directory contains the scripts + The /etc/init.d directory contains the scripts executed by init at boot time and when the init state (or `runlevel') is changed (see ). @@ -4425,9 +4425,9 @@ rmdir /usr/local/share/emacs 2>/dev/null || true

These scripts are referenced by symbolic links in the - /etc/rcn.d directories. When changing + /etc/rcn.d directories. When changing runlevels, init looks in the directory - /etc/rcn.d for the scripts it should + /etc/rcn.d for the scripts it should execute, where n is the runlevel that is being changed to, or S for the boot-up scripts. @@ -4435,11 +4435,11 @@ rmdir /usr/local/share/emacs 2>/dev/null || true

The names of the links all have the form - Smmscript or - Kmmscript where + Smmscript or + Kmmscript where mm is a two-digit number and script is the name of the script (this should be the same as the - name of the actual script in /etc/init.d). + name of the actual script in /etc/init.d).

@@ -4448,7 +4448,7 @@ rmdir /usr/local/share/emacs 2>/dev/null || true executed, each with the single argument stop, followed by the scripts prefixed with an S, each with the single argument start. (The links are - those in the /etc/rcn.d directory + those in the /etc/rcn.d directory corresponding to the new runlevel.) The K links are responsible for killing services and the S link for starting services upon entering the runlevel. @@ -4457,7 +4457,7 @@ rmdir /usr/local/share/emacs 2>/dev/null || true

For example, if we are changing from runlevel 2 to runlevel 3, init will first execute all of the K - prefixed scripts it finds in /etc/rc3.d, and then + prefixed scripts it finds in /etc/rc3.d, and then all of the S prefixed scripts in that directory. The links starting with K will cause the referred-to file to be executed with an argument of @@ -4505,10 +4505,10 @@ rmdir /usr/local/share/emacs 2>/dev/null || true

Packages that include daemons for system services should - place scripts in /etc/init.d to start or stop + place scripts in /etc/init.d to start or stop services at boot time or during a change of runlevel. These scripts should be named - /etc/init.d/package, and they should + /etc/init.d/package, and they should accept one argument, saying what to do: @@ -4534,11 +4534,11 @@ rmdir /usr/local/share/emacs 2>/dev/null || true The start, stop, restart, and force-reload options should be supported by all - scripts in /etc/init.d, the reload + scripts in /etc/init.d, the reload option is optional.

- The init.d scripts should ensure that they will + The init.d scripts should ensure that they will behave sensibly if invoked with start when the service is already running, or with stop when it isn't, and that they don't kill unfortunately-named user @@ -4548,12 +4548,12 @@ rmdir /usr/local/share/emacs 2>/dev/null || true

If a service reloads its configuration automatically (as in the case of cron, for example), the - reload option of the init.d script + reload option of the init.d script should behave as if the configuration has been reloaded successfully.

- The /etc/init.d scripts must be treated as + The /etc/init.d scripts must be treated as configuration files, either (if they are present in the package, that is, in the .deb file) by marking them as conffiles, or, (if they do not exist in the .deb) @@ -4574,7 +4574,7 @@ rmdir /usr/local/share/emacs 2>/dev/null || true the package has been removed. Only when dpkg is executed with the --purge option will configuration files be removed. In particular, as the - /etc/init.d/package script itself is + /etc/init.d/package script itself is usually a conffile, it will remain on the system if the package is removed but not purged. Therefore, you should include a test statement at the top of the @@ -4585,8 +4585,8 @@ test -f program-executed-later-in-script || exit 0

- Often there are some variables in the init.d - scripts whose values control the bahaviour of the scripts, + Often there are some variables in the init.d + scripts whose values control the behaviour of the scripts, and which a system administrator is likely to want to change. As the scripts themselves are frequently conffiles, modifying them requires that the @@ -4595,8 +4595,8 @@ test -f program-executed-later-in-script || exit 0 the burden on the system administrator, such configurable values should not be placed directly in the script. Instead, they should be placed in a file in - /etc/default, which typically will have the same - base name as the init.d script. This extra file + /etc/default, which typically will have the same + base name as the init.d script. This extra file should be sourced by the script when the script runs. It must contain only variable settings and comments in POSIX sh format. It may either be a @@ -4607,13 +4607,13 @@ test -f program-executed-later-in-script || exit 0

To ensure that vital configurable values are always - available, the init.d script should set default + available, the init.d script should set default values for each of the shell variables it uses, either - before sourcing the /etc/default/ file or + before sourcing the /etc/default/ file or afterwards using something like the : - ${VAR:=default} syntax. Also, the init.d + ${VAR:=default} syntax. Also, the init.d script must behave sensibly and not fail if the - /etc/default file is deleted. + /etc/default file is deleted.

@@ -4623,19 +4623,19 @@ test -f program-executed-later-in-script || exit 0

The program update-rc.d is provided for package maintainers to arrange for the proper creation and - removal of /etc/rcn.d symbolic links, + removal of /etc/rcn.d symbolic links, or their functional equivalent if another method is being used. This may be used by maintainers in their packages' postinst and postrm scripts.

- You must not include any /etc/rcn.d + You must not include any /etc/rcn.d symbolic links in the actual archive or manually create or remove the symbolic links in maintainer scripts; you must use the update-rc.d program instead. (The former will fail if an alternative method of maintaining runlevel information is being used.) You must not include - the /etc/rcn.d directories themselves + the /etc/rcn.d directories themselves in the archive either. (Only the sysvinit package may do so.)

@@ -4647,9 +4647,9 @@ test -f program-executed-later-in-script || exit 0 runlevel (1) and the reboot runlevel (6). The system administrator will have the opportunity to customize runlevels by simply adding, moving, or removing the - symbolic links in /etc/rcn.d if + symbolic links in /etc/rcn.d if symbolic links are being used, or by modifying - /etc/runlevel.conf if the file-rc method + /etc/runlevel.conf if the file-rc method is being used.

@@ -4668,7 +4668,7 @@ fi

This will use a default sequence number of 20. If it does - not matter when or in which order the init.d + not matter when or in which order the init.d script is run, use this default. If it does, then you should talk to the maintainer of the sysvinit package or post to debian-devel, and they will @@ -4687,12 +4687,12 @@ fi Boot-time initialization

- There used to be another directory, /etc/rc.boot, + There used to be another directory, /etc/rc.boot, which contained scripts which were run once per machine boot. This has been deprecated in favour of links from - /etc/rcS.d to files in /etc/init.d as + /etc/rcS.d to files in /etc/init.d as described in . Packages must not - place files in /etc/rc.boot.

+ place files in /etc/rc.boot.

Example @@ -4701,16 +4701,16 @@ fi The bind DNS (nameserver) package wants to make sure that the nameserver is running in multiuser runlevels, and is properly shut down with the system. It - puts a script in /etc/init.d, naming the script + puts a script in /etc/init.d, naming the script appropriately bind. As you can see, the script interprets the argument reload to send the nameserver a HUP signal (causing it to reload its configuration); this way the system administrator can say - /etc/init.d/bind reload to reload the name + /etc/init.d/bind reload to reload the name server. The script has one configurable value, which can be used to pass parameters to the named program at startup; this value is read from - /etc/default/bind (see below). + /etc/default/bind (see below).

@@ -4757,7 +4757,8 @@ force-reload|reload) echo "." ;; *) - echo "Usage: /etc/init.d/bind {start|stop|restart|reload|force-reload}" >&2 + echo "Usage: /etc/init.d/bind " \ + " {start|stop|restart|reload|force-reload}" >&2 exit 1 ;; esac @@ -4768,7 +4769,7 @@ exit 0

Complementing the above init script is a configuration - file /etc/default/bind, which contains + file /etc/default/bind, which contains configurable parameters used by the script. This would be created by the postinst script if it was not already present, and removed on purge by the @@ -4782,8 +4783,8 @@ exit 0

Another example on which you can base your - /etc/init.d scripts is found in - /etc/init.d/skeleton. + /etc/init.d scripts is found in + /etc/init.d/skeleton.

@@ -4806,11 +4807,11 @@ fi - Console messages from init.d scripts + Console messages from init.d scripts

This section describes the formats to be used for messages - written to standard output by the /etc/init.d + written to standard output by the /etc/init.d scripts. The intent is to improve the consistency of Debian's startup and shutdown look and feel. For this reason, please look very carefully at the details. We want @@ -4890,7 +4891,7 @@ Starting description: daemon-1 ... daemon-n.

- For example, the output of /etc/init.d/lpd + For example, the output of /etc/init.d/lpd would look like: Starting printer spooler: lpd. @@ -5015,8 +5016,8 @@ Reloading description configuration...done.

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

+ /etc/crontab, and they must not modify the files in + /var/spool/cron/crontabs.

If a package wants to install a job that has to be executed @@ -5030,7 +5031,7 @@ Reloading description configuration...done. As these directory names imply, the files within them are executed on a 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 @@ -5043,11 +5044,11 @@ Reloading description configuration...done.

If a certain job has to be executed more frequently than daily, the package should install a file - /etc/cron.d/package. This file uses the - same syntax as /etc/crontab and is processed by + /etc/cron.d/package. 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 + /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.)

@@ -5279,7 +5280,7 @@ Reloading description configuration...done. A program must not depend on environment variables to get reasonable defaults. (That's because these environment variables would have to be set in a system-wide - configuration file like /etc/profile, which is not + configuration file like /etc/profile, which is not supported by all shells.)

@@ -5304,7 +5305,7 @@ exec /usr/lib/foo/foo "$@"

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

@@ -5345,11 +5346,11 @@ install -s # (or use strip on the files in debian/tmp) either by using the -s flag to install, or by calling strip on the binaries after they have been copied into - debian/tmp but before the tree is made into a + debian/tmp but before the tree is made into a package.

- The -N flag should not be used. On a.out + The -N flag should not be used. On a.out systems it may have been useful for some very small binaries, but for ELF it has no good effect.

@@ -5376,8 +5377,8 @@ install -s # (or use strip on the files in debian/tmp) to build a debugging variant also makes it easier to build debugging bins and libraries since it provides a documented way of getting this type of build; one does - not have to manually edit debian/rules or - Makefiles. + not have to manually edit debian/rules or + Makefiles.

The following makefile snippet is an example of how one may @@ -5458,11 +5459,11 @@ strip --strip-unneeded your-lib

- Shared object files (often .so files) that are not + Shared object files (often .so files) that are not public libraries, that is, they are not meant to be linked to by third party executables (binaries of other packages), should be installed in subdirectories of the - /usr/lib directory. Such files are exempt from the + /usr/lib directory. Such files are exempt from the rules that govern ordinary shared libraries, except that they must not be installed executable and should be stripped. @@ -5478,10 +5479,10 @@ strip --strip-unneeded your-lib Packages containing shared libraries that may be linked to by other packages' binaries, but which for some compelling reason can not be installed in - /usr/lib directory, may install the shared library - files in subdirectories of the /usr/lib directory, + /usr/lib directory, may install the shared library + files in subdirectories of the /usr/lib directory, in which case they should arrange to add that directory in - /etc/ld.so.conf in the package's post-installation + /etc/ld.so.conf in the package's post-installation script, and remove it in the package's post-removal script.

@@ -5489,9 +5490,9 @@ strip --strip-unneeded your-lib An ever increasing number of packages are using libtool to do their linking. The latest GNU libtools (>= 1.3a) can take advantage of the metadata in the - installed libtool archive files (*.la + installed libtool archive files (*.la files). The main advantage of libtool's - .la files is that it allows libtool to + .la files is that it allows libtool to store and subsequently access metadata with respect to the libraries it builds. libtool will search for those files, which contain a lot of useful information about @@ -5508,16 +5509,16 @@ 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 also store information about + .la files also store information about inter-library dependencies which cannot necessarily be - derived after the .la file is deleted. + derived after the .la file is deleted.

Packages that use libtool to create shared - libraries should include the .la files in the + libraries should include the .la files in the -dev package, unless the package relies on libtool's libltdl library, in which case the .la files must go in the run-time library @@ -5545,16 +5546,16 @@ strip --strip-unneeded your-lib For a straightforward library which has a development environment and a runtime kit including just shared libraries you need to create two packages: - librarynamesoversion, where - soversion is the version number in the + librarynamesoversion, where + soversion is the version number in the 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 and running it for the dynamic linker to be able run the program. For example, if the soname of the library is - libfoo.so.6, the library package would be - called libfoo6. + libfoo.so.6, the library package would be + called libfoo6.

and librarynamesoversion-dev. @@ -5563,7 +5564,7 @@ strip --strip-unneeded your-lib

If you prefer only to support one development version at a time you may name the development package - libraryname-dev; otherwise you may need + libraryname-dev; otherwise you may need to use dpkg's Conflicts mechanism (see ) to ensure that the user only installs one development version at a time (as different development @@ -5579,7 +5580,7 @@ strip --strip-unneeded your-lib

Packages which use the shared library should have a dependency on the name of the shared library package, - librarynamesoversion. When + librarynamesoversion. When the soname changes you can have both versions of the library installed while migrating from the old library to the new.

@@ -5634,12 +5635,12 @@ strip --strip-unneeded your-lib command.

- The standard shell interpreter /bin/sh can be a + 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 + /bin/sh, but echo -n has widespread use in the Linux community (in particular including this policy, the Linux kernel source, many Debian scripts, etc.). This echo -n mechanism is valid but not @@ -5648,7 +5649,7 @@ strip --strip-unneeded your-lib the LSB anyway.

- Thus, shell scripts specifying /bin/sh as + 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 @@ -5660,10 +5661,10 @@ strip --strip-unneeded your-lib

You may wish to restrict your script to POSIX features when - possible so that it may use /bin/sh as its + 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. + /bin/bash.

@@ -5693,7 +5694,7 @@ strip --strip-unneeded your-lib

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

@@ -5711,11 +5712,11 @@ strip --strip-unneeded your-lib 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 /.)

+ directory /.)

In addition, symbolic links should be specified as short as - possible, i.e., link targets like foo/../bar are + possible, i.e., link targets like foo/../bar are deprecated.

@@ -5731,7 +5732,7 @@ strip --strip-unneeded your-lib

For example, in your Makefile or - debian/rules, you can do things like: + debian/rules, you can do things like: ln -fs gcc $(prefix)/bin/cc ln -fs gcc debian/tmp/usr/bin/cc @@ -5742,9 +5743,9 @@ ln -fs ../sbin/sendmail debian/tmp/usr/bin/runq

A symbolic link pointing to a compressed file should always have the same file extension as the referenced file. (For - example, if a file foo.gz is referenced by a + example, if a file foo.gz is referenced by a symbolic link, the filename of the link has to end with - `.gz' too, as in bar.gz.) + `.gz' too, as in bar.gz.)

@@ -5768,9 +5769,9 @@ ln -fs ../sbin/sendmail debian/tmp/usr/bin/runq

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

+ /dev/ttyS*. Programs using the old + /dev/cu* devices should be changed to use + /dev/ttyS*.

@@ -5812,8 +5813,8 @@ ln -fs ../sbin/sendmail debian/tmp/usr/bin/runq

Note that a script that embeds configuration information - (such as most of the files in /etc/default and - /etc/cron.{daily,weekly,monthly}) is de-facto a + (such as most of the files in /etc/default and + /etc/cron.{daily,weekly,monthly}) is de-facto a configuration file and should be treated as such.

@@ -5822,15 +5823,15 @@ ln -fs ../sbin/sendmail debian/tmp/usr/bin/runq Location

Any configuration files created or used by your package - must reside in /etc. If there are several you - should consider creating a subdirectory of /etc + must reside in /etc. If there are several you + should consider creating a subdirectory of /etc named after your package.

If your package creates or uses configuration files - outside of /etc, and it is not feasible to modify - the package to use the /etc, you should still put - the files in /etc and create symbolic links to + outside of /etc, and it is not feasible to modify + the package to use the /etc, you should still put + the files in /etc and create symbolic links to those files from the location that the package requires.

@@ -5915,16 +5916,16 @@ ln -fs ../sbin/sendmail debian/tmp/usr/bin/runq

A common practice is to create a script called - package-configure and have the + package-configure and have the package's postinst call it if and only if the configuration file does not already exist. In certain cases it is useful for there to be an example or template file which the maintainer scripts use. Such files should - be in /usr/share/package or - /usr/lib/package (depending on whether + be in /usr/share/package or + /usr/lib/package (depending on whether they are architecture-independent or not). There should be symbolic links to them from - /usr/share/doc/package/examples if + /usr/share/doc/package/examples if they are examples, and should be perfectly ordinary dpkg-handled files (not configuration files). @@ -6016,16 +6017,16 @@ ln -fs ../sbin/sendmail debian/tmp/usr/bin/runq User configuration files ("dotfiles")

- The files in /etc/skel will automatically be + The files in /etc/skel will automatically be copied into new user accounts by adduser. No other program should reference the files in - /etc/skel. + /etc/skel.

Therefore, if a program needs a dotfile to exist in - advance in $HOME to work sensibly, that dotfile - should be installed in /etc/skel and treated as a + advance in $HOME to work sensibly, that dotfile + should be installed in /etc/skel and treated as a configuration file.

@@ -6042,14 +6043,14 @@ ln -fs ../sbin/sendmail debian/tmp/usr/bin/runq Therefore, if a program in a Debian package needs to be configured in some way in order to operate sensibly, that should be done using a site-wide configuration file placed - in /etc. Only if the program doesn't support a + in /etc. Only if the program doesn't support a site-wide default configuration and the package maintainer doesn't have time to add it may a default per-user file be - placed in /etc/skel. + placed in /etc/skel.

- /etc/skel should be as empty as we can make it. + /etc/skel should be as empty as we can make it. This is particularly true because there is no easy (or necessarily desirable) mechanism for ensuring that the appropriate dotfiles are copied into the accounts of @@ -6062,11 +6063,11 @@ ln -fs ../sbin/sendmail debian/tmp/usr/bin/runq Log files

Log files should usually be named - /var/log/package.log. If you have many + /var/log/package.log. If you have many log files, or need a separate directory for permission - reasons (/var/log is writable only by - root), you should usually create a directory named - /var/log/package and place your log + reasons (/var/log is writable only by + root), you should usually create a directory named + /var/log/package and place your log files there.

@@ -6074,7 +6075,7 @@ ln -fs ../sbin/sendmail debian/tmp/usr/bin/runq Log files must be rotated occasionally so that they don't grow indefinitely; the best way to do this is to drop a log rotation configuration file into the directory - /etc/logrotate.d and use the facilities provided by + /etc/logrotate.d and use the facilities provided by logrotate.

The traditional approach to log files has been to set up @@ -6090,9 +6091,9 @@ ln -fs ../sbin/sendmail debian/tmp/usr/bin/runq The use of logrotate, a program developed by Red Hat, is better, as it centralizes log management. It has both a configuration file - (/etc/logrotate.conf) and a directory where + (/etc/logrotate.conf) and a directory where packages can drop their individual log rotation - configurations (/etc/logrotate.d). + configurations (/etc/logrotate.d).

Here is a good example for a logrotate config @@ -6108,7 +6109,7 @@ postrotate endscript } - This rotates all files under /var/log/foo, saves 12 + This rotates all files under /var/log/foo, saves 12 compressed generations, and forces the daemon to reload its configuration information after the log rotation.

@@ -6208,7 +6209,7 @@ endscript allocated one. Once you have been allocated one you must either make the package depend on a version of the base-passwd package with the id present in - /etc/passwd or /etc/group, or arrange for + /etc/passwd or /etc/group, or arrange for your package to create the user or group itself with the correct id (using adduser) in its preinst or postinst. (Doing it in @@ -6347,8 +6348,8 @@ done Daemons

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

@@ -6362,16 +6363,16 @@ done

- The configuration file /etc/inetd.conf must not be + 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. See their documentation + DebianNet.pm Perl module. See their documentation for details on how to add entries.

If a package wants to install an example entry into - /etc/inetd.conf, the entry must be preceded with + /etc/inetd.conf, the entry must be preceded with exactly one hash character (#). Such lines are treated as `commented out by user' by the update-inetd script and are not changed or @@ -6391,8 +6392,8 @@ done

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

@@ -6420,8 +6421,8 @@ done Thus, every program that launches an editor or pager must 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. + variables are not set, the programs /usr/bin/editor + and /usr/bin/pager should be used, respectively.

@@ -6435,12 +6436,12 @@ done

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 + 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 + /usr/bin/editor and /usr/bin/pager if the variable is not set.

@@ -6448,7 +6449,7 @@ done 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. + /usr/bin/sensible-editor does.

@@ -6492,7 +6493,7 @@ http://localhost/cgi-bin/cgi-bin-name

HTML documents for a package are stored in - /usr/share/doc/package + /usr/share/doc/package and can be referred to as http://localhost/doc/package/filename @@ -6541,12 +6542,12 @@ http://localhost/doc/package/filename

- The mail spool is /var/mail and the interface to - send a mail message is /usr/sbin/sendmail (as per + 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 + 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 + /var/mail symlink. The mail spool is part of the base system and not part of the MTA package.

@@ -6590,10 +6591,10 @@ http://localhost/doc/package/filename using this privilege).

- /etc/aliases is the source file for the system mail + /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 + 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 did not do @@ -6611,15 +6612,15 @@ http://localhost/doc/package/filename

The rmail program used by UUCP - for incoming mail should be /usr/sbin/rmail. + for incoming mail should be /usr/sbin/rmail. Likewise, rsmtp, for receiving - batch-SMTP-over-UUCP, should be /usr/sbin/rsmtp if it + batch-SMTP-over-UUCP, should be /usr/sbin/rsmtp if it is supported.

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 + 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). @@ -6632,7 +6633,7 @@ http://localhost/doc/package/filename 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 + 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 @@ -6655,7 +6656,7 @@ name [`syshostname']:

All the configuration files related to the NNTP (news) servers and clients should be located under - /etc/news.

+ /etc/news.

There are some configuration issues that apply to a number @@ -6663,12 +6664,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.

@@ -6729,7 +6730,7 @@ name [`syshostname']: 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 + /usr/bin/x-terminal-emulator, with a priority of 20.

@@ -6773,7 +6774,7 @@ name [`syshostname']: 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 + /usr/bin/x-window-manager, with a priority calculated as follows:

Start with a priority of 20.

@@ -6858,18 +6859,18 @@ name [`syshostname']:

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

75 dpi fonts must be placed in - /usr/X11R6/lib/X11/fonts/75dpi/. + /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/. + /usr/X11R6/lib/X11/fonts/misc/.

@@ -6877,22 +6878,22 @@ name [`syshostname']:

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

Type 1 fonts must be placed in - /usr/X11R6/lib/X11/fonts/Type1/. If font + /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/ + 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 + created nor used. (The PEX, CID, + and cyrillic directories are excepted for historical reasons, but installation of files into these directories remains discouraged.)

@@ -6921,7 +6922,7 @@ name [`syshostname']:

- Fonts destined for the misc subdirectory + 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 @@ -6932,22 +6933,22 @@ name [`syshostname']:

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

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

- fonts.alias and fonts.scale + fonts.alias and fonts.scale files, if needed, should be provided in the directory - /etc/X11/fonts/fontdir/package.extension, + /etc/X11/fonts/fontdir/package.extension, where fontdir is the name of the subdirectory of - /usr/X11R6/lib/X11/fonts/ where the + /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 @@ -6972,7 +6973,7 @@ name [`syshostname']:

Font packages that provide one or more - fonts.scale files as described above must + fonts.scale files as described above must invoke update-fonts-scale on each directory into which they installed fonts before invoking @@ -6987,7 +6988,7 @@ name [`syshostname']:

Font packages that provide one or more - fonts.alias files as described above must + 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 @@ -7031,20 +7032,20 @@ name [`syshostname']:

Application defaults files must be installed in the - directory /etc/X11/app-defaults/ (use of a - localized subdirectory of /etc/X11/ as described + 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/. + 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 + /etc/X11/Xresources/ directory, which must registered as a conffile or handled as a configuration file.

@@ -7056,10 +7057,10 @@ name [`syshostname']:

Important: packages that install files into the - /etc/X11/Xresources/ directory must conflict with + /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 + previously-existing /etc/X11/Xresources file which had been customized by the system administrator.

@@ -7069,13 +7070,13 @@ name [`syshostname']:

Packages using the X Window System should not be - configured to install files under the /usr/X11R6/ + configured to install files under the /usr/X11R6/ directory unless they use imake. The - /usr/X11R6/ directory hierarchy should be + /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/ + packages may transition out of the /usr/X11R6/ directory at the maintainer's discretion.

Imake-using programs are exempt because, @@ -7083,8 +7084,8 @@ name [`syshostname']: 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 + 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. @@ -7092,30 +7093,30 @@ name [`syshostname']: 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 + 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 + /etc/X11/ corresponding to the package name due to these programs' tight integration with the mechanisms of the X Window System. Application-level programs should - use the /etc/ directory unless otherwise mandated + use the /etc/ directory unless otherwise mandated by policy. The installation of files into subdirectories - of /usr/X11R6/include/X11/ and - /usr/X11R6/lib/X11/ is permitted but discouraged; + of /usr/X11R6/include/X11/ and + /usr/X11R6/lib/X11/ is permitted but discouraged; package maintainers should determine if subdirectories of - /usr/lib/ and /usr/share/ can be used + /usr/lib/ and /usr/share/ can be used instead. (The use of symbolic links from the - X11R6 directories to other FHS-compliant + 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, + /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 + /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.

@@ -7172,7 +7173,7 @@ name [`syshostname']:

Please refer to the `Debian Emacs Policy' (documented in - debian-emacs-policy.gz of the + debian-emacs-policy.gz of the emacsen-common package) for details of how to package emacs lisp programs.

@@ -7182,7 +7183,7 @@ name [`syshostname']: Games

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

@@ -7211,7 +7212,7 @@ name [`syshostname']: data files or other static information made unreadable so that they can only be accessed through set-id programs provided. You should not do this in a Debian package: anyone can - download the .deb file and read the data from it, + download the .deb file and read the data from it, so there is no point making the files unreadable. Not making the files unreadable also means that you don't have to make so many programs set-id, which reduces the risk of a @@ -7219,10 +7220,10 @@ name [`syshostname']:

As described in the FHS, binaries of games should be - installed in the directory /usr/games. This also + installed in the directory /usr/games. This also applies to games that use the X Window System. Manual pages for games (X and non-X games) should be installed in - /usr/share/man/man6.

+ /usr/share/man/man6.

@@ -7234,7 +7235,7 @@ name [`syshostname']:

You should install manual pages in nroff source - form, in appropriate places under /usr/share/man. You + form, in appropriate places under /usr/share/man. You should only use sections 1 to 9 (see the FHS for more details). You must not install a preformatted `cat page'.

@@ -7253,7 +7254,7 @@ name [`syshostname']: from the requested manual page to the manual page may be provided. This symbolic link can be created from - debian/rules like this: + debian/rules like this: ln -s ../man7/undocumented.7.gz \ debian/tmp/usr/share/man/man[1-9]/requested_manpage.[1-9].gz @@ -7278,15 +7279,15 @@ ln -s ../man7/undocumented.7.gz \

If one manpage needs to be accessible via several names it - is better to use a symbolic link than the .so + 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 + 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 - absolute filenames in .so directives. The filename - in a .so in a manpage should be relative to the + 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). If you do not create any links + /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 @@ -7308,12 +7309,12 @@ ln -s ../man7/undocumented.7.gz \ Info documents

- Info documents should be installed in /usr/share/info. + Info documents should be installed in /usr/share/info. They should be compressed with gzip -9.

Your package should call install-info to update - the Info dir file in its postinst + the Info dir file in its postinst script when called with a configure argument, for example: @@ -7325,7 +7326,7 @@ install-info --quiet --section Development Development \ It is a good idea to specify a section for the location of your program; this is done with the --section switch. To determine which section to use, you should look - at /usr/share/info/dir on your system and choose the most + at /usr/share/info/dir on your system and choose the most relevant (or create a new section if none of the current sections are relevant). Note that the --section flag takes two arguments; the first is a regular expression @@ -7352,7 +7353,7 @@ install-info --quiet --remove /usr/share/info/foobar.info Any additional documentation that comes with the package may be installed at the discretion of the package maintainer. Text documentation should be installed in the directory - /usr/share/doc/package, where + /usr/share/doc/package, where package is the name of the package, and compressed with gzip -9 unless it is small.

@@ -7365,20 +7366,20 @@ install-info --quiet --remove /usr/share/info/foobar.info

It is often a good idea to put text information files - (READMEs, changelogs, and so forth) that come with - the source package in /usr/share/doc/package + (READMEs, changelogs, and so forth) that come with + the source package in /usr/share/doc/package in the binary package. However, you don't need to install the instructions for building and installing the package, of course!

- Files in /usr/share/doc should not be referenced by + Files in /usr/share/doc should not be referenced by any program, and the system administrator should be able to delete them without causing any programs to break. Any files that are referenced by programs but are also useful as standalone documentation should be installed under - /usr/share/package/ with symbolic links - from /usr/share/doc/package/. + /usr/share/package/ with symbolic links + from /usr/share/doc/package/.

@@ -7388,12 +7389,12 @@ install-info --quiet --remove /usr/share/info/foobar.info

Former Debian releases placed all additional documentation - in /usr/doc/package. To realize a + in /usr/doc/package. To realize a smooth migration to - /usr/share/doc/package, each package - must maintain a symlink /usr/doc/package + /usr/share/doc/package, each package + must maintain a symlink /usr/doc/package that points to the new location of its documentation in - /usr/share/doc/packageThese + /usr/share/doc/packageThese symlinks will be removed in the future, but they have to be there for compatibility reasons until all packages have moved and the policy is changed accordingly.. @@ -7437,7 +7438,7 @@ fi markup format that can be converted to various other formats you should if possible ship HTML versions in a binary package, in the directory - /usr/share/doc/appropriate-package or + /usr/share/doc/appropriate-package or its subdirectories.

The rationale: The important thing here is that HTML @@ -7459,7 +7460,7 @@ fi

Every package must be accompanied by a verbatim copy of its copyright and distribution license in the file - /usr/share/doc/package/copyright. This + /usr/share/doc/package/copyright. This file must neither be compressed nor be a symbolic link.

@@ -7473,13 +7474,13 @@ fi

A copy of the file which will be installed in - /usr/share/doc/package/copyright should - be in debian/copyright in the source package. + /usr/share/doc/package/copyright should + be in debian/copyright in the source package.

- /usr/share/doc/package may be a symbolic - link to another directory in /usr/share/doc only if + /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 @@ -7489,18 +7490,18 @@ fi

Packages distributed under the UCB BSD license, the Artistic license, the GNU GPL, and the GNU LGPL should refer to the - files /usr/share/common-licenses/BSD, - /usr/share/common-licenses/Artistic, - /usr/share/common-licenses/GPL, and - /usr/share/common-licenses/LGPL respectively, + files /usr/share/common-licenses/BSD, + /usr/share/common-licenses/Artistic, + /usr/share/common-licenses/GPL, and + /usr/share/common-licenses/LGPL respectively, rather than quoting them in the copyright file.

- You should not use the copyright file as a general README + You should not use the copyright file as a general README file. If your package has such a file it should be - installed in /usr/share/doc/package/README or - README.Debian or some other appropriate place.

+ installed in /usr/share/doc/package/README or + README.Debian or some other appropriate place.

@@ -7509,14 +7510,14 @@ fi

Any examples (configurations, source files, whatever), should be installed in a directory - /usr/share/doc/package/examples. These + /usr/share/doc/package/examples. These files should not be referenced by any program: they're there for the benefit of the system administrator and users as documentation only. Architecture-specific example files should be installed in a directory - /usr/lib/package/examples with symbolic + /usr/lib/package/examples with symbolic links to them from - /usr/share/doc/package/examples, or the + /usr/share/doc/package/examples, or the latter directory itself may be a symbolic link to the former.

@@ -7527,16 +7528,16 @@ fi

Packages that are not Debian-native must contain a - compressed copy of the debian/changelog file from + compressed copy of the debian/changelog file from the Debian source tree in - /usr/share/doc/package with the name - changelog.Debian.gz. If an upstream changelog is + /usr/share/doc/package with the name + changelog.Debian.gz. If an upstream changelog is available, it should be accessible as - /usr/share/doc/package/changelog.gz in + /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 a plain text changelog.gz should be generated + /usr/share/doc/package/changelog.html.gz + and a plain text changelog.gz should be generated from it using, for example, lynx -dump -nolist. If the upstream changelog files do not already conform to this naming convention, then this may be achieved either by @@ -7561,10 +7562,10 @@ fi the Debian changelog and the upstream one because there is no separate upstream maintainer then that changelog should usually be installed as - /usr/share/doc/package/changelog.gz; if + /usr/share/doc/package/changelog.gz; if there is a separate upstream maintainer, but no upstream changelog, then the Debian changelog should still be called - changelog.Debian.gz.

+ changelog.Debian.gz.

@@ -7614,7 +7615,7 @@ fi

This manual describes the technical aspects of creating Debian - binary packages (.deb files). It documents the + binary packages (.deb files). It documents the behaviour of the package management programs dpkg, dselect et al. and the way they interact with packages.

@@ -7686,7 +7687,7 @@ fi In the future binary packages may also contain other components, such as checksums and digital signatures. The format for the archive is described in full in the - deb(5) manpage. + deb(5) manpage.

@@ -7709,7 +7710,7 @@ fi directory tree which contains all the files and directories you want to have in the filesystem data part of the package. In Debian-format source packages this directory is usually - debian/tmp, relative to the top of the package's + debian/tmp, relative to the top of the package's source tree.

@@ -7750,7 +7751,7 @@ fi

This will build the package in - directory.deb. (dpkg knows + directory.deb. (dpkg knows that --build is a dpkg-deb option, so it invokes dpkg-deb with the same arguments to build the package.) @@ -7855,7 +7856,7 @@ fi controlling terminal and can interact with the user. If they need to prompt for passwords, do full-screen interaction or something similar you should do these - things to and from /dev/tty, since + things to and from /dev/tty, since dpkg will at some point redirect scripts' standard input and output so that it can log the installation process. Likewise, because these scripts @@ -7913,7 +7914,7 @@ fi The binary package control files of packages built from Debian sources are made by a special tool, dpkg-gencontrol, which reads - debian/control and debian/changelog to + debian/control and debian/changelog to find the information it needs. See for more details.

@@ -8048,12 +8049,12 @@ fi

- with the filename.tar.gz and - filename.diff.gz (if applicable) in + with the filename.tar.gz and + filename.diff.gz (if applicable) in the same directory. It unpacks into - package-version, and if + package-version, and if applicable - package-version.orig, in + package-version.orig, in the current directory.

@@ -8065,8 +8066,8 @@ fi

- This will create the .dsc, .tar.gz and - .diff.gz (if appropriate) in the current + This will create the .dsc, .tar.gz and + .diff.gz (if appropriate) in the current directory. dpkg-source does not clean the source tree first - this must be done separately if it is required. @@ -8085,7 +8086,7 @@ fi

dpkg-buildpackage is a script which invokes - dpkg-source, the debian/rules + dpkg-source, the debian/rules targets clean, build and binary, dpkg-genchanges and pgp to build a signed source and binary @@ -8143,7 +8144,7 @@ fi

- This program is usually called from debian/rules + This program is usually called from debian/rules (see ) in the top level of the source tree.

@@ -8172,13 +8173,13 @@ fi It is also necessary for dpkg-gencontrol to be run after dpkg-shlibdeps so that the variable substitutions created by - dpkg-shlibdeps in debian/substvars + dpkg-shlibdeps in debian/substvars are available.

For a package which generates only one binary package, and - which builds it in debian/tmp relative to the top + which builds it in debian/tmp relative to the top of the source package, it is usually sufficient to call dpkg-gencontrol.

@@ -8196,7 +8197,7 @@ fi

dpkg-gencontrol also adds information to the - list of files in debian/files, for the benefit of + list of files in debian/files, for the benefit of (for example) a future invocation of dpkg-genchanges.

@@ -8208,7 +8209,7 @@ fi

- This program is usually called from debian/rules + This program is usually called from debian/rules just before dpkg-gencontrol (see ), in the top level of the source tree.

@@ -8243,7 +8244,7 @@ fi

dpkg-shlibdeps does not directly cause the output control file to be modified. Instead by default it - adds to the debian/substvars file variable + adds to the debian/substvars file variable settings like shlibs:Depends. These variable settings must be referenced in dependency fields in the appropriate per-binary-package sections of the source @@ -8255,11 +8256,11 @@ fi kinds of binaries, simple C binaries like ps which require a predependency and full-screen ncurses binaries like top which require only a - recommendation. It can say in its debian/rules: + recommendation. It can say in its debian/rules: dpkg-shlibdeps -dPre-Depends ps -dRecommends top - and then in its main control file debian/control: + and then in its main control file debian/control: ... Package: procps @@ -8287,7 +8288,7 @@ fi dpkg-distaddfile - adds a file to - debian/files + debian/files

@@ -8297,34 +8298,34 @@ fi

dpkg-distaddfile adds a file to the - debian/files file so that it will be included in - the .changes file when + debian/files file so that it will be included in + the .changes file when dpkg-genchanges is run.

It is usually invoked from the binary target of - debian/rules: + debian/rules: dpkg-distaddfile filename section priority The filename is relative to the directory where dpkg-genchanges will expect to find it - this is usually the directory above the top level of the source - tree. The debian/rules target should put the + tree. The debian/rules target should put the file there just before or just after calling dpkg-distaddfile.

The section and priority are passed - unchanged into the resulting .changes file. See + unchanged into the resulting .changes file. See .

- dpkg-genchanges - generates a .changes upload + dpkg-genchanges - generates a .changes upload control file @@ -8338,7 +8339,7 @@ fi

It is usually called in the top level of a built source tree, and when invoked with no arguments will print out a - straightforward .changes file based on the + straightforward .changes file based on the information in the source package's changelog and control file and the binary and source packages which should have been built. @@ -8353,8 +8354,8 @@ fi

This program is used internally by dpkg-source et al. It may also occasionally - be useful in debian/rules and elsewhere. It - parses a changelog, debian/changelog by default, + be useful in debian/rules and elsewhere. It + parses a changelog, debian/changelog by default, and prints a control-file format representation of the information in it to standard output.

@@ -8366,7 +8367,7 @@ fi

This program can be used manually, but is also invoked by - dpkg-buildpackage or debian/rules to set + dpkg-buildpackage or debian/rules to set to set environment or make variables which specify the build and host architecture for the package building process.

@@ -8389,11 +8390,11 @@ fi

The extra files created for Debian are in the subdirectory - debian of the top level of the Debianised source + debian of the top level of the Debianised source tree. They are described below.

- debian/rules - the main building + debian/rules - the main building script @@ -8410,7 +8411,7 @@ fi

- Since an interactive debian/rules script makes it + Since an interactive debian/rules script makes it impossible to autocompile that package and also makes it hard for other people to reproduce the same binary package, all required targets have to be @@ -8459,7 +8460,7 @@ fi

If one or both of the targets build-arch and build-indep are not provided, then invoking - debian/rules with one of the not-provided + debian/rules with one of the not-provided targets as arguments should produce a exit status code of 2. Usually this is provided automatically by make if the target is missing. @@ -8619,7 +8620,7 @@ fi

- Additional targets may exist in debian/rules, + Additional targets may exist in debian/rules, either as published or undocumented interfaces or for the package's internal use.

@@ -8670,7 +8671,7 @@ fi
- debian/control + debian/control

@@ -8756,7 +8757,7 @@ fi generate control files for binary packages (see below), by dpkg-genchanges to generate the .changes file to accompany the upload, and by - dpkg-source when it creates the .dsc + dpkg-source when it creates the .dsc source control file as part of a source archive.

@@ -8813,7 +8814,7 @@ fi
- debian/changelog + debian/changelog

@@ -8863,7 +8864,7 @@ fi

urgency is the value for the Urgency - field in the .changes file for the upload. See + field in the .changes file for the upload. See . It is not possible to specify an urgency containing commas; commas are used to separate keyword=value settings in @@ -8886,7 +8887,7 @@ fi necessarily be those of the usual package maintainer. They should be the details of the person doing this version. The information here will be - copied to the .changes file, and then later used + copied to the .changes file, and then later used to send an acknowledgement when the upload has been installed.

@@ -8944,9 +8945,9 @@ fi

If such a line exists then dpkg-parsechangelog will look for the parser as - /usr/lib/dpkg/parsechangelog/format-name + /usr/lib/dpkg/parsechangelog/format-name or - /usr/local/lib/dpkg/parsechangelog/format-name; + /usr/local/lib/dpkg/parsechangelog/format-name; it is an error for it not to find it, or for it not to be an executable program. The default changelog format is dpkg, and a parser for it is provided with @@ -9045,7 +9046,7 @@ fi all.

- debian/substvars + debian/substvars and variable substitutions @@ -9056,45 +9057,45 @@ fi their output just before writing it. Variable substitutions have the form ${variable-name}. The optional file - debian/substvars contains variable substitutions + debian/substvars contains variable substitutions to be used; variables can also be set directly from - debian/rules using the -V option to the + debian/rules using the -V option to the source packaging commands, and certain predefined variables are available.

The is usually generated and modified dynamically by - debian/rules targets; in this case it must be + debian/rules targets; in this case it must be removed by the clean target.

See for full details about source variable substitutions, including the - format of debian/substvars.

+ format of debian/substvars.

- debian/files + debian/files

This file is not a permanent part of the source tree; it is used while building packages to record which files are being generated. dpkg-genchanges uses it - when it generates a .changes file. + when it generates a .changes file.

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 + files.new is used as a temporary file by dpkg-gencontrol and dpkg-distaddfile - they write a new - version of files here before renaming it, + version of files here before renaming it, to avoid leaving a corrupted copy if an error occurs

@@ -9106,7 +9107,7 @@ fi

dpkg-gencontrol adds an entry to this file - for the .deb file that will be created by + for the .deb file that will be created by dpkg-deb from the control file that it generates, so for most packages all that needs to be done with this file is to delete it in clean. @@ -9118,16 +9119,16 @@ fi made with dpkg-gencontrol then they should be placed in the parent of the package's top-level directory and dpkg-distaddfile should be called to add - the file to the list in debian/files.

+ the file to the list in debian/files.

- debian/tmp + debian/tmp

This is the canonical temporary location for the construction of binary packages by the binary - target. The directory tmp serves as the root of + target. The directory tmp serves as the root of the filesystem tree as it is being constructed (for example, by using the package's upstream makefiles install targets and redirecting the output there), and it also @@ -9138,12 +9139,12 @@ fi

If several binary packages are generated from the same source tree it is usual to use several - debian/tmpsomething directories, for - example tmp-a or tmp-doc. + debian/tmpsomething directories, for + example tmp-a or tmp-doc.

- Whatever tmp directories are created and used by + Whatever tmp directories are created and used by binary must of course be removed by the clean target.

@@ -9210,9 +9211,9 @@ fi Original source archive - - + package_upstream-version.orig.tar.gz - +
@@ -9222,16 +9223,16 @@ fi tar file containing the source code from the upstream authors of the program. The tarfile unpacks into a directory - package-upstream-version.orig, + package-upstream-version.orig, and does not contain files anywhere other than in there or in its subdirectories.

Debianisation diff - - + package_upstream_version-revision.diff.gz - +
@@ -9248,14 +9249,14 @@ fi

All the directories in the diff must exist, except the - debian subdirectory of the top of the source + debian subdirectory of the top of the source tree, which will be created by dpkg-source if necessary when unpacking.

The dpkg-source program will - automatically make the debian/rules file + automatically make the debian/rules file executable (see below).

@@ -9266,9 +9267,9 @@ fi maintainer is the same as the upstream maintainer - the format is slightly different: then there is no diff, and the tarfile is named - package_version.tar.gz and + package_version.tar.gz and contains a directory - package-version. + package-version.

@@ -9283,16 +9284,16 @@ fi

- Untar the tarfile, which will create a .orig + Untar the tarfile, which will create a .orig directory.

-

Rename the .orig directory to - package-version.

+

Rename the .orig directory to + package-version.

- Create the subdirectory debian at the top of + Create the subdirectory debian at the top of the source tree.

Apply the diff using patch -p0.

@@ -9306,7 +9307,7 @@ fi It is not possible to generate a valid Debian source archive without using dpkg-source. In particular, attempting to use diff directly to generate the - .diff.gz file will not work. + .diff.gz file will not work.

Restrictions on objects in source packages @@ -9340,7 +9341,7 @@ fi The source packaging tools manage the changes between the original and Debianised source using diff and patch. Turning the original source tree as - included in the .orig.tar.gz into the debianised + included in the .orig.tar.gz into the debianised source must not involve any changes which cannot be handled by these tools. Problematic changes which cause dpkg-source to halt with an error when @@ -9350,7 +9351,7 @@ fi

Changing the targets of symbolic links.

-

Creating directories, other than debian.

+

Creating directories, other than debian.

Changes to the contents of binary files.

Changes which cause dpkg-source to @@ -9381,16 +9382,16 @@ fi dpkg-source, are:

Changing the permissions of files (other than - debian/rules) and directories.

+ debian/rules) and directories.

- The debian directory and debian/rules + The debian directory and debian/rules are handled specially by dpkg-source - before - applying the changes it will create the debian + applying the changes it will create the debian directory, and afterwards it will make - debian/rules world-exectuable. + debian/rules world-exectuable.

@@ -9403,7 +9404,7 @@ fi

Many of the tools in the dpkg suite manipulate data in a common format, known as control files. Binary and - source packages have control data as do the .changes + source packages have control data as do the .changes files which control the installation of uploaded files, and dpkg's internal databases are in a similar format. @@ -9525,9 +9526,9 @@ fi

- In the main debian/control file in the source + In the main debian/control file in the source package, or in the source package control file - .dsc, a list of architectures (separated by + .dsc, a list of architectures (separated by spaces) is also allowed, as is the special value any. A list indicates that the source will build an architecture-dependent package, and will only work @@ -9540,7 +9541,7 @@ fi

- In a .changes file the Architecture + In a .changes file the Architecture field lists the architecture(s) of the package(s) currently being uploaded. This will be a list; if the source for the package is being uploaded too the special @@ -9573,7 +9574,7 @@ fi

- In a .changes file or parsed changelog data this + In a .changes file or parsed changelog data this contains the name and email address of the person responsible for the particular version in question - this may not be the package's usual maintainer. @@ -9594,14 +9595,14 @@ fi

In a main source control information or a - .changes or .dsc file or parsed + .changes or .dsc file or parsed changelog data this may contain only the name of the source package.

In the control file of a binary package (or in a - Packages file) it may be followed by a version + Packages file) it may be followed by a version number in parentheses.

@@ -9640,7 +9641,7 @@ fi

- In a .changes file it contains a summary of the + In a .changes file it contains a summary of the descriptions for the packages being uploaded. The part of the field before the first newline is empty; thereafter each line has the name of a binary package and the summary @@ -9654,7 +9655,7 @@ fi

This is a boolean field which may occur only in the control file of a binary package (or in the - Packages file) or in a per-package fields + Packages file) or in a per-package fields paragraph of a main source control data file.

@@ -9679,9 +9680,9 @@ fi

- When they appear in the debian/control file these + When they appear in the debian/control file these fields give values for the section and priority subfields - of the Files field of the .changes file, + of the Files field of the .changes file, and give defaults for the section and priority of the binary packages.

@@ -9690,8 +9691,8 @@ fi The section and priority are represented, though not as separate fields, in the information for each file in the -Filefield of a - .changes file. The section value in a - .changes file is used to decide where to install + .changes file. The section value in a + .changes file is used to decide where to install a package in the FTP archive.

@@ -9707,10 +9708,10 @@ fi

These fields may appear in binary package control files, in which case they provide a default value in case the - Packages files are missing the information. + Packages files are missing the information. dpkg and dselect will only use - the value from a .deb file if they have no other - information; a value listed in a Packages file + the value from a .deb file if they have no other + information; a value listed in a Packages file will always take precedence. By default dpkg-gencontrol does not include the section and priority in the control file of a binary package - use @@ -9726,7 +9727,7 @@ fi

- When it appears in the .dsc file it is the list + When it appears in the .dsc file it is the list of binary packages which a source package can produce. It does not necessarily produce all of these binary packages for every architecture. The source control file doesn't @@ -9735,7 +9736,7 @@ fi

- When it appears in a .changes file it lists the + When it appears in a .changes file it lists the names of the binary packages actually being uploaded.

@@ -9747,7 +9748,7 @@ fi A space after each comma is conventional.

Currently the packages must be separated using - only spaces in the .changes file.

+ only spaces in the .changes file.

Installed-Size @@ -9755,7 +9756,7 @@ fi

This field appears in the control files of binary - packages, and in the Packages files. It gives + packages, and in the Packages files. It gives the total amount of disk space required to install the named package.

@@ -9779,7 +9780,7 @@ fi

- In the .dsc (Debian source control) file each + In the .dsc (Debian source control) file each line contains the MD5 checksum, size and filename of the tarfile and (if applicable) diff file which make up the remainder of the source package. @@ -9793,7 +9794,7 @@ fi

- In the .changes file this contains one line per + In the .changes file this contains one line per file being uploaded. Each line contains the MD5 checksum, size, section and priority and the filename. The section and priority are the values of the corresponding fields in @@ -9817,12 +9818,12 @@ fi no new original source archive is being distributed the .dsc must still contain the Files field entry for the original source archive - package-upstream-version.orig.tar.gz, - but the .changes file should leave it out. In + package-upstream-version.orig.tar.gz, + but the .changes file should leave it out. In this case the original source archive on the distribution site must match exactly, byte-for-byte, the original source archive which was used to generate the - .dsc file and diff which are being uploaded.

+ .dsc file and diff which are being uploaded.

@@ -9850,7 +9851,7 @@ fi

- In a .changes file or parsed changelog output + In a .changes file or parsed changelog output this contains the (space-separated) name(s) of the distribution(s) where this version of the package should be or was installed. Distribution names follow the rules @@ -9955,7 +9956,7 @@ fi

- This field appears in the .changes file and in + This field appears in the .changes file and in parsed changelogs; its value appears as the value of the urgency attribute in a dpkg-style changelog (see ). @@ -9977,7 +9978,7 @@ fi

- This field occurs in .changes files, and + This field occurs in .changes files, and specifies a format revision for the file. The format described here is version 1.5. The syntax of the format value is the same as that of a package version @@ -9989,7 +9990,7 @@ fi

- In a .changes file or parsed changelog this field + In a .changes file or parsed changelog this field contains the human-readable changes data, describing the differences between the last version and the current one.

@@ -10032,7 +10033,7 @@ fi

- These fields in Packages files give the size (in + These fields in Packages files give the size (in bytes, expressed in decimal) and MD5 checksum of the file(s) which make(s) up a binary package in the distribution. If the package is split into several parts @@ -10250,8 +10251,8 @@ fi

If you do go down this route it's probably a good idea to make the program that generates the configuration file(s) a - separate program in /usr/sbin, by convention called - packageconfig and then run that if + separate program in /usr/sbin, by convention called + packageconfig and then run that if appropriate from the post-installation script. The packageconfig program should not unquestioningly overwrite an existing configuration - if its @@ -10339,7 +10340,7 @@ fi call dpkg-divert in its preinst to add the diversion and rename the existing file. For example, supposing that a smailwrapper package wishes to - install a wrapper around /usr/sbin/smail: + install a wrapper around /usr/sbin/smail: if [ install = "$1" -o upgrade = "$1" ]; then dpkg-divert --package smailwrapper --add --rename \ @@ -10349,7 +10350,7 @@ fi doesn't try to add the diversion again when smailwrapper is upgraded. The --package smailwrapper ensures that smailwrapper's - copy of /usr/sbin/smail can bypass the diversion and + copy of /usr/sbin/smail can bypass the diversion and get installed as the true version.

-- 2.39.2