From 505ff1f2f50be1caef5411673243aa7a743f38e8 Mon Sep 17 00:00:00 2001 From: Zac Medico Date: Mon, 29 Dec 2008 19:39:46 +0000 Subject: Bug #253002 - Add a new variable.invalidchar check for metadata variables that contain characters that are not part of the ASCII character set. svn path=/main/trunk/; revision=12365 --- bin/repoman | 14 ++++++++++++++ 1 file changed, 14 insertions(+) (limited to 'bin/repoman') diff --git a/bin/repoman b/bin/repoman index 441c76285..b2ae0a81b 100755 --- a/bin/repoman +++ b/bin/repoman @@ -298,6 +298,7 @@ qahelp={ "ebuild.syntax":"Error generating cache entry for ebuild; typically caused by ebuild syntax error or digest verification failure", "ebuild.output":"A simple sourcing of the ebuild produces output; this breaks ebuild policy.", "ebuild.nesteddie":"Placing 'die' inside ( ) prints an error, but doesn't stop the ebuild.", + "variable.invalidchar":"A variable contains an invalid character that is not part of the ASCII character set", "variable.readonly":"Assigning a readonly variable", "LIVEVCS.stable":"This ebuild is a live checkout from a VCS but has stable keywords.", "IUSE.invalid":"This ebuild has a variable in IUSE that is not in the use.desc or use.local.desc file", @@ -358,6 +359,8 @@ qawarnings = set(( "LIVEVCS.stable" )) +non_ascii_re = re.compile(r'[^\x00-\x7f]') + missingvars=["KEYWORDS","LICENSE","DESCRIPTION","HOMEPAGE","SLOT"] allvars = set(x for x in portage.auxdbkeys if not x.startswith("UNUSED_")) allvars.discard("CDEPEND") @@ -1100,6 +1103,17 @@ for x in scanlist: inherited = pkg.inherited live_ebuild = live_eclasses.intersection(inherited) + for k, v in myaux.iteritems(): + if not isinstance(v, basestring): + continue + m = non_ascii_re.search(v) + if m is not None: + stats["variable.invalidchar"] += 1 + fails["variable.invalidchar"].append( + ("%s: %s variable contains non-ASCII " + \ + "character at position %s") % \ + (relative_path, k, m.start() + 1)) + if not src_uri_error: # Check that URIs don't reference a server from thirdpartymirrors. for uri in portage.flatten(portage.dep.use_reduce( -- cgit v1.2.3-1-g7c22