summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorZac Medico <zmedico@gentoo.org>2006-10-06 12:48:14 +0000
committerZac Medico <zmedico@gentoo.org>2006-10-06 12:48:14 +0000
commit2c94aaf40f387016738b91c94992adb840ab08ba (patch)
treeb6f74e244b7ba3cf924c7a4620593b7b61036eac
parenta0e151f5dd05e288440d215561d7fa27e288e495 (diff)
downloadportage-2c94aaf40f387016738b91c94992adb840ab08ba.tar.gz
portage-2c94aaf40f387016738b91c94992adb840ab08ba.tar.bz2
portage-2c94aaf40f387016738b91c94992adb840ab08ba.zip
Reject installed packages if they have a matching masked ebuild in the tree.
svn path=/main/trunk/; revision=4606
-rwxr-xr-xbin/emerge10
1 files changed, 9 insertions, 1 deletions
diff --git a/bin/emerge b/bin/emerge
index b2322829a..78e73551f 100755
--- a/bin/emerge
+++ b/bin/emerge
@@ -1161,7 +1161,15 @@ class depgraph:
"""Fall back to the installed package database. This is a
last resort because the metadata tends to diverge from that
of the ebuild in the tree."""
- myeb_inst = portage.best(vardb.match(x))
+ myeb_inst_matches = vardb.match(x)
+ if "--usepkgonly" not in self.myopts:
+ """ TODO: Improve masking check for installed and
+ binary packages. bug #149816"""
+ myeb_inst_matches = [pkg for pkg in myeb_inst_matches \
+ if not portdb.cpv_exists(pkg)]
+ myeb_inst = None
+ if myeb_inst_matches:
+ myeb_inst = portage.best(myeb_inst_matches)
if myeb_inst:
binpkguseflags = vardb.aux_get(
myeb_inst, ["USE"])[0].split()