summaryrefslogtreecommitdiffstats
path: root/installer
diff options
context:
space:
mode:
authorOliver Tappe2008-03-12 18:47:18 +0100
committerOliver Tappe2008-03-12 18:47:18 +0100
commit859a8a0fecf71976afd027c83d2c9030c61cc539 (patch)
tree86bd5607cd0d1bb68d2f176d8755c5fa17217a7f /installer
parent* fixed potential use of uninitialized value (diff)
downloadcore-859a8a0fecf71976afd027c83d2c9030c61cc539.tar.gz
core-859a8a0fecf71976afd027c83d2c9030c61cc539.tar.xz
core-859a8a0fecf71976afd027c83d2c9030c61cc539.zip
* added support for specifying more than one base selection (e.g. base = kde,gnome)
git-svn-id: http://svn.openslx.org/svn/openslx/openslx/trunk@1627 95ad53e4-c205-0410-b2fa-d234c58c8868
Diffstat (limited to 'installer')
-rw-r--r--installer/OpenSLX/OSSetup/Engine.pm17
1 files changed, 11 insertions, 6 deletions
diff --git a/installer/OpenSLX/OSSetup/Engine.pm b/installer/OpenSLX/OSSetup/Engine.pm
index 61db7f85..e539e8e3 100644
--- a/installer/OpenSLX/OSSetup/Engine.pm
+++ b/installer/OpenSLX/OSSetup/Engine.pm
@@ -1004,13 +1004,18 @@ sub _expandSelection
my $selection = $self->{'distro-info'}->{selection}->{$selKey};
if ($selection->{base}) {
- # add all packages from base selection to the current one:
- my $base = $selection->{base};
- return if !exists $self->{'distro-info'}->{selection}->{$base};
- my $baseSelection = $self->{'distro-info'}->{selection}->{$base};
- $self->_expandSelection($base, $seen);
+ # add all packages from base selection(s) to the current one:
+ my $basePackages = '';
+ for my $base (split ',', $selection->{base}) {
+ my $baseSelection = $self->{'distro-info'}->{selection}->{$base}
+ or die _tr(
+ 'base-selection "%s" is unknown (referenced in "%s")!',
+ $base, $selKey
+ );
+ $self->_expandSelection($base, $seen);
+ $basePackages .= $baseSelection->{packages} || '';
+ }
my $packages = $selection->{packages} || '';
- my $basePackages = $baseSelection->{packages} || '';
$selection->{packages} = $basePackages . "\n" . $packages;
}
return;