Merged with trunk 4727:4738
Remove blocker nodes from the digraph prior to the merge order
calculation so that they don't trigger false circular dependencies as
reported in comment #17 of bug #151331.
Blockers that depend on merge order must be validated by
depgraph.altlist(reversed=False) before the reverse tree is generated,
since the validation won't work in reverse mode.
Fix altlist blocker validation logic so that the correct nodes are added
to the list when called in reverse mode.
Always add blockers with priority=digraph.SOFT so that blockers with
multiple parents can't trigger a circular deps panick.
Make --depclean treat DEPEND as soft deps instead of forcing the user to
have all build time deps installed.
Use setdefault to avoid an extra dict lookup.
Merge package.use and USE from make.defaults together at each level of
the profile stack. This is analogous to how use.mask and
package.use.mask are planned to be merged for bug #151586.
Stack use.mask/package.use.mask together at each level of the profile
for bug #151586, and do the same with use.force/package.use.force.
Add back the -v option for tar (removed for bug #151146) in
dyn_package(), but don't enable -v when --quiet is enabled.
Encapsulate altlist calls (for blockers that depend on merge order) in
validate_blockers().
svn path=/main/branches/prefix/; revision=4739