Package: Use IUSE to validate built USE
authorZac Medico <zmedico@gentoo.org>
Sun, 5 Dec 2010 00:58:58 +0000 (16:58 -0800)
committerZac Medico <zmedico@gentoo.org>
Sun, 5 Dec 2010 01:02:10 +0000 (17:02 -0800)
pym/_emerge/Package.py

index 361bfc70ace8c745b569c2de687893416f2c302a..47a435f214516dae1b67e302245975068fbef195 100644 (file)
@@ -315,6 +315,14 @@ class Package(Task):
                        self._force = None
                        self._mask = None
                        self.enabled = frozenset(use_str.split())
+                       if pkg.built:
+                               # Use IUSE to validate USE settings for built packages,
+                               # in case the package manager that built this package
+                               # failed to do that for some reason (or in case of
+                               # data corruption).
+                               missing_iuse = pkg.iuse.get_missing_iuse(self.enabled)
+                               if missing_iuse:
+                                       self.enabled = self.enabled.difference(missing_iuse)
 
                def _init_force_mask(self):
                        pkgsettings = self._pkg._get_pkgsettings()