A version string like '0.5.40-0' produces a post suffix 0, which
stopped being included in the converted version string because of a
too broad of a condition.
The converted string before (incomplete): '0.5.40'
The converted string now (correct): '0.5.40^post0'
This reflects the state of the upstream repository as of
64474dd1e
It does not matter if the package installs .py, .so or different files.
Packages that simply drop a .pth file to site-packages or even only carry dist-info folder
still need to Require the package that owns /usr/lib(64)/pythonX.Y.
LegacyVersion has been removed from Packaging in 2022. If the call
to `parse` function returns LegacyVersion, access to
version._version cannot emit DeprecationWarning.
Fixes: rhbz#2442867
If tests are run in this repository, they exist.
Other packages in Fedora require fedpkg-minimal to download the sources.
We also want to run this test in CentOS Stream where fedpkg-minimal is
not available, hence adding centpkg invocation.
The change will have no effect in this repository, but is essential for
the smooth tests run of other components.
This removes an ugly hack that was used to get rid of:
warning: Macro %1 defined but not used within scope
I've noticed the %_pythonname_obsoletes generator does not expand %1
on non-RHELs and yet the warning is not shown.
When debugging the missing warning,
I've noticed it is never shown at all.
According to RPM upstream, the warning was an undesired artifact:
https://github.com/rpm-software-management/rpm/discussions/2501
It was purposefully removed starting with RPM 4.17.
See https://gitlab.com/fedora/legal/fedora-license-data/-/issues/214
The script was only ever contributed to by me and Tomas Orsava.
$ git log --format='%aN <%aE>' pythonbundles.py | sort -u
Miro Hrončok <miro@hroncok.cz>
Tomas Orsava <torsava@redhat.com>
This license clarification is:
Signed-off-by: Miro Hrončok <miro@hroncok.cz>
Signed-off-by: Tomas Orsava <torsava@redhat.com>
The generator deliberately does not use %{_prefix} in order to avoid
generating provides for packages that set a custom prefix. This is done
to ensure that provides are only generated for paths where the Python
interpreter actually loads modules from.
As we can't use %{_prefix} (which would make it all much simpler), this
commit adds a conditional to look in /app only when the %flatpak macro
is defined, and /usr otherwise.
This should fix provides generation for /app-installed flatpak builds.
The idea is that the extra subpackage only has requirements specific to that extra.
The logic however only excluded requirements without markers,
but requirements with *a* marker that was correct leaked to all extras subpackages.
E.g. with the following requirements:
Requires-Dist: base-dependency
Requires-Dist: base-dependency-with-matching-marker ; python_version < "3.15"
Requires-Dist: base-dependency-with-unmatching-marker ; python_version < "3.8"
Provides-Extra: an-extra
Requires-Dist: extra-only-dependency-with-matching-marker ; extra == 'an-extra' and python_version < "3.15"
Requires-Dist: extra-only-dependency-with-unmatching-marker ; extra == 'an-extra' and python_version < "3.8"
On Python 3.10, the base package generated the following requirements:
python3.10dist(base-dependency)
python3.10dist(base-dependency-with-matching-marker)
And for the [an-extra] extra:
python3.10dist(base-dependency-with-matching-marker) <--- REDUNDANT, WRONG
python3.10dist(extra-only-dependency-with-matching-marker)
Now we no longer just check if the marker evaluates to True,
but we also check that the same marker evaluates to False when the extra is not given.
A real package with this issue is build[virtualenv] 0.8.0, which we use for tests. The package has:
Requires-Dist: tomli (>=1.0.0) ; python_version < "3.11"
And on Python 3.10, it generated the following dependency for python3-build+virtualenv-0.8.0-2.fc37.noarch.rpm:
python3.10dist(tomli) >= 1
Now it no longer does. This is asserted in tests.
Fixes https://bugzilla.redhat.com/show_bug.cgi?id=2090186
Upstream PR: https://github.com/rpm-software-management/python-rpm-packaging/pull/16
Improve handling of > operator, preventing post-release from satisfying most rpm requirements.
Improve handling of < operator, preventing pre-release from satisfying rpm requirement.
Improve handling of != operator with prefix matching, preventing pre-release from satisfying rpm requirements.