diff options
author | Oliver Tappe | 2008-01-09 15:58:43 +0100 |
---|---|---|
committer | Oliver Tappe | 2008-01-09 15:58:43 +0100 |
commit | dc92075ec3dddfd905cfc2dedf9df042b8020e52 (patch) | |
tree | 46827cfd7c123c1f511097e9759122c9ec17a743 /installer | |
parent | * fixed bug that disallowed setting of scoped (a.k.a. plugin-specific) (diff) | |
download | core-dc92075ec3dddfd905cfc2dedf9df042b8020e52.tar.gz core-dc92075ec3dddfd905cfc2dedf9df042b8020e52.tar.xz core-dc92075ec3dddfd905cfc2dedf9df042b8020e52.zip |
* added implementation for zypper meta-packager (untested yet)
git-svn-id: http://svn.openslx.org/svn/openslx/trunk@1457 95ad53e4-c205-0410-b2fa-d234c58c8868
Diffstat (limited to 'installer')
-rw-r--r-- | installer/OpenSLX/OSSetup/MetaPackager/zypper.pm | 95 |
1 files changed, 95 insertions, 0 deletions
diff --git a/installer/OpenSLX/OSSetup/MetaPackager/zypper.pm b/installer/OpenSLX/OSSetup/MetaPackager/zypper.pm new file mode 100644 index 00000000..bb50ad4c --- /dev/null +++ b/installer/OpenSLX/OSSetup/MetaPackager/zypper.pm @@ -0,0 +1,95 @@ +# 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/ +# ----------------------------------------------------------------------------- +# zypper.pm +# - provides zypper-specific overrides of the OpenSLX::OSSetup::MetaPackager API. +# ----------------------------------------------------------------------------- +package OpenSLX::OSSetup::MetaPackager::zypper; + +use strict; +use warnings; + +use base qw(OpenSLX::OSSetup::MetaPackager::Base); + +use OpenSLX::Basics; +use OpenSLX::Utils; + +################################################################################ +### implementation +################################################################################ +sub new +{ + my $class = shift; + my $self = { + 'name' => 'zypper', + }; + return bless $self, $class; +} + +sub initPackageSources +{ + my $self = shift; + + $ENV{LC_ALL} = 'POSIX'; + + # remove any existing channels + slxsystem("rm -f /etc/zypp/repos.d/*"); + return; +} + +sub setupPackageSource +{ + my $self = shift; + my $repoName = shift; + my $repoInfo = shift; + my $excludeList = shift; + my $repoURLs = shift; + + my $repoSubdir = ''; + if (length($repoInfo->{'repo-subdir'})) { + $repoSubdir = "/$repoInfo->{'repo-subdir'}"; + } + my $baseURL = shift @$repoURLs; + if (slxsystem("zypper addrepo -n $baseURL$repoSubdir $repoName")) { + die _tr("unable to add repo '%s' (%s)\n", $repoName, $!); + } + + return; +} + +sub installSelection +{ + my $self = shift; + my $pkgSelection = shift; + + if (slxsystem("zypper --non-interactive refresh")) { + die _tr("unable to update repo info (%s)\n", $!); + } + if (slxsystem("zypper --non-interactive install $pkgSelection")) { + die _tr("unable to install selection (%s)\n", $!); + } + return; +} + +sub updateBasicVendorOS +{ + my $self = shift; + + if (slxsystem("zypper --non-interactive update")) { + if ($! == 2) { + # file not found => zypper isn't installed + die _tr("unable to update this vendor-os, as it seems to lack an installation of zypper!\n"); + } + die _tr("unable to update this vendor-os (%s)\n", $!); + } + return; +} + +1;
\ No newline at end of file |