]> git.saurik.com Git - apt.git/commitdiff
add indicative Autoremove stanzas in solutions
authorStefano Zacchiroli <zack@upsilon.cc>
Thu, 31 Mar 2011 09:49:34 +0000 (11:49 +0200)
committerStefano Zacchiroli <zack@upsilon.cc>
Thu, 31 Mar 2011 09:49:34 +0000 (11:49 +0200)
as suggested by David

EDSP version 0.3

doc/apt-solver-protocol.mdwn

index 85cd98d622532f890d5f381a7b86ef67cc5c5213..4c520b03709283af459aaa9e2443407f9353ebca 100644 (file)
@@ -1,6 +1,6 @@
 ** TENTATIVE PROPOSAL, VERY VERY VERY DRAFT **
 
 ** TENTATIVE PROPOSAL, VERY VERY VERY DRAFT **
 
-# APT External Dependency Solver Protocol (EDSP) - version 0.2
+# APT External Dependency Solver Protocol (EDSP) - version 0.3
 
 This document describes the communication protocol between APT and
 external dependency solvers. The protocol is called APT EDSP, for "APT
 
 This document describes the communication protocol between APT and
 external dependency solvers. The protocol is called APT EDSP, for "APT
@@ -112,7 +112,7 @@ and followed by a mixture of action and preference fields.
 
 The value of the **Request:** field is a string describing the EDSP
 protocol which will be used to communicate. At present, the string must
 
 The value of the **Request:** field is a string describing the EDSP
 protocol which will be used to communicate. At present, the string must
-be `EDSP 0.2`.
+be `EDSP 0.3`.
 
 a unique request identifier, such as an
 UUID. Request fields are mainly used to identify the beginning of a
 
 a unique request identifier, such as an
 UUID. Request fields are mainly used to identify the beginning of a
@@ -216,9 +216,11 @@ user.
 
 #### Solution
 
 
 #### Solution
 
-A solution is a list of Deb 822 stanzas. Each of them is either an
-install stanza, telling APT to install a specific package, or a remove
-stanza, telling APT to remove one.
+A solution is a list of Deb 822 stanzas. Each of them could be an
+install stanza (telling APT to install a specific package), a remove
+stanza (telling APT to remove one), or an autoremove stanza (telling APT
+about the *future* possibility of removing a package using the
+Autoremove action).
 
 An **install stanza** starts with an Install field and supports the
 following fields:
 
 An **install stanza** starts with an Install field and supports the
 following fields:
@@ -232,6 +234,14 @@ following fields:
 **Remove stanzas** are similar to install stanzas, but have **Remove**
 fields instead of Install fields.
 
 **Remove stanzas** are similar to install stanzas, but have **Remove**
 fields instead of Install fields.
 
+**Autoremove stanzas** are similar to install stanzas, but have
+**Autoremove** fields instead of Install fields. Autoremove stanzas
+should be output so that APT can inform the user of which packages they
+can now autoremove, as a consequence of the executed action. However,
+this protocol makes no assumption on the fact that a subsequent
+invocation of an Autoremove action will actually remove the very same
+packages indicated by Autoremove stanzas in the former solution.
+
 In terms of expressivity, install and remove stanzas can carry one
 single field each, as APT-IDs are enough to pinpoint packages to be
 installed/removed. Nonetheless, for protocol readability, it is
 In terms of expressivity, install and remove stanzas can carry one
 single field each, as APT-IDs are enough to pinpoint packages to be
 installed/removed. Nonetheless, for protocol readability, it is