[Yum-devel] [PATCH][RFC] Skip-broken support again

Florian Festi ffesti at redhat.com
Tue Dec 11 11:40:37 UTC 2007


Tim Lauridsen wrote:
> Florian Festi wrote:
>> Shouldn't
>>
>> depTree = self._buildDepTree()
>>
>> be done in the while loop as the tsInfo changes with each loop?
>>
> 
> No need to build the depTree again, it is just used to find the relation
> between packages original in the transaction and which packages they 
> drag in as dependcies.
> So if foo is needed to be skipped then foobar & foogui dragged in as 
> deps to foo is skipped too.
> If we recalc the deptree in each loop, then we lose some relations, 
> because some packages is removed, and we can get looping in special cases.

What about the deps of the packages we draw in in the while loop. An 
alternative also satisfying a requirement - if this can happen. I've been 
sent the following Traceback (devel update):

  --> Finished Dependency Resolution
  Traceback (most recent call last):
    File "./yummain.py", line 204, in <module>
      main(sys.argv[1:])
    File "./yummain.py", line 146, in main
      (result, resultmsgs) = base.buildTransaction()
    File "/.../yum/yum/__init__.py", line 588, in buildTransaction
      rescode, restring = self._skipPackagesWithProblems(rescode, restring)
    File "/.../yum/yum/__init__.py", line 604, in _skipPackagesWithProblems
      toRemove = self._getPackagesToRemove(wpo, depTree, toRemove)
    File "/.../yum/yum/__init__.py", line 636, in _getPackagesToRemove
      for child in deptree[po]:
  KeyError: <yum.sqlitesack.YumAvailablePackageSqlite object at 0x10aca410>

Tghis can obviosly only happen in the second run of the while loop. So I 
guess the deptree needs to be updated somehow.

Florian



More information about the Yum-devel mailing list