summaryrefslogtreecommitdiffstats
path: root/installer
diff options
context:
space:
mode:
authorOliver Tappe2007-05-13 22:21:28 +0200
committerOliver Tappe2007-05-13 22:21:28 +0200
commit96b9ed0c5d887d35748dfff345ae64fd3e4d6265 (patch)
treedec086787c905a806194c9bd29c83d17fa19f6b2 /installer
parent* simplified declaration of base classes via 'use base' (diff)
downloadcore-96b9ed0c5d887d35748dfff345ae64fd3e4d6265.tar.gz
core-96b9ed0c5d887d35748dfff345ae64fd3e4d6265.tar.xz
core-96b9ed0c5d887d35748dfff345ae64fd3e4d6265.zip
* fixed incorrect execution of chroot with respect to setting up the
meta-packager repositories: that needs to be done inside the chroot, too * adjusted yum to setup its repository while chrooted git-svn-id: http://svn.openslx.org/svn/openslx/trunk@1075 95ad53e4-c205-0410-b2fa-d234c58c8868
Diffstat (limited to 'installer')
-rw-r--r--installer/OpenSLX/OSSetup/Engine.pm57
-rw-r--r--installer/OpenSLX/OSSetup/MetaPackager/yum.pm7
2 files changed, 28 insertions, 36 deletions
diff --git a/installer/OpenSLX/OSSetup/Engine.pm b/installer/OpenSLX/OSSetup/Engine.pm
index d3b4f318..bc5856d2 100644
--- a/installer/OpenSLX/OSSetup/Engine.pm
+++ b/installer/OpenSLX/OSSetup/Engine.pm
@@ -142,7 +142,7 @@ sub initialize
$self->{'vendor-os-path'}
= "$openslxConfig{'stage1-path'}/$self->{'vendor-os-name'}";
- vlog 1, "vendor-OS will be installed to '$self-vendor-os-path'}'";
+ vlog 1, "vendor-OS path is '$self->{'vendor-os-path'}'";
if ($actionType ne 'clone') {
$self->createPackager();
@@ -374,7 +374,7 @@ sub readDistroInfo
# merge user-provided configuration distro defaults...
my %repository = %{$self->{distro}->{config}->{repository}};
my %selection = %{$self->{distro}->{config}->{selection}};
- my %excludes =
+ my %excludes =
defined $self->{distro}->{config}->{excludes}
? %{$self->{distro}->{config}->{excludes}}
: ();
@@ -725,15 +725,7 @@ sub stage1B_chrootAndBootstrap
{
my $self = shift;
- vlog 2, "chrooting into $self->{stage1aDir}...";
- # chdir into stage1aDir...
- chdir $self->{stage1aDir}
- or die _tr("unable to chdir into '%s' (%s)\n", $self->{stage1aDir}, $!);
- # ...do chroot
- chroot "."
- or die _tr("unable to chroot into '%s' (%s)\n", $self->{stage1aDir}, $!);
-
- $ENV{PATH} = "/bin:/sbin:/usr/bin:/usr/sbin";
+ chrootInto($self->{stage1aDir});
# chdir into slxbootstrap, as we want to drop packages into there:
chdir "/$self->{stage1bSubdir}"
@@ -770,17 +762,9 @@ sub stage1C_chrootAndInstallBasicVendorOS
my $self = shift;
my $stage1bDir = "/$self->{stage1bSubdir}";
- vlog 2, "chrooting into $stage1bDir...";
- # chdir into stage1bDir...
- chdir $stage1bDir
- or die _tr("unable to chdir into '%s' (%s)\n", $stage1bDir, $!);
- # ...do chroot
- chroot "."
- or die _tr("unable to chroot into '%s' (%s)\n", $stage1bDir, $!);
+ chrootInto($stage1bDir);
- $ENV{PATH} = "/bin:/sbin:/usr/bin:/usr/sbin";
my $stage1cDir = "/$self->{stage1cSubdir}";
-
# install all prerequired bootstrap packages
$self->{packager}->installPrerequiredPackages(
$self->{'local-bootstrap-prereq-packages'}, $stage1cDir
@@ -824,6 +808,9 @@ sub setupStage1D
my $self = shift;
vlog 1, "setting up stage1d for $self->{'vendor-os-name'}...";
+
+ chrootInto($self->{'vendor-os-path'});
+
$self->stage1D_setupPackageSources();
$self->stage1D_updateBasicVendorOS();
$self->stage1D_installPackageSelection();
@@ -834,6 +821,9 @@ sub updateStage1D
my $self = shift;
vlog 1, "updating $self->{'vendor-os-name'}...";
+
+ chrootInto($self->{'vendor-os-path'});
+
$self->stage1D_updateBasicVendorOS();
}
@@ -857,17 +847,6 @@ sub stage1D_updateBasicVendorOS()
{
my $self = shift;
- # chdir into vendor-os folder...
- my $osDir = $self->{'vendor-os-path'};
- vlog 2, "chrooting into $osDir...";
- chdir $osDir
- or die _tr("unable to chdir into '%s' (%s)\n", $osDir, $!);
- # ...do chroot
- chroot "."
- or die _tr("unable to chroot into '%s' (%s)\n", $osDir, $!);
-
- $ENV{PATH} = "/bin:/sbin:/usr/bin:/usr/sbin";
-
vlog 1, "updating basic vendor-os...";
$self->{'meta-packager'}->startSession();
$self->{'meta-packager'}->updateBasicVendorOS();
@@ -905,7 +884,7 @@ sub clone_fetchSource
$self->{'vendor-os-path'});
my $excludeIncludeList = $self->clone_determineIncludeExcludeList();
vlog 1, "using exclude-include-filter:\n$excludeIncludeList\n";
- my $rsyncCmd
+ my $rsyncCmd
= "rsync -av --delete --exclude-from=- $source $self->{'vendor-os-path'}";
vlog 2, "executing: $rsyncCmd\n";
open(RSYNC, "| $rsyncCmd")
@@ -971,6 +950,20 @@ sub string2Array
split "\n", $str;
}
+sub chrootInto
+{
+ my $osDir = shift;
+
+ vlog 2, "chrooting into $osDir...";
+ chdir $osDir
+ or die _tr("unable to chdir into '%s' (%s)\n", $osDir, $!);
+ # ...do chroot
+ chroot "."
+ or die _tr("unable to chroot into '%s' (%s)\n", $osDir, $!);
+
+ $ENV{PATH} = "/bin:/sbin:/usr/bin:/usr/sbin";
+}
+
1;
################################################################################
diff --git a/installer/OpenSLX/OSSetup/MetaPackager/yum.pm b/installer/OpenSLX/OSSetup/MetaPackager/yum.pm
index cf68122a..acdb470d 100644
--- a/installer/OpenSLX/OSSetup/MetaPackager/yum.pm
+++ b/installer/OpenSLX/OSSetup/MetaPackager/yum.pm
@@ -47,8 +47,8 @@ sub initPackageSources
{
my $self = shift;
- slxsystem("rm -f $self->{engine}->{'vendor-os-path'}/etc/yum.repos.d/*");
- slxsystem("mkdir -p $self->{engine}->{'vendor-os-path'}/etc/yum.repos.d");
+ slxsystem("rm -f /etc/yum.repos.d/*");
+ slxsystem("mkdir -p /etc/yum.repos.d");
}
sub setupPackageSource
@@ -63,8 +63,7 @@ sub setupPackageSource
$repoURL .= "/$repoInfo->{'repo-subdir'}";
}
my $repoDescr = "[$repoName]\nname=$repoInfo->{name}\nbaseurl=$repoURL\n";
- my $repoFile
- = "$self->{engine}->{'vendor-os-path'}/etc/yum.repos.d/$repoName.repo";
+ my $repoFile = "/etc/yum.repos.d/$repoName.repo";
open(REPO, "> $repoFile")
or die _tr("unable to create repo-file <%s> (%s)\n", $repoFile, $1);
print REPO $repoDescr;