Am 07.07.22 um 08:21 schrieb Johannes Kastl:
Hi Ben,
On 06.07.22 at 21:51 Ben Greiner wrote:
Am 06.07.22 um 21:35 schrieb Ben Greiner:
I retract my previous statement: This should actually be handled correctly by python-rpm-macros since python-rpm-macros-20210131: https://github.com/openSUSE/python-rpm-macros/pull/99. What's the python-rpm-macros version, you are using or do you have a special prjconf redefinition differing from Factory?
No, nothing special:
https://build.opensuse.org/projects/home:ojkastl_buildservice:docker_compose...
I checked it. Because python-rpm-macros is not pulled in at all (no requirement on rpm-build-python), the rpmbuild used the prjconf definition from Factory without honoring the switch from python_module_iter to python_modules_lua. A BuildRequires: python-rpm-macros would have resolved it: https://build.opensuse.org/projects/openSUSE:Factory/prjconf # prjconf definitions for python-rpm-macros # This method for generating python_modules gets too deep to expand for rpm at about 5 python flavors. # Hence, python_module_iter is replaced by python_module_lua in macros.lua. # However, OBS cannot expand lua, but has a much higher expansion depth, so this works fine for the server side resolver. %python_module_iter(a:) %{expand:%%define python %{-a*}} ( %python-%args ) %{expand:%%{?!python_module_iter_%1:%%{python_module_iter -a%*}}%%{?python_module_iter_%1}} # pseudo-undefine for obs: reset for the next expansion within the next call of python_module %python_module_iter_STOP %global python %%%%python %python_module() %{?!python_module_lua:%{expand:%%define args %{**}} %{expand:%%{python_module_iter -a %{pythons} STOP}}}%{?python_module_lua:%python_module_lua %{**}}
And I just built against Tumbleweed which failed, while Leap 15.x worked and were succeeded.
I have already changed back the package to hardcode the Obsoletes, but if desired I can create a debug project. As it is golang, it does not have a lot of dependencies... :-)
I think hardcoding is the right choice here, as it guarantees to obsolete all versions which ever existed until now. Using the macro, you will eventually lose the python38-... obsoletion, once we disable that flavor.
Kind Regards, Johannes
- Ben