On 4/11/20 6:10 PM, Brian Dolbec wrote: > On Sat, 11 Apr 2020 17:39:53 -0700 > Zac Medico <zmed...@gentoo.org> wrote: > >> When searching for slot operator rebuilds, respect non slot-operator >> components of parent dependencies, so that a <foo-version:= dependency >> like the <dev-libs/libgit2-1:0=[ssh?] dependency from bug 717140 will >> not be completely ignored. This will prevent erroneous attempts to >> trigger slot operator rebuilds for upgrades that would break >> <foo-version:= dependencies (which triggered upgrade/downgrade loops >> when backtracking tried to resolve the breakage). >> >> Bug: https://bugs.gentoo.org/717140 >> Signed-off-by: Zac Medico <zmed...@gentoo.org> >> --- >> lib/_emerge/depgraph.py | 12 >> +++++++++--- .../resolver/test_slot_operator_reverse_deps.py | >> 1 - 2 files changed, 9 insertions(+), 4 deletions(-) >> >> diff --git a/lib/_emerge/depgraph.py b/lib/_emerge/depgraph.py >> index 6d1f62178..ec90e59df 100644 >> --- a/lib/_emerge/depgraph.py >> +++ b/lib/_emerge/depgraph.py >> @@ -2068,9 +2068,15 @@ class depgraph(object): >> for parent, atom in >> self._dynamic_config._parent_atoms.get(existing_pkg, []): if >> isinstance(parent, Package): if parent in built_slot_operator_parents: >> - # This parent may >> need to be rebuilt, so its >> - # dependencies >> aren't necessarily relevant. >> - continue >> + # This parent may >> need to be rebuilt, therefore >> + # discard its soname >> and built slot operator >> + # dependency >> components which are not necessarily >> + # relevant. >> + if atom.soname: >> + continue >> + elif atom.package >> and atom.slot_operator_built: >> + # This >> discards the slot/subslot component. >> + atom = >> atom.with_slot("=") >> if replacement_parent is not >> None and \ (replacement_parent.slot_atom == parent.slot_atom >> diff --git >> a/lib/portage/tests/resolver/test_slot_operator_reverse_deps.py >> b/lib/portage/tests/resolver/test_slot_operator_reverse_deps.py index >> 5c5295510..e0e738d6b 100644 --- >> a/lib/portage/tests/resolver/test_slot_operator_reverse_deps.py +++ >> b/lib/portage/tests/resolver/test_slot_operator_reverse_deps.py @@ >> -122,7 +122,6 @@ class >> SlotOperatorReverseDepsLibGit2TestCase(TestCase): trigger an upgrade >> to dev-libs/libgit2-1.0.0-r1, ultimately resulting in an undesirable >> downgrade to dev-libs/libgit2-0.28.4-r1. """ >> - self.todo = True >> >> ebuilds = { >> > > looks fine to me :) >
Thanks, merged: https://gitweb.gentoo.org/proj/portage.git/commit/?id=9b755b46f9e88f25fecada0a32095ea614a73b57 -- Thanks, Zac
signature.asc
Description: OpenPGP digital signature