summaryrefslogtreecommitdiffstats
path: root/installer/OpenSLX/OSSetup/Engine.pm
diff options
context:
space:
mode:
authorOliver Tappe2007-04-15 13:33:43 +0200
committerOliver Tappe2007-04-15 13:33:43 +0200
commitb2ff07395c692dd7164a5a5434ef9ae9e83d7ce6 (patch)
treec6944164191cd3f1e43047ab13d3be421989c4e9 /installer/OpenSLX/OSSetup/Engine.pm
parent* activated check for required modules in slxos-export, such that you can onl... (diff)
downloadcore-b2ff07395c692dd7164a5a5434ef9ae9e83d7ce6.tar.gz
core-b2ff07395c692dd7164a5a5434ef9ae9e83d7ce6.tar.xz
core-b2ff07395c692dd7164a5a5434ef9ae9e83d7ce6.zip
* improved installer such that it can continue in case the basic system had been successully
created in a previous run (it used to break in that case, complaining about several folders not being empty). * added support for invoking any potential vendor-specific configuration script (like SuSEconfig) after each metapackager session. Implemented invocation of SuSEconfig for all supported SUSE distros. This improves the result of an installation a lot, as it brings the system into a more directly usable state. git-svn-id: http://svn.openslx.org/svn/openslx/trunk@892 95ad53e4-c205-0410-b2fa-d234c58c8868
Diffstat (limited to 'installer/OpenSLX/OSSetup/Engine.pm')
-rw-r--r--installer/OpenSLX/OSSetup/Engine.pm32
1 files changed, 22 insertions, 10 deletions
diff --git a/installer/OpenSLX/OSSetup/Engine.pm b/installer/OpenSLX/OSSetup/Engine.pm
index 16d8a801..d2feebd5 100644
--- a/installer/OpenSLX/OSSetup/Engine.pm
+++ b/installer/OpenSLX/OSSetup/Engine.pm
@@ -160,14 +160,22 @@ sub installVendorOS
}
$self->createVendorOSPath();
- $self->setupStage1A();
- executeInSubprocess( sub {
- # some tasks that involve a chrooted environment:
- changePersonalityIfNeeded($self->{distro}->{'base-name'});
- $self->setupStage1B();
- $self->setupStage1C();
- });
- $self->stage1C_cleanupBasicVendorOS();
+ my $baseSystemFile = "$self->{'vendor-os-path'}/.openslx-base-system";
+ if (-e $baseSystemFile) {
+ vlog 0, _tr("found existing base system, continuing...\n");
+ } else {
+ # basic setup, stage1a-c:
+ $self->setupStage1A();
+ executeInSubprocess( sub {
+ # some tasks that involve a chrooted environment:
+ changePersonalityIfNeeded($self->{distro}->{'base-name'});
+ $self->setupStage1B();
+ $self->setupStage1C();
+ });
+ $self->stage1C_cleanupBasicVendorOS();
+ slxsystem("touch $baseSystemFile");
+ # just touch the file, in order to indicate a basic system
+ }
executeInSubprocess( sub {
# another task that involves a chrooted environment:
changePersonalityIfNeeded($self->{distro}->{'base-name'});
@@ -175,6 +183,8 @@ sub installVendorOS
});
slxsystem("touch $installInfoFile");
# just touch the file, in order to indicate a proper installation
+ slxsystem("rm $baseSystemFile");
+ # no longer needed, we have a full system now
vlog 0, _tr("Vendor-OS '%s' installed succesfully.\n",
$self->{'vendor-os-name'});
@@ -671,7 +681,6 @@ sub setupStage1D
$self->stage1D_setupPackageSources();
$self->stage1D_updateBasicVendorOS();
$self->stage1D_installPackageSelection();
- $self->{'meta-packager'}->cleanup();
}
sub updateStage1D
@@ -680,7 +689,6 @@ sub updateStage1D
vlog 1, "updating $self->{'vendor-os-name'}...";
$self->stage1D_updateBasicVendorOS();
- $self->{'meta-packager'}->cleanup();
}
sub stage1D_setupPackageSources()
@@ -710,7 +718,9 @@ sub stage1D_updateBasicVendorOS()
or die _tr("unable to chroot into '%s' (%s)\n", $osDir, $!);
vlog 1, "updating basic vendor-os...";
+ $self->{'meta-packager'}->startSession();
$self->{'meta-packager'}->updateBasicVendorOS();
+ $self->{'meta-packager'}->finishSession();
}
sub stage1D_installPackageSelection
@@ -729,7 +739,9 @@ sub stage1D_installPackageSelection
vlog 0, _tr("No packages listed for selection '%s', nothing to do.",
$selectionName);
} else {
+ $self->{'meta-packager'}->startSession();
$self->{'meta-packager'}->installSelection(join " ", @pkgs);
+ $self->{'meta-packager'}->finishSession();
}
}