Overview
Let me participate in your considerations, gerne auch in Deutsch...
Visit home:frispete:vdr to examine the direction...
I think this was initally introduced by ludwig when he was maintaining two versions (1.6 and 1.7) But the packages were named vdr and vdr17 or something like that (maybe vdr-unstable) and could be installed in parallel IIRC..
I don't think we'll maintain such a setup in the future, so today, we could just do "requires: vdr = %version" (I think the apiversion is nowadays always identical to %version).
For a smooth transition (I just read the bugreport), we could just remove the "obsoletes: vdr(abi)" as it does not work anyway as Ludwig intened, but keep the "Provides: vdr(abi)" for now, and "%define %vdr_prereq vdr = %{vdr_apiversion}"
Then old (not rebuilt) plugins will still work. Rebuilt plugins will get "Requires: vdr = version". Later we can get rid of vdr_prereq one plugin at a time and just replace it with plain text.
At least for me, all this macro magic is just adding layers of indirection ;-)
As I wrote, Tumbleweed doesn't allow parentheses in the macro name anymore, so we don't have the option to keep that (at least not for Tumbleweed). Sure, we can embed this in yet another conditional..
Even for the provides: ...? I thought it's only the obsoletes that does not work.
Ah, okay, will prepare a fixed version later today or tomorrow..