Blob Blame History Raw
#!/usr/bin/python
# Author: Athmane Madjoudj <athmanem@gmail.com>
# A script that search for CentOS branding issues in installed rpm
    
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)