diff options
-rw-r--r-- | perl-install/ChangeLog | 6 | ||||
-rw-r--r-- | perl-install/Xconfigurator.pm | 86 | ||||
-rw-r--r-- | perl-install/install_steps.pm | 3 | ||||
-rw-r--r-- | perl-install/install_steps_gtk.pm | 3 | ||||
-rw-r--r-- | perl-install/install_steps_interactive.pm | 6 | ||||
-rwxr-xr-x | perl-install/standalone/XFdrake | 3 |
6 files changed, 77 insertions, 30 deletions
diff --git a/perl-install/ChangeLog b/perl-install/ChangeLog index 41b0bfb07..a0bf0add5 100644 --- a/perl-install/ChangeLog +++ b/perl-install/ChangeLog @@ -1,3 +1,9 @@ +2000-09-11 François Pons <fpons@mandrakesoft.com> + + * Xconfigurator.pm: reorganized choices of 3D optimizations, added + experimental support for expert users. + * install_steps_interactive.pm: removed question to keep XF3. + 2000-09-05 François Pons <fpons@mandrakesoft.com> * printerdrake.pm: removed all previous URI specific mode and diff --git a/perl-install/Xconfigurator.pm b/perl-install/Xconfigurator.pm index a4e69b8fc..1cfce45b5 100644 --- a/perl-install/Xconfigurator.pm +++ b/perl-install/Xconfigurator.pm @@ -183,43 +183,89 @@ sub cardConfiguration(;$$$) { add2hash($card, { vendor => "Unknown", board => "Unknown" }); #- 3D acceleration configuration for XFree 3.3 using Utah-GLX. - $card->{Utah_glx} = ($card->{identifier} =~ /MGA G[24]00/ || #- 8bpp does not work. + $card->{Utah_glx} = ($card->{identifier} =~ /Matrox.* G[24]00/ || #- 8bpp does not work. $card->{identifier} =~ /3D Rage Pro AGP/ || #- by default only such card are supported, with AGP ? - $card->{type} =~ /RIVA TNT/ || $card->{type} =~ /RIVA128/ || $card->{type} =~ /GeForce 256/ || - #- $card->{type} =~ /SiS / || #- EXPERIMENTAL - #- $card->{type} =~ /S3 ViRGE/ || #- EXPERIMENTAL, 15bits only (!). - #- $card->{type} =~ /S3 Savage3D/ || #- EXPERIMENTAL, use no_pixmap_cache, 16bit only. $card->{type} =~ /Intel 810/); + #- 3D acceleration configuration for XFree 3.3 using Utah-GLX but EXPERIMENTAL that may freeze the machine (FOR INFO NOT USED). + $card->{Utah_glx_EXPERIMENTAL} = ($card->{type} =~ /RIVA TNT/ || #- all RIVA/GeForce comes from NVIDIA and may freeze (gltron). + $card->{type} =~ /RIVA128/ || + $card->{type} =~ /GeForce 256/ || + $card->{type} =~ /S3 Savage3D/ || #- only this one is evoluting (expect a stable release ?) + #- $card->{type} =~ /S3 ViRGE/ || #- 15bits only + $card->{type} =~ /SiS /); #- 3D acceleration configuration for XFree 4.0 using DRI. $card->{DRI_glx} = ($card->{identifier} =~ /Voodoo [35]/ || #- 16bit only #- NOT YET $card->{identifier} =~ /Voodoo Banshee/ || - $card->{identifier} =~ /MGA G[24]00/ || #- prefer 16bit (24bit not well tested according to DRI) + #- NOT WORKING $card->{identifier} =~ /Matrox.* G[24]00/ || #- prefer 16bit (24bit not well tested according to DRI) $card->{type} =~ /Intel 810/ || #- 16bit $card->{type} =~ /ATI Rage 128/); #- 16 and 32 bits, prefer 16bit as no DMA. #- check to use XFree 4.0 or XFree 3.3. - $card->{use_xf4} = !$::force_xf3 && $card->{driver} && !$card->{flags}{unsupported}; + $card->{use_xf4} = $card->{driver} && !$card->{flags}{unsupported}; - #- ask the expert user if he want 3D acceleration. - if ($::expert && ($card->{Utah_glx} || $card->{DRI_glx})) { - $in->ask_yesorno('', _("Do you want support for hardware 3D acceleration?", 1)) or - $card->{Utah_glx} = $card->{DRI_glx} = ''; #- disable all 3D acceleration - } + #- basic installation, use of XFree 4.0 or XFree 3.3. + my ($xf4_ver, $xf3_ver) = ("4.0.1", "3.3.6"); + my $xf3_tc = { text => _("XFree %s", $xf3_ver), + code => sub { $card->{Utah_glx} = $card->{DRI_glx} = ''; $card->{use_xf4} = '' } }; + my $msg = _("Which configuration of XFree do you want to have?"); + my @choices = $card->{use_xf4} ? ({ text => _("XFree %s", $xf4_ver), + code => sub { $card->{Utah_glx} = $card->{DRI_glx} = '' } }, + ($::expert ? ($xf3_tc) : ())) : ($xf3_tc); #- try to figure if 3D acceleration is supported #- by XFree 3.3 but not XFree 4.0 then ask user to keep XFree 3.3 ? - if ($card->{use_xf4} && $card->{Utah_glx} && !$card->{DRI_glx}) { - $::beginner || $in->ask_yesorno('', - _("Your card can have 3D acceleration but only with XFree 3.3. -Do You want to use XFree 3.3 instead of XFree 4.0?"), 1) and $card->{use_xf4} = ''; + if ($card->{Utah_glx}) { + $msg = ($card->{use_xf4} && !$card->{DRI_glx} ? +_("Your card can have 3D hardware acceleration support but only with XFree %s. +Your card is supported by XFree %s which may have a better support in 2D.", $xf3_ver, $xf4_ver) : +_("Your card can have 3D hardware acceleration support with XFree %s.", $xf3_ver)) . "\n\n" . $msg; + $::beginner and @choices = (); #- keep it by default here as it is the only choice available. + unshift @choices, { text => _("XFree %s with 3D hardware acceleration", $xf3_ver), + code => sub { $card->{use_xf4} = '' } }; + } + + #- an expert user may want to try to use an EXPERIMENTAL 3D acceleration, currenlty + #- this is with Utah GLX and so, it can provide a way of testing. + if ($::expert && $card->{Utah_glx_EXPERIMENTAL}) { + $msg = ($card->{use_xf4} && !$card->{DRI_glx} ? +_("Your card can have 3D hardware acceleration support but only with XFree %s, +NOTE THIS IS EXPERIMENTAL SUPPORT AND MAY FREEZE YOUR COMPUTER. +Your card is supported by XFree %s which may have abetter support in 2D.", $xf3_ver, $xf4_ver) : +_("Your card can have 3D hardware acceleration support with XFree %s, +NOTE THIS IS EXPERIMENTAL SUPPORT AND MAY FREEZE YOUR COMPUTER.", $xf3_ver)) . "\n\n" . $msg; + push @choices, { text => _("XFree %s with EXPERIMENTAL 3D hardware acceleration", $xf3_ver), + code => sub { $card->{use_xf4} = ''; $card->{Utah_glx} = 'EXPERIMENTAL' } }; + } + + #- ask the expert user to enable or not hardware acceleration support. + if ($card->{use_xf4} && $card->{DRI_glx}) { + $msg = _("Your card can have 3D hardware acceleration support with XFree %s.", $xf4_ver) . "\n\n" . $msg; + $::expert or @choices = (); #- keep all user by default with XFree 4.0 including 3D acceleration. + unshift @choices, { text => _("XFree %s with 3D hardware acceleration", $xf4_ver) }; } + #- examine choice of user, beware the list MUST NOT BE REORDERED AS THERE ARE FALL TRHOUGH! + my $tc = $in->ask_from_listf(_("XFree configuration"), $msg, sub { translate($_[0]{text}) }, \@choices); + $tc->{code} and $tc->{code}(); + $card->{prog} = "/usr/X11R6/bin/" . ($card->{use_xf4} ? 'XFree86' : $card->{server} =~ /Sun (.*)/x ? "Xsun$1" : "XF86_$card->{server}"); + #- additional packages to install according available card. + #- add XFree86-libs-DRI here if using DRI (future split of XFree86 TODO) + my @l = (); + if ($card->{DRI_glx}) { + push @l, 'Glide_V5' if $card->{identifier} =~ /Voodoo 5/; + push @l, 'Glide_V3-DRI' if $card->{identifier} =~ /Voodoo 3/; + push @l, 'Device3Dfx', 'XFree86-glide-module' if $card->{identifier} =~ /Voodoo/; + } + if ($card->{Utah_glx}) { + push @l, 'Mesa' if !$card->{use_xf4}; + } + -x "$prefix$card->{prog}" or $install && do { $in->suspend if ref($in) =~ /newt/; - &$install($card->{server}, $card->{Utah_glx} ? 'Mesa' : ()) if !$card->{use_xf4}; - &$install('server') if $card->{use_xf4}; #- add XFree86-libs-DRI here if using DRI (future split of XFree86 TODO) + &$install('server', @l) if $card->{use_xf4}; + &$install($card->{server}, @l) if !$card->{use_xf4}; $in->resume if ref($in) =~ /newt/; }; -x "$prefix$card->{prog}" or die "server $card->{server} is not available (should be in $prefix$card->{prog})"; @@ -247,8 +293,8 @@ Do You want to use XFree 3.3 instead of XFree 4.0?"), 1) and $card->{use_xf4} = #- 3D acceleration configuration for XFree 4.0 using DRI, this is enabled by default #- but for some there is a need to specify VideoRam (else it won't run). if ($card->{DRI_glx}) { - ($card->{flags}{needVideoRam}, $card->{memory}) = ('fakeVideoRam', 32768) if $card->{identifier} =~ /MGA G[24]00/; - ($card->{flags}{needVideoRam}, $card->{memory}) = ('fakeVideoRam', 10000) if $card->{type} =~ /Intel 810/; + $card->{identifier} =~ /Matrox.* G[24]00/ and $card->{flags}{needVideoRam} = 'fakeVideoRam'; + $card->{type} =~ /Intel 810/ and ($card->{flags}{needVideoRam}, $card->{memory}) = ('fakeVideoRam', 10000); } if (!$::isStandalone && $card->{driver} eq "i810") { diff --git a/perl-install/install_steps.pm b/perl-install/install_steps.pm index cd2ec2fc0..bb39b695d 100644 --- a/perl-install/install_steps.pm +++ b/perl-install/install_steps.pm @@ -771,7 +771,8 @@ sub configureX { local $::auto = 1; $o->{X}{skiptest} = 1; Xconfigurator::main($o->{prefix}, $o->{X}, class_discard->new, $o->{allowFB}, bool($o->{pcmcia}), sub { - $o->pkg_install("XFree86-$_[0]"); + my ($server, @l) = @_; + $o->pkg_install("XFree86-$server", @l); }); } $o->configureXAfter; diff --git a/perl-install/install_steps_gtk.pm b/perl-install/install_steps_gtk.pm index dfb43f872..b7c53e730 100644 --- a/perl-install/install_steps_gtk.pm +++ b/perl-install/install_steps_gtk.pm @@ -98,9 +98,8 @@ sub new($$) { foreach (@servers) { log::l("Trying with server $_"); - sleep 3; my $dir = "/usr/X11R6/bin"; - my $prog = /Xsun/ || /Xpmac/ ? $_ : "XF86_$_"; + my $prog = /Xsun|Xpmac/ ? $_ : "XF86_$_"; unless (-x "$dir/$prog") { unlink $_ foreach glob_("$dir/X*"); install_any::getAndSaveFile("$dir/$prog", "$dir/$prog") or die "failed to get server $prog: $!"; diff --git a/perl-install/install_steps_interactive.pm b/perl-install/install_steps_interactive.pm index 94e01d188..d88fc3d97 100644 --- a/perl-install/install_steps_interactive.pm +++ b/perl-install/install_steps_interactive.pm @@ -845,12 +845,6 @@ sub configureX { Xconfig::getinfoFromXF86Config($o->{X}, $o->{prefix}); } } - $::force_xf3 = $::force_xf3; #- for no warning - $::force_xf3 = $o->ask_yesorno('', -_("DrakX will generate config files for both XFree 3.3 and XFree 4.0. -By default, the 4.0 server is used unless your card is not supported. - -Do you want to keep XFree 3.3?"), 0) if $::expert; #- strange, xfs must not be started twice... #- trying to stop and restart it does nothing good too... diff --git a/perl-install/standalone/XFdrake b/perl-install/standalone/XFdrake index fd6940c1b..a8b4d934f 100755 --- a/perl-install/standalone/XFdrake +++ b/perl-install/standalone/XFdrake @@ -52,6 +52,7 @@ system("mount /proc 2>/dev/null"); # ensure /proc is mounted for pci probing Xconfig::getinfoFromXF86Config($i) if $0 =~ Xdrakres; Xconfig::getinfo($i); -Xconfigurator::main('', $i, $in, 0, -e "/etc/pcmcia", sub { system("urpmi --auto XFree86-$_[0]") }); +Xconfigurator::main('', $i, $in, 0, -e "/etc/pcmcia", sub { my ($server, @l) = @_; + system("urpmi --auto XFree86-$server " . join(' ', @l)) }); $in->exit(0); |