You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
51 lines
1.6 KiB
51 lines
1.6 KiB
10 months ago
|
#!/usr/bin/python
|
||
|
# Author: Athmane Madjoudj <athmanem@gmail.com>
|
||
|
# A script that search for CentOS branding issues in installed rpm
|
||
|
from __future__ import print_function
|
||
|
|
||
|
import rpm
|
||
|
import sys
|
||
|
import re
|
||
|
|
||
|
def is_valid_changelog_entry(entry):
|
||
|
regex = re.compile(r"\w+\ ?\w*\ ?<\b[\w\.-]+@[\w\.-]+\.\w{2,4}\b>\ ?-?\ ?[\w_\.]+-[\w_\.]+")
|
||
|
if regex.match(entry) is None:
|
||
|
return False
|
||
|
else:
|
||
|
return True
|
||
|
|
||
|
def main():
|
||
|
ts=rpm.ts()
|
||
|
mi=ts.dbMatch()
|
||
|
# Comment the following line to check all rpms
|
||
|
mi.pattern("release", rpm.RPMMIRE_GLOB, "*centos*")
|
||
|
ret=True
|
||
|
print("Searching for CentOS branding issues in installed rpm...")
|
||
|
for hdr in mi:
|
||
|
if hdr['buildhost'][-11:] != '.centos.org':
|
||
|
print(" Build host is not centos.org machine in: %s" % hdr['name'])
|
||
|
ret=False
|
||
|
if hdr['vendor'] != 'CentOS':
|
||
|
print(" Vendor is not CentOS in: %s" % hdr['name'])
|
||
|
ret=False
|
||
|
if hdr['packager'] != 'CentOS BuildSystem <http://bugs.centos.org>':
|
||
|
print(" Packager is not CentOS BuildSystem in: %s" % hdr['name'])
|
||
|
ret=False
|
||
|
try:
|
||
|
changelog = hdr['changelogname'][0]
|
||
|
if not is_valid_changelog_entry(changelog):
|
||
|
print(" Bad changelog entry in: %s" % hdr['name'])
|
||
|
ret=False
|
||
|
except Exception, e:
|
||
|
print(" Errors found when reading changelog entry of: %s" % hdr['name'])
|
||
|
ret=False
|
||
|
return ret
|
||
|
|
||
|
if __name__ == "__main__":
|
||
|
if main():
|
||
|
print "All tests PASSED"
|
||
|
sys.exit(0)
|
||
|
else:
|
||
|
print "Some tests FAILED"
|
||
|
sys.exit(1)
|