|Summary:||nvidia-drivers-100.14.23: NVIDIA's libwfb.so installed in addition to X server's libwfb.so, and controlled with eselect opengl|
|Product:||Gentoo Linux||Reporter:||Robert Morell <bobmorell>|
|Component:||New packages||Assignee:||Doug Goldstein <cardoe>|
|Severity:||normal||CC:||akshayushah, ao, ari, bug.hunter, eradicator, gengor, gentoo, ingmar, kusi, m.debruijne, micheleschi, o0o.atlantis.o0o, orangewarrior, s.wezel, tmokros, x11-drivers|
|Package list:||Runtime testing required:||---|
Description Robert Morell 2007-12-22 03:05:31 UTC
The NVIDIA drivers ship with libnvidia-wfb.so, and our default installer installs this (and add a symlink from libwfb.so) in X's modules directory if libwfb.so does not already exist as a regular file. NVIDIA only does this because we need this module on old servers which don't include it by default. libwfb.so is needed by the nvidia driver for G80 and newer GPUs, even if OpenGL is not being used (libwfb is used to perform arbitrary transformations so X's software rendering fallbacks can work on nonlinear surfaces). Newer X servers ship with their own libwfb.so, which should replace the one NVIDIA ships in case the xorg folks add any bugfixes or new rendering operations upstream. What happens with portage (at least on my ~x86 system) is that NVIDIA's libwfb.so is added as part of the nvidia-drivers install to /usr/lib/opengl/nvidia/extensions/, and symlinked into /usr/lib/xorg/modules/extensions/ when eselecting the NVIDIA OpenGL implementation. The X server's libwfb.so (I have x11-base/xorg-server-22.214.171.124) is installed into /usr/lib/xorg/modules/. In practice (at least on this server), this works out because the default module search path looks in the modules directory before the modules/extensions directory, so X always loads the libwfb.so it shipped with. However, if an older server were to be installed which does not ship its own libwfb.so, and the xorg-x11 OpenGL implementation eselect'ed on a system with a G8x-based GPU, the X server would fail to start with the nvidia driver since it wouldn't be able to load libwfb.so. libwfb.so was first shipped with xorg-server 1.3, so the =xorg-server-1.2.0-r3 package will have this problem. Reproducible: Always Steps to Reproduce: 1. Install =xorg-server-126.96.36.199 2. Install =nvidia-drivers-100.14.23 Actual Results: $ ls -l /usr/lib/xorg/modules/extensions/libwfb.so lrwxrwxrwx 1 root root 43 Dec 21 17:53 /usr/lib/xorg/modules/extensions/libwfb.so -> /usr/lib/opengl/nvidia/extensions/libwfb.so $ ls -l /usr/lib/xorg/modules/libwfb.so -rwxr-xr-x 1 root root 190616 Dec 19 22:35 /usr/lib/xorg/modules/libwfb.so $ equery belongs /usr/lib/opengl/nvidia/extensions/libwfb.so [ Searching for file(s) /usr/lib/opengl/nvidia/extensions/libwfb.so in *... ] x11-drivers/nvidia-drivers-100.14.23 (/usr/lib/opengl/nvidia/extensions/libwfb.so) $ equery belongs /usr/lib/xorg/modules/libwfb.so [ Searching for file(s) /usr/lib/xorg/modules/libwfb.so in *... ] x11-base/xorg-server-188.8.131.52 (/usr/lib/xorg/modules/libwfb.so) Excerpt from /var/log/Xorg.0.log: (II) Loading sub module "wfb" (II) LoadModule: "wfb" (II) Loading /usr/lib/xorg/modules//libwfb.so (II) Module wfb: vendor="X.Org Foundation" compiled for 184.108.40.206, module version = 1.0.0 ABI class: X.Org ANSI C Emulation, version 0.3 Expected Results: Only one libwfb.so should be installed, and it should be installed as part of either: a) xorg-server installation (overrides any provided by nvidia-drivers) b) nvidia-drivers installation, if xorg-server does not provide one Neither should be removed as part of 'eselect opengl' operation. I am an NVIDIA employee who works on the nvidia UNIX driver. Feel free to contact me if you have any questions.
Comment 1 Jeremy Huddleston (RETIRED) 2007-12-27 23:29:51 UTC
Thanks for the detailed report, Robert. I think probably the cleanest solution for this is to just change the nvidia-drivers version dep to >=xorg-server-1.3 and not ever provide the nvidia-provided libwfb. If anyone has an objection (such as some reason they NEED xorg-server-1.2), speak now or I'll be doing this in a few days.
Comment 2 Doug Goldstein 2007-12-28 13:44:18 UTC
(In reply to comment #1) > Thanks for the detailed report, Robert. > > I think probably the cleanest solution for this is to just change the > nvidia-drivers version dep to >=xorg-server-1.3 and not ever provide the > nvidia-provided libwfb. If anyone has an objection (such as some reason they > NEED xorg-server-1.2), speak now or I'll be doing this in a few days. > Please don't touch the nvidia-drivers ebuild, eradicator.
Comment 3 Jeremy Huddleston (RETIRED) 2007-12-29 20:41:55 UTC
ok, then /punt to cardoe
Comment 4 Doug Goldstein 2008-02-15 16:07:01 UTC
fixed in 169.09-r1
Comment 5 Doug Goldstein 2008-02-15 17:02:16 UTC
Actually the more I read into this... If X ships with libwfb.so, it would be found in.. /usr/lib/xorg/modules/ and that path is searched first. So it'll load the libwfb.so that ships with X.org server. If X does not ship with libwfb.so, it would look in /usr/lib/xorg/modules/ and not find it. Then it would check /usr/lib/xorg/modules/extensions/ where it would find the libwfb.so provides by NVIDIA. Is this not the expected and desired behavior?
Comment 6 Jakub Moc (RETIRED) 2008-02-15 21:49:48 UTC
*** Bug 210285 has been marked as a duplicate of this bug. ***
Comment 7 Jakub Moc (RETIRED) 2008-02-16 14:26:56 UTC
*** Bug 210366 has been marked as a duplicate of this bug. ***
Comment 8 Jakub Moc (RETIRED) 2008-02-17 10:37:54 UTC
*** Bug 210450 has been marked as a duplicate of this bug. ***
Comment 9 Jakub Moc (RETIRED) 2008-02-17 10:40:00 UTC
Great; so - until this change, we got exactly zero bugs about libwfb.so. Since this 'issue' has been 'fixed' in latest version, we got 3 bugs about the thing being broken. I'd suggest reverting the change and marking this bug as INVALID since fixing it only caused regressions without any good reason - all is stated in Comment #5 after all.
Comment 10 Angelo Arrifano (RETIRED) 2008-02-17 15:04:04 UTC
Comment 11 Doug Goldstein 2008-02-17 23:38:00 UTC
Currently -r1 is configured per Robert Morell and Jeremy Huddleston's request. I don't have access to a committing machine on Saturday and Sunday, however I'll revert it Monday morning.
Comment 12 Robert Golding 2008-02-18 09:47:58 UTC
(In reply to comment #9) > Great; so - until this change, we got exactly zero bugs about libwfb.so. Since > this 'issue' has been 'fixed' in latest version, we got 3 bugs about the thing > being broken. > > I'd suggest reverting the change and marking this bug as INVALID since fixing > it only caused regressions without any good reason - all is stated in Comment > #5 after all. > Now mine makes four bugs, and I know of a few others that haven't put bugs in (already entered, is their excuse) as well, so thats nearly a dozen. Oh My Dog, that's almost a movement ... The WFB Don't Work Alliance :-) Quick fix for those who want to, package mask 169.09-r1 and revert to 169.09
Comment 13 Jakub Moc (RETIRED) 2008-02-18 20:34:50 UTC
*** Bug 210623 has been marked as a duplicate of this bug. ***
Comment 14 Jonas Bergler 2008-03-04 04:41:04 UTC
It appears this still affects 169.12. The fix for me was simple in that I had to run 'eselect opengl set nvidia' after emerging the driver ebuild.
Comment 15 Doug Goldstein 2008-03-04 04:53:32 UTC
Two totally different things..
Comment 16 step 2008-05-24 11:09:41 UTC
(In reply to comment #14) > It appears this still affects 169.12. The fix for me was simple in that I had > to run 'eselect opengl set nvidia' after emerging the driver ebuild. > thank you Jonas Bergler, works for me (x11-drivers/nvidia-drivers 169.09-r1(12:46:46 05/24/08)