Lines 1520-1525
Link Here
|
1520 |
self.blocker_parents[blocker] = myparents |
1520 |
self.blocker_parents[blocker] = myparents |
1521 |
myparents.add(myparent) |
1521 |
myparents.add(myparent) |
1522 |
|
1522 |
|
|
|
1523 |
modified_slots = {} |
1524 |
if self.blocker_parents: |
1525 |
for myroot in self.trees: |
1526 |
myslots = {} |
1527 |
modified_slots[myroot] = myslots |
1528 |
final_db = self.mydbapi[myroot] |
1529 |
for mycpv, mynode in self.pkg_node_map[myroot].iteritems(): |
1530 |
mytype, myroot, mycpv, mystatus = mynode |
1531 |
if mystatus == "merge": |
1532 |
slot_atom = "%s:%s" % (portage.dep_getkey(mycpv), |
1533 |
final_db.aux_get(mycpv, ["SLOT"])[0]) |
1534 |
modified_slots[myroot][slot_atom] = mycpv |
1535 |
|
1523 |
for blocker in self.blocker_parents.keys(): |
1536 |
for blocker in self.blocker_parents.keys(): |
1524 |
mytype, myroot, mydep = blocker |
1537 |
mytype, myroot, mydep = blocker |
1525 |
initial_db = self.trees[myroot]["vartree"].dbapi |
1538 |
initial_db = self.trees[myroot]["vartree"].dbapi |
Lines 1544-1549
Link Here
|
1544 |
pdbapi = self.trees[proot][self.pkg_tree_map[ptype]].dbapi |
1557 |
pdbapi = self.trees[proot][self.pkg_tree_map[ptype]].dbapi |
1545 |
pslot = pdbapi.aux_get(pcpv, ["SLOT"])[0] |
1558 |
pslot = pdbapi.aux_get(pcpv, ["SLOT"])[0] |
1546 |
pslot_atom = "%s:%s" % (portage.dep_getkey(pcpv), pslot) |
1559 |
pslot_atom = "%s:%s" % (portage.dep_getkey(pcpv), pslot) |
|
|
1560 |
parent_static = pslot_atom not in modified_slots[proot] |
1547 |
unresolved_blocks = False |
1561 |
unresolved_blocks = False |
1548 |
depends_on_order = set() |
1562 |
depends_on_order = set() |
1549 |
for cpv in blocked_initial: |
1563 |
for cpv in blocked_initial: |
Lines 1554-1559
Link Here
|
1554 |
# node matters. In any case, this particular block is |
1568 |
# node matters. In any case, this particular block is |
1555 |
# automatically resolved. |
1569 |
# automatically resolved. |
1556 |
continue |
1570 |
continue |
|
|
1571 |
if parent_static and \ |
1572 |
slot_atom not in modified_slots[myroot]: |
1573 |
# This blocker will be handled the next time that a |
1574 |
# merge of either package is triggered. |
1575 |
continue |
1557 |
if pstatus == "merge" and \ |
1576 |
if pstatus == "merge" and \ |
1558 |
slot_atom not in blocked_slots_final.values(): |
1577 |
slot_atom not in blocked_slots_final.values(): |
1559 |
upgrade_matches = final_db.match(slot_atom) |
1578 |
upgrade_matches = final_db.match(slot_atom) |
Lines 1573-1578
Link Here
|
1573 |
# The parent blocks itself, so the merge order does not |
1592 |
# The parent blocks itself, so the merge order does not |
1574 |
# need to be enforced. |
1593 |
# need to be enforced. |
1575 |
continue |
1594 |
continue |
|
|
1595 |
if parent_static and \ |
1596 |
slot_atom not in modified_slots[myroot]: |
1597 |
# This blocker will be handled the next time that a |
1598 |
# merge of either package is triggered. |
1599 |
continue |
1576 |
# None of the above blocker resolutions techniques apply, |
1600 |
# None of the above blocker resolutions techniques apply, |
1577 |
# so apparently this one is unresolvable. |
1601 |
# so apparently this one is unresolvable. |
1578 |
unresolved_blocks = True |
1602 |
unresolved_blocks = True |