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-module-build >= 3:2.6.20.2}
70 BuildRequires: libstdc++-devel
71 BuildRequires: rpm-perlprov
72 BuildRequires: rpmbuild(macros) >= 1.379
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-vmmon
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(vmmon) = %{version}-%{rel}
183 %description -n kernel-misc-vmmon
184 Kernel modules for VMware Server - vmmon.
186 %description -n kernel-misc-vmmon -l pl.UTF-8
187 Moduły jądra dla VMware Server - vmmon.
189 %package -n kernel-misc-vmnet
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(vmnet) = %{version}-%{rel}
202 %description -n kernel-misc-vmnet
203 Kernel modules for VMware Server - vmnet.
205 %description -n kernel-misc-vmnet -l pl.UTF-8
206 Moduły jądra dla VMware Server - vmnet.
209 %setup -q -n vmware-server-distrib -a1 -a2
210 tar zxf vmware-mui-distrib/console-distrib/%{name}-console-%{ver}-%{subver}.tar.gz
211 cp vmware-any-any-update%{urel}/{vmmon,vmnet}.tar lib/modules/source/
212 cd lib/modules/source
216 cp -a vmmon-only{,.clean}
217 cp -a vmnet-only{,.clean}
221 tar xf lib/perl/control.tar
224 sed -i 's:vm_db_answer_LIBDIR:VM_LIBDIR:g;s:vm_db_answer_BINDIR:VM_BINDIR:g' bin/vmware
226 cd vmware-any-any-update%{urel}
227 chmod u+w ../lib/bin/vmware-vmx ../lib/bin-debug/vmware-vmx ../bin/vmnet-bridge
231 %{__cc} %{rpmldflags} %{rpmcflags} -o update update.c
232 ./update vmx ../lib/bin/vmware-vmx
233 ./update vmxdebug ../lib/bin-debug/vmware-vmx
234 ./update bridge ../bin/vmnet-bridge
238 %if %{with userspace}
241 sed -i "s:^INSTALLSITEARCH.*$:INSTALLSITEARCH = %{perl_vendorarch}:" Makefile
242 sed -i "s:^INSTALLSITELIB.*$:INSTALLSITELIB = %{perl_vendorlib}:" Makefile
243 sed -i "s:^INSTALLSITEMAN1DIR.*$:INSTALLSITEMAN1DIR = %{_mandir}/man1:" Makefile
244 sed -i "s:^INSTALLSITEMAN3DIR.*$:INSTALLSITEMAN3DIR = %{_mandir}/man3:" Makefile
251 cd lib/modules/source
255 for mod in vmmon vmnet ; do
256 for cfg in %{?with_dist_kernel:dist}%{!?with_dist_kernel:nondist}; do
257 if [ ! -r "%{_kernelsrcdir}/config-$cfg" ]; then
261 cp -a $mod-only.clean $mod-only
263 install -d o/include/linux
264 ln -sf %{_kernelsrcdir}/config-$cfg o/.config
265 ln -sf %{_kernelsrcdir}/Module.symvers-$cfg o/Module.symvers
266 ln -sf %{_kernelsrcdir}/include/linux/autoconf-$cfg.h o/include/linux/autoconf.h
267 if grep -q "^CONFIG_PREEMPT_RT=y$" o/.config; then
268 sed -e '/pollQueueLock/s/SPIN_LOCK_UNLOCKED/SPIN_LOCK_UNLOCKED(pollQueueLock)/' \
269 -e '/timerLock/s/SPIN_LOCK_UNLOCKED/SPIN_LOCK_UNLOCKED(timerLock)/' \
270 -i ../vmmon-only/linux/driver.c
271 sed -e 's/SPIN_LOCK_UNLOCKED/SPIN_LOCK_UNLOCKED(vnetHubLock)/' \
272 -i ../vmnet-only/hub.c
273 sed -e 's/RW_LOCK_UNLOCKED/RW_LOCK_UNLOCKED(vnetPeerLock)/' \
274 -i ../vmnet-only/driver.c
276 %if %{with dist_kernel}
277 %{__make} -j1 -C %{_kernelsrcdir} O=$PWD/o prepare scripts
279 install -d o/include/config
280 touch o/include/config/MARKER
281 ln -sf %{_kernelsrcdir}/scripts o/scripts
283 %{__make} -C %{_kernelsrcdir} modules \
288 %{?with_verbose:V=1} \
290 mv -f $mod.ko ../built/$mod-$cfg.ko
297 rm -rf $RPM_BUILD_ROOT
299 %if %{with userspace}
301 $RPM_BUILD_ROOT%{_sysconfdir}/vmware{,-server-console} \
302 $RPM_BUILD_ROOT%{_sysconfdir}/vmware/vmnet8/{nat,dhcpd} \
303 $RPM_BUILD_ROOT%{_bindir} \
304 $RPM_BUILD_ROOT%{_sbindir} \
305 $RPM_BUILD_ROOT%{_libdir}/vmware{,-server-console}/bin \
306 $RPM_BUILD_ROOT%{_libdir}/vmware/serverd \
307 $RPM_BUILD_ROOT%{_mandir} \
308 $RPM_BUILD_ROOT%{_pixmapsdir} \
309 $RPM_BUILD_ROOT%{_desktopdir} \
310 $RPM_BUILD_ROOT/etc/rc.d/init.d \
311 $RPM_BUILD_ROOT/var/{log,run}/vmware
315 DESTDIR=$RPM_BUILD_ROOT
318 # copy other required perl modules
319 cp -r lib/perl5/site_perl/5.005/VMware $RPM_BUILD_ROOT%{perl_vendorarch}
320 cp -r lib/perl5/site_perl/5.005/i386-linux/VMware/VmdbPerl $RPM_BUILD_ROOT%{perl_vendorarch}/VMware
321 cp -r lib/perl5/site_perl/5.005/i386-linux/VMware/{HConfig,VmdbPerl}.pm $RPM_BUILD_ROOT%{perl_vendorarch}/VMware
322 cp -r lib/perl5/site_perl/5.005/i386-linux/auto/VMware/{HConfig,VmdbPerl} $RPM_BUILD_ROOT%{perl_vendorarch}/auto/VMware
324 # remove unecessary files
325 rm -f $RPM_BUILD_ROOT%{perl_vendorarch}/auto/VMware/{HConfig,VmdbPerl,VmPerl}/.{exists,packlist}
329 install -d $RPM_BUILD_ROOT/lib/modules/%{_kernel_ver}{,smp}/misc
331 #cd vmware-any-any-update%{urel}
332 cd lib/modules/source
334 install built/vmmon-%{?with_dist_kernel:dist}%{!?with_dist_kernel:nondist}.ko \
335 $RPM_BUILD_ROOT/lib/modules/%{_kernel_ver}/misc/vmmon.ko
336 install built/vmnet-%{?with_dist_kernel:dist}%{!?with_dist_kernel:nondist}.ko \
337 $RPM_BUILD_ROOT/lib/modules/%{_kernel_ver}/misc/vmnet.ko
342 %if %{with userspace}
343 install %{SOURCE5} $RPM_BUILD_ROOT/etc/rc.d/init.d/vmnet
344 install %{SOURCE6} $RPM_BUILD_ROOT%{_sysconfdir}/vmware/vmnet.conf
345 install %{SOURCE7} $RPM_BUILD_ROOT%{_pixmapsdir}
346 install %{SOURCE8} $RPM_BUILD_ROOT%{_desktopdir}
347 install %{SOURCE9} $RPM_BUILD_ROOT%{_sysconfdir}/vmware/vmnet8/nat/nat.conf
348 install %{SOURCE10} $RPM_BUILD_ROOT%{_sysconfdir}/vmware/vmnet8/dhcpd/dhcpd.conf
350 touch $RPM_BUILD_ROOT%{_sysconfdir}/vmware/vmnet8/dhcpd/dhcpd.leases
351 touch $RPM_BUILD_ROOT%{_sysconfdir}/vmware/vmnet8/dhcpd/dhcpd.leases~
353 install bin/*-* $RPM_BUILD_ROOT%{_bindir}
354 install sbin/*-* $RPM_BUILD_ROOT%{_sbindir}
355 install lib/bin/vmware-vmx $RPM_BUILD_ROOT%{_libdir}/vmware/bin
357 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
359 #cp -r lib/{bin-debug,config,help*,isoimages,licenses,messages,smb,xkeymap} \
360 cp -r lib/{bin-debug,config,help*,isoimages,licenses,messages,share,xkeymap} \
361 $RPM_BUILD_ROOT%{_libdir}/vmware
363 cp -r vmware-server-console-distrib/lib/{bin-debug,config,help*,messages,share,xkeymap} \
364 $RPM_BUILD_ROOT%{_libdir}/vmware-server-console
366 install vmware-server-console-distrib/lib/bin/vmware-remotemks $RPM_BUILD_ROOT%{_libdir}/vmware-server-console/bin
368 cp -r vmware-server-console-distrib/man/* man/* $RPM_BUILD_ROOT%{_mandir}
369 gunzip $RPM_BUILD_ROOT%{_mandir}/man?/*.gz
371 cat > $RPM_BUILD_ROOT%{_sysconfdir}/vmware-server-console/locations <<EOF
373 VM_LIBDIR=%{_libdir}/vmware-server-console
376 %if %{with internal_libs}
377 install bin/vmware $RPM_BUILD_ROOT%{_bindir}
378 install lib/bin/vmware $RPM_BUILD_ROOT%{_libdir}/vmware/bin
379 cp -r lib/lib $RPM_BUILD_ROOT%{_libdir}/vmware
381 install vmware-server-console-distrib/bin/vmware-server-console $RPM_BUILD_ROOT%{_bindir}
382 install vmware-server-console-distrib/lib/bin/vmware $RPM_BUILD_ROOT%{_libdir}/vmware-server-console/bin
383 cp -r vmware-server-console-distrib/lib/lib $RPM_BUILD_ROOT%{_libdir}/vmware-server-console
385 install lib/bin/vmware $RPM_BUILD_ROOT%{_bindir}
386 install vmware-server-console-distrib/lib/bin/vmware-server-console $RPM_BUILD_ROOT%{_bindir}
391 rm -rf $RPM_BUILD_ROOT
394 /sbin/chkconfig --add vmnet
395 %service vmnet restart "VMware networking service"
398 if [ "$1" = "0" ]; then
400 /sbin/chkconfig --del vmnet
403 %post -n kernel-misc-vmmon
404 %depmod %{_kernel_ver}
406 %postun -n kernel-misc-vmmon
407 %depmod %{_kernel_ver}
409 %post -n kernel-misc-vmnet
410 %depmod %{_kernel_ver}
412 %postun -n kernel-misc-vmnet
413 %depmod %{_kernel_ver}
415 %if %{with userspace}
417 %defattr(644,root,root,755)
418 %doc doc/* lib/configurator/vmnet-{dhcpd,nat}.conf
419 %dir %{_sysconfdir}/vmware
420 %attr(755,root,root) %{_bindir}/vm-support
421 %attr(755,root,root) %{_bindir}/vmware-authtrusted
422 %attr(755,root,root) %{_bindir}/vmware-cmd
423 %attr(755,root,root) %{_bindir}/vmware
424 %attr(755,root,root) %{_bindir}/vmware-loop
425 %attr(755,root,root) %{_bindir}/vmware-mount.pl
426 %attr(755,root,root) %{_bindir}/vmware-vdiskmanager
427 %attr(755,root,root) %{_sbindir}/*
428 %dir %{_libdir}/vmware
429 %dir %{_libdir}/vmware/bin
431 %attr(4755,root,root) %{_libdir}/vmware/bin/vmware-vmx
432 %{_libdir}/vmware/config
433 %{_libdir}/vmware/isoimages
434 %if %{with internal_libs}
435 %attr(755,root,root) %{_libdir}/vmware/bin/vmware
436 %{_libdir}/vmware/lib
437 %attr(755,root,root) %{_libdir}/vmware/lib/wrapper-gtk24.sh
439 %dir %{_libdir}/vmware/serverd
440 %attr(750,root,root) %{_libdir}/vmware/serverd/init.pl
441 %{_libdir}/vmware/licenses
442 %dir %{_libdir}/vmware/messages
443 %{_libdir}/vmware/messages/en
444 %lang(ja) %{_libdir}/vmware/messages/ja
445 %{_libdir}/vmware/share
446 %{_libdir}/vmware/xkeymap
447 %{_mandir}/man1/vmware.1*
449 %{perl_vendorarch}/VMware
450 %{perl_vendorarch}/auto/VMware
451 %attr(1777,root,root) %dir /var/run/vmware
452 %attr(751,root,root) %dir /var/log/vmware
454 %{_desktopdir}/%{name}.desktop
457 %defattr(644,root,root,755)
458 %dir %{_sysconfdir}/vmware-server-console
459 %{_sysconfdir}/vmware-server-console/locations
460 %attr(755,root,root) %{_bindir}/vmware-server-console
461 %dir %{_libdir}/vmware-server-console
462 %dir %{_libdir}/vmware-server-console/bin
463 %attr(755,root,root) %{_libdir}/vmware-server-console/bin/vmware-remotemks
464 %{_libdir}/vmware-server-console/config
465 %if %{with internal_libs}
466 %attr(755,root,root) %{_libdir}/vmware-server-console/bin/vmware
467 %{_libdir}/vmware-server-console/lib
468 %attr(755,root,root) %{_libdir}/vmware-server-console/lib/wrapper-gtk24.sh
470 %dir %{_libdir}/vmware-server-console/messages
471 #%{_libdir}/vmware-server-console/messages/en
472 %lang(ja) %{_libdir}/vmware-server-console/messages/ja
473 %{_libdir}/vmware-server-console/share
474 %{_libdir}/vmware-server-console/xkeymap
475 %{_mandir}/man1/vmware-server-console.1*
478 %defattr(644,root,root,755)
479 %{_libdir}/vmware-server-console/help*
482 %defattr(644,root,root,755)
483 %dir %{_libdir}/vmware/bin-debug
485 %attr(4755,root,root) %{_libdir}/vmware/bin-debug/vmware-vmx
486 %dir %{_libdir}/vmware-server-console/bin-debug
487 %attr(755,root,root) %{_libdir}/vmware/bin-debug/vmware-remotemks
488 %attr(755,root,root) %{_libdir}/vmware-server-console/bin-debug/vmware-remotemks
491 %defattr(644,root,root,755)
492 %{_libdir}/vmware/help*
495 %defattr(644,root,root,755)
496 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/vmware/vmnet.conf
497 %attr(754,root,root) /etc/rc.d/init.d/vmnet
498 %attr(755,root,root) %{_bindir}/vmnet-bridge
499 %attr(755,root,root) %{_bindir}/vmnet-dhcpd
500 %attr(755,root,root) %{_bindir}/vmnet-natd
501 %attr(755,root,root) %{_bindir}/vmnet-netifup
502 %attr(755,root,root) %{_bindir}/vmnet-sniffer
503 %attr(755,root,root) %{_bindir}/vmware-ping
504 %dir %{_sysconfdir}/vmware/vmnet8
505 %dir %{_sysconfdir}/vmware/vmnet8/dhcpd
506 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/vmware/vmnet8/dhcpd/dhcpd.conf
507 %dir %{_sysconfdir}/vmware/vmnet8/nat
508 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/vmware/vmnet8/nat/nat.conf
509 %verify(not md5 mtime size) %{_sysconfdir}/vmware/vmnet8/dhcpd/dhcpd.leases*
513 %defattr(644,root,root,755)
514 %doc lib/configurator/vmnet-smb.conf
515 %attr(755,root,root) %{_bindir}/vmware-nmbd
516 %attr(755,root,root) %{_bindir}/vmware-smbd
517 %attr(755,root,root) %{_bindir}/vmware-smbpasswd
518 %attr(755,root,root) %{_bindir}/vmware-smbpasswd.bin
519 %{_libdir}/vmware/smb
524 %files -n kernel-misc-vmmon
525 %defattr(644,root,root,755)
526 /lib/modules/%{_kernel_ver}/misc/vmmon.ko*
528 %files -n kernel-misc-vmnet
529 %defattr(644,root,root,755)
530 /lib/modules/%{_kernel_ver}/misc/vmnet.ko*