Gentoo Archives: gentoo-commits

From: "Zac Medico (zmedico)" <zmedico@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] portage r13716 - main/trunk/pym/_emerge
Date: Sat, 27 Jun 2009 19:39:49
Message-Id: E1MKdkZ-00051b-1u@stork.gentoo.org
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":