Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!

Bug 578626

Summary: >=x11-drivers/nvidia-drivers-364.12: move lib*_nvidia*.so* files to /usr/lib
Product: Gentoo Linux Reporter: Manuel Lauss <manuel.lauss>
Component: Current packagesAssignee: Jeroen Roovers (RETIRED) <jer>
Status: RESOLVED FIXED    
Severity: enhancement CC: O01eg
Priority: Normal    
Version: unspecified   
Hardware: All   
OS: Linux   
Whiteboard:
Package list:
Runtime testing required: ---

Description Manuel Lauss 2016-03-30 18:05:13 UTC
Not a bug, but an ebuild enhancement request:

Newer nvidia drivers have their core GL libraries named lib*_nvidia*.so*, the old libGL.so file is just the new glvnd wrapper (with USE=-compat). This makes it possible to have all of the main nvidia libraries in /usr/<libdir>, and just keep the rest in /usr/<libdir/opengl/nvidia/lib, which can then just be omitted when a libglvnd ebuild is introduced (and mesa has been adapted as well).
This is also important for Vulkan support, since the main entrypoint is located in libGLX_nvidia.so, which ld might not find when eselect opengl somehow didn't add the libpath.

So I'd like to propose this patch, which achieves this, and doesn't break anything, at least on my test systems:

--- nvidia-drivers-364.12-r1.ebuild~    2016-03-25 04:25:26.000000000 +0100
+++ nvidia-drivers-364.12-r1.ebuild     2016-03-30 19:58:55.407838848 +0200
@@ -421,14 +421,14 @@ src_install-libs() {
        if use X; then
                NV_GLX_LIBRARIES=(
                        "libEGL.so.1 ${GL_ROOT}"
-                       "libEGL_nvidia.so.${NV_SOVER} ${GL_ROOT}"
+                       "libEGL_nvidia.so.${NV_SOVER}"
                        "libGL.so.$(usex compat ${NV_SOVER} 1.0.0) ${GL_ROOT}"
                        "libGLESv1_CM.so.1 ${GL_ROOT}"
-                       "libGLESv1_CM_nvidia.so.${NV_SOVER} ${GL_ROOT}"
+                       "libGLESv1_CM_nvidia.so.${NV_SOVER}"
                        "libGLESv2.so.2 ${GL_ROOT}"
-                       "libGLESv2_nvidia.so.${NV_SOVER} ${GL_ROOT}"
+                       "libGLESv2_nvidia.so.${NV_SOVER}"
                        "libGLX.so.0 ${GL_ROOT}"
-                       "libGLX_nvidia.so.${NV_SOVER} ${GL_ROOT}"
+                       "libGLX_nvidia.so.${NV_SOVER}"
                        "libGLdispatch.so.0 ${GL_ROOT}"
                        "libOpenCL.so.1.0.0 ${CL_ROOT}"
                        "libOpenGL.so.0 ${GL_ROOT}"


Thanks.
Comment 1 Manuel Lauss 2020-02-09 16:06:45 UTC
This is fixed in latest nvidia-drivers (as of 02.2020, 440.xx series).