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://rtr.ca/vmware-2.6.24/vmware-any-any-update%{urel}.tgz
42 # Source2-md5: d0433cf49589e0140ed6730ad790de3a
43 # original any-any: http://knihovny.cvut.cz/ftp/pub/vmware/vmware-any-any-update%{urel}.tar.gz
44 Source3: %{name}-vmnet.conf
46 Source5: %{name}.desktop
47 Source6: %{name}-nat.conf
48 Source7: %{name}-dhcpd.conf
50 Patch0: %{name}-Makefile.patch
51 Patch1: %{name}-run_script.patch
52 # patch below is included only for showing differences between 115 and 115a and not used for patching
53 Patch100: vmware-any-any-update115-to-115a.patch
54 URL: http://www.vmware.com/
55 %{?with_dist_kernel:BuildRequires: kernel%{_alt_kernel}-module-build >= 3:2.6.7}
56 BuildRequires: libstdc++-devel
57 BuildRequires: rpm-perlprov
58 BuildRequires: rpmbuild(macros) >= 1.268
59 BuildRequires: sed >= 4.0
60 Requires: libgnomecanvasmm
61 Requires: libview >= 0.5.5-2
62 Requires: openssl >= 0.9.7
63 Requires(post,postun): desktop-file-utils
64 ExclusiveArch: %{ix86} %{x8664}
65 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
67 %define _noautoprovfiles %{_libdir}/vmware/lib/.*\.so.*
70 VMware Player Virtual Platform is a thin software layer that allows
71 multiple guest operating systems to run concurrently on a single
72 standard PC, without repartitioning or rebooting, and without
73 significant loss of performance.
75 %description -l pl.UTF-8
76 VMware Player Virtual Platform to cienka warstwa oprogramowania
77 pozwalająca na jednoczesne działanie wielu gościnnych systemów
78 operacyjnych na jednym zwykłym PC, bez repartycjonowania ani
79 rebootowania, bez znacznej utraty wydajności.
82 Summary: VMware debug utility
83 Summary(pl.UTF-8): Narzędzie VMware do odpluskwiania
84 Group: Applications/Emulators
85 Requires: %{name} = %{version}-%{release}
90 %description debug -l pl.UTF-8
91 Narzędzie VMware do odpluskwiania.
94 Summary: VMware Player help files
95 Summary(pl.UTF-8): Pliki pomocy dla VMware Player
96 Group: Applications/Emulators
97 Requires: %{name} = %{version}-%{release}
100 VMware Player help files.
102 %description help -l pl.UTF-8
103 Pliki pomocy dla VMware Player.
106 Summary: VMware networking utilities
107 Summary(pl.UTF-8): Narzędzia VMware do obsługi sieci
108 Group: Applications/Emulators
109 Requires(post,preun): /sbin/chkconfig
110 Requires: %{name} = %{version}-%{release}
112 Obsoletes: VMware-Player-samba
114 %description networking
115 VMware networking utilities.
117 %description networking -l pl.UTF-8
118 Narzędzia VMware do obsługi sieci.
120 %package -n kernel%{_alt_kernel}-misc-vmmon
121 Summary: Kernel module for VMware Player
122 Summary(pl.UTF-8): Moduł jądra dla VMware Player
123 Release: %{_rel}@%{_kernel_ver_str}
125 Requires(post,postun): /sbin/depmod
126 Requires: dev >= 2.9.0-7
127 %if %{with dist_kernel}
128 %requires_releq_kernel
129 Requires(postun): %releq_kernel
131 Provides: kernel(vmmon) = %{version}-%{_rel}
133 %description -n kernel%{_alt_kernel}-misc-vmmon
134 Kernel modules for VMware Player - vmmon.
136 %description -n kernel%{_alt_kernel}-misc-vmmon -l pl.UTF-8
137 Moduły jądra dla VMware Player - vmmon.
139 %package -n kernel%{_alt_kernel}-misc-vmnet
140 Summary: Kernel module for VMware Player
141 Summary(pl.UTF-8): Moduł jądra dla VMware Player
142 Release: %{_rel}@%{_kernel_ver_str}
144 Requires(post,postun): /sbin/depmod
145 Requires: dev >= 2.9.0-7
146 %if %{with dist_kernel}
147 %requires_releq_kernel
148 Requires(postun): %releq_kernel
150 Provides: kernel(vmnet) = %{version}-%{_rel}
152 %description -n kernel%{_alt_kernel}-misc-vmnet
153 Kernel modules for VMware Player - vmnet.
155 %description -n kernel%{_alt_kernel}-misc-vmnet -l pl.UTF-8
156 Moduły jądra dla VMware Player - vmnet.
159 %setup -q -n vmware-player-distrib -a2
160 cd vmware-any-any-update%{urel}
163 cp -a vmmon-only{,.clean}
164 cp -a vmnet-only{,.clean}
165 sed -e 's/filter x86_64%/filter x86_64% amd64% ia64%/' \
166 -i vmnet-only.clean/Makefile.kernel
172 # will never use these
173 rm -f lib/libconf/lib/gtk-2.0/2.10.0/engines/*.a
174 rm -f lib/libconf/lib/gtk-2.0/2.10.0/immodules/*.a
175 rm -f lib/libconf/lib/gtk-2.0/2.10.0/loaders/*.a
176 rm -f lib/libconf/lib/pango/1.5.0/modules/*.a
178 %{__sed} -i -e 's#/build/.*/libconf/#%{_libdir}/vmware/libconf/#' \
179 lib/libconf/etc/gtk-2.0/{gdk-pixbuf.loaders,gtk.immodules} \
180 lib/libconf/etc/pango/{pango.modules,pangorc}
183 %{__sed} -i -e 's#/etc/pango/pango/pangox.aliases#/etc/pango/pangox.aliases#' \
184 lib/libconf/etc/pango/pangorc
187 sed -i 's:vm_db_answer_LIBDIR:VM_LIBDIR:g;s:vm_db_answer_BINDIR:VM_BINDIR:g' bin/vmplayer
189 cd vmware-any-any-update%{urel}
190 chmod u+w ../lib/bin/vmware-vmx ../lib/bin-debug/vmware-vmx ../bin/vmnet-bridge
192 # hack until new any-any-update version available
193 sed -i -e 's/#define.*VMMON_VERSION_V6.*/#define VMMON_VERSION_V6 (167 << 16 | 0)/g' vmmon-only.clean/include/iocontrols_compat.h
199 for mod in vmmon vmnet ; do
200 for cfg in %{?with_dist_kernel:dist}%{!?with_dist_kernel:nondist}; do
201 if [ ! -r "%{_kernelsrcdir}/config-$cfg" ]; then
205 cp -a $mod-only.clean $mod-only
207 install -d o/include/linux
208 ln -sf %{_kernelsrcdir}/config-$cfg o/.config
209 ln -sf %{_kernelsrcdir}/Module.symvers-$cfg o/Module.symvers
210 ln -sf %{_kernelsrcdir}/include/linux/autoconf-$cfg.h o/include/linux/autoconf.h
211 if grep -q "^CONFIG_PREEMPT_RT=y$" o/.config; then
212 sed -e '/pollQueueLock/s/SPIN_LOCK_UNLOCKED/SPIN_LOCK_UNLOCKED(pollQueueLock)/' \
213 -e '/timerLock/s/SPIN_LOCK_UNLOCKED/SPIN_LOCK_UNLOCKED(timerLock)/' \
214 -i ../vmmon-only/linux/driver.c
215 sed -e 's/SPIN_LOCK_UNLOCKED/SPIN_LOCK_UNLOCKED(vnetHubLock)/' \
216 -i ../vmnet-only/hub.c
217 sed -e 's/RW_LOCK_UNLOCKED/RW_LOCK_UNLOCKED(vnetPeerLock)/' \
218 -i ../vmnet-only/driver.c
220 %if %{with dist_kernel}
221 %{__make} -j1 -C %{_kernelsrcdir} O=$PWD/o prepare scripts
223 install -d o/include/config
224 touch o/include/config/MARKER
225 ln -sf %{_kernelsrcdir}/scripts o/scripts
227 %{__make} -C %{_kernelsrcdir} modules \
232 %{?with_verbose:V=1} \
234 mv -f $mod.ko ../built/$mod-$cfg.ko
241 rm -rf $RPM_BUILD_ROOT
243 %if %{with userspace}
245 $RPM_BUILD_ROOT%{_sysconfdir}/vmware \
246 $RPM_BUILD_ROOT%{_sysconfdir}/vmware/vmnet8/{nat,dhcpd} \
247 $RPM_BUILD_ROOT%{_bindir} \
248 $RPM_BUILD_ROOT%{_libdir}/vmware/{bin,lib,share/pixmaps} \
249 $RPM_BUILD_ROOT%{_mandir} \
250 $RPM_BUILD_ROOT%{_pixmapsdir} \
251 $RPM_BUILD_ROOT%{_iconsdir}/hicolor \
252 $RPM_BUILD_ROOT%{_desktopdir} \
253 $RPM_BUILD_ROOT/etc/rc.d/init.d \
254 $RPM_BUILD_ROOT/var/run/vmware
258 install -d $RPM_BUILD_ROOT%{_sysconfdir}/modprobe.d
259 echo "options vmmon vmversion=16" > $RPM_BUILD_ROOT%{_sysconfdir}/modprobe.d/%{name}-vmmon.conf
261 install -d $RPM_BUILD_ROOT/lib/modules/%{_kernel_ver}{,smp}/misc
263 cd vmware-any-any-update%{urel}/built
264 install vmmon* $RPM_BUILD_ROOT/lib/modules/%{_kernel_ver}/misc/vmmon.ko
265 install vmnet* $RPM_BUILD_ROOT/lib/modules/%{_kernel_ver}/misc/vmnet.ko
269 %if %{with userspace}
270 install %{SOURCE8} $RPM_BUILD_ROOT/etc/rc.d/init.d/vmnet
271 install %{SOURCE3} $RPM_BUILD_ROOT%{_sysconfdir}/vmware/vmnet.conf
272 install %{SOURCE4} $RPM_BUILD_ROOT%{_pixmapsdir}
273 install %{SOURCE5} $RPM_BUILD_ROOT%{_desktopdir}
274 install %{SOURCE6} $RPM_BUILD_ROOT%{_sysconfdir}/vmware/vmnet8/nat/nat.conf
275 install %{SOURCE7} $RPM_BUILD_ROOT%{_sysconfdir}/vmware/vmnet8/dhcpd/dhcpd.conf
277 touch $RPM_BUILD_ROOT%{_sysconfdir}/vmware/vmnet8/dhcpd/dhcpd.leases
278 touch $RPM_BUILD_ROOT%{_sysconfdir}/vmware/vmnet8/dhcpd/dhcpd.leases~
280 cp -a lib/share/icons/hicolor/* $RPM_BUILD_ROOT%{_iconsdir}/hicolor
282 install lib/share/pixmaps/* $RPM_BUILD_ROOT%{_libdir}/vmware/share/pixmaps
283 install doc/EULA $RPM_BUILD_ROOT%{_libdir}/vmware/share/EULA.txt
285 install bin/*-* $RPM_BUILD_ROOT%{_bindir}
286 install lib/bin/vmware-vmx $RPM_BUILD_ROOT%{_libdir}/vmware/bin
287 install lib/lib/libvmwarebase.so.0/libvmwarebase.so.0 $RPM_BUILD_ROOT%{_libdir}
288 install lib/lib/libvmwareui.so.0/libvmwareui.so.0 $RPM_BUILD_ROOT%{_libdir}
290 cp -r lib/{bin-debug,config,help*,messages,xkeymap} \
291 $RPM_BUILD_ROOT%{_libdir}/vmware
293 cat > $RPM_BUILD_ROOT%{_sysconfdir}/vmware/locations <<EOF
295 VM_LIBDIR=%{_libdir}/vmware
298 %if %{with internal_libs}
299 install bin/vmplayer $RPM_BUILD_ROOT%{_bindir}
300 install lib/bin/vmplayer $RPM_BUILD_ROOT%{_libdir}/vmware/bin
301 cp -a lib/lib/* $RPM_BUILD_ROOT%{_libdir}/vmware/lib
302 cp -a lib/libconf $RPM_BUILD_ROOT%{_libdir}/vmware
304 install lib/bin/vmplayer $RPM_BUILD_ROOT%{_bindir}
305 install -d $RPM_BUILD_ROOT%{_libdir}/vmware/lib/lib{crypto,ssl}.so.0.9.7
306 ln -s %{_libdir}/libcrypto.so.0.9.7 $RPM_BUILD_ROOT%{_libdir}/vmware/lib/libcrypto.so.0.9.7/libcrypto.so.0.9.7
307 ln -s %{_libdir}/libssl.so.0.9.7 $RPM_BUILD_ROOT%{_libdir}/vmware/lib/libssl.so.0.9.7/libssl.so.0.9.7
310 # remove not needed files
311 rm -rf $RPM_BUILD_ROOT%{_bindir}/vmware-{config,uninstall}.pl $RPM_BUILD_ROOT%{_iconsdir}/hicolor/index.theme
315 rm -rf $RPM_BUILD_ROOT
318 %update_icon_cache hicolor
319 %if %{with internal_libs}
320 gdk-pixbuf-query-loaders %{_libdir}/vmware/libconf/lib/gtk-2.0/2.10.0/loaders/*.so \
321 > %{_libdir}/vmware/libconf/etc/gtk-2.0/gdk-pixbuf.loaders
322 gtk-query-immodules-2.0 %{_libdir}/vmware/libconf/lib/gtk-2.0/2.10.0/immodules/*.so \
323 > %{_libdir}/vmware/libconf/etc/gtk-2.0/gtk.immodules
324 pango-querymodules %{_libdir}/vmware/libconf/lib/pango/1.5.0/modules/*.so \
325 > %{_libdir}/vmware/libconf/etc/pango/pango.modules
329 %update_icon_cache hicolor
332 /sbin/chkconfig --add vmnet
333 %service vmnet restart "VMware networking service"
336 if [ "$1" = "0" ]; then
338 /sbin/chkconfig --del vmnet
341 %post -n kernel%{_alt_kernel}-misc-vmmon
342 %depmod %{_kernel_ver}
344 %postun -n kernel%{_alt_kernel}-misc-vmmon
345 %depmod %{_kernel_ver}
347 %post -n kernel%{_alt_kernel}-misc-vmnet
348 %depmod %{_kernel_ver}
350 %postun -n kernel%{_alt_kernel}-misc-vmnet
351 %depmod %{_kernel_ver}
353 %if %{with userspace}
355 %defattr(644,root,root,755)
356 %doc doc/* lib/configurator/vmnet-{dhcpd,nat}.conf
357 %dir %{_sysconfdir}/vmware
358 %{_sysconfdir}/vmware/locations
359 %attr(755,root,root) %{_bindir}/vmplayer
360 %attr(755,root,root) %{_bindir}/vmware-acetool
361 %attr(755,root,root) %{_bindir}/vm-support
362 %attr(755,root,root) %{_libdir}/libvmwarebase.so.*
363 %attr(755,root,root) %{_libdir}/libvmwareui.so.*
364 %dir %{_libdir}/vmware
365 %dir %{_libdir}/vmware/bin
367 %attr(4755,root,root) %{_libdir}/vmware/bin/vmware-vmx
368 %dir %{_libdir}/vmware/lib
369 %{_libdir}/vmware/config
370 %if %{with internal_libs}
371 %attr(755,root,root) %{_libdir}/vmware/bin/vmplayer
372 %attr(755,root,root) %{_libdir}/vmware/lib/lib*
373 %attr(755,root,root) %{_libdir}/vmware/lib/wrapper-gtk24.sh
375 %dir %{_libdir}/vmware/libconf
376 %dir %{_libdir}/vmware/libconf/etc
377 %{_libdir}/vmware/libconf/etc/fonts
378 %{_libdir}/vmware/libconf/etc/gtk-2.0
379 %{_libdir}/vmware/libconf/etc/pango
380 %dir %{_libdir}/vmware/libconf/lib
381 %dir %{_libdir}/vmware/libconf/lib/gtk-2.0
382 %dir %{_libdir}/vmware/libconf/lib/gtk-2.0/2.10.0
383 %dir %{_libdir}/vmware/libconf/lib/gtk-2.0/2.10.0/engines
384 %attr(755,root,root) %{_libdir}/vmware/libconf/lib/gtk-2.0/2.10.0/engines/*.so
385 %dir %{_libdir}/vmware/libconf/lib/gtk-2.0/2.10.0/immodules
386 %attr(755,root,root) %{_libdir}/vmware/libconf/lib/gtk-2.0/2.10.0/immodules/*.so
387 %dir %{_libdir}/vmware/libconf/lib/gtk-2.0/2.10.0/loaders
388 %attr(755,root,root) %{_libdir}/vmware/libconf/lib/gtk-2.0/2.10.0/loaders/*.so
389 %dir %{_libdir}/vmware/libconf/lib/pango
390 %dir %{_libdir}/vmware/libconf/lib/pango/1.5.0
391 %dir %{_libdir}/vmware/libconf/lib/pango/1.5.0/modules
392 %attr(755,root,root) %{_libdir}/vmware/libconf/lib/pango/1.5.0/modules/*.so
394 # package old openssl (buggy but needed to work)
395 %dir %{_libdir}/vmware/lib/libcrypto.so.0.9.7
396 %attr(755,root,root) %{_libdir}/vmware/lib/libcrypto.so.0.9.7/libcrypto.so.0.9.7
397 %dir %{_libdir}/vmware/lib/libssl.so.0.9.7
398 %attr(755,root,root) %{_libdir}/vmware/lib/libssl.so.0.9.7/libssl.so.0.9.7
400 %dir %{_libdir}/vmware/messages
401 %lang(en) %{_libdir}/vmware/messages/en
402 %lang(ja) %{_libdir}/vmware/messages/ja
403 %{_libdir}/vmware/share
404 %{_libdir}/vmware/xkeymap
405 %attr(1777,root,root) %dir /var/run/vmware
406 %{_iconsdir}/hicolor/*/*/*.png
407 %{_iconsdir}/hicolor/*/*/*.svg
409 %{_desktopdir}/%{name}.desktop
412 %defattr(644,root,root,755)
413 %dir %{_libdir}/vmware/bin-debug
415 %attr(4755,root,root) %{_libdir}/vmware/bin-debug/vmware-vmx
418 %defattr(644,root,root,755)
419 %{_libdir}/vmware/help*
422 %defattr(644,root,root,755)
423 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/vmware/vmnet.conf
424 %attr(754,root,root) /etc/rc.d/init.d/vmnet
425 %attr(755,root,root) %{_bindir}/vmnet-bridge
426 %attr(755,root,root) %{_bindir}/vmnet-detect
427 %attr(755,root,root) %{_bindir}/vmnet-dhcpd
428 %attr(755,root,root) %{_bindir}/vmnet-natd
429 %attr(755,root,root) %{_bindir}/vmnet-netifup
430 %attr(755,root,root) %{_bindir}/vmnet-sniffer
431 %attr(755,root,root) %{_bindir}/vmware-ping
432 %dir %{_sysconfdir}/vmware/vmnet8
433 %dir %{_sysconfdir}/vmware/vmnet8/dhcpd
434 %dir %{_sysconfdir}/vmware/vmnet8/nat
435 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/vmware/vmnet8/dhcpd/dhcpd.conf
436 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/vmware/vmnet8/nat/nat.conf
437 %verify(not md5 mtime size) %{_sysconfdir}/vmware/vmnet8/dhcpd/dhcpd.leases*
442 %files -n kernel%{_alt_kernel}-misc-vmmon
443 %defattr(644,root,root,755)
444 %{_sysconfdir}/modprobe.d/%{name}-vmmon.conf
445 /lib/modules/%{_kernel_ver}/misc/vmmon.ko*
447 %files -n kernel%{_alt_kernel}-misc-vmnet
448 %defattr(644,root,root,755)
449 /lib/modules/%{_kernel_ver}/misc/vmnet.ko*