summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAnas Nashif <anas.nashif@intel.com>2013-02-06 13:11:08 -0800
committerAnas Nashif <anas.nashif@intel.com>2013-02-06 13:11:08 -0800
commit492eef71aa3ba7f267738751dffdf6d47c5910ff (patch)
tree629b795a136e7325df0935378e581ed21afa641b
parentc6a0ba85886c21b6f5b2fcf8fd119b1f6f02dc71 (diff)
downloadrpmlint-492eef71aa3ba7f267738751dffdf6d47c5910ff.tar.gz
rpmlint-492eef71aa3ba7f267738751dffdf6d47c5910ff.tar.bz2
rpmlint-492eef71aa3ba7f267738751dffdf6d47c5910ff.zip
suse-check-optional-dependencies.diff
===================================================================
-rw-r--r--FilesCheck.py28
1 files changed, 28 insertions, 0 deletions
diff --git a/FilesCheck.py b/FilesCheck.py
index b9127b6..62e1927 100644
--- a/FilesCheck.py
+++ b/FilesCheck.py
@@ -948,6 +948,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:
@@ -1757,6 +1767,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