[PATCH] Revert "Don't override a Keep selection"
Ken Brown
kbrown@cornell.edu
Thu Oct 19 15:05:00 GMT 2017
On 10/18/2017 11:01 PM, Ken Brown wrote:
> On 10/17/2017 3:31 PM, Ken Brown wrote:
>> On 10/17/2017 2:43 PM, Jon Turney wrote:
>>> On 16/10/2017 20:13, Ken Brown wrote:
>>>> This reverts (the rest of) commit b43b697. Part of that commit was
>>>> already reverted in commit ff0bb3d. The rest is not needed either
>>>> since we no longer send the upgrade flag to the solver after the user
>>>> has made their selections.
>>>> ---
>>>>  libsolv.cc    | 14 +++-----------
>>>>  libsolv.h     | 1 -
>>>> Â package_meta.h |Â 2 --
>>>> Â 3 files changed, 3 insertions(+), 14 deletions(-)
>>>
>>> Hmm... not sure about this.
>>>
>>> Say the initial upgrade solution had something like: package A 1.0 ->
>>> 1.1, and A 1.1 has a dependency on package B 2.0, where currently B
>>> 1.0 is installed (so B 1.0 -> 2.0)
>>>
>>> If the user then changes B to 'keep' (at 1.0), we should report a
>>> conflict?
>>
>> Good point. I wasn't thinking about dependencies with version relations.
>
> I just tested this scenario, and it turns out that putting a lock on B
> 1.0 overrides the dependency of A 1.1 on B 2.0. There's no problem
> reported. On the other hand, if there's no lock, then the dependency
> overrides the Keep choice, again with no problem reported.
>
> Back to the drawing board.
Thinking about this further, using SOLVER_LOCK is probably the right
thing to do in this situation, even if no problem is reported. We can't
insist that users install the recommended version. For example, if I
choose to downgrade binutils while keeping the current gcc, then I'm
responsible for any breakage this might cause, with or without a warning
from setup.
I'll prepare a new patch that restores the SOLVER_LOCK functionality
that was inadvertently removed in commit ff0bb3d.
Ken
More information about the Cygwin-apps
mailing list