diff options
author | Bastian Wissler | 2009-06-17 15:19:25 +0200 |
---|---|---|
committer | Bastian Wissler | 2009-06-17 15:19:25 +0200 |
commit | 87c90a67a367bf11e8a8aa4ffffbf245d15a78a1 (patch) | |
tree | 5f3875751b1d7b0a606791f552ff819daced7d6a /os-plugins | |
parent | fixed a wrong package-name in xserver::OpenSLX::OSPlugin::Debian (diff) | |
download | core-87c90a67a367bf11e8a8aa4ffffbf245d15a78a1.tar.gz core-87c90a67a367bf11e8a8aa4ffffbf245d15a78a1.tar.xz core-87c90a67a367bf11e8a8aa4ffffbf245d15a78a1.zip |
vmchooser various changes:
* changed default.desktop to call the binary
* deleted vmchooser.sh (not needed any more,
as vmchooser binary reads from stage3 variables)
-> see Feature #429
* added distro specific classes to copy default.desktop
distro specific ;-) - Feature #268
git-svn-id: http://svn.openslx.org/svn/openslx/openslx/trunk@2962 95ad53e4-c205-0410-b2fa-d234c58c8868
Diffstat (limited to 'os-plugins')
8 files changed, 221 insertions, 33 deletions
diff --git a/os-plugins/plugins/vmchooser/OpenSLX/Distro/Base.pm b/os-plugins/plugins/vmchooser/OpenSLX/Distro/Base.pm new file mode 100644 index 00000000..ba8a32b0 --- /dev/null +++ b/os-plugins/plugins/vmchooser/OpenSLX/Distro/Base.pm @@ -0,0 +1,64 @@ +# Copyright (c) 2008 - 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/ +# ----------------------------------------------------------------------------- +# vmchooser/OpenSLX/Distro/Base.pm +# - provides base implementation of the Distro API for the vmchooser plugin. +# ----------------------------------------------------------------------------- +package vmchooser::OpenSLX::Distro::Base; + +use strict; +use warnings; + +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; + +################################################################################ +### interface methods +################################################################################ +sub new +{ + my $class = shift; + my $self = {}; + return bless $self, $class; +} + +sub initialize +{ + my $self = shift; + $self->{engine} = shift; + weaken($self->{engine}); + # avoid circular reference between plugin and its engine + + return 1; +} + + +sub copyDefaultSession +{ + my $self = shift; + my $pluginroot = shift; + + + # Take the default path of SuSE + # (as we have the most experience with it) + if( -f "/etc/X11/sessions/default.desktop") { + rename("/etc/X11/sessions/default.desktop", + "/etc/X11/sessions/default.desktop.back") + } + copyFile("$pluginroot/default.desktop","/etc/X11/sessions"); + + return 1; +}
\ No newline at end of file diff --git a/os-plugins/plugins/vmchooser/OpenSLX/Distro/Debian.pm b/os-plugins/plugins/vmchooser/OpenSLX/Distro/Debian.pm new file mode 100644 index 00000000..173f249e --- /dev/null +++ b/os-plugins/plugins/vmchooser/OpenSLX/Distro/Debian.pm @@ -0,0 +1,49 @@ +# Copyright (c) 2008 - 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/ +# ----------------------------------------------------------------------------- +# vmchooser/OpenSLX/Distro/Debian.pm +# - provides Debian implementation of the Distro API for the vmchooser plugin. +# ----------------------------------------------------------------------------- +package vmchooser::OpenSLX::Distro::Debian; + +use strict; +use warnings; + +our $VERSION = 1.01; # API-version . implementation-version + +use base qw(vmchooser::OpenSLX::Distro::Base); + +use File::Basename; +use File::Path; +use Scalar::Util qw( weaken ); + +use OpenSLX::Basics; +use OpenSLX::Utils; + +################################################################################ +### interface methods +################################################################################ + +sub copyDefaultSession +{ + my $self = shift; + my $pluginroot = shift; + + + # Take the default path of SuSE + # (as we have the most experience with it) + if( -f "/usr/share/xsessions/default.desktop") { + rename("/usr/share/xsessions/default.desktop", + "/usr/share/xsessions/default.desktop.back") + } + copyFile("$pluginroot/default.desktop","/usr/share/xsessions"); + + return 1; +}
\ No newline at end of file diff --git a/os-plugins/plugins/vmchooser/OpenSLX/Distro/Suse.pm b/os-plugins/plugins/vmchooser/OpenSLX/Distro/Suse.pm new file mode 100644 index 00000000..9e0bf551 --- /dev/null +++ b/os-plugins/plugins/vmchooser/OpenSLX/Distro/Suse.pm @@ -0,0 +1,49 @@ +# Copyright (c) 2008 - 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/ +# ----------------------------------------------------------------------------- +# vmchooser/OpenSLX/Distro/Suse.pm +# - provides Suse implementation of the Distro API for the vmchooser plugin. +# ----------------------------------------------------------------------------- +package vmchooser::OpenSLX::Distro::Suse; + +use strict; +use warnings; + +our $VERSION = 1.01; # API-version . implementation-version + +use base qw(vmchooser::OpenSLX::Distro::Base); + +use File::Basename; +use File::Path; +use Scalar::Util qw( weaken ); + +use OpenSLX::Basics; +use OpenSLX::Utils; + +################################################################################ +### interface methods +################################################################################ + +sub copyDefaultSession +{ + my $self = shift; + my $pluginroot = shift; + + + # Take the default path of SuSE + # (as we have the most experience with it) + if( -f "/etc/X11/sessions/default.desktop") { + rename("/etc/X11/sessions/default.desktop", + "/etc/X11/sessions/default.desktop.back") + } + copyFile("$pluginroot/default.desktop","/etc/X11/sessions"); + + return 1; +}
\ No newline at end of file diff --git a/os-plugins/plugins/vmchooser/OpenSLX/Distro/Ubuntu.pm b/os-plugins/plugins/vmchooser/OpenSLX/Distro/Ubuntu.pm new file mode 100644 index 00000000..1677321f --- /dev/null +++ b/os-plugins/plugins/vmchooser/OpenSLX/Distro/Ubuntu.pm @@ -0,0 +1,50 @@ +# Copyright (c) 2008 - 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/ +# ----------------------------------------------------------------------------- +# vmchooser/OpenSLX/Distro/Ubuntu.pm +# - provides Ubuntu implementation of the Distro API for the vmchooser plugin. +# ----------------------------------------------------------------------------- +package vmchooser::OpenSLX::Distro::Ubuntu; + +use strict; +use warnings; + +our $VERSION = 1.01; # API-version . implementation-version + +use base qw(vmchooser::OpenSLX::Distro::Base); + +use File::Basename; +use File::Path; +use Scalar::Util qw( weaken ); + +use OpenSLX::Basics; +use OpenSLX::Utils; + +################################################################################ +### interface methods +################################################################################ + + +sub copyDefaultSession +{ + my $self = shift; + my $pluginroot = shift; + + + # Take the default path of SuSE + # (as we have the most experience with it) + if( -f "/usr/share/xsessions/default.desktop") { + rename("/usr/share/xsessions/default.desktop", + "/usr/share/xsessions/default.desktop.back") + } + copyFile("$pluginroot/default.desktop","/usr/share/xsessions"); + + return 1; +}
\ No newline at end of file diff --git a/os-plugins/plugins/vmchooser/OpenSLX/OSPlugin/vmchooser.pm b/os-plugins/plugins/vmchooser/OpenSLX/OSPlugin/vmchooser.pm index 096b6d0f..9ef9f7c4 100644 --- a/os-plugins/plugins/vmchooser/OpenSLX/OSPlugin/vmchooser.pm +++ b/os-plugins/plugins/vmchooser/OpenSLX/OSPlugin/vmchooser.pm @@ -10,6 +10,8 @@ # ----------------------------------------------------------------------------- # vmchooser.pm # - allows user to pick from a list of virtual machine images +# +# - serves as base for virtualizer plugins / and requires one of these # ----------------------------------------------------------------------------- package OpenSLX::OSPlugin::vmchooser; @@ -103,9 +105,12 @@ sub installationPhase foreach my $file ( qw( vmchooser printer.sh scanner.sh xmlfilter.sh default.desktop vmchooser.sh mesgdisp run-virt.sh ) ) { copyFile("$pluginBasePath/$file", "$pluginRepoPath/"); - chmod 0755, "$pluginRepoPath/$file"; + chmod 0755, "$pluginRepoPath/$file"; } + # set ditro-specific default session + $self->{distro}->copyDefaultSession($pluginRepoPath); + return; } diff --git a/os-plugins/plugins/vmchooser/XX_vmchooser.sh b/os-plugins/plugins/vmchooser/XX_vmchooser.sh index 716c42f8..23ef4611 100644 --- a/os-plugins/plugins/vmchooser/XX_vmchooser.sh +++ b/os-plugins/plugins/vmchooser/XX_vmchooser.sh @@ -17,11 +17,7 @@ CONFFILE="/initramfs/plugin-conf/vmchooser.conf" if [ -e $CONFFILE ]; then . $CONFFILE if [ $vmchooser_active -ne 0 ] ; then - [ $DEBUGLEVEL -gt 0 ] && echo "vmchooser: copying default .desktop file ..." - # we expect to have this directory to be interpreted by gdm/kdm - testmkd /mnt/etc/X11/sessions - cp /mnt/opt/openslx/plugin-repo/vmchooser/default.desktop \ - /mnt/etc/X11/sessions/ + [ $DEBUGLEVEL -gt 0 ] && echo "vmchooser: copying stage3 configuration file ..." testmkd /mnt/etc/opt/openslx cp $CONFFILE /mnt/etc/opt/openslx/vmchooser-stage3.conf diff --git a/os-plugins/plugins/vmchooser/files/default.desktop b/os-plugins/plugins/vmchooser/files/default.desktop index bff6a820..91540228 100644 --- a/os-plugins/plugins/vmchooser/files/default.desktop +++ b/os-plugins/plugins/vmchooser/files/default.desktop @@ -4,7 +4,7 @@ Name=virtual machine chooser (default) Name[de]=Virtuelle Maschine auswählen Comment=This session starts the vm session chooser Comment[de]=Diese Sitzung startet das Auswahlmenü für die vorhandenen Sitzungen -Exec=/opt/openslx/plugin-repo/vmchooser/vmchooser.sh -TryExec=/opt/openslx/plugin-repo/vmchooser/vmchooser.sh +Exec=/opt/openslx/plugin-repo/vmchooser/vmchooser +TryExec=/opt/openslx/plugin-repo/vmchooser/vmchooser Icon= Type=Application diff --git a/os-plugins/plugins/vmchooser/files/vmchooser.sh b/os-plugins/plugins/vmchooser/files/vmchooser.sh deleted file mode 100644 index 8a47f9e2..00000000 --- a/os-plugins/plugins/vmchooser/files/vmchooser.sh +++ /dev/null @@ -1,25 +0,0 @@ -#!/bin/sh -# ----------------------------------------------------------------------------- -# Copyright (c) 2007..2009 - RZ Uni FR -# Copyright (c) 2007..2009 - 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/ -# ----------------------------------------------------------------------------- -# vmchooser.sh -# - This is a generic wrapper script for the vmchooser tool. If you would -# like to apply any filters for the sessions to be shown to the logged in -# user, you could use a different path to the sessions *.xml's ... -# ----------------------------------------------------------------------------- - -if [ -e "/etc/opt/openslx/vmchooser-stage3.conf" ]; then - . /etc/opt/openslx/vmchooser-stage3.conf -fi - -/opt/openslx/plugin-repo/vmchooser/vmchooser -p${vmchooser_xmlpath} - |