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
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 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?
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
(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.