[Mesa-maintainers] Dealing with conflicting files [Re: Downstream patches and package recipes

Emil Velikov emil.l.velikov at gmail.com
Wed Feb 22 14:31:56 UTC 2017


[splitting out of the main thread]

On 22 February 2017 at 13:52, Pedretti Fabio <pedretti.fabio at gmail.com> wrote:
> I can see an issue with swrast and i915, both have classic and gallium
> versions. They can be both built fine, but they get installed in the same
> dri directory and one (apparently the gallium one) overwrite the other.
> There should be a way to be able to build and install both without special
> tricks and have a way the use can select one or the other.
>
Thanks for bringing this up Fabio.

At the moment, we have:
 - cases where the files are overwritten at install stage
swrast being the most common one - oibaf PPA, Debian/Ubuntu (?), Arch,
Suse, Fedora (?)
 - special handling for classic vs gallium files
Manage which one is picked via a script/tool - Gentoo (I really like
the approach)
 - building only one of the two
Nearly nobody builds i915g.

What we need - make install should:
 - produce correctly named files
 - place them where such they can be used

At the same time:
 - at runtime, there is no clear heuristic to check if the classic or
gallium one is required.
 - we cannot retroactively fix old mesa (libGL/libEGL/libgbm) and
xorg-server (libglx.so) loaders


Thus the following ideas that come to mind (in order of personal preference):
 - use/import library management similar to the Gentoo one
 - make them mutually exclusive, similar to {classic,gallium}osmesa
 - rename to {swrast,i915}g_dri.so and add fallback(s) in the loaders
Icky, retro-fix old mesa/xorg ?
 - deprecate (from build perspective) classic swrast,  i915g
Might not fly with some developers or CrOS guys

The more I think of it, the more I'm leaning towards a Gentoo-like approach.
Please let me know your preference and if you see any pitfalls.

Thanks
Emil


More information about the Mesa-maintainers mailing list