From: Some One Date: Thu, 9 Apr 2015 14:55:39 +0200 Subject: [PATCH] suse-check-optional-dependencies.diff =================================================================== --- FilesCheck.py | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/FilesCheck.py b/FilesCheck.py index cdffaea..aa1fa25 100644 --- a/FilesCheck.py +++ b/FilesCheck.py @@ -927,6 +927,16 @@ class FilesCheck(AbstractCheck.AbstractCheck): if res.group(1) != pkg.name: printError(pkg, 'incoherent-logrotate-file', f) + deps=[x[0] for x in pkg.requires()+pkg.recommends()+pkg.suggests()] + if res and not ('logrotate' in deps) and pkg.name != "logrotate": + printError(pkg, 'missing-dependency-to-logrotate', "for logrotate script", f) + if f.startswith('/etc/cron.') \ + and not ('cron' in deps) and pkg.name != "cron": + printError(pkg, 'missing-dependency-to-cron', "for cron script", f) + if f.startswith('/etc/xinet.d/') \ + and not ('xinetd' in deps) and pkg.name != "xinetd": + printError(pkg, 'missing-dependency-to-xinetd', "for xinet.d script", f) + if link != '': ext = compr_regex.search(link) if ext: @@ -1723,6 +1733,24 @@ consequences), or other compiler flags which result in rpmbuild's debuginfo extraction not working as expected. Verify that the binaries are not unexpectedly stripped and that the intended compiler flags are used.''', +'missing-dependency-to-cron', +'''This package installs a file in /etc/cron.*/ but +doesn't require cron to be installed. as cron is not part of the essential packages, +your package should explicitely require cron to make sure that your cron job is +executed. If it is an optional feature of your package, recommend or suggest cron.''', + +'missing-dependency-to-logrotate', +'''This package installs a file in /etc/logrotate.d/ but +doesn't require logrotate to be installed. Because logrotate is not part of the essential packages, +your package should explicitely depend on logrotate to make sure that your logrotate +job is executed. If it is an optional feature of your package, recommend or suggest logrotate.''', + +'missing-dependency-to-xinetd', +'''This package installs a file in /etc/xinetd.d/ but +doesn't require xinetd to be installed. Because xinetd is not part of the essential packages, +your package should explicitely depend on logrotate to make sure that your xinetd +job is executed. If it is an optional feature of your package, recommend or suggest xinetd.''', + 'read-error', '''This file could not be read. A reason for this could be that the info about it in the rpm header indicates that it is supposed to be a readable normal file