summaryrefslogtreecommitdiffstats
path: root/installer/OpenSLX/OSSetup/Distro
diff options
context:
space:
mode:
authorOliver Tappe2007-02-12 22:44:09 +0100
committerOliver Tappe2007-02-12 22:44:09 +0100
commit1455d67711a5353adabdba8183d3bc603ea7f216 (patch)
treeaff1e168c4e7bc30860613581bf472794cf621ff /installer/OpenSLX/OSSetup/Distro
parentInserted start script for policykitd (needed for device access in KDE (diff)
downloadcore-1455d67711a5353adabdba8183d3bc603ea7f216.tar.gz
core-1455d67711a5353adabdba8183d3bc603ea7f216.tar.xz
core-1455d67711a5353adabdba8183d3bc603ea7f216.zip
* added perl-ified slxos-setup script and the relevant perl-modules, still not done, but
nearly there git-svn-id: http://svn.openslx.org/svn/openslx/trunk@698 95ad53e4-c205-0410-b2fa-d234c58c8868
Diffstat (limited to 'installer/OpenSLX/OSSetup/Distro')
-rw-r--r--installer/OpenSLX/OSSetup/Distro/Base.pm90
-rw-r--r--installer/OpenSLX/OSSetup/Distro/SUSE_10_1.pm52
-rw-r--r--installer/OpenSLX/OSSetup/Distro/SUSE_10_2.pm52
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