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
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)
13 %include /usr/lib/rpm/macros.perl
16 %undefine with_dist_kernel
19 %undefine with_userspace
25 %define ccver %(rpm -q --qf '%{V}' gcc)
28 Summary: VMware player
29 Summary(pl.UTF-8): VMware player - wirtualna platforma dla stacji roboczej
31 Version: %{ver}.%{buildid}
33 License: custom, non-distributable
34 Group: Applications/Emulators
35 Source0: http://download3.vmware.com/software/vmplayer/%{name}-%{ver}-%{buildid}.i386.tar.gz
38 Source1: http://download3.vmware.com/software/vmplayer/%{name}-%{ver}-%{buildid}.x86_64.tar.gz
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
47 Source5: %{name}.desktop
48 Source6: %{name}-nat.conf
49 Source7: %{name}-dhcpd.conf
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 %{?with_dist_kernel:BuildRequires: kernel%{_alt_kernel}-module-build >= 3:2.6.7}
58 BuildRequires: libstdc++-devel
59 BuildRequires: rpm-perlprov
60 BuildRequires: rpmbuild(macros) >= 1.268
61 BuildRequires: sed >= 4.0
62 Requires: libgnomecanvasmm
63 Requires: libview >= 0.5.5-2
64 Requires: openssl >= 0.9.7
65 Requires(post,postun): desktop-file-utils
66 ExclusiveArch: %{ix86} %{x8664}
67 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
69 %define _noautoprovfiles %{_libdir}/vmware/lib/.*\.so.*
72 VMware Player Virtual Platform is a thin software layer that allows
73 multiple guest operating systems to run concurrently on a single
74 standard PC, without repartitioning or rebooting, and without
75 significant loss of performance.
77 %description -l pl.UTF-8
78 VMware Player Virtual Platform to cienka warstwa oprogramowania
79 pozwalająca na jednoczesne działanie wielu gościnnych systemów
80 operacyjnych na jednym zwykłym PC, bez repartycjonowania ani
81 rebootowania, bez znacznej utraty wydajności.
84 Summary: VMware debug utility
85 Summary(pl.UTF-8): Narzędzie VMware do odpluskwiania
86 Group: Applications/Emulators
87 Requires: %{name} = %{version}-%{release}
92 %description debug -l pl.UTF-8
93 Narzędzie VMware do odpluskwiania.
96 Summary: VMware Player help files
97 Summary(pl.UTF-8): Pliki pomocy dla VMware Player
98 Group: Applications/Emulators
99 Requires: %{name} = %{version}-%{release}
102 VMware Player help files.
104 %description help -l pl.UTF-8
105 Pliki pomocy dla VMware Player.
108 Summary: VMware networking utilities
109 Summary(pl.UTF-8): Narzędzia VMware do obsługi sieci
110 Group: Applications/Emulators
111 Requires(post,preun): /sbin/chkconfig
112 Requires: %{name} = %{version}-%{release}
114 Obsoletes: VMware-Player-samba
116 %description networking
117 VMware networking utilities.
119 %description networking -l pl.UTF-8
120 Narzędzia VMware do obsługi sieci.
122 %package -n kernel%{_alt_kernel}-misc-vmmon
123 Summary: Kernel module for VMware Player
124 Summary(pl.UTF-8): Moduł jądra dla VMware Player
125 Release: %{_rel}@%{_kernel_ver_str}
127 Requires(post,postun): /sbin/depmod
128 Requires: dev >= 2.9.0-7
129 %if %{with dist_kernel}
130 %requires_releq_kernel
131 Requires(postun): %releq_kernel
133 Provides: kernel(vmmon) = %{version}-%{_rel}
135 %description -n kernel%{_alt_kernel}-misc-vmmon
136 Kernel modules for VMware Player - vmmon.
138 %description -n kernel%{_alt_kernel}-misc-vmmon -l pl.UTF-8
139 Moduły jądra dla VMware Player - vmmon.
141 %package -n kernel%{_alt_kernel}-misc-vmnet
142 Summary: Kernel module for VMware Player
143 Summary(pl.UTF-8): Moduł jądra dla VMware Player
144 Release: %{_rel}@%{_kernel_ver_str}
146 Requires(post,postun): /sbin/depmod
147 Requires: dev >= 2.9.0-7
148 %if %{with dist_kernel}
149 %requires_releq_kernel
150 Requires(postun): %releq_kernel
152 Provides: kernel(vmnet) = %{version}-%{_rel}
154 %description -n kernel%{_alt_kernel}-misc-vmnet
155 Kernel modules for VMware Player - vmnet.
157 %description -n kernel%{_alt_kernel}-misc-vmnet -l pl.UTF-8
158 Moduły jądra dla VMware Player - vmnet.
161 %setup -q -n vmware-player-distrib -a2
162 cd vmware-any-any-update%{urel}
168 # hack until new any-any-update version available
169 sed -i -e 's/#define.*VMMON_VERSION.*/#define VMMON_VERSION (167 << 16 | 0)/g' vmmon-only/include/iocontrols.h
171 cp -a vmmon-only{,.clean}
172 cp -a vmnet-only{,.clean}
173 sed -e 's/filter x86_64%/filter x86_64% amd64% ia64%/' \
174 -i vmnet-only.clean/Makefile.kernel
180 # will never use these
181 rm -f lib/libconf/lib/gtk-2.0/2.10.0/engines/*.a
182 rm -f lib/libconf/lib/gtk-2.0/2.10.0/immodules/*.a
183 rm -f lib/libconf/lib/gtk-2.0/2.10.0/loaders/*.a
184 rm -f lib/libconf/lib/pango/1.5.0/modules/*.a
186 %{__sed} -i -e 's#/build/.*/libconf/#%{_libdir}/vmware/libconf/#' \
187 lib/libconf/etc/gtk-2.0/{gdk-pixbuf.loaders,gtk.immodules} \
188 lib/libconf/etc/pango/{pango.modules,pangorc}
191 %{__sed} -i -e 's#/etc/pango/pango/pangox.aliases#/etc/pango/pangox.aliases#' \
192 lib/libconf/etc/pango/pangorc
195 sed -i 's:vm_db_answer_LIBDIR:VM_LIBDIR:g;s:vm_db_answer_BINDIR:VM_BINDIR:g' bin/vmplayer
197 cd vmware-any-any-update%{urel}
198 chmod u+w ../lib/bin/vmware-vmx ../lib/bin-debug/vmware-vmx ../bin/vmnet-bridge
204 for mod in vmmon vmnet ; do
205 for cfg in %{?with_dist_kernel:dist}%{!?with_dist_kernel:nondist}; do
206 if [ ! -r "%{_kernelsrcdir}/config-$cfg" ]; then
210 cp -a $mod-only.clean $mod-only
212 install -d o/include/linux
213 ln -sf %{_kernelsrcdir}/config-$cfg o/.config
214 ln -sf %{_kernelsrcdir}/Module.symvers-$cfg o/Module.symvers
215 ln -sf %{_kernelsrcdir}/include/linux/autoconf-$cfg.h o/include/linux/autoconf.h
216 if grep -q "^CONFIG_PREEMPT_RT=y$" o/.config; then
217 sed -e '/pollQueueLock/s/SPIN_LOCK_UNLOCKED/SPIN_LOCK_UNLOCKED(pollQueueLock)/' \
218 -e '/timerLock/s/SPIN_LOCK_UNLOCKED/SPIN_LOCK_UNLOCKED(timerLock)/' \
219 -i ../vmmon-only/linux/driver.c
220 sed -e 's/SPIN_LOCK_UNLOCKED/SPIN_LOCK_UNLOCKED(vnetHubLock)/' \
221 -i ../vmnet-only/hub.c
222 sed -e 's/RW_LOCK_UNLOCKED/RW_LOCK_UNLOCKED(vnetPeerLock)/' \
223 -i ../vmnet-only/driver.c
225 %if %{with dist_kernel}
226 %{__make} -j1 -C %{_kernelsrcdir} O=$PWD/o prepare scripts
228 install -d o/include/config
229 touch o/include/config/MARKER
230 ln -sf %{_kernelsrcdir}/scripts o/scripts
232 %{__make} -C %{_kernelsrcdir} modules \
237 %{?with_verbose:V=1} \
239 mv -f $mod.ko ../built/$mod-$cfg.ko
246 rm -rf $RPM_BUILD_ROOT
248 %if %{with userspace}
250 $RPM_BUILD_ROOT%{_sysconfdir}/vmware \
251 $RPM_BUILD_ROOT%{_sysconfdir}/vmware/vmnet8/{nat,dhcpd} \
252 $RPM_BUILD_ROOT%{_bindir} \
253 $RPM_BUILD_ROOT%{_libdir}/vmware/{bin,lib,share/pixmaps} \
254 $RPM_BUILD_ROOT%{_mandir} \
255 $RPM_BUILD_ROOT%{_pixmapsdir} \
256 $RPM_BUILD_ROOT%{_iconsdir}/hicolor \
257 $RPM_BUILD_ROOT%{_desktopdir} \
258 $RPM_BUILD_ROOT/etc/rc.d/init.d \
259 $RPM_BUILD_ROOT/var/run/vmware
263 install -d $RPM_BUILD_ROOT/lib/modules/%{_kernel_ver}{,smp}/misc
265 cd vmware-any-any-update%{urel}/built
266 install vmmon* $RPM_BUILD_ROOT/lib/modules/%{_kernel_ver}/misc/vmmon.ko
267 install vmnet* $RPM_BUILD_ROOT/lib/modules/%{_kernel_ver}/misc/vmnet.ko
271 %if %{with userspace}
272 install %{SOURCE8} $RPM_BUILD_ROOT/etc/rc.d/init.d/vmnet
273 install %{SOURCE3} $RPM_BUILD_ROOT%{_sysconfdir}/vmware/vmnet.conf
274 install %{SOURCE4} $RPM_BUILD_ROOT%{_pixmapsdir}
275 install %{SOURCE5} $RPM_BUILD_ROOT%{_desktopdir}
276 install %{SOURCE6} $RPM_BUILD_ROOT%{_sysconfdir}/vmware/vmnet8/nat/nat.conf
277 install %{SOURCE7} $RPM_BUILD_ROOT%{_sysconfdir}/vmware/vmnet8/dhcpd/dhcpd.conf
279 touch $RPM_BUILD_ROOT%{_sysconfdir}/vmware/vmnet8/dhcpd/dhcpd.leases
280 touch $RPM_BUILD_ROOT%{_sysconfdir}/vmware/vmnet8/dhcpd/dhcpd.leases~
282 cp -a lib/share/icons/hicolor/* $RPM_BUILD_ROOT%{_iconsdir}/hicolor
284 install lib/share/pixmaps/* $RPM_BUILD_ROOT%{_libdir}/vmware/share/pixmaps
285 install doc/EULA $RPM_BUILD_ROOT%{_libdir}/vmware/share/EULA.txt
287 install bin/*-* $RPM_BUILD_ROOT%{_bindir}
288 install lib/bin/vmware-vmx $RPM_BUILD_ROOT%{_libdir}/vmware/bin
289 install lib/lib/libvmwarebase.so.0/libvmwarebase.so.0 $RPM_BUILD_ROOT%{_libdir}
290 install lib/lib/libvmwareui.so.0/libvmwareui.so.0 $RPM_BUILD_ROOT%{_libdir}
292 cp -r lib/{bin-debug,config,help*,messages,xkeymap} \
293 $RPM_BUILD_ROOT%{_libdir}/vmware
295 cat > $RPM_BUILD_ROOT%{_sysconfdir}/vmware/locations <<EOF
297 VM_LIBDIR=%{_libdir}/vmware
300 %if %{with internal_libs}
301 install bin/vmplayer $RPM_BUILD_ROOT%{_bindir}
302 install lib/bin/vmplayer $RPM_BUILD_ROOT%{_libdir}/vmware/bin
303 cp -a lib/lib/* $RPM_BUILD_ROOT%{_libdir}/vmware/lib
304 cp -a lib/libconf $RPM_BUILD_ROOT%{_libdir}/vmware
306 install lib/bin/vmplayer $RPM_BUILD_ROOT%{_bindir}
307 install -d $RPM_BUILD_ROOT%{_libdir}/vmware/lib/lib{crypto,ssl}.so.0.9.7
308 ln -s %{_libdir}/libcrypto.so.0.9.7 $RPM_BUILD_ROOT%{_libdir}/vmware/lib/libcrypto.so.0.9.7/libcrypto.so.0.9.7
309 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 # remove not needed files
313 rm -rf $RPM_BUILD_ROOT%{_bindir}/vmware-{config,uninstall}.pl $RPM_BUILD_ROOT%{_iconsdir}/hicolor/index.theme
317 rm -rf $RPM_BUILD_ROOT
320 %update_icon_cache hicolor
321 %if %{with internal_libs}
322 gdk-pixbuf-query-loaders %{_libdir}/vmware/libconf/lib/gtk-2.0/2.10.0/loaders/*.so \
323 > %{_libdir}/vmware/libconf/etc/gtk-2.0/gdk-pixbuf.loaders
324 gtk-query-immodules-2.0 %{_libdir}/vmware/libconf/lib/gtk-2.0/2.10.0/immodules/*.so \
325 > %{_libdir}/vmware/libconf/etc/gtk-2.0/gtk.immodules
326 pango-querymodules %{_libdir}/vmware/libconf/lib/pango/1.5.0/modules/*.so \
327 > %{_libdir}/vmware/libconf/etc/pango/pango.modules
331 %update_icon_cache hicolor
334 /sbin/chkconfig --add vmnet
335 %service vmnet restart "VMware networking service"
338 if [ "$1" = "0" ]; then
340 /sbin/chkconfig --del vmnet
343 %post -n kernel%{_alt_kernel}-misc-vmmon
344 %depmod %{_kernel_ver}
346 %postun -n kernel%{_alt_kernel}-misc-vmmon
347 %depmod %{_kernel_ver}
349 %post -n kernel%{_alt_kernel}-misc-vmnet
350 %depmod %{_kernel_ver}
352 %postun -n kernel%{_alt_kernel}-misc-vmnet
353 %depmod %{_kernel_ver}
355 %if %{with userspace}
357 %defattr(644,root,root,755)
358 %doc doc/* lib/configurator/vmnet-{dhcpd,nat}.conf
359 %dir %{_sysconfdir}/vmware
360 %{_sysconfdir}/vmware/locations
361 %attr(755,root,root) %{_bindir}/vmplayer
362 %attr(755,root,root) %{_bindir}/vmware-acetool
363 %attr(755,root,root) %{_bindir}/vm-support
364 %attr(755,root,root) %{_libdir}/libvmwarebase.so.*
365 %attr(755,root,root) %{_libdir}/libvmwareui.so.*
366 %dir %{_libdir}/vmware
367 %dir %{_libdir}/vmware/bin
369 %attr(4755,root,root) %{_libdir}/vmware/bin/vmware-vmx
370 %dir %{_libdir}/vmware/lib
371 %{_libdir}/vmware/config
372 %if %{with internal_libs}
373 %attr(755,root,root) %{_libdir}/vmware/bin/vmplayer
374 %attr(755,root,root) %{_libdir}/vmware/lib/lib*
375 %attr(755,root,root) %{_libdir}/vmware/lib/wrapper-gtk24.sh
377 %dir %{_libdir}/vmware/libconf
378 %dir %{_libdir}/vmware/libconf/etc
379 %{_libdir}/vmware/libconf/etc/fonts
380 %{_libdir}/vmware/libconf/etc/gtk-2.0
381 %{_libdir}/vmware/libconf/etc/pango
382 %dir %{_libdir}/vmware/libconf/lib
383 %dir %{_libdir}/vmware/libconf/lib/gtk-2.0
384 %dir %{_libdir}/vmware/libconf/lib/gtk-2.0/2.10.0
385 %dir %{_libdir}/vmware/libconf/lib/gtk-2.0/2.10.0/engines
386 %attr(755,root,root) %{_libdir}/vmware/libconf/lib/gtk-2.0/2.10.0/engines/*.so
387 %dir %{_libdir}/vmware/libconf/lib/gtk-2.0/2.10.0/immodules
388 %attr(755,root,root) %{_libdir}/vmware/libconf/lib/gtk-2.0/2.10.0/immodules/*.so
389 %dir %{_libdir}/vmware/libconf/lib/gtk-2.0/2.10.0/loaders
390 %attr(755,root,root) %{_libdir}/vmware/libconf/lib/gtk-2.0/2.10.0/loaders/*.so
391 %dir %{_libdir}/vmware/libconf/lib/pango
392 %dir %{_libdir}/vmware/libconf/lib/pango/1.5.0
393 %dir %{_libdir}/vmware/libconf/lib/pango/1.5.0/modules
394 %attr(755,root,root) %{_libdir}/vmware/libconf/lib/pango/1.5.0/modules/*.so
396 # package old openssl (buggy but needed to work)
397 %dir %{_libdir}/vmware/lib/libcrypto.so.0.9.7
398 %attr(755,root,root) %{_libdir}/vmware/lib/libcrypto.so.0.9.7/libcrypto.so.0.9.7
399 %dir %{_libdir}/vmware/lib/libssl.so.0.9.7
400 %attr(755,root,root) %{_libdir}/vmware/lib/libssl.so.0.9.7/libssl.so.0.9.7
402 %dir %{_libdir}/vmware/messages
403 %lang(en) %{_libdir}/vmware/messages/en
404 %lang(ja) %{_libdir}/vmware/messages/ja
405 %{_libdir}/vmware/share
406 %{_libdir}/vmware/xkeymap
407 %attr(1777,root,root) %dir /var/run/vmware
408 %{_iconsdir}/hicolor/*/*/*.png
409 %{_iconsdir}/hicolor/*/*/*.svg
411 %{_desktopdir}/%{name}.desktop
414 %defattr(644,root,root,755)
415 %dir %{_libdir}/vmware/bin-debug
417 %attr(4755,root,root) %{_libdir}/vmware/bin-debug/vmware-vmx
420 %defattr(644,root,root,755)
421 %{_libdir}/vmware/help*
424 %defattr(644,root,root,755)
425 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/vmware/vmnet.conf
426 %attr(754,root,root) /etc/rc.d/init.d/vmnet
427 %attr(755,root,root) %{_bindir}/vmnet-bridge
428 %attr(755,root,root) %{_bindir}/vmnet-detect
429 %attr(755,root,root) %{_bindir}/vmnet-dhcpd
430 %attr(755,root,root) %{_bindir}/vmnet-natd
431 %attr(755,root,root) %{_bindir}/vmnet-netifup
432 %attr(755,root,root) %{_bindir}/vmnet-sniffer
433 %attr(755,root,root) %{_bindir}/vmware-ping
434 %dir %{_sysconfdir}/vmware/vmnet8
435 %dir %{_sysconfdir}/vmware/vmnet8/dhcpd
436 %dir %{_sysconfdir}/vmware/vmnet8/nat
437 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/vmware/vmnet8/dhcpd/dhcpd.conf
438 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/vmware/vmnet8/nat/nat.conf
439 %verify(not md5 mtime size) %{_sysconfdir}/vmware/vmnet8/dhcpd/dhcpd.leases*
444 %files -n kernel%{_alt_kernel}-misc-vmmon
445 %defattr(644,root,root,755)
446 /lib/modules/%{_kernel_ver}/misc/vmmon.ko*
448 %files -n kernel%{_alt_kernel}-misc-vmnet
449 %defattr(644,root,root,755)
450 /lib/modules/%{_kernel_ver}/misc/vmnet.ko*