diff options
author | Zac Medico <zmedico@gentoo.org> | 2006-07-24 15:48:25 +0000 |
---|---|---|
committer | Zac Medico <zmedico@gentoo.org> | 2006-07-24 15:48:25 +0000 |
commit | 35b6e0d415146e6a00a15799fe6f9c08c58190a2 (patch) | |
tree | 0d526ac0d379e965766be18dade89ec04c529e24 | |
parent | 62fed2da570bf8a72076d5062d688474ad31b2e8 (diff) | |
download | portage-35b6e0d415146e6a00a15799fe6f9c08c58190a2.tar.gz portage-35b6e0d415146e6a00a15799fe6f9c08c58190a2.tar.bz2 portage-35b6e0d415146e6a00a15799fe6f9c08c58190a2.zip |
For binary packages, trigger a rebuild with --newuse when IUSE has changed for bug #116955.
svn path=/main/trunk/; revision=4015
-rwxr-xr-x | bin/emerge | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/bin/emerge b/bin/emerge index 83584a9cf..7eb10fd58 100755 --- a/bin/emerge +++ b/bin/emerge @@ -1044,6 +1044,9 @@ class depgraph: # List of acceptable packages, ordered by type preference. matched_packages = [] myeb_matches = portdb.xmatch("match-visible", x) + myeb = None + if "--usepkgonly" not in self.myopts: + myeb = portage.best(myeb_matches) myeb_pkg=None if "--usepkg" in self.myopts: @@ -1063,7 +1066,12 @@ class depgraph: old_use = bindb.aux_get(myeb_pkg, ["USE"])[0].split() pkgsettings.setcpv(myeb_pkg) now_use = pkgsettings["USE"].split() - if iuses.intersection(old_use) != \ + if "--usepkgonly" not in self.myopts and \ + myeb == myeb_pkg and \ + iuses.difference( + portdb.aux_get(myeb, ["IUSE"])[0].split()): + myeb_pkg = None + elif iuses.intersection(old_use) != \ iuses.intersection(now_use): myeb_pkg = None if myeb_pkg: @@ -1075,7 +1083,7 @@ class depgraph: if "--usepkgonly" not in self.myopts and myeb_matches: matched_packages.append( - ["ebuild", myroot, portage.best(myeb_matches), None]) + ["ebuild", myroot, myeb, None]) if not matched_packages: if raise_on_missing: |