diff options
Diffstat (limited to 'doc')
-rw-r--r-- | doc/external-installation-planer-protocol.txt | 41 |
1 files changed, 40 insertions, 1 deletions
diff --git a/doc/external-installation-planer-protocol.txt b/doc/external-installation-planer-protocol.txt index 2a0bdbee3..916982ca1 100644 --- a/doc/external-installation-planer-protocol.txt +++ b/doc/external-installation-planer-protocol.txt @@ -216,8 +216,47 @@ the user. #### Solution - TODO +A solution is a list of Deb 822 stanzas. Each of them could be an: +- unpack stanza to cause the extraction of a package to the disk + +- configure stanza to cause an unpacked package to be configured and + therefore the installation to be completed + +- remove stanza to cause the removal of a package from the system + +An **unpack stanza** starts with an Unpack field and supports the +following fields: + +- **Unpack:** (mandatory). The value is a package identifier, + referencing one of the package stanzas of the package universe via its + APT-ID field. + +- All fields supported by package stanzas. + +**Configure** and **Remove stanzas** require and support the same +fields with the exception of the Unpack field which is replaced in +these instances with the Configure or Remove field respectively. + +The order of the stanzas is significant (unlike in the EDSP protocol), +with the first stanza being the first performed action. If multiple +stanzas of the same type appear in direct succession the order in such +a set isn't significant through. + +The solution needs to be valid (it is not allowed to configure a package +before it was unpacked, dependency relations must be satisfied, …), but +they don't need to be complete: A planer can and should expect that any +package which wasn't explicitly configured will be configured at the end +automatically. That also means through that a planer is not allowed to +produce a solution in which a package remains unconfigured. + +In terms of expressivity, all 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 recommended that planers either add +unconditionally the fields Package, Version, and Architecture to all +install/remove stanzas or, alternatively, that they support a `--verbose` +command line flag that explicitly enables the output of those fields in +solutions. #### Error |