On 3/31/20 3:23 PM, Miro Hrončok wrote:
> %{python3} = python3
%{python3} = /usr/bin/python3
At least in Fedora. In EPEL, most likely as well.
> See
https://bugzilla.redhat.com/show_bug.cgi?id=1812665
>
> There's a bug in the macros.
But that bug has nothing to do with either %python3 or
%python3_pkgversion.
> Requires: %{python3}
> Requires: %{python3}-dbus
What does this supposed to evaluate to?
Yeah my apologies I left out the most important part of the spec file:
%global python3 python%{python3_pkgversion}
%global python3_other python%{python3_other_pkgversion}
Anyway, the inconsistency problem is:
python36-dbus on EPEL 7 does not provide python3-dbus (can be fixed by
adding %python_provide %{name} to the EPEL package)
Ok so this would be a bug to file against the package then. Thanks.
python3-dbus in RHEL 8 does not provide python36-dbus (can be fixed by
changing RHEL's %python_provide and rebuilding the RHEL package, not
sure if that will go trough)
Understandably.
> I am looking into python3_pkgversion macro but that doesn't seem to
> be correct either.
This should work on both EPEL 7 and EPEL 8:
Requires: python%{python3_pkgversion}-dbus
Doesn't it?
$ mock -r epel-7-x86_64 shell
<mock-chroot> sh-4.2# rpm --eval '%python3_pkgversion'
36
$ mock -r epel-8-x86_64 shell
<mock-chroot> sh-4.4# rpm --eval '%python3_pkgversion'
3
Interestingly... no it did not and the reason is I built against
rhel-7-x86_64 in mock not epel-7-x86_64. I believe there is a macro
override for epel-7-x86_64 hence why I was getting a dependency against
python3-dbus.
I finally ended up doing this for the moment, which I do not like very
much and I will probably fix here shortly:
%if 0%{?rhel} == 7
Requires: python36-dbus
%else
Requires: %{python3}-dbus
%endif
Thanks all for all the good information, it is appreciated.
-Erinn