This is another attempt to prevent partial updates, where important mesa
subpackages get desynchronized with mesa-dri-drivers, and things crash because
of version mismatch.
Last time, we forgot that an old mesa version is still kept in the 'fedora' repo,
and DNF can choose it over a newer version. Because the old version doesn't have
the dependency fixes, a partial update can still happen. This patch tries to
remedy that. You should be able to either install old mesa or new mesa, but
always only as a whole set, not mix and match.
According to Michel Dänzer [1], libglapi and libgbm should always match in
version to dri-drivers. So the conditional requirement was added there, and it
will help guard dependants (e.g. libGL, libEGL) versions in the future.
The conditional requirement under dri-drivers (for libEGL) is just a temporary
measure, because libEGL in the 'fedora' repo has broken dependencies. It needs
to be present in F37 and F38, but it doesn't need to go to Rawhide and future
releases.
[1] https://bugzilla.redhat.com/show_bug.cgi?id=2187726#c4
Whenever we require a library from one of the mesa subpackages, use
fully qualified requires when doing so to ensure that the packages are
always updated in lock step.
Do not require the exact full version but rather the matching
major.minor of the mesa release in order to allow for alternative
providers from other repos to slightly lag behind.
See https://bugzilla.redhat.com/show_bug.cgi?id=2161338#c12
The va-api drivers got split off from dri-drivers so they're more
replaceable, but to keep status quo, they should still get pulled
in by default when mesa-dri-drivers is installed.
This commit adds a Recommends to achieve that.
Related: #2123998