From 8a5d81397414727ae834415be81619f2fc92b525 Mon Sep 17 00:00:00 2001 From: Some One Date: Thu, 9 Apr 2015 14:55:39 +0200 Subject: [PATCH] noarch-lib64.diff =================================================================== --- BinariesCheck.py | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/BinariesCheck.py b/BinariesCheck.py index b92c01e..aff0f9f 100644 --- a/BinariesCheck.py +++ b/BinariesCheck.py @@ -294,6 +294,7 @@ class BinariesCheck(AbstractCheck.AbstractCheck): binary = False binary_in_usr_lib = False has_usr_lib_file = False + file_in_lib64 = False multi_pkg = False srpm = pkg[rpm.RPMTAG_SOURCERPM] @@ -312,6 +313,10 @@ class BinariesCheck(AbstractCheck.AbstractCheck): # only-non-binary-in-usr-lib false positives binary_in_usr_lib = True + if stat.S_ISREG(pkgfile.mode) and \ + (fname.startswith("/usr/lib64") or fname.startswith("/lib64")): + file_in_lib64 = True + is_elf = 'ELF' in pkgfile.magic is_ar = 'current ar archive' in pkgfile.magic is_ocaml_native = 'Objective caml native' in pkgfile.magic @@ -541,9 +546,12 @@ class BinariesCheck(AbstractCheck.AbstractCheck): if version and version != -1 and version not in pkg.name: printError(pkg, 'incoherent-version-in-name', version) - if not binary and not multi_pkg and pkg.arch != 'noarch': + if not binary and not multi_pkg and not file_in_lib64 and pkg.arch != 'noarch': printError(pkg, 'no-binary') + if pkg.arch == 'noarch' and file_in_lib64: + printError(pkg, 'noarch-with-lib64') + if has_usr_lib_file and not binary_in_usr_lib: printWarning(pkg, 'only-non-binary-in-usr-lib') @@ -567,6 +575,11 @@ FHS and the FSSTND forbid this.''', # 'non-sparc32-binary', # '', +'noarch-with-lib64', +'''This package is marked as noarch but installs files into lib64. +Not all architectures have this in path, so the package can't be +noarch.''', + 'invalid-soname', '''The soname of the library is neither of the form lib.so. or lib-.so.''',