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_without kernel # don't build kernel modules
24 %bcond_with userspace # don't build userspace utilities
25 %bcond_with internal_libs # internal libs stuff
26 %bcond_with verbose # verbose build (V=1)
28 %include /usr/lib/rpm/macros.perl
34 %define ccver %(rpm -q --qf %{V} gcc)
36 Summary: VMware Server
37 Summary(pl.UTF-8): VMware Server - wirtualna platforma dla stacji roboczej
39 Version: %{ver}.%{subver}
41 License: custom, non-distributable
42 Group: Applications/Emulators
43 # http://www.vmware.com/beta/server/download.html
44 Source0: http://download3.vmware.com/software/vmserver/%{name}-e.x.p-%{subver}.i386.tar.gz
45 # NoSource0-md5: 853247ff0e313f34bd0c3052de8e2c28
46 Source1: http://download3.vmware.com/software/vmserver/%{name}-e.x.p-%{subver}.x86_64.tar.gz
47 # NoSource1-md5: 0d36ae02640d913251fd11918f798da3
48 Source2: http://download3.vmware.com/software/vmserver/VMware-vix-e.x.p-%{subver}.i386.tar.gz
49 # NoSource2-md5: c7d162fb8c805143ea5b40e7f62ef4da
50 Source3: http://download3.vmware.com/software/vmserver/VMware-vix-e.x.p-%{subver}.x86_64.tar.gz
51 # NoSource3-md5: 10124d4747e7a579a270376458b7a77b
52 Source4: http://knihovny.cvut.cz/ftp/pub/vmware/vmware-any-any-update%{urel}.tar.gz
53 # NoSource4-md5: ab33ff7a799fee77f0f4ba5667cd4b9a
55 Source6: %{name}-vmnet.conf
57 Source8: %{name}.desktop
58 Source9: %{name}-nat.conf
59 Source10: %{name}-dhcpd.conf
60 Patch0: %{name}-Makefile.patch
61 Patch1: %{name}-run_script.patch
62 Patch2: %{name}-init_pl.patch
68 URL: http://www.vmware.com/
69 %{?with_dist_kernel:BuildRequires: kernel%{_alt_kernel}-module-build >= 3:2.6.20.2}
70 BuildRequires: libstdc++-devel
71 BuildRequires: rpm-perlprov
72 BuildRequires: rpmbuild(macros) >= 1.438
73 BuildRequires: sed >= 4.0
74 Requires: libgnomecanvasmm
77 ExclusiveArch: %{ix86} %{x8664}
78 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
80 %define _noautoprovfiles %{_libdir}/vmware*/lib/.*\.so.*
83 VMware Server Virtual Platform is a thin software layer that allows
84 multiple guest operating systems to run concurrently on a single
85 standard PC, without repartitioning or rebooting, and without
86 significant loss of performance.
88 %description -l pl.UTF-8
89 VMware Server Virtual Platform to cienka warstwa oprogramowania
90 pozwalająca na jednoczesne działanie wielu gościnnych systemów
91 operacyjnych na jednym zwykłym PC, bez repartycjonowania ani
92 rebootowania, bez znacznej utraty wydajności.
95 Summary: VMware debug utility
96 Summary(pl.UTF-8): Narzędzie VMware do odpluskwiania
97 Group: Applications/Emulators
98 Requires: %{name} = %{version}-%{release}
101 VMware debug utility.
103 %description debug -l pl.UTF-8
104 Narzędzie VMware do odpluskwiania.
107 Summary: VMware console utility
108 Summary(pl.UTF-8): Konsola VMware
109 Group: Applications/Emulators
110 Requires: %{name} = %{version}-%{release}
113 A tool for controlling VM.
115 %description console -l pl.UTF-8
116 Narzędzie VMware do kontroli VM.
119 Summary: VMware Server help files
120 Summary(pl.UTF-8): Pliki pomocy dla VMware Server
121 Group: Applications/Emulators
122 Requires: %{name} = %{version}-%{release}
126 VMware Server help files.
128 %description help -l pl.UTF-8
129 Pliki pomocy dla VMware Server.
131 %package console-help
132 Summary: VMware Server console help files
133 Summary(pl.UTF-8): Pliki pomocy dla konsoli VMware Server
134 Group: Applications/Emulators
135 Requires: %{name} = %{version}-%{release}
138 %description console-help
139 VMware Server console help files.
141 %description console-help -l pl.UTF-8
142 Pliki pomocy dla konsoli VMware Server.
145 Summary: VMware networking utilities
146 Summary(pl.UTF-8): Narzędzia VMware do obsługi sieci
147 Group: Applications/Emulators
148 Requires(post,preun): /sbin/chkconfig
149 #Requires: %{name} = %{version}-%{release}
152 %description networking
153 VMware networking utilities.
155 %description networking -l pl.UTF-8
156 Narzędzia VMware do obsługi sieci.
159 Summary: VMware SMB utilities
160 Summary(pl.UTF-8): Narzędzia VMware do SMB
161 Group: Applications/Emulators
162 Requires: %{name} = %{version}-%{release}
165 VMware SMB utilities.
167 %description samba -l pl.UTF-8
168 Narzędzia VMware do SMB.
170 %package -n kernel-misc-vmci
171 Summary: Kernel module for VMware Server
172 Summary(pl.UTF-8): Moduł jądra dla VMware Server
173 Release: %{rel}@%{_kernel_ver_str}
175 Requires(post,postun): /sbin/depmod
176 Requires: dev >= 2.9.0-7
177 %if %{with dist_kernel}
178 %requires_releq_kernel
179 Requires(postun): %releq_kernel
181 Provides: kernel(vmci) = %{version}-%{rel}
183 %description -n kernel-misc-vmci
184 Kernel modules for VMware Server - vmci.
186 %description -n kernel-misc-vmci -l pl.UTF-8
187 Moduły jądra dla VMware Server - vmci.
189 %package -n kernel-misc-vmmon
190 Summary: Kernel module for VMware Server
191 Summary(pl.UTF-8): Moduł jądra dla VMware Server
192 Release: %{rel}@%{_kernel_ver_str}
194 Requires(post,postun): /sbin/depmod
195 Requires: dev >= 2.9.0-7
196 %if %{with dist_kernel}
197 %requires_releq_kernel
198 Requires(postun): %releq_kernel
200 Provides: kernel(vmmon) = %{version}-%{rel}
202 %description -n kernel-misc-vmmon
203 Kernel modules for VMware Server - vmmon.
205 %description -n kernel-misc-vmmon -l pl.UTF-8
206 Moduły jądra dla VMware Server - vmmon.
208 %package -n kernel-misc-vmnet
209 Summary: Kernel module for VMware Server
210 Summary(pl.UTF-8): Moduł jądra dla VMware Server
211 Release: %{rel}@%{_kernel_ver_str}
213 Requires(post,postun): /sbin/depmod
214 Requires: dev >= 2.9.0-7
215 %if %{with dist_kernel}
216 %requires_releq_kernel
217 Requires(postun): %releq_kernel
219 Provides: kernel(vmnet) = %{version}-%{rel}
221 %description -n kernel-misc-vmnet
222 Kernel modules for VMware Server - vmnet.
224 %description -n kernel-misc-vmnet -l pl.UTF-8
225 Moduły jądra dla VMware Server - vmnet.
229 %setup -q -T -n vmware-server-distrib -b0 %{?with_userspace:-a2}
232 %setup -q -T -n vmware-server-distrib -b1 %{?with_userspace:-a3}
236 %{__tar} xf source/vmci.tar
237 %{__tar} xf source/vmmon.tar
238 %{__tar} xf source/vmnet.tar
239 mv vmmon-only/linux/driver.c{,.dist}
240 mv vmnet-only/hub.c{,.dist}
241 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
338 DESTDIR=$RPM_BUILD_ROOT
341 # copy other required perl modules
342 cp -r lib/perl5/site_perl/5.005/VMware $RPM_BUILD_ROOT%{perl_vendorarch}
343 cp -r lib/perl5/site_perl/5.005/i386-linux/VMware/VmdbPerl $RPM_BUILD_ROOT%{perl_vendorarch}/VMware
344 cp -r lib/perl5/site_perl/5.005/i386-linux/VMware/{HConfig,VmdbPerl}.pm $RPM_BUILD_ROOT%{perl_vendorarch}/VMware
345 cp -r lib/perl5/site_perl/5.005/i386-linux/auto/VMware/{HConfig,VmdbPerl} $RPM_BUILD_ROOT%{perl_vendorarch}/auto/VMware
347 # remove unecessary files
348 rm -f $RPM_BUILD_ROOT%{perl_vendorarch}/auto/VMware/{HConfig,VmdbPerl,VmPerl}/.{exists,packlist}
352 %install_kernel_modules -m lib/modules/vmci-only/vmci -d misc
353 %install_kernel_modules -m lib/modules/vmmon-only/vmmon -d misc
354 %install_kernel_modules -m lib/modules/vmnet-only/vmnet -d misc
357 %if %{with userspace}
358 install %{SOURCE5} $RPM_BUILD_ROOT/etc/rc.d/init.d/vmnet
359 install %{SOURCE6} $RPM_BUILD_ROOT%{_sysconfdir}/vmware/vmnet.conf
360 install %{SOURCE7} $RPM_BUILD_ROOT%{_pixmapsdir}
361 install %{SOURCE8} $RPM_BUILD_ROOT%{_desktopdir}
362 install %{SOURCE9} $RPM_BUILD_ROOT%{_sysconfdir}/vmware/vmnet8/nat/nat.conf
363 install %{SOURCE10} $RPM_BUILD_ROOT%{_sysconfdir}/vmware/vmnet8/dhcpd/dhcpd.conf
365 touch $RPM_BUILD_ROOT%{_sysconfdir}/vmware/vmnet8/dhcpd/dhcpd.leases
366 touch $RPM_BUILD_ROOT%{_sysconfdir}/vmware/vmnet8/dhcpd/dhcpd.leases~
368 install bin/*-* $RPM_BUILD_ROOT%{_bindir}
369 install sbin/*-* $RPM_BUILD_ROOT%{_sbindir}
370 install lib/bin/vmware-vmx $RPM_BUILD_ROOT%{_libdir}/vmware/bin
372 sed -e ' s@%sitearch%@%{perl_sitearch}@g; s@%sitelib%@%{perl_sitelib}@g; s@%vendorarch%@%{perl_vendorarch}@g; s@%vendorlib%@%{perl_vendorlib}@g; s@%archlib%@%{perl_archlib}@g; s@%privlib%@%{perl_privlib}@g;' < lib/serverd/init.pl.default > $RPM_BUILD_ROOT%{_libdir}/vmware/serverd/init.pl
374 #cp -r lib/{bin-debug,config,help*,isoimages,licenses,messages,smb,xkeymap} \
375 cp -r lib/{bin-debug,config,help*,isoimages,licenses,messages,share,xkeymap} \
376 $RPM_BUILD_ROOT%{_libdir}/vmware
378 cp -r vmware-server-console-distrib/lib/{bin-debug,config,help*,messages,share,xkeymap} \
379 $RPM_BUILD_ROOT%{_libdir}/vmware-server-console
381 install vmware-server-console-distrib/lib/bin/vmware-remotemks $RPM_BUILD_ROOT%{_libdir}/vmware-server-console/bin
383 cp -r vmware-server-console-distrib/man/* man/* $RPM_BUILD_ROOT%{_mandir}
384 gunzip $RPM_BUILD_ROOT%{_mandir}/man?/*.gz
386 cat > $RPM_BUILD_ROOT%{_sysconfdir}/vmware-server-console/locations <<EOF
388 VM_LIBDIR=%{_libdir}/vmware-server-console
391 %if %{with internal_libs}
392 install bin/vmware $RPM_BUILD_ROOT%{_bindir}
393 install lib/bin/vmware $RPM_BUILD_ROOT%{_libdir}/vmware/bin
394 cp -r lib/lib $RPM_BUILD_ROOT%{_libdir}/vmware
396 install vmware-server-console-distrib/bin/vmware-server-console $RPM_BUILD_ROOT%{_bindir}
397 install vmware-server-console-distrib/lib/bin/vmware $RPM_BUILD_ROOT%{_libdir}/vmware-server-console/bin
398 cp -r vmware-server-console-distrib/lib/lib $RPM_BUILD_ROOT%{_libdir}/vmware-server-console
400 install lib/bin/vmware $RPM_BUILD_ROOT%{_bindir}
401 install vmware-server-console-distrib/lib/bin/vmware-server-console $RPM_BUILD_ROOT%{_bindir}
406 rm -rf $RPM_BUILD_ROOT
409 /sbin/chkconfig --add vmnet
410 %service vmnet restart "VMware networking service"
413 if [ "$1" = "0" ]; then
415 /sbin/chkconfig --del vmnet
418 %post -n kernel-misc-vmci
419 %depmod %{_kernel_ver}
421 %postun -n kernel-misc-vmci
422 %depmod %{_kernel_ver}
424 %post -n kernel-misc-vmmon
425 %depmod %{_kernel_ver}
427 %postun -n kernel-misc-vmmon
428 %depmod %{_kernel_ver}
430 %post -n kernel-misc-vmnet
431 %depmod %{_kernel_ver}
433 %postun -n kernel-misc-vmnet
434 %depmod %{_kernel_ver}
436 %if %{with userspace}
438 %defattr(644,root,root,755)
439 %doc doc/* lib/configurator/vmnet-{dhcpd,nat}.conf
440 %dir %{_sysconfdir}/vmware
441 %attr(755,root,root) %{_bindir}/vm-support
442 %attr(755,root,root) %{_bindir}/vmware-authtrusted
443 %attr(755,root,root) %{_bindir}/vmware-cmd
444 %attr(755,root,root) %{_bindir}/vmware
445 %attr(755,root,root) %{_bindir}/vmware-loop
446 %attr(755,root,root) %{_bindir}/vmware-mount.pl
447 %attr(755,root,root) %{_bindir}/vmware-vdiskmanager
448 %attr(755,root,root) %{_sbindir}/*
449 %dir %{_libdir}/vmware
450 %dir %{_libdir}/vmware/bin
452 %attr(4755,root,root) %{_libdir}/vmware/bin/vmware-vmx
453 %{_libdir}/vmware/config
454 %{_libdir}/vmware/isoimages
455 %if %{with internal_libs}
456 %attr(755,root,root) %{_libdir}/vmware/bin/vmware
457 %{_libdir}/vmware/lib
458 %attr(755,root,root) %{_libdir}/vmware/lib/wrapper-gtk24.sh
460 %dir %{_libdir}/vmware/serverd
461 %attr(750,root,root) %{_libdir}/vmware/serverd/init.pl
462 %{_libdir}/vmware/licenses
463 %dir %{_libdir}/vmware/messages
464 %{_libdir}/vmware/messages/en
465 %lang(ja) %{_libdir}/vmware/messages/ja
466 %{_libdir}/vmware/share
467 %{_libdir}/vmware/xkeymap
468 %{_mandir}/man1/vmware.1*
470 %{perl_vendorarch}/VMware
471 %{perl_vendorarch}/auto/VMware
472 %attr(1777,root,root) %dir /var/run/vmware
473 %attr(751,root,root) %dir /var/log/vmware
475 %{_desktopdir}/%{name}.desktop
478 %defattr(644,root,root,755)
479 %dir %{_sysconfdir}/vmware-server-console
480 %{_sysconfdir}/vmware-server-console/locations
481 %attr(755,root,root) %{_bindir}/vmware-server-console
482 %dir %{_libdir}/vmware-server-console
483 %dir %{_libdir}/vmware-server-console/bin
484 %attr(755,root,root) %{_libdir}/vmware-server-console/bin/vmware-remotemks
485 %{_libdir}/vmware-server-console/config
486 %if %{with internal_libs}
487 %attr(755,root,root) %{_libdir}/vmware-server-console/bin/vmware
488 %{_libdir}/vmware-server-console/lib
489 %attr(755,root,root) %{_libdir}/vmware-server-console/lib/wrapper-gtk24.sh
491 %dir %{_libdir}/vmware-server-console/messages
492 #%{_libdir}/vmware-server-console/messages/en
493 %lang(ja) %{_libdir}/vmware-server-console/messages/ja
494 %{_libdir}/vmware-server-console/share
495 %{_libdir}/vmware-server-console/xkeymap
496 %{_mandir}/man1/vmware-server-console.1*
499 %defattr(644,root,root,755)
500 %{_libdir}/vmware-server-console/help*
503 %defattr(644,root,root,755)
504 %dir %{_libdir}/vmware/bin-debug
506 %attr(4755,root,root) %{_libdir}/vmware/bin-debug/vmware-vmx
507 %dir %{_libdir}/vmware-server-console/bin-debug
508 %attr(755,root,root) %{_libdir}/vmware/bin-debug/vmware-remotemks
509 %attr(755,root,root) %{_libdir}/vmware-server-console/bin-debug/vmware-remotemks
512 %defattr(644,root,root,755)
513 %{_libdir}/vmware/help*
516 %defattr(644,root,root,755)
517 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/vmware/vmnet.conf
518 %attr(754,root,root) /etc/rc.d/init.d/vmnet
519 %attr(755,root,root) %{_bindir}/vmnet-bridge
520 %attr(755,root,root) %{_bindir}/vmnet-dhcpd
521 %attr(755,root,root) %{_bindir}/vmnet-natd
522 %attr(755,root,root) %{_bindir}/vmnet-netifup
523 %attr(755,root,root) %{_bindir}/vmnet-sniffer
524 %attr(755,root,root) %{_bindir}/vmware-ping
525 %dir %{_sysconfdir}/vmware/vmnet8
526 %dir %{_sysconfdir}/vmware/vmnet8/dhcpd
527 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/vmware/vmnet8/dhcpd/dhcpd.conf
528 %dir %{_sysconfdir}/vmware/vmnet8/nat
529 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/vmware/vmnet8/nat/nat.conf
530 %verify(not md5 mtime size) %{_sysconfdir}/vmware/vmnet8/dhcpd/dhcpd.leases*
534 %defattr(644,root,root,755)
535 %doc lib/configurator/vmnet-smb.conf
536 %attr(755,root,root) %{_bindir}/vmware-nmbd
537 %attr(755,root,root) %{_bindir}/vmware-smbd
538 %attr(755,root,root) %{_bindir}/vmware-smbpasswd
539 %attr(755,root,root) %{_bindir}/vmware-smbpasswd.bin
540 %{_libdir}/vmware/smb
545 %files -n kernel-misc-vmci
546 %defattr(644,root,root,755)
547 /lib/modules/%{_kernel_ver}/misc/vmci.ko*
549 %files -n kernel-misc-vmmon
550 %defattr(644,root,root,755)
551 /lib/modules/%{_kernel_ver}/misc/vmmon.ko*
553 %files -n kernel-misc-vmnet
554 %defattr(644,root,root,755)
555 /lib/modules/%{_kernel_ver}/misc/vmnet.ko*