Closed kbrenneman closed 8 months ago
First of all, thanks for your contribution.
From what I remember, though, we don't even include libglvnd in 16.04, and this is why nvidia-384 doesn't use it. If any glvnd enabled library is included in the package, then it's a bug in the packaging.
There isn't a separate libglvnd package, but packaging script for nvidia-384 includes the libglvnd libraries that are included in the .run installer.
Since 16.04 doesn't have a libglvnd package or a libglvnd-based version of Mesa, as far as the rest of the system is concerned, the libglvnd libraries aren't really any different than the non-libglvnd versions.
The difference becomes important in the 4xx drivers, where you run into problems in the X server. In the 4xx drivers, the Nvidia GLX server module got renamed so that it doesn't have to overwrite the Xorg GLX module anymore.
The problem shows up because the Xorg module drags in libGL.so.1. If that's the (non-glvnd) Nvidia client library, then it and the Nvidia server module will trip over each other. If libGL.so.1 is the libglvnd version, though, then loading it in the server doesn't do any harm.
On a related note, I've got a patch for the nvidia-410/415/418/430 packages in the graphics-drivers PPA, but I don't know where those are hosted.
The inclusion of any glvnd library in 16.04 is simply a packaging bug. We do not include the 4xx series in 16.04.
As for any patches you may have for the graphics drivers PPA, would any of them apply to my 418/430 branches?
If not, you can talk to the #ubuntu-x on freenode, or email them on launchpad.
Is there a reason for using the non-libglvnd version specifically? From a packaging standpoint, they're basically interchangeable.
The only reason to use glvnd is to make the driver coexist with other glvnd enabled ones (which are not available in 16.04).
Requesting a Stable Release Update (SRU) has to be supported by a valid use case.
If you have any such use case, then you are more than welcome to file an SRU on Launchpad.
Alberto Milone
It looks like the nvidia-384 package for 16.04 is intended to use the libglvnd-based versions of libGL.so.1 and libEGL.so.1, but it ends up installing both versions, and then it creates symlinks to the old non-libglvnd versions.
This change removes the non-libglvnd versions of libGL.so and libEGL.so, and changes the symlinks to point to the libglvnd libraries.