diff options
Diffstat (limited to 'installer/OpenSLX/OSSetup/Distro')
-rw-r--r-- | installer/OpenSLX/OSSetup/Distro/Base.pm | 90 | ||||
-rw-r--r-- | installer/OpenSLX/OSSetup/Distro/SUSE_10_1.pm | 52 | ||||
-rw-r--r-- | installer/OpenSLX/OSSetup/Distro/SUSE_10_2.pm | 52 |
3 files changed, 194 insertions, 0 deletions
diff --git a/installer/OpenSLX/OSSetup/Distro/Base.pm b/installer/OpenSLX/OSSetup/Distro/Base.pm new file mode 100644 index 00000000..cc0f7fd9 --- /dev/null +++ b/installer/OpenSLX/OSSetup/Distro/Base.pm @@ -0,0 +1,90 @@ +# Base.pm - provides empty base of the OpenSLX OSSetup API. +# +# (c) 2006 - OpenSLX.com +# +# Oliver Tappe <ot@openslx.com> +# +package OpenSLX::OSSetup::Distro::Base; + +use vars qw($VERSION); +$VERSION = 1.01; # API-version . implementation-version + +use strict; +use Carp; +use File::Basename; +use OpenSLX::Basics; + +################################################################################ +### interface methods +################################################################################ +sub new +{ + confess "Creating OpenSLX::OSSetup::System::Base-objects directly makes no sense!"; +} + +sub initialize +{ + my $self = shift; + my $engine = shift; + + $self->{'engine'} = $engine; + + $self->{'stage1a-binaries'} = { + "$openslxConfig{'share-path'}/busybox/busybox" => 'bin', + }; + + $self->{'stage1b-faked-files'} = [ + '/etc/mtab', + ]; + + $self->{'stage1c-faked-files'} = [ + ]; +} + +sub fixPrerequiredFiles +{ +} + +1; +################################################################################ + +=pod + +=head1 NAME + +OpenSLX::OSSetup::System::Base - the base class for all OSSetup backends + +=head1 SYNOPSIS + + package OpenSLX::OSSetup::coolnewOS; + + use vars qw(@ISA $VERSION); + @ISA = ('OpenSLX::OSSetup::Base'); + $VERSION = 1.01; + + use coolnewOS; + + sub new + { + my $class = shift; + my $self = {}; + return bless $self, $class; + } + + # override all methods of OpenSLX::OSSetup::Base in order to implement + # a full OS-setup backend + ... + +I<The synopsis above outlines a class that implements a +OSSetup backend for the (imaginary) operating system B<coolnewOS>> + +=head1 DESCRIPTION + +This class defines the OSSetup interface for the OpenSLX. + +Aim of the OSSetup abstraction is to make it possible to install a large set +of different operating systems transparently. + +... + +=cut diff --git a/installer/OpenSLX/OSSetup/Distro/SUSE_10_1.pm b/installer/OpenSLX/OSSetup/Distro/SUSE_10_1.pm new file mode 100644 index 00000000..ebf8902b --- /dev/null +++ b/installer/OpenSLX/OSSetup/Distro/SUSE_10_1.pm @@ -0,0 +1,52 @@ +# SUSE_10_2.pm +# - provides SUSE-10.1-specific overrides of the OpenSLX OSSetup API. +# +# (c) 2006 - OpenSLX.com +# +# Oliver Tappe <ot@openslx.com> +# +package OpenSLX::OSSetup::Distro::SUSE_10_1; + +use vars qw(@ISA $VERSION); +@ISA = ('OpenSLX::OSSetup::Distro::Base'); +$VERSION = 1.01; # API-version . implementation-version + +use strict; +use Carp; +use OpenSLX::Basics; +use OpenSLX::OSSetup::Distro::Base 1.01; + +################################################################################ +### implementation +################################################################################ +sub new +{ + my $class = shift; + my $self = { + 'base-name' => 'suse-10.1', + }; + 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'; + $ENV{YAST_IS_RUNNING} = "instsys"; +} + +sub fixPrerequiredFiles +{ + my $self = shift; + my $stage1cDir = shift; + + if (system("chown root: $stage1cDir/etc/{group,passwd,shadow}")) { + die _tr("unable to fix pre-required files (%s)", $!); + } +} + +1;
\ No newline at end of file diff --git a/installer/OpenSLX/OSSetup/Distro/SUSE_10_2.pm b/installer/OpenSLX/OSSetup/Distro/SUSE_10_2.pm new file mode 100644 index 00000000..59c2353c --- /dev/null +++ b/installer/OpenSLX/OSSetup/Distro/SUSE_10_2.pm @@ -0,0 +1,52 @@ +# SUSE_10_2.pm +# - provides SUSE-10.2-specific overrides of the OpenSLX OSSetup API. +# +# (c) 2006 - OpenSLX.com +# +# Oliver Tappe <ot@openslx.com> +# +package OpenSLX::OSSetup::Distro::SUSE_10_2; + +use vars qw(@ISA $VERSION); +@ISA = ('OpenSLX::OSSetup::Distro::Base'); +$VERSION = 1.01; # API-version . implementation-version + +use strict; +use Carp; +use OpenSLX::Basics; +use OpenSLX::OSSetup::Distro::Base 1.01; + +################################################################################ +### implementation +################################################################################ +sub new +{ + my $class = shift; + my $self = { + 'base-name' => 'suse-10.2', + }; + 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'; + $ENV{YAST_IS_RUNNING} = "instsys"; +} + +sub fixPrerequiredFiles +{ + my $self = shift; + my $stage1cDir = shift; + + if (system("chown root: $stage1cDir/etc/{group,passwd,shadow}")) { + die _tr("unable to fix pre-required files (%s)", $!); + } +} + +1;
\ No newline at end of file |