X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=policy.sgml;h=27082429c81303e3bdc0c51c2ac2c38e2892eff1;hb=c3b208f5570c071ee42b91586ce3d6664256e6f5;hp=9479fc9d5ef3269fcdcbfdbae965a9d8b59217b8;hpb=73edbbc37d79bb9c3c6069c957c2bf7500fc1926;p=debian%2Fdebian-policy.git diff --git a/policy.sgml b/policy.sgml index 9479fc9..2708242 100644 --- a/policy.sgml +++ b/policy.sgml @@ -158,6 +158,14 @@ distributed in some other way or is intended for local use only.

+ +

+ udebs (stripped-down binary packages used by the Debian Installer) do + not comply with all of the requirements discussed here. See the + for more + information about them. +

@@ -1266,7 +1274,7 @@ zope.

Essential is defined as the minimal set of functionality that must be available and usable on the system at all times, even - when packages are in an unconfigured (but unpacked) state. + when packages are in the "Unpacked" state. Packages are tagged essential for a system using the Essential control field. The format of the Essential control field is described in dpkg to stave off boredom on - the part of a user installing many packages. This means, - amongst other things, using the --quiet option on - install-info. + the part of a user installing many packages. This means, + amongst other things, not passing the --verbose + option to update-alternatives.

@@ -1353,7 +1361,7 @@ zope. installed together. If update-alternatives is not used, then each package must use Conflicts to ensure that other packages are - de-installed. (In this case, it may be appropriate to + removed. (In this case, it may be appropriate to specify a conflict against earlier versions of something that previously did not use update-alternatives; this is an exception to @@ -1729,7 +1737,7 @@ zope. /closes:\s*(?:bug)?\#?\s?\d+(?:,\s*(?:bug)?\#?\s?\d+)*/i Then all of the bug numbers listed will be closed by the - archive maintenance script (katie) using the + archive maintenance software (dak) using the version of the changelog entry. This information is conveyed via the Closes field @@ -1908,7 +1916,8 @@ zope.

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

@@ -2153,7 +2162,7 @@ zope.

The architectures we build on and build for are determined by make variables using the - utility dpkg-architecture. + utility dpkg-architecture. You can determine the Debian architecture and the GNU style architecture specification string for the build architecture as well as for the host architecture. The build architecture is @@ -2649,7 +2658,6 @@ Package: libc6 Source (mandatory) Maintainer (mandatory) Uploaders - DM-Upload-Allowed Section (recommended) Priority (recommended) Build-Depends et al @@ -2672,6 +2680,7 @@ Package: libc6 Description (mandatory) Homepage Built-Using + Package-Type

@@ -2748,13 +2757,14 @@ Package: libc6 Version (mandatory) Maintainer (mandatory) Uploaders - DM-Upload-Allowed Homepage Vcs-Browser, Vcs-Git, et al. + Dgit Standards-Version (recommended) Build-Depends et al + Package-List (recommended) Checksums-Sha1 - and Checksums-Sha256 (recommended) + and Checksums-Sha256 (mandatory) Files (mandatory)

@@ -2807,7 +2817,7 @@ Package: libc6 Closes Changes (mandatory) Checksums-Sha1 - and Checksums-Sha256 (recommended) + and Checksums-Sha256 (mandatory) Files (mandatory)

@@ -3741,28 +3751,19 @@ Checksums-Sha256:

- In the .dsc file, these fields should list all + In the .dsc file, these fields list all files that make up the source package. In - the .changes file, these fields should list all + the .changes file, these fields list all files being uploaded. The list of files in these fields must match the list of files in the Files field.

- + DM-Upload-Allowed

- Indicates that Debian Maintainers may upload this package to - the Debian archive. The only valid value is yes. If - the field DM-Upload-Allowed: yes is present in the - source section of the source control file of the most recent - version of a package in unstable or experimental, the Debian - archive will accept uploads of this package signed with a key - in the Debian Maintainer keyring. See the General - Resolution for more - details. + Obsolete, see below.

@@ -3812,6 +3813,54 @@ Checksums-Sha256:

+ + + Package-List + +

+ Multiline field listing all the packages that can be built from + the source package, considering every architecture. The first line + of the field value is empty. Each one of the next lines describes + one binary package, by listing its name, type, section and priority + separated by spaces. Fifth and subsequent space-separated items + may be present and parsers must allow them. See the + Package-Type field for a list of + package types. +

+
+ + + Package-Type + +

+ Simple field containing a word indicating the type of package: + deb for binary packages and udeb for micro binary + packages. Other types not defined here may be indicated. In + source package control files, the Package-Type field + should be omitted instead of giving it a value of deb, as + this value is assumed for paragraphs lacking this field. +

+
+ + + Dgit + +

+ Folded field containing a single git commit hash, presented in + full, followed optionally by whitespace and other data to be + defined in future extensions. +

+ +

+ Declares that the source package corresponds exactly to a + referenced commit in a Git repository available at the canonical + location called dgit-repos, used by dgit, a + bidirectional gateway between the Debian archive and Git. The + commit is reachable from at least one reference whose name matches + refs/dgit/*. See the manual page of dgit for + further details. +

+
@@ -3858,6 +3907,28 @@ Checksums-Sha256: + + Obsolete fields + +

+ The following fields have been obsoleted and may be found in packages + conforming with previous versions of the Policy. +

+ + + DM-Upload-Allowed + +

+ Indicates that Debian Maintainers may upload this package to + the Debian archive. The only valid value is yes. This + field was used to regulate uploads by Debian Maintainers, See the + General Resolution for more details. +

+
+ +
+ @@ -3920,8 +3991,7 @@ Checksums-Sha256: Programs called from maintainer scripts should not normally have a path prepended to them. Before installation is started, the package management system checks to see if the - programs ldconfig, - start-stop-daemon, install-info, + programs ldconfig, start-stop-daemon, and update-rc.d can be found via the PATH environment variable. Those programs, and any other program that one would expect to be in the @@ -4020,7 +4090,7 @@ Checksums-Sha256: pre-dependencies (Pre-Depends) may be assumed to be available. Pre-dependencies will have been configured at least once, but at the time the preinst is - called they may only be in an unpacked or "Half-Configured" + called they may only be in an "Unpacked" or "Half-Configured" state if a previous version of the pre-dependency was completely configured and has not been removed since then. @@ -4034,7 +4104,7 @@ Checksums-Sha256: partly from the new version or partly missing, so the script cannot rely on files included in the package. Package dependencies may not be available. Pre-dependencies will be - at least unpacked following the same rules as above, except + at least "Unpacked" following the same rules as above, except they may be only "Half-Installed" if an upgrade of the pre-dependency failed. This can happen if the new version of the package no @@ -4053,7 +4123,7 @@ Checksums-Sha256: most-recently-configured-version The files contained in the package will be unpacked. All - package dependencies will at least be unpacked. If there + package dependencies will at least be "Unpacked". If there are no circular dependencies involved, all package dependencies will be configured. For behavior in the case of circular dependencies, see the discussion @@ -4077,7 +4147,7 @@ Checksums-Sha256: will have previously been configured and not removed. However, dependencies may not be configured or even fully unpacked in some error situations. - For example, suppose packages foo and bar are installed + For example, suppose packages foo and bar are "Installed" with foo depending on bar. If an upgrade of bar were started and then aborted, and then an attempt to remove foo failed because its prerm script failed, @@ -4114,7 +4184,7 @@ Checksums-Sha256: at least "Half-Installed". All package dependencies will at least be "Half-Installed" and will have previously been configured and not removed. If there was no error, all - dependencies will at least be unpacked, but these actions + dependencies will at least be "Unpacked", but these actions may be called in various error states where dependencies are only "Half-Installed" due to a partial upgrade. @@ -4143,7 +4213,7 @@ Checksums-Sha256: The postrm script is called after the package's files have been removed or replaced. The package whose postrm is being called may have - previously been deconfigured and only be unpacked, at which + previously been deconfigured and only be "Unpacked", at which point subsequent package changes do not consider its dependencies. Therefore, all postrm actions may only rely on essential packages and must gracefully skip @@ -4206,7 +4276,7 @@ fi - If a version of the package is already installed, call + If a version of the package is already "Installed", call old-prerm upgrade new-version @@ -4321,7 +4391,7 @@ fi Otherwise, if the package had some configuration files from a previous version installed (i.e., it - is in the "configuration files only" state): + is in the "Config-Files" state): new-preinst install old-version @@ -4346,7 +4416,7 @@ fi If the error-unwind fails, the package is in a "Half-Installed" phase, and requires a reinstall. If the error unwind works, the - package is in a not installed state. + package is in the "Not-Installed" state. @@ -4484,7 +4554,7 @@ fi It is noted in the status database as being in a - sane state, namely not installed (any conffiles + sane state, namely "Not-Installed" (any conffiles it may have are ignored, rather than being removed by dpkg). Note that disappearing packages do not have their prerm @@ -4510,7 +4580,7 @@ fi

The new package's status is now sane, and recorded as - "unpacked". + "Unpacked".

@@ -4547,7 +4617,7 @@ fi

No attempt is made to unwind after errors during configuration. If the configuration fails, the package is in - a "Failed Config" state, and an error message is generated. + a "Half-Configured" state, and an error message is generated.

@@ -4667,8 +4737,8 @@ fi dependencies on other packages, the package names listed may also include lists of alternative package names, separated by vertical bar (pipe) symbols |. In such a case, - if any one of the alternative packages is installed, that - part of the dependency is considered to be satisfied. + that part of the dependency can be satisfied by any one of + the alternative packages.

@@ -4999,11 +5069,11 @@ Build-Depends: foo [linux-any], bar [any-i386], baz [!linux-any] be unpacked the pre-dependency can be satisfied if the depended-on package is either fully configured, or even if the depended-on - package(s) are only unpacked or in the "Half-Configured" + package(s) are only in the "Unpacked" or the "Half-Configured" state, provided that they have been configured correctly at some point in the past (and not removed or partially removed since). In this case, both the - previously-configured and currently unpacked or + previously-configured and currently "Unpacked" or "Half-Configured" versions must satisfy any version clause in the Pre-Depends field.

@@ -5358,7 +5428,7 @@ Depends: foo-data (>= 1.2-3) dpkg does not know of any files it still contains, it is considered to have "disappeared". It will be marked as not wanted on the system (selected for - removal) and not installed. Any conffiles + removal) and "Not-Installed". Any conffiles details noted for the package will be ignored, as they will have been taken over by the overwriting package. The package's postrm script will be run with a @@ -6623,7 +6693,7 @@ Built-Using: grub2 (= 1.99-9), loadlin (= 1.6e-1) The shlibs system

- The shlibs system is an simpler alternative to + The shlibs system is a simpler alternative to the symbols system for declaring dependencies for shared libraries. It may be more appropriate for C++ libraries and other cases where tracking individual symbols is @@ -6694,7 +6764,7 @@ Built-Using: grub2 (= 1.99-9), loadlin (= 1.6e-1) The shlibs control files for all the packages currently installed on the system. These are normally found - in /var/lib/dpkg/info/*.symbols, but + in /var/lib/dpkg/info/*.shlibs, but packages should not rely on this and instead should use dpkg-query --control-path package shlibs if for some reason these files need to be @@ -8048,13 +8118,14 @@ Reloading description configuration...done.

The mime-support package provides the update-mime program, which integrates these - registrations in the /etc/mailcap file, using Dpkg + registrations in the /etc/mailcap file, using dpkg triggers Creating, modifying or removing a file in /usr/lib/mime/packages/ using maintainer scripts will not activate the trigger. In that case, it can be done by calling - dpkg-trigger --no-await --by-package=<me> /usr/lib/mime/packages, - where <me> is the name of the package. + dpkg-trigger --no-await /usr/lib/mime/packages from + the maintainer script after creating, modifying, or removing + the file. . Packages using this facility should not depend on, recommend, or suggest mime-support. @@ -8803,7 +8874,9 @@ ln -fs ../sbin/sendmail debian/tmp/usr/bin/runq

- A symbolic link pointing to a compressed file should always + A symbolic link pointing to a compressed file (in the sense + that it is meant to be uncompressed with unzip + or zless etc.) should always have the same file extension as the referenced file. (For example, if a file foo.gz is referenced by a symbolic link, the filename of the link has to end with @@ -9421,6 +9494,23 @@ done

+ + + File names + +

+ The name of the files installed by binary packages in the system PATH + (namely /bin, /sbin, /usr/bin, + /usr/sbin and /usr/games) must be encoded in + ASCII. +

+ +

+ The name of the files and directories installed by binary packages + outside the system PATH must be encoded in UTF-8 and should be + restricted to ASCII when it is possible to do so. +

+
@@ -9619,24 +9709,7 @@ http://localhost/cgi-bin/cgi-bin-name
-

Access to HTML documents

- -

- HTML documents for a package are stored in - /usr/share/doc/package - and can be referred to as - -http://localhost/doc/package/filename - -

- -

- The web server should restrict access to the document - tree so that only clients on the same host can read - the documents. If the web server does not support such - access controls, then it should not provide access at - all, or ask about providing access during installation. -

+

(Deleted)

@@ -10447,18 +10520,23 @@ name ["syshostname"]:

The install-info program maintains a directory of - installed info documents in /usr/share/info/dir for - the use of info readers. - It was previously necessary for packages installing info - documents to run install-info from maintainer - scripts. This is no longer necessary. The installation - system now uses dpkg triggers. - - This file must not be included in packages. Packages containing - info documents should depend on dpkg (>= 1.15.4) | - install-info to ensure that the directory file is properly - rebuilt during partial upgrades from Debian 5.0 (lenny) and - earlier. + installed info documents in /usr/share/info/dir for the + use of info readers. This file must not be included in packages + other than install-info. +

+ +

+ install-info is automatically invoked when + appropriate using dpkg triggers. Packages other than + install-info should not invoke + install-info directly and should not + depend on, recommend, or suggest install-info + for this purpose. +

+ +

+ Info readers requiring the /usr/share/info/dir file + should depend on install-info.

@@ -10825,12 +10903,6 @@ END-INFO-DIR-ENTRY dpkg, dselect et al. and the way they interact with packages.

-

- It also documents the interaction between - dselect's core and the access method scripts it - uses to actually install the selected packages, and describes - how to create a new access method.

-

This manual does not go into detail about the options and usage of the package building and installation tools. It @@ -10840,10 +10912,7 @@ END-INFO-DIR-ENTRY

The utility programs which are provided with dpkg - for managing various system configuration and similar issues, - such as update-rc.d and - install-info, are not described in detail here - - please see their man pages. + not described in detail here, are documented in their man pages.

@@ -10863,25 +10932,9 @@ END-INFO-DIR-ENTRY Binary packages (from old Packaging Manual)

- The binary package has two main sections. The first part - consists of various control information files and scripts used - by dpkg when installing and removing. See . -

- -

- The second part is an archive containing the files and - directories to be installed. -

- -

- 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) man page. + See and .

- Creating package files - dpkg-deb @@ -11183,55 +11236,7 @@ END-INFO-DIR-ENTRY

- dpkg-buildpackage is a script which invokes - dpkg-source, the debian/rules - targets clean, build and - binary, dpkg-genchanges and - gpg (or pgp) to build a signed - source and binary package upload. -

- -

- It is usually invoked by hand from the top level of the - built or unbuilt source directory. It may be invoked with - no arguments; useful arguments include: - - -uc, -us - -

- Do not sign the .changes file or the - source package .dsc file, respectively.

-
- -psign-command - -

- Invoke sign-command instead of finding - gpg or pgp on the PATH. - sign-command must behave just like - gpg or pgp.

-
- -rroot-command - -

- When root privilege is required, invoke the command - root-command. root-command - should invoke its first argument as a command, from - the PATH if necessary, and pass its - second and subsequent arguments to the command it - calls. If no root-command is supplied - then dpkg-buildpackage will use - the fakeroot command, which is sufficient - to build most packages without actually requiring root - privileges.

-
- -b, -B - -

- Two types of binary-only build and upload - see - . -

-
- + See .

@@ -11355,23 +11360,10 @@ END-INFO-DIR-ENTRY

- This program is usually called by package-independent - automatic building scripts such as - dpkg-buildpackage, but it may also be called - by hand. -

- -

- 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 - information in the source package's changelog and control - file and the binary and source packages which should have - been built. + See .

- dpkg-parsechangelog - produces parsed @@ -11379,12 +11371,7 @@ END-INFO-DIR-ENTRY

- 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, - and prints a control-file format representation of the - information in it to standard output. + See .

@@ -11395,10 +11382,7 @@ END-INFO-DIR-ENTRY

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

@@ -12087,6 +12071,11 @@ END-INFO-DIR-ENTRY there is a time, after it has been diverted but before dpkg has installed the new version, when the file does not exist.

+ +

+ Do not attempt to divert a conffile, as dpkg does not + handle it well. +