summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--installer/OpenSLX/OSExport/BlockDevice/AoE.pm11
-rw-r--r--installer/OpenSLX/OSExport/BlockDevice/Base.pm13
-rw-r--r--installer/OpenSLX/OSExport/BlockDevice/DNBD2.pm11
-rw-r--r--installer/OpenSLX/OSExport/BlockDevice/NBD.pm11
-rw-r--r--installer/OpenSLX/OSExport/Distro/Base.pm4
-rw-r--r--installer/OpenSLX/OSExport/FileSystem/Base.pm7
-rw-r--r--installer/OpenSLX/OSExport/FileSystem/NFS.pm3
-rw-r--r--installer/OpenSLX/OSExport/FileSystem/SquashFS.pm3
-rw-r--r--installer/OpenSLX/OSSetup/Distro/Base.pm4
-rw-r--r--installer/OpenSLX/OSSetup/Engine.pm6
-rw-r--r--installer/OpenSLX/OSSetup/MetaPackager/Base.pm5
-rw-r--r--installer/OpenSLX/OSSetup/Packager/Base.pm5
-rw-r--r--lib/OpenSLX/Basics.pm10
-rw-r--r--lib/OpenSLX/ScopedResource.pm8
-rw-r--r--os-plugins/OpenSLX/OSPlugin/Base.pm5
-rw-r--r--os-plugins/plugins/desktop/OpenSLX/Distro/Base.pm3
-rw-r--r--os-plugins/plugins/infoscreen/OpenSLX/Distro/Base.pm4
-rw-r--r--os-plugins/plugins/kiosk/OpenSLX/Distro/Base.pm4
-rw-r--r--os-plugins/plugins/profile/OpenSLX/Distro/Base.pm14
-rw-r--r--os-plugins/plugins/qemukvm/OpenSLX/Distro/Base.pm4
-rw-r--r--os-plugins/plugins/syslog/OpenSLX/Distro/Base.pm4
-rw-r--r--os-plugins/plugins/virtualbox/OpenSLX/Distro/Base.pm4
-rw-r--r--os-plugins/plugins/vmware/OpenSLX/Distro/Base.pm4
-rw-r--r--os-plugins/plugins/x11vnc/OpenSLX/Distro/Base.pm4
-rw-r--r--os-plugins/plugins/xserver/OpenSLX/Distro/Base.pm3
-rw-r--r--x31
26 files changed, 134 insertions, 51 deletions
diff --git a/installer/OpenSLX/OSExport/BlockDevice/AoE.pm b/installer/OpenSLX/OSExport/BlockDevice/AoE.pm
index d3916d6a..cc7866b5 100644
--- a/installer/OpenSLX/OSExport/BlockDevice/AoE.pm
+++ b/installer/OpenSLX/OSExport/BlockDevice/AoE.pm
@@ -41,17 +41,6 @@ sub new
return bless $self, $class;
}
-sub initialize
-{
- my $self = shift;
- my $engine = shift;
- my $fs = shift;
-
- $self->{'engine'} = $engine;
- $self->{'fs'} = $fs;
- return;
-}
-
sub getExportPort
{
my $self = shift;
diff --git a/installer/OpenSLX/OSExport/BlockDevice/Base.pm b/installer/OpenSLX/OSExport/BlockDevice/Base.pm
index d2395e30..6469c2f4 100644
--- a/installer/OpenSLX/OSExport/BlockDevice/Base.pm
+++ b/installer/OpenSLX/OSExport/BlockDevice/Base.pm
@@ -18,6 +18,8 @@ use warnings;
our $VERSION = 1.01; # API-version . implementation-version
+use Scalar::Util qw( weaken );
+
use OpenSLX::Basics;
################################################################################
@@ -30,6 +32,17 @@ sub new
sub initialize
{
+ my $self = shift;
+ my $engine = shift;
+ my $fs = shift;
+
+ $self->{'engine'} = $engine;
+ weaken($self->{'engine'});
+ # avoid circular reference between block-device and its engine
+
+ $self->{'fs'} = $fs;
+ weaken($self->{'fs'});
+ # avoid circular reference between block-device and its file-system
}
sub getExportPort
diff --git a/installer/OpenSLX/OSExport/BlockDevice/DNBD2.pm b/installer/OpenSLX/OSExport/BlockDevice/DNBD2.pm
index 8dcc340b..1ad9471e 100644
--- a/installer/OpenSLX/OSExport/BlockDevice/DNBD2.pm
+++ b/installer/OpenSLX/OSExport/BlockDevice/DNBD2.pm
@@ -35,17 +35,6 @@ sub new
return bless $self, $class;
}
-sub initialize
-{
- my $self = shift;
- my $engine = shift;
- my $fs = shift;
-
- $self->{'engine'} = $engine;
- $self->{'fs'} = $fs;
- return;
-}
-
sub getExportPort
{
my $self = shift;
diff --git a/installer/OpenSLX/OSExport/BlockDevice/NBD.pm b/installer/OpenSLX/OSExport/BlockDevice/NBD.pm
index 73694fbc..58378751 100644
--- a/installer/OpenSLX/OSExport/BlockDevice/NBD.pm
+++ b/installer/OpenSLX/OSExport/BlockDevice/NBD.pm
@@ -35,17 +35,6 @@ sub new
return bless $self, $class;
}
-sub initialize
-{
- my $self = shift;
- my $engine = shift;
- my $fs = shift;
-
- $self->{'engine'} = $engine;
- $self->{'fs'} = $fs;
- return;
-}
-
sub getExportPort
{
my $self = shift;
diff --git a/installer/OpenSLX/OSExport/Distro/Base.pm b/installer/OpenSLX/OSExport/Distro/Base.pm
index 1b3edb63..aa24f8de 100644
--- a/installer/OpenSLX/OSExport/Distro/Base.pm
+++ b/installer/OpenSLX/OSExport/Distro/Base.pm
@@ -18,6 +18,8 @@ use warnings;
our $VERSION = 1.01; # API-version . implementation-version
+use Scalar::Util qw( weaken );
+
use OpenSLX::Basics;
################################################################################
@@ -34,6 +36,8 @@ sub initialize
my $engine = shift;
$self->{'engine'} = $engine;
+ weaken($self->{'engine'});
+ # avoid circular reference between distro and its engine
$self->initDistroInfo();
return;
diff --git a/installer/OpenSLX/OSExport/FileSystem/Base.pm b/installer/OpenSLX/OSExport/FileSystem/Base.pm
index 1014d596..05f3c6a0 100644
--- a/installer/OpenSLX/OSExport/FileSystem/Base.pm
+++ b/installer/OpenSLX/OSExport/FileSystem/Base.pm
@@ -19,6 +19,7 @@ use warnings;
our $VERSION = 1.01; # API-version . implementation-version
use File::Basename;
+use Scalar::Util qw( weaken );
use OpenSLX::Basics;
use OpenSLX::Utils;
@@ -33,6 +34,12 @@ sub new
sub initialize
{
+ my $self = shift;
+ my $engine = shift;
+
+ $self->{'engine'} = $engine;
+ weaken($self->{'engine'});
+ # avoid circular reference between file-system and its engine
}
sub exportVendorOS
diff --git a/installer/OpenSLX/OSExport/FileSystem/NFS.pm b/installer/OpenSLX/OSExport/FileSystem/NFS.pm
index b9d88689..9bd2ca87 100644
--- a/installer/OpenSLX/OSExport/FileSystem/NFS.pm
+++ b/installer/OpenSLX/OSExport/FileSystem/NFS.pm
@@ -40,7 +40,8 @@ sub initialize
my $self = shift;
my $engine = shift;
- $self->{'engine'} = $engine;
+ $self->SUPER::initialize($engine);
+
my $exportBasePath = "$openslxConfig{'public-path'}/export";
$self->{'export-path'} = "$exportBasePath/nfs/$engine->{'vendor-os-name'}";
return;
diff --git a/installer/OpenSLX/OSExport/FileSystem/SquashFS.pm b/installer/OpenSLX/OSExport/FileSystem/SquashFS.pm
index d9760642..a092ddf0 100644
--- a/installer/OpenSLX/OSExport/FileSystem/SquashFS.pm
+++ b/installer/OpenSLX/OSExport/FileSystem/SquashFS.pm
@@ -41,7 +41,8 @@ sub initialize
my $engine = shift;
my $blockDevice = shift || confess('need to pass in block-device!');
- $self->{'engine'} = $engine;
+ $self->SUPER::initialize($engine);
+
$self->{'block-device'} = $blockDevice;
my $exportBasePath = "$openslxConfig{'public-path'}/export";
$self->{'export-path'} = "$exportBasePath/sqfs/$engine->{'vendor-os-name'}";
diff --git a/installer/OpenSLX/OSSetup/Distro/Base.pm b/installer/OpenSLX/OSSetup/Distro/Base.pm
index 75979ac6..075c0818 100644
--- a/installer/OpenSLX/OSSetup/Distro/Base.pm
+++ b/installer/OpenSLX/OSSetup/Distro/Base.pm
@@ -21,6 +21,8 @@ our $VERSION = 1.01; # API-version . implementation-version
use Fcntl qw(:DEFAULT :flock);
use File::Basename;
use File::Path;
+use Scalar::Util qw( weaken );
+
use OpenSLX::Basics;
use OpenSLX::Utils;
@@ -38,6 +40,8 @@ sub initialize
my $engine = shift;
$self->{'engine'} = $engine;
+ weaken($self->{'engine'});
+ # avoid circular reference between distro and its engine
if ($engine->{'distro-name'} =~ m[x86_64]) {
# be careful to only try installing 64-bit systems if actually
diff --git a/installer/OpenSLX/OSSetup/Engine.pm b/installer/OpenSLX/OSSetup/Engine.pm
index 74a5ed7e..6a2697d2 100644
--- a/installer/OpenSLX/OSSetup/Engine.pm
+++ b/installer/OpenSLX/OSSetup/Engine.pm
@@ -411,7 +411,6 @@ sub startChrootedShellForVendorOS
}
);
- $self->_touchVendorOS();
vlog(
0,
_tr(
@@ -419,6 +418,8 @@ sub startChrootedShellForVendorOS
$self->{'vendor-os-name'}
)
);
+ $self->_touchVendorOS();
+
return;
}
@@ -457,7 +458,6 @@ sub callChrootedFunctionForVendorOS
}
);
- $self->_touchVendorOS();
vlog(
1,
_tr(
@@ -465,6 +465,8 @@ sub callChrootedFunctionForVendorOS
$self->{'vendor-os-name'}
)
);
+ $self->_touchVendorOS();
+
return 1;
}
diff --git a/installer/OpenSLX/OSSetup/MetaPackager/Base.pm b/installer/OpenSLX/OSSetup/MetaPackager/Base.pm
index af789888..f149d0f5 100644
--- a/installer/OpenSLX/OSSetup/MetaPackager/Base.pm
+++ b/installer/OpenSLX/OSSetup/MetaPackager/Base.pm
@@ -18,6 +18,8 @@ use warnings;
our $VERSION = 1.01; # API-version . implementation-version
+use Scalar::Util qw( weaken );
+
use OpenSLX::Basics;
################################################################################
@@ -34,6 +36,9 @@ sub initialize
my $engine = shift;
$self->{'engine'} = $engine;
+ weaken($self->{'engine'});
+ # avoid circular reference between meta-packager and its engine
+
return;
}
diff --git a/installer/OpenSLX/OSSetup/Packager/Base.pm b/installer/OpenSLX/OSSetup/Packager/Base.pm
index 747ba7e4..af600b8b 100644
--- a/installer/OpenSLX/OSSetup/Packager/Base.pm
+++ b/installer/OpenSLX/OSSetup/Packager/Base.pm
@@ -18,6 +18,8 @@ use warnings;
our $VERSION = 1.01; # API-version . implementation-version
+use Scalar::Util qw( weaken );
+
use OpenSLX::Basics;
################################################################################
@@ -34,6 +36,9 @@ sub initialize
my $engine = shift;
$self->{'engine'} = $engine;
+ weaken($self->{'engine'});
+ # avoid circular reference between packager and its engine
+
return;
}
diff --git a/lib/OpenSLX/Basics.pm b/lib/OpenSLX/Basics.pm
index e5bb4e4d..e125cd7e 100644
--- a/lib/OpenSLX/Basics.pm
+++ b/lib/OpenSLX/Basics.pm
@@ -90,6 +90,10 @@ I<slxsettings>-script, so please look there if you'd like to know more.
# options useful during development only:
#
'debug-confess' => '0',
+ #
+ # only settable programmatically:
+ #
+ 'log-pids' => '0',
#
# extended settings follow, which are only supported by slxsettings,
@@ -271,7 +275,11 @@ sub vlog
if (substr($str, -1, 1) ne "\n") {
$str .= "\n";
}
- print $openslxLog $str;
+ if ($openslxConfig{'log-pids'}) {
+ print $openslxLog "$$: $str";
+ } else {
+ print $openslxLog $str;
+ }
return;
}
diff --git a/lib/OpenSLX/ScopedResource.pm b/lib/OpenSLX/ScopedResource.pm
index 3334ecde..af912691 100644
--- a/lib/OpenSLX/ScopedResource.pm
+++ b/lib/OpenSLX/ScopedResource.pm
@@ -152,14 +152,14 @@ sub _release
{
my $self = shift;
- # ignore ctrl-c while we are trying to release the resource, as otherwise
- # the resource would be leaked
- local $SIG{INT} = 'IGNORE';
-
# only release the resource if invoked by the owning process
vlog(3, "process $$ tries to release resource $self->{name}");
return if $self->{owner} != $$;
+ # ignore ctrl-c while we are trying to release the resource, as otherwise
+ # the resource would be leaked
+ local $SIG{INT} = 'IGNORE';
+
# release the resource and unset owner
if ($self->{release}->()) {
vlog(1, "process $$ released resource $self->{name}");
diff --git a/os-plugins/OpenSLX/OSPlugin/Base.pm b/os-plugins/OpenSLX/OSPlugin/Base.pm
index d51a8b38..2af0f04c 100644
--- a/os-plugins/OpenSLX/OSPlugin/Base.pm
+++ b/os-plugins/OpenSLX/OSPlugin/Base.pm
@@ -60,6 +60,8 @@ implementation, please drop a mail to: ot@openslx.com, or join the IRC-channel
=cut
+use Scalar::Util qw( weaken );
+
use OpenSLX::Basics;
use OpenSLX::OSPlugin::Roster;
@@ -96,6 +98,9 @@ sub initialize
$self->{'os-plugin-engine'} = shift;
$self->{'distro'} = shift;
+
+ weaken($self->{'os-plugin-engine'});
+ # avoid circular reference between plugin and its engine
return;
}
diff --git a/os-plugins/plugins/desktop/OpenSLX/Distro/Base.pm b/os-plugins/plugins/desktop/OpenSLX/Distro/Base.pm
index eb2d1713..ef82f301 100644
--- a/os-plugins/plugins/desktop/OpenSLX/Distro/Base.pm
+++ b/os-plugins/plugins/desktop/OpenSLX/Distro/Base.pm
@@ -19,6 +19,7 @@ use warnings;
our $VERSION = 1.01; # API-version . implementation-version
use File::Basename;
+use Scalar::Util qw( weaken );
use OpenSLX::Basics;
use OpenSLX::Utils;
@@ -37,6 +38,8 @@ sub initialize
{
my $self = shift;
$self->{engine} = shift;
+ weaken($self->{'engine'});
+ # avoid circular reference between distro and its engine
return 1;
}
diff --git a/os-plugins/plugins/infoscreen/OpenSLX/Distro/Base.pm b/os-plugins/plugins/infoscreen/OpenSLX/Distro/Base.pm
index 6cc063b8..83570d7d 100644
--- a/os-plugins/plugins/infoscreen/OpenSLX/Distro/Base.pm
+++ b/os-plugins/plugins/infoscreen/OpenSLX/Distro/Base.pm
@@ -18,7 +18,7 @@ use warnings;
our $VERSION = 1.01; # API-version . implementation-version
-use File::Basename;
+use Scalar::Util qw( weaken );
use OpenSLX::Basics;
use OpenSLX::Utils;
@@ -37,6 +37,8 @@ sub initialize
{
my $self = shift;
$self->{engine} = shift;
+ weaken($self->{engine});
+ # avoid circular reference between plugin and its engine
return 1;
}
diff --git a/os-plugins/plugins/kiosk/OpenSLX/Distro/Base.pm b/os-plugins/plugins/kiosk/OpenSLX/Distro/Base.pm
index e9022cfc..8f7e506d 100644
--- a/os-plugins/plugins/kiosk/OpenSLX/Distro/Base.pm
+++ b/os-plugins/plugins/kiosk/OpenSLX/Distro/Base.pm
@@ -18,7 +18,7 @@ use warnings;
our $VERSION = 1.01; # API-version . implementation-version
-use File::Basename;
+use Scalar::Util qw( weaken );
use OpenSLX::Basics;
use OpenSLX::Utils;
@@ -37,6 +37,8 @@ sub initialize
{
my $self = shift;
$self->{engine} = shift;
+ weaken($self->{engine});
+ # avoid circular reference between plugin and its engine
return 1;
}
diff --git a/os-plugins/plugins/profile/OpenSLX/Distro/Base.pm b/os-plugins/plugins/profile/OpenSLX/Distro/Base.pm
index 3b5508dc..5588a177 100644
--- a/os-plugins/plugins/profile/OpenSLX/Distro/Base.pm
+++ b/os-plugins/plugins/profile/OpenSLX/Distro/Base.pm
@@ -18,7 +18,7 @@ use warnings;
our $VERSION = 1.01; # API-version . implementation-version
-use File::Basename;
+use Scalar::Util qw( weaken );
use OpenSLX::Basics;
use OpenSLX::Utils;
@@ -37,13 +37,15 @@ sub initialize
{
my $self = shift;
$self->{engine} = shift;
+ weaken($self->{engine});
+ # avoid circular reference between plugin and its engine
return 1;
}
sub getXsessionDPath
{
- my $self = shift;
+ my $self = shift;
return "/etc/X11/Xsession.d/10slx-home_env";
}
@@ -51,21 +53,21 @@ sub getXsessionDPath
sub getProfileDPAth
{
- my $self = shift;
+ my $self = shift;
return "/etc/profile.d/slx-kdehome.sh";
}
sub getKdeHome
{
- my $self = shift;
+ my $self = shift;
return ".openslx/unknown/kde";
}
sub getGconfPathConfig
{
- my $self = shift;
+ my $self = shift;
return "/etc/gconf/2/path";
}
@@ -73,7 +75,7 @@ sub getGconfPathConfig
sub getGconfHome
{
- my $self = shift;
+ my $self = shift;
return ".openslx/unknown/gconf";
}
diff --git a/os-plugins/plugins/qemukvm/OpenSLX/Distro/Base.pm b/os-plugins/plugins/qemukvm/OpenSLX/Distro/Base.pm
index 970a6379..1e3a9bfe 100644
--- a/os-plugins/plugins/qemukvm/OpenSLX/Distro/Base.pm
+++ b/os-plugins/plugins/qemukvm/OpenSLX/Distro/Base.pm
@@ -18,6 +18,8 @@ use warnings;
our $VERSION = 1.01; # API-version . implementation-version
+use Scalar::Util qw( weaken );
+
use OpenSLX::Basics;
use OpenSLX::Utils;
@@ -36,6 +38,8 @@ sub initialize
{
my $self = shift;
my $engine = shift;
+ weaken($self->{engine});
+ # avoid circular reference between plugin and its engine
return 1;
}
diff --git a/os-plugins/plugins/syslog/OpenSLX/Distro/Base.pm b/os-plugins/plugins/syslog/OpenSLX/Distro/Base.pm
index 48ba5eaf..b7afec61 100644
--- a/os-plugins/plugins/syslog/OpenSLX/Distro/Base.pm
+++ b/os-plugins/plugins/syslog/OpenSLX/Distro/Base.pm
@@ -18,6 +18,8 @@ use warnings;
our $VERSION = 1.01; # API-version . implementation-version
+use Scalar::Util qw( weaken );
+
use OpenSLX::Basics;
use OpenSLX::Utils;
@@ -35,6 +37,8 @@ sub initialize
{
my $self = shift;
$self->{engine} = shift;
+ weaken($self->{engine});
+ # avoid circular reference between plugin and its engine
return 1;
}
diff --git a/os-plugins/plugins/virtualbox/OpenSLX/Distro/Base.pm b/os-plugins/plugins/virtualbox/OpenSLX/Distro/Base.pm
index c5b493d7..6baa6968 100644
--- a/os-plugins/plugins/virtualbox/OpenSLX/Distro/Base.pm
+++ b/os-plugins/plugins/virtualbox/OpenSLX/Distro/Base.pm
@@ -18,6 +18,8 @@ use warnings;
our $VERSION = 1.01; # API-version . implementation-version
+use Scalar::Util qw( weaken );
+
use OpenSLX::Basics;
use OpenSLX::Utils;
@@ -36,6 +38,8 @@ sub initialize
{
my $self = shift;
my $engine = shift;
+ weaken($self->{engine});
+ # avoid circular reference between plugin and its engine
return 1;
}
diff --git a/os-plugins/plugins/vmware/OpenSLX/Distro/Base.pm b/os-plugins/plugins/vmware/OpenSLX/Distro/Base.pm
index 365f8561..278ccf14 100644
--- a/os-plugins/plugins/vmware/OpenSLX/Distro/Base.pm
+++ b/os-plugins/plugins/vmware/OpenSLX/Distro/Base.pm
@@ -18,6 +18,8 @@ use warnings;
our $VERSION = 1.01; # API-version . implementation-version
+use Scalar::Util qw( weaken );
+
use OpenSLX::Basics;
use OpenSLX::Utils;
@@ -36,6 +38,8 @@ sub initialize
{
my $self = shift;
my $engine = shift;
+ weaken($self->{engine});
+ # avoid circular reference between plugin and its engine
return 1;
}
diff --git a/os-plugins/plugins/x11vnc/OpenSLX/Distro/Base.pm b/os-plugins/plugins/x11vnc/OpenSLX/Distro/Base.pm
index e0ab45ae..1e6a97a5 100644
--- a/os-plugins/plugins/x11vnc/OpenSLX/Distro/Base.pm
+++ b/os-plugins/plugins/x11vnc/OpenSLX/Distro/Base.pm
@@ -18,7 +18,7 @@ use warnings;
our $VERSION = 1.01; # API-version . implementation-version
-use File::Basename;
+use Scalar::Util qw( weaken );
use OpenSLX::Basics;
use OpenSLX::Utils;
@@ -37,6 +37,8 @@ sub initialize
{
my $self = shift;
$self->{engine} = shift;
+ weaken($self->{engine});
+ # avoid circular reference between plugin and its engine
return 1;
}
diff --git a/os-plugins/plugins/xserver/OpenSLX/Distro/Base.pm b/os-plugins/plugins/xserver/OpenSLX/Distro/Base.pm
index 1cd26b56..b0fc67e3 100644
--- a/os-plugins/plugins/xserver/OpenSLX/Distro/Base.pm
+++ b/os-plugins/plugins/xserver/OpenSLX/Distro/Base.pm
@@ -20,6 +20,7 @@ our $VERSION = 1.01; # API-version . implementation-version
use File::Basename;
use File::Path;
+use Scalar::Util qw( weaken );
use OpenSLX::Basics;
use OpenSLX::Utils;
@@ -38,6 +39,8 @@ sub initialize
{
my $self = shift;
$self->{engine} = shift;
+ weaken($self->{engine});
+ # avoid circular reference between plugin and its engine
return 1;
}
diff --git a/x b/x
new file mode 100644
index 00000000..6fd85fca
--- /dev/null
+++ b/x
@@ -0,0 +1,31 @@
+
+demuxing system 1 : suse-11.1-kiwi::nfs
+! system suse-11.1-kiwi::nfs: desktop::gdm is 0, so using GDM as desktop manager is not allowed for this vendor-OS!
+! system suse-11.1-kiwi::nfs: GNOME is not installed in vendor-OS, so using it as desktop kind wouldn't work!
+! system suse-11.1-kiwi::nfs: desktop::theme 'openslx' does not refer to a supported theme!
+! system suse-11.1-kiwi::nfs: Supported themes are:
+active plugins: xserver,desktop
+creating boot environment for preboot
+! client cdboot: desktop::gdm is 0, so using GDM as desktop manager is not allowed for this vendor-OS!
+! client cdboot: GNOME is not installed in vendor-OS, so using it as desktop kind wouldn't work!
+! client cdboot: desktop::theme 'openslx' does not refer to a supported theme!
+! client cdboot: Supported themes are:
+creating boot environment for pxe
+client 'test1' activates additional plugins: example
+! client test1: desktop::gdm is 0, so using GDM as desktop manager is not allowed for this vendor-OS!
+! client test1: GNOME is not installed in vendor-OS, so using it as desktop kind wouldn't work!
+! client test1: desktop::theme 'openslx' does not refer to a supported theme!
+! client test1: Supported themes are:
+
+demuxing system 2 : ubuntu-9.04-clone::nfs
+! setting kernel of system 'ubuntu-9.04-clone::nfs' to 'vmlinuz-2.6.28-11-generic'!
+active plugins: <none>
+creating boot environment for preboot
+creating boot environment for pxe
+
+creating CD-image for client cdboot (based on ubuntu-9.04-clone::nfs) ...
+
+wrote 2 system-specific and 3 client-specific configurations
+4 initramfs were created
+all systems ok
+all boot-environments ok