summaryrefslogtreecommitdiffstats
path: root/os-plugins/plugins/vmware/files/install-vmpl.sh
blob: 1d4c8419ff9706f63530b7064a30a80b23c27625 (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
#!/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/
rm -rf vmroot/lib/vmware/modules/binary

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"
if [ "${vmplversion}" != "vmpl1.0" ]; then
  cd vmblock-only/
  sed -i "s%^VM_UNAME = .*%VM_UNAME = $(find /lib/modules/2.6* -maxdepth 0|sed 's,/lib/modules/,,g'|sort|tail -n1)%" Makefile
  make -s
  mv vmblock.ko vmblock.o ../../../../../modules
  cd ..
fi

echo "   * building vmmon module"
cd vmmon-only
sed -i "s%^VM_UNAME = .*%VM_UNAME = $(find /lib/modules/2.6* -maxdepth 0|sed 's,/lib/modules/,,g'|sort|tail -n1)%" Makefile
make -s
mv vmmon.ko vmmon.o ../../../../../modules
cd ..
    
echo "   * building vmnet module"
cd vmnet-only
sed -i "s%^VM_UNAME = .*%VM_UNAME = $(find /lib/modules/2.6* -maxdepth 0|sed 's,/lib/modules/,,g'|sort|tail -n1)%" Makefile
make -s
mv vmnet.ko vmnet.o ../../../../../modules
cd ../../../../../..
        
echo "   * setting up EULA"
mv vmroot/doc/EULA vmroot/lib/vmware/share/EULA.txt

echo "   * finishing installation"