summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorZac Medico <zmedico@gentoo.org>2006-07-24 15:48:25 +0000
committerZac Medico <zmedico@gentoo.org>2006-07-24 15:48:25 +0000
commit35b6e0d415146e6a00a15799fe6f9c08c58190a2 (patch)
tree0d526ac0d379e965766be18dade89ec04c529e24
parent62fed2da570bf8a72076d5062d688474ad31b2e8 (diff)
downloadportage-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-xbin/emerge12
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: