Hi, Quoting David Kalnischkies (2016-05-12 13:01:29) > (I am not allowed to talk on dose-devel@ as I am not subscribed – at > least that is what I guess based on my inability to read the french > response of the mailinglist – could that message be changed to include > an english sentence as well at least?) yes, that's why I tried to keep #823906 part of the recipients because it's easy for dose3 upstream to subscribe to that bug. > On Thu, May 12, 2016 at 11:25:32AM +0200, Pietro Abate wrote: > > On 12/05/16 06:45, Johannes Schauer wrote: > > > So despite the danger that providing a patch will kill this discussion, the > > > attached patch (and also upstream branch user/josch/apt-cudf-remove) makes sure > > > that removal requests are not generated for package names that were earlier > > > marked as installed. > > > > If everybody is happy with his patch, I'll merge it into master and > > I am fine with it if that is what you want. :) Darn, I should not've written this. :P > It slowly grows more and more on me as the right one, but that could just as > well be "post patch ergo propter patch" [yes, I had latin in school instead > of french] trying to avoid any work on that issue [1], rather than a truly > objective opinion. Lets hope that's not the case but I also like that solution more now. :D > That should really be: > https://anonscm.debian.org/cgit/apt/apt.git/tree/doc/external-dependency-solver-protocol.txt > (or /usr/share/doc/apt-doc/external-dependency-solver-protocol.txt.gz) > > Suggestions welcome as it came as a suprise to you guys, so you are > probably better in figuring out the right place and words to write it down. Patch attached! Wishlist bug: warn if a package identifier is seen more than once! Thanks! cheers, josch
From 6a688e96d944e7771c263a764879a1322cefefe7 Mon Sep 17 00:00:00 2001 From: Johannes 'josch' Schauer <josch@mister-muffin.de> Date: Thu, 12 May 2016 13:07:59 +0200 Subject: [PATCH] edsp: document unique package identifiers Document that package identifiers must be unique (apt only uses the last action for a given identifier) and that install requests do also imply upgrades and downgrades (and thus removal of the old version). This is to prevent that solvers express an upgrade or downgrade instruction as two stanzas: a removal of the old version and an installation of the new version. Instead, a single install stanza is sufficient to express upgrade or downgrade requests. --- doc/external-dependency-solver-protocol.txt | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/doc/external-dependency-solver-protocol.txt b/doc/external-dependency-solver-protocol.txt index e2bd958..d914db3 100644 --- a/doc/external-dependency-solver-protocol.txt +++ b/doc/external-dependency-solver-protocol.txt @@ -263,11 +263,11 @@ the user. #### Solution -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). +A solution is a list of Deb 822 stanzas. Each of them could be an install +stanza (telling APT to install a specific new package or to upgrade or +downgrade a package to a specific version), 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: @@ -289,6 +289,11 @@ 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). + 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 -- 2.5.1
Attachment:
signature.asc
Description: signature