[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