correct merge order such that mutually blocking packages are never
installed simultaneously."""
- if "deep" in self.myparams:
+ #if "deep" in self.myparams:
+ if True:
# Pull in blockers from all installed packages that haven't already
# been pulled into the depgraph. This is not enabled by default
# due to the performance penalty that is incurred by all the
vardb = self.trees[myroot]["vartree"].dbapi
portdb = self.trees[myroot]["porttree"].dbapi
pkgsettings = self.pkgsettings[myroot]
+ final_db = self.mydbapi[myroot]
for pkg in self.trees[myroot]["vartree"].dbapi.cpv_all():
blocker_atoms = None
matching_node = pkg_node_map.get(pkg, None)
ptype = "installed"
myuse = vardb.aux_get(pkg, ["USE"])[0]
depstr = " ".join(dep_vals)
- success, atoms = portage.dep_check(depstr, None,
+ # It is crucial to pass in final_db here in order to
+ # optimize dep_check calls by eliminating atoms via
+ # dep_wordreduce and dep_eval calls.
+ success, atoms = portage.dep_check(depstr, final_db,
pkgsettings, myuse=myuse, trees=self.trees,
myroot=myroot)
if not success: