Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 578626 - >=x11-drivers/nvidia-drivers-364.12: move lib*_nvidia*.so* files to /usr/lib
Summary: >=x11-drivers/nvidia-drivers-364.12: move lib*_nvidia*.so* files to /usr/lib
Status: UNCONFIRMED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: All Linux
: Normal enhancement (vote)
Assignee: Jeroen Roovers
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2016-03-30 18:05 UTC by Manuel Lauss
Modified: 2016-12-24 09:04 UTC (History)
1 user (show)

See Also:
Package list:
Runtime testing required: ---


Attachments

Note You need to log in before you can comment on or make changes to this bug.
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.