[PATCH setup 00/14] Use libsolv, solve all our problems... (WIP)

Brian Inglis Brian.Inglis@SystematicSw.ab.ca
Sat Jan 13 21:29:00 GMT 2018

On 2018-01-13 12:56, Ken Brown wrote:
> On 1/13/2018 9:14 AM, Jon Turney wrote:
>> On 09/01/2018 15:49, Ken Brown wrote:
>>> On 1/9/2018 10:37 AM, Ken Brown wrote:
>>>> I just did a quick test, trying to uninstall B in the situation above,
>>>> and it didn't work as expected.  Even though "Uninstall A" was the first
>>>> solution, A didn't get uninstalled.
>>> In case you want to replicate this, what I actually tried was uninstalling
>>> ImageMagick, which is required, directly or indirectly, by asymptote,
>>> dblatex, and xmlto.  Solution 1 was to uninstall these three but it didn't
>>> happen.
>> Doh.
>> solver_take_solution() modifies the task list (and I went to the trouble of
>> refactoring things to make it available to it), but I didn't then re-solve
>> with the modified task list.
>> Also, looking at this again, it looks like the solver places solutions which
>> remove a task at the end of of the solution list, so this should be the default
>> (This matches the previous behaviour, where the default is to accept
>> dependencies i.e. if you try to remove a package required by other packages,
>> the default solution should be to cancel the removal)
>> Maybe we need more complex criteria to identify the default, but this seems to
>> work in my limited testing.
> I noticed two things:
> 1. I think the code you added to PrereqPage::OnNext() also needs to be added to
> PrereqPage::OnBack().
> 2. We should probably remove, or at least reword, the dire warning about
> accepting the default solutions.  I'm not sure we want to "strongly recommend"
> the default solution over the other solution(s).  I guess what we really want to
> say is that we strongly recommend resolving the problems before continuing.

For users who only run setup and use programs, a dire warning and strong
recommendations are appropriate.

Alternatives are to also remove all packages dependent on the package to be
removed, or lastly, to remove only the requested package, leaving the
installation inconsistent. Those alternatives would have to be presented to the
user for selection, then executed.

Anything else requiring the user to resolve would require a FAQ entry explaining
what that meant, what diagnosis and actions would be required, and that would
probably generate emails from users asking what they should do.

Better to allow the solver to resolve issues and just let users choose
straightforward alternatives, with the view of trying to keep the installation
consistent, unless explicitly overridden, such as to test an alternative
implementation of a dependency installed outside of setup.

Take care. Thanks, Brian Inglis, Calgary, Alberta, Canada

More information about the Cygwin-apps mailing list