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.
210 %setup -q -T -n vmware-server-distrib -b0 -a2
213 %setup -q -T -n vmware-server-distrib -b1 -a3
215 tar zxf vmware-mui-distrib/console-distrib/%{name}-console-%{ver}-%{subver}.tar.gz
216 cp vmware-any-any-update%{urel}/{vmmon,vmnet}.tar lib/modules/source/
217 cd lib/modules/source
221 cp -a vmmon-only{,.clean}
222 cp -a vmnet-only{,.clean}
226 tar xf lib/perl/control.tar
229 sed -i 's:vm_db_answer_LIBDIR:VM_LIBDIR:g;s:vm_db_answer_BINDIR:VM_BINDIR:g' bin/vmware
231 cd vmware-any-any-update%{urel}
232 chmod u+w ../lib/bin/vmware-vmx ../lib/bin-debug/vmware-vmx ../bin/vmnet-bridge
236 %{__cc} %{rpmldflags} %{rpmcflags} -o update update.c
237 ./update vmx ../lib/bin/vmware-vmx
238 ./update vmxdebug ../lib/bin-debug/vmware-vmx
239 ./update bridge ../bin/vmnet-bridge
243 %if %{with userspace}
246 sed -i "s:^INSTALLSITEARCH.*$:INSTALLSITEARCH = %{perl_vendorarch}:" Makefile
247 sed -i "s:^INSTALLSITELIB.*$:INSTALLSITELIB = %{perl_vendorlib}:" Makefile
248 sed -i "s:^INSTALLSITEMAN1DIR.*$:INSTALLSITEMAN1DIR = %{_mandir}/man1:" Makefile
249 sed -i "s:^INSTALLSITEMAN3DIR.*$:INSTALLSITEMAN3DIR = %{_mandir}/man3:" Makefile
256 cd lib/modules/source
260 for mod in vmmon vmnet ; do
261 for cfg in %{?with_dist_kernel:dist}%{!?with_dist_kernel:nondist}; do
262 if [ ! -r "%{_kernelsrcdir}/config-$cfg" ]; then
266 cp -a $mod-only.clean $mod-only
268 install -d o/include/linux
269 ln -sf %{_kernelsrcdir}/config-$cfg o/.config
270 ln -sf %{_kernelsrcdir}/Module.symvers-$cfg o/Module.symvers
271 ln -sf %{_kernelsrcdir}/include/linux/autoconf-$cfg.h o/include/linux/autoconf.h
272 if grep -q "^CONFIG_PREEMPT_RT=y$" o/.config; then
273 sed -e '/pollQueueLock/s/SPIN_LOCK_UNLOCKED/SPIN_LOCK_UNLOCKED(pollQueueLock)/' \
274 -e '/timerLock/s/SPIN_LOCK_UNLOCKED/SPIN_LOCK_UNLOCKED(timerLock)/' \
275 -i ../vmmon-only/linux/driver.c
276 sed -e 's/SPIN_LOCK_UNLOCKED/SPIN_LOCK_UNLOCKED(vnetHubLock)/' \
277 -i ../vmnet-only/hub.c
278 sed -e 's/RW_LOCK_UNLOCKED/RW_LOCK_UNLOCKED(vnetPeerLock)/' \
279 -i ../vmnet-only/driver.c
281 %if %{with dist_kernel}
282 %{__make} -j1 -C %{_kernelsrcdir} O=$PWD/o prepare scripts
284 install -d o/include/config
285 touch o/include/config/MARKER
286 ln -sf %{_kernelsrcdir}/scripts o/scripts
288 %{__make} -C %{_kernelsrcdir} modules \
293 %{?with_verbose:V=1} \
295 mv -f $mod.ko ../built/$mod-$cfg.ko
302 rm -rf $RPM_BUILD_ROOT
304 %if %{with userspace}
306 $RPM_BUILD_ROOT%{_sysconfdir}/vmware{,-server-console} \
307 $RPM_BUILD_ROOT%{_sysconfdir}/vmware/vmnet8/{nat,dhcpd} \
308 $RPM_BUILD_ROOT%{_bindir} \
309 $RPM_BUILD_ROOT%{_sbindir} \
310 $RPM_BUILD_ROOT%{_libdir}/vmware{,-server-console}/bin \
311 $RPM_BUILD_ROOT%{_libdir}/vmware/serverd \
312 $RPM_BUILD_ROOT%{_mandir} \
313 $RPM_BUILD_ROOT%{_pixmapsdir} \
314 $RPM_BUILD_ROOT%{_desktopdir} \
315 $RPM_BUILD_ROOT/etc/rc.d/init.d \
316 $RPM_BUILD_ROOT/var/{log,run}/vmware
320 DESTDIR=$RPM_BUILD_ROOT
323 # copy other required perl modules
324 cp -r lib/perl5/site_perl/5.005/VMware $RPM_BUILD_ROOT%{perl_vendorarch}
325 cp -r lib/perl5/site_perl/5.005/i386-linux/VMware/VmdbPerl $RPM_BUILD_ROOT%{perl_vendorarch}/VMware
326 cp -r lib/perl5/site_perl/5.005/i386-linux/VMware/{HConfig,VmdbPerl}.pm $RPM_BUILD_ROOT%{perl_vendorarch}/VMware
327 cp -r lib/perl5/site_perl/5.005/i386-linux/auto/VMware/{HConfig,VmdbPerl} $RPM_BUILD_ROOT%{perl_vendorarch}/auto/VMware
329 # remove unecessary files
330 rm -f $RPM_BUILD_ROOT%{perl_vendorarch}/auto/VMware/{HConfig,VmdbPerl,VmPerl}/.{exists,packlist}
334 install -d $RPM_BUILD_ROOT/lib/modules/%{_kernel_ver}{,smp}/misc
336 #cd vmware-any-any-update%{urel}
337 cd lib/modules/source
339 install built/vmmon-%{?with_dist_kernel:dist}%{!?with_dist_kernel:nondist}.ko \
340 $RPM_BUILD_ROOT/lib/modules/%{_kernel_ver}/misc/vmmon.ko
341 install built/vmnet-%{?with_dist_kernel:dist}%{!?with_dist_kernel:nondist}.ko \
342 $RPM_BUILD_ROOT/lib/modules/%{_kernel_ver}/misc/vmnet.ko
347 %if %{with userspace}
348 install %{SOURCE5} $RPM_BUILD_ROOT/etc/rc.d/init.d/vmnet
349 install %{SOURCE6} $RPM_BUILD_ROOT%{_sysconfdir}/vmware/vmnet.conf
350 install %{SOURCE7} $RPM_BUILD_ROOT%{_pixmapsdir}
351 install %{SOURCE8} $RPM_BUILD_ROOT%{_desktopdir}
352 install %{SOURCE9} $RPM_BUILD_ROOT%{_sysconfdir}/vmware/vmnet8/nat/nat.conf
353 install %{SOURCE10} $RPM_BUILD_ROOT%{_sysconfdir}/vmware/vmnet8/dhcpd/dhcpd.conf
355 touch $RPM_BUILD_ROOT%{_sysconfdir}/vmware/vmnet8/dhcpd/dhcpd.leases
356 touch $RPM_BUILD_ROOT%{_sysconfdir}/vmware/vmnet8/dhcpd/dhcpd.leases~
358 install bin/*-* $RPM_BUILD_ROOT%{_bindir}
359 install sbin/*-* $RPM_BUILD_ROOT%{_sbindir}
360 install lib/bin/vmware-vmx $RPM_BUILD_ROOT%{_libdir}/vmware/bin
362 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
364 #cp -r lib/{bin-debug,config,help*,isoimages,licenses,messages,smb,xkeymap} \
365 cp -r lib/{bin-debug,config,help*,isoimages,licenses,messages,share,xkeymap} \
366 $RPM_BUILD_ROOT%{_libdir}/vmware
368 cp -r vmware-server-console-distrib/lib/{bin-debug,config,help*,messages,share,xkeymap} \
369 $RPM_BUILD_ROOT%{_libdir}/vmware-server-console
371 install vmware-server-console-distrib/lib/bin/vmware-remotemks $RPM_BUILD_ROOT%{_libdir}/vmware-server-console/bin
373 cp -r vmware-server-console-distrib/man/* man/* $RPM_BUILD_ROOT%{_mandir}
374 gunzip $RPM_BUILD_ROOT%{_mandir}/man?/*.gz
376 cat > $RPM_BUILD_ROOT%{_sysconfdir}/vmware-server-console/locations <<EOF
378 VM_LIBDIR=%{_libdir}/vmware-server-console
381 %if %{with internal_libs}
382 install bin/vmware $RPM_BUILD_ROOT%{_bindir}
383 install lib/bin/vmware $RPM_BUILD_ROOT%{_libdir}/vmware/bin
384 cp -r lib/lib $RPM_BUILD_ROOT%{_libdir}/vmware
386 install vmware-server-console-distrib/bin/vmware-server-console $RPM_BUILD_ROOT%{_bindir}
387 install vmware-server-console-distrib/lib/bin/vmware $RPM_BUILD_ROOT%{_libdir}/vmware-server-console/bin
388 cp -r vmware-server-console-distrib/lib/lib $RPM_BUILD_ROOT%{_libdir}/vmware-server-console
390 install lib/bin/vmware $RPM_BUILD_ROOT%{_bindir}
391 install vmware-server-console-distrib/lib/bin/vmware-server-console $RPM_BUILD_ROOT%{_bindir}
396 rm -rf $RPM_BUILD_ROOT
399 /sbin/chkconfig --add vmnet
400 %service vmnet restart "VMware networking service"
403 if [ "$1" = "0" ]; then
405 /sbin/chkconfig --del vmnet
408 %post -n kernel-misc-vmmon
409 %depmod %{_kernel_ver}
411 %postun -n kernel-misc-vmmon
412 %depmod %{_kernel_ver}
414 %post -n kernel-misc-vmnet
415 %depmod %{_kernel_ver}
417 %postun -n kernel-misc-vmnet
418 %depmod %{_kernel_ver}
420 %if %{with userspace}
422 %defattr(644,root,root,755)
423 %doc doc/* lib/configurator/vmnet-{dhcpd,nat}.conf
424 %dir %{_sysconfdir}/vmware
425 %attr(755,root,root) %{_bindir}/vm-support
426 %attr(755,root,root) %{_bindir}/vmware-authtrusted
427 %attr(755,root,root) %{_bindir}/vmware-cmd
428 %attr(755,root,root) %{_bindir}/vmware
429 %attr(755,root,root) %{_bindir}/vmware-loop
430 %attr(755,root,root) %{_bindir}/vmware-mount.pl
431 %attr(755,root,root) %{_bindir}/vmware-vdiskmanager
432 %attr(755,root,root) %{_sbindir}/*
433 %dir %{_libdir}/vmware
434 %dir %{_libdir}/vmware/bin
436 %attr(4755,root,root) %{_libdir}/vmware/bin/vmware-vmx
437 %{_libdir}/vmware/config
438 %{_libdir}/vmware/isoimages
439 %if %{with internal_libs}
440 %attr(755,root,root) %{_libdir}/vmware/bin/vmware
441 %{_libdir}/vmware/lib
442 %attr(755,root,root) %{_libdir}/vmware/lib/wrapper-gtk24.sh
444 %dir %{_libdir}/vmware/serverd
445 %attr(750,root,root) %{_libdir}/vmware/serverd/init.pl
446 %{_libdir}/vmware/licenses
447 %dir %{_libdir}/vmware/messages
448 %{_libdir}/vmware/messages/en
449 %lang(ja) %{_libdir}/vmware/messages/ja
450 %{_libdir}/vmware/share
451 %{_libdir}/vmware/xkeymap
452 %{_mandir}/man1/vmware.1*
454 %{perl_vendorarch}/VMware
455 %{perl_vendorarch}/auto/VMware
456 %attr(1777,root,root) %dir /var/run/vmware
457 %attr(751,root,root) %dir /var/log/vmware
459 %{_desktopdir}/%{name}.desktop
462 %defattr(644,root,root,755)
463 %dir %{_sysconfdir}/vmware-server-console
464 %{_sysconfdir}/vmware-server-console/locations
465 %attr(755,root,root) %{_bindir}/vmware-server-console
466 %dir %{_libdir}/vmware-server-console
467 %dir %{_libdir}/vmware-server-console/bin
468 %attr(755,root,root) %{_libdir}/vmware-server-console/bin/vmware-remotemks
469 %{_libdir}/vmware-server-console/config
470 %if %{with internal_libs}
471 %attr(755,root,root) %{_libdir}/vmware-server-console/bin/vmware
472 %{_libdir}/vmware-server-console/lib
473 %attr(755,root,root) %{_libdir}/vmware-server-console/lib/wrapper-gtk24.sh
475 %dir %{_libdir}/vmware-server-console/messages
476 #%{_libdir}/vmware-server-console/messages/en
477 %lang(ja) %{_libdir}/vmware-server-console/messages/ja
478 %{_libdir}/vmware-server-console/share
479 %{_libdir}/vmware-server-console/xkeymap
480 %{_mandir}/man1/vmware-server-console.1*
483 %defattr(644,root,root,755)
484 %{_libdir}/vmware-server-console/help*
487 %defattr(644,root,root,755)
488 %dir %{_libdir}/vmware/bin-debug
490 %attr(4755,root,root) %{_libdir}/vmware/bin-debug/vmware-vmx
491 %dir %{_libdir}/vmware-server-console/bin-debug
492 %attr(755,root,root) %{_libdir}/vmware/bin-debug/vmware-remotemks
493 %attr(755,root,root) %{_libdir}/vmware-server-console/bin-debug/vmware-remotemks
496 %defattr(644,root,root,755)
497 %{_libdir}/vmware/help*
500 %defattr(644,root,root,755)
501 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/vmware/vmnet.conf
502 %attr(754,root,root) /etc/rc.d/init.d/vmnet
503 %attr(755,root,root) %{_bindir}/vmnet-bridge
504 %attr(755,root,root) %{_bindir}/vmnet-dhcpd
505 %attr(755,root,root) %{_bindir}/vmnet-natd
506 %attr(755,root,root) %{_bindir}/vmnet-netifup
507 %attr(755,root,root) %{_bindir}/vmnet-sniffer
508 %attr(755,root,root) %{_bindir}/vmware-ping
509 %dir %{_sysconfdir}/vmware/vmnet8
510 %dir %{_sysconfdir}/vmware/vmnet8/dhcpd
511 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/vmware/vmnet8/dhcpd/dhcpd.conf
512 %dir %{_sysconfdir}/vmware/vmnet8/nat
513 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/vmware/vmnet8/nat/nat.conf
514 %verify(not md5 mtime size) %{_sysconfdir}/vmware/vmnet8/dhcpd/dhcpd.leases*
518 %defattr(644,root,root,755)
519 %doc lib/configurator/vmnet-smb.conf
520 %attr(755,root,root) %{_bindir}/vmware-nmbd
521 %attr(755,root,root) %{_bindir}/vmware-smbd
522 %attr(755,root,root) %{_bindir}/vmware-smbpasswd
523 %attr(755,root,root) %{_bindir}/vmware-smbpasswd.bin
524 %{_libdir}/vmware/smb
529 %files -n kernel-misc-vmmon
530 %defattr(644,root,root,755)
531 /lib/modules/%{_kernel_ver}/misc/vmmon.ko*
533 %files -n kernel-misc-vmnet
534 %defattr(644,root,root,755)
535 /lib/modules/%{_kernel_ver}/misc/vmnet.ko*