summaryrefslogblamecommitdiffstats
path: root/os-plugins/plugins/vmware/files/install-vmpl.sh
blob: 0708de8cb2e5f3349d9101458d60a09b713157aa (plain) (tree)
1
2
3
4
5

         

                                   
                                       








                                                                                          



                     
                              













































































                                                                                                                      
  
 













                                                                                                                                           
 





                                                                                                                                         
    





                                                                                                                                         
        

                                                   
 
                                  
#!/bin/sh

cd /opt/openslx/plugin-repo/vmware/

### Check if player are still installed
if [ -d 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"
  tgzfile=$(ls packages/VMware-player-1.0.*|sort|tail -n 1)
elif [ "$1" == "vmpl2.0" ]; then
  vmplversion="vmpl2.0"
  tgzfile=$(ls packages/VMware-player-2.0.*|sort|tail -n 1)
else
    echo "Attribute of install-vmpl.sh isn't valid!"
    echo "This shouldn't happen! Fix vmware.pm!"
    exit 1;
fi


### Main installation part
cd ${vmplversion}

echo "   * Unpacking vmplayer ${vmplversion}"
tar xfz ../${tgzfile}
# TODO: errorcheck if tgz wasnt downloaded properly.
#       ask on mailinglist if theres a way how to handle it
#       in preInstallation() "exit 1" is enough. Perhaps it will work
#       here, too. Try first, and then document it in the wiki

# reduce some errors
echo "   * deleting old files if available"
rm -rf vmroot

echo "   * copying files..."
mkdir vmroot
mkdir -p vmroot/modules
mkdir -p vmroot/lib
mv vmware-player-distrib/lib vmroot/lib/vmware
mv vmware-player-distrib/bin vmroot/
if [ "${vmplversion}" != "vmpl1.0" ]; then
  mv vmware-player-distrib/sbin vmroot/
fi
mv vmware-player-distrib/doc vmroot/
rm -rf vmware-player-distrib/

echo "   * fixing file permission"
chmod 04755 vmroot/lib/vmware/bin/vmware-vmx 

# I don't want to understand what vmware is doing, but without this
# step we need to have LD_LIBRARY_PATH with 53 entrys. welcome to
# library hell
echo "   * fixing librarys..."
cd vmroot/lib/vmware/lib
mkdir test
mv lib* test
mv test/lib*/* .
rm -rf test
cd ../../../..

echo "   * fixing gdk and pango config files"
sed -i \
  "s,/build/mts/.*/vmui/../libdir/libconf,/opt/openslx/plugin-repo/vmware/${vmplversion}/vmroot/lib/vmware/libconf," \
  vmroot/lib/vmware/libconf/etc/gtk-2.0/gdk-pixbuf.loaders
sed -i \
  "s,/build/mts/.*/vmui/../libdir/libconf,/opt/openslx/plugin-repo/vmware/${vmplversion}/vmroot/lib/vmware/libconf," \
  vmroot/lib/vmware/libconf/etc/gtk-2.0/gtk.immodules
sed -i \
  "s,/build/mts/.*/vmui/../libdir/libconf,/opt/openslx/plugin-repo/vmware/${vmplversion}/vmroot/lib/vmware/libconf," \
  vmroot/lib/vmware/libconf/etc/pango/pango.modules
sed -i \
  "s,/build/mts/.*/vmui/../libdir/libconf,/opt/openslx/plugin-repo/vmware/${vmplversion}/vmroot/lib/vmware/libconf," \
  vmroot/lib/vmware/libconf/etc/pango/pangorc
sed -i \
  "s,/etc/pango/pango/,/etc/pango/," \
  vmroot/lib/vmware/libconf/etc/pango/pangorc

echo "   * creating /etc/vmware"
mkdir -p /etc/vmware

echo "   * unpacking kernel modules"
cd vmroot/lib/vmware/modules/source
tar xf vmnet.tar
tar xf vmmon.tar
if [ "${vmplversion}" != "vmpl1.0" ]; then
  tar xf vmblock.tar
fi

echo "   * building vmblock module"
# 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...
#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
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 vmmon.ko vmmon.o ../../../../../modules
cd ..
    
echo "   * building vmnet module"
cd vmnet-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 vmnet.ko vmnet.o ../../../../../modules
cd ../../../../../..
        
echo "   * setting up EULA"
mv vmroot/doc/EULA vmroot/lib/vmware/share/EULA.txt

echo "   * finishing installation"