summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorZac Medico <zmedico@gentoo.org>2006-07-31 19:23:19 +0000
committerZac Medico <zmedico@gentoo.org>2006-07-31 19:23:19 +0000
commit787c0ff91973817c11e3cfcfac61e1e73d5eb78e (patch)
tree31d5c53ebf95bffeede811d67a0170b84b25c8c4
parent4ea7b22f44881de14e9d5e1e4528b78752277a56 (diff)
downloadportage-787c0ff91973817c11e3cfcfac61e1e73d5eb78e.tar.gz
portage-787c0ff91973817c11e3cfcfac61e1e73d5eb78e.tar.bz2
portage-787c0ff91973817c11e3cfcfac61e1e73d5eb78e.zip
Match blockers against the correct $ROOT for bug #108449. This patch is from trunk r3787.
svn path=/main/branches/2.1/; revision=4074
-rwxr-xr-xbin/emerge16
1 files changed, 9 insertions, 7 deletions
diff --git a/bin/emerge b/bin/emerge
index 078848896..ed14f0905 100755
--- a/bin/emerge
+++ b/bin/emerge
@@ -948,14 +948,16 @@ class depgraph:
# select the correct /var database that we'll be checking against
vardbapi=portage.db[myroot]["vartree"].dbapi
- # if the package is already on the system, we add a "nomerge"
- # directive, otherwise we add a "merge" directive.
if mytype=="blocks":
- # we've encountered a "blocks" node. We will totally ignore this
- # node and not add it to our digraph if it doesn't apply to us.
- if addme and "--buildpkgonly" not in myopts and myparent and (self.mydbapi[myroot].match(mykey) or vardbapi.match(mykey)):
- mybigkey.append(myparent.split()[2])
- self.digraph.addnode(string.join(mybigkey),myparent)
+ """ We ignore blocks unless the package that is blocked is installed
+ We need to check vardbapi as well as the current depgraph for it.
+ Blocks are fatal if buildpkgonly is set. """
+ if addme and "--buildpkgonly" not in myopts and myparent:
+ parent_root = myparent.split()[1]
+ if self.mydbapi[parent_root].match(mykey) or \
+ portage.db[parent_root]["vartree"].dbapi.match(mykey):
+ mybigkey.append(myparent.split()[2])
+ self.digraph.addnode(" ".join(mybigkey), myparent)
return 1
if myuse is None: