diff options
-rw-r--r-- | perl-install/install_gtk.pm | 10 | ||||
-rw-r--r-- | perl-install/install_steps_gtk.pm | 13 |
2 files changed, 11 insertions, 12 deletions
diff --git a/perl-install/install_gtk.pm b/perl-install/install_gtk.pm index aa58371e1..54b051a35 100644 --- a/perl-install/install_gtk.pm +++ b/perl-install/install_gtk.pm @@ -209,21 +209,17 @@ sub init_sizes() { #------------------------------------------------------------------------------ sub createXconf { - my ($file, $mouse_type, $mouse_dev, $wacom_dev) = @_; + my ($file, $mouse_type, $mouse_dev, $wacom_dev, $Driver) = @_; $mouse_type = 'IMPS/2' if $mouse_type eq 'ExplorerPS/2'; - devices::make("/dev/kbd") if arch() =~ /^sparc/; #- used by Xsun style server. symlinkf(devices::make($mouse_dev), "/dev/mouse") if $mouse_dev ne 'none'; #- needed for imlib to start on 8-bit depth visual. symlink("/tmp/stage2/etc/imrc", "/etc/imrc"); symlink("/tmp/stage2/etc/im_palette.pal", "etc/im_palette.pal"); -if (arch() =~ /^ia64/) { - require Xconfig::card; - my ($card) = Xconfig::card::probe(); - Xconfig::card::add_to_card__using_Cards($card, $card->{type}) if $card && $card->{type}; - output($file, sprintf(<<'END', $mouse_type, $card->{driver})); +if ($Driver) { + output($file, sprintf(<<'END', $mouse_type, $Driver)); Section "Files" FontPath "/usr/X11R6/lib/X11/fonts:unscaled" diff --git a/perl-install/install_steps_gtk.pm b/perl-install/install_steps_gtk.pm index 1ea7832c8..96f0f3947 100644 --- a/perl-install/install_steps_gtk.pm +++ b/perl-install/install_steps_gtk.pm @@ -37,13 +37,14 @@ sub new($$) { if ($ENV{DISPLAY} =~ /^:\d/ && !$::testing || $ENV{DISPLAY} ne $wanted_DISPLAY) { #- is the display local or distant? my $f = "/tmp/Xconf"; if (!$::testing) { - install_gtk::createXconf($f, @{$o->{mouse}}{"XMOUSETYPE", "device"}, $o->{mouse}{wacom}[0]); devices::make("/dev/kbd"); } my $launchX = sub { - my ($server) = @_; + 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); + mkdir '/var/log' if !-d '/var/log'; local $SIG{CHLD} = sub { $ok = 0 if waitpid(-1, c::WNOHANG()) > 0 }; @@ -92,7 +93,9 @@ sub new($$) { @servers = qw(Xsun24); } } elsif (arch() =~ /ia64/) { - @servers = 'XFree86'; + require Xconfig::card; + my ($card) = Xconfig::card::probe(); + @servers = map { if_($_, "Driver:$_") } $card && $card->{Driver}, 'fbdev'; } elsif (arch() eq "ppc") { @servers = qw(Xpmac); } @@ -100,7 +103,7 @@ sub new($$) { foreach (@servers) { log::l("Trying with server $_"); my $dir = "/usr/X11R6/bin"; - my $prog = /Xsun|Xpmac|XFree86|Xnest/ ? $_ : "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: $!"; @@ -109,7 +112,7 @@ 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/; |