Merged from trunk 5271:5283
For bug #157823, ignore blocker collisions between two packages that are
already installed if no merge is currently scheduled for either of those
package slots. These blockers will be handled as necessary the next
time that a merge of either package is triggered.
Make the fetch phase bail out if FETCHCOMMAND or RESUMECOMMAND are
missing. Thanks to Flameeyes for reporting.
All portage.fetch() to succeed even if FETCHCOMMAND and RESUMECOMMAND
aren't defined.
Centralize all of the vardb metadata mangling in FakeVartree.
Store dependency metadata in depgraph.mydbapi so that it can be used in
place of the portdb for optimized dep_check calls in
depgraph.validate_blockers().
Optimize dep_check calls in depgraph.validate_blockers() by using a
fakedbapi instance instead of the real pordbapi (minimizes available
matches).
For higher efficiency, call self.__int__() instead of int(self).
For bug #157897, only let depgraph.create() inject "merge" nodes into
the final state dbapi.
For bug #157897, ensure that only "merge" nodes are stored in
digraph.pkg_node_map.
Move the biolerplate cpv_all() implementation from portdbapi to dbapi.
Track slot atom to digraph node mappings as the depgraph is built. This
mapping will be used to detect node collisions for bug #157897.
Remove redundant digraph.pkg_node_map node insertions. Once per
digraph.create() call will cover all nodes.
svn path=/main/branches/prefix/; revision=5284