[elrepo] nvidia-x11-drv and GLVND
Phil Perry
phil at elrepo.org
Tue Aug 23 13:28:45 EDT 2016
On 23/08/16 14:57, Manuel Wolfshant wrote:
> On 08/23/2016 04:28 PM, Harry Mallon wrote:
>>
>> Alternatively, we could try doing something clever, and ship both
>> versions of the libGL.so lib in the same package, with one enabled by
>> default (maybe through a symlink), and write a switcher app to allow
>> users to switch back and forth for testing etc by switching to the
>> appropriate libGL.so lib and rebooting. I'm thinking of something like
>> the util Red Hat uses to switch between Postfix or Sendmail MTAs - it
>> could be a simple command line script.
>
> No additional script is needed. All available MTAs make use of the
> alternative system which can be used for nvidia as well.
>
Ah, thanks Wolfy - I've used it in the past as a user to switch MTAs but
have never looked at it in detail at a technical level to see how it
works or how it might otherwise be exploited.
So, for those not familiar, NVIDIA now ships a new "GL Vendor Neutral
Dispatch (GLVND) [1] infrastructure for Unix OpenGL drivers allows
multiple OpenGL implementations to coexist on the same system". See here:
https://devtalk.nvidia.com/default/topic/915640/multiple-glx-client-libraries-in-the-nvidia-linux-driver-installer-package/
At the packaging level, the only differences are that there are 2
versions of the libGL.so lib - one that is GLVND enabled, and another
legacy (non-GLVND) version. We currently ship the legacy version.
Additionally, there is one other GLVND lib (libGLX.so) that we don't
currently ship as it would cause conflicts.
So our choice are (see my previous comments Harry copied to the list):
1. Just ship the new GLVND enabled drivers at the next major release and
hope they don't break anything. If they do, feel free to file bugs
upstream with nvidia / affected 3rd party software providers. The new
drivers may be fine and this may be the simplest solution now they've
had time to mature since the original beta release.
2. Ship two package sets, one GLVND enabled and one legacy and let the
user choose which version to install. This isn't a long term solution
but could be a way forward in the short term
3. Ship all the libs in one package and come up with a way to
install/copy the required libs in place, run ldconfig and reboot (or
restart Xorg) allowing users to switch between GLVND enabled and legacy
drivers with little more than a reboot. We could use a script to remove
the old libs and copy the new libs in place from a tmp directory, run
ldconfig and trigger a system restart. This solution isn't exactly out
of the KISS packaging handbook, but isn't that far removed from what the
nvidia installer does - has an option at install-time to select GLVND
(default) or legacy drivers.
So at this point I'd like to have a discussion around our options (maybe
there are more that I haven't thought of). Option 1 is obviously the
simplest but is difficult to evaluate without knowing the stability of
the current drivers so I would propose that I start by releasing a GLVND
enabled package set to the testing repo and lets see how we get on with
those. If they cause issues with OpenGL applications then we can
consider options 2 and/or 3 for providing legacy drivers.
Note: In the context of this discussion, legacy refers to non-GLVND
enabled drivers, not older driver [ackages that support older hardware.
GLVND has only been available upstream since 361.xx
Thanks
More information about the elrepo
mailing list