home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Caldera Network Desktop 1.0
/
caldera-network-desktop-1.0.bin
/
images
/
ramdisk2.img
/
usr
/
lib
/
perl
/
xinst
< prev
next >
Wrap
Text File
|
1995-11-01
|
2KB
|
113 lines
# -*-perl-*-
$force_config = 0;
sub xinstall {
local ( $config_again );
local ( $first_config );
$config_again = 1;
$first_config = 1;
do {
# get X configured
if ($config_again) {
undef $xserver;
&mount_bootdisk();
if ($first_config && -f "/bootdisk/defaults/xsetup" ) {
require "/bootdisk/defaults/xsetup";
}
if ($first_config && defined $xserver) {
unlink("/etc/X11/X");
symlink("/usr/X11R6/bin/XF86_$xserver", "/etc/X11/X");
if (defined $mouseport) {
unlink("/dev/mouse");
symlink("$mouseport", "/dev/mouse");
}
open(IN, "</bootdisk/defaults/XF86Config");
open(OUT, ">/etc/X11/XF86Config");
while (<IN>) {
print OUT;
}
close IN;
close OUT;
} else {
$force_config = 1;
$ret = &configure_mouse;
$ret = &select_x_server;
$force_config = 0;
$first_config = 0;
&invoke("/usr/rhs/install/Xconfigurator $xserver $mousetype");
}
}
&rhs_msgbox ( "X Install",
<<EOM
>
X is about to start. If it succeeds you will have a few seconds
to press a button on the screen. If you do not see the button,
X has most likely been misconfigured, and a timeout will occur,
bringing you back to text mode for further instructions.
>
This could take as long as two minutes on a slow network or using
a slow CDROM drive. Please be patient.
>
EOM
, 70);
&invoke('/usr/X11/bin/startx');
if (! (-f "/tmp/xworked")) {
&rhs_menu("X Error",
<<EOM
>
X seems to have failed to configure and/or run properly.
>
What do you want to do?
>
EOM
, 70, 3,
"Retry", "Just try X again",
"Reconfigure", "Reconfigure X and try again",
"text", "Fall back to text based install");
if ($dialog_result eq "text") {
return 0;
}
if ($dialog_result eq "Retry") {
$config_again = 0;
} else {
$config_again = 1;
}
} else {
# X worked
open(FD, "/etc/X11/XF86Config");
$fsmount = "/mnt";
open(OFD, ">$fsmount/etc/X11/XF86Config");
while (<FD>) {
print OFD $_;
}
close(FD);
close(OFD);
unlink("$fsmount/etc/X");
unlink("$fsmount/etc/X11/X");
symlink("../../usr/X11R6/bin/XF86_$xserver", "$fsmount/etc/X11/X");
unlink("$fsmount/usr/X11R6/bin/X");
symlink("../../../etc/X11/X", "$fsmount/usr/X11R6/bin/X");
&finish_mouse;
&finish_pcmcia;
&finish_cd;
}
} while (! (-f "/tmp/xworked"));
return 1;
}
1;