diff options
author | Pascal Rigaux <pixel@mandriva.com> | 2005-10-21 09:45:00 +0000 |
---|---|---|
committer | Pascal Rigaux <pixel@mandriva.com> | 2005-10-21 09:45:00 +0000 |
commit | 18f4052e30f608e95ac314a1aa5be18b4cea6628 (patch) | |
tree | 0def66b2bd5fa69815d2c00254df895f2481d834 | |
parent | 38c3705b4eee672aca75ec6e863f1c980f2ec857 (diff) | |
download | drakx-18f4052e30f608e95ac314a1aa5be18b4cea6628.tar drakx-18f4052e30f608e95ac314a1aa5be18b4cea6628.tar.gz drakx-18f4052e30f608e95ac314a1aa5be18b4cea6628.tar.bz2 drakx-18f4052e30f608e95ac314a1aa5be18b4cea6628.tar.xz drakx-18f4052e30f608e95ac314a1aa5be18b4cea6628.zip |
ensure we don't load both "/usr/X11R6/lib/modules/extensions/libglx.so" and "/usr/X11R6/lib/modules/extensions/nvidia/libglx.so"
(backported from HEAD) (bugzilla #19285)
-rw-r--r-- | perl-install/Xconfig/card.pm | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/perl-install/Xconfig/card.pm b/perl-install/Xconfig/card.pm index 92ef1b89d..a12052e61 100644 --- a/perl-install/Xconfig/card.pm +++ b/perl-install/Xconfig/card.pm @@ -63,6 +63,9 @@ sub to_raw_X { $raw_X->get_ServerLayout->{Xinerama} = { commented => !$card->{Xinerama}, Option => 1 } if defined $card->{Xinerama}; + # cleanup previous special nvidia libglx + $raw_X->remove_load_module($_) foreach @{$card->{REMOVE_GLX} || []}; + $raw_X->set_load_module('glx', !$card->{DRI_GLX_SPECIAL} && $card->{Driver} ne 'fbdev'); #- glx for everyone, except proprietary nvidia and fbdev $raw_X->set_load_module('dri', $card->{use_DRI_GLX} && !$card->{DRI_GLX_SPECIAL}); @@ -317,6 +320,8 @@ sub install_server { -x $prog or die "server not available (should be in $prog)"; my $modules_dir = "/usr/X11R6/$lib/modules"; + my $new_nvidia_libglx = "$modules_dir/extensions/nvidia/libglx.so"; + my $old_nvidia_libglx = "$modules_dir/extensions/libglx.so"; #- make sure everything is correct at this point, packages have really been installed #- and driver and GLX extension is present. if ($card->{Driver2} eq 'nvidia' && @@ -324,7 +329,7 @@ sub install_server { #- when there is extensions/libglx.a, it means extensions/libglx.so is not xorg's libglx, so it may be nvidia's #- new nvidia packages have libglx.so in extensions/nvidia instead of simply extensions/ my $libglx_a = -e "$::prefix$modules_dir/extensions/libglx.a"; - my $libglx = find { -l "$::prefix$_" } "$modules_dir/extensions/nvidia/libglx.so", if_($libglx_a, "$modules_dir/extensions/libglx.so"); + my $libglx = find { -l "$::prefix$_" } $new_nvidia_libglx, if_($libglx_a, $old_nvidia_libglx); if ($libglx) { log::explanations("Using specific NVIDIA driver and GLX extensions"); $card->{Driver} = 'nvidia'; @@ -338,6 +343,7 @@ sub install_server { log::explanations("Using specific ATI fglrx and DRI drivers"); $card->{Driver} = 'fglrx'; } + $card->{REMOVE_GLX} = [ $old_nvidia_libglx, $new_nvidia_libglx ]; libgl_config($card->{Driver}); |