diff --git a/pisi/operations.py b/pisi/operations.py index 92afbdc2..8ed97124 100644 --- a/pisi/operations.py +++ b/pisi/operations.py @@ -521,7 +521,7 @@ def plan_upgrade(A, ignore_build = False): # add packages that can be upgraded if dependency.repo_satisfies_dep(dep): if ctx.installdb.is_installed(dep.package): - if not is_upgradable(dep.package): + if dependency.installed_satisfies_dep(dep): continue if not dep.package in G_f.vertices(): Bp.add(str(dep.package)) @@ -539,8 +539,11 @@ def plan_upgrade(A, ignore_build = False): pkg = packagedb.get_package(x) rev_deps = packagedb.get_rev_deps(x) for (rev_dep, depinfo) in rev_deps: - # add all upgradable reverse deps - if is_upgradable(rev_dep): + # add only installed but unsatisfied reverse dependencies + if ctx.installdb.is_installed(rev_dep) and \ + (not dependency.installed_satisfies_dep(depinfo)): + if not dependency.repo_satisfies_dep(depinfo): + raise Error(_('Reverse dependency %s of %s cannot be satisfied') % (rev_dep, x)) if not rev_dep in G_f.vertices(): Bp.add(rev_dep) G_f.add_plain_dep(rev_dep, x)