After a slot conflict occurs, allow the highest version to be eliminated from the graph when appropriate. This is needed for correct behavior in cases the highest version cannot be installed because an older version is required by some package. This reverts a change related to bug 531656 from commit a9064d08ef4c92a5d0d1bfb3dc8a01b7850812b0, and that change no longer appears to be necessary, since the unit tests related to bug 531656 now pass without it.
Due to this change in slot conflict handling, the --changed-slot test case related to bug 456208 will now fail unless we use an @world update to trigger rebuilds, therefore fix it to do so. Bug: https://bugs.gentoo.org/439688 Signed-off-by: Zac Medico <zmed...@gentoo.org> --- lib/_emerge/depgraph.py | 9 --------- .../tests/resolver/test_slot_change_without_revbump.py | 4 ++-- lib/portage/tests/resolver/test_slot_conflict_rebuild.py | 3 --- 3 files changed, 2 insertions(+), 14 deletions(-) diff --git a/lib/_emerge/depgraph.py b/lib/_emerge/depgraph.py index e071be8df..3f864aefc 100644 --- a/lib/_emerge/depgraph.py +++ b/lib/_emerge/depgraph.py @@ -1501,15 +1501,6 @@ class depgraph: matched = [] for pkg in conflict: - if (pkg is highest_pkg and - not highest_pkg.installed and - inst_pkg is not None and - inst_pkg.sub_slot != highest_pkg.sub_slot and - not self._downgrade_probe(highest_pkg)): - # If an upgrade is desired, force the highest - # version into the graph (bug #531656). - non_matching_forced.add(highest_pkg) - if atom.match(pkg.with_use( self._pkg_use_enabled(pkg))) and \ not (is_arg_parent and pkg.installed): diff --git a/lib/portage/tests/resolver/test_slot_change_without_revbump.py b/lib/portage/tests/resolver/test_slot_change_without_revbump.py index 5cd8c53d1..e05705671 100644 --- a/lib/portage/tests/resolver/test_slot_change_without_revbump.py +++ b/lib/portage/tests/resolver/test_slot_change_without_revbump.py @@ -71,8 +71,8 @@ class SlotChangeWithoutRevBumpTestCase(TestCase): # Test --changed-slot ResolverPlaygroundTestCase( - ["app-arch/libarchive"], - options = {"--changed-slot": True, "--usepkg": True}, + ["@world"], + options = {"--changed-slot": True, "--usepkg": True, "--update": True, "--deep": True}, success = True, mergelist = ["app-arch/libarchive-3.1.1", "kde-base/ark-4.10.0"]), diff --git a/lib/portage/tests/resolver/test_slot_conflict_rebuild.py b/lib/portage/tests/resolver/test_slot_conflict_rebuild.py index b3bcf44d0..d650d42ae 100644 --- a/lib/portage/tests/resolver/test_slot_conflict_rebuild.py +++ b/lib/portage/tests/resolver/test_slot_conflict_rebuild.py @@ -454,10 +454,7 @@ class SlotConflictRebuildTestCase(TestCase): finally: playground.cleanup() -class SlotConflictRebuildGolangTestCase(TestCase): - def testSlotConflictRebuildGolang(self): - self.todo = True ebuilds = { -- 2.25.3