[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