From 4c0707d8a4bcc6324f1acd3338957395aafc1c27 Mon Sep 17 00:00:00 2001 From: Zac Medico Date: Wed, 23 Jul 2008 19:48:59 +0000 Subject: Fix --depclean/--prune regressions reported by selkin: * Make --with-bdeps default to "y" for removal actions. * Treat unsatisfied build time dependencies as "soft" for removal actions, even when --with-bdeps=y. svn path=/main/trunk/; revision=11176 --- pym/_emerge/__init__.py | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) (limited to 'pym/_emerge') diff --git a/pym/_emerge/__init__.py b/pym/_emerge/__init__.py index 9aa8e38e3..50462940d 100644 --- a/pym/_emerge/__init__.py +++ b/pym/_emerge/__init__.py @@ -4485,6 +4485,7 @@ class depgraph(object): myuse = pkg.use.enabled jbigkey = pkg depth = pkg.depth + 1 + removal_action = "remove" in self.myparams edepend={} depkeys = ["DEPEND","RDEPEND","PDEPEND"] @@ -4498,7 +4499,8 @@ class depgraph(object): edepend["RDEPEND"] = "" edepend["PDEPEND"] = "" bdeps_satisfied = False - if mytype in ("installed", "binary"): + + if pkg.built and not removal_action: if self.myopts.get("--with-bdeps", "n") == "y": # Pull in build time deps as requested, but marked them as # "satisfied" since they are not strictly required. This allows @@ -4512,6 +4514,9 @@ class depgraph(object): # built packages do not have build time dependencies. edepend["DEPEND"] = "" + if removal_action and self.myopts.get("--with-bdeps", "y") == "n": + edepend["DEPEND"] = "" + deps = ( ("/", edepend["DEPEND"], self._priority(buildtime=True, satisfied=bdeps_satisfied)), @@ -11681,8 +11686,10 @@ def action_depclean(settings, trees, ldpath_mtimes, unresolvable = set() for dep in resolver._initially_unsatisfied_deps: - if isinstance(dep.parent, Package): + if isinstance(dep.parent, Package) and \ + (dep.priority > UnmergeDepPriority.SOFT): unresolvable.add((dep.atom, dep.parent.cpv)) + if not unresolvable: return False -- cgit v1.2.3-1-g7c22