#!/usr/bin/perl use lib qw(/usr/lib/libDrakX); use standalone; #- warning, standalone must be loaded very first, for 'explanations' use common; use interactive; use run_program; use c; my $in = 'interactive'->vnew('su'); my $cd_mntpoint = "/mnt/cdrom"; while (! -x "$cd_mntpoint/Mandrake/mdkinst/usr/bin/perl-install/live_install") { ejectCdrom(); $in->ask_okcancel(N("Change Cd-Rom"), N("Please insert the Installation Cd-Rom in your drive and press Ok when done. If you don't have it, press Cancel to avoid live upgrade."), 1) or $in->exit(0); run_program::run("mount", "/mnt/cdrom"); } if (-x "$cd_mntpoint/Mandrake/mdkinst/usr/bin/perl-install/live_install") { chdir "/$cd_mntpoint/Mandrake/mdkinst/usr/bin/perl-install/"; $::testing or exec "./live_install"; } $in->ask_warn('', N("Unable to start live upgrade !!!\n")); $in->exit(1); sub ejectCdrom { my ($cdrom) = @_; $cdrom or cat_("/proc/mounts") =~ m|(/dev/\S+)\s+/mnt/cdrom\s| and $cdrom = $1; $cdrom or cat_("/etc/fstab") =~ m|(/dev/\S+)\s+/mnt/cdrom\s| and $cdrom = $1; my $f = eval { $cdrom && detect_devices::tryOpen($cdrom) } or return; run_program::run("umount", "/mnt/cdrom"); ioctl $f, c::CDROM_LOCKDOOR(), 0; ioctl $f, c::CDROMEJECT(), 1; }