summaryrefslogtreecommitdiffstats
path: root/perl-install
diff options
context:
space:
mode:
authorRafael Garcia-Suarez <rgarciasuarez@mandriva.org>2004-06-22 10:20:52 +0000
committerRafael Garcia-Suarez <rgarciasuarez@mandriva.org>2004-06-22 10:20:52 +0000
commit0bad6a093e3a35d797e4204fc50f17155dcc6159 (patch)
tree95a6c565437ad6b1096d897fd8f5f41dc9ad8a0f /perl-install
parentff60e1d0dd98aa8debb199812c894ab02acd4f5d (diff)
downloaddrakx-0bad6a093e3a35d797e4204fc50f17155dcc6159.tar
drakx-0bad6a093e3a35d797e4204fc50f17155dcc6159.tar.gz
drakx-0bad6a093e3a35d797e4204fc50f17155dcc6159.tar.bz2
drakx-0bad6a093e3a35d797e4204fc50f17155dcc6159.tar.xz
drakx-0bad6a093e3a35d797e4204fc50f17155dcc6159.zip
Make the CD-Rom install with supplementary CD work (don't forget to
re-mount the main CDs).
Diffstat (limited to 'perl-install')
-rw-r--r--perl-install/install_any.pm21
1 files changed, 18 insertions, 3 deletions
diff --git a/perl-install/install_any.pm b/perl-install/install_any.pm
index 89d27fe6b..e46248dfb 100644
--- a/perl-install/install_any.pm
+++ b/perl-install/install_any.pm
@@ -299,6 +299,7 @@ sub setPackages {
require pkgs;
if (!$o->{packages} || is_empty_array_ref($o->{packages}{depslist})) {
+ my $cdrom;
($o->{packages}, my $suppl_CDs) = pkgs::psUsingHdlists($o->{prefix}, $o->{method});
#- ask whether there are supplementary CDs
@@ -309,10 +310,10 @@ sub setPackages {
#- by convention, the media names for suppl. CDs match /^\d+s$/
my $medium = '1s'; #- supplement 1
local $::isWizard = 0;
- local $::o->{method} = 'cdrom';
+ local $o->{method} = 'cdrom';
(my $cdromdev) = detect_devices::cdroms();
last SUPPL if !$cdromdev;
- my $cdrom = $cdromdev->{device};
+ $cdrom = $cdromdev->{device};
my $dev = devices::make($cdrom);
ejectCdrom($cdrom);
if ($o->ask_okcancel('', N("Insert the CD"), 1)) {
@@ -373,7 +374,21 @@ sub setPackages {
pkgs::selectPackage($o->{packages}, pkgs::packageByName($o->{packages}, $_) || next) foreach @{$o->{default_packages}};
#- umount supplementary CD. Will re-ask for it later
- eval { fs::umount("/mnt/cdrom") } if $suppl_CDs;
+ if ($suppl_CDs) {
+ getFile("XXX"); #- close still opened filehandles
+ log::l("Umounting suppl. CD");
+ eval { fs::umount("/mnt/cdrom") };
+ #- re-mount CD 1 if this was a cdrom install
+ if ($o->{method} eq 'cdrom') {
+ eval {
+ my $dev = detect_devices::tryOpen($cdrom);
+ ioctl($dev, c::CDROMEJECT(), 1);
+ };
+ $o->ask_warn('', N("Insert the CD 1 again"));
+ mountCdrom("/tmp/image", $cdrom);
+ $asked_medium = 1;
+ }
+ }
} else {
#- this has to be done to make sure necessary files for urpmi are
#- present.