From 87ef78ed082f9dec4e83a6120b32617b7f7a86b9 Mon Sep 17 00:00:00 2001 From: Mystery Man Date: Thu, 24 Apr 2003 07:15:38 +0000 Subject: This commit was manufactured by cvs2svn to create tag 'V1_1_9_56mdk'. --- perl-install/install_steps_gtk.pm | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) (limited to 'perl-install/install_steps_gtk.pm') diff --git a/perl-install/install_steps_gtk.pm b/perl-install/install_steps_gtk.pm index 09ce1dc09..06a4b924c 100644 --- a/perl-install/install_steps_gtk.pm +++ b/perl-install/install_steps_gtk.pm @@ -36,7 +36,6 @@ sub new($$) { unless ($::testing) { if ($ENV{DISPLAY} eq ":0" && !$::live) { my $f = "/tmp/Xconf"; - install_gtk::createXconf($f, @{$o->{mouse}}{"XMOUSETYPE", "device"}, $o->{mouse}{wacom}[0]); devices::make("/dev/kbd"); local (*T1, *T2); @@ -44,14 +43,16 @@ sub new($$) { open T2, ">/dev/tty6"; my $launchX = sub { + my ($server, $Driver) = @_; my $ok = 1; my $xpmac_opts = cat_("/proc/cmdline"); + install_gtk::createXconf($f, @{$o->{mouse}}{"XMOUSETYPE", "device"}, $o->{mouse}{wacom}[0], $Driver); unless (-d "/var/log") { mkdir("/var/log") } local $SIG{CHLD} = sub { $ok = 0 if waitpid(-1, c::WNOHANG()) > 0 }; unless (fork) { - exec $_[0], (arch() =~ /^sparc/ || arch() eq "ppc" ? () : ("-kb")), "-dpms","-s" ,"240", - ($_[0] =~ /Xpmac/ ? $xpmac_opts !~ /ofonly/ ? ("-mode", "17", "-depth", "32") : ("-mach64"):()), - ($_[0] =~ /Xsun/ || $_[0] =~ /Xpmac/ ? ("-fp", "/usr/X11R6/lib/X11/fonts:unscaled") : + exec $server, (arch() =~ /^sparc/ || arch() eq "ppc" ? () : ("-kb")), "-dpms","-s" ,"240", + ($server =~ /Xpmac/ ? $xpmac_opts !~ /ofonly/ ? ("-mode", "17", "-depth", "32") : ("-mach64"):()), + ($server =~ /Xsun/ || $server =~ /Xpmac/ ? ("-fp", "/usr/X11R6/lib/X11/fonts:unscaled") : ("-allowMouseOpenFail", "-xf86config", $f)) or exit 1; } foreach (1..60) { @@ -77,8 +78,10 @@ sub new($$) { if (/Mach64/) { @servers = qw(Mach64) } elsif (/Permedia2/) { @servers = qw(3DLabs) } else { @servers = qw(Xsun24) } - } elsif (arch() =~ /ia64/) { - @servers = 'XFree86'; + } elsif (arch() =~ /ia64|x86_64/) { + require Xconfig::card; + my ($card) = Xconfig::card::probe(); + @servers = map { if_($_, "Driver:$_") } $card && $card->{Driver}, 'fbdev'; } elsif (arch() eq "ppc") { @servers = qw(Xpmac); } @@ -87,6 +90,7 @@ sub new($$) { log::l("Trying with server $_"); my $dir = "/usr/X11R6/bin"; my $prog = /Xsun|Xpmac|XFree86/ ? $_ : "XF86_$_"; + my ($prog, $Driver) = /Driver:(.*)/ ? ('XFree86', $1) : /Xsun|Xpmac|Xnest/ ? $_ : "XF86_$_"; unless (-x "$dir/$prog") { unlink $_ foreach glob_("$dir/X*"); install_any::getAndSaveFile("Mandrake/mdkinst$dir/$prog", "$dir/$prog") or die "failed to get server $prog: $!"; @@ -95,11 +99,11 @@ sub new($$) { if (/FB/) { !$o->{vga16} && $o->{allowFB} or next; - $o->{allowFB} = &$launchX($prog) #- keep in mind FB is used. + $o->{allowFB} = &$launchX($prog, $Driver) #- keep in mind FB is used. and goto OK; } else { $o->{vga16} = 1 if /VGA16/; - &$launchX($prog) and goto OK; + &$launchX($prog, $Driver) and goto OK; } } return undef; -- cgit v1.2.1