SHA256
1
0
forked from pool/rpmlint
rpmlint/suse-check-optional-dependencies.diff

47 lines
2.5 KiB
Diff

Index: FilesCheck.py
===================================================================
--- FilesCheck.py.orig
+++ FilesCheck.py
@@ -944,6 +944,16 @@ class FilesCheck(AbstractCheck.AbstractC
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:
@@ -1739,6 +1749,24 @@ consequences), or other compiler flags w
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