summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--perl-install/install_any.pm7
-rw-r--r--perl-install/install_steps.pm13
2 files changed, 8 insertions, 12 deletions
diff --git a/perl-install/install_any.pm b/perl-install/install_any.pm
index 8b5c6dc25..e46428db5 100644
--- a/perl-install/install_any.pm
+++ b/perl-install/install_any.pm
@@ -56,11 +56,8 @@ sub kernelVersion {
sub getNextStep {
- my ($s, $old);
- for ($s = $::o->{steps}{first}; $::o->{steps}{$s}{done}; $s = $::o->{steps}{$s}{next}) {
- $::o->{steps}{$s}{reachable} or return $old;
- $old = $s;
- }
+ my ($s) = $::o->{steps}{first};
+ $s = $::o->{steps}{$s}{next} while $::o->{steps}{$s}{done} || !$::o->{steps}{$s}{reachable};
$s;
}
diff --git a/perl-install/install_steps.pm b/perl-install/install_steps.pm
index 3191e167a..a4bf25532 100644
--- a/perl-install/install_steps.pm
+++ b/perl-install/install_steps.pm
@@ -41,6 +41,12 @@ sub new($$) {
sub enteringStep($$) {
my ($o, $step) = @_;
log::l("starting step `$step'");
+}
+sub leavingStep($$) {
+ my ($o, $step) = @_;
+ log::l("step `$step' finished");
+
+ eval { commands::cp('-f', "/tmp/ddebug.log", "$o->{prefix}/root") } if -d "$o->{prefix}/root" && !$::testing;
for (my $s = $o->{steps}{first}; $s; $s = $o->{steps}{$s}{next}) {
@@ -54,13 +60,6 @@ sub enteringStep($$) {
}
$o->{steps}{$s}{reachable} = 1 if $reachable;
}
-}
-sub leavingStep($$) {
- my ($o, $step) = @_;
- log::l("step `$step' finished");
-
- eval { commands::cp('-f', "/tmp/ddebug.log", "$o->{prefix}/root") } if -d "$o->{prefix}/root" && !$::testing;
-
$o->{steps}{$step}{reachable} = $o->{steps}{$step}{redoable};
while (my $f = shift @{$o->{steps}{$step}{toBeDone} || []}) {