rpmlint/fix-shared-library-matching.diff
2015-11-30 13:31:03 +00:00

35 lines
1.6 KiB
Diff

From: Some One <nobody@opensuse.org>
Date: Thu, 9 Apr 2015 14:55:39 +0200
Subject: [PATCH] fix shared library matching
Avoids e.g.
[ 332s] glib2-devel.i586: E: library-without-ldconfig-postun (Badness: 300) /usr/share/gdb/auto-load/usr/lib/libglib-2.0.so.0.4600.1-gdb.py
---
FilesCheck.py | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/FilesCheck.py b/FilesCheck.py
index 81c5680..622b3b3 100644
--- a/FilesCheck.py
+++ b/FilesCheck.py
@@ -615,7 +615,9 @@ buildconfig_rpath_regex = re.compile('(?:-rpath|Wl,-R)\\b')
sofile_regex = re.compile('/lib(64)?/(.+/)?lib[^/]+\.so$')
devel_regex = re.compile('(.*)-(debug(info)?|devel|headers|source|static)$')
debuginfo_package_regex = re.compile('-debug(info)?$')
-lib_regex = re.compile('lib(64)?/lib[^/]*(\.so\..*|-[0-9.]+\.so)')
+# matches properly versioned shared libraries like libfoo.so.1.2.3 as well as
+# weird ones like libfoo-1.2.3.so
+lib_regex = re.compile('/lib(?:64)?/lib[^/]*(?:\.so\.[\d.]+|-[\d.]+\.so)$')
ldconfig_regex = re.compile('^[^#]*ldconfig', re.MULTILINE)
depmod_regex = re.compile('^[^#]*depmod', re.MULTILINE)
install_info_regex = re.compile('^[^#]*install-info', re.MULTILINE)
@@ -1018,7 +1020,7 @@ class FilesCheck(AbstractCheck.AbstractCheck):
# check ldconfig call in %post and %postun
if lib_regex.search(f):
- if devel_pkg:
+ if devel_pkg and not (sofile_regex.search(f) and stat.S_ISLNK(mode)):
printError(pkg, 'non-devel-file-in-devel-package', f)
if not postin:
printError(pkg, 'library-without-ldconfig-postin', f)