[Mesa-dev] [RFC] libGL.so.1.2.0 new name

Ivan Kalvachev ikalvachev at gmail.com
Tue Oct 2 16:00:37 PDT 2012


Hello,

I would like to make a request.
Would you kindly change the name of libGL.so.1.2.0 to libGL_mesa.so*
and make all required aliases of libGL.so* as symlinks to it.

The advantages.
1. Binary drivers won't overwrite the mesa library when they install
their own version. It would make unified way for all distributions to
handle the conflict.

2. It would allow applications to explicitly use libGL_mesa, even when
other (nvidia,fglrx) drivers are installed. It is useful in cases
where multiple cards are present. At least the Fglrx driver routes
mesa X commands to the proper libglx library.

3. It may even allow the creation on libGL.so* that works as wrapper,
similar to e.g. libXvMCW.so . But that is for the future, not now.

4. Avoid an obscure bug.

The concrete reason for this request is a strange bug I found while
testing for another bug in the fglrx beta.

Up until now Mesa3D used to install the library libGL.so.1.2, but in
the new versions, it is libGL.so.1.2.0 .
This little change is present in the git master as well as the
upcoming 9.0 branch.

The problem appears when the distro scripts override libGL.so.1.2 . If
 `ldconfig` is run it re-creates symlinks libGL.so and libGL.so.1 so
that they point to the mesa library (libGL.so.1.2.0) , while
libGL.so.1.2 is pointing to the override (e.g. fglrx-ligGL.so.1.2) .
With this setup, the different applications would be using different
library, depending on what library name they have used at link time.
The funny thing is that for me `glxinfo` showed the fglrx, while
`glxgears` used mesa swrast.


I have already reported this problem to AMD and they will eventually
fix it on their installer. 99 other distros remain.
I could probably understand the sentiment that Mesa should be the one
and only true OpenGL library on the system, but the sad true is that
other (proprietary) OpenGL implementations are not going away anytime
soon. Insisting on this, only makes the life harder for packagers and
users.

Your options are:
1. Don't do anything. Break all kind of distributions in a hard to
debug way. Their problem.
2. Revert to the old libGL.so.1.2 scheme.
3. Use libGL_mesa.so* and make libGL.so.1.2 link to it. Use full path
to preserve existing distro hacks.


Please don't ask me to send you patch... I can't hack autoconf unless
my life depends on it (and maybe even then... better not to try).

Best Regards.
  Ivan Kalvachev


More information about the mesa-dev mailing list