From 2361862aada29e1f9cddfc830393cc8b32ff986a Mon Sep 17 00:00:00 2001
From: Russ Allbery
This is done using the Depends, Pre-Depends,
- Recommends, Suggests, Enhances and
- Conflicts control file fields.
+ Recommends, Suggests, Enhances,
+ Breaks and Conflicts control file fields.
- These six fields are used to declare a dependency
+ These seven fields are used to declare a dependency
relationship by one package on another. Except for
- Enhances, they appear in the depending (binary)
- package's control file. (Enhances appears in the
- recommending package's control file.)
+ Enhances and Breaks, they appear in the
+ depending (binary) package's control file.
+ (Enhances appears in the recommending package's
+ control file, and Breaks appears in the version of
+ depended-on package which causes the named package to
+ break).
@@ -4034,7 +4057,7 @@ Build-Depends: kernel-headers-2.2.10 [!hurd-i386],
(based on rules below), and some packages may not be able to
rely on their dependencies being present when being
installed or removed, depending on which side of the break
- of the circular dependcy loop they happen to be on. If one
+ of the circular dependency loop they happen to be on. If one
of the packages in the loop has no postinst script, then the
cycle will be broken at that package, so as to ensure that
all postinst scripts run with the dependencies properly
@@ -4170,6 +4193,53 @@ Build-Depends: kernel-headers-2.2.10 [!hurd-i386],
+ Using Breaks may cause problems for upgrades from older
+ versions of Debian and should not be used until the stable
+ release of Debian supports Breaks.
+
+ When one binary package declares that it breaks another,
+
+ A package will not be regarded as causing breakage merely
+ because its configuration files are still installed; it must
+ be at least half-installed.
+
+ A special exception is made for packages which declare that
+ they break their own package name or a virtual package which
+ they provide (see below): this does not count as a real
+ breakage.
+
+ Normally a Breaks entry will have an "earlier than"
+ version clause; such a Breaks is introduced in the
+ version of an (implicit or explicit) dependency which
+ violates an assumption or reveals a bug in earlier versions
+ of the broken package. This use of Breaks will
+ inform higher-level package management tools that broken
+ package must be upgraded before the new one.
+
+ If the breaking package also overwrites some files from the
+ older package, it should use Replaces (not
+ Conflicts) to ensure this goes smoothly.
+
- If a dependency or a conflict has a version number attached + If a relationship field has a version number attached then only real packages will be considered to see whether the relationship is satisfied (or the prohibition violated, - for a conflict) - it is assumed that a real package which - provides the virtual package is not of the "right" version. - So, a Provides field may not contain version - numbers, and the version number of the concrete package - which provides a particular virtual package will not be - looked at when considering a dependency on or conflict with - the virtual package name. + for a conflict or breakage) - it is assumed that a real + package which provides the virtual package is not of the + "right" version. So, a Provides field may not + contain version numbers, and the version number of the + concrete package which provides a particular virtual package + will not be looked at when considering a dependency on or + conflict with the virtual package name.
@@ -7445,16 +7517,6 @@ endscript
description of the use of
-
If a system administrator wishes to have a file (or directory or other such thing) installed with owner and diff --git a/upgrading-checklist.html b/upgrading-checklist.html index d0afa35..3105c5d 100644 --- a/upgrading-checklist.html +++ b/upgrading-checklist.html @@ -58,6 +58,10 @@ picking your way through this list. packages unless the included package is explicitly intended to be used that way. [4.13] * The Uploaders field in debian/control may be wrapped. [5.6.3] + * The Breaks field declares that this package breaks another and + prevents installation of the breaking package unless the package + named in Breaks is deconfigured first. This field should not be + used until the dpkg in Debian stable supports it. [6.5, 6.6, 7] * Manual pages in locale-specific directories should use either the legacy encoding for that directory or UTF-8. Country names should not be included in locale-specific manual page directories unless -- 2.39.5