* Örneğin bir kdelibs silindiğinde revdep db'sindeki listesini silmemeli.

Bu liste, liste elemanlarının sonuncusu kaldırıldığında yani bu liste 
boşaldığında silinmeli. # Bug 3558
This commit is contained in:
Faik Uygur
2006-09-15 13:56:54 +00:00
parent 36a1f0e6ef
commit 42d96af3a3
+10 -3
View File
@@ -127,9 +127,16 @@ class PackageDB(object):
if self.dr.has_key(dep_name, repo, txn): if self.dr.has_key(dep_name, repo, txn):
revdep = self.dr.get_item(dep_name, repo, txn) revdep = self.dr.get_item(dep_name, repo, txn)
revdep = filter(lambda (n,d):n!=name, revdep) revdep = filter(lambda (n,d):n!=name, revdep)
self.dr.add_item(dep_name, revdep, repo, txn) if revdep:
if self.dr.has_key(name, repo, txn=txn): self.dr.add_item(dep_name, revdep, repo, txn)
self.dr.remove_item(name, repo, txn=txn) else:
# Bug 3558: removal of revdep list of a package from revdepdb
# should only be done by the list members (dep. packages), not
# the package itself. So if a package is removed, it is removed
# from packagedb but its revdepdb part may still exist, until
# all the list members are removed.
self.dr.remove_item(dep_name, repo, txn=txn)
ctx.componentdb.remove_package(package_info.partOf, package_info.name, repo, txn) ctx.componentdb.remove_package(package_info.partOf, package_info.name, repo, txn)
for (lang, doc) in package_info.summary.iteritems(): for (lang, doc) in package_info.summary.iteritems():
if lang in ['en', 'tr']: if lang in ['en', 'tr']: