Gentoo Archives: gentoo-portage-dev

From: Zac Medico <zmedico@g.o>
To: gentoo-portage-dev@l.g.o, Brian Dolbec <dolsen@g.o>
Subject: Re: [gentoo-portage-dev] [PATCH] depgraph: respect <foo-version:= for slot operator rebuild (bug 717140)
Date: Sun, 12 Apr 2020 01:55:42
Message-Id: bac5cfb9-5bd6-16c8-73e2-774ca838847d@gentoo.org
In Reply to: Re: [gentoo-portage-dev] [PATCH] depgraph: respect by Brian Dolbec
1 On 4/11/20 6:10 PM, Brian Dolbec wrote:
2 > On Sat, 11 Apr 2020 17:39:53 -0700
3 > Zac Medico <zmedico@g.o> wrote:
4 >
5 >> When searching for slot operator rebuilds, respect non slot-operator
6 >> components of parent dependencies, so that a <foo-version:= dependency
7 >> like the <dev-libs/libgit2-1:0=[ssh?] dependency from bug 717140 will
8 >> not be completely ignored. This will prevent erroneous attempts to
9 >> trigger slot operator rebuilds for upgrades that would break
10 >> <foo-version:= dependencies (which triggered upgrade/downgrade loops
11 >> when backtracking tried to resolve the breakage).
12 >>
13 >> Bug: https://bugs.gentoo.org/717140
14 >> Signed-off-by: Zac Medico <zmedico@g.o>
15 >> ---
16 >> lib/_emerge/depgraph.py | 12
17 >> +++++++++--- .../resolver/test_slot_operator_reverse_deps.py |
18 >> 1 - 2 files changed, 9 insertions(+), 4 deletions(-)
19 >>
20 >> diff --git a/lib/_emerge/depgraph.py b/lib/_emerge/depgraph.py
21 >> index 6d1f62178..ec90e59df 100644
22 >> --- a/lib/_emerge/depgraph.py
23 >> +++ b/lib/_emerge/depgraph.py
24 >> @@ -2068,9 +2068,15 @@ class depgraph(object):
25 >> for parent, atom in
26 >> self._dynamic_config._parent_atoms.get(existing_pkg, []): if
27 >> isinstance(parent, Package): if parent in built_slot_operator_parents:
28 >> - # This parent may
29 >> need to be rebuilt, so its
30 >> - # dependencies
31 >> aren't necessarily relevant.
32 >> - continue
33 >> + # This parent may
34 >> need to be rebuilt, therefore
35 >> + # discard its soname
36 >> and built slot operator
37 >> + # dependency
38 >> components which are not necessarily
39 >> + # relevant.
40 >> + if atom.soname:
41 >> + continue
42 >> + elif atom.package
43 >> and atom.slot_operator_built:
44 >> + # This
45 >> discards the slot/subslot component.
46 >> + atom =
47 >> atom.with_slot("=")
48 >> if replacement_parent is not
49 >> None and \ (replacement_parent.slot_atom == parent.slot_atom
50 >> diff --git
51 >> a/lib/portage/tests/resolver/test_slot_operator_reverse_deps.py
52 >> b/lib/portage/tests/resolver/test_slot_operator_reverse_deps.py index
53 >> 5c5295510..e0e738d6b 100644 ---
54 >> a/lib/portage/tests/resolver/test_slot_operator_reverse_deps.py +++
55 >> b/lib/portage/tests/resolver/test_slot_operator_reverse_deps.py @@
56 >> -122,7 +122,6 @@ class
57 >> SlotOperatorReverseDepsLibGit2TestCase(TestCase): trigger an upgrade
58 >> to dev-libs/libgit2-1.0.0-r1, ultimately resulting in an undesirable
59 >> downgrade to dev-libs/libgit2-0.28.4-r1. """
60 >> - self.todo = True
61 >>
62 >> ebuilds = {
63 >>
64 >
65 > looks fine to me :)
66 >
67
68 Thanks, merged:
69
70 https://gitweb.gentoo.org/proj/portage.git/commit/?id=9b755b46f9e88f25fecada0a32095ea614a73b57
71 --
72 Thanks,
73 Zac

Attachments

File name MIME type
signature.asc application/pgp-signature