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-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 ExclusiveArch: %{ix86} %{x8664}
57 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
59 %define _noautoprovfiles %{_libdir}/vmware/lib/.*\.so.*
62 VMware Player Virtual Platform is a thin software layer that allows
63 multiple guest operating systems to run concurrently on a single
64 standard PC, without repartitioning or rebooting, and without
65 significant loss of performance.
67 %description -l pl.UTF-8
68 VMware Player Virtual Platform to cienka warstwa oprogramowania
69 pozwalająca na jednoczesne działanie wielu gościnnych systemów
70 operacyjnych na jednym zwykłym PC, bez repartycjonowania ani
71 rebootowania, bez znacznej utraty wydajności.
74 Summary: VMware debug utility
75 Summary(pl.UTF-8): Narzędzie VMware do odpluskwiania
76 Group: Applications/Emulators
77 Requires: %{name} = %{version}-%{release}
82 %description debug -l pl.UTF-8
83 Narzędzie VMware do odpluskwiania.
86 Summary: VMware Player help files
87 Summary(pl.UTF-8): Pliki pomocy dla VMware Player
88 Group: Applications/Emulators
89 Requires: %{name} = %{version}-%{release}
92 VMware Player help files.
94 %description help -l pl.UTF-8
95 Pliki pomocy dla VMware Player.
98 Summary: VMware networking utilities
99 Summary(pl.UTF-8): Narzędzia VMware do obsługi sieci
100 Group: Applications/Emulators
101 Requires(post,preun): /sbin/chkconfig
102 Requires: %{name} = %{version}-%{release}
104 Obsoletes: VMware-Player-samba
106 %description networking
107 VMware networking utilities.
109 %description networking -l pl.UTF-8
110 Narzędzia VMware do obsługi sieci.
112 %package -n kernel%{_alt_kernel}-misc-vmmon
113 Summary: Kernel module for VMware Player
114 Summary(pl.UTF-8): Moduł jądra dla VMware Player
115 Release: %{_rel}@%{_kernel_ver_str}
117 Requires(post,postun): /sbin/depmod
118 Requires: dev >= 2.9.0-7
119 %if %{with dist_kernel}
120 %requires_releq_kernel
121 Requires(postun): %releq_kernel
123 Provides: kernel(vmmon) = %{version}-%{_rel}
125 %description -n kernel%{_alt_kernel}-misc-vmmon
126 Kernel modules for VMware Player - vmmon.
128 %description -n kernel%{_alt_kernel}-misc-vmmon -l pl.UTF-8
129 Moduły jądra dla VMware Player - vmmon.
131 %package -n kernel%{_alt_kernel}-misc-vmnet
132 Summary: Kernel module for VMware Player
133 Summary(pl.UTF-8): Moduł jądra dla VMware Player
134 Release: %{_rel}@%{_kernel_ver_str}
136 Requires(post,postun): /sbin/depmod
137 Requires: dev >= 2.9.0-7
138 %if %{with dist_kernel}
139 %requires_releq_kernel
140 Requires(postun): %releq_kernel
142 Provides: kernel(vmnet) = %{version}-%{_rel}
144 %description -n kernel%{_alt_kernel}-misc-vmnet
145 Kernel modules for VMware Player - vmnet.
147 %description -n kernel%{_alt_kernel}-misc-vmnet -l pl.UTF-8
148 Moduły jądra dla VMware Player - vmnet.
151 %setup -q -n vmware-player-distrib -a2
152 cd vmware-any-any-update%{urel}
155 cp -a vmmon-only{,.clean}
156 cp -a vmnet-only{,.clean}
157 sed -e 's/filter x86_64%/filter x86_64% amd64% ia64%/' \
158 -i vmnet-only.clean/Makefile.kernel
164 # will never use these
165 rm -f lib/libconf/lib/gtk-2.0/2.10.0/engines/*.a
166 rm -f lib/libconf/lib/gtk-2.0/2.10.0/immodules/*.a
167 rm -f lib/libconf/lib/gtk-2.0/2.10.0/loaders/*.a
168 rm -f lib/libconf/lib/pango/1.5.0/modules/*.a
170 %{__sed} -i -e 's#/build/.*/libconf/#%{_libdir}/vmware/libconf/#' \
171 lib/libconf/etc/gtk-2.0/{gdk-pixbuf.loaders,gtk.immodules} \
172 lib/libconf/etc/pango/{pango.modules,pangorc}
175 %{__sed} -i -e 's#/etc/pango/pango/pangox.aliases#/etc/pango/pangox.aliases#' \
176 lib/libconf/etc/pango/pangorc
179 sed -i 's:vm_db_answer_LIBDIR:VM_LIBDIR:g;s:vm_db_answer_BINDIR:VM_BINDIR:g' bin/vmplayer
181 cd vmware-any-any-update%{urel}
182 chmod u+w ../lib/bin/vmware-vmx ../lib/bin-debug/vmware-vmx ../bin/vmnet-bridge
184 # hack until new any-any-update version available
185 sed -i -e 's/#define.*VMMON_VERSION_V6.*/#define VMMON_VERSION_V6 (167 << 16 | 0)/g' vmmon-only.clean/include/iocontrols_compat.h
191 for mod in vmmon vmnet ; do
192 for cfg in %{?with_dist_kernel:dist}%{!?with_dist_kernel:nondist}; do
193 if [ ! -r "%{_kernelsrcdir}/config-$cfg" ]; then
197 cp -a $mod-only.clean $mod-only
199 install -d o/include/linux
200 ln -sf %{_kernelsrcdir}/config-$cfg o/.config
201 ln -sf %{_kernelsrcdir}/Module.symvers-$cfg o/Module.symvers
202 ln -sf %{_kernelsrcdir}/include/linux/autoconf-$cfg.h o/include/linux/autoconf.h
203 if grep -q "^CONFIG_PREEMPT_RT=y$" o/.config; then
204 sed -e '/pollQueueLock/s/SPIN_LOCK_UNLOCKED/SPIN_LOCK_UNLOCKED(pollQueueLock)/' \
205 -e '/timerLock/s/SPIN_LOCK_UNLOCKED/SPIN_LOCK_UNLOCKED(timerLock)/' \
206 -i ../vmmon-only/linux/driver.c
207 sed -e 's/SPIN_LOCK_UNLOCKED/SPIN_LOCK_UNLOCKED(vnetHubLock)/' \
208 -i ../vmnet-only/hub.c
209 sed -e 's/RW_LOCK_UNLOCKED/RW_LOCK_UNLOCKED(vnetPeerLock)/' \
210 -i ../vmnet-only/driver.c
212 %if %{with dist_kernel}
213 %{__make} -j1 -C %{_kernelsrcdir} O=$PWD/o prepare scripts
215 install -d o/include/config
216 touch o/include/config/MARKER
217 ln -sf %{_kernelsrcdir}/scripts o/scripts
219 %{__make} -C %{_kernelsrcdir} modules \
224 %{?with_verbose:V=1} \
226 mv -f $mod.ko ../built/$mod-$cfg.ko
233 rm -rf $RPM_BUILD_ROOT
235 %if %{with userspace}
237 $RPM_BUILD_ROOT%{_sysconfdir}/vmware \
238 $RPM_BUILD_ROOT%{_sysconfdir}/vmware/vmnet8/{nat,dhcpd} \
239 $RPM_BUILD_ROOT%{_bindir} \
240 $RPM_BUILD_ROOT%{_libdir}/vmware/{bin,lib,share/pixmaps} \
241 $RPM_BUILD_ROOT%{_mandir} \
242 $RPM_BUILD_ROOT%{_pixmapsdir} \
243 $RPM_BUILD_ROOT%{_iconsdir}/hicolor \
244 $RPM_BUILD_ROOT%{_desktopdir} \
245 $RPM_BUILD_ROOT/etc/rc.d/init.d \
246 $RPM_BUILD_ROOT/var/run/vmware
250 install -d $RPM_BUILD_ROOT%{_sysconfdir}/modprobe.d
251 echo "options vmmon vmversion=16" > $RPM_BUILD_ROOT%{_sysconfdir}/modprobe.d/%{name}-vmmon.conf
253 install -d $RPM_BUILD_ROOT/lib/modules/%{_kernel_ver}{,smp}/misc
255 cd vmware-any-any-update%{urel}/built
256 install vmmon* $RPM_BUILD_ROOT/lib/modules/%{_kernel_ver}/misc/vmmon.ko
257 install vmnet* $RPM_BUILD_ROOT/lib/modules/%{_kernel_ver}/misc/vmnet.ko
261 %if %{with userspace}
262 install %{SOURCE8} $RPM_BUILD_ROOT/etc/rc.d/init.d/vmnet
263 install %{SOURCE3} $RPM_BUILD_ROOT%{_sysconfdir}/vmware/vmnet.conf
264 install %{SOURCE4} $RPM_BUILD_ROOT%{_pixmapsdir}
265 install %{SOURCE5} $RPM_BUILD_ROOT%{_desktopdir}
266 install %{SOURCE6} $RPM_BUILD_ROOT%{_sysconfdir}/vmware/vmnet8/nat/nat.conf
267 install %{SOURCE7} $RPM_BUILD_ROOT%{_sysconfdir}/vmware/vmnet8/dhcpd/dhcpd.conf
269 touch $RPM_BUILD_ROOT%{_sysconfdir}/vmware/vmnet8/dhcpd/dhcpd.leases
270 touch $RPM_BUILD_ROOT%{_sysconfdir}/vmware/vmnet8/dhcpd/dhcpd.leases~
272 cp -a lib/share/icons/hicolor/* $RPM_BUILD_ROOT%{_iconsdir}/hicolor
274 install lib/share/pixmaps/* $RPM_BUILD_ROOT%{_libdir}/vmware/share/pixmaps
275 install doc/EULA $RPM_BUILD_ROOT%{_libdir}/vmware/share/EULA.txt
277 install bin/*-* $RPM_BUILD_ROOT%{_bindir}
278 install lib/bin/vmware-vmx $RPM_BUILD_ROOT%{_libdir}/vmware/bin
279 install lib/lib/libvmwarebase.so.0/libvmwarebase.so.0 $RPM_BUILD_ROOT%{_libdir}
280 install lib/lib/libvmwareui.so.0/libvmwareui.so.0 $RPM_BUILD_ROOT%{_libdir}
282 cp -r lib/{bin-debug,config,help*,messages,xkeymap} \
283 $RPM_BUILD_ROOT%{_libdir}/vmware
285 cat > $RPM_BUILD_ROOT%{_sysconfdir}/vmware/locations <<EOF
287 VM_LIBDIR=%{_libdir}/vmware
290 %if %{with internal_libs}
291 install bin/vmplayer $RPM_BUILD_ROOT%{_bindir}
292 install lib/bin/vmplayer $RPM_BUILD_ROOT%{_libdir}/vmware/bin
293 cp -a lib/lib/* $RPM_BUILD_ROOT%{_libdir}/vmware/lib
294 cp -a lib/libconf $RPM_BUILD_ROOT%{_libdir}/vmware
296 install lib/bin/vmplayer $RPM_BUILD_ROOT%{_bindir}
297 install -d $RPM_BUILD_ROOT%{_libdir}/vmware/lib/lib{crypto,ssl}.so.0.9.7
298 ln -s %{_libdir}/libcrypto.so $RPM_BUILD_ROOT%{_libdir}/vmware/lib/libcrypto.so.0.9.7/libcrypto.so.0.9.7
299 ln -s %{_libdir}/libssl.so $RPM_BUILD_ROOT%{_libdir}/vmware/lib/libssl.so.0.9.7/libssl.so.0.9.7
302 # remove not needed files
303 rm -rf $RPM_BUILD_ROOT%{_bindir}/vmware-{config,uninstall}.pl $RPM_BUILD_ROOT%{_iconsdir}/hicolor/index.theme
307 rm -rf $RPM_BUILD_ROOT
309 %if %{with internal_libs}
311 gdk-pixbuf-query-loaders %{_libdir}/vmware/libconf/lib/gtk-2.0/2.10.0/loaders/*.so \
312 > %{_libdir}/vmware/libconf/etc/gtk-2.0/gdk-pixbuf.loaders
313 gtk-query-immodules-2.0 %{_libdir}/vmware/libconf/lib/gtk-2.0/2.10.0/immodules/*.so \
314 > %{_libdir}/vmware/libconf/etc/gtk-2.0/gtk.immodules
315 pango-querymodules %{_libdir}/vmware/libconf/lib/pango/1.5.0/modules/*.so \
316 > %{_libdir}/vmware/libconf/etc/pango/pango.modules
320 /sbin/chkconfig --add vmnet
321 %service vmnet restart "VMware networking service"
324 if [ "$1" = "0" ]; then
326 /sbin/chkconfig --del vmnet
329 %post -n kernel%{_alt_kernel}-misc-vmmon
330 %depmod %{_kernel_ver}
332 %postun -n kernel%{_alt_kernel}-misc-vmmon
333 %depmod %{_kernel_ver}
335 %post -n kernel%{_alt_kernel}-misc-vmnet
336 %depmod %{_kernel_ver}
338 %postun -n kernel%{_alt_kernel}-misc-vmnet
339 %depmod %{_kernel_ver}
341 %if %{with userspace}
343 %defattr(644,root,root,755)
344 %doc doc/* lib/configurator/vmnet-{dhcpd,nat}.conf
345 %dir %{_sysconfdir}/vmware
346 %{_sysconfdir}/vmware/locations
347 %attr(755,root,root) %{_bindir}/vmplayer
348 %attr(755,root,root) %{_bindir}/vmware-acetool
349 %attr(755,root,root) %{_bindir}/vm-support
350 %attr(755,root,root) %{_libdir}/libvmwarebase.so.*
351 %attr(755,root,root) %{_libdir}/libvmwareui.so.*
352 %dir %{_libdir}/vmware
353 %dir %{_libdir}/vmware/bin
355 %attr(4755,root,root) %{_libdir}/vmware/bin/vmware-vmx
356 %dir %{_libdir}/vmware/lib
357 %{_libdir}/vmware/config
358 %if %{with internal_libs}
359 %attr(755,root,root) %{_libdir}/vmware/bin/vmplayer
360 %attr(755,root,root) %{_libdir}/vmware/lib/lib*
361 %attr(755,root,root) %{_libdir}/vmware/lib/wrapper-gtk24.sh
363 %dir %{_libdir}/vmware/libconf
364 %dir %{_libdir}/vmware/libconf/etc
365 %{_libdir}/vmware/libconf/etc/fonts
366 %{_libdir}/vmware/libconf/etc/gtk-2.0
367 %{_libdir}/vmware/libconf/etc/pango
368 %dir %{_libdir}/vmware/libconf/lib
369 %dir %{_libdir}/vmware/libconf/lib/gtk-2.0
370 %dir %{_libdir}/vmware/libconf/lib/gtk-2.0/2.10.0
371 %dir %{_libdir}/vmware/libconf/lib/gtk-2.0/2.10.0/engines
372 %attr(755,root,root) %{_libdir}/vmware/libconf/lib/gtk-2.0/2.10.0/engines/*.so
373 %dir %{_libdir}/vmware/libconf/lib/gtk-2.0/2.10.0/immodules
374 %attr(755,root,root) %{_libdir}/vmware/libconf/lib/gtk-2.0/2.10.0/immodules/*.so
375 %dir %{_libdir}/vmware/libconf/lib/gtk-2.0/2.10.0/loaders
376 %attr(755,root,root) %{_libdir}/vmware/libconf/lib/gtk-2.0/2.10.0/loaders/*.so
377 %dir %{_libdir}/vmware/libconf/lib/pango
378 %dir %{_libdir}/vmware/libconf/lib/pango/1.5.0
379 %dir %{_libdir}/vmware/libconf/lib/pango/1.5.0/modules
380 %attr(755,root,root) %{_libdir}/vmware/libconf/lib/pango/1.5.0/modules/*.so
382 # package old openssl (buggy but needed to work)
383 %dir %{_libdir}/vmware/lib/libcrypto.so.0.9.7
384 %attr(755,root,root) %{_libdir}/vmware/lib/libcrypto.so.0.9.7/libcrypto.so.0.9.7
386 %dir %{_libdir}/vmware/messages
387 %lang(en) %{_libdir}/vmware/messages/en
388 %lang(ja) %{_libdir}/vmware/messages/ja
389 %{_libdir}/vmware/share
390 %{_libdir}/vmware/xkeymap
391 %attr(1777,root,root) %dir /var/run/vmware
392 %{_iconsdir}/hicolor/*/*/*.png
393 %{_iconsdir}/hicolor/*/*/*.svg
395 %{_desktopdir}/%{name}.desktop
398 %defattr(644,root,root,755)
399 %dir %{_libdir}/vmware/bin-debug
401 %attr(4755,root,root) %{_libdir}/vmware/bin-debug/vmware-vmx
404 %defattr(644,root,root,755)
405 %{_libdir}/vmware/help*
408 %defattr(644,root,root,755)
409 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/vmware/vmnet.conf
410 %attr(754,root,root) /etc/rc.d/init.d/vmnet
411 %attr(755,root,root) %{_bindir}/vmnet-bridge
412 %attr(755,root,root) %{_bindir}/vmnet-detect
413 %attr(755,root,root) %{_bindir}/vmnet-dhcpd
414 %attr(755,root,root) %{_bindir}/vmnet-natd
415 %attr(755,root,root) %{_bindir}/vmnet-netifup
416 %attr(755,root,root) %{_bindir}/vmnet-sniffer
417 %attr(755,root,root) %{_bindir}/vmware-ping
418 %dir %{_sysconfdir}/vmware/vmnet8
419 %dir %{_sysconfdir}/vmware/vmnet8/dhcpd
420 %dir %{_sysconfdir}/vmware/vmnet8/nat
421 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/vmware/vmnet8/dhcpd/dhcpd.conf
422 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/vmware/vmnet8/nat/nat.conf
423 %verify(not md5 mtime size) %{_sysconfdir}/vmware/vmnet8/dhcpd/dhcpd.leases*
428 %files -n kernel%{_alt_kernel}-misc-vmmon
429 %defattr(644,root,root,755)
430 %{_sysconfdir}/modprobe.d/%{name}-vmmon.conf
431 /lib/modules/%{_kernel_ver}/misc/vmmon.ko*
433 %files -n kernel%{_alt_kernel}-misc-vmnet
434 %defattr(644,root,root,755)
435 /lib/modules/%{_kernel_ver}/misc/vmnet.ko*