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 # 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)
71 %define _noautoprovfiles %{_libdir}/vmware/lib/.*\.so.*
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.
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.
86 Summary: VMware debug utility
87 Summary(pl.UTF-8): Narzędzie VMware do odpluskwiania
88 Group: Applications/Emulators
89 Requires: %{name} = %{version}-%{release}
94 %description debug -l pl.UTF-8
95 Narzędzie VMware do odpluskwiania.
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}
104 VMware Player help files.
106 %description help -l pl.UTF-8
107 Pliki pomocy dla VMware Player.
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}
116 Obsoletes: VMware-Player-samba
118 %description networking
119 VMware networking utilities.
121 %description networking -l pl.UTF-8
122 Narzędzia VMware do obsługi sieci.
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}
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
135 Provides: kernel(vmmon) = %{version}-%{_rel}
137 %description -n kernel%{_alt_kernel}-misc-vmmon
138 Kernel modules for VMware Player - vmmon.
140 %description -n kernel%{_alt_kernel}-misc-vmmon -l pl.UTF-8
141 Moduły jądra dla VMware Player - vmmon.
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}
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
154 Provides: kernel(vmnet) = %{version}-%{_rel}
156 %description -n kernel%{_alt_kernel}-misc-vmnet
157 Kernel modules for VMware Player - vmnet.
159 %description -n kernel%{_alt_kernel}-misc-vmnet -l pl.UTF-8
160 Moduły jądra dla VMware Player - vmnet.
163 %setup -q -n vmware-player-distrib -a2
164 cd vmware-any-any-update%{urel}
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
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
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
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}
193 %{__sed} -i -e 's#/etc/pango/pango/pangox.aliases#/etc/pango/pangox.aliases#' \
194 lib/libconf/etc/pango/pangorc
197 sed -i 's:vm_db_answer_LIBDIR:VM_LIBDIR:g;s:vm_db_answer_BINDIR:VM_BINDIR:g' bin/vmplayer
199 cd vmware-any-any-update%{urel}
200 chmod u+w ../lib/bin/vmware-vmx ../lib/bin-debug/vmware-vmx ../bin/vmnet-bridge
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
212 cp -a $mod-only.clean $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
227 %if %{with dist_kernel}
228 %{__make} -j1 -C %{_kernelsrcdir} O=$PWD/o prepare scripts
230 install -d o/include/config
231 touch o/include/config/MARKER
232 ln -sf %{_kernelsrcdir}/scripts o/scripts
234 %{__make} -C %{_kernelsrcdir} modules \
239 %{?with_verbose:V=1} \
241 mv -f $mod.ko ../built/$mod-$cfg.ko
248 rm -rf $RPM_BUILD_ROOT
250 %if %{with userspace}
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
265 install -d $RPM_BUILD_ROOT/lib/modules/%{_kernel_ver}{,smp}/misc
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
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
281 touch $RPM_BUILD_ROOT%{_sysconfdir}/vmware/vmnet8/dhcpd/dhcpd.leases
282 touch $RPM_BUILD_ROOT%{_sysconfdir}/vmware/vmnet8/dhcpd/dhcpd.leases~
284 cp -a lib/share/icons/hicolor/* $RPM_BUILD_ROOT%{_iconsdir}/hicolor
286 install lib/share/pixmaps/* $RPM_BUILD_ROOT%{_libdir}/vmware/share/pixmaps
287 install doc/EULA $RPM_BUILD_ROOT%{_libdir}/vmware/share/EULA.txt
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}
294 cp -r lib/{bin-debug,config,help*,messages,xkeymap} \
295 $RPM_BUILD_ROOT%{_libdir}/vmware
297 cat > $RPM_BUILD_ROOT%{_sysconfdir}/vmware/locations <<EOF
299 VM_LIBDIR=%{_libdir}/vmware
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
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
314 # remove not needed files
315 rm -rf $RPM_BUILD_ROOT%{_bindir}/vmware-{config,uninstall}.pl $RPM_BUILD_ROOT%{_iconsdir}/hicolor/index.theme
319 rm -rf $RPM_BUILD_ROOT
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
333 %update_icon_cache hicolor
336 /sbin/chkconfig --add vmnet
337 %service vmnet restart "VMware networking service"
340 if [ "$1" = "0" ]; then
342 /sbin/chkconfig --del vmnet
345 %post -n kernel%{_alt_kernel}-misc-vmmon
346 %depmod %{_kernel_ver}
348 %postun -n kernel%{_alt_kernel}-misc-vmmon
349 %depmod %{_kernel_ver}
351 %post -n kernel%{_alt_kernel}-misc-vmnet
352 %depmod %{_kernel_ver}
354 %postun -n kernel%{_alt_kernel}-misc-vmnet
355 %depmod %{_kernel_ver}
357 %if %{with userspace}
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
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
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
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
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
413 %{_desktopdir}/%{name}.desktop
416 %defattr(644,root,root,755)
417 %dir %{_libdir}/vmware/bin-debug
419 %attr(4755,root,root) %{_libdir}/vmware/bin-debug/vmware-vmx
422 %defattr(644,root,root,755)
423 %{_libdir}/vmware/help*
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*
446 %files -n kernel%{_alt_kernel}-misc-vmmon
447 %defattr(644,root,root,755)
448 /lib/modules/%{_kernel_ver}/misc/vmmon.ko*
450 %files -n kernel%{_alt_kernel}-misc-vmnet
451 %defattr(644,root,root,755)
452 /lib/modules/%{_kernel_ver}/misc/vmnet.ko*