]> git.pld-linux.org Git - packages/VMware-player.git/blob - VMware-player.spec
81f9cad1f0699cc21337ac5b4984c5f8b3779a00
[packages/VMware-player.git] / VMware-player.spec
1 # TODO:
2 # - update to 2.0.4 (93057) - fixes CVE-2008-2098 and CVE-2008-2099
3 #   this requires new/fixed version of vmware-any-any-update to work
4 #   with current kernels
5 #
6 # Conditional build:
7 %bcond_without  dist_kernel     # without distribution kernel
8 %bcond_without  kernel          # don't build kernel modules
9 %bcond_without  userspace       # don't build userspace utilities
10 %bcond_with     internal_libs   # internal libs stuff
11 %bcond_with     verbose         # verbose build (V=1)
12 #
13 %include        /usr/lib/rpm/macros.perl
14
15 %if %{without kernel}
16 %undefine       with_dist_kernel
17 %endif
18 %ifarch %{x8664}
19 %undefine       with_userspace
20 %endif
21 #
22 %define         ver             2.0.3
23 %define         buildid 80004
24 %define         urel    117d
25 %define         ccver   %(rpm -q --qf '%{V}' gcc)
26 %define         _rel    0.14
27 #
28 Summary:        VMware player
29 Summary(pl.UTF-8):      VMware player - wirtualna platforma dla stacji roboczej
30 Name:           VMware-player
31 Version:        %{ver}.%{buildid}
32 Release:        %{_rel}
33 License:        custom, non-distributable
34 Group:          Applications/Emulators
35 Source0:        http://download3.vmware.com/software/vmplayer/%{name}-%{ver}-%{buildid}.i386.tar.gz
36 # NoSource0-md5:        
37 NoSource:       0
38 Source1:        http://download3.vmware.com/software/vmplayer/%{name}-%{ver}-%{buildid}.x86_64.tar.gz
39 # NoSource1-md5:        
40 NoSource:       1
41 Source2:        http://vmkernelnewbies.googlegroups.com/web/vmware-any-any-update%{urel}.tar.gz
42 # Source2-md5:  730ef7124e03883fa5e30614b888c9d4
43 #Source2:       http://rtr.ca/vmware-2.6.24/vmware-any-any-update%{urel}.tgz
44 # original any-any: http://knihovny.cvut.cz/ftp/pub/vmware/vmware-any-any-update%{urel}.tar.gz
45 Source3:        %{name}-vmnet.conf
46 Source4:        %{name}.png
47 Source5:        %{name}.desktop
48 Source6:        %{name}-nat.conf
49 Source7:        %{name}-dhcpd.conf
50 Source8:        %{name}.init
51 Patch0:         %{name}-Makefile.patch
52 Patch1:         %{name}-run_script.patch
53 Patch2:         VMware-player-vmnet.patch
54 # patch below is included only for showing differences between 115 and 115a and not used for patching
55 Patch100:       vmware-any-any-update115-to-115a.patch  
56 URL:            http://www.vmware.com/
57 # http://securitytracker.com/alerts/2008/Oct/1020991.html
58 BuildRequires:  security(VMSA-2008-0016)
59 %{?with_dist_kernel:BuildRequires:      kernel%{_alt_kernel}-module-build >= 3:2.6.7}
60 BuildRequires:  libstdc++-devel
61 BuildRequires:  rpm-perlprov
62 BuildRequires:  rpmbuild(macros) >= 1.268
63 BuildRequires:  sed >= 4.0
64 Requires:       libgnomecanvasmm
65 Requires:       libview >= 0.5.5-2
66 Requires:       openssl >= 0.9.7
67 Requires(post,postun):  desktop-file-utils
68 ExclusiveArch:  %{ix86} %{x8664}
69 BuildRoot:      %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
70
71 %define         _noautoprovfiles %{_libdir}/vmware/lib/.*\.so.*
72
73 %description
74 VMware Player Virtual Platform is a thin software layer that allows
75 multiple guest operating systems to run concurrently on a single
76 standard PC, without repartitioning or rebooting, and without
77 significant loss of performance.
78
79 %description -l pl.UTF-8
80 VMware Player Virtual Platform to cienka warstwa oprogramowania
81 pozwalająca na jednoczesne działanie wielu gościnnych systemów
82 operacyjnych na jednym zwykłym PC, bez repartycjonowania ani
83 rebootowania, bez znacznej utraty wydajności.
84
85 %package debug
86 Summary:        VMware debug utility
87 Summary(pl.UTF-8):      Narzędzie VMware do odpluskwiania
88 Group:          Applications/Emulators
89 Requires:       %{name} = %{version}-%{release}
90
91 %description debug
92 VMware debug utility.
93
94 %description debug -l pl.UTF-8
95 Narzędzie VMware do odpluskwiania.
96
97 %package help
98 Summary:        VMware Player help files
99 Summary(pl.UTF-8):      Pliki pomocy dla VMware Player
100 Group:          Applications/Emulators
101 Requires:       %{name} = %{version}-%{release}
102
103 %description help
104 VMware Player help files.
105
106 %description help -l pl.UTF-8
107 Pliki pomocy dla VMware Player.
108
109 %package networking
110 Summary:        VMware networking utilities
111 Summary(pl.UTF-8):      Narzędzia VMware do obsługi sieci
112 Group:          Applications/Emulators
113 Requires(post,preun):   /sbin/chkconfig
114 Requires:       %{name} = %{version}-%{release}
115 Requires:       rc-scripts
116 Obsoletes:      VMware-Player-samba
117
118 %description networking
119 VMware networking utilities.
120
121 %description networking -l pl.UTF-8
122 Narzędzia VMware do obsługi sieci.
123
124 %package -n kernel%{_alt_kernel}-misc-vmmon
125 Summary:        Kernel module for VMware Player
126 Summary(pl.UTF-8):      Moduł jądra dla VMware Player
127 Release:        %{_rel}@%{_kernel_ver_str}
128 Group:          Base/Kernel
129 Requires(post,postun):  /sbin/depmod
130 Requires:       dev >= 2.9.0-7
131 %if %{with dist_kernel}
132 %requires_releq_kernel
133 Requires(postun):       %releq_kernel
134 %endif
135 Provides:       kernel(vmmon) = %{version}-%{_rel}
136
137 %description -n kernel%{_alt_kernel}-misc-vmmon
138 Kernel modules for VMware Player - vmmon.
139
140 %description -n kernel%{_alt_kernel}-misc-vmmon -l pl.UTF-8
141 Moduły jądra dla VMware Player - vmmon.
142
143 %package -n kernel%{_alt_kernel}-misc-vmnet
144 Summary:        Kernel module for VMware Player
145 Summary(pl.UTF-8):      Moduł jądra dla VMware Player
146 Release:        %{_rel}@%{_kernel_ver_str}
147 Group:          Base/Kernel
148 Requires(post,postun):  /sbin/depmod
149 Requires:       dev >= 2.9.0-7
150 %if %{with dist_kernel}
151 %requires_releq_kernel
152 Requires(postun):       %releq_kernel
153 %endif
154 Provides:       kernel(vmnet) = %{version}-%{_rel}
155
156 %description -n kernel%{_alt_kernel}-misc-vmnet
157 Kernel modules for VMware Player - vmnet.
158
159 %description -n kernel%{_alt_kernel}-misc-vmnet -l pl.UTF-8
160 Moduły jądra dla VMware Player - vmnet.
161
162 %prep
163 %setup -q -n vmware-player-distrib -a2
164 cd vmware-any-any-update%{urel}
165 tar xf vmmon.tar
166 tar xf vmnet.tar
167
168 %patch2 -p2
169
170 # hack until new any-any-update version available
171 sed -i -e 's/#define.*VMMON_VERSION.*/#define VMMON_VERSION             (167 << 16 | 0)/g' vmmon-only/include/iocontrols.h
172
173 cp -a vmmon-only{,.clean}
174 cp -a vmnet-only{,.clean}
175 sed -e 's/filter x86_64%/filter x86_64% amd64% ia64%/' \
176         -i vmnet-only.clean/Makefile.kernel
177 cd -
178
179 %patch0 -p1
180 %patch1 -p1
181
182 # will never use these
183 rm -f lib/libconf/lib/gtk-2.0/2.10.0/engines/*.a
184 rm -f lib/libconf/lib/gtk-2.0/2.10.0/immodules/*.a
185 rm -f lib/libconf/lib/gtk-2.0/2.10.0/loaders/*.a
186 rm -f lib/libconf/lib/pango/1.5.0/modules/*.a
187
188 %{__sed} -i -e 's#/build/.*/libconf/#%{_libdir}/vmware/libconf/#' \
189         lib/libconf/etc/gtk-2.0/{gdk-pixbuf.loaders,gtk.immodules} \
190         lib/libconf/etc/pango/{pango.modules,pangorc}
191
192 # typo?
193 %{__sed} -i -e 's#/etc/pango/pango/pangox.aliases#/etc/pango/pangox.aliases#' \
194         lib/libconf/etc/pango/pangorc
195
196 %build
197 sed -i 's:vm_db_answer_LIBDIR:VM_LIBDIR:g;s:vm_db_answer_BINDIR:VM_BINDIR:g' bin/vmplayer
198
199 cd vmware-any-any-update%{urel}
200 chmod u+w ../lib/bin/vmware-vmx ../lib/bin-debug/vmware-vmx ../bin/vmnet-bridge
201
202 %if %{with kernel}
203 rm -rf built
204 mkdir built
205
206 for mod in vmmon vmnet ; do
207         for cfg in %{?with_dist_kernel:dist}%{!?with_dist_kernel:nondist}; do
208                 if [ ! -r "%{_kernelsrcdir}/config-$cfg" ]; then
209                         exit 1
210                 fi
211                 rm -rf $mod-only
212                 cp -a $mod-only.clean $mod-only
213                 cd $mod-only
214                 install -d o/include/linux
215                 ln -sf %{_kernelsrcdir}/config-$cfg o/.config
216                 ln -sf %{_kernelsrcdir}/Module.symvers-$cfg o/Module.symvers
217                 ln -sf %{_kernelsrcdir}/include/linux/autoconf-$cfg.h o/include/linux/autoconf.h
218         if grep -q "^CONFIG_PREEMPT_RT=y$" o/.config; then
219                 sed -e '/pollQueueLock/s/SPIN_LOCK_UNLOCKED/SPIN_LOCK_UNLOCKED(pollQueueLock)/' \
220                         -e '/timerLock/s/SPIN_LOCK_UNLOCKED/SPIN_LOCK_UNLOCKED(timerLock)/' \
221                         -i ../vmmon-only/linux/driver.c
222                 sed -e 's/SPIN_LOCK_UNLOCKED/SPIN_LOCK_UNLOCKED(vnetHubLock)/' \
223                         -i ../vmnet-only/hub.c
224                 sed -e 's/RW_LOCK_UNLOCKED/RW_LOCK_UNLOCKED(vnetPeerLock)/' \
225                         -i ../vmnet-only/driver.c
226         fi
227         %if %{with dist_kernel}
228                 %{__make} -j1 -C %{_kernelsrcdir} O=$PWD/o prepare scripts
229         %else
230                 install -d o/include/config
231                 touch o/include/config/MARKER
232                 ln -sf %{_kernelsrcdir}/scripts o/scripts
233                 %endif
234                 %{__make} -C %{_kernelsrcdir} modules \
235                         VMWARE_VER=VME_V5 \
236                         SRCROOT=$PWD \
237                         M=$PWD O=$PWD/o \
238                         VM_KBUILD=26 \
239                         %{?with_verbose:V=1} \
240                         VM_CCVER=%{ccver}
241                 mv -f $mod.ko ../built/$mod-$cfg.ko
242                 cd -
243         done
244 done
245 %endif
246
247 %install
248 rm -rf $RPM_BUILD_ROOT
249
250 %if %{with userspace}
251 install -d \
252         $RPM_BUILD_ROOT%{_sysconfdir}/vmware \
253         $RPM_BUILD_ROOT%{_sysconfdir}/vmware/vmnet8/{nat,dhcpd} \
254         $RPM_BUILD_ROOT%{_bindir} \
255         $RPM_BUILD_ROOT%{_libdir}/vmware/{bin,lib,share/pixmaps} \
256         $RPM_BUILD_ROOT%{_mandir} \
257         $RPM_BUILD_ROOT%{_pixmapsdir} \
258         $RPM_BUILD_ROOT%{_iconsdir}/hicolor \
259         $RPM_BUILD_ROOT%{_desktopdir} \
260         $RPM_BUILD_ROOT/etc/rc.d/init.d \
261         $RPM_BUILD_ROOT/var/run/vmware
262 %endif
263
264 %if %{with kernel}
265 install -d $RPM_BUILD_ROOT/lib/modules/%{_kernel_ver}{,smp}/misc
266
267 cd vmware-any-any-update%{urel}/built
268 install vmmon* $RPM_BUILD_ROOT/lib/modules/%{_kernel_ver}/misc/vmmon.ko
269 install vmnet* $RPM_BUILD_ROOT/lib/modules/%{_kernel_ver}/misc/vmnet.ko
270 cd -
271 %endif
272
273 %if %{with userspace}
274 install %{SOURCE8} $RPM_BUILD_ROOT/etc/rc.d/init.d/vmnet
275 install %{SOURCE3} $RPM_BUILD_ROOT%{_sysconfdir}/vmware/vmnet.conf
276 install %{SOURCE4} $RPM_BUILD_ROOT%{_pixmapsdir}
277 install %{SOURCE5} $RPM_BUILD_ROOT%{_desktopdir}
278 install %{SOURCE6} $RPM_BUILD_ROOT%{_sysconfdir}/vmware/vmnet8/nat/nat.conf
279 install %{SOURCE7} $RPM_BUILD_ROOT%{_sysconfdir}/vmware/vmnet8/dhcpd/dhcpd.conf
280
281 touch $RPM_BUILD_ROOT%{_sysconfdir}/vmware/vmnet8/dhcpd/dhcpd.leases
282 touch $RPM_BUILD_ROOT%{_sysconfdir}/vmware/vmnet8/dhcpd/dhcpd.leases~
283
284 cp -a lib/share/icons/hicolor/* $RPM_BUILD_ROOT%{_iconsdir}/hicolor
285
286 install lib/share/pixmaps/* $RPM_BUILD_ROOT%{_libdir}/vmware/share/pixmaps
287 install doc/EULA $RPM_BUILD_ROOT%{_libdir}/vmware/share/EULA.txt
288
289 install bin/*-* $RPM_BUILD_ROOT%{_bindir}
290 install lib/bin/vmware-vmx $RPM_BUILD_ROOT%{_libdir}/vmware/bin
291 install lib/lib/libvmwarebase.so.0/libvmwarebase.so.0 $RPM_BUILD_ROOT%{_libdir}
292 install lib/lib/libvmwareui.so.0/libvmwareui.so.0 $RPM_BUILD_ROOT%{_libdir}
293
294 cp -r   lib/{bin-debug,config,help*,messages,xkeymap} \
295         $RPM_BUILD_ROOT%{_libdir}/vmware
296
297 cat > $RPM_BUILD_ROOT%{_sysconfdir}/vmware/locations <<EOF
298 VM_BINDIR=%{_bindir}
299 VM_LIBDIR=%{_libdir}/vmware
300 EOF
301
302 %if %{with internal_libs}
303 install bin/vmplayer $RPM_BUILD_ROOT%{_bindir}
304 install lib/bin/vmplayer $RPM_BUILD_ROOT%{_libdir}/vmware/bin
305 cp -a   lib/lib/* $RPM_BUILD_ROOT%{_libdir}/vmware/lib
306 cp -a   lib/libconf $RPM_BUILD_ROOT%{_libdir}/vmware
307 %else
308 install lib/bin/vmplayer $RPM_BUILD_ROOT%{_bindir}
309 install -d $RPM_BUILD_ROOT%{_libdir}/vmware/lib/lib{crypto,ssl}.so.0.9.7
310 ln -s %{_libdir}/libcrypto.so.0.9.7 $RPM_BUILD_ROOT%{_libdir}/vmware/lib/libcrypto.so.0.9.7/libcrypto.so.0.9.7
311 ln -s %{_libdir}/libssl.so.0.9.7 $RPM_BUILD_ROOT%{_libdir}/vmware/lib/libssl.so.0.9.7/libssl.so.0.9.7
312 %endif
313
314 # remove not needed files
315 rm -rf $RPM_BUILD_ROOT%{_bindir}/vmware-{config,uninstall}.pl $RPM_BUILD_ROOT%{_iconsdir}/hicolor/index.theme
316 %endif
317
318 %clean
319 rm -rf $RPM_BUILD_ROOT
320
321 %post
322 %update_icon_cache hicolor
323 %if %{with internal_libs}
324 gdk-pixbuf-query-loaders %{_libdir}/vmware/libconf/lib/gtk-2.0/2.10.0/loaders/*.so \
325         > %{_libdir}/vmware/libconf/etc/gtk-2.0/gdk-pixbuf.loaders
326 gtk-query-immodules-2.0 %{_libdir}/vmware/libconf/lib/gtk-2.0/2.10.0/immodules/*.so \
327         > %{_libdir}/vmware/libconf/etc/gtk-2.0/gtk.immodules
328 pango-querymodules %{_libdir}/vmware/libconf/lib/pango/1.5.0/modules/*.so \
329         > %{_libdir}/vmware/libconf/etc/pango/pango.modules
330 %endif
331
332 %postun
333 %update_icon_cache hicolor
334
335 %post networking
336 /sbin/chkconfig --add vmnet
337 %service vmnet restart "VMware networking service"
338
339 %preun networking
340 if [ "$1" = "0" ]; then
341         %service vmnet stop
342         /sbin/chkconfig --del vmnet
343 fi
344
345 %post   -n kernel%{_alt_kernel}-misc-vmmon
346 %depmod %{_kernel_ver}
347
348 %postun -n kernel%{_alt_kernel}-misc-vmmon
349 %depmod %{_kernel_ver}
350
351 %post   -n kernel%{_alt_kernel}-misc-vmnet
352 %depmod %{_kernel_ver}
353
354 %postun -n kernel%{_alt_kernel}-misc-vmnet
355 %depmod %{_kernel_ver}
356
357 %if %{with userspace}
358 %files
359 %defattr(644,root,root,755)
360 %doc doc/* lib/configurator/vmnet-{dhcpd,nat}.conf
361 %dir %{_sysconfdir}/vmware
362 %{_sysconfdir}/vmware/locations
363 %attr(755,root,root) %{_bindir}/vmplayer
364 %attr(755,root,root) %{_bindir}/vmware-acetool
365 %attr(755,root,root) %{_bindir}/vm-support
366 %attr(755,root,root) %{_libdir}/libvmwarebase.so.*
367 %attr(755,root,root) %{_libdir}/libvmwareui.so.*
368 %dir %{_libdir}/vmware
369 %dir %{_libdir}/vmware/bin
370 # warning: SUID !!!
371 %attr(4755,root,root) %{_libdir}/vmware/bin/vmware-vmx
372 %dir %{_libdir}/vmware/lib
373 %{_libdir}/vmware/config
374 %if %{with internal_libs}
375 %attr(755,root,root) %{_libdir}/vmware/bin/vmplayer
376 %attr(755,root,root) %{_libdir}/vmware/lib/lib*
377 %attr(755,root,root) %{_libdir}/vmware/lib/wrapper-gtk24.sh
378
379 %dir %{_libdir}/vmware/libconf
380 %dir %{_libdir}/vmware/libconf/etc
381 %{_libdir}/vmware/libconf/etc/fonts
382 %{_libdir}/vmware/libconf/etc/gtk-2.0
383 %{_libdir}/vmware/libconf/etc/pango
384 %dir %{_libdir}/vmware/libconf/lib
385 %dir %{_libdir}/vmware/libconf/lib/gtk-2.0
386 %dir %{_libdir}/vmware/libconf/lib/gtk-2.0/2.10.0
387 %dir %{_libdir}/vmware/libconf/lib/gtk-2.0/2.10.0/engines
388 %attr(755,root,root) %{_libdir}/vmware/libconf/lib/gtk-2.0/2.10.0/engines/*.so
389 %dir %{_libdir}/vmware/libconf/lib/gtk-2.0/2.10.0/immodules
390 %attr(755,root,root) %{_libdir}/vmware/libconf/lib/gtk-2.0/2.10.0/immodules/*.so
391 %dir %{_libdir}/vmware/libconf/lib/gtk-2.0/2.10.0/loaders
392 %attr(755,root,root) %{_libdir}/vmware/libconf/lib/gtk-2.0/2.10.0/loaders/*.so
393 %dir %{_libdir}/vmware/libconf/lib/pango
394 %dir %{_libdir}/vmware/libconf/lib/pango/1.5.0
395 %dir %{_libdir}/vmware/libconf/lib/pango/1.5.0/modules
396 %attr(755,root,root) %{_libdir}/vmware/libconf/lib/pango/1.5.0/modules/*.so
397 %else
398 # package old openssl (buggy but needed to work)
399 %dir %{_libdir}/vmware/lib/libcrypto.so.0.9.7
400 %attr(755,root,root) %{_libdir}/vmware/lib/libcrypto.so.0.9.7/libcrypto.so.0.9.7
401 %dir %{_libdir}/vmware/lib/libssl.so.0.9.7
402 %attr(755,root,root) %{_libdir}/vmware/lib/libssl.so.0.9.7/libssl.so.0.9.7
403 %endif
404 %dir %{_libdir}/vmware/messages
405 %lang(en) %{_libdir}/vmware/messages/en
406 %lang(ja) %{_libdir}/vmware/messages/ja
407 %{_libdir}/vmware/share
408 %{_libdir}/vmware/xkeymap
409 %attr(1777,root,root) %dir /var/run/vmware
410 %{_iconsdir}/hicolor/*/*/*.png
411 %{_iconsdir}/hicolor/*/*/*.svg
412 %{_pixmapsdir}/*.png
413 %{_desktopdir}/%{name}.desktop
414
415 %files debug
416 %defattr(644,root,root,755)
417 %dir %{_libdir}/vmware/bin-debug
418 # warning: SUID !!!
419 %attr(4755,root,root) %{_libdir}/vmware/bin-debug/vmware-vmx
420
421 %files help
422 %defattr(644,root,root,755)
423 %{_libdir}/vmware/help*
424
425 %files networking
426 %defattr(644,root,root,755)
427 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/vmware/vmnet.conf
428 %attr(754,root,root) /etc/rc.d/init.d/vmnet
429 %attr(755,root,root) %{_bindir}/vmnet-bridge
430 %attr(755,root,root) %{_bindir}/vmnet-detect
431 %attr(755,root,root) %{_bindir}/vmnet-dhcpd
432 %attr(755,root,root) %{_bindir}/vmnet-natd
433 %attr(755,root,root) %{_bindir}/vmnet-netifup
434 %attr(755,root,root) %{_bindir}/vmnet-sniffer
435 %attr(755,root,root) %{_bindir}/vmware-ping
436 %dir %{_sysconfdir}/vmware/vmnet8
437 %dir %{_sysconfdir}/vmware/vmnet8/dhcpd
438 %dir %{_sysconfdir}/vmware/vmnet8/nat
439 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/vmware/vmnet8/dhcpd/dhcpd.conf
440 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/vmware/vmnet8/nat/nat.conf
441 %verify(not md5 mtime size) %{_sysconfdir}/vmware/vmnet8/dhcpd/dhcpd.leases*
442
443 %endif
444
445 %if %{with kernel}
446 %files -n kernel%{_alt_kernel}-misc-vmmon
447 %defattr(644,root,root,755)
448 /lib/modules/%{_kernel_ver}/misc/vmmon.ko*
449
450 %files -n kernel%{_alt_kernel}-misc-vmnet
451 %defattr(644,root,root,755)
452 /lib/modules/%{_kernel_ver}/misc/vmnet.ko*
453
454 %endif
This page took 0.100894 seconds and 3 git commands to generate.