Make _get_masking_status() return masking reasons for installed packages
authorZac Medico <zmedico@gentoo.org>
Thu, 26 Aug 2010 05:05:42 +0000 (22:05 -0700)
committerZac Medico <zmedico@gentoo.org>
Thu, 26 Aug 2010 05:05:42 +0000 (22:05 -0700)
with invalid metadata, and remove show_invalid_depstring_notice()
calls for installed packages since depgraph.display_problems() will
now show the invalid metadata masking reasons when it displays installed
packages that are masked.

pym/_emerge/depgraph.py

index f933378aaff1a514353072a7b8318d7d966d3570..0dad451e24c8a9e5d5b60ca987c6fa7dff7f9f89 100644 (file)
@@ -1050,8 +1050,7 @@ class depgraph(object):
                                                dep_string = portage.dep.use_reduce(dep_string,
                                                        uselist=self._pkg_use_enabled(pkg))
                                        except portage.exception.InvalidDependString as e:
-                                               # TODO: show in display_problems()
-                                               show_invalid_depstring_notice(pkg, dep_string, str(e))
+                                               self._dynamic_config._masked_installed.add(pkg)
                                                del e
                                                continue
 
@@ -1060,8 +1059,7 @@ class depgraph(object):
                                                pkg, dep_root, dep_priority, dep_string))
                                except portage.exception.InvalidDependString as e:
                                        if pkg.installed:
-                                               # TODO: show in display_problems()
-                                               show_invalid_depstring_notice(pkg, dep_string, str(e))
+                                               self._dynamic_config._masked_installed.add(pkg)
                                                del e
                                                continue
 
@@ -1120,8 +1118,7 @@ class depgraph(object):
                                strict=strict, priority=dep_priority)
                except portage.exception.InvalidDependString as e:
                        if pkg.installed:
-                               # TODO: show in display_problems()
-                               show_invalid_depstring_notice(pkg, dep_string, str(e))
+                               self._dynamic_config._masked_installed.add(pkg)
                                return 1
 
                        # should have been masked before it was selected
@@ -6138,11 +6135,6 @@ def _get_masking_status(pkg, pkgsettings, root_config, use=None):
                if not pkgsettings._accept_chost(pkg.cpv, pkg.metadata):
                        mreasons.append(_MaskReason("CHOST", "CHOST: %s" % \
                                pkg.metadata["CHOST"]))
-               if pkg.invalid:
-                       for msg_type, msgs in pkg.invalid.items():
-                               for msg in msgs:
-                                       mreasons.append(
-                                               _MaskReason("invalid", "invalid: %s" % (msg,)))
 
                if pkg.metadata["REQUIRED_USE"] and \
                        eapi_has_required_use(pkg.metadata["EAPI"]):
@@ -6159,6 +6151,12 @@ def _get_masking_status(pkg, pkgsettings, root_config, use=None):
                                        msg = "violated use flag constraints: '%s'" % required_use
                                        mreasons.append(_MaskReason("REQUIRED_USE", "REQUIRED_USE violated"))
 
+       if pkg.invalid:
+               for msg_type, msgs in pkg.invalid.items():
+                       for msg in msgs:
+                               mreasons.append(
+                                       _MaskReason("invalid", "invalid: %s" % (msg,)))
+
        if not pkg.metadata["SLOT"]:
                mreasons.append(
                        _MaskReason("invalid", "SLOT: undefined"))