depgraph: handle invalid SRC_URI
authorZac Medico <zmedico@gentoo.org>
Wed, 27 Jul 2011 10:34:09 +0000 (03:34 -0700)
committerZac Medico <zmedico@gentoo.org>
Wed, 27 Jul 2011 10:34:09 +0000 (03:34 -0700)
This is a minimal fix for bug #376577.

pym/_emerge/resolver/output.py

index 69a30ccd060ae86ec656e2d9d35afb94c920a7c3..05e316a660c70ce6c9ee4febf5bb1471d3c00969 100644 (file)
@@ -26,6 +26,7 @@ from _emerge.Blocker import Blocker
 from _emerge.create_world_atom import create_world_atom
 from _emerge.resolver.output_helpers import ( _DisplayConfig, _tree_display,
        _PackageCounters, _create_use_string, _format_size, _calc_changelog, PkgInfo)
+from _emerge.show_invalid_depstring_notice import show_invalid_depstring_notice
 
 if sys.hexversion >= 0x3000000:
        basestring = str
@@ -312,8 +313,12 @@ class Display(object):
                        try:
                                myfilesdict = self.portdb.getfetchsizes(pkg.cpv,
                                        useflags=pkg_info.use, myrepo=pkg.repo)
-                       except InvalidDependString:
-                               # should have been masked before it was selected
+                       except InvalidDependString as e:
+                               # FIXME: validate SRC_URI earlier
+                               depstr, = self.portdb.aux_get(pkg.cpv,
+                                       ["SRC_URI"], myrepo=pkg.repo)
+                               show_invalid_depstring_notice(
+                                       pkg, depstr, str(e))
                                raise
                        if myfilesdict is None:
                                myfilesdict = "[empty/missing/bad digest]"