aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZac Medico <zmedico@gentoo.org>2010-08-26 20:21:02 -0700
committerZac Medico <zmedico@gentoo.org>2010-08-26 20:21:02 -0700
commit23926b159418c22f053f74b217e1a6378816739c (patch)
treeacfcdddac28ee8b87146c76de7ea396f8de3b76a /pym/_emerge/Package.py
parentDo not include the whole input string in the use_reduce() (diff)
downloadportage-23926b159418c22f053f74b217e1a6378816739c.tar.gz
portage-23926b159418c22f053f74b217e1a6378816739c.tar.bz2
portage-23926b159418c22f053f74b217e1a6378816739c.zip
Bug #334365 - When depgraph.display_problems() shows the message
about masked installed packages, customize the InvalidDependString display to show the path of the *DEPEND file that contains the invalid dependency.
Diffstat (limited to 'pym/_emerge/Package.py')
-rw-r--r--pym/_emerge/Package.py31
1 files changed, 20 insertions, 11 deletions
diff --git a/pym/_emerge/Package.py b/pym/_emerge/Package.py
index 03f15b1c1..1209c6d9e 100644
--- a/pym/_emerge/Package.py
+++ b/pym/_emerge/Package.py
@@ -76,18 +76,27 @@ class Package(Task):
use_reduce(v, eapi=eapi,
is_valid_flag=self.iuse.is_valid_flag, token_class=Atom)
except portage.exception.InvalidDependString as e:
- categorized_error = False
- if e.errors:
- for error in e.errors:
- if getattr(error, 'category', None) is None:
- continue
- categorized_error = True
- self._invalid_metadata(error.category,
- "%s: %s" % (k, error))
-
- if not categorized_error:
+ if not self.installed:
+ categorized_error = False
+ if e.errors:
+ for error in e.errors:
+ if getattr(error, 'category', None) is None:
+ continue
+ categorized_error = True
+ self._invalid_metadata(error.category,
+ "%s: %s" % (k, error))
+
+ if not categorized_error:
+ self._invalid_metadata(k + ".syntax",
+ "%s: %s" % (k, e))
+ else:
+ # For installed packages, show the path of the file
+ # containing the invalid metadata, since the user may
+ # want to fix the deps by hand.
+ vardb = self.root_config.trees['vartree'].dbapi
+ path = vardb.getpath(self.cpv, filename=k)
self._invalid_metadata(k + ".syntax",
- "%s: %s" % (k, e))
+ "%s: %s in '%s'" % (k, e, path))
k = 'REQUIRED_USE'
v = self.metadata.get(k)