From 35b6e0d415146e6a00a15799fe6f9c08c58190a2 Mon Sep 17 00:00:00 2001 From: Zac Medico Date: Mon, 24 Jul 2006 15:48:25 +0000 Subject: For binary packages, trigger a rebuild with --newuse when IUSE has changed for bug #116955. svn path=/main/trunk/; revision=4015 --- bin/emerge | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) (limited to 'bin') 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: -- cgit v1.2.3-1-g7c22