--- SpecCheck.py +++ SpecCheck.py @@ -52,6 +52,7 @@ comment_or_empty_regex = re.compile('^\s*(#|$)') defattr_regex = re.compile('^\s*%defattr\\b') attr_regex = re.compile('^\s*%attr\\b') +suse_version_regex = re.compile('%suse_version\s*[<>=]+\s*(\d+)') # Only check for /lib, /usr/lib, /usr/X11R6/lib # TODO: better handling of X libraries and modules. @@ -306,7 +307,13 @@ if lib_package_regex.search(line): lib = 1 - res = prereq_regex.search(line) + res = suse_version_regex.search(line) + if res and int(res.group(1)) > 0 and int(res.group(1)) < 1020: + printWarning(pkg, "obsolete-suse-version-check", res.group(1)) + elif res and int(res.group(1)) > 1100: + printError(pkg, "invalid-suse-version-check", res.group(1)) + + res = prereq_regex.search(line) if res: printWarning(pkg, 'prereq-use', res.group(2)) @@ -568,6 +575,16 @@ set which may result in security issues in the resulting binary package depending on the system where the package is built. Add default attributes using %defattr before it in the %files section, or use per line %attr's.''', + +'obsolete-suse-version-check', +'''The specfile contains a comparison of %suse_version against a suse release +that is no longer in maintenance. Consider removing obsolete parts of your +spec file to make it more readable.''', + +'invalid-suse-version-check', +'''The specfile contains a comparison of %suse_version against a suse release +that does not exist. Please double check.''' + ) # SpecCheck.py ends here