|
![](https://seccdn.libravatar.org/avatar/89ddd14f6e39959354c4eb48ae2abafb41e91411ad4e1b9faddf3607b1b8c923?s=16&d=retro) |
15b5b3a |
--- TagsCheck.py~ 2007-08-29 23:46:39.000000000 +0300
|
|
![](https://seccdn.libravatar.org/avatar/89ddd14f6e39959354c4eb48ae2abafb41e91411ad4e1b9faddf3607b1b8c923?s=16&d=retro) |
15b5b3a |
+++ TagsCheck.py 2007-09-03 19:54:09.000000000 +0300
|
|
![](https://seccdn.libravatar.org/avatar/89ddd14f6e39959354c4eb48ae2abafb41e91411ad4e1b9faddf3607b1b8c923?s=16&d=retro) |
15b5b3a |
@@ -403,6 +403,7 @@
|
|
![](https://seccdn.libravatar.org/avatar/89ddd14f6e39959354c4eb48ae2abafb41e91411ad4e1b9faddf3607b1b8c923?s=16&d=retro) |
15b5b3a |
invalid_url_regex=re.compile(Config.getOption('InvalidURL'), re.IGNORECASE)
|
|
![](https://seccdn.libravatar.org/avatar/89ddd14f6e39959354c4eb48ae2abafb41e91411ad4e1b9faddf3607b1b8c923?s=16&d=retro) |
15b5b3a |
lib_regex=re.compile('^lib.*?(\.so.*)?$')
|
|
![](https://seccdn.libravatar.org/avatar/89ddd14f6e39959354c4eb48ae2abafb41e91411ad4e1b9faddf3607b1b8c923?s=16&d=retro) |
15b5b3a |
leading_space_regex=re.compile('^\s+')
|
|
![](https://seccdn.libravatar.org/avatar/89ddd14f6e39959354c4eb48ae2abafb41e91411ad4e1b9faddf3607b1b8c923?s=16&d=retro) |
15b5b3a |
+license_regex=re.compile('\(([^)]+)\)|\s(?:and|or)\s')
|
|
![](https://seccdn.libravatar.org/avatar/89ddd14f6e39959354c4eb48ae2abafb41e91411ad4e1b9faddf3607b1b8c923?s=16&d=retro) |
15b5b3a |
invalid_version_regex=re.compile('([0-9](?:rc|alpha|beta|pre).*)', re.IGNORECASE)
|
|
![](https://seccdn.libravatar.org/avatar/89ddd14f6e39959354c4eb48ae2abafb41e91411ad4e1b9faddf3607b1b8c923?s=16&d=retro) |
15b5b3a |
# () are here for grouping purpose in the regexp
|
|
![](https://seccdn.libravatar.org/avatar/89ddd14f6e39959354c4eb48ae2abafb41e91411ad4e1b9faddf3607b1b8c923?s=16&d=retro) |
15b5b3a |
forbidden_words_regex=re.compile('(' + Config.getOption('ForbiddenWords') + ')', re.IGNORECASE)
|
|
![](https://seccdn.libravatar.org/avatar/89ddd14f6e39959354c4eb48ae2abafb41e91411ad4e1b9faddf3607b1b8c923?s=16&d=retro) |
15b5b3a |
@@ -628,16 +629,20 @@
|
|
![](https://seccdn.libravatar.org/avatar/89ddd14f6e39959354c4eb48ae2abafb41e91411ad4e1b9faddf3607b1b8c923?s=16&d=retro) |
15b5b3a |
# printWarning(pkg, 'package-provides-itself')
|
|
![](https://seccdn.libravatar.org/avatar/89ddd14f6e39959354c4eb48ae2abafb41e91411ad4e1b9faddf3607b1b8c923?s=16&d=retro) |
15b5b3a |
# break
|
|
![](https://seccdn.libravatar.org/avatar/89ddd14f6e39959354c4eb48ae2abafb41e91411ad4e1b9faddf3607b1b8c923?s=16&d=retro) |
15b5b3a |
|
|
![](https://seccdn.libravatar.org/avatar/89ddd14f6e39959354c4eb48ae2abafb41e91411ad4e1b9faddf3607b1b8c923?s=16&d=retro) |
15b5b3a |
+ def split_license(license):
|
|
![](https://seccdn.libravatar.org/avatar/89ddd14f6e39959354c4eb48ae2abafb41e91411ad4e1b9faddf3607b1b8c923?s=16&d=retro) |
15b5b3a |
+ return map(string.strip, [l for l in license_regex.split(license) if l])
|
|
![](https://seccdn.libravatar.org/avatar/89ddd14f6e39959354c4eb48ae2abafb41e91411ad4e1b9faddf3607b1b8c923?s=16&d=retro) |
15b5b3a |
+
|
|
![](https://seccdn.libravatar.org/avatar/89ddd14f6e39959354c4eb48ae2abafb41e91411ad4e1b9faddf3607b1b8c923?s=16&d=retro) |
15b5b3a |
rpm_license = pkg[rpm.RPMTAG_LICENSE]
|
|
![](https://seccdn.libravatar.org/avatar/89ddd14f6e39959354c4eb48ae2abafb41e91411ad4e1b9faddf3607b1b8c923?s=16&d=retro) |
15b5b3a |
if not rpm_license:
|
|
![](https://seccdn.libravatar.org/avatar/89ddd14f6e39959354c4eb48ae2abafb41e91411ad4e1b9faddf3607b1b8c923?s=16&d=retro) |
15b5b3a |
printError(pkg, 'no-license')
|
|
![](https://seccdn.libravatar.org/avatar/89ddd14f6e39959354c4eb48ae2abafb41e91411ad4e1b9faddf3607b1b8c923?s=16&d=retro) |
15b5b3a |
else:
|
|
![](https://seccdn.libravatar.org/avatar/89ddd14f6e39959354c4eb48ae2abafb41e91411ad4e1b9faddf3607b1b8c923?s=16&d=retro) |
15b5b3a |
if rpm_license not in VALID_LICENSES:
|
|
![](https://seccdn.libravatar.org/avatar/89ddd14f6e39959354c4eb48ae2abafb41e91411ad4e1b9faddf3607b1b8c923?s=16&d=retro) |
15b5b3a |
- licenses = re.split('(?:[- ]like|/|ish|[- ]style|[- ]Style|and|or|&|\s|-)+', rpm_license)
|
|
![](https://seccdn.libravatar.org/avatar/89ddd14f6e39959354c4eb48ae2abafb41e91411ad4e1b9faddf3607b1b8c923?s=16&d=retro) |
15b5b3a |
- for l in licenses:
|
|
![](https://seccdn.libravatar.org/avatar/89ddd14f6e39959354c4eb48ae2abafb41e91411ad4e1b9faddf3607b1b8c923?s=16&d=retro) |
15b5b3a |
- if l != '' and not l in VALID_LICENSES:
|
|
![](https://seccdn.libravatar.org/avatar/89ddd14f6e39959354c4eb48ae2abafb41e91411ad4e1b9faddf3607b1b8c923?s=16&d=retro) |
15b5b3a |
- printWarning(pkg, 'invalid-license', rpm_license)
|
|
![](https://seccdn.libravatar.org/avatar/89ddd14f6e39959354c4eb48ae2abafb41e91411ad4e1b9faddf3607b1b8c923?s=16&d=retro) |
15b5b3a |
- break
|
|
![](https://seccdn.libravatar.org/avatar/89ddd14f6e39959354c4eb48ae2abafb41e91411ad4e1b9faddf3607b1b8c923?s=16&d=retro) |
15b5b3a |
+ for l1 in split_license(rpm_license):
|
|
![](https://seccdn.libravatar.org/avatar/89ddd14f6e39959354c4eb48ae2abafb41e91411ad4e1b9faddf3607b1b8c923?s=16&d=retro) |
15b5b3a |
+ if l1 in VALID_LICENSES:
|
|
![](https://seccdn.libravatar.org/avatar/89ddd14f6e39959354c4eb48ae2abafb41e91411ad4e1b9faddf3607b1b8c923?s=16&d=retro) |
15b5b3a |
+ continue
|
|
![](https://seccdn.libravatar.org/avatar/89ddd14f6e39959354c4eb48ae2abafb41e91411ad4e1b9faddf3607b1b8c923?s=16&d=retro) |
15b5b3a |
+ for l2 in split_license(l1):
|
|
![](https://seccdn.libravatar.org/avatar/89ddd14f6e39959354c4eb48ae2abafb41e91411ad4e1b9faddf3607b1b8c923?s=16&d=retro) |
15b5b3a |
+ if l2 not in VALID_LICENSES:
|
|
![](https://seccdn.libravatar.org/avatar/89ddd14f6e39959354c4eb48ae2abafb41e91411ad4e1b9faddf3607b1b8c923?s=16&d=retro) |
15b5b3a |
+ printWarning(pkg, 'invalid-license', l2)
|
|
![](https://seccdn.libravatar.org/avatar/89ddd14f6e39959354c4eb48ae2abafb41e91411ad4e1b9faddf3607b1b8c923?s=16&d=retro) |
15b5b3a |
|
|
![](https://seccdn.libravatar.org/avatar/89ddd14f6e39959354c4eb48ae2abafb41e91411ad4e1b9faddf3607b1b8c923?s=16&d=retro) |
15b5b3a |
url=pkg[rpm.RPMTAG_URL]
|
|
![](https://seccdn.libravatar.org/avatar/89ddd14f6e39959354c4eb48ae2abafb41e91411ad4e1b9faddf3607b1b8c923?s=16&d=retro) |
15b5b3a |
if url and url != 'none':
|
|
![](https://seccdn.libravatar.org/avatar/89ddd14f6e39959354c4eb48ae2abafb41e91411ad4e1b9faddf3607b1b8c923?s=16&d=retro) |
15b5b3a |
@@ -808,9 +813,7 @@
|
|
![](https://seccdn.libravatar.org/avatar/89ddd14f6e39959354c4eb48ae2abafb41e91411ad4e1b9faddf3607b1b8c923?s=16&d=retro) |
15b5b3a |
|
|
![](https://seccdn.libravatar.org/avatar/89ddd14f6e39959354c4eb48ae2abafb41e91411ad4e1b9faddf3607b1b8c923?s=16&d=retro) |
15b5b3a |
'invalid-license',
|
|
![](https://seccdn.libravatar.org/avatar/89ddd14f6e39959354c4eb48ae2abafb41e91411ad4e1b9faddf3607b1b8c923?s=16&d=retro) |
15b5b3a |
'''The value of the License tag was not recognized. Known values are:
|
|
![](https://seccdn.libravatar.org/avatar/89ddd14f6e39959354c4eb48ae2abafb41e91411ad4e1b9faddf3607b1b8c923?s=16&d=retro) |
15b5b3a |
-%s
|
|
![](https://seccdn.libravatar.org/avatar/89ddd14f6e39959354c4eb48ae2abafb41e91411ad4e1b9faddf3607b1b8c923?s=16&d=retro) |
15b5b3a |
-If the license is close to an existing one, you can use '<license> style'.''' \
|
|
![](https://seccdn.libravatar.org/avatar/89ddd14f6e39959354c4eb48ae2abafb41e91411ad4e1b9faddf3607b1b8c923?s=16&d=retro) |
15b5b3a |
-% fill('"' + '", "'.join(VALID_LICENSES) + '".', 78),
|
|
![](https://seccdn.libravatar.org/avatar/89ddd14f6e39959354c4eb48ae2abafb41e91411ad4e1b9faddf3607b1b8c923?s=16&d=retro) |
15b5b3a |
+%s''' % fill('"' + '", "'.join(VALID_LICENSES) + '".', 78),
|
|
![](https://seccdn.libravatar.org/avatar/89ddd14f6e39959354c4eb48ae2abafb41e91411ad4e1b9faddf3607b1b8c923?s=16&d=retro) |
15b5b3a |
|
|
![](https://seccdn.libravatar.org/avatar/89ddd14f6e39959354c4eb48ae2abafb41e91411ad4e1b9faddf3607b1b8c923?s=16&d=retro) |
15b5b3a |
'invalid-url',
|
|
![](https://seccdn.libravatar.org/avatar/89ddd14f6e39959354c4eb48ae2abafb41e91411ad4e1b9faddf3607b1b8c923?s=16&d=retro) |
15b5b3a |
'''Your URL is not valid. It must begin with http, https or ftp and must no
|