From 13e84ec837ebf22233391aee93546bc72094357a Mon Sep 17 00:00:00 2001 From: Volker Uhrig Date: Sat, 5 Jul 2008 18:58:59 +0000 Subject: * rewrite for vmpl1.0. tested on suse-10.2 with success * asks now if a installed vmplX.0 player should be reinstalled * writes now player version into /etc/vmware/version git-svn-id: http://svn.openslx.org/svn/openslx/openslx/trunk@1904 95ad53e4-c205-0410-b2fa-d234c58c8868 --- os-plugins/plugins/vmware/OpenSLX/Distro/Base.pm | 4 +- os-plugins/plugins/vmware/OpenSLX/Distro/Debian.pm | 4 +- os-plugins/plugins/vmware/OpenSLX/Distro/Gentoo.pm | 4 +- os-plugins/plugins/vmware/OpenSLX/Distro/Suse.pm | 4 +- .../plugins/vmware/OpenSLX/OSPlugin/vmware.pm | 7 ++- os-plugins/plugins/vmware/XX_vmware.sh | 13 ++++++ os-plugins/plugins/vmware/files/install-vmpl.sh | 50 ++++++++++++++++------ 7 files changed, 68 insertions(+), 18 deletions(-) diff --git a/os-plugins/plugins/vmware/OpenSLX/Distro/Base.pm b/os-plugins/plugins/vmware/OpenSLX/Distro/Base.pm index d453e106..fa9546ad 100644 --- a/os-plugins/plugins/vmware/OpenSLX/Distro/Base.pm +++ b/os-plugins/plugins/vmware/OpenSLX/Distro/Base.pm @@ -74,7 +74,9 @@ sub fillRunlevelScript # load module manuall vmware_kind_path=/opt/openslx/plugin-repo/vmware/\${vmware_kind}/ module_src_path=\${vmware_kind_path}/vmroot/modules - insmod \${module_src_path}/vmblock.ko + if [ \${vmware_kind} != "vmpl1.0" ]; then + insmod \${module_src_path}/vmblock.ko + fi insmod \${module_src_path}/vmmon.ko insmod \${module_src_path}/vmnet.ko fi diff --git a/os-plugins/plugins/vmware/OpenSLX/Distro/Debian.pm b/os-plugins/plugins/vmware/OpenSLX/Distro/Debian.pm index 90a5de85..88ba695e 100644 --- a/os-plugins/plugins/vmware/OpenSLX/Distro/Debian.pm +++ b/os-plugins/plugins/vmware/OpenSLX/Distro/Debian.pm @@ -61,7 +61,9 @@ sub fillRunlevelScript # load module manuall vmware_kind_path=/opt/openslx/plugin-repo/vmware/\${vmware_kind}/ module_src_path=\${vmware_kind_path}/vmroot/modules - insmod \${module_src_path}/vmblock.ko + if [ \${vmware_kind} != "vmpl1.0" ]; then + insmod \${module_src_path}/vmblock.ko + fi insmod \${module_src_path}/vmmon.ko insmod \${module_src_path}/vmnet.ko fi diff --git a/os-plugins/plugins/vmware/OpenSLX/Distro/Gentoo.pm b/os-plugins/plugins/vmware/OpenSLX/Distro/Gentoo.pm index f3ded970..5b865532 100644 --- a/os-plugins/plugins/vmware/OpenSLX/Distro/Gentoo.pm +++ b/os-plugins/plugins/vmware/OpenSLX/Distro/Gentoo.pm @@ -57,7 +57,9 @@ sub fillRunlevelScript # load module manuall vmware_kind_path=/opt/openslx/plugin-repo/vmware/\${vmware_kind}/ module_src_path=\${vmware_kind_path}/vmroot/modules - insmod \${module_src_path}/vmblock.ko + if [ \${vmware_kind} != "vmpl1.0" ]; then + insmod \${module_src_path}/vmblock.ko + fi insmod \${module_src_path}/vmmon.ko insmod \${module_src_path}/vmnet.ko fi diff --git a/os-plugins/plugins/vmware/OpenSLX/Distro/Suse.pm b/os-plugins/plugins/vmware/OpenSLX/Distro/Suse.pm index a6f2dc03..d758c002 100644 --- a/os-plugins/plugins/vmware/OpenSLX/Distro/Suse.pm +++ b/os-plugins/plugins/vmware/OpenSLX/Distro/Suse.pm @@ -62,7 +62,9 @@ sub fillRunlevelScript # load module manuall vmware_kind_path=/opt/openslx/plugin-repo/vmware/\${vmware_kind}/ module_src_path=\${vmware_kind_path}/vmroot/modules - insmod \${module_src_path}/vmblock.ko + if [ \${vmware_kind} != "vmpl1.0" ]; then + insmod \${module_src_path}/vmblock.ko + fi insmod \${module_src_path}/vmmon.ko insmod \${module_src_path}/vmnet.ko fi diff --git a/os-plugins/plugins/vmware/OpenSLX/OSPlugin/vmware.pm b/os-plugins/plugins/vmware/OpenSLX/OSPlugin/vmware.pm index 2903a083..a23bba8d 100644 --- a/os-plugins/plugins/vmware/OpenSLX/OSPlugin/vmware.pm +++ b/os-plugins/plugins/vmware/OpenSLX/OSPlugin/vmware.pm @@ -270,6 +270,11 @@ sub checkStage3AttrValues ); } + if ($vm_kind eq 'local' && + ! -d "/opt/openslx/plugin-repo/vmware/local") { + "local vmware installation not configured by slxos-plugin!" + } + if ($vm_kind eq 'vmpl2.0' && ! -d "/opt/openslx/plugin-repo/vmware/vmpl2.0/vmroot") { push @problems, _tr( @@ -280,7 +285,7 @@ sub checkStage3AttrValues if ($vm_kind eq 'vmpl1.0' && ! -d "/opt/openslx/plugin-repo/vmware/vmpl1.0/vmroot") { push @problems, _tr( - "No OpenSLX installation of VMware Player 2 found or installation failed. Using it as virtual machine wouldn't work!" + "No OpenSLX installation of VMware Player 1 found or installation failed. Using it as virtual machine wouldn't work!" ); } diff --git a/os-plugins/plugins/vmware/XX_vmware.sh b/os-plugins/plugins/vmware/XX_vmware.sh index 8fd62baa..475df8c4 100644 --- a/os-plugins/plugins/vmware/XX_vmware.sh +++ b/os-plugins/plugins/vmware/XX_vmware.sh @@ -252,6 +252,19 @@ $(ipcalc -m $vmip/$vmpx|sed s/.*=//) {" \ chmod 644 /mnt/etc/vmware/config fi + # write version information for image problem (v2 images don't run + # on v1 players + if [ "${vmware_kind}" = "vmpl1.0" ]; then + echo "vmplversion=1" > /mnt/etc/vmware/version + fi + if [ "${vmware_kind}" = "vmpl2.0" ]; then + echo "vmplversion=2" > /mnt/etc/vmware/version + fi + if [ "${vmware_kind}" != "local" ]; then + version=$(strings /usr/lib/vmware/bin/vmplayer|head -1|cut -c 1) + echo "vmplversion=${version}" > /mnt/etc/vmware/version + fi + [ $DEBUGLEVEL -gt 0 ] && echo "done with 'vmware' os-plugin ..." fi diff --git a/os-plugins/plugins/vmware/files/install-vmpl.sh b/os-plugins/plugins/vmware/files/install-vmpl.sh index d2b89004..86ffb7a0 100644 --- a/os-plugins/plugins/vmware/files/install-vmpl.sh +++ b/os-plugins/plugins/vmware/files/install-vmpl.sh @@ -1,9 +1,23 @@ #!/bin/sh +### Check if player are still installed +if [ -d /opt/openslx/plugin-repo/vmware/$1/vmroot ]; then + echo " * $1 seems to be installed. There shouldn't be a need for a new installation." + echo " If you want to reinstall $1 press \"y\" else we will exit" + read + if [ "${REPLY}" != "y" ]; then + echo " * $1 is already installed. Nothing to do." + exit + fi + echo " * $1 will be reinstalled" +fi + + +### Now define values if [ "$1" == "vmpl1.0" ]; then vmplversion="vmpl1.0" - url=http://download3.vmware.com/software/vmplayer/VMware-player-2.0.4-93057.i386.tar.gz - tgzfile=VMware-player-2.0.4-93057.i386.tar.gz + url=http://download3.vmware.com/software/vmplayer/VMware-player-1.0.7-91707.tar.gz + tgzfile=VMware-player-1.0.7-91707.tar.gz else if [ "$1" == "vmpl2.0" ]; then vmplversion="vmpl2.0" url=http://download3.vmware.com/software/vmplayer/VMware-player-2.0.4-93057.i386.tar.gz @@ -11,6 +25,11 @@ else if [ "$1" == "vmpl2.0" ]; then fi fi + +### Give informations about the EULA +echo "" +echo "EULA information for $vmplversion" +echo "" echo "This script will download and install vmplayer from http://www.vmware.com/" echo "Please go to http://vmware.com/download/player/player_reg.html" echo "and ..." @@ -25,6 +44,8 @@ echo read echo + +### EULA information passed, install depending player now if [ "${REPLY}" == "YES" ]; then echo " * Downloading vmplayer as ${vmplversion} now. This may take a while" @@ -44,7 +65,9 @@ if [ "${REPLY}" == "YES" ]; then mkdir -p vmroot/lib mv vmware-player-distrib/lib vmroot/lib/vmware mv vmware-player-distrib/bin vmroot/ - mv vmware-player-distrib/sbin vmroot/ + if [ "${vmplversion}" != "vmpl1.0" ]; then + mv vmware-player-distrib/sbin vmroot/ + fi mv vmware-player-distrib/doc vmroot/ rm -rf vmware-player-distrib/ @@ -82,19 +105,24 @@ if [ "${REPLY}" == "YES" ]; then cd vmroot/lib/vmware/modules/source tar xf vmnet.tar tar xf vmmon.tar - tar xf vmblock.tar + if [ "${vmplversion}" != "vmpl1.0" ]; then + tar xf vmblock.tar + fi echo " * building vmblock module" - cd vmblock-only/ # TODO: check if /boot/vmlinuz is available if we get the kernel version this way # perhaps we don't need a check... perhaps openslx always use # /boot/vmlinuz # This problem happens 3 times. see below! # TODO: error check if build environment isn't installed... - sed -i "s%^VM_UNAME = .*%VM_UNAME = $(ls /boot/vmlinuz*|grep -v -e "^/boot/vmlinuz$$"|sed 's,/boot/vmlinuz-,,'|sort|tail -n 1)%" Makefile - make -s - cp vmblock.ko vmblock.o ../../../../../modules - cd .. + #TODO: vmblock only v2 + if [ "${vmplversion}" != "vmpl1.0" ]; then + cd vmblock-only/ + sed -i "s%^VM_UNAME = .*%VM_UNAME = $(ls /boot/vmlinuz*|grep -v -e "^/boot/vmlinuz$$"|sed 's,/boot/vmlinuz-,,'|sort|tail -n 1)%" Makefile + make -s + cp vmblock.ko vmblock.o ../../../../../modules + cd .. + fi echo " * building vmmon module" cd vmmon-only @@ -113,10 +141,6 @@ if [ "${REPLY}" == "YES" ]; then echo " * setting up EULA" mv vmroot/doc/EULA vmroot/lib/vmware/share/EULA.txt - # TODO: remove. just for debug reasons - #echo "Press any return to process" - #read - echo " * finishing installation" else -- cgit v1.2.3-55-g7522