Since #45504 the nvidia package is broken, the nvidia package is special in that it builds -32bit packages as part of the x86_64 package and not the usual -32bit multilib method using i686.
What happens is that two packages will provide the same shlib, once the 64bit and once for 32bit. Resulting in the shlib-requires on that version breaking because it finds two the soname in two files.
I'm also not sure if it it could happen that a soname appears in multiple subpackages for other reasons, might be worth to detect and that and error out instead.
Hm, I think the glob would work. Other packages maybe broken if they're built multiple time for multiple configuration.
But in those cases, they're usually put everything in the same package.
Since #45504 the nvidia package is broken, the nvidia package is special in that it builds -32bit packages as part of the x86_64 package and not the usual -32bit multilib method using i686.
What happens is that two packages will provide the same shlib, once the 64bit and once for 32bit. Resulting in the shlib-requires on that version breaking because it finds two the soname in two files.
I have a workaround for it, but the pattern matching is really dirty and I think there is probably a better solution. https://gist.github.com/Duncaen/dbc27bead074d4629b1802c8b2fd910c
I'm also not sure if it it could happen that a soname appears in multiple subpackages for other reasons, might be worth to detect and that and error out instead.