From bb52770e1fcccbc9301ed8fcfd8f7307437fadd1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Eray=20=C3=96zkural?= Date: Mon, 24 Oct 2005 12:03:02 +0000 Subject: [PATCH] * fix: search satisfiability in reverse deps in upgrades, as well. (bug #615) --- pisi/operations.py | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/pisi/operations.py b/pisi/operations.py index 394328c1..c8755f79 100644 --- a/pisi/operations.py +++ b/pisi/operations.py @@ -335,6 +335,30 @@ version %s, release %s, build %s.') Bp.add(str(dep.package)) G_f.add_dep(x, dep) B = Bp + # now, search reverse dependencies to see if anything + # should be upgraded + B = A + while len(B) > 0: + Bp = set() + for x in B: + pkg = packagedb.get_package(x) + rev_deps = packagedb.get_rev_deps(x) + for (rev_dep, depinfo) in rev_deps: + if not ctx.get_option('eager'): + # add unsatisfied reverse dependencies + if packagedb.has_package(rev_dep) and \ + (not dependency.installed_satisfies_dep(depinfo)): + if not dependency.repo_satisfies_dep(dep): + raise Error(_("Reverse dependency %s cannot be satisfied") % rev_dep) + if not rev_dep in G_f.vertices(): + Bp.add(rev_dep) + G_f.add_plain_dep(rev_dep, x) + else: + if not rev_dep in G_f.vertices(): + Bp.add(rev_dep) + G_f.add_plain_dep(rev_dep, x) + B = Bp + if ctx.config.get_option('debug'): G_f.write_graphviz(sys.stdout) order = G_f.topological_sort()