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.
19 %bcond_without dist_kernel # without distribution kernel
20 %bcond_without kernel # don't build kernel modules
21 %bcond_without userspace # don't build userspace utilities
22 %bcond_with internal_libs # internal libs stuff
23 %bcond_with verbose # verbose build (V=1)
25 %include /usr/lib/rpm/macros.perl
31 %define _ccver %(rpm -q --qf "%{VERSION}" gcc)
33 Summary: VMware Server
34 Summary(pl.UTF-8): VMware Server - wirtualna platforma dla stacji roboczej
36 Version: %{_ver}.%{_build}
38 License: custom, non-distributable
39 Group: Applications/Emulators
40 Source0: http://download3.vmware.com/software/vmserver/%{name}-%{_ver}-%{_build}.tar.gz
41 # NoSource0-md5: 60ec55cd66b77fb202d88bee79baebdf
42 Source1: http://download3.vmware.com/software/vmserver/VMware-mui-%{_ver}-%{_build}.tar.gz
43 # NoSource1-md5: 6b13063d8ea83c2280549d33da92c476
44 Source2: http://knihovny.cvut.cz/ftp/pub/vmware/vmware-any-any-update%{_urel}.tar.gz
45 # NoSource2-md5: ab33ff7a799fee77f0f4ba5667cd4b9a
47 Source4: %{name}-vmnet.conf
49 Source6: %{name}.desktop
50 Source7: %{name}-nat.conf
51 Source8: %{name}-dhcpd.conf
52 Patch0: %{name}-Makefile.patch
53 Patch1: %{name}-run_script.patch
54 Patch2: %{name}-init_pl.patch
58 URL: http://www.vmware.com/
59 BuildRequires: gcc-c++
60 %{?with_dist_kernel:BuildRequires: kernel-module-build >= 3:2.6.20.2}
61 BuildRequires: rpm-perlprov
62 BuildRequires: rpmbuild(macros) >= 1.379
63 BuildRequires: sed >= 4.0
64 Requires: libgnomecanvasmm
65 ExclusiveArch: %{ix86}
66 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
68 %define _noautoprovfiles %{_libdir}/vmware*/lib/.*\.so.*
71 VMware Server Virtual Platform is a thin software layer that allows
72 multiple guest operating systems to run concurrently on a single
73 standard PC, without repartitioning or rebooting, and without
74 significant loss of performance.
76 %description -l pl.UTF-8
77 VMware Server Virtual Platform to cienka warstwa oprogramowania
78 pozwalająca na jednoczesne działanie wielu gościnnych systemów
79 operacyjnych na jednym zwykłym PC, bez repartycjonowania ani
80 rebootowania, bez znacznej utraty wydajności.
83 Summary: VMware debug utility
84 Summary(pl.UTF-8): Narzędzie VMware do odpluskwiania
85 Group: Applications/Emulators
86 Requires: %{name} = %{version}-%{release}
91 %description debug -l pl.UTF-8
92 Narzędzie VMware do odpluskwiania.
95 Summary: VMware console utility
96 Summary(pl.UTF-8): Konsola VMware
97 Group: Applications/Emulators
98 Requires: %{name} = %{version}-%{release}
101 A tool for controlling VM.
103 %description console -l pl.UTF-8
104 Narzędzie VMware do kontroli VM.
107 Summary: VMware Server help files
108 Summary(pl.UTF-8): Pliki pomocy dla VMware Server
109 Group: Applications/Emulators
110 Requires: %{name} = %{version}-%{release}
114 VMware Server help files.
116 %description help -l pl.UTF-8
117 Pliki pomocy dla VMware Server.
119 %package console-help
120 Summary: VMware Server console help files
121 Summary(pl.UTF-8): Pliki pomocy dla konsoli VMware Server
122 Group: Applications/Emulators
123 Requires: %{name} = %{version}-%{release}
126 %description console-help
127 VMware Server console help files.
129 %description console-help -l pl.UTF-8
130 Pliki pomocy dla konsoli VMware Server.
133 Summary: VMware networking utilities
134 Summary(pl.UTF-8): Narzędzia VMware do obsługi sieci
135 Group: Applications/Emulators
136 Requires(post,preun): /sbin/chkconfig
137 #Requires: %{name} = %{version}-%{release}
140 %description networking
141 VMware networking utilities.
143 %description networking -l pl.UTF-8
144 Narzędzia VMware do obsługi sieci.
147 Summary: VMware SMB utilities
148 Summary(pl.UTF-8): Narzędzia VMware do SMB
149 Group: Applications/Emulators
150 Requires: %{name} = %{version}-%{release}
153 VMware SMB utilities.
155 %description samba -l pl.UTF-8
156 Narzędzia VMware do SMB.
158 %package -n kernel-misc-vmmon
159 Summary: Kernel module for VMware Server
160 Summary(pl.UTF-8): Moduł jądra dla VMware Server
161 Release: %{_rel}@%{_kernel_ver_str}
163 Requires(post,postun): /sbin/depmod
164 Requires: dev >= 2.9.0-7
165 %if %{with dist_kernel}
166 %requires_releq_kernel
167 Requires(postun): %releq_kernel
169 Provides: kernel(vmmon) = %{version}-%{_rel}
171 %description -n kernel-misc-vmmon
172 Kernel modules for VMware Server - vmmon.
174 %description -n kernel-misc-vmmon -l pl.UTF-8
175 Moduły jądra dla VMware Server - vmmon.
177 %package -n kernel-misc-vmnet
178 Summary: Kernel module for VMware Server
179 Summary(pl.UTF-8): Moduł jądra dla VMware Server
180 Release: %{_rel}@%{_kernel_ver_str}
182 Requires(post,postun): /sbin/depmod
183 Requires: dev >= 2.9.0-7
184 %if %{with dist_kernel}
185 %requires_releq_kernel
186 Requires(postun): %releq_kernel
188 Provides: kernel(vmnet) = %{version}-%{_rel}
190 %description -n kernel-misc-vmnet
191 Kernel modules for VMware Server - vmnet.
193 %description -n kernel-misc-vmnet -l pl.UTF-8
194 Moduły jądra dla VMware Server - vmnet.
197 %setup -q -n vmware-server-distrib -a1 -a2
198 tar zxf vmware-mui-distrib/console-distrib/%{name}-console-%{_ver}-%{_build}.tar.gz
199 cp vmware-any-any-update%{_urel}/{vmmon,vmnet}.tar lib/modules/source/
200 cd lib/modules/source
204 cp -a vmmon-only{,.clean}
205 cp -a vmnet-only{,.clean}
209 tar xf lib/perl/control.tar
212 sed -i 's:vm_db_answer_LIBDIR:VM_LIBDIR:g;s:vm_db_answer_BINDIR:VM_BINDIR:g' bin/vmware
214 cd vmware-any-any-update%{_urel}
215 chmod u+w ../lib/bin/vmware-vmx ../lib/bin-debug/vmware-vmx ../bin/vmnet-bridge
219 %{__cc} %{rpmldflags} %{rpmcflags} -o update update.c
220 ./update vmx ../lib/bin/vmware-vmx
221 ./update vmxdebug ../lib/bin-debug/vmware-vmx
222 ./update bridge ../bin/vmnet-bridge
226 %if %{with userspace}
229 sed -i "s:^INSTALLSITEARCH.*$:INSTALLSITEARCH = %{perl_vendorarch}:" Makefile
230 sed -i "s:^INSTALLSITELIB.*$:INSTALLSITELIB = %{perl_vendorlib}:" Makefile
231 sed -i "s:^INSTALLSITEMAN1DIR.*$:INSTALLSITEMAN1DIR = %{_mandir}/man1:" Makefile
232 sed -i "s:^INSTALLSITEMAN3DIR.*$:INSTALLSITEMAN3DIR = %{_mandir}/man3:" Makefile
239 cd lib/modules/source
243 for mod in vmmon vmnet ; do
244 for cfg in %{?with_dist_kernel:dist}%{!?with_dist_kernel:nondist}; do
245 if [ ! -r "%{_kernelsrcdir}/config-$cfg" ]; then
249 cp -a $mod-only.clean $mod-only
251 install -d o/include/linux
252 ln -sf %{_kernelsrcdir}/config-$cfg o/.config
253 ln -sf %{_kernelsrcdir}/Module.symvers-$cfg o/Module.symvers
254 ln -sf %{_kernelsrcdir}/include/linux/autoconf-$cfg.h o/include/linux/autoconf.h
255 if grep -q "^CONFIG_PREEMPT_RT=y$" o/.config; then
256 sed -e '/pollQueueLock/s/SPIN_LOCK_UNLOCKED/SPIN_LOCK_UNLOCKED(pollQueueLock)/' \
257 -e '/timerLock/s/SPIN_LOCK_UNLOCKED/SPIN_LOCK_UNLOCKED(timerLock)/' \
258 -i ../vmmon-only/linux/driver.c
259 sed -e 's/SPIN_LOCK_UNLOCKED/SPIN_LOCK_UNLOCKED(vnetHubLock)/' \
260 -i ../vmnet-only/hub.c
261 sed -e 's/RW_LOCK_UNLOCKED/RW_LOCK_UNLOCKED(vnetPeerLock)/' \
262 -i ../vmnet-only/driver.c
264 %if %{with dist_kernel}
265 %{__make} -j1 -C %{_kernelsrcdir} O=$PWD/o prepare scripts
267 install -d o/include/config
268 touch o/include/config/MARKER
269 ln -sf %{_kernelsrcdir}/scripts o/scripts
271 %{__make} -C %{_kernelsrcdir} modules \
276 %{?with_verbose:V=1} \
278 mv -f $mod.ko ../built/$mod-$cfg.ko
285 rm -rf $RPM_BUILD_ROOT
287 %if %{with userspace}
289 $RPM_BUILD_ROOT%{_sysconfdir}/vmware{,-server-console} \
290 $RPM_BUILD_ROOT%{_sysconfdir}/vmware/vmnet8/{nat,dhcpd} \
291 $RPM_BUILD_ROOT%{_bindir} \
292 $RPM_BUILD_ROOT%{_sbindir} \
293 $RPM_BUILD_ROOT%{_libdir}/vmware{,-server-console}/bin \
294 $RPM_BUILD_ROOT%{_libdir}/vmware/serverd \
295 $RPM_BUILD_ROOT%{_mandir} \
296 $RPM_BUILD_ROOT%{_pixmapsdir} \
297 $RPM_BUILD_ROOT%{_desktopdir} \
298 $RPM_BUILD_ROOT/etc/rc.d/init.d \
299 $RPM_BUILD_ROOT/var/{log,run}/vmware
303 DESTDIR=$RPM_BUILD_ROOT
306 # copy other required perl modules
307 cp -r lib/perl5/site_perl/5.005/VMware $RPM_BUILD_ROOT%{perl_vendorarch}
308 cp -r lib/perl5/site_perl/5.005/i386-linux/VMware/VmdbPerl $RPM_BUILD_ROOT%{perl_vendorarch}/VMware
309 cp -r lib/perl5/site_perl/5.005/i386-linux/VMware/{HConfig,VmdbPerl}.pm $RPM_BUILD_ROOT%{perl_vendorarch}/VMware
310 cp -r lib/perl5/site_perl/5.005/i386-linux/auto/VMware/{HConfig,VmdbPerl} $RPM_BUILD_ROOT%{perl_vendorarch}/auto/VMware
312 # remove unecessary files
313 rm -f $RPM_BUILD_ROOT%{perl_vendorarch}/auto/VMware/{HConfig,VmdbPerl,VmPerl}/.{exists,packlist}
317 install -d $RPM_BUILD_ROOT/lib/modules/%{_kernel_ver}{,smp}/misc
319 #cd vmware-any-any-update%{_urel}
320 cd lib/modules/source
322 install built/vmmon-%{?with_dist_kernel:dist}%{!?with_dist_kernel:nondist}.ko \
323 $RPM_BUILD_ROOT/lib/modules/%{_kernel_ver}/misc/vmmon.ko
324 install built/vmnet-%{?with_dist_kernel:dist}%{!?with_dist_kernel:nondist}.ko \
325 $RPM_BUILD_ROOT/lib/modules/%{_kernel_ver}/misc/vmnet.ko
330 %if %{with userspace}
331 install %{SOURCE3} $RPM_BUILD_ROOT/etc/rc.d/init.d/vmnet
332 install %{SOURCE4} $RPM_BUILD_ROOT%{_sysconfdir}/vmware/vmnet.conf
333 install %{SOURCE5} $RPM_BUILD_ROOT%{_pixmapsdir}
334 install %{SOURCE6} $RPM_BUILD_ROOT%{_desktopdir}
335 install %{SOURCE7} $RPM_BUILD_ROOT%{_sysconfdir}/vmware/vmnet8/nat/nat.conf
336 install %{SOURCE8} $RPM_BUILD_ROOT%{_sysconfdir}/vmware/vmnet8/dhcpd/dhcpd.conf
338 touch $RPM_BUILD_ROOT%{_sysconfdir}/vmware/vmnet8/dhcpd/dhcpd.leases
339 touch $RPM_BUILD_ROOT%{_sysconfdir}/vmware/vmnet8/dhcpd/dhcpd.leases~
341 install bin/*-* $RPM_BUILD_ROOT%{_bindir}
342 install sbin/*-* $RPM_BUILD_ROOT%{_sbindir}
343 install lib/bin/vmware-vmx $RPM_BUILD_ROOT%{_libdir}/vmware/bin
345 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
347 #cp -r lib/{bin-debug,config,help*,isoimages,licenses,messages,smb,xkeymap} \
348 cp -r lib/{bin-debug,config,help*,isoimages,licenses,messages,share,xkeymap} \
349 $RPM_BUILD_ROOT%{_libdir}/vmware
351 cp -r vmware-server-console-distrib/lib/{bin-debug,config,help*,messages,share,xkeymap} \
352 $RPM_BUILD_ROOT%{_libdir}/vmware-server-console
354 install vmware-server-console-distrib/lib/bin/vmware-remotemks $RPM_BUILD_ROOT%{_libdir}/vmware-server-console/bin
356 cp -r vmware-server-console-distrib/man/* man/* $RPM_BUILD_ROOT%{_mandir}
357 gunzip $RPM_BUILD_ROOT%{_mandir}/man?/*.gz
359 cat > $RPM_BUILD_ROOT%{_sysconfdir}/vmware-server-console/locations <<EOF
361 VM_LIBDIR=%{_libdir}/vmware-server-console
364 %if %{with internal_libs}
365 install bin/vmware $RPM_BUILD_ROOT%{_bindir}
366 install lib/bin/vmware $RPM_BUILD_ROOT%{_libdir}/vmware/bin
367 cp -r lib/lib $RPM_BUILD_ROOT%{_libdir}/vmware
369 install vmware-server-console-distrib/bin/vmware-server-console $RPM_BUILD_ROOT%{_bindir}
370 install vmware-server-console-distrib/lib/bin/vmware $RPM_BUILD_ROOT%{_libdir}/vmware-server-console/bin
371 cp -r vmware-server-console-distrib/lib/lib $RPM_BUILD_ROOT%{_libdir}/vmware-server-console
373 install lib/bin/vmware $RPM_BUILD_ROOT%{_bindir}
374 install vmware-server-console-distrib/lib/bin/vmware-server-console $RPM_BUILD_ROOT%{_bindir}
379 rm -rf $RPM_BUILD_ROOT
382 /sbin/chkconfig --add vmnet
383 %service vmnet restart "VMware networking service"
386 if [ "$1" = "0" ]; then
388 /sbin/chkconfig --del vmnet
391 %post -n kernel-misc-vmmon
392 %depmod %{_kernel_ver}
394 %postun -n kernel-misc-vmmon
395 %depmod %{_kernel_ver}
397 %post -n kernel-misc-vmnet
398 %depmod %{_kernel_ver}
400 %postun -n kernel-misc-vmnet
401 %depmod %{_kernel_ver}
403 %if %{with userspace}
405 %defattr(644,root,root,755)
406 %doc doc/* lib/configurator/vmnet-{dhcpd,nat}.conf
407 %dir %{_sysconfdir}/vmware
408 %attr(755,root,root) %{_bindir}/vm-support
409 %attr(755,root,root) %{_bindir}/vmware-authtrusted
410 %attr(755,root,root) %{_bindir}/vmware-cmd
411 %attr(755,root,root) %{_bindir}/vmware
412 %attr(755,root,root) %{_bindir}/vmware-loop
413 %attr(755,root,root) %{_bindir}/vmware-mount.pl
414 %attr(755,root,root) %{_bindir}/vmware-vdiskmanager
415 %attr(755,root,root) %{_sbindir}/*
416 %dir %{_libdir}/vmware
417 %dir %{_libdir}/vmware/bin
419 %attr(4755,root,root) %{_libdir}/vmware/bin/vmware-vmx
420 %{_libdir}/vmware/config
421 %{_libdir}/vmware/isoimages
422 %if %{with internal_libs}
423 %attr(755,root,root) %{_libdir}/vmware/bin/vmware
424 %{_libdir}/vmware/lib
425 %attr(755,root,root) %{_libdir}/vmware/lib/wrapper-gtk24.sh
427 %dir %{_libdir}/vmware/serverd
428 %attr(750,root,root) %{_libdir}/vmware/serverd/init.pl
429 %{_libdir}/vmware/licenses
430 %dir %{_libdir}/vmware/messages
431 %{_libdir}/vmware/messages/en
432 %lang(ja) %{_libdir}/vmware/messages/ja
433 %{_libdir}/vmware/share
434 %{_libdir}/vmware/xkeymap
435 %{_mandir}/man1/vmware.1*
437 %{perl_vendorarch}/VMware
438 %{perl_vendorarch}/auto/VMware
439 %attr(1777,root,root) %dir /var/run/vmware
440 %attr(751,root,root) %dir /var/log/vmware
442 %{_desktopdir}/%{name}.desktop
445 %defattr(644,root,root,755)
446 %dir %{_sysconfdir}/vmware-server-console
447 %{_sysconfdir}/vmware-server-console/locations
448 %attr(755,root,root) %{_bindir}/vmware-server-console
449 %dir %{_libdir}/vmware-server-console
450 %dir %{_libdir}/vmware-server-console/bin
451 %attr(755,root,root) %{_libdir}/vmware-server-console/bin/vmware-remotemks
452 %{_libdir}/vmware-server-console/config
453 %if %{with internal_libs}
454 %attr(755,root,root) %{_libdir}/vmware-server-console/bin/vmware
455 %{_libdir}/vmware-server-console/lib
456 %attr(755,root,root) %{_libdir}/vmware-server-console/lib/wrapper-gtk24.sh
458 %dir %{_libdir}/vmware-server-console/messages
459 #%{_libdir}/vmware-server-console/messages/en
460 %lang(ja) %{_libdir}/vmware-server-console/messages/ja
461 %{_libdir}/vmware-server-console/share
462 %{_libdir}/vmware-server-console/xkeymap
463 %{_mandir}/man1/vmware-server-console.1*
466 %defattr(644,root,root,755)
467 %{_libdir}/vmware-server-console/help*
470 %defattr(644,root,root,755)
471 %dir %{_libdir}/vmware/bin-debug
473 %attr(4755,root,root) %{_libdir}/vmware/bin-debug/vmware-vmx
474 %dir %{_libdir}/vmware-server-console/bin-debug
475 %attr(755,root,root) %{_libdir}/vmware/bin-debug/vmware-remotemks
476 %attr(755,root,root) %{_libdir}/vmware-server-console/bin-debug/vmware-remotemks
479 %defattr(644,root,root,755)
480 %{_libdir}/vmware/help*
483 %defattr(644,root,root,755)
484 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/vmware/vmnet.conf
485 %attr(754,root,root) /etc/rc.d/init.d/vmnet
486 %attr(755,root,root) %{_bindir}/vmnet-bridge
487 %attr(755,root,root) %{_bindir}/vmnet-dhcpd
488 %attr(755,root,root) %{_bindir}/vmnet-natd
489 %attr(755,root,root) %{_bindir}/vmnet-netifup
490 %attr(755,root,root) %{_bindir}/vmnet-sniffer
491 %attr(755,root,root) %{_bindir}/vmware-ping
492 %dir %{_sysconfdir}/vmware/vmnet8
493 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/vmware/vmnet8/dhcpd/dhcpd.conf
494 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/vmware/vmnet8/nat/nat.conf
495 %verify(not md5 mtime size) %{_sysconfdir}/vmware/vmnet8/dhcpd/dhcpd.leases*
499 %defattr(644,root,root,755)
500 %doc lib/configurator/vmnet-smb.conf
501 %attr(755,root,root) %{_bindir}/vmware-nmbd
502 %attr(755,root,root) %{_bindir}/vmware-smbd
503 %attr(755,root,root) %{_bindir}/vmware-smbpasswd
504 %attr(755,root,root) %{_bindir}/vmware-smbpasswd.bin
505 %{_libdir}/vmware/smb
510 %files -n kernel-misc-vmmon
511 %defattr(644,root,root,755)
512 /lib/modules/%{_kernel_ver}/misc/vmmon.ko*
514 %files -n kernel-misc-vmnet
515 %defattr(644,root,root,755)
516 /lib/modules/%{_kernel_ver}/misc/vmnet.ko*