summaryrefslogtreecommitdiffstats
path: root/bin
diff options
context:
space:
mode:
authorZac Medico <zmedico@gentoo.org>2008-04-13 22:22:14 +0000
committerZac Medico <zmedico@gentoo.org>2008-04-13 22:22:14 +0000
commit87bb43399c85d59ce0c1f8615110add12b26df7a (patch)
treef845eee7d98ec9b78b589a944fafeeb081a3c679 /bin
parent3e83077e2256692aaa37327c83dea97100f7d2d1 (diff)
downloadportage-87bb43399c85d59ce0c1f8615110add12b26df7a.tar.gz
portage-87bb43399c85d59ce0c1f8615110add12b26df7a.tar.bz2
portage-87bb43399c85d59ce0c1f8615110add12b26df7a.zip
To optimize consistency of atom selections, add all of the root packages
to the graph before processing any dependencies. (trunk r9874) svn path=/main/branches/2.1.2/; revision=9878
Diffstat (limited to 'bin')
-rwxr-xr-xbin/emerge11
1 files changed, 7 insertions, 4 deletions
diff --git a/bin/emerge b/bin/emerge
index a2a27850a..c803afb35 100755
--- a/bin/emerge
+++ b/bin/emerge
@@ -2535,6 +2535,7 @@ class depgraph(object):
while args:
arg = args.pop()
for atom in arg.set:
+ self.spinner.update()
atom_cp = portage.dep_getkey(atom)
try:
pprovided = pprovideddict.get(portage.dep_getkey(atom))
@@ -2585,16 +2586,12 @@ class depgraph(object):
dep = Dependency(atom=atom, onlydeps=onlydeps,
root=myroot, parent=arg)
- self._dep_stack.append(dep)
# Add the selected package to the graph as soon as possible
# so that later dep_check() calls can use it as feedback
# for making more consistent atom selections.
if not self._add_pkg(pkg, dep.parent,
priority=dep.priority, depth=dep.depth):
- return 0, myfavorites
-
- if not self._create_graph():
if isinstance(arg, SetArg):
sys.stderr.write(("\n\n!!! Problem resolving " + \
"dependencies for %s from %s\n") % \
@@ -2603,6 +2600,7 @@ class depgraph(object):
sys.stderr.write(("\n\n!!! Problem resolving " + \
"dependencies for %s\n") % atom)
return 0, myfavorites
+
except portage_exception.MissingSignature, e:
portage.writemsg("\n\n!!! A missing gpg signature is preventing portage from calculating the\n")
portage.writemsg("!!! required dependencies. This is a security feature enabled by the admin\n")
@@ -2624,6 +2622,11 @@ class depgraph(object):
print >> sys.stderr, "!!!", str(e), getattr(e, "__module__", None)
raise
+ # Now that the root packages have been added to the graph,
+ # process the dependencies.
+ if not self._create_graph():
+ return 0, myfavorites
+
missing=0
if "--usepkgonly" in self.myopts:
for xs in self.digraph.all_nodes():