From: Ken Brown <kbrown@cornell.edu>
To: cygwin-apps@cygwin.com
Subject: Re: [PATCH setup 00/14] Use libsolv, solve all our problems... (WIP)
Date: Tue, 09 Jan 2018 15:49:00 -0000 [thread overview]
Message-ID: <79d71e69-57a9-8303-79c8-ba2bfdd098d8@cornell.edu> (raw)
In-Reply-To: <dd18cd7e-1582-6fe2-fd15-33ed4a623f8d@cornell.edu>
On 1/9/2018 10:37 AM, Ken Brown wrote:
> On 1/9/2018 8:25 AM, Jon Turney wrote:
>> On 24/12/2017 15:00, Ken Brown wrote:
>>> On 12/13/2017 5:31 PM, Ken Brown wrote:
>>>> On 12/13/2017 1:05 PM, Achim Gratz wrote:
>>>>> Ken Brown writes:
>>>>>> 1. Uninstall A.
>>>>>> 2. Don't uninstall B.
>>>>>>
>>>>>> On the surface, it would seem that libsolv chose 2 by default,
>>>>>> because
>>>>>> it returned an empty transaction list. This was reflected in the log
>>>>>> and was also clear when I selected 'Back'.
>>
>> Yeah, I think what is actually happening here is that the solver returns
>> a partial solution, without the problematic transaction.
>>
>> But yeah, there's no real concept of a default solution, so (lacking a
>> UI to choose, which I think is a bit out of scope for the moment), it's
>> up to us to define one.
>>
>>>>> I don't think there is a default in this case. I also see in zypper
>>>>> that the order of the proposed solutions (there can be way more than
>>>>> two
>>>>> if the dependencies are more complicated) is not always the same, so
>>>>> there is no preference implied by the order as well.
>>>>>
>>>>>> Maybe we have to deal with this situation ourselves. Whenever a
>>>>>> problem involves a missing dependency, we could choose as default
>>>>>> solution the one that installs/keeps the dependent package, as is
>>>>>> currently done.
>>>>>
>>>>> That solution unfortunately isn't always the one that causes the least
>>>>> amount of transactions or even the least amount of breakage.
>>>>
>>>> That may be true, but I still think it's a reasonable default. The
>>>> user doesn't have to accept it. Also, it's consistent with what
>>>> setup currently does, so it won't surprise anyone.
>>>>
>>>> The attached patch attempts to implement my suggestion.
>>
>> I came up with a slightly different solution of just picking the first
>> solution as a default.
>
> That's certainly easier than what I was trying to do. If we do that, we
> should probably change the UI to remove the implication that the default
> solution is recommended. For example, if A requires B and the user
> tries to uninstall B, the first solution seems to usually (always?) be
> "uninstall A". This may or may not be what the user wants.
>
> Maybe we should say something like, "By default, the first proposed
> solution will be selected for each problem. If this is not what you
> want, press Back...."
>
>> After solving problems we also need to consider the 'install source for
>> everything I install' flag, which unfortunately requires quite a bit of
>> refactoring.
>>
>> See attached.
>
> 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.
Ken
next prev parent reply other threads:[~2018-01-09 15:49 UTC|newest]
Thread overview: 75+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-05-31 10:53 Jon Turney
2017-05-31 10:53 ` [PATCH setup 04/14] Hoist pick() up to packagemeta Jon Turney
2017-05-31 10:53 ` [PATCH setup 05/14] Hoist uninstall up to Installer::uninstallOne() Jon Turney
2017-05-31 10:53 ` [PATCH setup 03/14] Hoist addScript() etc. up from packageversion to packagemeta Jon Turney
2017-05-31 10:53 ` [PATCH setup 01/14] Opaque how PackageDepends is stored Jon Turney
2017-05-31 10:53 ` [PATCH setup 02/14] Factor out reading installed.db Jon Turney
2017-05-31 10:57 ` [PATCH setup 08/14] Change to using a libsolv pool for storing package information Jon Turney
2017-05-31 10:57 ` [PATCH setup 10/14] Remove packageversion class Jon Turney
2017-05-31 10:57 ` [PATCH setup 09/14] Remove cygpackage class Jon Turney
2017-05-31 10:57 ` [PATCH setup 06/14] Hoist scan() up from packageversion to packagemeta Jon Turney
2017-05-31 10:57 ` [PATCH setup 07/14] Store package stability in class packageversion Jon Turney
2017-05-31 11:05 ` [PATCH setup 11/14] Drop in SolvableVersion as a replacement for packageversion Jon Turney
2017-05-31 11:05 ` [PATCH setup 14/14] Add obsoletes: support Jon Turney
2017-05-31 11:05 ` [PATCH setup 13/14] Download/checksum/install/uninstall what transaction wants Jon Turney
2017-05-31 11:05 ` [PATCH setup 12/14] Use solver to check for problems and produce a list of package transactions Jon Turney
2017-08-29 13:37 ` [PATCH setup 00/14] Use libsolv, solve all our problems... (WIP) Ken Brown
2017-08-30 21:47 ` Ken Brown
2017-09-01 15:01 ` Ken Brown
2017-09-02 16:57 ` Ken Brown
2017-09-05 13:34 ` Jon Turney
2017-09-05 18:40 ` Achim Gratz
2017-09-06 2:52 ` Ken Brown
2017-11-23 18:10 ` Jon Turney
2017-11-23 20:32 ` Ken Brown
2017-11-23 20:54 ` Achim Gratz
2017-09-08 18:54 ` Ken Brown
2017-09-11 20:40 ` Ken Brown
2017-09-13 19:17 ` Achim Gratz
2017-09-13 21:16 ` Ken Brown
2017-09-14 17:26 ` Achim Gratz
2017-09-14 20:46 ` Ken Brown
2017-09-15 19:24 ` Jon Turney
2017-09-16 16:21 ` Ken Brown
2017-09-19 12:24 ` Ken Brown
2017-09-19 16:46 ` Jon Turney
2017-09-19 16:58 ` Ken Brown
2017-12-05 14:32 ` Jon Turney
2017-12-05 17:36 ` Ken Brown
2017-12-13 17:31 ` Ken Brown
2017-12-13 18:06 ` Achim Gratz
2017-12-13 22:31 ` Ken Brown
2017-12-14 14:12 ` Ken Brown
2017-12-24 15:00 ` Ken Brown
2018-01-09 13:25 ` Jon Turney
2018-01-09 15:37 ` Ken Brown
2018-01-09 15:49 ` Ken Brown [this message]
2018-01-13 14:14 ` Jon Turney
2018-01-13 19:56 ` Ken Brown
2018-01-13 21:29 ` Brian Inglis
2018-01-13 22:55 ` Ken Brown
2018-01-14 0:00 ` Ken Brown
2018-01-14 1:52 ` Brian Inglis
2018-01-14 2:37 ` Ken Brown
2018-01-15 19:02 ` Jon Turney
2018-01-15 21:50 ` Ken Brown
2018-01-18 19:14 ` Jon Turney
2017-09-15 15:15 ` Jon Turney
2017-09-15 16:53 ` Ken Brown
2017-09-15 20:56 ` cyg Simple
2017-09-17 16:02 ` Ken Brown
2017-09-26 14:50 ` Jon Turney
2017-09-26 16:07 ` Ken Brown
2017-09-27 19:14 ` Jon Turney
2017-09-27 20:33 ` Ken Brown
2017-09-29 17:38 ` Jon Turney
2017-09-29 20:34 ` Ken Brown
2017-10-02 14:07 ` Jon Turney
2017-10-02 15:17 ` Marco Atzeri
2017-10-04 14:43 ` Jon Turney
2017-10-10 11:18 ` Ken Brown
2017-10-10 15:49 ` Jon Turney
2017-10-17 12:45 ` Ken Brown
2017-10-17 18:47 ` Jon Turney
2017-10-18 15:28 ` Ken Brown
2017-10-18 15:57 ` Ken Brown
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=79d71e69-57a9-8303-79c8-ba2bfdd098d8@cornell.edu \
--to=kbrown@cornell.edu \
--cc=cygwin-apps@cygwin.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).