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_without 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}
242 rm -rf binary # unusable
246 tar zxf vmware-mui-distrib/console-distrib/%{name}-console-%{ver}-%{subver}.tar.gz
247 cp vmware-any-any-update%{urel}/{vmmon,vmnet}.tar lib/modules/source/
248 cd lib/modules/source
252 cp -a vmmon-only{,.clean}
253 cp -a vmnet-only{,.clean}
257 tar xf lib/perl/control.tar
263 cd vmware-any-any-update%{urel}
264 chmod u+w ../lib/bin/vmware-vmx ../lib/bin-debug/vmware-vmx ../bin/vmnet-bridge
269 %{__cc} %{rpmldflags} %{rpmcflags} -o update update.c
270 ./update vmx ../lib/bin/vmware-vmx
271 ./update vmxdebug ../lib/bin-debug/vmware-vmx
272 ./update bridge ../bin/vmnet-bridge
276 %if %{with userspace}
280 sed -i "s:^INSTALLSITEARCH.*$:INSTALLSITEARCH = %{perl_vendorarch}:" Makefile
281 sed -i "s:^INSTALLSITELIB.*$:INSTALLSITELIB = %{perl_vendorlib}:" Makefile
282 sed -i "s:^INSTALLSITEMAN1DIR.*$:INSTALLSITEMAN1DIR = %{_mandir}/man1:" Makefile
283 sed -i "s:^INSTALLSITEMAN3DIR.*$:INSTALLSITEMAN3DIR = %{_mandir}/man3:" Makefile
293 %build_kernel_modules -C vmci-only -m vmci SRCROOT=$PWD VM_KBUILD=26 VM_CCVER=%{ccver}
295 %build_kernel_modules -C vmmon-only -m vmmon SRCROOT=$PWD VM_KBUILD=26 VM_CCVER=%{ccver} <<'EOF'
296 if grep -q "^CONFIG_PREEMPT_RT=y$" o/.config; then
297 sed -e '/pollQueueLock/s/SPIN_LOCK_UNLOCKED/SPIN_LOCK_UNLOCKED(pollQueueLock)/' \
298 -e '/timerLock/s/SPIN_LOCK_UNLOCKED/SPIN_LOCK_UNLOCKED(timerLock)/' \
299 linux/driver.c.dist > linux/driver.c
301 cat linux/driver.c.dist > linux/driver.c
305 %build_kernel_modules -C vmnet-only -m vmnet SRCROOT=$PWD VM_KBUILD=26 VM_CCVER=%{ccver} <<'EOF'
306 if grep -q "^CONFIG_PREEMPT_RT=y$" o/.config; then
307 sed -e 's/SPIN_LOCK_UNLOCKED/SPIN_LOCK_UNLOCKED(vnetHubLock)/' \
309 sed -e 's/RW_LOCK_UNLOCKED/RW_LOCK_UNLOCKED(vnetPeerLock)/' \
310 driver.c.dist > driver.c
312 cat hub.c.dist > hub.c
313 cat driver.c.dist > driver.c
319 rm -rf $RPM_BUILD_ROOT
321 %if %{with userspace}
323 $RPM_BUILD_ROOT%{_sysconfdir}/vmware{,-server-console} \
324 $RPM_BUILD_ROOT%{_sysconfdir}/vmware/vmnet8/{nat,dhcpd} \
325 $RPM_BUILD_ROOT%{_bindir} \
326 $RPM_BUILD_ROOT%{_sbindir} \
327 $RPM_BUILD_ROOT%{_libdir}/vmware{,-server-console}/bin \
328 $RPM_BUILD_ROOT%{_libdir}/vmware/serverd \
329 $RPM_BUILD_ROOT%{_mandir} \
330 $RPM_BUILD_ROOT%{_pixmapsdir} \
331 $RPM_BUILD_ROOT%{_desktopdir} \
332 $RPM_BUILD_ROOT/etc/rc.d/init.d \
333 $RPM_BUILD_ROOT/var/{log,run}/vmware
337 DESTDIR=$RPM_BUILD_ROOT
340 # copy other required perl modules
341 cp -r lib/perl5/site_perl/5.005/VMware $RPM_BUILD_ROOT%{perl_vendorarch}
342 cp -r lib/perl5/site_perl/5.005/i386-linux/VMware/VmdbPerl $RPM_BUILD_ROOT%{perl_vendorarch}/VMware
343 cp -r lib/perl5/site_perl/5.005/i386-linux/VMware/{HConfig,VmdbPerl}.pm $RPM_BUILD_ROOT%{perl_vendorarch}/VMware
344 cp -r lib/perl5/site_perl/5.005/i386-linux/auto/VMware/{HConfig,VmdbPerl} $RPM_BUILD_ROOT%{perl_vendorarch}/auto/VMware
346 # remove unecessary files
347 rm -f $RPM_BUILD_ROOT%{perl_vendorarch}/auto/VMware/{HConfig,VmdbPerl,VmPerl}/.{exists,packlist}
351 %install_kernel_modules -m lib/modules/vmci-only/vmci -d misc
352 %install_kernel_modules -m lib/modules/vmmon-only/vmmon -d misc
353 %install_kernel_modules -m lib/modules/vmnet-only/vmnet -d misc
356 %if %{with userspace}
357 install %{SOURCE5} $RPM_BUILD_ROOT/etc/rc.d/init.d/vmnet
358 install %{SOURCE6} $RPM_BUILD_ROOT%{_sysconfdir}/vmware/vmnet.conf
359 install %{SOURCE7} $RPM_BUILD_ROOT%{_pixmapsdir}
360 install %{SOURCE8} $RPM_BUILD_ROOT%{_desktopdir}
361 install %{SOURCE9} $RPM_BUILD_ROOT%{_sysconfdir}/vmware/vmnet8/nat/nat.conf
362 install %{SOURCE10} $RPM_BUILD_ROOT%{_sysconfdir}/vmware/vmnet8/dhcpd/dhcpd.conf
364 touch $RPM_BUILD_ROOT%{_sysconfdir}/vmware/vmnet8/dhcpd/dhcpd.leases
365 touch $RPM_BUILD_ROOT%{_sysconfdir}/vmware/vmnet8/dhcpd/dhcpd.leases~
367 install bin/*-* $RPM_BUILD_ROOT%{_bindir}
368 install sbin/*-* $RPM_BUILD_ROOT%{_sbindir}
369 install lib/bin/vmware-vmx $RPM_BUILD_ROOT%{_libdir}/vmware/bin
371 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
373 #cp -r lib/{bin-debug,config,help*,isoimages,licenses,messages,smb,xkeymap} \
374 cp -r lib/{bin-debug,config,help*,isoimages,licenses,messages,share,xkeymap} \
375 $RPM_BUILD_ROOT%{_libdir}/vmware
377 cp -r vmware-server-console-distrib/lib/{bin-debug,config,help*,messages,share,xkeymap} \
378 $RPM_BUILD_ROOT%{_libdir}/vmware-server-console
380 install vmware-server-console-distrib/lib/bin/vmware-remotemks $RPM_BUILD_ROOT%{_libdir}/vmware-server-console/bin
382 cp -r vmware-server-console-distrib/man/* man/* $RPM_BUILD_ROOT%{_mandir}
383 gunzip $RPM_BUILD_ROOT%{_mandir}/man?/*.gz
385 cat > $RPM_BUILD_ROOT%{_sysconfdir}/vmware-server-console/locations <<EOF
387 VM_LIBDIR=%{_libdir}/vmware-server-console
390 %if %{with internal_libs}
391 install bin/vmware $RPM_BUILD_ROOT%{_bindir}
392 install lib/bin/vmware $RPM_BUILD_ROOT%{_libdir}/vmware/bin
393 cp -r lib/lib $RPM_BUILD_ROOT%{_libdir}/vmware
395 install vmware-server-console-distrib/bin/vmware-server-console $RPM_BUILD_ROOT%{_bindir}
396 install vmware-server-console-distrib/lib/bin/vmware $RPM_BUILD_ROOT%{_libdir}/vmware-server-console/bin
397 cp -r vmware-server-console-distrib/lib/lib $RPM_BUILD_ROOT%{_libdir}/vmware-server-console
399 install lib/bin/vmware $RPM_BUILD_ROOT%{_bindir}
400 install vmware-server-console-distrib/lib/bin/vmware-server-console $RPM_BUILD_ROOT%{_bindir}
405 rm -rf $RPM_BUILD_ROOT
408 /sbin/chkconfig --add vmnet
409 %service vmnet restart "VMware networking service"
412 if [ "$1" = "0" ]; then
414 /sbin/chkconfig --del vmnet
417 %post -n kernel-misc-vmci
418 %depmod %{_kernel_ver}
420 %postun -n kernel-misc-vmci
421 %depmod %{_kernel_ver}
423 %post -n kernel-misc-vmmon
424 %depmod %{_kernel_ver}
426 %postun -n kernel-misc-vmmon
427 %depmod %{_kernel_ver}
429 %post -n kernel-misc-vmnet
430 %depmod %{_kernel_ver}
432 %postun -n kernel-misc-vmnet
433 %depmod %{_kernel_ver}
435 %if %{with userspace}
437 %defattr(644,root,root,755)
438 %doc doc/* lib/configurator/vmnet-{dhcpd,nat}.conf
439 %dir %{_sysconfdir}/vmware
440 %attr(755,root,root) %{_bindir}/vm-support
441 %attr(755,root,root) %{_bindir}/vmware-authtrusted
442 %attr(755,root,root) %{_bindir}/vmware-cmd
443 %attr(755,root,root) %{_bindir}/vmware
444 %attr(755,root,root) %{_bindir}/vmware-loop
445 %attr(755,root,root) %{_bindir}/vmware-mount.pl
446 %attr(755,root,root) %{_bindir}/vmware-vdiskmanager
447 %attr(755,root,root) %{_sbindir}/*
448 %dir %{_libdir}/vmware
449 %dir %{_libdir}/vmware/bin
451 %attr(4755,root,root) %{_libdir}/vmware/bin/vmware-vmx
452 %{_libdir}/vmware/config
453 %{_libdir}/vmware/isoimages
454 %if %{with internal_libs}
455 %attr(755,root,root) %{_libdir}/vmware/bin/vmware
456 %{_libdir}/vmware/lib
457 %attr(755,root,root) %{_libdir}/vmware/lib/wrapper-gtk24.sh
459 %dir %{_libdir}/vmware/serverd
460 %attr(750,root,root) %{_libdir}/vmware/serverd/init.pl
461 %{_libdir}/vmware/licenses
462 %dir %{_libdir}/vmware/messages
463 %{_libdir}/vmware/messages/en
464 %lang(ja) %{_libdir}/vmware/messages/ja
465 %{_libdir}/vmware/share
466 %{_libdir}/vmware/xkeymap
467 %{_mandir}/man1/vmware.1*
469 %{perl_vendorarch}/VMware
470 %{perl_vendorarch}/auto/VMware
471 %attr(1777,root,root) %dir /var/run/vmware
472 %attr(751,root,root) %dir /var/log/vmware
474 %{_desktopdir}/%{name}.desktop
477 %defattr(644,root,root,755)
478 %dir %{_sysconfdir}/vmware-server-console
479 %{_sysconfdir}/vmware-server-console/locations
480 %attr(755,root,root) %{_bindir}/vmware-server-console
481 %dir %{_libdir}/vmware-server-console
482 %dir %{_libdir}/vmware-server-console/bin
483 %attr(755,root,root) %{_libdir}/vmware-server-console/bin/vmware-remotemks
484 %{_libdir}/vmware-server-console/config
485 %if %{with internal_libs}
486 %attr(755,root,root) %{_libdir}/vmware-server-console/bin/vmware
487 %{_libdir}/vmware-server-console/lib
488 %attr(755,root,root) %{_libdir}/vmware-server-console/lib/wrapper-gtk24.sh
490 %dir %{_libdir}/vmware-server-console/messages
491 #%{_libdir}/vmware-server-console/messages/en
492 %lang(ja) %{_libdir}/vmware-server-console/messages/ja
493 %{_libdir}/vmware-server-console/share
494 %{_libdir}/vmware-server-console/xkeymap
495 %{_mandir}/man1/vmware-server-console.1*
498 %defattr(644,root,root,755)
499 %{_libdir}/vmware-server-console/help*
502 %defattr(644,root,root,755)
503 %dir %{_libdir}/vmware/bin-debug
505 %attr(4755,root,root) %{_libdir}/vmware/bin-debug/vmware-vmx
506 %dir %{_libdir}/vmware-server-console/bin-debug
507 %attr(755,root,root) %{_libdir}/vmware/bin-debug/vmware-remotemks
508 %attr(755,root,root) %{_libdir}/vmware-server-console/bin-debug/vmware-remotemks
511 %defattr(644,root,root,755)
512 %{_libdir}/vmware/help*
515 %defattr(644,root,root,755)
516 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/vmware/vmnet.conf
517 %attr(754,root,root) /etc/rc.d/init.d/vmnet
518 %attr(755,root,root) %{_bindir}/vmnet-bridge
519 %attr(755,root,root) %{_bindir}/vmnet-dhcpd
520 %attr(755,root,root) %{_bindir}/vmnet-natd
521 %attr(755,root,root) %{_bindir}/vmnet-netifup
522 %attr(755,root,root) %{_bindir}/vmnet-sniffer
523 %attr(755,root,root) %{_bindir}/vmware-ping
524 %dir %{_sysconfdir}/vmware/vmnet8
525 %dir %{_sysconfdir}/vmware/vmnet8/dhcpd
526 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/vmware/vmnet8/dhcpd/dhcpd.conf
527 %dir %{_sysconfdir}/vmware/vmnet8/nat
528 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/vmware/vmnet8/nat/nat.conf
529 %verify(not md5 mtime size) %{_sysconfdir}/vmware/vmnet8/dhcpd/dhcpd.leases*
533 %defattr(644,root,root,755)
534 %doc lib/configurator/vmnet-smb.conf
535 %attr(755,root,root) %{_bindir}/vmware-nmbd
536 %attr(755,root,root) %{_bindir}/vmware-smbd
537 %attr(755,root,root) %{_bindir}/vmware-smbpasswd
538 %attr(755,root,root) %{_bindir}/vmware-smbpasswd.bin
539 %{_libdir}/vmware/smb
544 %files -n kernel-misc-vmci
545 %defattr(644,root,root,755)
546 /lib/modules/%{_kernel_ver}/misc/vmci.ko*
548 %files -n kernel-misc-vmmon
549 %defattr(644,root,root,755)
550 /lib/modules/%{_kernel_ver}/misc/vmmon.ko*
552 %files -n kernel-misc-vmnet
553 %defattr(644,root,root,755)
554 /lib/modules/%{_kernel_ver}/misc/vmnet.ko*