Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 500866 - x11-drivers/nvidia-drivers-334.16-r4 USE=multilib installs 64-bit libGLESv2.so.334.16 in /usr/lib32/opengl/nvidia/lib/
Summary: x11-drivers/nvidia-drivers-334.16-r4 USE=multilib installs 64-bit libGLESv2.s...
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: [OLD] Unspecified (show other bugs)
Hardware: AMD64 Linux
: Normal normal (vote)
Assignee: Jeroen Roovers (RETIRED)
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2014-02-10 11:48 UTC by Enrico Tagliavini
Modified: 2014-02-10 16:23 UTC (History)
1 user (show)

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


Attachments
simple patch to fix the problem (gles2-multilib.patch,836 bytes, patch)
2014-02-10 11:55 UTC, Enrico Tagliavini
Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Enrico Tagliavini 2014-02-10 11:48:09 UTC
Emerging nvidia-drivers-334.16-r4 (in a multilib profile) with FEATURES multilib-strict enabled found this problem for me:

Files matching a file type that is not allowed:
   usr/lib32/opengl/nvidia/lib/libGLESv2.so.334.16
 * ERROR: x11-drivers/nvidia-drivers-334.16-r4::gentoo failed:
 *   multilib-strict check failed!
 * 
 * Call stack:
 *   misc-functions.sh, line 1276:  Called install_qa_check
 *   misc-functions.sh, line  844:  Called die
 * The specific snippet of code:
 *              [[ ${abort} == yes ]] && die "multilib-strict check failed!"

I emerged it with the feature disabled and 

schroedingerscat lib # file /usr/lib32/opengl/nvidia/lib/libGLESv2.so.334.16
/usr/lib32/opengl/nvidia/lib/libGLESv2.so.334.16: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, stripped

this is a 64 bit SO under /usr/lib32

Nvidia was kind enough to make their damn archive asymmetric:

enrico@schroedingerscat /tmp/NVIDIA-Linux-x86_64-334.16 $ find . -name '*GLES*'
./libGLESv1_CM.so.334.16
./32/libGLESv1_CM.so.334.16
./32/libGLESv2.so.334.16
./libGLESv2.so.334.16

Currently the ebuild handles this for all libraries installed in _src_install-libs except libGLESv2.

Reproducible: Always

Steps to Reproduce:
FEATURES='multilib-strict' emerge =x11-drivers/nvidia-drivers-334.16-r4
Comment 1 Enrico Tagliavini 2014-02-10 11:55:33 UTC
Created attachment 370020 [details, diff]
simple patch to fix the problem

First attempt to fix the problem. Looks good to me now. I don't really use opengl ES, let alone the 32 bit version so I can't really be 100% sure. The test passes at least and the correct 32 bit lib is installed
Comment 2 Jeroen Roovers (RETIRED) gentoo-dev 2014-02-10 12:33:26 UTC
Comment on attachment 370020 [details, diff]
simple patch to fix the problem

No that doesn't work. Its SONAME is "2" and donvidia defaults to "1". Why do you think the exceptional treatment is there in the first place?
Comment 3 Jeroen Roovers (RETIRED) gentoo-dev 2014-02-10 12:37:21 UTC
Does this work? 


--- nvidia-drivers-334.16-r4.ebuild     8 Feb 2014 21:42:26 -0000       1.1
+++ nvidia-drivers-334.16-r4.ebuild     10 Feb 2014 12:37:06 -0000
@@ -388,7 +388,7 @@
                donvidia ${libdir}/libvdpau_nvidia.so ${NV_SOVER}
 
                insinto ${GL_ROOT}
-               doexe libGLESv2.so.${PV}
+               doexe ${libdir}/libGLESv2.so.${PV}
                dosym libGLESv2.so.${PV} ${GL_ROOT}/libGLESv2.so.2
                dosym libGLESv2.so.2 ${GL_ROOT}/libGLESv2.so
        fi
Comment 4 Enrico Tagliavini 2014-02-10 14:27:02 UTC
(In reply to Jeroen Roovers from comment #3)
> Does this work? 
> 
> 
> --- nvidia-drivers-334.16-r4.ebuild     8 Feb 2014 21:42:26 -0000       1.1
> +++ nvidia-drivers-334.16-r4.ebuild     10 Feb 2014 12:37:06 -0000
> @@ -388,7 +388,7 @@
>                 donvidia ${libdir}/libvdpau_nvidia.so ${NV_SOVER}
>  
>                 insinto ${GL_ROOT}
> -               doexe libGLESv2.so.${PV}
> +               doexe ${libdir}/libGLESv2.so.${PV}
>                 dosym libGLESv2.so.${PV} ${GL_ROOT}/libGLESv2.so.2
>                 dosym libGLESv2.so.2 ${GL_ROOT}/libGLESv2.so
>         fi

Works like a charm thank you for the quick response. I missed the .1 vs .2 thing sorry.