From c7082b46f4345ffb061b317785055cdb945289e3 Mon Sep 17 00:00:00 2001 From: Martin Whitaker Date: Sun, 3 Feb 2019 19:52:49 +0000 Subject: Skip setupSCSI step when run with --local_install (mga#24278) In a local install, we don't have udev running, so the setupSCSI step will hang if it tries to probe for logical volumes (lvm2 uses udev). A local install is used to test the installer (drakx_in_chroot) and to build the Live ISOs (draklive2), and in both cases we don't really want the install to be affected by the hardware of the host system. Skipping the setupSCSI step means $o->{fstab} contains no entries, so we add a fake entry for our chroot, to allow us to pass the subsequent check that we have a root partition. --- perl-install/install/NEWS | 1 + perl-install/install/install2.pm | 2 +- perl-install/install/steps.pm | 8 +++++--- 3 files changed, 7 insertions(+), 4 deletions(-) diff --git a/perl-install/install/NEWS b/perl-install/install/NEWS index 85bf6207c..96398a3f0 100644 --- a/perl-install/install/NEWS +++ b/perl-install/install/NEWS @@ -1,3 +1,4 @@ +- skip setupSCSI step when run with --local_install (mga#24278) - don't install nonfree graphics drivers when not wanted (mga#24172) - don't select default bootloader when building Live ISOs - improve exitInstall message (mga#24046) diff --git a/perl-install/install/install2.pm b/perl-install/install/install2.pm index d214d8448..bd037cf04 100644 --- a/perl-install/install/install2.pm +++ b/perl-install/install/install2.pm @@ -159,7 +159,7 @@ sub selectMouse { sub setupSCSI { my ($auto) = @_; - installStepsCall($o, $auto, 'setupSCSI'); + installStepsCall($o, $auto, 'setupSCSI') if !$::local_install; } #------------------------------------------------------------------------------ diff --git a/perl-install/install/steps.pm b/perl-install/install/steps.pm index 91e90e042..5dd31bf62 100644 --- a/perl-install/install/steps.pm +++ b/perl-install/install/steps.pm @@ -194,11 +194,13 @@ sub doPartitionDisksAfter { log::l("fdisk after\n" . any::fdisk()); if ($::local_install) { - my $p = fs::get::mntpoint2part($::prefix, [ fs::read_fstab('', '/proc/mounts') ]); - my $part = find { fs::get::is_same_hd($p, $_) } @{$o->{fstab}}; - $part ||= $o->{fstab}[0]; + #- We skipped the setupSCSI step, so $o->{fstab} will be empty. We need to + #- add a fake entry, to satisfy the following check for a root partition. + my $fstab = [ fs::read_fstab('', '/proc/mounts') ]; + my $part = fs::get::mntpoint2part($::prefix, $fstab) || $fstab[0]; $part->{mntpoint} = '/'; $part->{isMounted} = 1; + $o->{fstab} = [ $part ]; } fs::any::check_hds_boot_and_root($o->{all_hds}, $o->{fstab}, $o->{isUpgrade}, $o->{match_all_hardware}); -- cgit v1.2.1