summaryrefslogtreecommitdiffstats
path: root/bin/emerge
diff options
context:
space:
mode:
authorZac Medico <zmedico@gentoo.org>2008-04-04 00:56:20 +0000
committerZac Medico <zmedico@gentoo.org>2008-04-04 00:56:20 +0000
commitd19d3720213f5f44f09db54fff0c5b45702ec61a (patch)
treefba0f7b167f4a927aa52044c194e47481165dc34 /bin/emerge
parentb1c25c26c5116c16208be8a1eba62f6066403d6c (diff)
downloadportage-d19d3720213f5f44f09db54fff0c5b45702ec61a.tar.gz
portage-d19d3720213f5f44f09db54fff0c5b45702ec61a.tar.bz2
portage-d19d3720213f5f44f09db54fff0c5b45702ec61a.zip
Add missing DepPriority instances to the graph so that the --buildpkgonly
hasallzeros() calculation works correctly. (trunk r9695:9697) svn path=/main/branches/2.1.2/; revision=9698
Diffstat (limited to 'bin/emerge')
-rwxr-xr-xbin/emerge41
1 files changed, 16 insertions, 25 deletions
diff --git a/bin/emerge b/bin/emerge
index e91882339..6d698e744 100755
--- a/bin/emerge
+++ b/bin/emerge
@@ -1788,7 +1788,7 @@ class depgraph:
# parent/child relationship is always known in case
# self._show_slot_collision_notice() needs to be called later.
if pkg.onlydeps:
- self.digraph.add(pkg, myparent)
+ self.digraph.add(pkg, myparent, priority=priority)
merging = not (pkg.installed or pkg.onlydeps)
myuse = pkg.metadata["USE"].split()
@@ -1841,32 +1841,23 @@ class depgraph:
# built packages do not have build time dependencies.
edepend["DEPEND"] = ""
- """ We have retrieve the dependency information, now we need to recursively
- process them. DEPEND gets processed for root = "/", {R,P}DEPEND in myroot. """
-
- mp = pkg
+ deps = (
+ ("/", edepend["DEPEND"],
+ DepPriority(buildtime=True, satisfied=bdeps_satisfied)),
+ (myroot, edepend["RDEPEND"], DepPriority(runtime=True)),
+ (myroot, edepend["PDEPEND"], DepPriority(runtime_post=True))
+ )
try:
- if not self.select_dep("/", edepend["DEPEND"], myparent=mp,
- myuse=myuse, priority=DepPriority(buildtime=True,
- satisfied=bdeps_satisfied),
- parent_arg=arg):
- return 0
- """RDEPEND is soft by definition. However, in order to ensure
- correct merge order, we make it a hard dependency. Otherwise, a
- build time dependency might not be usable due to it's run time
- dependencies not being installed yet.
- """
- if not self.select_dep(myroot,edepend["RDEPEND"], myparent=mp,
- myuse=myuse, priority=DepPriority(runtime=True),
- parent_arg=arg):
- return 0
- if edepend.has_key("PDEPEND") and edepend["PDEPEND"]:
- # Post Depend -- Add to the list without a parent, as it depends
- # on a package being present AND must be built after that package.
- if not self.select_dep(myroot, edepend["PDEPEND"], myparent=mp,
- myuse=myuse, priority=DepPriority(runtime_post=True),
- parent_arg=arg):
+ for dep_root, dep_string, dep_priority in deps:
+ if pkg.onlydeps:
+ # Decrease priority so that --buildpkgonly
+ # hasallzeros() works correctly.
+ dep_priority = DepPriority()
+ if not dep_string:
+ continue
+ if not self.select_dep(dep_root, dep_string, myparent=pkg,
+ myuse=myuse, priority=dep_priority, parent_arg=arg):
return 0
except ValueError, e:
pkgs = e.args[0]