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

Ken Brown kbrown@cornell.edu
Sun Jan 14 02:37:00 GMT 2018

On 1/13/2018 8:52 PM, Brian Inglis wrote:
> On 2018-01-13 17:00, Ken Brown wrote:
>> On 1/13/2018 5:55 PM, Ken Brown wrote:
>>> On 1/13/2018 4:29 PM, Brian Inglis wrote:
>>>> On 2018-01-13 12:56, Ken Brown wrote:
>>>>> 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.
>>> The current situation on the topic/libsolv branch is the following. Suppose A
>>> requires B and the user asks to uninstall B.  They will get a problem report
>>> showing two possible solutions:
>>> 1. Uninstall A.
>>> 2. (default) Don't uninstall B.
>>> If they uncheck 'Accept default solutions' and select 'Next', they'll get a
>>> warning that says "We strongly recommend that you accept the default
>>> solutions.  Some packages may not work properly if you don't. Are you sure you
>>> want to proceed?"
>>> This is misleading insofar as it implies that something bad will happen if the
>>> user prefers to solve the problem by uninstalling A.  What is true is that
>>> some packages may not work properly if the user answers 'Yes'.
>>> I think we should be able to find wording that is accurate while still making
>>> it clear that we recommend going back and fixing the problem.  I don't yet
>>> have a good candidate for that wording.
>> Something like the attached might do the job.
> Just saying "Unsolved problems" does not tell the user what they did and what
> impact it will have, and invites a FAQ entry for Setup - Unsolved problems.

"WARNING - Unsolved Problems" is simply the caption on the message box.

> Could we please be more explicit in the UI and the logs about the action being
> taken and the impact: instead of "Unsolved problems" and "Some packages" maybe
> something more like "uninstalling package U will break packages P1...", and

We were already explicit when we displayed the prerequisites page with a 
problem report.  There's no need to repeat it.  What we're discussing 
right now is what warning we should give if the user, *after seeing the 
problem report*, unchecks the 'Accept default solutions' box and selects 

> instead of "default solutions" maybe something more like "recommended actions"?

I've already explained why I think it would be misleading to say 
"recommended" rather than "default".  In the scenario above with 
packages A and B, the user may be trying to pare down their installation 
by uninstalling some packages.  They try to uninstall B, we warn them 
that this will break A, and we offer them two possible solutions.

It's perfectly reasonable for us to present "Keep B" as the default 
solution, especially since, as Jon pointed out, that's what we currently 
do.  But I don't think it's reasonable for us to *recommend* keeping B 
without knowing what the user wanted to accomplish.  Maybe uninstalling 
A better fits their needs.

> That shows and records the action and impact for diagnosis and remediation when
> users do something unintended and need to undo it, changing the messaging from
> the implementation model to the user's model, and giving users and maintainers
> enough information to diagnose what will or did happen, and how to undo that.

The current code in the topic/libsolv branch already does this.  Maybe 
it could do it better.  It would be great if you would test it and 
suggest improvements.


More information about the Cygwin-apps mailing list