2 %bcond_without dist_kernel # without distribution kernel
3 %bcond_without kernel # don't build kernel modules
4 %bcond_without smp # without SMP kernel modules
5 %bcond_without userspace # don't build userspace utilities
6 %bcond_with kernel24 # build kernel24 modules (disable kernel26)
7 %bcond_with internal_libs # internal libs stuff
8 %bcond_with verbose # verbose build (V=1)
10 %include /usr/lib/rpm/macros.perl
12 %define _kernelsrcdir /usr/src/linux-2.4
16 %undefine with_userspace
23 %define _ccver %(rpm -q --qf "%{VERSION}" gcc)
25 Summary: VMware player
26 Summary(pl): VMware player - wirtualna platforma dla stacji roboczej
28 Version: %{_ver}.%{_build}
30 License: custom, non-distributable
31 Group: Applications/Emulators
32 Source0: http://download3.vmware.com/software/wkst/%{name}-%{_ver}-%{_build}.tar.gz
33 Source0: http://download3.vmware.com/software/vmplayer/%{name}-%{_ver}-%{_build}.tar.gz
34 # NoSource0-md5:58d0aab1f3303dfb5354a929bcf1b0e9
35 Source1: http://knihovny.cvut.cz/ftp/pub/vmware/vmware-any-any-update%{_urel}.tar.gz
36 # Source1-md5: b3ce457f5b9ae8b606fd70f56084877d
38 Source3: %{name}-vmnet.conf
40 Source5: %{name}.desktop
41 Source6: %{name}-nat.conf
42 Source7: %{name}-dhcpd.conf
43 Patch0: %{name}-Makefile.patch
44 Patch1: %{name}-run_script.patch
46 URL: http://www.vmware.com/
47 BuildRequires: gcc-c++
48 %{?with_dist_kernel:BuildRequires: kernel-module-build >= 3:2.6.7}
49 BuildRequires: rpm-perlprov
50 BuildRequires: rpmbuild(macros) >= 1.268
51 BuildRequires: sed >= 4.0
52 Requires: kernel(vmmon) = %{version}-%{_rel}
53 Requires: libgnomecanvasmm
54 Requires: libview >= 0.5.5-2
55 ExclusiveArch: %{ix86} %{x8664}
56 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
58 %define _noautoprovfiles %{_libdir}/vmware/lib/.*\.so.*
61 VMware Player Virtual Platform is a thin software layer that allows
62 multiple guest operating systems to run concurrently on a single
63 standard PC, without repartitioning or rebooting, and without
64 significant loss of performance.
67 VMware Player Virtual Platform to cienka warstwa oprogramowania
68 pozwalaj±ca na jednoczesne dzia³anie wielu go¶cinnych systemów
69 operacyjnych na jednym zwyk³ym PC, bez repartycjonowania ani
70 rebootowania, bez znacznej utraty wydajno¶ci.
73 Summary: VMware debug utility
74 Summary(pl): Narzêdzie VMware do odpluskwiania
75 Group: Applications/Emulators
76 Requires: %{name} = %{version}-%{release}
81 %description debug -l pl
82 Narzêdzie VMware do odpluskwiania.
85 Summary: VMware Player help files
86 Summary(pl): Pliki pomocy dla VMware Player
87 Group: Applications/Emulators
88 Requires: %{name} = %{version}-%{release}
92 VMware Player help files.
94 %description help -l pl
95 Pliki pomocy dla VMware Player.
98 Summary: VMware networking utilities
99 Summary(pl): Narzêdzia VMware do obs³ugi sieci
100 Group: Applications/Emulators
101 Requires(post,preun): /sbin/chkconfig
102 Requires: %{name} = %{version}-%{release}
103 Requires: kernel(vmnet) = %{version}-%{_rel}
105 Obsoletes: VMware-Player-samba
107 %description networking
108 VMware networking utilities.
110 %description networking -l pl
111 Narzêdzia VMware do obs³ugi sieci.
114 Summary: VMware SMB utilities
115 Summary(pl): Narzêdzia VMware do SMB
116 Group: Applications/Emulators
117 Requires: %{name} = %{version}-%{release}
120 VMware SMB utilities.
122 %description samba -l pl
123 Narzêdzia VMware do SMB.
125 %package -n kernel-misc-vmmon
126 Summary: Kernel module for VMware Player
127 Summary(pl): Modu³ j±dra dla VMware Player
128 Release: %{_rel}@%{_kernel_ver_str}
130 Requires(post,postun): /sbin/depmod
131 Requires: dev >= 2.9.0-7
132 %if %{with dist_kernel}
133 %requires_releq_kernel_up
134 Requires(postun): %releq_kernel_up
136 Provides: kernel(vmmon) = %{version}-%{_rel}
138 %description -n kernel-misc-vmmon
139 Kernel modules for VMware Player - vmmon.
141 %description -n kernel-misc-vmmon -l pl
142 Modu³y j±dra dla VMware Player - vmmon.
144 %package -n kernel-misc-vmnet
145 Summary: Kernel module for VMware Player
146 Summary(pl): Modu³ j±dra dla VMware Player
147 Release: %{_rel}@%{_kernel_ver_str}
149 Requires(post,postun): /sbin/depmod
150 Requires: dev >= 2.9.0-7
151 %if %{with dist_kernel}
152 %requires_releq_kernel_up
153 Requires(postun): %releq_kernel_up
155 Provides: kernel(vmnet) = %{version}-%{_rel}
157 %description -n kernel-misc-vmnet
158 Kernel modules for VMware Player - vmnet.
160 %description -n kernel-misc-vmnet -l pl
161 Modu³y j±dra dla VMware Player - vmnet.
163 %package -n kernel-smp-misc-vmmon
164 Summary: SMP kernel module for VMware Player
165 Summary(pl): Modu³ j±dra SMP dla VMware Player
166 Release: %{_rel}@%{_kernel_ver_str}
168 Requires(post,postun): /sbin/depmod
169 Requires: dev >= 2.9.0-7
170 %if %{with dist_kernel}
171 %requires_releq_kernel_smp
172 Requires(postun): %releq_kernel_smp
174 Provides: kernel(vmmon) = %{version}-%{_rel}
176 %description -n kernel-smp-misc-vmmon
177 SMP kernel modules fov VMware Player - vmmon-smp.
179 %description -n kernel-smp-misc-vmmon -l pl
180 Modu³y j±dra SMP dla VMware Player - vmmon-smp.
182 %package -n kernel-smp-misc-vmnet
183 Summary: SMP kernel module for VMware Player
184 Summary(pl): Modu³ j±dra SMP dla VMware Player
185 Release: %{_rel}@%{_kernel_ver_str}
187 Requires(post,postun): /sbin/depmod
188 Requires: dev >= 2.9.0-7
189 %if %{with dist_kernel}
190 %requires_releq_kernel_smp
191 Requires(postun): %releq_kernel_smp
193 Provides: kernel(vmnet) = %{version}-%{_rel}
195 %description -n kernel-smp-misc-vmnet
196 SMP kernel module for VMware Player - vmnet-smp.
198 %description -n kernel-smp-misc-vmnet -l pl
199 Modu³y j±dra SMP dla VMware Player - vmnet-smp.
201 %package -n kernel24-misc-vmmon
202 Summary: Kernel module for VMware Player
203 Summary(pl): Modu³ j±dra dla VMware Player
204 Release: %{_rel}@%{_kernel_ver_str}
206 Requires(post,postun): /sbin/depmod
207 Requires: dev >= 2.9.0-7
208 %if %{with dist_kernel}
209 %requires_releq_kernel_up
210 Requires(postun): %releq_kernel_up
212 Provides: kernel(vmmon) = %{version}-%{_rel}
214 %description -n kernel24-misc-vmmon
215 Kernel modules for VMware Player - vmmon.
217 %description -n kernel24-misc-vmmon -l pl
218 Modu³y j±dra dla VMware Player - vmmon.
220 %package -n kernel24-misc-vmnet
221 Summary: Kernel module for VMware Player
222 Summary(pl): Modu³ j±dra dla VMware Player
223 Release: %{_rel}@%{_kernel_ver_str}
225 Requires(post,postun): /sbin/depmod
226 Requires: dev >= 2.9.0-7
227 %if %{with dist_kernel}
228 %requires_releq_kernel_up
229 Requires(postun): %releq_kernel_up
231 Provides: kernel(vmnet) = %{version}-%{_rel}
233 %description -n kernel24-misc-vmnet
234 Kernel modules for VMware Player - vmnet.
236 %description -n kernel24-misc-vmnet -l pl
237 Modu³y j±dra dla VMware Player - vmnet.
239 %package -n kernel24-smp-misc-vmmon
240 Summary: SMP kernel module for VMware Player
241 Summary(pl): Modu³ j±dra SMP dla VMware Player
242 Release: %{_rel}@%{_kernel_ver_str}
244 Requires(post,postun): /sbin/depmod
245 Requires: dev >= 2.9.0-7
246 %if %{with dist_kernel}
247 %requires_releq_kernel_smp
248 Requires(postun): %releq_kernel_smp
250 Provides: kernel(vmmon) = %{version}-%{_rel}
252 %description -n kernel24-smp-misc-vmmon
253 SMP kernel modules fov VMware Player - vmmon-smp.
255 %description -n kernel24-smp-misc-vmmon -l pl
256 Modu³y j±dra SMP dla VMware Player - vmmon-smp.
258 %package -n kernel24-smp-misc-vmnet
259 Summary: SMP kernel module for VMware Player
260 Summary(pl): Modu³ j±dra SMP dla VMware Player
261 Release: %{_rel}@%{_kernel_ver_str}
263 Requires(post,postun): /sbin/depmod
264 Requires: dev >= 2.9.0-7
265 %if %{with dist_kernel}
266 %requires_releq_kernel_smp
267 Requires(postun): %releq_kernel_smp
269 Provides: kernel(vmnet) = %{version}-%{_rel}
271 %description -n kernel24-smp-misc-vmnet
272 SMP kernel module for VMware Player - vmnet-smp.
274 %description -n kernel24-smp-misc-vmnet -l pl
275 Modu³y j±dra SMP dla VMware Player - vmnet-smp.
278 %setup -q -n vmware-player-distrib -a1
279 cd vmware-any-any-update%{_urel}
282 cp -a vmmon-only{,.clean}
283 cp -a vmnet-only{,.clean}
284 sed -e 's/filter x86_64%/filter x86_64% amd64% ia64%/' \
285 -i vmnet-only.clean/Makefile.kernel
289 sed -i 's:vm_db_answer_LIBDIR:VM_LIBDIR:g;s:vm_db_answer_BINDIR:VM_BINDIR:g' bin/vmplayer
291 cd vmware-any-any-update%{_urel}
292 chmod u+w ../lib/bin/vmware-vmx ../lib/bin-debug/vmware-vmx ../bin/vmnet-bridge
298 %if %{without kernel24}
299 for mod in vmmon vmnet ; do
300 for cfg in %{?with_dist_kernel:%{?with_smp:smp} up}%{!?with_dist_kernel:nondist}; do
301 if [ ! -r "%{_kernelsrcdir}/config-$cfg" ]; then
305 cp -a $mod-only.clean $mod-only
307 install -d o/include/linux
308 ln -sf %{_kernelsrcdir}/config-$cfg o/.config
309 ln -sf %{_kernelsrcdir}/Module.symvers-$cfg o/Module.symvers
310 ln -sf %{_kernelsrcdir}/include/linux/autoconf-$cfg.h o/include/linux/autoconf.h
311 if grep -q "^CONFIG_PREEMPT_RT=y$" o/.config; then
312 sed -e '/pollQueueLock/s/SPIN_LOCK_UNLOCKED/SPIN_LOCK_UNLOCKED(pollQueueLock)/' \
313 -e '/timerLock/s/SPIN_LOCK_UNLOCKED/SPIN_LOCK_UNLOCKED(timerLock)/' \
314 -i ../vmmon-only/linux/driver.c
315 sed -e 's/SPIN_LOCK_UNLOCKED/SPIN_LOCK_UNLOCKED(vnetHubLock)/' \
316 -i ../vmnet-only/hub.c
317 sed -e 's/RW_LOCK_UNLOCKED/RW_LOCK_UNLOCKED(vnetPeerLock)/' \
318 -i ../vmnet-only/driver.c
320 %if %{with dist_kernel}
321 %{__make} -C %{_kernelsrcdir} O=$PWD/o prepare scripts
323 install -d o/include/config
324 touch o/include/config/MARKER
325 ln -sf %{_kernelsrcdir}/scripts o/scripts
327 %{__make} -C %{_kernelsrcdir} modules \
332 %{?with_verbose:V=1} \
334 mv -f $mod.ko ../built/$mod-$cfg.ko
340 for mod in vmmon vmnet ; do
342 tar xf ../lib/modules/source/$mod.tar
344 sed -i s/'^HEADER_DIR.*'/'HEADER_DIR = \%{_prefix}\/src\/linux-2.4\/include'/ Makefile
345 sed -i s/'^BUILD_DIR.*'/'BUILD_DIR = .'/ Makefile
349 VM_KBUILD=no VMWARE_VER=VME_V5 \
350 M=$PWD O=$PWD CC=%{kgcc} \
351 INCLUDES="%{rpmcflags} -I. -D__KERNEL_SMP=1 -D__SMP__ -I%{_kernelsrcdir}/include"
352 if [ -e $mod-xxx-* ]; then
353 mv -f $mod-xxx-* ../built/$mod-smp.o
355 mv -f driver-*/$mod-xxx-* ../built/$mod-smp.o
358 %{__make} VM_KBUILD=no clean
361 VM_KBUILD=no VMWARE_VER=VME_V5 \
362 M=$PWD O=$PWD CC=%{kgcc} \
363 INCLUDES="%{rpmcflags} -I. -I%{_kernelsrcdir}/include"
364 if [ -e $mod-xxx-* ]; then
365 mv -f $mod-xxx-* ../built/$mod.o
367 mv -f driver-*/$mod-xxx-* ../built/$mod.o
377 rm -rf $RPM_BUILD_ROOT
379 %if %{with userspace}
381 $RPM_BUILD_ROOT%{_sysconfdir}/vmware \
382 $RPM_BUILD_ROOT%{_sysconfdir}/vmware/vmnet8/{nat,dhcpd} \
383 $RPM_BUILD_ROOT%{_bindir} \
384 $RPM_BUILD_ROOT%{_libdir}/vmware/{bin,share/pixmaps} \
385 $RPM_BUILD_ROOT%{_mandir} \
386 $RPM_BUILD_ROOT%{_pixmapsdir} \
387 $RPM_BUILD_ROOT%{_desktopdir} \
388 $RPM_BUILD_ROOT/etc/rc.d/init.d \
389 $RPM_BUILD_ROOT/var/run/vmware
393 install -d $RPM_BUILD_ROOT/lib/modules/%{_kernel_ver}{,smp}/misc
395 cd vmware-any-any-update%{_urel}
397 %if %{without kernel24}
398 install built/vmmon-%{?with_dist_kernel:up}%{!?with_dist_kernel:nondist}.ko \
399 $RPM_BUILD_ROOT/lib/modules/%{_kernel_ver}/misc/vmmon.ko
400 install built/vmnet-%{?with_dist_kernel:up}%{!?with_dist_kernel:nondist}.ko \
401 $RPM_BUILD_ROOT/lib/modules/%{_kernel_ver}/misc/vmnet.ko
402 %if %{with smp} && %{with dist_kernel}
403 install built/vmmon-smp.ko \
404 $RPM_BUILD_ROOT/lib/modules/%{_kernel_ver}smp/misc/vmmon.ko
405 install built/vmnet-smp.ko \
406 $RPM_BUILD_ROOT/lib/modules/%{_kernel_ver}smp/misc/vmnet.ko
410 install built/vmmon.o \
411 $RPM_BUILD_ROOT/lib/modules/%{_kernel_ver}/misc/vmmon.o
412 install built/vmnet.o \
413 $RPM_BUILD_ROOT/lib/modules/%{_kernel_ver}/misc/vmnet.o
414 %if %{with smp} && %{with dist_kernel}
415 install built/vmmon-smp.o \
416 $RPM_BUILD_ROOT/lib/modules/%{_kernel_ver}smp/misc/vmmon.o
417 install built/vmnet-smp.o \
418 $RPM_BUILD_ROOT/lib/modules/%{_kernel_ver}smp/misc/vmnet.o
426 %if %{with userspace}
427 install %{SOURCE2} $RPM_BUILD_ROOT/etc/rc.d/init.d/vmnet
428 install %{SOURCE3} $RPM_BUILD_ROOT%{_sysconfdir}/vmware/vmnet.conf
429 install %{SOURCE4} $RPM_BUILD_ROOT%{_pixmapsdir}
430 install %{SOURCE5} $RPM_BUILD_ROOT%{_desktopdir}
431 install %{SOURCE6} $RPM_BUILD_ROOT%{_sysconfdir}/vmware/vmnet8/nat/nat.conf
432 install %{SOURCE7} $RPM_BUILD_ROOT%{_sysconfdir}/vmware/vmnet8/dhcpd/dhcpd.conf
434 touch $RPM_BUILD_ROOT%{_sysconfdir}/vmware/vmnet8/dhcpd/dhcpd.leases
435 touch $RPM_BUILD_ROOT%{_sysconfdir}/vmware/vmnet8/dhcpd/dhcpd.leases~
437 install lib/share/pixmaps/* $RPM_BUILD_ROOT%{_libdir}/vmware/share/pixmaps
439 install bin/*-* $RPM_BUILD_ROOT%{_bindir}
440 install lib/bin/vmware-vmx $RPM_BUILD_ROOT%{_libdir}/vmware/bin
442 cp -r lib/{bin-debug,config,help*,messages,xkeymap} \
443 $RPM_BUILD_ROOT%{_libdir}/vmware
445 cat > $RPM_BUILD_ROOT%{_sysconfdir}/vmware/locations <<EOF
447 VM_LIBDIR=%{_libdir}/vmware
450 %if %{with internal_libs}
451 install bin/vmplayer $RPM_BUILD_ROOT%{_bindir}
452 install lib/bin/vmplayer $RPM_BUILD_ROOT%{_libdir}/vmware/bin
453 cp -r lib/lib $RPM_BUILD_ROOT%{_libdir}/vmware
454 cp -r lib/libconf $RPM_BUILD_ROOT%{_libdir}/vmware
456 install lib/bin/vmplayer $RPM_BUILD_ROOT%{_bindir}
461 rm -rf $RPM_BUILD_ROOT
464 /sbin/chkconfig --add vmnet
465 %service vmnet restart "VMware networking service"
468 if [ "$1" = "0" ]; then
470 /sbin/chkconfig --del vmnet
473 %post -n kernel-misc-vmmon
474 %depmod %{_kernel_ver}
476 %postun -n kernel-misc-vmmon
477 %depmod %{_kernel_ver}
479 %post -n kernel-misc-vmnet
480 %depmod %{_kernel_ver}
482 %postun -n kernel-misc-vmnet
483 %depmod %{_kernel_ver}
485 %post -n kernel-smp-misc-vmmon
486 %depmod %{_kernel_ver}smp
488 %postun -n kernel-smp-misc-vmmon
489 %depmod %{_kernel_ver}smp
491 %post -n kernel-smp-misc-vmnet
492 %depmod %{_kernel_ver}smp
494 %postun -n kernel-smp-misc-vmnet
495 %depmod %{_kernel_ver}smp
497 %post -n kernel24-misc-vmmon
498 %depmod %{_kernel_ver}
500 %postun -n kernel24-misc-vmmon
501 %depmod %{_kernel_ver}
503 %post -n kernel24-misc-vmnet
504 %depmod %{_kernel_ver}
506 %postun -n kernel24-misc-vmnet
507 %depmod %{_kernel_ver}
509 %post -n kernel24-smp-misc-vmmon
510 %depmod %{_kernel_ver}smp
512 %postun -n kernel24-smp-misc-vmmon
513 %depmod %{_kernel_ver}smp
515 %post -n kernel24-smp-misc-vmnet
516 %depmod %{_kernel_ver}smp
518 %postun -n kernel24-smp-misc-vmnet
519 %depmod %{_kernel_ver}smp
521 %if %{with userspace}
523 %defattr(644,root,root,755)
524 %doc doc/* lib/configurator/vmnet-{dhcpd,nat}.conf
525 %dir %{_sysconfdir}/vmware
526 %{_sysconfdir}/vmware/locations
527 %attr(755,root,root) %{_bindir}/vmplayer
528 %dir %{_libdir}/vmware
529 %dir %{_libdir}/vmware/bin
531 %attr(4755,root,root) %{_libdir}/vmware/bin/vmware-vmx
532 %{_libdir}/vmware/config
533 %if %{with internal_libs}
534 %attr(755,root,root) %{_libdir}/vmware/bin/vmware
535 %dir %{_libdir}/vmware/lib
536 %{_libdir}/vmware/lib/lib*
537 %attr(755,root,root) %{_libdir}/vmware/lib/wrapper-gtk24.sh
539 %dir %{_libdir}/vmware/messages
540 %lang(ja) %{_libdir}/vmware/messages/ja
541 %{_libdir}/vmware/share
542 %{_libdir}/vmware/xkeymap
543 %attr(1777,root,root) %dir /var/run/vmware
545 %{_desktopdir}/%{name}.desktop
548 %defattr(644,root,root,755)
549 %dir %{_libdir}/vmware/bin-debug
551 %attr(4755,root,root) %{_libdir}/vmware/bin-debug/vmware-vmx
554 %defattr(644,root,root,755)
555 %{_libdir}/vmware/help*
558 %defattr(644,root,root,755)
559 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/vmware/vmnet.conf
560 %attr(754,root,root) /etc/rc.d/init.d/vmnet
561 %attr(755,root,root) %{_bindir}/vmnet-bridge
562 %attr(755,root,root) %{_bindir}/vmnet-dhcpd
563 %attr(755,root,root) %{_bindir}/vmnet-natd
564 %attr(755,root,root) %{_bindir}/vmnet-netifup
565 %attr(755,root,root) %{_bindir}/vmnet-sniffer
566 %attr(755,root,root) %{_bindir}/vmware-ping
567 %dir %{_sysconfdir}/vmware/vmnet8
568 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/vmware/vmnet8/dhcpd/dhcpd.conf
569 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/vmware/vmnet8/nat/nat.conf
570 %verify(not md5 mtime size) %{_sysconfdir}/vmware/vmnet8/dhcpd/dhcpd.leases*
574 %defattr(644,root,root,755)
575 %doc lib/configurator/vmnet-smb.conf
576 %attr(755,root,root) %{_bindir}/vmware-nmbd
577 %attr(755,root,root) %{_bindir}/vmware-smbd
578 %attr(755,root,root) %{_bindir}/vmware-smbpasswd
579 %attr(755,root,root) %{_bindir}/vmware-smbpasswd.bin
580 %{_libdir}/vmware/smb
585 %if %{without kernel24}
586 %files -n kernel-misc-vmmon
587 %defattr(644,root,root,755)
588 /lib/modules/%{_kernel_ver}/misc/vmmon.ko*
590 %files -n kernel-misc-vmnet
591 %defattr(644,root,root,755)
592 /lib/modules/%{_kernel_ver}/misc/vmnet.ko*
594 %if %{with smp} && %{with dist_kernel}
595 %files -n kernel-smp-misc-vmmon
596 %defattr(644,root,root,755)
597 /lib/modules/%{_kernel_ver}smp/misc/vmmon.ko*
599 %files -n kernel-smp-misc-vmnet
600 %defattr(644,root,root,755)
601 /lib/modules/%{_kernel_ver}smp/misc/vmnet.ko*
605 %files -n kernel24-misc-vmmon
606 %defattr(644,root,root,755)
607 /lib/modules/%{_kernel_ver}/misc/vmmon.o*
609 %files -n kernel24-misc-vmnet
610 %defattr(644,root,root,755)
611 /lib/modules/%{_kernel_ver}/misc/vmnet.o*
613 %if %{with smp} && %{with dist_kernel}
614 %files -n kernel24-smp-misc-vmmon
615 %defattr(644,root,root,755)
616 /lib/modules/%{_kernel_ver}smp/misc/vmmon.o*
618 %files -n kernel24-smp-misc-vmnet
619 %defattr(644,root,root,755)
620 /lib/modules/%{_kernel_ver}smp/misc/vmnet.o*