2 # This doesn't work at all yet. I don't know if the management interface is needed
3 # (bundling apache seems like a sooooooooo great idea). Maybe it is possible to
4 # setup the server part by hand. The perl module in perl/control.tar needs to
5 # be packaged (vmware-cmd requires that). Something needs to be done with
6 # the authd (inetd integration is needed I guess).
8 # The modules from any-any upgrade are too old (I used the ones comming with VMw-S).
10 # It builds on amd64, I have changed the networking package not to require the main package
11 # so it can be installed outside 32bit chroot.
13 # But hey, it's at least free ;-)
15 # I probably won't have time to work on this, switching to vmware-player.
17 # problem with libsexy/libsexymm:
18 # ln -s /usr/lib/libsexy.so.2 /usr/lib/libsexy.so.1
19 # ln -s /usr/lib/libsexymm.so.2 /usr/lib/libsexymm.so.1
22 %bcond_without dist_kernel # without distribution kernel
23 %bcond_with kernel # don't build kernel modules
24 %bcond_without userspace # don't build userspace utilities
25 %bcond_with internal_libs # internal libs stuff
26 %bcond_with doc # package huge docs
27 %bcond_with verbose # verbose build (V=1)
29 %include /usr/lib/rpm/macros.perl
35 %define ccver %(%{__cc} -dumpversion)
37 Summary: VMware Server
38 Summary(pl.UTF-8): VMware Server - wirtualna platforma dla stacji roboczej
40 Version: %{ver}.%{subver}
42 License: custom, non-distributable
43 Group: Applications/Emulators
44 # http://www.vmware.com/beta/server/download.html
45 Source0: http://download3.vmware.com/software/vmserver/%{name}-e.x.p-%{subver}.i386.tar.gz
46 # NoSource0-md5: 853247ff0e313f34bd0c3052de8e2c28
47 Source1: http://download3.vmware.com/software/vmserver/%{name}-e.x.p-%{subver}.x86_64.tar.gz
48 # NoSource1-md5: 0d36ae02640d913251fd11918f798da3
49 Source2: http://download3.vmware.com/software/vmserver/VMware-vix-e.x.p-%{subver}.i386.tar.gz
50 # NoSource2-md5: c7d162fb8c805143ea5b40e7f62ef4da
51 Source3: http://download3.vmware.com/software/vmserver/VMware-vix-e.x.p-%{subver}.x86_64.tar.gz
52 # NoSource3-md5: 10124d4747e7a579a270376458b7a77b
53 Source4: http://knihovny.cvut.cz/ftp/pub/vmware/vmware-any-any-update%{urel}.tar.gz
54 # NoSource4-md5: ab33ff7a799fee77f0f4ba5667cd4b9a
56 Source6: %{name}-vmnet.conf
58 Source8: %{name}.desktop
59 Source9: %{name}-nat.conf
60 Source10: %{name}-dhcpd.conf
61 Patch0: %{name}-Makefile.patch
62 Patch1: %{name}-run_script.patch
63 Patch2: %{name}-init_pl.patch
69 URL: http://www.vmware.com/
70 %{?with_dist_kernel:BuildRequires: kernel%{_alt_kernel}-module-build >= 3:2.6.20.2}
71 BuildRequires: libstdc++-devel
72 BuildRequires: rpm-perlprov
73 BuildRequires: rpmbuild(macros) >= 1.438
74 BuildRequires: sed >= 4.0
75 #Requires: libgnomecanvasmm
78 ExclusiveArch: %{ix86} %{x8664}
79 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
81 %define _noautoprovfiles %{_libdir}/vmware*/lib/.*\.so.*
84 VMware Server Virtual Platform is a thin software layer that allows
85 multiple guest operating systems to run concurrently on a single
86 standard PC, without repartitioning or rebooting, and without
87 significant loss of performance.
89 %description -l pl.UTF-8
90 VMware Server Virtual Platform to cienka warstwa oprogramowania
91 pozwalająca na jednoczesne działanie wielu gościnnych systemów
92 operacyjnych na jednym zwykłym PC, bez repartycjonowania ani
93 rebootowania, bez znacznej utraty wydajności.
96 Summary: VMware debug utility
97 Summary(pl.UTF-8): Narzędzie VMware do odpluskwiania
98 Group: Applications/Emulators
99 Requires: %{name} = %{version}-%{release}
102 VMware debug utility.
104 %description debug -l pl.UTF-8
105 Narzędzie VMware do odpluskwiania.
108 Summary: VMware console utility
109 Summary(pl.UTF-8): Konsola VMware
110 Group: Applications/Emulators
111 Requires: %{name} = %{version}-%{release}
114 A tool for controlling VM.
116 %description console -l pl.UTF-8
117 Narzędzie VMware do kontroli VM.
120 Summary: VMware Server help files
121 Summary(pl.UTF-8): Pliki pomocy dla VMware Server
122 Group: Applications/Emulators
123 Requires: %{name} = %{version}-%{release}
127 VMware Server help files.
129 %description help -l pl.UTF-8
130 Pliki pomocy dla VMware Server.
132 %package console-help
133 Summary: VMware Server console help files
134 Summary(pl.UTF-8): Pliki pomocy dla konsoli VMware Server
135 Group: Applications/Emulators
136 Requires: %{name} = %{version}-%{release}
139 %description console-help
140 VMware Server console help files.
142 %description console-help -l pl.UTF-8
143 Pliki pomocy dla konsoli VMware Server.
146 Summary: VMware networking utilities
147 Summary(pl.UTF-8): Narzędzia VMware do obsługi sieci
148 Group: Applications/Emulators
149 Requires(post,preun): /sbin/chkconfig
150 #Requires: %{name} = %{version}-%{release}
153 %description networking
154 VMware networking utilities.
156 %description networking -l pl.UTF-8
157 Narzędzia VMware do obsługi sieci.
160 Summary: VMware SMB utilities
161 Summary(pl.UTF-8): Narzędzia VMware do SMB
162 Group: Applications/Emulators
163 Requires: %{name} = %{version}-%{release}
166 VMware SMB utilities.
168 %description samba -l pl.UTF-8
169 Narzędzia VMware do SMB.
171 %package -n kernel-misc-vmci
172 Summary: Kernel module for VMware Server
173 Summary(pl.UTF-8): Moduł jądra dla VMware Server
174 Release: %{rel}@%{_kernel_ver_str}
176 Requires(post,postun): /sbin/depmod
177 Requires: dev >= 2.9.0-7
178 %if %{with dist_kernel}
179 %requires_releq_kernel
180 Requires(postun): %releq_kernel
182 Provides: kernel(vmci) = %{version}-%{rel}
184 %description -n kernel-misc-vmci
185 Kernel modules for VMware Server - vmci.
187 %description -n kernel-misc-vmci -l pl.UTF-8
188 Moduły jądra dla VMware Server - vmci.
190 %package -n kernel-misc-vmmon
191 Summary: Kernel module for VMware Server
192 Summary(pl.UTF-8): Moduł jądra dla VMware Server
193 Release: %{rel}@%{_kernel_ver_str}
195 Requires(post,postun): /sbin/depmod
196 Requires: dev >= 2.9.0-7
197 %if %{with dist_kernel}
198 %requires_releq_kernel
199 Requires(postun): %releq_kernel
201 Provides: kernel(vmmon) = %{version}-%{rel}
203 %description -n kernel-misc-vmmon
204 Kernel modules for VMware Server - vmmon.
206 %description -n kernel-misc-vmmon -l pl.UTF-8
207 Moduły jądra dla VMware Server - vmmon.
209 %package -n kernel-misc-vmnet
210 Summary: Kernel module for VMware Server
211 Summary(pl.UTF-8): Moduł jądra dla VMware Server
212 Release: %{rel}@%{_kernel_ver_str}
214 Requires(post,postun): /sbin/depmod
215 Requires: dev >= 2.9.0-7
216 %if %{with dist_kernel}
217 %requires_releq_kernel
218 Requires(postun): %releq_kernel
220 Provides: kernel(vmnet) = %{version}-%{rel}
222 %description -n kernel-misc-vmnet
223 Kernel modules for VMware Server - vmnet.
225 %description -n kernel-misc-vmnet -l pl.UTF-8
226 Moduły jądra dla VMware Server - vmnet.
230 %setup -q -T -n vmware-server-distrib -b0 %{?with_userspace:-a2}
233 %setup -q -T -n vmware-server-distrib -b1 %{?with_userspace:-a3}
237 %{__tar} xf source/vmci.tar
238 %{__tar} xf source/vmmon.tar
239 %{__tar} xf source/vmnet.tar
240 mv vmmon-only/linux/driver.c{,.dist}
241 mv vmnet-only/hub.c{,.dist}
242 mv vmnet-only/driver.c{,.dist}
243 rm -rf binary # unusable
247 tar zxf vmware-mui-distrib/console-distrib/%{name}-console-%{ver}-%{subver}.tar.gz
248 cp vmware-any-any-update%{urel}/{vmmon,vmnet}.tar lib/modules/source/
249 cd lib/modules/source
253 cp -a vmmon-only{,.clean}
254 cp -a vmnet-only{,.clean}
258 tar xf lib/perl/control.tar
264 cd vmware-any-any-update%{urel}
265 chmod u+w ../lib/bin/vmware-vmx ../lib/bin-debug/vmware-vmx ../bin/vmnet-bridge
270 %{__cc} %{rpmldflags} %{rpmcflags} -o update update.c
271 ./update vmx ../lib/bin/vmware-vmx
272 ./update vmxdebug ../lib/bin-debug/vmware-vmx
273 ./update bridge ../bin/vmnet-bridge
277 %if %{with userspace}
281 sed -i "s:^INSTALLSITEARCH.*$:INSTALLSITEARCH = %{perl_vendorarch}:" Makefile
282 sed -i "s:^INSTALLSITELIB.*$:INSTALLSITELIB = %{perl_vendorlib}:" Makefile
283 sed -i "s:^INSTALLSITEMAN1DIR.*$:INSTALLSITEMAN1DIR = %{_mandir}/man1:" Makefile
284 sed -i "s:^INSTALLSITEMAN3DIR.*$:INSTALLSITEMAN3DIR = %{_mandir}/man3:" Makefile
294 %build_kernel_modules -C vmci-only -m vmci SRCROOT=$PWD VM_KBUILD=26 VM_CCVER=%{ccver}
296 %build_kernel_modules -C vmmon-only -m vmmon SRCROOT=$PWD VM_KBUILD=26 VM_CCVER=%{ccver} <<'EOF'
297 if grep -q "^CONFIG_PREEMPT_RT=y$" o/.config; then
298 sed -e '/pollQueueLock/s/SPIN_LOCK_UNLOCKED/SPIN_LOCK_UNLOCKED(pollQueueLock)/' \
299 -e '/timerLock/s/SPIN_LOCK_UNLOCKED/SPIN_LOCK_UNLOCKED(timerLock)/' \
300 linux/driver.c.dist > linux/driver.c
302 cat linux/driver.c.dist > linux/driver.c
306 %build_kernel_modules -C vmnet-only -m vmnet SRCROOT=$PWD VM_KBUILD=26 VM_CCVER=%{ccver} <<'EOF'
307 if grep -q "^CONFIG_PREEMPT_RT=y$" o/.config; then
308 sed -e 's/SPIN_LOCK_UNLOCKED/SPIN_LOCK_UNLOCKED(vnetHubLock)/' \
310 sed -e 's/RW_LOCK_UNLOCKED/RW_LOCK_UNLOCKED(vnetPeerLock)/' \
311 driver.c.dist > driver.c
313 cat hub.c.dist > hub.c
314 cat driver.c.dist > driver.c
320 rm -rf $RPM_BUILD_ROOT
322 %if %{with userspace}
324 $RPM_BUILD_ROOT%{_sysconfdir}/vmware{,-server-console} \
325 $RPM_BUILD_ROOT%{_sysconfdir}/vmware/vmnet8/{nat,dhcpd} \
326 $RPM_BUILD_ROOT%{_bindir} \
327 $RPM_BUILD_ROOT%{_sbindir} \
328 $RPM_BUILD_ROOT%{_libdir}/vmware{,-server-console}/bin \
329 $RPM_BUILD_ROOT%{_libdir}/vmware/serverd \
330 $RPM_BUILD_ROOT%{_mandir} \
331 $RPM_BUILD_ROOT%{_pixmapsdir} \
332 $RPM_BUILD_ROOT%{_desktopdir} \
333 $RPM_BUILD_ROOT/etc/rc.d/init.d \
334 $RPM_BUILD_ROOT/var/{log,run}/vmware
339 DESTDIR=$RPM_BUILD_ROOT
344 # copy other required perl modules
345 cp -r lib/perl5/site_perl/5.005/VMware $RPM_BUILD_ROOT%{perl_vendorarch}
346 cp -r lib/perl5/site_perl/5.005/i386-linux/VMware/VmdbPerl $RPM_BUILD_ROOT%{perl_vendorarch}/VMware
347 cp -r lib/perl5/site_perl/5.005/i386-linux/VMware/{HConfig,VmdbPerl}.pm $RPM_BUILD_ROOT%{perl_vendorarch}/VMware
348 cp -r lib/perl5/site_perl/5.005/i386-linux/auto/VMware/{HConfig,VmdbPerl} $RPM_BUILD_ROOT%{perl_vendorarch}/auto/VMware
350 # remove unecessary files
351 rm -f $RPM_BUILD_ROOT%{perl_vendorarch}/auto/VMware/{HConfig,VmdbPerl,VmPerl}/.{exists,packlist}
356 %install_kernel_modules -m lib/modules/vmci-only/vmci -d misc
357 %install_kernel_modules -m lib/modules/vmmon-only/vmmon -d misc
358 %install_kernel_modules -m lib/modules/vmnet-only/vmnet -d misc
361 %if %{with userspace}
362 install %{SOURCE5} $RPM_BUILD_ROOT/etc/rc.d/init.d/vmnet
363 install %{SOURCE6} $RPM_BUILD_ROOT%{_sysconfdir}/vmware/vmnet.conf
364 install %{SOURCE7} $RPM_BUILD_ROOT%{_pixmapsdir}
365 install %{SOURCE8} $RPM_BUILD_ROOT%{_desktopdir}
366 install %{SOURCE9} $RPM_BUILD_ROOT%{_sysconfdir}/vmware/vmnet8/nat/nat.conf
367 install %{SOURCE10} $RPM_BUILD_ROOT%{_sysconfdir}/vmware/vmnet8/dhcpd/dhcpd.conf
369 touch $RPM_BUILD_ROOT%{_sysconfdir}/vmware/vmnet8/dhcpd/dhcpd.leases
370 touch $RPM_BUILD_ROOT%{_sysconfdir}/vmware/vmnet8/dhcpd/dhcpd.leases~
372 install bin/*-* $RPM_BUILD_ROOT%{_bindir}
373 install sbin/*-* $RPM_BUILD_ROOT%{_sbindir}
374 install lib/bin/vmware-vmx $RPM_BUILD_ROOT%{_libdir}/vmware/bin
378 s@%sitearch%@%{perl_sitearch}@g;
379 s@%sitelib%@%{perl_sitelib}@g;
380 s@%vendorarch%@%{perl_vendorarch}@g;
381 s@%vendorlib%@%{perl_vendorlib}@g;
382 s@%archlib%@%{perl_archlib}@g;
383 s@%privlib%@%{perl_privlib}@g;' < lib/serverd/init.pl.default > $RPM_BUILD_ROOT%{_libdir}/vmware/serverd/init.pl
386 cp -r lib/{config,help,isoimages,licenses,messages,share,xkeymap} \
387 $RPM_BUILD_ROOT%{_libdir}/vmware
390 cp -r vmware-server-console-distrib/lib/{bin-debug,config,help*,messages,share,xkeymap} \
391 $RPM_BUILD_ROOT%{_libdir}/vmware-server-console
393 install vmware-server-console-distrib/lib/bin/vmware-remotemks $RPM_BUILD_ROOT%{_libdir}/vmware-server-console/bin
395 cp -r vmware-server-console-distrib/man/* man/* $RPM_BUILD_ROOT%{_mandir}
396 gunzip $RPM_BUILD_ROOT%{_mandir}/man?/*.gz
399 cat > $RPM_BUILD_ROOT%{_sysconfdir}/vmware-server-console/locations <<EOF
401 VM_LIBDIR=%{_libdir}/vmware-server-console
404 %if %{with internal_libs}
405 install bin/vmware $RPM_BUILD_ROOT%{_bindir}
406 #install lib/bin/vmware $RPM_BUILD_ROOT%{_libdir}/vmware/bin
407 cp -r lib/lib $RPM_BUILD_ROOT%{_libdir}/vmware
410 install vmware-server-console-distrib/bin/vmware-server-console $RPM_BUILD_ROOT%{_bindir}
411 install vmware-server-console-distrib/lib/bin/vmware $RPM_BUILD_ROOT%{_libdir}/vmware-server-console/bin
412 cp -r vmware-server-console-distrib/lib/lib $RPM_BUILD_ROOT%{_libdir}/vmware-server-console
417 install lib/bin/vmware $RPM_BUILD_ROOT%{_bindir}
418 install vmware-server-console-distrib/lib/bin/vmware-server-console $RPM_BUILD_ROOT%{_bindir}
424 rm -rf $RPM_BUILD_ROOT
427 /sbin/chkconfig --add vmnet
428 %service vmnet restart "VMware networking service"
431 if [ "$1" = "0" ]; then
433 /sbin/chkconfig --del vmnet
436 %post -n kernel-misc-vmci
437 %depmod %{_kernel_ver}
439 %postun -n kernel-misc-vmci
440 %depmod %{_kernel_ver}
442 %post -n kernel-misc-vmmon
443 %depmod %{_kernel_ver}
445 %postun -n kernel-misc-vmmon
446 %depmod %{_kernel_ver}
448 %post -n kernel-misc-vmnet
449 %depmod %{_kernel_ver}
451 %postun -n kernel-misc-vmnet
452 %depmod %{_kernel_ver}
454 %if %{with userspace}
456 %defattr(644,root,root,755)
457 %{?with_doc:%doc doc/*}
458 %doc lib/configurator/vmnet-{dhcpd,nat}.conf
459 %dir %{_sysconfdir}/vmware
460 %attr(755,root,root) %{_bindir}/vm-support
461 #%attr(755,root,root) %{_bindir}/vmware-authtrusted
462 #%attr(755,root,root) %{_bindir}/vmware-cmd
463 #%attr(755,root,root) %{_bindir}/vmware
464 #%attr(755,root,root) %{_bindir}/vmware-loop
465 #%attr(755,root,root) %{_bindir}/vmware-mount.pl
466 %attr(755,root,root) %{_bindir}/vmware-config.pl
467 %attr(755,root,root) %{_bindir}/vmware-mount
468 %attr(755,root,root) %{_bindir}/vmware-uninstall.pl
469 %attr(755,root,root) %{_bindir}/vmware-vimdump
470 %attr(755,root,root) %{_bindir}/vmware-vimsh
471 %attr(755,root,root) %{_bindir}/vmware-vsh
472 %attr(755,root,root) %{_bindir}/vmware-watchdog
473 %attr(755,root,root) %{_bindir}/vmware-vdiskmanager
474 %attr(755,root,root) %{_sbindir}/*
475 %dir %{_libdir}/vmware
476 %dir %{_libdir}/vmware/bin
478 %attr(4755,root,root) %{_libdir}/vmware/bin/vmware-vmx
479 %{_libdir}/vmware/config
480 %{_libdir}/vmware/isoimages
481 %if %{with internal_libs}
482 %attr(755,root,root) %{_libdir}/vmware/bin/vmware
483 %{_libdir}/vmware/lib
484 %attr(755,root,root) %{_libdir}/vmware/lib/wrapper-gtk24.sh
486 %dir %{_libdir}/vmware/serverd
487 #%attr(750,root,root) %{_libdir}/vmware/serverd/init.pl
488 %{_libdir}/vmware/licenses
489 %dir %{_libdir}/vmware/messages
490 #%{_libdir}/vmware/messages/en
491 %lang(ja) %{_libdir}/vmware/messages/ja
492 %{_libdir}/vmware/share
493 %{_libdir}/vmware/xkeymap
494 #%{_mandir}/man1/vmware.1*
496 #%{perl_vendorarch}/VMware
497 #%{perl_vendorarch}/auto/VMware
498 %attr(1777,root,root) %dir /var/run/vmware
499 %attr(751,root,root) %dir /var/log/vmware
501 %{_desktopdir}/%{name}.desktop
504 %defattr(644,root,root,755)
505 %dir %{_sysconfdir}/vmware-server-console
506 %{_sysconfdir}/vmware-server-console/locations
507 #%attr(755,root,root) %{_bindir}/vmware-server-console
508 %dir %{_libdir}/vmware-server-console
509 %dir %{_libdir}/vmware-server-console/bin
510 #%attr(755,root,root) %{_libdir}/vmware-server-console/bin/vmware-remotemks
511 #%{_libdir}/vmware-server-console/config
512 %if %{with internal_libs}
513 %attr(755,root,root) %{_libdir}/vmware-server-console/bin/vmware
514 %{_libdir}/vmware-server-console/lib
515 %attr(755,root,root) %{_libdir}/vmware-server-console/lib/wrapper-gtk24.sh
517 #%dir %{_libdir}/vmware-server-console/messages
518 #%{_libdir}/vmware-server-console/messages/en
519 #%lang(ja) %{_libdir}/vmware-server-console/messages/ja
520 #%{_libdir}/vmware-server-console/share
521 #%{_libdir}/vmware-server-console/xkeymap
522 #%{_mandir}/man1/vmware-server-console.1*
525 %defattr(644,root,root,755)
526 #%{_libdir}/vmware-server-console/help*
529 %defattr(644,root,root,755)
530 #%dir %{_libdir}/vmware/bin-debug
532 #%attr(4755,root,root) %{_libdir}/vmware/bin-debug/vmware-vmx
533 #%dir %{_libdir}/vmware-server-console/bin-debug
534 #%attr(755,root,root) %{_libdir}/vmware/bin-debug/vmware-remotemks
535 #%attr(755,root,root) %{_libdir}/vmware-server-console/bin-debug/vmware-remotemks
538 %defattr(644,root,root,755)
539 %{_libdir}/vmware/help*
542 %defattr(644,root,root,755)
543 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/vmware/vmnet.conf
544 %attr(754,root,root) /etc/rc.d/init.d/vmnet
545 %attr(755,root,root) %{_bindir}/vmnet-bridge
546 %attr(755,root,root) %{_bindir}/vmnet-dhcpd
547 %attr(755,root,root) %{_bindir}/vmnet-natd
548 %attr(755,root,root) %{_bindir}/vmnet-netifup
549 %attr(755,root,root) %{_bindir}/vmnet-sniffer
550 %attr(755,root,root) %{_bindir}/vmware-ping
551 %dir %{_sysconfdir}/vmware/vmnet8
552 %dir %{_sysconfdir}/vmware/vmnet8/dhcpd
553 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/vmware/vmnet8/dhcpd/dhcpd.conf
554 %dir %{_sysconfdir}/vmware/vmnet8/nat
555 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/vmware/vmnet8/nat/nat.conf
556 %verify(not md5 mtime size) %{_sysconfdir}/vmware/vmnet8/dhcpd/dhcpd.leases*
560 %defattr(644,root,root,755)
561 %doc lib/configurator/vmnet-smb.conf
562 %attr(755,root,root) %{_bindir}/vmware-nmbd
563 %attr(755,root,root) %{_bindir}/vmware-smbd
564 %attr(755,root,root) %{_bindir}/vmware-smbpasswd
565 %attr(755,root,root) %{_bindir}/vmware-smbpasswd.bin
566 %{_libdir}/vmware/smb
571 %files -n kernel-misc-vmci
572 %defattr(644,root,root,755)
573 /lib/modules/%{_kernel_ver}/misc/vmci.ko*
575 %files -n kernel-misc-vmmon
576 %defattr(644,root,root,755)
577 /lib/modules/%{_kernel_ver}/misc/vmmon.ko*
579 %files -n kernel-misc-vmnet
580 %defattr(644,root,root,755)
581 /lib/modules/%{_kernel_ver}/misc/vmnet.ko*