diff options
author | Zac Medico <zmedico@gentoo.org> | 2006-07-31 19:23:19 +0000 |
---|---|---|
committer | Zac Medico <zmedico@gentoo.org> | 2006-07-31 19:23:19 +0000 |
commit | 787c0ff91973817c11e3cfcfac61e1e73d5eb78e (patch) | |
tree | 31d5c53ebf95bffeede811d67a0170b84b25c8c4 | |
parent | 4ea7b22f44881de14e9d5e1e4528b78752277a56 (diff) | |
download | portage-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-x | bin/emerge | 16 |
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: |