From 42d96af3a3f2685cf9b65975a32f33783c0a1f09 Mon Sep 17 00:00:00 2001 From: Faik Uygur Date: Fri, 15 Sep 2006 13:56:54 +0000 Subject: [PATCH] =?UTF-8?q?*=20=C3=96rne=C4=9Fin=20bir=20kdelibs=20silindi?= =?UTF-8?q?=C4=9Finde=20revdep=20db'sindeki=20listesini=20silmemeli.=20Bu?= =?UTF-8?q?=20liste,=20liste=20elemanlar=C4=B1n=C4=B1n=20sonuncusu=20kald?= =?UTF-8?q?=C4=B1r=C4=B1ld=C4=B1=C4=9F=C4=B1nda=20yani=20bu=20liste=20bo?= =?UTF-8?q?=C5=9Fald=C4=B1=C4=9F=C4=B1nda=20silinmeli.=20#=20Bug=203558?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pisi/packagedb.py | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/pisi/packagedb.py b/pisi/packagedb.py index f8fbb0c4..a24c933d 100644 --- a/pisi/packagedb.py +++ b/pisi/packagedb.py @@ -127,9 +127,16 @@ class PackageDB(object): if self.dr.has_key(dep_name, repo, txn): revdep = self.dr.get_item(dep_name, repo, txn) revdep = filter(lambda (n,d):n!=name, revdep) - self.dr.add_item(dep_name, revdep, repo, txn) - if self.dr.has_key(name, repo, txn=txn): - self.dr.remove_item(name, repo, txn=txn) + if revdep: + self.dr.add_item(dep_name, revdep, repo, 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) for (lang, doc) in package_info.summary.iteritems(): if lang in ['en', 'tr']: