[[PATCH setup topic/libsolv] 1/2] packagedb::removeEmptyCategories: Don't remove "Base"

Jon Turney jon.turney@dronecode.org.uk
Mon Oct 30 15:59:00 GMT 2017


On 29/10/2017 21:18, Ken Brown wrote:
> On 10/29/2017 1:24 PM, Jon Turney wrote:
>> Hmm... now I remember my other concerns about this piece of code: as 
>> written, it's just wrong.
>>
>> 1. Applying erase to packagedb:categories invalidates the iterator
>> 2. We're incrementing the iterator after doing an erase, so even if 
>> the iterator was still valid, we skip checking if the following 
>> category is empty
>>
>> So maybe the right way to fix this is as attached:
> 
> Yes.  I wrongly jumped to the conclusion that removing Base was the issue.
> 
>> I need to stare as this a bit more to understand where the 'base' 
>> category is coming from when we have no setup.ini...
> 
> I guess it's created implicitly in the 'for' statement in 
> packagedb::makeBase().  That's probably a mistake.

Ah yes, I guess this could check if the 'base' category exists first.

This is all a bit broken though.  Because we've forgotten the categories 
of installed packages, if we're run without a setup.ini, we'll merrily 
let packages in the base category get uninstalled without complaint...



More information about the Cygwin-apps mailing list