#136 Update rpmlintrc to reflect 3.8 changes and python-unversioned-command
Merged 4 years ago by churchyard. Opened 4 years ago by churchyard.
rpms/ churchyard/python3 rpmlintrc  into  master

file modified
+20 -16
@@ -4,7 +4,7 @@ 

  

  

  # TESTS:

- addFilter(r'(zero-length|pem-certificate|uncompressed-zip) /usr/lib(64)?/python3.\d/test')

+ addFilter(r'(zero-length|pem-certificate|uncompressed-zip) /usr/lib(64)?/python3\.\d+/test')

  

  

  # OTHER DELIBERATES:
@@ -13,30 +13,30 @@ 

  

  # intentionally unversioned and selfobsoleted

  addFilter(r'unversioned-explicit-obsoletes python')

- addFilter(r'self-obsoletion python3\d 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})')

  

  # intentional for our pythonXY package

- addFilter(r'python3\d\.[^:]+: (E|W): devel-file-in-non-devel-package')

+ addFilter(r'python3\d+\.[^:]+: (E|W): devel-file-in-non-devel-package')

  

  # 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\.\dm/pyconfig-(32|64)\.h')

- addFilter(r'devel-file-in-non-devel-package /usr/lib(64)?/python3\.\d/distutils/tests/xxmodule\.c')

+ 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')

  

  

  # 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.\dd?m$')

+ 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+d?m?$')

  

  # missing documentation from subpackages

- addFilter(r'^python3\d?-(debug|tkinter|test|idle)\.[^:]+: (E|W): no-documentation')

+ 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')
@@ -53,28 +53,32 @@ 

  addFilter(r'python-bytecode-inconsistent-mtime .* 1970')

  

  # debugsource

- addFilter(r'^python3\d?-debugsource\.[^:]+: (E|W): no-documentation')

+ addFilter(r'^python3\d*-debugsource\.[^:]+: (E|W): no-documentation')

  

  # debuginfo

- addFilter(r'^python3\d?-debuginfo\.[^:]+: (E|W): useless-provides debuginfo\(build-id\)')

+ 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')

+ 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\.\ddm\.pc python-3\.\d\.pc')

- addFilter(r'read-error /usr/lib(64)?/pkgconfig/python-3\.\ddm\.pc \[Errno 2\]')

+ 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: library-not-linked-against-libc /usr/lib(64)?/python3.\d/lib-dynload/')

- addFilter(r'E: shared-lib-without-dependency-information /usr/lib(64)?/python3.\d/lib-dynload/')

+ addFilter(r'E: library-not-linked-against-libc /usr/lib(64)?/python3\.\d+/lib-dynload/')

+ addFilter(r'E: shared-lib-without-dependency-information /usr/lib(64)?/python3\.\d+/lib-dynload/')

  

  # SPELLING ERRORS

  addFilter(r'spelling-error .* en_US (bytecode|pyc|filename|tkinter|namespaces|pytest) ')

  • python-unversioned-command has dangling symlinks
  • the ABI flags no longer contain "m"
  • new -embed .pc files were added in 3.8

Tested the regex, the intended change works. However, it breaks on Python 3.10. I suggest changing to:

/usr/include/python3\.\d\d?m?/pyconfig-(32|64)\.h

Same here, breaks on Python 3.10. I would change to:

python3.\d\d?d?m?$

Here I think we also need another \d?.

In these two lines there are several places to add \d?.

Since it's technically possible that the man file is named without any extra suffix (i.e. just /usr/share/man/man1/python.1), I would replace \S+ with \S* in both occurrences.

Speaking of adding \d?, it might be worth combing through the whole file for places to add it, I only commented on the lines that were changed.

Let's change the manpage suffix here, and update for 3.10 (or 3.100) properly in an extra commit.

OK, I've replaced all 3\d with 3\d+ and all 3\d? with 3\d*, same for 3\.\d

rebased onto a1d16f7

4 years ago

Changes look good, but there are a few still remaining:

Line 7: addFilter(r'(zero-length|pem-certificate|uncompressed-zip) /usr/lib(64)?/python3.\d/test')
Line 36: addFilter(r'no-manual-page-for-binary python3.\dd?m?$')
Line 80: addFilter(r'E: library-not-linked-against-libc /usr/lib(64)?/python3.\d/lib-dynload/')
Line 81: addFilter(r'E: shared-lib-without-dependency-information /usr/lib(64)?/python3.\d/lib-dynload/')

2 new commits added

  • Update rpmlintrc to accept Python >= 3.10
  • Update rpmlintrc to reflect 3.8 changes and python-unversioned-command
4 years ago

Looks good, merge at will!

Pull-Request has been merged by churchyard

4 years ago