summaryrefslogtreecommitdiff
path: root/bin
diff options
context:
space:
mode:
authorZac Medico <zmedico@gentoo.org>2006-08-27 09:55:40 +0000
committerZac Medico <zmedico@gentoo.org>2006-08-27 09:55:40 +0000
commit76441de8774b7fe57f8b9633c513603b13161b10 (patch)
tree3ec4a6b052c1e6b02699686a929d1f8a97540db4 /bin
parentRemove a redundant conditional from the last commit. (diff)
downloadportage-idfetch-76441de8774b7fe57f8b9633c513603b13161b10.tar.gz
portage-idfetch-76441de8774b7fe57f8b9633c513603b13161b10.tar.bz2
portage-idfetch-76441de8774b7fe57f8b9633c513603b13161b10.zip
For --newuse, ignore masked/forced flags when comparing IUSE. See bug #144661.
svn path=/main/trunk/; revision=4348
Diffstat (limited to 'bin')
-rwxr-xr-xbin/emerge16
1 files changed, 11 insertions, 5 deletions
diff --git a/bin/emerge b/bin/emerge
index 9008378b..35c1ef63 100755
--- a/bin/emerge
+++ b/bin/emerge
@@ -1089,13 +1089,19 @@ class depgraph:
old_use = bindb.aux_get(myeb_pkg, ["USE"])[0].split()
pkgsettings.setcpv(myeb_pkg)
now_use = pkgsettings["USE"].split()
- if "--usepkgonly" not in self.myopts and \
- myeb == myeb_pkg and \
- iuses.symmetric_difference(
- portdb.aux_get(myeb, ["IUSE"])[0].split()):
+ forced_flags = set()
+ forced_flags.update(pkgsettings.useforce)
+ forced_flags.update(pkgsettings.puseforce)
+ forced_flags.update(pkgsettings.usemask)
+ forced_flags.update(pkgsettings.pusemask)
+ cur_iuse = iuses
+ if "--usepkgonly" not in self.myopts and myeb:
+ cur_iuse = set(portdb.aux_get(myeb, ["IUSE"])[0].split())
+ if iuses.symmetric_difference(
+ cur_iuse).difference(forced_flags):
myeb_pkg = None
elif iuses.intersection(old_use) != \
- iuses.intersection(now_use):
+ cur_iuse.intersection(now_use):
myeb_pkg = None
if myeb_pkg:
binpkguseflags = \