1 |
Author: zmedico |
2 |
Date: 2009-06-27 19:39:46 +0000 (Sat, 27 Jun 2009) |
3 |
New Revision: 13716 |
4 |
|
5 |
Modified: |
6 |
main/trunk/pym/_emerge/depgraph.py |
7 |
Log: |
8 |
Bug #270953 - New !!atom blockers do not allow temporary simulaneous |
9 |
installation, so unlike !atom blockers, !!atom blockers aren't ignored |
10 |
when they match other packages occupying the same slot. Thanks to |
11 |
Sebastian Mingramm (few) <s.mingramm@×××.de> for the initial patch. |
12 |
|
13 |
|
14 |
Modified: main/trunk/pym/_emerge/depgraph.py |
15 |
=================================================================== |
16 |
--- main/trunk/pym/_emerge/depgraph.py 2009-06-27 14:44:56 UTC (rev 13715) |
17 |
+++ main/trunk/pym/_emerge/depgraph.py 2009-06-27 19:39:46 UTC (rev 13716) |
18 |
@@ -2446,11 +2446,13 @@ |
19 |
unresolved_blocks = False |
20 |
depends_on_order = set() |
21 |
for pkg in blocked_initial: |
22 |
- if pkg.slot_atom == parent.slot_atom: |
23 |
- # TODO: Support blocks within slots in cases where it |
24 |
- # might make sense. For example, a new version might |
25 |
- # require that the old version be uninstalled at build |
26 |
- # time. |
27 |
+ if pkg.slot_atom == parent.slot_atom and \ |
28 |
+ not blocker.atom.blocker.overlap.forbid: |
29 |
+ # New !!atom blockers do not allow temporary |
30 |
+ # simulaneous installation, so unlike !atom |
31 |
+ # blockers, !!atom blockers aren't ignored |
32 |
+ # when they match other packages occupying |
33 |
+ # the same slot. |
34 |
continue |
35 |
if parent.installed: |
36 |
# Two currently installed packages conflict with |
37 |
@@ -2470,8 +2472,13 @@ |
38 |
# so apparently this one is unresolvable. |
39 |
unresolved_blocks = True |
40 |
for pkg in blocked_final: |
41 |
- if pkg.slot_atom == parent.slot_atom: |
42 |
- # TODO: Support blocks within slots. |
43 |
+ if pkg.slot_atom == parent.slot_atom and \ |
44 |
+ not blocker.atom.blocker.overlap.forbid: |
45 |
+ # New !!atom blockers do not allow temporary |
46 |
+ # simulaneous installation, so unlike !atom |
47 |
+ # blockers, !!atom blockers aren't ignored |
48 |
+ # when they match other packages occupying |
49 |
+ # the same slot. |
50 |
continue |
51 |
if parent.operation == "nomerge" and \ |
52 |
pkg.operation == "nomerge": |