Apply upstream patch to fix regression in no-manual-page-for-binary
check.
Convert to %autosetup as well; adding %patch lines manually is a hassle.
Resolves: #2132936
Several filter expressions for `*-debuginfo` and `*-debugsource`
packages had leading space which prevented them from matching as
intended. Remove those spaces.
Ignore no-binary error for `*-debugsource` and `*-devel` packages.
Neither should be required to contain binaries or be noarch.
Remove unnecessary `no-cleaning-of-buildroot` and `files-attr-not-set`
filters. These are no longer present upstream. The buildroot check was
removed in b1a8a422 (Remove obsolete check no-cleaning-of-buildroot,
2022-06-22), released in rpmlint-2.4.0. The file attr check was removed
in 221ce4b2 (remove files-attr-not-set check, 2015-05-19), released in
rpmlint-1.9.
Replace manual BuildRequires with automatic python build-dependency
generator. This also requires replacing %py3_build/%py3_install with
the more modern %pyproject_wheel/%pyproject_install macros.
Make use of %pyproject_save_files and %pyproject_files in the process,
to ensure we keep up with any future changes in the python deployment
process.
Note that %pyproject_save_files includes `%license COPYING` so we don't
need to list it separately.
Make test dependencies conditional on `--with tests` (which is the
default).
While here, re-order the BuildRequires and Requires sections.
The spec file has seen tabs versus spaces fixes a number of times now.
In 096bf89 (2.0.0, 2021-06-03), the spec file was rewritten and all
spaces were replaced with tabs in the tags. Previous fixes included:
- dbfdbf0 (Fix mixed-use-of-spaces-and-tabs warning (in this spec
file), 2018-06-17)
- c74c9bf (Fix mixed-use-of-spaces-and-tabs warning, 2018-05-03)
- 85118ac (... Keep consistent between spaces and tabs, 2005-03-04)
Replace tabs once again as they are not commonly used in spec files and
lead to rpmlint warnings. If we cannot avoid such warnings here, it's a
bit silly to expect others to do so.
We BR the test dependencies unconditionally. Run the tests as well.
Avoid warnings about pytest.mark.no_cover marker; we disable disable
coverage entirely.
Sync the fedora.toml and users-groups.toml configs from upstream.
Change the zstd dependency to zstandard, following upstream 463bef3f
(Use different Python package for ZStandard, 2022-01-03).
Adjust python-magic dependency to file-magic. We already BR file-magic for
the test suite. This ensures we install what we tested and avoids the
problem of python3-file-magic conflicting and obsoleting python3-magic
without providing the same python-dist values¹.
¹ https://bugzilla.redhat.com/1899279
otherwise spec file cannot be parsed and users are getting this odd
error:
python-ogr.spec: E: specfile-error rpm: /usr/bin/rpmspec: No such file
or directory
Signed-off-by: Tomas Tomecek <ttomecek@redhat.com>
Linters and test coverage makes sense in upstream CI, but not that much in Fedora.
This makes testing rpmlint with newer Python releases easier.
It also partially unblocks the Python 3.10 rebuild.
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.
```