From c8b4de2c5044941d11ed0e884436b8ba60974db1 Mon Sep 17 00:00:00 2001
From: Russ Allbery
- Essential is defined as the minimal set of functionality
- that must be available and usable on the system even
- when packages are in an unconfigured (but unpacked)
- state. This is needed to avoid unresolvable dependency
- loops on upgrade. If packages add unnecessary
- dependencies on packages in this set, the chances that
- there will be an unresolvable
- dependency loop caused by forcing these Essential
- packages to be configured first before they need to be
- is greatly increased. It also increases the chances
- that frontends will be unable to
- calculate an upgrade path, even if one
- exists.
+ Essential is needed in part to avoid unresolvable dependency
+ loops on upgrade. If packages add unnecessary dependencies
+ on packages in this set, the chances that there
+ will be an unresolvable dependency loop
+ caused by forcing these Essential packages to be configured
+ first before they need to be is greatly increased. It also
+ increases the chances that frontends will be unable to
+ calculate an upgrade path, even if one
+ exists.
- Also, it's pretty unlikely that functionality from
- Essential shall ever be removed (which is one reason why
- care must be taken before adding to the Essential
- packages set), but packages have been removed
- from the Essential set when the functionality moved to a
- different package. So depending on these packages
- just in case they stop being essential does way
- more harm than good.
+ Also, functionality is rarely ever removed from the
+ Essential set, but packages have been removed from
+ the Essential set when the functionality moved to a
+ different package. So depending on these packages just
+ in case they stop being essential does way more harm
+ than good.
- Some packages are tagged essential for a system - using the Essential control file field. - The format of the Essential control field is - described in . + 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. + Packages are tagged essential for a system using the + Essential control file field. The format of the + Essential control field is described in .
@@ -1121,6 +1118,19 @@ appropriate.
++ Maintainers should take great care in adding any programs, + interfaces, or functionality to essential packages. + Packages may assume that functionality provided by + essential packages is always available without + declaring explicit dependencies, which means that removing + functionality from the Essential set is very difficult and is + almost never done. Any capability added to an + essential package therefore creates an obligation to + support that capability as part of the Essential set in + perpetuity. +
+You must not tag any packages essential before this has been discussed on the debian-devel -- 2.39.5