[setup topic/libsolv] Packages contained in multiple repositories
Ken Brown
kbrown@cornell.edu
Sat Oct 21 20:21:00 GMT 2017
On 10/19/2017 9:36 AM, Jon Turney wrote:
> On 18/10/2017 17:41, Achim Gratz wrote:
>> Ken Brown writes:
>>> In retrospect, I'm not sure this patch is right, but I'm sending it
>>> anyway for the sake of discussion. My hesitation comes from the fact
>>> that libsolv might have a good reason for preferring the one it chose,
>>> e.g., if we've assigned priorities to the repos. On the other hand,
>>> if we've gone to the trouble of assigning priorities, shouldn't
>>> packagemeta reflect our choice?
>>
>> Extrapolating from my experience with zypper, libsolv should stick with
>> the repo the installed package comes from even if some other repo has a
>> newer version.
>
> Unfortunately, we are limited by the fact that installed.db doesn't
> record which repo an installed package came from.
>
> We map repo setup.ini release: labels to package vendor names, so we
> assume it's 'Cygwin' for an installed package (package_db.cc:115), and
> run the solver with SOLVER_FLAG_ALLOW_VENDORCHANGE on (libsolv.cc:745)
> to allow it to get upgraded by a package in the repo it actually came
> from, but we've forgotten.
>
> I'm not overly concerned about this: we don't define what happens in
> this situation currently, and if the packages are identical, it's no
> problem.
Here's a situation where I think it might be a problem:
fixup_source_package_ids only considers packageversions that are
registered in packagedb. If libsolv later selects a packageversion from
a different repo and the user has requested the source, it might not be
found.
Ken
More information about the Cygwin-apps
mailing list