as suggested by David
EDSP version 0.3
** 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
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
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
-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:
**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