Filters = [ # KNOWN BUGS: # https://bugzilla.redhat.com/show_bug.cgi?id=1489816 'crypto-policy-non-compliance-openssl', # TESTS: '(zero-length|pem-certificate|uncompressed-zip) /usr/lib(64)?/python3\.\d+/test', # OTHER DELIBERATES: # chroot function 'missing-call-to-chdir-with-chroot', # gethostbyname function calls gethostbyname '(E|W): binary-or-shlib-calls-gethostbyname /usr/lib(64)?/python3\.\d+/lib-dynload/_socket\.', # intentionally unversioned and selfobsoleted 'unversioned-explicit-obsoletes python', 'unversioned Obsoletes: Obsoletes: python3\.\d+$', 'self-obsoletion python3\.\d+(-\S+)? obsoletes python3\.\d+(-\S+)?', # intentionally hardcoded 'hardcoded-library-path in %{_prefix}/lib/(debug/%{_libdir}|python%{pybasever})', # we have non binary stuff, python files 'only-non-binary-in-usr-lib', # some devel files that are deliberately needed 'devel-file-in-non-devel-package /usr/include/python3\.\d+m?/pyconfig-(32|64)\.h', 'devel-file-in-non-devel-package /usr/lib(64)?/python3\.\d+/distutils/tests/xxmodule\.c', # ...or are used as test data 'devel-file-in-non-devel-package /usr/lib(64)?/python3\.\d+/test', # some bytecode is shipped without sources on purpose, as a space optimization # if this regex needs to be relaxed in the future, make sure it **does not** match pyc files in __pycache__ 'python-bytecode-without-source /usr/lib(64)?/python3\.\d+/(encodings|pydoc_data)/[^/]+.pyc', # DUPLICATE FILES # test data are often duplicated '(E|W): files-duplicate /usr/lib(64)?/python3\.\d+/(test|__phello__)/', # duplicated inits or mains are also common '(E|W): files-duplicate .+__init__\.py.+__init__\.py', '(E|W): files-duplicate .+__main__\.py.+__main__\.py', # files in the debugsource package '(E|W): files-duplicate /usr/src/debug', # general waste report '(E|W): files-duplicated-waste', # SORRY, NOT SORRY: # manual pages 'no-manual-page-for-binary (idle|pydoc|pyvenv|2to3|python3?-debug|pathfix|msgfmt|pygettext)', 'no-manual-page-for-binary python3?.*-config$', 'no-manual-page-for-binary python3\.\d+dm?$', # missing documentation from subpackages '^python3(\.\d+)?-(debug|tkinter|test|idle)\.[^:]+: (E|W): no-documentation', # platform python is obsoleted, but not provided 'obsolete-not-provided platform-python', # we have extra tokens at the end of %endif/%else directives, we consider them useful 'extra tokens at the end of %(endif|else) directive', # RPMLINT IMPERFECTIONS # https://github.com/rpm-software-management/rpmlint/issues/780 '/usr/lib/debug', # we provide python(abi) manually to be sure. createrepo will merge this with the automatic 'python3(\.\d+)?\.[^:-]+: (E|W): useless-provides python\(abi\)', # debugsource and debuginfo have no docs '^python3(\.\d+)?-debug(source|info)\.[^:]+: (E|W): no-documentation', # this is OK for F28+ 'library-without-ldconfig-post', # debug package contains devel and non-devel files 'python3(\.\d+)?-debug\.[^:]+: (E|W): (non-)?devel-file-in-(non-)?devel-package', # this goes to other subpackage, hence not actually dangling 'dangling-relative-symlink /usr/bin/python python3', 'dangling-relative-symlink /usr/share/man/man1/python\.1\.gz python3\.1\.gz', 'dangling-relative-symlink /usr/lib(64)?/pkgconfig/python-3\.\d+dm?(-embed)?\.pc python-3\.\d+(-embed)?\.pc', # the python-unversioned-command package contains dangling symlinks by design '^python-unversioned-command\.[^:]+: (E|W): dangling-relative-symlink (/usr/bin/python \./python3|/usr/share/man/man1/python\.1\S* ./python3\.1\S*)$', # we need this macro to evaluate, even if the line starts with # 'macro-in-comment %\{_pyconfig(32|64)_h\}', # Python modules don't need to be linked against libc # Since 3.8 they are no longer linked against libpython3.8.so.1.0 '(E|W): library-not-linked-against-libc /usr/lib(64)?/python3\.\d+/lib-dynload/', '(E|W): shared-lib(rary)?-without-dependency-information /usr/lib(64)?/python3\.\d+/lib-dynload/', # specfile-errors are listed twice, once with reason and once without # we filter out the empty ones '\bpython3(\.\d+)?\.(src|spec): (E|W): specfile-error\s+$', # SPELLING ERRORS 'spelling-error .* en_US (bytecode|pyc|filename|tkinter|namespaces|pytest) ', ]