summaryrefslogtreecommitdiffstats
path: root/installer/OpenSLX/OSSetup/MetaPackager
diff options
context:
space:
mode:
authorOliver Tappe2007-07-28 22:38:11 +0200
committerOliver Tappe2007-07-28 22:38:11 +0200
commit102f63c43b0e32622bb5bf83a84cdac67174f539 (patch)
treeebd5ad2f8c50bca4e8cc38140ae55ee8071bf39c /installer/OpenSLX/OSSetup/MetaPackager
parent* changed several class interfaces as a result of trying to integrate support (diff)
downloadcore-102f63c43b0e32622bb5bf83a84cdac67174f539.tar.gz
core-102f63c43b0e32622bb5bf83a84cdac67174f539.tar.xz
core-102f63c43b0e32622bb5bf83a84cdac67174f539.zip
* finished installation support for Debian-etch, Debian-sarge and Ubuntu
are nearly done (Ubuntu still missing a kernel ...) * some more refactorings to accommodate Debian-support git-svn-id: http://svn.openslx.org/svn/openslx/trunk@1282 95ad53e4-c205-0410-b2fa-d234c58c8868
Diffstat (limited to 'installer/OpenSLX/OSSetup/MetaPackager')
-rw-r--r--installer/OpenSLX/OSSetup/MetaPackager/apt.pm60
-rw-r--r--installer/OpenSLX/OSSetup/MetaPackager/smart.pm37
-rw-r--r--installer/OpenSLX/OSSetup/MetaPackager/yum.pm13
3 files changed, 72 insertions, 38 deletions
diff --git a/installer/OpenSLX/OSSetup/MetaPackager/apt.pm b/installer/OpenSLX/OSSetup/MetaPackager/apt.pm
index 65a1d8e7..1526c4ec 100644
--- a/installer/OpenSLX/OSSetup/MetaPackager/apt.pm
+++ b/installer/OpenSLX/OSSetup/MetaPackager/apt.pm
@@ -37,20 +37,56 @@ sub initPackageSources
{
my $self = shift;
+ $ENV{LC_ALL} = 'POSIX';
+
+ # remove any existing sources
+ slxsystem('rm -f /etc/apt/sources.list');
+
+ # create default timezone if there isn't any
+ if (!-e '/etc/timezone') {
+ spitFile('/etc/timezone', "$openslxConfig{'default-timezone'}\n");
+ }
+
+ # create kernel config if there isn't any
+ if (!-e '/etc/kernel-img.conf') {
+ my $kernelConfig = unshiftHereDoc(<<" END-OF-HERE");
+ # Kernel image management overrides
+ # See kernel-img.conf(5) for details
+ do_symlinks = yes
+ relative_links = yes
+ do_bootloader = no
+ do_bootfloppy = no
+ do_initrd = yes
+ link_in_boot = yes
+ END-OF-HERE
+ spitFile('/etc/kernel-img.conf', $kernelConfig);
+ }
return;
}
sub setupPackageSource
{
- my $self = shift;
- my $repoName = shift;
- my $repoInfo = shift;
+ my $self = shift;
+ my $repoName = shift;
+ my $repoInfo = shift;
my $excludeList = shift;
+ my $repoURLs = shift;
+
+ my $baseURL = shift @$repoURLs;
+ my $distribution = $repoInfo->{'distribution'};
+ my $components = $repoInfo->{'components'};
+
+ my $sourcesList = "deb $baseURL $distribution $components\n";
- my $repoSubdir = '';
- if (length($repoInfo->{'repo-subdir'})) {
- $repoSubdir = "/$repoInfo->{'repo-subdir'}";
+ my $avoidMirrors = $repoInfo->{'avoid-mirrors'} || 0;
+ if (!$avoidMirrors) {
+ foreach my $mirrorURL (@$repoURLs) {
+ $sourcesList .= "deb $mirrorURL $distribution $components\n";
+ }
}
+
+ appendFile('/etc/apt/sources.list', $sourcesList);
+
return;
}
@@ -59,6 +95,12 @@ sub installSelection
my $self = shift;
my $pkgSelection = shift;
+ if (slxsystem("apt-get update")) {
+ die _tr("unable to update repository info (%s)\n", $!);
+ }
+ if (slxsystem("apt-get -y install $pkgSelection")) {
+ die _tr("unable to install selection (%s)\n", $!);
+ }
return;
}
@@ -66,6 +108,12 @@ sub updateBasicVendorOS
{
my $self = shift;
+ if (slxsystem("apt-get -y update")) {
+ die _tr("unable to update repository info (%s)\n", $!);
+ }
+ if (slxsystem("apt-get -y upgrade")) {
+ die _tr("unable to update this vendor-os (%s)\n", $!);
+ }
return;
}
diff --git a/installer/OpenSLX/OSSetup/MetaPackager/smart.pm b/installer/OpenSLX/OSSetup/MetaPackager/smart.pm
index 5303a50a..21fe6d92 100644
--- a/installer/OpenSLX/OSSetup/MetaPackager/smart.pm
+++ b/installer/OpenSLX/OSSetup/MetaPackager/smart.pm
@@ -33,22 +33,14 @@ sub new
return bless $self, $class;
}
-sub initialize
+sub initPackageSources
{
my $self = shift;
- my $engine = shift;
- $self->SUPER::initialize($engine);
$ENV{LC_ALL} = 'POSIX';
- return;
-}
-
-sub initPackageSources
-{
- my $self = shift;
+ # remove any existing channels
slxsystem("rm -f /etc/smart/channels/*");
- # remove channel if it already exists
if (slxsystem("smart channel -y --remove-all")) {
die _tr("unable to remove existing channels (%s)\n", $!);
}
@@ -74,19 +66,20 @@ sub setupPackageSource
if (slxsystem("smart channel -y --add $repoDescr")) {
die _tr("unable to add channel '%s' (%s)\n", $repoName, $!);
}
+
my $avoidMirrors = $repoInfo->{'avoid-mirrors'} || 0;
- unless ($ENV{SLX_NO_MIRRORS} || $avoidMirrors) {
- my $mirrorDescr;
- foreach my $mirrorURL (@$repoURLs) {
- $mirrorDescr .= " --add $baseURL$repoSubdir $mirrorURL$repoSubdir";
- }
- if (defined $mirrorDescr) {
- if (slxsystem("smart mirror $mirrorDescr")) {
- die _tr(
- "unable to add mirrors for channel '%s' (%s)\n",
- $repoName, $!
- );
- }
+ return if $avoidMirrors;
+
+ my $mirrorDescr;
+ foreach my $mirrorURL (@$repoURLs) {
+ $mirrorDescr .= " --add $baseURL$repoSubdir $mirrorURL$repoSubdir";
+ }
+ if (defined $mirrorDescr) {
+ if (slxsystem("smart mirror $mirrorDescr")) {
+ die _tr(
+ "unable to add mirrors for channel '%s' (%s)\n",
+ $repoName, $!
+ );
}
}
return;
diff --git a/installer/OpenSLX/OSSetup/MetaPackager/yum.pm b/installer/OpenSLX/OSSetup/MetaPackager/yum.pm
index 684d125b..fbb50017 100644
--- a/installer/OpenSLX/OSSetup/MetaPackager/yum.pm
+++ b/installer/OpenSLX/OSSetup/MetaPackager/yum.pm
@@ -33,19 +33,11 @@ sub new
return bless $self, $class;
}
-sub initialize
+sub initPackageSources
{
my $self = shift;
- my $engine = shift;
- $self->SUPER::initialize($engine);
$ENV{LC_ALL} = 'POSIX';
- return;
-}
-
-sub initPackageSources
-{
- my $self = shift;
slxsystem("rm -f /etc/yum.repos.d/*");
slxsystem("mkdir -p /etc/yum.repos.d");
@@ -68,8 +60,9 @@ sub setupPackageSource
my $repoDescr
= "[$repoName]\nname=$repoInfo->{name}\nbaseurl=$baseURL$repoSubdir\n";
+
my $avoidMirrors = $repoInfo->{'avoid-mirrors'} || 0;
- unless ($ENV{SLX_NO_MIRRORS} || $avoidMirrors) {
+ if (!$avoidMirrors) {
foreach my $mirrorURL (@$repoURLs) {
$repoDescr .= " $mirrorURL$repoSubdir\n";
}