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 00:58:58 +0000 (16:58 -0800)
pym/_emerge/Package.py

index d048b2ace64cc3d886e0badecdefb9296c52140e..009808f5ffa54f7367ad20e6afff92c071fff463 100644 (file)
@@ -321,6 +321,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()