From 57604eaf869b544aac9e8ed2e270dcc6be3cf739 Mon Sep 17 00:00:00 2001 From: Zac Medico Date: Thu, 25 Oct 2012 21:57:01 -0700 Subject: [PATCH] depgraph: no multislot tweak for built slot op The multislot tweak from bug #220341 (see commit 65a421ae35acd5639ad1258e220754a85e55de6e) triggered erroneous matches for built slot-operator deps, causing the depgraph to treat unsatisfied built slot-operator deps as if they were satisfied (one of the issues uncovered in bug #439694). --- pym/_emerge/depgraph.py | 3 ++- pym/portage/tests/resolver/test_slot_operator_unsatisfied.py | 4 ++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/pym/_emerge/depgraph.py b/pym/_emerge/depgraph.py index 0722fac78..41bdc8ecd 100644 --- a/pym/_emerge/depgraph.py +++ b/pym/_emerge/depgraph.py @@ -3804,7 +3804,8 @@ class depgraph(object): # the newly built package still won't have the expected slot. # Therefore, assume that such SLOT dependencies are already # satisfied rather than forcing a rebuild. - if not matched_something and installed and atom.slot is not None: + if not matched_something and installed and \ + atom.slot is not None and not atom.slot_operator_built: if "remove" in self._dynamic_config.myparams: # We need to search the portdbapi, which is not in our diff --git a/pym/portage/tests/resolver/test_slot_operator_unsatisfied.py b/pym/portage/tests/resolver/test_slot_operator_unsatisfied.py index fe8893fa6..14631eb4e 100644 --- a/pym/portage/tests/resolver/test_slot_operator_unsatisfied.py +++ b/pym/portage/tests/resolver/test_slot_operator_unsatisfied.py @@ -43,12 +43,12 @@ class SlotOperatorUnsatisfiedTestCase(TestCase): test_cases = ( # Demonstrate bug #439694, where a broken slot-operator - # sub-slot dependency fails to be recognized. + # sub-slot dependency fails to trigger rebuild. ResolverPlaygroundTestCase( ["@world"], options = {"--update": True, "--deep": True}, success = True, - mergelist = []), + mergelist = ["app-misc/A-1"]), ResolverPlaygroundTestCase( ["app-misc/A"], -- 2.26.2