diff --git a/pisi/itembyrepodb.py b/pisi/itembyrepodb.py index 73313e8e..d8fb056a 100644 --- a/pisi/itembyrepodb.py +++ b/pisi/itembyrepodb.py @@ -113,7 +113,8 @@ class ItemByRepoDB(object): if not repo: return haskey else: - return haskey and self.d.get(name, txn).has_key(repo) + repostr = self.repo_str(repo) + return haskey and self.d.get(name, txn).has_key(repostr) def get_item_repo(self, name, repo = None, txn = None): name = str(name) diff --git a/pisi/operations.py b/pisi/operations.py index b9e54860..ddd2ae6e 100644 --- a/pisi/operations.py +++ b/pisi/operations.py @@ -493,8 +493,8 @@ def plan_remove(A): while len(B) > 0: Bp = set() for x in B: - pkg = ctx.packagedb.get_package(x) - rev_deps = ctx.packagedb.get_rev_deps(x) + pkg = ctx.packagedb.get_package(x, pisi.itembyrepodb.installed) + rev_deps = ctx.packagedb.get_rev_deps(x, pisi.itembyrepodb.installed) for (rev_dep, depinfo) in rev_deps: # we don't deal with uninstalled rev deps # and unsatisfied dependencies (this is important, too) diff --git a/pisi/packagedb.py b/pisi/packagedb.py index fc0272b5..30cb52c7 100644 --- a/pisi/packagedb.py +++ b/pisi/packagedb.py @@ -73,9 +73,9 @@ class PackageDB(object): def which_repo(self, name, txn = None): return self.d.which_repo(name, txn=txn) - def get_rev_deps(self, name): - if self.dr.has_key(name): - return self.dr.get_item(name) + def get_rev_deps(self, name, repo = None, txn = None): + if self.dr.has_key(name, repo, txn=txn): + return self.dr.get_item(name, repo, txn=txn) else: return []