From 252afb8c115e3ecd34985fcb7e09d8831844584e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Miro=20Hron=C4=8Dok?= Date: Fri, 5 Aug 2022 14:31:14 +0200 Subject: [PATCH] Update rpmlintrc to rpmlint 2 - Rename to rpmlint.toml - Change from Python function calls to TOML list - Remove rpmlint 1.1 workarounds - Add rpmlint 2.2 workarounds - Adjusts some filters to match rpmlint 2.2 messages --- python3.11.rpmlintrc | 95 -------------------------------------------- rpmlint.toml | 88 ++++++++++++++++++++++++++++++++++++++++ 2 files changed, 88 insertions(+), 95 deletions(-) delete mode 100644 python3.11.rpmlintrc create mode 100644 rpmlint.toml diff --git a/python3.11.rpmlintrc b/python3.11.rpmlintrc deleted file mode 100644 index 5fc9c03..0000000 --- a/python3.11.rpmlintrc +++ /dev/null @@ -1,95 +0,0 @@ -# KNOWN BUGS: -# https://bugzilla.redhat.com/show_bug.cgi?id=1489816 -addFilter(r'crypto-policy-non-compliance-openssl') - - -# TESTS: -addFilter(r'(zero-length|pem-certificate|uncompressed-zip) /usr/lib(64)?/python3\.\d+/test') - - -# OTHER DELIBERATES: -# chroot function -addFilter(r'missing-call-to-chdir-with-chroot') - -# intentionally unversioned and selfobsoleted -addFilter(r'unversioned-explicit-obsoletes python') -addFilter(r'unversioned Obsoletes: Obsoletes: python3\.\d+$') -addFilter(r'self-obsoletion python3\.\d+ obsoletes python3\.\d+') - -# intentionally hardcoded -addFilter(r'hardcoded-library-path in %{_prefix}/lib/(debug/%{_libdir}|python%{pybasever})') - -# we have non binary stuff, python files -addFilter(r'only-non-binary-in-usr-lib') - -# some devel files that are deliberately needed -addFilter(r'devel-file-in-non-devel-package /usr/include/python3\.\d+m?/pyconfig-(32|64)\.h') -addFilter(r'devel-file-in-non-devel-package /usr/lib(64)?/python3\.\d+/distutils/tests/xxmodule\.c') - -# 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__ -addFilter(r'python-bytecode-without-source /usr/lib(64)?/python3\.\d+/(encodings|pydoc_data)/[^/]+.pyc') - -# SORRY, NOT SORRY: -# manual pages -addFilter(r'no-manual-page-for-binary (idle|pydoc|pyvenv|2to3|python3?-debug|pathfix|msgfmt|pygettext)') -addFilter(r'no-manual-page-for-binary python3?.*-config$') -addFilter(r'no-manual-page-for-binary python3\.\d+dm?$') - -# missing documentation from subpackages -addFilter(r'^python3(\.\d+)?-(debug|tkinter|test|idle)\.[^:]+: (E|W): no-documentation') - -# platform python is obsoleted, but not provided -addFilter(r'obsolete-not-provided platform-python') - -# we have extra tokens at the end of %endif/%else directives, we consider them useful -addFilter(r'extra tokens at the end of %(endif|else) directive') - - -# RPMLINT IMPERFECTIONS -# https://github.com/rpm-software-management/rpmlint/issues/123 -addFilter(r'python-bytecode-wrong-magic-value .* expected 33\d\d \(3\.7\), found 3393') -# https://github.com/rpm-software-management/rpmlint/pull/133 -addFilter(r'python-bytecode-wrong-magic-value .* expected 33\d\d \(3\.7\), found 3394') - -# https://bugzilla.redhat.com/show_bug.cgi?id=1550562 -# https://github.com/rpm-software-management/rpmlint/issues/128 -addFilter(r'python-bytecode-inconsistent-mtime .* 1970') - -# we provide python(abi) manually to be sure. createrepo will merge this with the automatic -addFilter(r'python3(\.\d+)?\.[^:-]+: (E|W): useless-provides python\(abi\)') - -# debugsource -addFilter(r'^python3(\.\d+)?-debugsource\.[^:]+: (E|W): no-documentation') - -# debuginfo -addFilter(r'^python3(\.\d+)?-debuginfo\.[^:]+: (E|W): useless-provides debuginfo\(build-id\)') - -# this is OK for F28+ -addFilter(r'library-without-ldconfig-post') - -# debug package contains devel and non-devel files -addFilter(r'python3(\.\d+)?-debug\.[^:]+: (E|W): (non-)?devel-file-in-(non-)?devel-package') - -# this goes to other subpackage, hence not actually dangling, the read error is bogus -addFilter(r'dangling-relative-symlink /usr/lib(64)?/pkgconfig/python-3\.\d+dm?(-embed)?\.pc python-3\.\d+(-embed)?\.pc') -addFilter(r'read-error /usr/lib(64)?/pkgconfig/python-3\.\d+dm?(-embed)?\.pc \[Errno 2\]') - -# the python-unversioned-command package contains dangling symlinks by design -addFilter(r'^python-unversioned-command\.[^:]+: (E|W): dangling-relative-symlink ' - r'(/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 # -addFilter(r'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 -addFilter(r'(E|W): library-not-linked-against-libc /usr/lib(64)?/python3\.\d+/lib-dynload/') -addFilter(r'(E|W): shared-lib-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 -addFilter(r'\bpython3(\.\d+)?\.(src|spec): (E|W): specfile-error\s+$') - -# SPELLING ERRORS -addFilter(r'spelling-error .* en_US (bytecode|pyc|filename|tkinter|namespaces|pytest) ') diff --git a/rpmlint.toml b/rpmlint.toml new file mode 100644 index 0000000..b0b30a6 --- /dev/null +++ b/rpmlint.toml @@ -0,0 +1,88 @@ +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', + + # 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', + + # 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', + + # 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/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) ', + +]