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 |