summaryrefslogtreecommitdiffstats
path: root/os-plugins/plugins/vmware/files/install-vmpl.sh
blob: cc47e58d3d57a56d604f48ac8fcdd1d8ecaad1e5 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
#!/bin/sh

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

### Check if player are still installed
if [ -d ${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"
  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"