Before:
$ rpmlint python-setuptools.spec
python-setuptools.spec: E: specfile-error warning: extra tokens at the end of %endif directive in line 58: %endif # with tests
python-setuptools.spec: E: specfile-error
python-setuptools.spec: E: specfile-error warning: extra tokens at the end of %endif directive in line 67: %endif # without bootstrap
python-setuptools.spec: E: specfile-error
python-setuptools.spec: E: specfile-error warning: extra tokens at the end of %endif directive in line 181: %endif # with tests
0 packages and 1 specfiles checked; 5 errors, 0 warnings.
After:
$ rpmlint python-setuptools.spec
python-setuptools.spec: E: specfile-error warning: extra tokens at the end of %endif directive in line 58: %endif # with tests
python-setuptools.spec: E: specfile-error warning: extra tokens at the end of %endif directive in line 67: %endif # without bootstrap
python-setuptools.spec: E: specfile-error warning: extra tokens at the end of %endif directive in line 181: %endif # with tests
0 packages and 1 specfiles checked; 3 errors, 0 warnings.
Fedora no longer requires install-info scriptlets, and we already filter out some rpmlint rules (`info-files-without-install-info-postin` and `info-files-without-install-info-postun`).
Some packages (like `emacs-slime`) still has `%post` for other reasons, though, and if they also ship info files this triggers an extraneous rpmlint error.
Filter out `postin-without-install-info` in addition to the existing two rules.
Test case:
```
~/src/fedora/pkgs-others/rpmlint master*
❯ diff -u <(rpmlint /var/lib/mock/fedora-32-x86_64/result/emacs-slime-2.24-1.fc32.noarch.rpm) <(rpmlint -f ./rpmlint.config /var/lib/mock/fedora-32-x86_64/result/emacs-slime-2.24-1.fc32.noarch.rpm)
--- /proc/self/fd/12 2020-04-28 18:24:01.774132790 -0700
+++ /proc/self/fd/13 2020-04-28 18:24:01.775132781 -0700
@@ -1,6 +1,4 @@
emacs-slime.noarch: E: incorrect-fsf-address /usr/share/common-lisp/source/slime/lib/hyperspec.el
emacs-slime.noarch: E: incorrect-fsf-address /usr/share/common-lisp/source/slime/swank/clisp.lisp
emacs-slime.noarch: E: incorrect-fsf-address /usr/share/emacs/site-lisp/slime/lib/hyperspec.el
-emacs-slime.noarch: E: postin-without-install-info /usr/share/info/slime.info.gz
-emacs-slime.noarch: E: postin-without-install-info /usr/share/info/slime.info.gz
-1 packages and 0 specfiles checked; 5 errors, 0 warnings.
+1 packages and 0 specfiles checked; 3 errors, 0 warnings.
```
When readying parlatype[1] for package review[2], I discovered that rpmlint was giving me an explicit-lib-dependency error on the parlatype-libreoffice-helpers package, due to its "Requires: libreoffice-pyuno%{?isa}" component.
Obviously, a libreoffice package is not a library, even though the package name starts with 'lib'. This change adds an additional filter to the rpmlint.config , excluding `libreoffice.*$` from the explicit-lib-dependency check.
[1]: https://github.com/gkarsay/parlatype
[2]: https://bugzilla.redhat.com/show_bug.cgi?id=1624208
The rpmlint build process byte compiles these, so no manual byte
compilation is needed. (The make definition COMPILE_PYC has been used
since 83a9a35 (2009-11-02). Prior to that a patch was applied to byte
compile in %build.)
Using a pattern to match the source tar.gz files prevents fedpkg upload
from needlessly appending each new source file to .gitignore.
Also ignore *.rpm, the results dir from mockbuild, and expanded source
directories.
On installs where documentation or additional languages are not
installed, rpmlint fails while attempting to iterate over the file list.
The files are only opened for their 'magic numbers' which is used in a
few tests in BinariesCheck and SourceCheck.
Fedora container images sets nodocs and '%_install_langs en_US' (which
causes locale files not to be installed). Running rpmlint in such a
container results in a traceback when rpmlint attempts to check the
packages files.
Backport patch from upstream to fix the issue.
Resolves: https://bugzilla.redhat.com/1574509
Source: https://github.com/rpm-software-management/rpmlint/commit/d59bc2a