diff options
author | Oliver Tappe | 2007-07-25 21:30:02 +0200 |
---|---|---|
committer | Oliver Tappe | 2007-07-25 21:30:02 +0200 |
commit | cedf72c7559e96d07fefdf55dc007aeb6bca1ca0 (patch) | |
tree | 3b2cc5a1b0817b52001f30a0ee31ddd65b8732dd /installer/OpenSLX/OSSetup/Distro | |
parent | * fixed bug in check for required kernel modules for distros that do not (diff) | |
download | core-cedf72c7559e96d07fefdf55dc007aeb6bca1ca0.tar.gz core-cedf72c7559e96d07fefdf55dc007aeb6bca1ca0.tar.xz core-cedf72c7559e96d07fefdf55dc007aeb6bca1ca0.zip |
* reworked OpenSLX::OSSetup::Distro structure to incorporate
a distro specific hierarchy level in addition to the
distro & version specific files. The latter will be converted
to config-files soon.
* moved string2Array() and chrootInto() from
OpenSLX::OSSetup::Engine to OpenSLX::Utils to make them
available to other callers
* started work on ubuntu & debian installation (not done yet)
* cleaned interface of OpenSLX::OSSetup::Engine (separated
public from private methods)
git-svn-id: http://svn.openslx.org/svn/openslx/trunk@1275 95ad53e4-c205-0410-b2fa-d234c58c8868
Diffstat (limited to 'installer/OpenSLX/OSSetup/Distro')
-rw-r--r-- | installer/OpenSLX/OSSetup/Distro/Debian.pm | 38 | ||||
-rw-r--r-- | installer/OpenSLX/OSSetup/Distro/Debian_3_1.pm | 21 | ||||
-rw-r--r-- | installer/OpenSLX/OSSetup/Distro/Debian_4_0.pm | 21 | ||||
-rw-r--r-- | installer/OpenSLX/OSSetup/Distro/Fedora.pm | 41 | ||||
-rw-r--r-- | installer/OpenSLX/OSSetup/Distro/Fedora_6.pm | 17 | ||||
-rw-r--r-- | installer/OpenSLX/OSSetup/Distro/Fedora_6_x86_64.pm | 17 | ||||
-rw-r--r-- | installer/OpenSLX/OSSetup/Distro/SUSE.pm | 65 | ||||
-rw-r--r-- | installer/OpenSLX/OSSetup/Distro/SUSE_10_1.pm | 40 | ||||
-rw-r--r-- | installer/OpenSLX/OSSetup/Distro/SUSE_10_1_x86_64.pm | 40 | ||||
-rw-r--r-- | installer/OpenSLX/OSSetup/Distro/SUSE_10_2.pm | 40 | ||||
-rw-r--r-- | installer/OpenSLX/OSSetup/Distro/SUSE_10_2_x86_64.pm | 40 | ||||
-rw-r--r-- | installer/OpenSLX/OSSetup/Distro/Ubuntu.pm | 45 | ||||
-rw-r--r-- | installer/OpenSLX/OSSetup/Distro/Ubuntu_6_10.pm | 65 |
13 files changed, 262 insertions, 228 deletions
diff --git a/installer/OpenSLX/OSSetup/Distro/Debian.pm b/installer/OpenSLX/OSSetup/Distro/Debian.pm new file mode 100644 index 00000000..48391f55 --- /dev/null +++ b/installer/OpenSLX/OSSetup/Distro/Debian.pm @@ -0,0 +1,38 @@ +# Copyright (c) 2006, 2007 - OpenSLX GmbH +# +# This program is free software distributed under the GPL version 2. +# See http://openslx.org/COPYING +# +# If you have any feedback please consult http://openslx.org/feedback and +# send your suggestions, praise, or complaints to feedback@openslx.org +# +# General information about OpenSLX can be found at http://openslx.org/ +# ----------------------------------------------------------------------------- +# Debian.pm +# - provides Debian-specific overrides of the OpenSLX OSSetup API. +# ----------------------------------------------------------------------------- +package OpenSLX::OSSetup::Distro::Debian; + +use strict; +use warnings; + +use base qw(OpenSLX::OSSetup::Distro::Base); + +use OpenSLX::Basics; + +################################################################################ +### implementation +################################################################################ +sub initialize +{ + my $self = shift; + my $engine = shift; + + $self->SUPER::initialize($engine); + $self->{'packager-type'} = 'dpkg'; + $self->{'meta-packager-type'} = $ENV{SLX_META_PACKAGER} || 'apt'; + $self->{'stage1c-faked-files'} = []; + return; +} + +1;
\ No newline at end of file diff --git a/installer/OpenSLX/OSSetup/Distro/Debian_3_1.pm b/installer/OpenSLX/OSSetup/Distro/Debian_3_1.pm index 30882c8d..c9476d25 100644 --- a/installer/OpenSLX/OSSetup/Distro/Debian_3_1.pm +++ b/installer/OpenSLX/OSSetup/Distro/Debian_3_1.pm @@ -16,7 +16,7 @@ package OpenSLX::OSSetup::Distro::Debian_3_1; use strict; use warnings; -use base qw(OpenSLX::OSSetup::Distro::Base); +use base qw(OpenSLX::OSSetup::Distro::Debian); use OpenSLX::Basics; @@ -32,25 +32,6 @@ sub new return bless $self, $class; } -sub initialize -{ - my $self = shift; - my $engine = shift; - - $self->SUPER::initialize($engine); - $self->{'packager-type'} = 'dpkg'; - $self->{'meta-packager-type'} = $ENV{SLX_META_PACKAGER} || 'apt'; - $self->{'stage1c-faked-files'} = []; - return; -} - -sub fixPrerequiredFiles -{ - my $self = shift; - my $stage1cDir = shift; - return; -} - sub initDistroInfo { my $self = shift; diff --git a/installer/OpenSLX/OSSetup/Distro/Debian_4_0.pm b/installer/OpenSLX/OSSetup/Distro/Debian_4_0.pm index 23ca8a77..2326f342 100644 --- a/installer/OpenSLX/OSSetup/Distro/Debian_4_0.pm +++ b/installer/OpenSLX/OSSetup/Distro/Debian_4_0.pm @@ -16,7 +16,7 @@ package OpenSLX::OSSetup::Distro::Debian_4_0; use strict; use warnings; -use base qw(OpenSLX::OSSetup::Distro::Base); +use base qw(OpenSLX::OSSetup::Distro::Debian); use OpenSLX::Basics; @@ -32,25 +32,6 @@ sub new return bless $self, $class; } -sub initialize -{ - my $self = shift; - my $engine = shift; - - $self->SUPER::initialize($engine); - $self->{'packager-type'} = 'dpkg'; - $self->{'meta-packager-type'} = $ENV{SLX_META_PACKAGER} || 'apt'; - $self->{'stage1c-faked-files'} = []; - return; -} - -sub fixPrerequiredFiles -{ - my $self = shift; - my $stage1cDir = shift; - return; -} - sub initDistroInfo { my $self = shift; diff --git a/installer/OpenSLX/OSSetup/Distro/Fedora.pm b/installer/OpenSLX/OSSetup/Distro/Fedora.pm new file mode 100644 index 00000000..5206a07e --- /dev/null +++ b/installer/OpenSLX/OSSetup/Distro/Fedora.pm @@ -0,0 +1,41 @@ +# Copyright (c) 2006, 2007 - OpenSLX GmbH +# +# This program is free software distributed under the GPL version 2. +# See http://openslx.org/COPYING +# +# If you have any feedback please consult http://openslx.org/feedback and +# send your suggestions, praise, or complaints to feedback@openslx.org +# +# General information about OpenSLX can be found at http://openslx.org/ +# ----------------------------------------------------------------------------- +# Fedora.pm +# - provides Fedora-specific overrides of the OpenSLX OSSetup API. +# ----------------------------------------------------------------------------- +package OpenSLX::OSSetup::Distro::Fedora; + +use strict; +use warnings; + +use base qw(OpenSLX::OSSetup::Distro::Base); + +use OpenSLX::Basics; + +################################################################################ +### implementation +################################################################################ +sub initialize +{ + my $self = shift; + my $engine = shift; + + $self->SUPER::initialize($engine); + $self->{'packager-type'} = 'rpm'; + $self->{'meta-packager-type'} = $ENV{SLX_META_PACKAGER} || 'yum'; + $self->{'stage1c-faked-files'} = [ + '/etc/fstab', + '/etc/mtab', + ]; + return; +} + +1;
\ No newline at end of file diff --git a/installer/OpenSLX/OSSetup/Distro/Fedora_6.pm b/installer/OpenSLX/OSSetup/Distro/Fedora_6.pm index 6b384ebd..4417136a 100644 --- a/installer/OpenSLX/OSSetup/Distro/Fedora_6.pm +++ b/installer/OpenSLX/OSSetup/Distro/Fedora_6.pm @@ -16,7 +16,7 @@ package OpenSLX::OSSetup::Distro::Fedora_6; use strict; use warnings; -use base qw(OpenSLX::OSSetup::Distro::Base); +use base qw(OpenSLX::OSSetup::Distro::Fedora); use OpenSLX::Basics; @@ -32,21 +32,6 @@ sub new return bless $self, $class; } -sub initialize -{ - my $self = shift; - my $engine = shift; - - $self->SUPER::initialize($engine); - $self->{'packager-type'} = 'rpm'; - $self->{'meta-packager-type'} = $ENV{SLX_META_PACKAGER} || 'yum'; - $self->{'stage1c-faked-files'} = [ - '/etc/fstab', - '/etc/mtab', - ]; - return; -} - sub initDistroInfo { my $self = shift; diff --git a/installer/OpenSLX/OSSetup/Distro/Fedora_6_x86_64.pm b/installer/OpenSLX/OSSetup/Distro/Fedora_6_x86_64.pm index a4addcdb..8cd64775 100644 --- a/installer/OpenSLX/OSSetup/Distro/Fedora_6_x86_64.pm +++ b/installer/OpenSLX/OSSetup/Distro/Fedora_6_x86_64.pm @@ -16,7 +16,7 @@ package OpenSLX::OSSetup::Distro::Fedora_6_x86_64; use strict; use warnings; -use base qw(OpenSLX::OSSetup::Distro::Base); +use base qw(OpenSLX::OSSetup::Distro::Fedora); use OpenSLX::Basics; @@ -32,21 +32,6 @@ sub new return bless $self, $class; } -sub initialize -{ - my $self = shift; - my $engine = shift; - - $self->SUPER::initialize($engine); - $self->{'packager-type'} = 'rpm'; - $self->{'meta-packager-type'} = $ENV{SLX_META_PACKAGER} || 'yum'; - $self->{'stage1c-faked-files'} = [ - '/etc/fstab', - '/etc/mtab', - ]; - return; -} - sub initDistroInfo { my $self = shift; diff --git a/installer/OpenSLX/OSSetup/Distro/SUSE.pm b/installer/OpenSLX/OSSetup/Distro/SUSE.pm new file mode 100644 index 00000000..065fbf2c --- /dev/null +++ b/installer/OpenSLX/OSSetup/Distro/SUSE.pm @@ -0,0 +1,65 @@ +# Copyright (c) 2006, 2007 - OpenSLX GmbH +# +# This program is free software distributed under the GPL version 2. +# See http://openslx.org/COPYING +# +# If you have any feedback please consult http://openslx.org/feedback and +# send your suggestions, praise, or complaints to feedback@openslx.org +# +# General information about OpenSLX can be found at http://openslx.org/ +# ----------------------------------------------------------------------------- +# SUSE.pm +# - provides SUSE-specific overrides of the OpenSLX OSSetup API. +# ----------------------------------------------------------------------------- +package OpenSLX::OSSetup::Distro::SUSE; + +use strict; +use warnings; + +use base qw(OpenSLX::OSSetup::Distro::Base); + +use OpenSLX::Basics; + +################################################################################ +### implementation +################################################################################ +sub initialize +{ + my $self = shift; + my $engine = shift; + + $self->SUPER::initialize($engine); + $self->{'packager-type'} = 'rpm'; + $self->{'meta-packager-type'} = $ENV{SLX_META_PACKAGER} || 'smart'; + $ENV{YAST_IS_RUNNING} = "instsys"; + return; +} + +sub fixPrerequiredFiles +{ + my $self = shift; + my $stage1cDir = shift; + + chown(0, 0, "$stage1cDir/etc/group", "$stage1cDir/etc/passwd", + "$stage1cDir/etc/shadow"); + return; +} + +sub updateDistroConfig +{ + my $self = shift; + + # make sure there's a /dev/zero, as SuSEconfig requires it: + if (!-e "/dev/zero" && slxsystem("mknod /dev/zero c 1 5")) { + die _tr("unable to create node '%s' (%s)\n", "/dev/zero", $!); + } + # invoke SuSEconfig in order to allow it to update the configuration: + if (slxsystem("SuSEconfig")) { + die _tr("unable to run SuSEconfig (%s)", $!); + } + $self->SUPER::updateDistroConfig(); + return; +} + + +1; diff --git a/installer/OpenSLX/OSSetup/Distro/SUSE_10_1.pm b/installer/OpenSLX/OSSetup/Distro/SUSE_10_1.pm index b25b167d..27125f41 100644 --- a/installer/OpenSLX/OSSetup/Distro/SUSE_10_1.pm +++ b/installer/OpenSLX/OSSetup/Distro/SUSE_10_1.pm @@ -16,7 +16,7 @@ package OpenSLX::OSSetup::Distro::SUSE_10_1; use strict; use warnings; -use base qw(OpenSLX::OSSetup::Distro::Base); +use base qw(OpenSLX::OSSetup::Distro::SUSE); use OpenSLX::Basics; @@ -32,44 +32,6 @@ sub new return bless $self, $class; } -sub initialize -{ - my $self = shift; - my $engine = shift; - - $self->SUPER::initialize($engine); - $self->{'packager-type'} = 'rpm'; - $self->{'meta-packager-type'} = $ENV{SLX_META_PACKAGER} || 'smart'; - $ENV{YAST_IS_RUNNING} = "instsys"; - return; -} - -sub fixPrerequiredFiles -{ - my $self = shift; - my $stage1cDir = shift; - - chown(0, 0, "$stage1cDir/etc/group", "$stage1cDir/etc/passwd", - "$stage1cDir/etc/shadow"); - return; -} - -sub updateDistroConfig -{ - my $self = shift; - - # make sure there's a /dev/zero, as SuSEconfig requires it: - if (!-e "/dev/zero" && slxsystem("mknod /dev/zero c 1 5")) { - die _tr("unable to create node '%s' (%s)\n", "/dev/zero", $!); - } - # invoke SuSEconfig in order to allow it to update the configuration: - if (slxsystem("SuSEconfig")) { - die _tr("unable to run SuSEconfig (%s)", $!); - } - $self->SUPER::updateDistroConfig(); - return; -} - sub initDistroInfo { my $self = shift; diff --git a/installer/OpenSLX/OSSetup/Distro/SUSE_10_1_x86_64.pm b/installer/OpenSLX/OSSetup/Distro/SUSE_10_1_x86_64.pm index 91210146..5f73887d 100644 --- a/installer/OpenSLX/OSSetup/Distro/SUSE_10_1_x86_64.pm +++ b/installer/OpenSLX/OSSetup/Distro/SUSE_10_1_x86_64.pm @@ -16,7 +16,7 @@ package OpenSLX::OSSetup::Distro::SUSE_10_1_x86_64; use strict; use warnings; -use base qw(OpenSLX::OSSetup::Distro::Base); +use base qw(OpenSLX::OSSetup::Distro::SUSE); use OpenSLX::Basics; @@ -32,44 +32,6 @@ sub new return bless $self, $class; } -sub initialize -{ - my $self = shift; - my $engine = shift; - - $self->SUPER::initialize($engine); - $self->{'packager-type'} = 'rpm'; - $self->{'meta-packager-type'} = $ENV{SLX_META_PACKAGER} || 'smart'; - $ENV{YAST_IS_RUNNING} = "instsys"; - return; -} - -sub fixPrerequiredFiles -{ - my $self = shift; - my $stage1cDir = shift; - - chown(0, 0, "$stage1cDir/etc/group", "$stage1cDir/etc/passwd", - "$stage1cDir/etc/shadow"); - return; -} - -sub updateDistroConfig -{ - my $self = shift; - - # make sure there's a /dev/zero, as SuSEconfig requires it: - if (!-e "/dev/zero" && slxsystem("mknod /dev/zero c 1 5")) { - die _tr("unable to create node '%s' (%s)\n", "/dev/zero", $!); - } - # invoke SuSEconfig in order to allow it to update the configuration: - if (slxsystem("SuSEconfig")) { - die _tr("unable to run SuSEconfig (%s)", $!); - } - $self->SUPER::updateDistroConfig(); - return; -} - sub initDistroInfo { my $self = shift; diff --git a/installer/OpenSLX/OSSetup/Distro/SUSE_10_2.pm b/installer/OpenSLX/OSSetup/Distro/SUSE_10_2.pm index 71f4b57b..0513050f 100644 --- a/installer/OpenSLX/OSSetup/Distro/SUSE_10_2.pm +++ b/installer/OpenSLX/OSSetup/Distro/SUSE_10_2.pm @@ -16,7 +16,7 @@ package OpenSLX::OSSetup::Distro::SUSE_10_2; use strict; use warnings; -use base qw(OpenSLX::OSSetup::Distro::Base); +use base qw(OpenSLX::OSSetup::Distro::SUSE); use OpenSLX::Basics; @@ -30,44 +30,6 @@ sub new return bless $self, $class; } -sub initialize -{ - my $self = shift; - my $engine = shift; - - $self->SUPER::initialize($engine); - $self->{'packager-type'} = 'rpm'; - $self->{'meta-packager-type'} = $ENV{SLX_META_PACKAGER} || 'smart'; - $ENV{YAST_IS_RUNNING} = "instsys"; - return; -} - -sub fixPrerequiredFiles -{ - my $self = shift; - my $stage1cDir = shift; - - chown(0, 0, "$stage1cDir/etc/group", "$stage1cDir/etc/passwd", - "$stage1cDir/etc/shadow"); - return; -} - -sub updateDistroConfig -{ - my $self = shift; - - # make sure there's a /dev/zero, as SuSEconfig requires it: - if (!-e "/dev/zero" && slxsystem("mknod /dev/zero c 1 5")) { - die _tr("unable to create node '%s' (%s)\n", "/dev/zero", $!); - } - # invoke SuSEconfig in order to allow it to update the configuration: - if (slxsystem("SuSEconfig")) { - die _tr("unable to run SuSEconfig (%s)", $!); - } - $self->SUPER::updateDistroConfig(); - return; -} - sub initDistroInfo { my $self = shift; diff --git a/installer/OpenSLX/OSSetup/Distro/SUSE_10_2_x86_64.pm b/installer/OpenSLX/OSSetup/Distro/SUSE_10_2_x86_64.pm index 85715e40..2b6d4d7b 100644 --- a/installer/OpenSLX/OSSetup/Distro/SUSE_10_2_x86_64.pm +++ b/installer/OpenSLX/OSSetup/Distro/SUSE_10_2_x86_64.pm @@ -16,7 +16,7 @@ package OpenSLX::OSSetup::Distro::SUSE_10_2_x86_64; use strict; use warnings; -use base qw(OpenSLX::OSSetup::Distro::Base); +use base qw(OpenSLX::OSSetup::Distro::SUSE); use OpenSLX::Basics; @@ -32,44 +32,6 @@ sub new return bless $self, $class; } -sub initialize -{ - my $self = shift; - my $engine = shift; - - $self->SUPER::initialize($engine); - $self->{'packager-type'} = 'rpm'; - $self->{'meta-packager-type'} = $ENV{SLX_META_PACKAGER} || 'smart'; - $ENV{YAST_IS_RUNNING} = "instsys"; - return; -} - -sub fixPrerequiredFiles -{ - my $self = shift; - my $stage1cDir = shift; - - chown(0, 0, "$stage1cDir/etc/group", "$stage1cDir/etc/passwd", - "$stage1cDir/etc/shadow"); - return; -} - -sub updateDistroConfig -{ - my $self = shift; - - # make sure there's a /dev/zero, as SuSEconfig requires it: - if (!-e "/dev/zero" && slxsystem("mknod /dev/zero c 1 5")) { - die _tr("unable to create node '%s' (%s)\n", "/dev/zero", $!); - } - # invoke SuSEconfig in order to allow it to update the configuration: - if (slxsystem("SuSEconfig")) { - die _tr("unable to run SuSEconfig (%s)", $!); - } - $self->SUPER::updateDistroConfig(); - return; -} - sub initDistroInfo { my $self = shift; diff --git a/installer/OpenSLX/OSSetup/Distro/Ubuntu.pm b/installer/OpenSLX/OSSetup/Distro/Ubuntu.pm new file mode 100644 index 00000000..17c30662 --- /dev/null +++ b/installer/OpenSLX/OSSetup/Distro/Ubuntu.pm @@ -0,0 +1,45 @@ +# Copyright (c) 2006, 2007 - OpenSLX GmbH +# +# This program is free software distributed under the GPL version 2. +# See http://openslx.org/COPYING +# +# If you have any feedback please consult http://openslx.org/feedback and +# send your suggestions, praise, or complaints to feedback@openslx.org +# +# General information about OpenSLX can be found at http://openslx.org/ +# ----------------------------------------------------------------------------- +# Ubuntu.pm +# - provides Ubuntu-specific overrides of the OpenSLX OSSetup API. +# ----------------------------------------------------------------------------- +package OpenSLX::OSSetup::Distro::Ubuntu; + +use strict; +use warnings; + +use base qw(OpenSLX::OSSetup::Distro::Base); + +use OpenSLX::Basics; + +################################################################################ +### implementation +################################################################################ +sub initialize +{ + my $self = shift; + my $engine = shift; + + $self->SUPER::initialize($engine); + $self->{'packager-type'} = 'dpkg'; + $self->{'meta-packager-type'} = $ENV{SLX_META_PACKAGER} || 'apt'; + $self->{'stage1c-faked-files'} = []; + return; +} + +sub fixPrerequiredFiles +{ + my $self = shift; + my $stage1cDir = shift; + return; +} + +1;
\ No newline at end of file diff --git a/installer/OpenSLX/OSSetup/Distro/Ubuntu_6_10.pm b/installer/OpenSLX/OSSetup/Distro/Ubuntu_6_10.pm new file mode 100644 index 00000000..4225b9aa --- /dev/null +++ b/installer/OpenSLX/OSSetup/Distro/Ubuntu_6_10.pm @@ -0,0 +1,65 @@ +# Copyright (c) 2006, 2007 - OpenSLX GmbH +# +# This program is free software distributed under the GPL version 2. +# See http://openslx.org/COPYING +# +# If you have any feedback please consult http://openslx.org/feedback and +# send your suggestions, praise, or complaints to feedback@openslx.org +# +# General information about OpenSLX can be found at http://openslx.org/ +# ----------------------------------------------------------------------------- +# Ubuntu_6_10.pm +# - provides Ubuntu-6.10-specific overrides of the OpenSLX OSSetup API. +# ----------------------------------------------------------------------------- +package OpenSLX::OSSetup::Distro::Ubuntu_6_10; + +use strict; +use warnings; + +use base qw(OpenSLX::OSSetup::Distro::Ubuntu); + +use OpenSLX::Basics; + +################################################################################ +### implementation +################################################################################ +sub new +{ + my $class = shift; + my $self = { + 'base-name' => 'ubuntu-6.10', + }; + return bless $self, $class; +} + +sub initDistroInfo +{ + my $self = shift; + $self->{config}->{'repository'} = { + 'base' => { + 'urls' => " + ", + 'name' => 'Ubuntu 6.10', + 'repo-subdir' => 'dists/edgy', + }, + }; + + $self->{config}->{'package-subdir'} = 'pool'; + + $self->{config}->{'prereq-packages'} = " + main/d/debootstrap/debootstrap_0.3.3.0ubuntu7_all.deb + "; + + $self->{config}->{'bootstrap-prereq-packages'} = " + "; + + $self->{config}->{'bootstrap-packages'} = " + "; + + $self->{config}->{'selection'} = { + 'default' => "kmail", + }; + return; +} + +1;
\ No newline at end of file |