Bug 270108 - Trigger ebuild.invalidname if a version contains more than
authorZac Medico <zmedico@gentoo.org>
Wed, 12 May 2010 21:00:22 +0000 (14:00 -0700)
committerZac Medico <zmedico@gentoo.org>
Wed, 12 May 2010 21:00:22 +0000 (14:00 -0700)
18 digits. Thanks to Ulrich Müller <ulm@g.o> for this patch.

bin/repoman

index 8220a8cc9fe6b0ac4155f3ce69778e4cbfe68135..7b23aa37f01b7cd2f4d1aaa2e0bef125a8061471 100755 (executable)
@@ -76,6 +76,7 @@ util.initialize_logger()
 max_desc_len = 100
 allowed_filename_chars="a-zA-Z0-9._-+:"
 disallowed_filename_chars_re = re.compile(r'[^a-zA-Z0-9._\-+:]')
+pv_toolong_re = re.compile(r'[0-9]{19,}')
 bad = create_color_func("BAD")
 
 # A sane umask is needed for files that portage creates.
@@ -1377,7 +1378,9 @@ for x in scanlist:
                        stats["ebuild.notadded"]=stats["ebuild.notadded"]+1
                        fails["ebuild.notadded"].append(x+"/"+y+".ebuild")
                myesplit=portage.pkgsplit(y)
-               if myesplit is None or myesplit[0] != x.split("/")[-1]:
+               if myesplit is None or myesplit[0] != x.split("/")[-1] \
+                           or pv_toolong_re.search(myesplit[1]) \
+                           or pv_toolong_re.search(myesplit[2]):
                        stats["ebuild.invalidname"]=stats["ebuild.invalidname"]+1
                        fails["ebuild.invalidname"].append(x+"/"+y+".ebuild")
                        continue