diff options
author | Michał Górny <gentoo@mgorny.alt.pl> | 2010-04-17 12:26:49 +0000 |
---|---|---|
committer | Zac Medico <zmedico@gentoo.org> | 2010-04-24 00:59:34 -0700 |
commit | 6994173a25dba6a0ccd0242d6471882992453913 (patch) | |
tree | dc2641b88d2e8e9efd4734ac3144b76a8f2aacaa | |
parent | c83340553c020146d3081cc86bb51966e036a6d4 (diff) | |
download | portage-6994173a25dba6a0ccd0242d6471882992453913.tar.gz portage-6994173a25dba6a0ccd0242d6471882992453913.tar.bz2 portage-6994173a25dba6a0ccd0242d6471882992453913.zip |
Make metadata.xml <flag/> errors non-fatal to repoman.
Previously, <flag/>-related errors in metadata.xml caused repoman
to abort the checks without even reporting the full path to broken
metadata.xml file. Now they are accounted as 'metadata.bad' errors.
-rwxr-xr-x | bin/repoman | 8 | ||||
-rw-r--r-- | pym/repoman/utilities.py | 6 |
2 files changed, 9 insertions, 5 deletions
diff --git a/bin/repoman b/bin/repoman index 23fcd4da8..aa3a95268 100755 --- a/bin/repoman +++ b/bin/repoman @@ -1314,7 +1314,13 @@ for x in scanlist: del e else: # load USE flags from metadata.xml - utilities.parse_metadata_use(_metadata_xml, muselist) + try: + utilities.parse_metadata_use(_metadata_xml, muselist) + except portage.exception.ParseError as e: + metadata_bad = True + stats["metadata.bad"] += 1 + fails["metadata.bad"].append("%s/metadata.xml: %s" % (x, e)) + muselist = [] # Run other metadata.xml checkers try: diff --git a/pym/repoman/utilities.py b/pym/repoman/utilities.py index 52ebba725..305080411 100644 --- a/pym/repoman/utilities.py +++ b/pym/repoman/utilities.py @@ -119,14 +119,12 @@ def parse_metadata_use(xml_tree, uselist=None): flags = usetag[0].findall("flag") if not flags: - raise exception.ParseError("metadata.xml: " + \ - "Malformed input: missing 'flag' tag(s)") + raise exception.ParseError("missing 'flag' tag(s)") for flag in flags: pkg_flag = flag.get("name") if pkg_flag is None: - raise exception.ParseError("metadata.xml: " + \ - "Malformed input: missing 'name' attribute for 'flag' tag") + raise exception.ParseError("missing 'name' attribute for 'flag' tag") uselist.append(pkg_flag) return uselist |