From cedf72c7559e96d07fefdf55dc007aeb6bca1ca0 Mon Sep 17 00:00:00 2001 From: Oliver Tappe Date: Wed, 25 Jul 2007 19:30:02 +0000 Subject: * 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 --- installer/OpenSLX/OSSetup/Distro/SUSE.pm | 65 ++++++++++++++++++++++++++++++++ 1 file changed, 65 insertions(+) create mode 100644 installer/OpenSLX/OSSetup/Distro/SUSE.pm (limited to 'installer/OpenSLX/OSSetup/Distro/SUSE.pm') 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; -- cgit v1.2.3-55-g7522