3 %bcond_without dist_kernel # without distribution kernel
4 %bcond_without kernel # don't build kernel modules
5 %bcond_without userspace # don't build userspace utilities
6 %bcond_with internal_libs # internal libs stuff
7 %bcond_with verbose # verbose build (V=1)
9 %include /usr/lib/rpm/macros.perl
12 %undefine with_dist_kernel
15 %undefine with_userspace
21 %define ccver %(rpm -q --qf '%{V}' gcc)
24 Summary: VMware player
25 Summary(pl.UTF-8): VMware player - wirtualna platforma dla stacji roboczej
27 Version: %{ver}.%{buildid}
29 License: custom, non-distributable
30 Group: Applications/Emulators
31 Source0: http://download3.vmware.com/software/vmplayer/%{name}-%{ver}-%{buildid}.i386.tar.gz
32 # NoSource0-md5: 0c108db615943d71b78f18826611acce
34 Source1: http://download3.vmware.com/software/vmplayer/%{name}-%{ver}-%{buildid}.x86_64.tar.gz
35 # NoSource1-md5: f59a77f3e3b8e87591eff605c4bbb796
37 Source2: http://knihovny.cvut.cz/ftp/pub/vmware/vmware-any-any-update%{urel}.tar.gz
38 # Source2-md5: ab33ff7a799fee77f0f4ba5667cd4b9a
39 Source3: %{name}-vmnet.conf
41 Source5: %{name}.desktop
42 Source6: %{name}-nat.conf
43 Source7: %{name}-dhcpd.conf
45 Patch0: %{name}-Makefile.patch
46 Patch1: %{name}-run_script.patch
47 URL: http://www.vmware.com/
48 %{?with_dist_kernel:BuildRequires: kernel%{_alt_kernel}-module-build >= 3:2.6.7}
49 BuildRequires: libstdc++-devel
50 BuildRequires: rpm-perlprov
51 BuildRequires: rpmbuild(macros) >= 1.268
52 BuildRequires: sed >= 4.0
53 Requires: libgnomecanvasmm
54 Requires: libview >= 0.5.5-2
55 Requires: openssl >= 0.9.7
56 Requires(post,postun): desktop-file-utils
57 ExclusiveArch: %{ix86} %{x8664}
58 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
60 %define _noautoprovfiles %{_libdir}/vmware/lib/.*\.so.*
63 VMware Player Virtual Platform is a thin software layer that allows
64 multiple guest operating systems to run concurrently on a single
65 standard PC, without repartitioning or rebooting, and without
66 significant loss of performance.
68 %description -l pl.UTF-8
69 VMware Player Virtual Platform to cienka warstwa oprogramowania
70 pozwalająca na jednoczesne działanie wielu gościnnych systemów
71 operacyjnych na jednym zwykłym PC, bez repartycjonowania ani
72 rebootowania, bez znacznej utraty wydajności.
75 Summary: VMware debug utility
76 Summary(pl.UTF-8): Narzędzie VMware do odpluskwiania
77 Group: Applications/Emulators
78 Requires: %{name} = %{version}-%{release}
83 %description debug -l pl.UTF-8
84 Narzędzie VMware do odpluskwiania.
87 Summary: VMware Player help files
88 Summary(pl.UTF-8): Pliki pomocy dla VMware Player
89 Group: Applications/Emulators
90 Requires: %{name} = %{version}-%{release}
93 VMware Player help files.
95 %description help -l pl.UTF-8
96 Pliki pomocy dla VMware Player.
99 Summary: VMware networking utilities
100 Summary(pl.UTF-8): Narzędzia VMware do obsługi sieci
101 Group: Applications/Emulators
102 Requires(post,preun): /sbin/chkconfig
103 Requires: %{name} = %{version}-%{release}
105 Obsoletes: VMware-Player-samba
107 %description networking
108 VMware networking utilities.
110 %description networking -l pl.UTF-8
111 Narzędzia VMware do obsługi sieci.
113 %package -n kernel%{_alt_kernel}-misc-vmmon
114 Summary: Kernel module for VMware Player
115 Summary(pl.UTF-8): Moduł jądra dla VMware Player
116 Release: %{_rel}@%{_kernel_ver_str}
118 Requires(post,postun): /sbin/depmod
119 Requires: dev >= 2.9.0-7
120 %if %{with dist_kernel}
121 %requires_releq_kernel
122 Requires(postun): %releq_kernel
124 Provides: kernel(vmmon) = %{version}-%{_rel}
126 %description -n kernel%{_alt_kernel}-misc-vmmon
127 Kernel modules for VMware Player - vmmon.
129 %description -n kernel%{_alt_kernel}-misc-vmmon -l pl.UTF-8
130 Moduły jądra dla VMware Player - vmmon.
132 %package -n kernel%{_alt_kernel}-misc-vmnet
133 Summary: Kernel module for VMware Player
134 Summary(pl.UTF-8): Moduł jądra dla VMware Player
135 Release: %{_rel}@%{_kernel_ver_str}
137 Requires(post,postun): /sbin/depmod
138 Requires: dev >= 2.9.0-7
139 %if %{with dist_kernel}
140 %requires_releq_kernel
141 Requires(postun): %releq_kernel
143 Provides: kernel(vmnet) = %{version}-%{_rel}
145 %description -n kernel%{_alt_kernel}-misc-vmnet
146 Kernel modules for VMware Player - vmnet.
148 %description -n kernel%{_alt_kernel}-misc-vmnet -l pl.UTF-8
149 Moduły jądra dla VMware Player - vmnet.
152 %setup -q -n vmware-player-distrib -a2
153 cd vmware-any-any-update%{urel}
156 cp -a vmmon-only{,.clean}
157 cp -a vmnet-only{,.clean}
158 sed -e 's/filter x86_64%/filter x86_64% amd64% ia64%/' \
159 -i vmnet-only.clean/Makefile.kernel
165 # will never use these
166 rm -f lib/libconf/lib/gtk-2.0/2.10.0/engines/*.a
167 rm -f lib/libconf/lib/gtk-2.0/2.10.0/immodules/*.a
168 rm -f lib/libconf/lib/gtk-2.0/2.10.0/loaders/*.a
169 rm -f lib/libconf/lib/pango/1.5.0/modules/*.a
171 %{__sed} -i -e 's#/build/.*/libconf/#%{_libdir}/vmware/libconf/#' \
172 lib/libconf/etc/gtk-2.0/{gdk-pixbuf.loaders,gtk.immodules} \
173 lib/libconf/etc/pango/{pango.modules,pangorc}
176 %{__sed} -i -e 's#/etc/pango/pango/pangox.aliases#/etc/pango/pangox.aliases#' \
177 lib/libconf/etc/pango/pangorc
180 sed -i 's:vm_db_answer_LIBDIR:VM_LIBDIR:g;s:vm_db_answer_BINDIR:VM_BINDIR:g' bin/vmplayer
182 cd vmware-any-any-update%{urel}
183 chmod u+w ../lib/bin/vmware-vmx ../lib/bin-debug/vmware-vmx ../bin/vmnet-bridge
185 # hack until new any-any-update version available
186 sed -i -e 's/#define.*VMMON_VERSION_V6.*/#define VMMON_VERSION_V6 (167 << 16 | 0)/g' vmmon-only.clean/include/iocontrols_compat.h
192 for mod in vmmon vmnet ; do
193 for cfg in %{?with_dist_kernel:dist}%{!?with_dist_kernel:nondist}; do
194 if [ ! -r "%{_kernelsrcdir}/config-$cfg" ]; then
198 cp -a $mod-only.clean $mod-only
200 install -d o/include/linux
201 ln -sf %{_kernelsrcdir}/config-$cfg o/.config
202 ln -sf %{_kernelsrcdir}/Module.symvers-$cfg o/Module.symvers
203 ln -sf %{_kernelsrcdir}/include/linux/autoconf-$cfg.h o/include/linux/autoconf.h
204 if grep -q "^CONFIG_PREEMPT_RT=y$" o/.config; then
205 sed -e '/pollQueueLock/s/SPIN_LOCK_UNLOCKED/SPIN_LOCK_UNLOCKED(pollQueueLock)/' \
206 -e '/timerLock/s/SPIN_LOCK_UNLOCKED/SPIN_LOCK_UNLOCKED(timerLock)/' \
207 -i ../vmmon-only/linux/driver.c
208 sed -e 's/SPIN_LOCK_UNLOCKED/SPIN_LOCK_UNLOCKED(vnetHubLock)/' \
209 -i ../vmnet-only/hub.c
210 sed -e 's/RW_LOCK_UNLOCKED/RW_LOCK_UNLOCKED(vnetPeerLock)/' \
211 -i ../vmnet-only/driver.c
213 %if %{with dist_kernel}
214 %{__make} -j1 -C %{_kernelsrcdir} O=$PWD/o prepare scripts
216 install -d o/include/config
217 touch o/include/config/MARKER
218 ln -sf %{_kernelsrcdir}/scripts o/scripts
220 %{__make} -C %{_kernelsrcdir} modules \
225 %{?with_verbose:V=1} \
227 mv -f $mod.ko ../built/$mod-$cfg.ko
234 rm -rf $RPM_BUILD_ROOT
236 %if %{with userspace}
238 $RPM_BUILD_ROOT%{_sysconfdir}/vmware \
239 $RPM_BUILD_ROOT%{_sysconfdir}/vmware/vmnet8/{nat,dhcpd} \
240 $RPM_BUILD_ROOT%{_bindir} \
241 $RPM_BUILD_ROOT%{_libdir}/vmware/{bin,lib,share/pixmaps} \
242 $RPM_BUILD_ROOT%{_mandir} \
243 $RPM_BUILD_ROOT%{_pixmapsdir} \
244 $RPM_BUILD_ROOT%{_iconsdir}/hicolor \
245 $RPM_BUILD_ROOT%{_desktopdir} \
246 $RPM_BUILD_ROOT/etc/rc.d/init.d \
247 $RPM_BUILD_ROOT/var/run/vmware
251 install -d $RPM_BUILD_ROOT%{_sysconfdir}/modprobe.d
252 echo "options vmmon vmversion=16" > $RPM_BUILD_ROOT%{_sysconfdir}/modprobe.d/%{name}-vmmon.conf
254 install -d $RPM_BUILD_ROOT/lib/modules/%{_kernel_ver}{,smp}/misc
256 cd vmware-any-any-update%{urel}/built
257 install vmmon* $RPM_BUILD_ROOT/lib/modules/%{_kernel_ver}/misc/vmmon.ko
258 install vmnet* $RPM_BUILD_ROOT/lib/modules/%{_kernel_ver}/misc/vmnet.ko
262 %if %{with userspace}
263 install %{SOURCE8} $RPM_BUILD_ROOT/etc/rc.d/init.d/vmnet
264 install %{SOURCE3} $RPM_BUILD_ROOT%{_sysconfdir}/vmware/vmnet.conf
265 install %{SOURCE4} $RPM_BUILD_ROOT%{_pixmapsdir}
266 install %{SOURCE5} $RPM_BUILD_ROOT%{_desktopdir}
267 install %{SOURCE6} $RPM_BUILD_ROOT%{_sysconfdir}/vmware/vmnet8/nat/nat.conf
268 install %{SOURCE7} $RPM_BUILD_ROOT%{_sysconfdir}/vmware/vmnet8/dhcpd/dhcpd.conf
270 touch $RPM_BUILD_ROOT%{_sysconfdir}/vmware/vmnet8/dhcpd/dhcpd.leases
271 touch $RPM_BUILD_ROOT%{_sysconfdir}/vmware/vmnet8/dhcpd/dhcpd.leases~
273 cp -a lib/share/icons/hicolor/* $RPM_BUILD_ROOT%{_iconsdir}/hicolor
275 install lib/share/pixmaps/* $RPM_BUILD_ROOT%{_libdir}/vmware/share/pixmaps
276 install doc/EULA $RPM_BUILD_ROOT%{_libdir}/vmware/share/EULA.txt
278 install bin/*-* $RPM_BUILD_ROOT%{_bindir}
279 install lib/bin/vmware-vmx $RPM_BUILD_ROOT%{_libdir}/vmware/bin
280 install lib/lib/libvmwarebase.so.0/libvmwarebase.so.0 $RPM_BUILD_ROOT%{_libdir}
281 install lib/lib/libvmwareui.so.0/libvmwareui.so.0 $RPM_BUILD_ROOT%{_libdir}
283 cp -r lib/{bin-debug,config,help*,messages,xkeymap} \
284 $RPM_BUILD_ROOT%{_libdir}/vmware
286 cat > $RPM_BUILD_ROOT%{_sysconfdir}/vmware/locations <<EOF
288 VM_LIBDIR=%{_libdir}/vmware
291 %if %{with internal_libs}
292 install bin/vmplayer $RPM_BUILD_ROOT%{_bindir}
293 install lib/bin/vmplayer $RPM_BUILD_ROOT%{_libdir}/vmware/bin
294 cp -a lib/lib/* $RPM_BUILD_ROOT%{_libdir}/vmware/lib
295 cp -a lib/libconf $RPM_BUILD_ROOT%{_libdir}/vmware
297 install lib/bin/vmplayer $RPM_BUILD_ROOT%{_bindir}
298 install -d $RPM_BUILD_ROOT%{_libdir}/vmware/lib/lib{crypto,ssl}.so.0.9.7
299 ln -s %{_libdir}/libcrypto.so $RPM_BUILD_ROOT%{_libdir}/vmware/lib/libcrypto.so.0.9.7/libcrypto.so.0.9.7
300 ln -s %{_libdir}/libssl.so $RPM_BUILD_ROOT%{_libdir}/vmware/lib/libssl.so.0.9.7/libssl.so.0.9.7
303 # remove not needed files
304 rm -rf $RPM_BUILD_ROOT%{_bindir}/vmware-{config,uninstall}.pl $RPM_BUILD_ROOT%{_iconsdir}/hicolor/index.theme
308 rm -rf $RPM_BUILD_ROOT
311 %update_icon_cache hicolor
312 %if %{with internal_libs}
313 gdk-pixbuf-query-loaders %{_libdir}/vmware/libconf/lib/gtk-2.0/2.10.0/loaders/*.so \
314 > %{_libdir}/vmware/libconf/etc/gtk-2.0/gdk-pixbuf.loaders
315 gtk-query-immodules-2.0 %{_libdir}/vmware/libconf/lib/gtk-2.0/2.10.0/immodules/*.so \
316 > %{_libdir}/vmware/libconf/etc/gtk-2.0/gtk.immodules
317 pango-querymodules %{_libdir}/vmware/libconf/lib/pango/1.5.0/modules/*.so \
318 > %{_libdir}/vmware/libconf/etc/pango/pango.modules
322 %update_icon_cache hicolor
325 /sbin/chkconfig --add vmnet
326 %service vmnet restart "VMware networking service"
329 if [ "$1" = "0" ]; then
331 /sbin/chkconfig --del vmnet
334 %post -n kernel%{_alt_kernel}-misc-vmmon
335 %depmod %{_kernel_ver}
337 %postun -n kernel%{_alt_kernel}-misc-vmmon
338 %depmod %{_kernel_ver}
340 %post -n kernel%{_alt_kernel}-misc-vmnet
341 %depmod %{_kernel_ver}
343 %postun -n kernel%{_alt_kernel}-misc-vmnet
344 %depmod %{_kernel_ver}
346 %if %{with userspace}
348 %defattr(644,root,root,755)
349 %doc doc/* lib/configurator/vmnet-{dhcpd,nat}.conf
350 %dir %{_sysconfdir}/vmware
351 %{_sysconfdir}/vmware/locations
352 %attr(755,root,root) %{_bindir}/vmplayer
353 %attr(755,root,root) %{_bindir}/vmware-acetool
354 %attr(755,root,root) %{_bindir}/vm-support
355 %attr(755,root,root) %{_libdir}/libvmwarebase.so.*
356 %attr(755,root,root) %{_libdir}/libvmwareui.so.*
357 %dir %{_libdir}/vmware
358 %dir %{_libdir}/vmware/bin
360 %attr(4755,root,root) %{_libdir}/vmware/bin/vmware-vmx
361 %dir %{_libdir}/vmware/lib
362 %{_libdir}/vmware/config
363 %if %{with internal_libs}
364 %attr(755,root,root) %{_libdir}/vmware/bin/vmplayer
365 %attr(755,root,root) %{_libdir}/vmware/lib/lib*
366 %attr(755,root,root) %{_libdir}/vmware/lib/wrapper-gtk24.sh
368 %dir %{_libdir}/vmware/libconf
369 %dir %{_libdir}/vmware/libconf/etc
370 %{_libdir}/vmware/libconf/etc/fonts
371 %{_libdir}/vmware/libconf/etc/gtk-2.0
372 %{_libdir}/vmware/libconf/etc/pango
373 %dir %{_libdir}/vmware/libconf/lib
374 %dir %{_libdir}/vmware/libconf/lib/gtk-2.0
375 %dir %{_libdir}/vmware/libconf/lib/gtk-2.0/2.10.0
376 %dir %{_libdir}/vmware/libconf/lib/gtk-2.0/2.10.0/engines
377 %attr(755,root,root) %{_libdir}/vmware/libconf/lib/gtk-2.0/2.10.0/engines/*.so
378 %dir %{_libdir}/vmware/libconf/lib/gtk-2.0/2.10.0/immodules
379 %attr(755,root,root) %{_libdir}/vmware/libconf/lib/gtk-2.0/2.10.0/immodules/*.so
380 %dir %{_libdir}/vmware/libconf/lib/gtk-2.0/2.10.0/loaders
381 %attr(755,root,root) %{_libdir}/vmware/libconf/lib/gtk-2.0/2.10.0/loaders/*.so
382 %dir %{_libdir}/vmware/libconf/lib/pango
383 %dir %{_libdir}/vmware/libconf/lib/pango/1.5.0
384 %dir %{_libdir}/vmware/libconf/lib/pango/1.5.0/modules
385 %attr(755,root,root) %{_libdir}/vmware/libconf/lib/pango/1.5.0/modules/*.so
387 # package old openssl (buggy but needed to work)
388 %dir %{_libdir}/vmware/lib/libcrypto.so.0.9.7
389 %attr(755,root,root) %{_libdir}/vmware/lib/libcrypto.so.0.9.7/libcrypto.so.0.9.7
390 %dir %{_libdir}/vmware/lib/libssl.so.0.9.7
391 %attr(755,root,root) %{_libdir}/vmware/lib/libssl.so.0.9.7/libssl.so.0.9.7
393 %dir %{_libdir}/vmware/messages
394 %lang(en) %{_libdir}/vmware/messages/en
395 %lang(ja) %{_libdir}/vmware/messages/ja
396 %{_libdir}/vmware/share
397 %{_libdir}/vmware/xkeymap
398 %attr(1777,root,root) %dir /var/run/vmware
399 %{_iconsdir}/hicolor/*/*/*.png
400 %{_iconsdir}/hicolor/*/*/*.svg
402 %{_desktopdir}/%{name}.desktop
405 %defattr(644,root,root,755)
406 %dir %{_libdir}/vmware/bin-debug
408 %attr(4755,root,root) %{_libdir}/vmware/bin-debug/vmware-vmx
411 %defattr(644,root,root,755)
412 %{_libdir}/vmware/help*
415 %defattr(644,root,root,755)
416 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/vmware/vmnet.conf
417 %attr(754,root,root) /etc/rc.d/init.d/vmnet
418 %attr(755,root,root) %{_bindir}/vmnet-bridge
419 %attr(755,root,root) %{_bindir}/vmnet-detect
420 %attr(755,root,root) %{_bindir}/vmnet-dhcpd
421 %attr(755,root,root) %{_bindir}/vmnet-natd
422 %attr(755,root,root) %{_bindir}/vmnet-netifup
423 %attr(755,root,root) %{_bindir}/vmnet-sniffer
424 %attr(755,root,root) %{_bindir}/vmware-ping
425 %dir %{_sysconfdir}/vmware/vmnet8
426 %dir %{_sysconfdir}/vmware/vmnet8/dhcpd
427 %dir %{_sysconfdir}/vmware/vmnet8/nat
428 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/vmware/vmnet8/dhcpd/dhcpd.conf
429 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/vmware/vmnet8/nat/nat.conf
430 %verify(not md5 mtime size) %{_sysconfdir}/vmware/vmnet8/dhcpd/dhcpd.leases*
435 %files -n kernel%{_alt_kernel}-misc-vmmon
436 %defattr(644,root,root,755)
437 %{_sysconfdir}/modprobe.d/%{name}-vmmon.conf
438 /lib/modules/%{_kernel_ver}/misc/vmmon.ko*
440 %files -n kernel%{_alt_kernel}-misc-vmnet
441 %defattr(644,root,root,755)
442 /lib/modules/%{_kernel_ver}/misc/vmnet.ko*