diff options
author | Zac Medico <zmedico@gentoo.org> | 2006-08-27 09:55:40 +0000 |
---|---|---|
committer | Zac Medico <zmedico@gentoo.org> | 2006-08-27 09:55:40 +0000 |
commit | 76441de8774b7fe57f8b9633c513603b13161b10 (patch) | |
tree | 3ec4a6b052c1e6b02699686a929d1f8a97540db4 | |
parent | a34a1f694c30695125932989fb30fd2c356ea9c4 (diff) | |
download | portage-76441de8774b7fe57f8b9633c513603b13161b10.tar.gz portage-76441de8774b7fe57f8b9633c513603b13161b10.tar.bz2 portage-76441de8774b7fe57f8b9633c513603b13161b10.zip |
For --newuse, ignore masked/forced flags when comparing IUSE. See bug #144661.
svn path=/main/trunk/; revision=4348
-rwxr-xr-x | bin/emerge | 16 |
1 files changed, 11 insertions, 5 deletions
diff --git a/bin/emerge b/bin/emerge index 9008378b9..35c1ef63c 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 = \ |