1 |
commit: 67423a3606db72f45ffe4dec325253a30508bd9d |
2 |
Author: Zac Medico <zmedico <AT> gentoo <DOT> org> |
3 |
AuthorDate: Sun Aug 30 23:21:25 2020 +0000 |
4 |
Commit: Zac Medico <zmedico <AT> gentoo <DOT> org> |
5 |
CommitDate: Sun Aug 30 23:39:41 2020 +0000 |
6 |
URL: https://gitweb.gentoo.org/proj/portage.git/commit/?id=67423a36 |
7 |
|
8 |
dephgraph: Allow elimination of highest version after slot conflict (bug 439688) |
9 |
|
10 |
After a slot conflict occurs, allow the highest version to be eliminated |
11 |
from the graph when appropriate. This is needed for correct behavior in |
12 |
cases the highest version cannot be installed because an older version |
13 |
is required by some package. This reverts a change related to bug 531656 |
14 |
from commit a9064d08ef4c92a5d0d1bfb3dc8a01b7850812b0, and that change |
15 |
no longer appears to be necessary, since the unit tests related to bug |
16 |
531656 now pass without it. |
17 |
|
18 |
Due to this change in slot conflict handling, the --changed-slot test |
19 |
case related to bug 456208 will now fail unless we use an @world update to |
20 |
trigger rebuilds, therefore fix it to do so. |
21 |
|
22 |
Bug: https://bugs.gentoo.org/439688 |
23 |
Signed-off-by: Zac Medico <zmedico <AT> gentoo.org> |
24 |
|
25 |
lib/_emerge/depgraph.py | 9 --------- |
26 |
lib/portage/tests/resolver/test_slot_change_without_revbump.py | 4 ++-- |
27 |
lib/portage/tests/resolver/test_slot_conflict_rebuild.py | 3 --- |
28 |
3 files changed, 2 insertions(+), 14 deletions(-) |
29 |
|
30 |
diff --git a/lib/_emerge/depgraph.py b/lib/_emerge/depgraph.py |
31 |
index e071be8df..3f864aefc 100644 |
32 |
--- a/lib/_emerge/depgraph.py |
33 |
+++ b/lib/_emerge/depgraph.py |
34 |
@@ -1501,15 +1501,6 @@ class depgraph: |
35 |
|
36 |
matched = [] |
37 |
for pkg in conflict: |
38 |
- if (pkg is highest_pkg and |
39 |
- not highest_pkg.installed and |
40 |
- inst_pkg is not None and |
41 |
- inst_pkg.sub_slot != highest_pkg.sub_slot and |
42 |
- not self._downgrade_probe(highest_pkg)): |
43 |
- # If an upgrade is desired, force the highest |
44 |
- # version into the graph (bug #531656). |
45 |
- non_matching_forced.add(highest_pkg) |
46 |
- |
47 |
if atom.match(pkg.with_use( |
48 |
self._pkg_use_enabled(pkg))) and \ |
49 |
not (is_arg_parent and pkg.installed): |
50 |
|
51 |
diff --git a/lib/portage/tests/resolver/test_slot_change_without_revbump.py b/lib/portage/tests/resolver/test_slot_change_without_revbump.py |
52 |
index 5cd8c53d1..e05705671 100644 |
53 |
--- a/lib/portage/tests/resolver/test_slot_change_without_revbump.py |
54 |
+++ b/lib/portage/tests/resolver/test_slot_change_without_revbump.py |
55 |
@@ -71,8 +71,8 @@ class SlotChangeWithoutRevBumpTestCase(TestCase): |
56 |
|
57 |
# Test --changed-slot |
58 |
ResolverPlaygroundTestCase( |
59 |
- ["app-arch/libarchive"], |
60 |
- options = {"--changed-slot": True, "--usepkg": True}, |
61 |
+ ["@world"], |
62 |
+ options = {"--changed-slot": True, "--usepkg": True, "--update": True, "--deep": True}, |
63 |
success = True, |
64 |
mergelist = ["app-arch/libarchive-3.1.1", "kde-base/ark-4.10.0"]), |
65 |
|
66 |
|
67 |
diff --git a/lib/portage/tests/resolver/test_slot_conflict_rebuild.py b/lib/portage/tests/resolver/test_slot_conflict_rebuild.py |
68 |
index b3bcf44d0..d650d42ae 100644 |
69 |
--- a/lib/portage/tests/resolver/test_slot_conflict_rebuild.py |
70 |
+++ b/lib/portage/tests/resolver/test_slot_conflict_rebuild.py |
71 |
@@ -454,10 +454,7 @@ class SlotConflictRebuildTestCase(TestCase): |
72 |
finally: |
73 |
playground.cleanup() |
74 |
|
75 |
-class SlotConflictRebuildGolangTestCase(TestCase): |
76 |
- |
77 |
def testSlotConflictRebuildGolang(self): |
78 |
- self.todo = True |
79 |
|
80 |
ebuilds = { |