summaryrefslogtreecommitdiff
path: root/doc/external-dependency-solver-protocol.txt
diff options
context:
space:
mode:
authorDavid Kalnischkies <david@kalnischkies.de>2016-05-12 16:21:10 +0200
committerDavid Kalnischkies <david@kalnischkies.de>2016-05-12 16:21:10 +0200
commit90e7fba4ac16fc764bf6aac7b59c17c3be551b60 (patch)
tree5a4f43c83cbfe0b11a872e8efbc813ac9c0f070a /doc/external-dependency-solver-protocol.txt
parentd67db03c2ab853eba7b67c8870af41796eea387c (diff)
edsp: warn if unexpected stanzas appear in the solution
Unexpected are for examples removal requests for versions which aren't installed, installations of already installed versions & requests to install and remove a package at the same time.
Diffstat (limited to 'doc/external-dependency-solver-protocol.txt')
-rw-r--r--doc/external-dependency-solver-protocol.txt13
1 files changed, 9 insertions, 4 deletions
diff --git a/doc/external-dependency-solver-protocol.txt b/doc/external-dependency-solver-protocol.txt
index d914db309..9b9073346 100644
--- a/doc/external-dependency-solver-protocol.txt
+++ b/doc/external-dependency-solver-protocol.txt
@@ -289,10 +289,15 @@ 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.
-The package identifiers of install, remove and autoremove stanzas from a single
-solution are unique. That is, a package identifier does not occur more than
-once in the solution. Every package identifier is only associated with a single
-action (either install, remove or autoremove).
+A package can't be installed in multiple versions at the same time, so
+for each package there can at most one version be selected either for
+installation or removal. This especially means that a solver is neither
+allowed to represent package upgrades as a remove of the installed
+version and the installation of another (the remove is implicit and must
+be omitted from the solution) nor is it supported to revert previous
+actions in the solution with later actions. APT is allowed to show
+warnings and might even misbehave in earlier versions if a solver is
+violating this assumption.
In terms of expressivity, install and remove stanzas can carry one
single field each, as APT-IDs are enough to pinpoint packages to be