summaryrefslogtreecommitdiffstats
path: root/installer/OpenSLX/OSSetup/MetaPackager
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/MetaPackager
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/MetaPackager')
-rw-r--r--installer/OpenSLX/OSSetup/MetaPackager/Base.pm68
-rw-r--r--installer/OpenSLX/OSSetup/MetaPackager/yum.pm71
2 files changed, 139 insertions, 0 deletions
diff --git a/installer/OpenSLX/OSSetup/MetaPackager/Base.pm b/installer/OpenSLX/OSSetup/MetaPackager/Base.pm
new file mode 100644
index 00000000..0baa1a84
--- /dev/null
+++ b/installer/OpenSLX/OSSetup/MetaPackager/Base.pm
@@ -0,0 +1,68 @@
+# Base.pm - provides empty base of the OpenSLX OSSetup::MetaPackager API.
+#
+# (c) 2006 - OpenSLX.com
+#
+# Oliver Tappe <ot@openslx.com>
+#
+package OpenSLX::OSSetup::MetaPackager::Base;
+
+use vars qw($VERSION);
+$VERSION = 1.01; # API-version . implementation-version
+
+use strict;
+use Carp;
+
+################################################################################
+### interface methods
+################################################################################
+sub new
+{
+ confess "Creating OpenSLX::OSSetup::MetaPackager::Base-objects directly makes no sense!";
+}
+
+sub initialize
+{
+ my $self = shift;
+ my $engine = shift;
+
+ $self->{'engine'} = $engine;
+}
+
+sub setupPackageSource
+{
+}
+
+1;
+################################################################################
+
+=pod
+
+=head1 NAME
+
+OpenSLX::OSSetup::MetaPackager::Base - the base class for all OSSetup::MetaPackagers
+
+=head1 SYNOPSIS
+
+ package OpenSLX::OSSetup::MetaPackager::coolnewpkg;
+
+ use vars qw(@ISA $VERSION);
+ @ISA = ('OpenSLX::OSSetup::MetaPackager::Base');
+ $VERSION = 1.01;
+
+ use coolnewpkg;
+
+ sub new
+ {
+ my $class = shift;
+ my $self = {};
+ return bless $self, $class;
+ }
+
+ # override all methods of OpenSLX::OSSetup::MetaPackager::Base in order to
+ # implement the support for a new meta-packager
+ ...
+
+I<The synopsis above outlines a class that implements a
+OSSetup::MetaPackager for the (imaginary) meta-packager B<coolnewpkg>>
+
+=cut
diff --git a/installer/OpenSLX/OSSetup/MetaPackager/yum.pm b/installer/OpenSLX/OSSetup/MetaPackager/yum.pm
new file mode 100644
index 00000000..3673266d
--- /dev/null
+++ b/installer/OpenSLX/OSSetup/MetaPackager/yum.pm
@@ -0,0 +1,71 @@
+# yum.pm
+# - provides yum-specific overrides of the OpenSLX::OSSetup::MetaPackager API.
+#
+# (c) 2006 - OpenSLX.com
+#
+# Oliver Tappe <ot@openslx.com>
+#
+package OpenSLX::OSSetup::MetaPackager::yum;
+
+use vars qw(@ISA $VERSION);
+@ISA = ('OpenSLX::OSSetup::MetaPackager::Base');
+$VERSION = 1.01; # API-version . implementation-version
+
+use strict;
+use Carp;
+use OpenSLX::Basics;
+use OpenSLX::OSSetup::MetaPackager::Base 1.01;
+
+################################################################################
+### implementation
+################################################################################
+sub new
+{
+ my $class = shift;
+ my $self = {
+ 'name' => 'yum',
+ };
+ return bless $self, $class;
+}
+
+sub initialize
+{
+ my $self = shift;
+ my $engine = shift;
+
+ $self->SUPER::initialize($engine);
+ $ENV{LC_ALL} = 'POSIX';
+}
+
+sub setupPackageSource
+{
+ my $self = shift;
+ my $repoName = shift;
+ my $repoInfo = shift;
+
+ my $repoURL = $self->{engine}->selectBaseURL($repoInfo);
+ if (length($repoInfo->{'repo-subdir'})) {
+ $repoURL .= "/$repoInfo->{'repo-subdir'}";
+ }
+ my $repoDescr = "[$repoName]\nname=$repoInfo->{name}\nbaseurl=$repoURL\n";
+ system("cp /proc/cpuinfo $self->{engine}->{'system-path'}/proc");
+ system("mkdir -p $self->{engine}->{'system-path'}/etc/yum.repos.d");
+ my $repoFile
+ = "$self->{engine}->{'system-path'}/etc/yum.repos.d/$repoName.repo";
+ open(REPO, "> $repoFile")
+ or die _tr("unable to create repo-file <%s> (%s)", $repoFile, $1);
+ print REPO $repoDescr;
+ close(REPO);
+}
+
+sub updateBasicSystem
+{
+ my $self = shift;
+
+ if (system("yum -y update")) {
+ die _tr("unable to update basic system (%s)", $!);
+ }
+ system('rm /proc/cpuinfo');
+}
+
+1; \ No newline at end of file