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 "%{VERSION}" gcc)
36 Summary: VMware Server
37 Summary(pl.UTF-8): VMware Server - wirtualna platforma dla stacji roboczej
39 Version: %{_ver}.%{_build}
41 License: custom, non-distributable
42 Group: Applications/Emulators
43 Source0: http://download3.vmware.com/software/vmserver/%{name}-%{_ver}-%{_build}.tar.gz
44 # NoSource0-md5: 60ec55cd66b77fb202d88bee79baebdf
45 Source1: http://download3.vmware.com/software/vmserver/VMware-mui-%{_ver}-%{_build}.tar.gz
46 # NoSource1-md5: 6b13063d8ea83c2280549d33da92c476
47 Source2: http://knihovny.cvut.cz/ftp/pub/vmware/vmware-any-any-update%{_urel}.tar.gz
48 # NoSource2-md5: ab33ff7a799fee77f0f4ba5667cd4b9a
50 Source4: %{name}-vmnet.conf
52 Source6: %{name}.desktop
53 Source7: %{name}-nat.conf
54 Source8: %{name}-dhcpd.conf
55 Patch0: %{name}-Makefile.patch
56 Patch1: %{name}-run_script.patch
57 Patch2: %{name}-init_pl.patch
61 URL: http://www.vmware.com/
62 BuildRequires: gcc-c++
63 %{?with_dist_kernel:BuildRequires: kernel-module-build >= 3:2.6.20.2}
64 BuildRequires: rpm-perlprov
65 BuildRequires: rpmbuild(macros) >= 1.379
66 BuildRequires: sed >= 4.0
67 Requires: libgnomecanvasmm
70 ExclusiveArch: %{ix86}
71 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
73 %define _noautoprovfiles %{_libdir}/vmware*/lib/.*\.so.*
76 VMware Server Virtual Platform is a thin software layer that allows
77 multiple guest operating systems to run concurrently on a single
78 standard PC, without repartitioning or rebooting, and without
79 significant loss of performance.
81 %description -l pl.UTF-8
82 VMware Server Virtual Platform to cienka warstwa oprogramowania
83 pozwalająca na jednoczesne działanie wielu gościnnych systemów
84 operacyjnych na jednym zwykłym PC, bez repartycjonowania ani
85 rebootowania, bez znacznej utraty wydajności.
88 Summary: VMware debug utility
89 Summary(pl.UTF-8): Narzędzie VMware do odpluskwiania
90 Group: Applications/Emulators
91 Requires: %{name} = %{version}-%{release}
96 %description debug -l pl.UTF-8
97 Narzędzie VMware do odpluskwiania.
100 Summary: VMware console utility
101 Summary(pl.UTF-8): Konsola VMware
102 Group: Applications/Emulators
103 Requires: %{name} = %{version}-%{release}
106 A tool for controlling VM.
108 %description console -l pl.UTF-8
109 Narzędzie VMware do kontroli VM.
112 Summary: VMware Server help files
113 Summary(pl.UTF-8): Pliki pomocy dla VMware Server
114 Group: Applications/Emulators
115 Requires: %{name} = %{version}-%{release}
119 VMware Server help files.
121 %description help -l pl.UTF-8
122 Pliki pomocy dla VMware Server.
124 %package console-help
125 Summary: VMware Server console help files
126 Summary(pl.UTF-8): Pliki pomocy dla konsoli VMware Server
127 Group: Applications/Emulators
128 Requires: %{name} = %{version}-%{release}
131 %description console-help
132 VMware Server console help files.
134 %description console-help -l pl.UTF-8
135 Pliki pomocy dla konsoli VMware Server.
138 Summary: VMware networking utilities
139 Summary(pl.UTF-8): Narzędzia VMware do obsługi sieci
140 Group: Applications/Emulators
141 Requires(post,preun): /sbin/chkconfig
142 #Requires: %{name} = %{version}-%{release}
145 %description networking
146 VMware networking utilities.
148 %description networking -l pl.UTF-8
149 Narzędzia VMware do obsługi sieci.
152 Summary: VMware SMB utilities
153 Summary(pl.UTF-8): Narzędzia VMware do SMB
154 Group: Applications/Emulators
155 Requires: %{name} = %{version}-%{release}
158 VMware SMB utilities.
160 %description samba -l pl.UTF-8
161 Narzędzia VMware do SMB.
163 %package -n kernel-misc-vmmon
164 Summary: Kernel module for VMware Server
165 Summary(pl.UTF-8): Moduł jądra dla VMware Server
166 Release: %{_rel}@%{_kernel_ver_str}
168 Requires(post,postun): /sbin/depmod
169 Requires: dev >= 2.9.0-7
170 %if %{with dist_kernel}
171 %requires_releq_kernel
172 Requires(postun): %releq_kernel
174 Provides: kernel(vmmon) = %{version}-%{_rel}
176 %description -n kernel-misc-vmmon
177 Kernel modules for VMware Server - vmmon.
179 %description -n kernel-misc-vmmon -l pl.UTF-8
180 Moduły jądra dla VMware Server - vmmon.
182 %package -n kernel-misc-vmnet
183 Summary: Kernel module for VMware Server
184 Summary(pl.UTF-8): Moduł jądra dla VMware Server
185 Release: %{_rel}@%{_kernel_ver_str}
187 Requires(post,postun): /sbin/depmod
188 Requires: dev >= 2.9.0-7
189 %if %{with dist_kernel}
190 %requires_releq_kernel
191 Requires(postun): %releq_kernel
193 Provides: kernel(vmnet) = %{version}-%{_rel}
195 %description -n kernel-misc-vmnet
196 Kernel modules for VMware Server - vmnet.
198 %description -n kernel-misc-vmnet -l pl.UTF-8
199 Moduły jądra dla VMware Server - vmnet.
202 %setup -q -n vmware-server-distrib -a1 -a2
203 tar zxf vmware-mui-distrib/console-distrib/%{name}-console-%{_ver}-%{_build}.tar.gz
204 cp vmware-any-any-update%{_urel}/{vmmon,vmnet}.tar lib/modules/source/
205 cd lib/modules/source
209 cp -a vmmon-only{,.clean}
210 cp -a vmnet-only{,.clean}
214 tar xf lib/perl/control.tar
217 sed -i 's:vm_db_answer_LIBDIR:VM_LIBDIR:g;s:vm_db_answer_BINDIR:VM_BINDIR:g' bin/vmware
219 cd vmware-any-any-update%{_urel}
220 chmod u+w ../lib/bin/vmware-vmx ../lib/bin-debug/vmware-vmx ../bin/vmnet-bridge
224 %{__cc} %{rpmldflags} %{rpmcflags} -o update update.c
225 ./update vmx ../lib/bin/vmware-vmx
226 ./update vmxdebug ../lib/bin-debug/vmware-vmx
227 ./update bridge ../bin/vmnet-bridge
231 %if %{with userspace}
234 sed -i "s:^INSTALLSITEARCH.*$:INSTALLSITEARCH = %{perl_vendorarch}:" Makefile
235 sed -i "s:^INSTALLSITELIB.*$:INSTALLSITELIB = %{perl_vendorlib}:" Makefile
236 sed -i "s:^INSTALLSITEMAN1DIR.*$:INSTALLSITEMAN1DIR = %{_mandir}/man1:" Makefile
237 sed -i "s:^INSTALLSITEMAN3DIR.*$:INSTALLSITEMAN3DIR = %{_mandir}/man3:" Makefile
244 cd lib/modules/source
248 for mod in vmmon vmnet ; do
249 for cfg in %{?with_dist_kernel:dist}%{!?with_dist_kernel:nondist}; do
250 if [ ! -r "%{_kernelsrcdir}/config-$cfg" ]; then
254 cp -a $mod-only.clean $mod-only
256 install -d o/include/linux
257 ln -sf %{_kernelsrcdir}/config-$cfg o/.config
258 ln -sf %{_kernelsrcdir}/Module.symvers-$cfg o/Module.symvers
259 ln -sf %{_kernelsrcdir}/include/linux/autoconf-$cfg.h o/include/linux/autoconf.h
260 if grep -q "^CONFIG_PREEMPT_RT=y$" o/.config; then
261 sed -e '/pollQueueLock/s/SPIN_LOCK_UNLOCKED/SPIN_LOCK_UNLOCKED(pollQueueLock)/' \
262 -e '/timerLock/s/SPIN_LOCK_UNLOCKED/SPIN_LOCK_UNLOCKED(timerLock)/' \
263 -i ../vmmon-only/linux/driver.c
264 sed -e 's/SPIN_LOCK_UNLOCKED/SPIN_LOCK_UNLOCKED(vnetHubLock)/' \
265 -i ../vmnet-only/hub.c
266 sed -e 's/RW_LOCK_UNLOCKED/RW_LOCK_UNLOCKED(vnetPeerLock)/' \
267 -i ../vmnet-only/driver.c
269 %if %{with dist_kernel}
270 %{__make} -j1 -C %{_kernelsrcdir} O=$PWD/o prepare scripts
272 install -d o/include/config
273 touch o/include/config/MARKER
274 ln -sf %{_kernelsrcdir}/scripts o/scripts
276 %{__make} -C %{_kernelsrcdir} modules \
281 %{?with_verbose:V=1} \
283 mv -f $mod.ko ../built/$mod-$cfg.ko
290 rm -rf $RPM_BUILD_ROOT
292 %if %{with userspace}
294 $RPM_BUILD_ROOT%{_sysconfdir}/vmware{,-server-console} \
295 $RPM_BUILD_ROOT%{_sysconfdir}/vmware/vmnet8/{nat,dhcpd} \
296 $RPM_BUILD_ROOT%{_bindir} \
297 $RPM_BUILD_ROOT%{_sbindir} \
298 $RPM_BUILD_ROOT%{_libdir}/vmware{,-server-console}/bin \
299 $RPM_BUILD_ROOT%{_libdir}/vmware/serverd \
300 $RPM_BUILD_ROOT%{_mandir} \
301 $RPM_BUILD_ROOT%{_pixmapsdir} \
302 $RPM_BUILD_ROOT%{_desktopdir} \
303 $RPM_BUILD_ROOT/etc/rc.d/init.d \
304 $RPM_BUILD_ROOT/var/{log,run}/vmware
308 DESTDIR=$RPM_BUILD_ROOT
311 # copy other required perl modules
312 cp -r lib/perl5/site_perl/5.005/VMware $RPM_BUILD_ROOT%{perl_vendorarch}
313 cp -r lib/perl5/site_perl/5.005/i386-linux/VMware/VmdbPerl $RPM_BUILD_ROOT%{perl_vendorarch}/VMware
314 cp -r lib/perl5/site_perl/5.005/i386-linux/VMware/{HConfig,VmdbPerl}.pm $RPM_BUILD_ROOT%{perl_vendorarch}/VMware
315 cp -r lib/perl5/site_perl/5.005/i386-linux/auto/VMware/{HConfig,VmdbPerl} $RPM_BUILD_ROOT%{perl_vendorarch}/auto/VMware
317 # remove unecessary files
318 rm -f $RPM_BUILD_ROOT%{perl_vendorarch}/auto/VMware/{HConfig,VmdbPerl,VmPerl}/.{exists,packlist}
322 install -d $RPM_BUILD_ROOT/lib/modules/%{_kernel_ver}{,smp}/misc
324 #cd vmware-any-any-update%{_urel}
325 cd lib/modules/source
327 install built/vmmon-%{?with_dist_kernel:dist}%{!?with_dist_kernel:nondist}.ko \
328 $RPM_BUILD_ROOT/lib/modules/%{_kernel_ver}/misc/vmmon.ko
329 install built/vmnet-%{?with_dist_kernel:dist}%{!?with_dist_kernel:nondist}.ko \
330 $RPM_BUILD_ROOT/lib/modules/%{_kernel_ver}/misc/vmnet.ko
335 %if %{with userspace}
336 install %{SOURCE3} $RPM_BUILD_ROOT/etc/rc.d/init.d/vmnet
337 install %{SOURCE4} $RPM_BUILD_ROOT%{_sysconfdir}/vmware/vmnet.conf
338 install %{SOURCE5} $RPM_BUILD_ROOT%{_pixmapsdir}
339 install %{SOURCE6} $RPM_BUILD_ROOT%{_desktopdir}
340 install %{SOURCE7} $RPM_BUILD_ROOT%{_sysconfdir}/vmware/vmnet8/nat/nat.conf
341 install %{SOURCE8} $RPM_BUILD_ROOT%{_sysconfdir}/vmware/vmnet8/dhcpd/dhcpd.conf
343 touch $RPM_BUILD_ROOT%{_sysconfdir}/vmware/vmnet8/dhcpd/dhcpd.leases
344 touch $RPM_BUILD_ROOT%{_sysconfdir}/vmware/vmnet8/dhcpd/dhcpd.leases~
346 install bin/*-* $RPM_BUILD_ROOT%{_bindir}
347 install sbin/*-* $RPM_BUILD_ROOT%{_sbindir}
348 install lib/bin/vmware-vmx $RPM_BUILD_ROOT%{_libdir}/vmware/bin
350 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
352 #cp -r lib/{bin-debug,config,help*,isoimages,licenses,messages,smb,xkeymap} \
353 cp -r lib/{bin-debug,config,help*,isoimages,licenses,messages,share,xkeymap} \
354 $RPM_BUILD_ROOT%{_libdir}/vmware
356 cp -r vmware-server-console-distrib/lib/{bin-debug,config,help*,messages,share,xkeymap} \
357 $RPM_BUILD_ROOT%{_libdir}/vmware-server-console
359 install vmware-server-console-distrib/lib/bin/vmware-remotemks $RPM_BUILD_ROOT%{_libdir}/vmware-server-console/bin
361 cp -r vmware-server-console-distrib/man/* man/* $RPM_BUILD_ROOT%{_mandir}
362 gunzip $RPM_BUILD_ROOT%{_mandir}/man?/*.gz
364 cat > $RPM_BUILD_ROOT%{_sysconfdir}/vmware-server-console/locations <<EOF
366 VM_LIBDIR=%{_libdir}/vmware-server-console
369 %if %{with internal_libs}
370 install bin/vmware $RPM_BUILD_ROOT%{_bindir}
371 install lib/bin/vmware $RPM_BUILD_ROOT%{_libdir}/vmware/bin
372 cp -r lib/lib $RPM_BUILD_ROOT%{_libdir}/vmware
374 install vmware-server-console-distrib/bin/vmware-server-console $RPM_BUILD_ROOT%{_bindir}
375 install vmware-server-console-distrib/lib/bin/vmware $RPM_BUILD_ROOT%{_libdir}/vmware-server-console/bin
376 cp -r vmware-server-console-distrib/lib/lib $RPM_BUILD_ROOT%{_libdir}/vmware-server-console
378 install lib/bin/vmware $RPM_BUILD_ROOT%{_bindir}
379 install vmware-server-console-distrib/lib/bin/vmware-server-console $RPM_BUILD_ROOT%{_bindir}
384 rm -rf $RPM_BUILD_ROOT
387 /sbin/chkconfig --add vmnet
388 %service vmnet restart "VMware networking service"
391 if [ "$1" = "0" ]; then
393 /sbin/chkconfig --del vmnet
396 %post -n kernel-misc-vmmon
397 %depmod %{_kernel_ver}
399 %postun -n kernel-misc-vmmon
400 %depmod %{_kernel_ver}
402 %post -n kernel-misc-vmnet
403 %depmod %{_kernel_ver}
405 %postun -n kernel-misc-vmnet
406 %depmod %{_kernel_ver}
408 %if %{with userspace}
410 %defattr(644,root,root,755)
411 %doc doc/* lib/configurator/vmnet-{dhcpd,nat}.conf
412 %dir %{_sysconfdir}/vmware
413 %attr(755,root,root) %{_bindir}/vm-support
414 %attr(755,root,root) %{_bindir}/vmware-authtrusted
415 %attr(755,root,root) %{_bindir}/vmware-cmd
416 %attr(755,root,root) %{_bindir}/vmware
417 %attr(755,root,root) %{_bindir}/vmware-loop
418 %attr(755,root,root) %{_bindir}/vmware-mount.pl
419 %attr(755,root,root) %{_bindir}/vmware-vdiskmanager
420 %attr(755,root,root) %{_sbindir}/*
421 %dir %{_libdir}/vmware
422 %dir %{_libdir}/vmware/bin
424 %attr(4755,root,root) %{_libdir}/vmware/bin/vmware-vmx
425 %{_libdir}/vmware/config
426 %{_libdir}/vmware/isoimages
427 %if %{with internal_libs}
428 %attr(755,root,root) %{_libdir}/vmware/bin/vmware
429 %{_libdir}/vmware/lib
430 %attr(755,root,root) %{_libdir}/vmware/lib/wrapper-gtk24.sh
432 %dir %{_libdir}/vmware/serverd
433 %attr(750,root,root) %{_libdir}/vmware/serverd/init.pl
434 %{_libdir}/vmware/licenses
435 %dir %{_libdir}/vmware/messages
436 %{_libdir}/vmware/messages/en
437 %lang(ja) %{_libdir}/vmware/messages/ja
438 %{_libdir}/vmware/share
439 %{_libdir}/vmware/xkeymap
440 %{_mandir}/man1/vmware.1*
442 %{perl_vendorarch}/VMware
443 %{perl_vendorarch}/auto/VMware
444 %attr(1777,root,root) %dir /var/run/vmware
445 %attr(751,root,root) %dir /var/log/vmware
447 %{_desktopdir}/%{name}.desktop
450 %defattr(644,root,root,755)
451 %dir %{_sysconfdir}/vmware-server-console
452 %{_sysconfdir}/vmware-server-console/locations
453 %attr(755,root,root) %{_bindir}/vmware-server-console
454 %dir %{_libdir}/vmware-server-console
455 %dir %{_libdir}/vmware-server-console/bin
456 %attr(755,root,root) %{_libdir}/vmware-server-console/bin/vmware-remotemks
457 %{_libdir}/vmware-server-console/config
458 %if %{with internal_libs}
459 %attr(755,root,root) %{_libdir}/vmware-server-console/bin/vmware
460 %{_libdir}/vmware-server-console/lib
461 %attr(755,root,root) %{_libdir}/vmware-server-console/lib/wrapper-gtk24.sh
463 %dir %{_libdir}/vmware-server-console/messages
464 #%{_libdir}/vmware-server-console/messages/en
465 %lang(ja) %{_libdir}/vmware-server-console/messages/ja
466 %{_libdir}/vmware-server-console/share
467 %{_libdir}/vmware-server-console/xkeymap
468 %{_mandir}/man1/vmware-server-console.1*
471 %defattr(644,root,root,755)
472 %{_libdir}/vmware-server-console/help*
475 %defattr(644,root,root,755)
476 %dir %{_libdir}/vmware/bin-debug
478 %attr(4755,root,root) %{_libdir}/vmware/bin-debug/vmware-vmx
479 %dir %{_libdir}/vmware-server-console/bin-debug
480 %attr(755,root,root) %{_libdir}/vmware/bin-debug/vmware-remotemks
481 %attr(755,root,root) %{_libdir}/vmware-server-console/bin-debug/vmware-remotemks
484 %defattr(644,root,root,755)
485 %{_libdir}/vmware/help*
488 %defattr(644,root,root,755)
489 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/vmware/vmnet.conf
490 %attr(754,root,root) /etc/rc.d/init.d/vmnet
491 %attr(755,root,root) %{_bindir}/vmnet-bridge
492 %attr(755,root,root) %{_bindir}/vmnet-dhcpd
493 %attr(755,root,root) %{_bindir}/vmnet-natd
494 %attr(755,root,root) %{_bindir}/vmnet-netifup
495 %attr(755,root,root) %{_bindir}/vmnet-sniffer
496 %attr(755,root,root) %{_bindir}/vmware-ping
497 %dir %{_sysconfdir}/vmware/vmnet8
498 %dir %{_sysconfdir}/vmware/vmnet8/dhcpd
499 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/vmware/vmnet8/dhcpd/dhcpd.conf
500 %dir %{_sysconfdir}/vmware/vmnet8/nat
501 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/vmware/vmnet8/nat/nat.conf
502 %verify(not md5 mtime size) %{_sysconfdir}/vmware/vmnet8/dhcpd/dhcpd.leases*
506 %defattr(644,root,root,755)
507 %doc lib/configurator/vmnet-smb.conf
508 %attr(755,root,root) %{_bindir}/vmware-nmbd
509 %attr(755,root,root) %{_bindir}/vmware-smbd
510 %attr(755,root,root) %{_bindir}/vmware-smbpasswd
511 %attr(755,root,root) %{_bindir}/vmware-smbpasswd.bin
512 %{_libdir}/vmware/smb
517 %files -n kernel-misc-vmmon
518 %defattr(644,root,root,755)
519 /lib/modules/%{_kernel_ver}/misc/vmmon.ko*
521 %files -n kernel-misc-vmnet
522 %defattr(644,root,root,755)
523 /lib/modules/%{_kernel_ver}/misc/vmnet.ko*