forked from pool/rpmlint
Dirk Mueller
1cdbc13b57
* test: Skip fedoradev GPG checks at least for now * test: Refresh fedora* packages on image build * test: Use assertEqual where appropriate, thanks to flake8/hacking * test: Update fedora24 config to fedora26, run it on Travis * Add a new test for tmpfiles.d snippets in the /etc/ tree. * Add new tests for systemd units and udev rules in /etc/ tree * test: Disable hacking for now until it's flake8 3.4+ compatible * test: Set up flake8-bugbear, enable it in fedoradev container * rpmlint: Avoid unused loop control variable * ZipCheck: Add TODO * *: Avoid mutable argument defaults * Be aware of -debugsource packages * rpmdiff: Fix unused variable from previous commit * rpmdiff: Support soft dependencies * BinariesCheck, FilesCheck: Ignore various .build-id dirs * Add python3-devel and rpm-build to fedoradev container to provoke some issues * BinariesCheck: Popen env consistency fix * Pkg.getstatusoutput: Set LC_ALL for all Popens, defaulting to C * rpmlint: Fix checking specfile from stdin * test.sh: Extract rpmlint command to run_rpmlint * Revert "Remove unused spec_lines check_spec argument" * BinariesCheck: Trivial cleanups * travis: Run make install too * FilesCheck: Allow multiple bytecode magic values per Python version * tests: Make output test tools easier to reuse * FilesCheck: hg.python.org -> github.com/python * Pkg: Return vendor and distribution as unicode strings * FilesCheck: Add Python 3.7 bytecode magic value * Pkg.b2s: Add some more test cases OBS-URL: https://build.opensuse.org/package/show/devel:openSUSE:Factory:rpmlint/rpmlint?expand=0&rev=482
56 lines
2.8 KiB
Diff
56 lines
2.8 KiB
Diff
From: Some One <nobody@opensuse.org>
|
|
Date: Thu, 9 Apr 2015 14:55:39 +0200
|
|
Subject: [PATCH] suse-check-optional-dependencies.diff
|
|
|
|
===================================================================
|
|
---
|
|
FilesCheck.py | 28 ++++++++++++++++++++++++++++
|
|
1 file changed, 28 insertions(+)
|
|
|
|
Index: rpmlint-rpmlint-1.10/FilesCheck.py
|
|
===================================================================
|
|
--- rpmlint-rpmlint-1.10.orig/FilesCheck.py
|
|
+++ rpmlint-rpmlint-1.10/FilesCheck.py
|
|
@@ -535,6 +535,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:
|
|
@@ -1338,6 +1348,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
|