]> git.pld-linux.org Git - packages/VMware-player.git/blob - VMware-player.spec
- allow build on 2.6.25.14
[packages/VMware-player.git] / VMware-player.spec
1 # TODO:
2 # - update to 2.0.4 (93057) - fixes CVE-2008-2098 and CVE-2008-2099
3 #   this requires new/fixed version of vmware-any-any-update to work
4 #   with current kernels
5 #
6 # Conditional build:
7 %bcond_without  dist_kernel     # without distribution kernel
8 %bcond_without  kernel          # don't build kernel modules
9 %bcond_without  userspace       # don't build userspace utilities
10 %bcond_with     internal_libs   # internal libs stuff
11 %bcond_with     verbose         # verbose build (V=1)
12 #
13 %include        /usr/lib/rpm/macros.perl
14
15 %if %{without kernel}
16 %undefine       with_dist_kernel
17 %endif
18 %ifarch %{x8664}
19 %undefine       with_userspace
20 %endif
21 #
22 %define         ver             2.0.3
23 %define         buildid 80004
24 %define         urel    115a
25 %define         ccver   %(rpm -q --qf '%{V}' gcc)
26 %define         _rel    0.14
27 #
28 Summary:        VMware player
29 Summary(pl.UTF-8):      VMware player - wirtualna platforma dla stacji roboczej
30 Name:           VMware-player
31 Version:        %{ver}.%{buildid}
32 Release:        %{_rel}
33 License:        custom, non-distributable
34 Group:          Applications/Emulators
35 Source0:        http://download3.vmware.com/software/vmplayer/%{name}-%{ver}-%{buildid}.i386.tar.gz
36 # NoSource0-md5:        
37 NoSource:       0
38 Source1:        http://download3.vmware.com/software/vmplayer/%{name}-%{ver}-%{buildid}.x86_64.tar.gz
39 # NoSource1-md5:        
40 NoSource:       1
41 Source2:        http://rtr.ca/vmware-2.6.24/vmware-any-any-update%{urel}.tgz
42 # Source2-md5:  d0433cf49589e0140ed6730ad790de3a
43 # original any-any: http://knihovny.cvut.cz/ftp/pub/vmware/vmware-any-any-update%{urel}.tar.gz
44 Source3:        %{name}-vmnet.conf
45 Source4:        %{name}.png
46 Source5:        %{name}.desktop
47 Source6:        %{name}-nat.conf
48 Source7:        %{name}-dhcpd.conf
49 Source8:        %{name}.init
50 Patch0:         %{name}-Makefile.patch
51 Patch1:         %{name}-run_script.patch
52 # patch below is included only for showing differences between 115 and 115a and not used for patching
53 Patch100:       vmware-any-any-update115-to-115a.patch  
54 URL:            http://www.vmware.com/
55 %{?with_dist_kernel:BuildRequires:      kernel%{_alt_kernel}-module-build >= 3:2.6.7}
56 BuildRequires:  libstdc++-devel
57 BuildRequires:  rpm-perlprov
58 BuildRequires:  rpmbuild(macros) >= 1.268
59 BuildRequires:  sed >= 4.0
60 Requires:       libgnomecanvasmm
61 Requires:       libview >= 0.5.5-2
62 Requires:       openssl >= 0.9.7
63 Requires(post,postun):  desktop-file-utils
64 ExclusiveArch:  %{ix86} %{x8664}
65 BuildRoot:      %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
66
67 %define         _noautoprovfiles %{_libdir}/vmware/lib/.*\.so.*
68
69 %description
70 VMware Player Virtual Platform is a thin software layer that allows
71 multiple guest operating systems to run concurrently on a single
72 standard PC, without repartitioning or rebooting, and without
73 significant loss of performance.
74
75 %description -l pl.UTF-8
76 VMware Player Virtual Platform to cienka warstwa oprogramowania
77 pozwalająca na jednoczesne działanie wielu gościnnych systemów
78 operacyjnych na jednym zwykłym PC, bez repartycjonowania ani
79 rebootowania, bez znacznej utraty wydajności.
80
81 %package debug
82 Summary:        VMware debug utility
83 Summary(pl.UTF-8):      Narzędzie VMware do odpluskwiania
84 Group:          Applications/Emulators
85 Requires:       %{name} = %{version}-%{release}
86
87 %description debug
88 VMware debug utility.
89
90 %description debug -l pl.UTF-8
91 Narzędzie VMware do odpluskwiania.
92
93 %package help
94 Summary:        VMware Player help files
95 Summary(pl.UTF-8):      Pliki pomocy dla VMware Player
96 Group:          Applications/Emulators
97 Requires:       %{name} = %{version}-%{release}
98
99 %description help
100 VMware Player help files.
101
102 %description help -l pl.UTF-8
103 Pliki pomocy dla VMware Player.
104
105 %package networking
106 Summary:        VMware networking utilities
107 Summary(pl.UTF-8):      Narzędzia VMware do obsługi sieci
108 Group:          Applications/Emulators
109 Requires(post,preun):   /sbin/chkconfig
110 Requires:       %{name} = %{version}-%{release}
111 Requires:       rc-scripts
112 Obsoletes:      VMware-Player-samba
113
114 %description networking
115 VMware networking utilities.
116
117 %description networking -l pl.UTF-8
118 Narzędzia VMware do obsługi sieci.
119
120 %package -n kernel%{_alt_kernel}-misc-vmmon
121 Summary:        Kernel module for VMware Player
122 Summary(pl.UTF-8):      Moduł jądra dla VMware Player
123 Release:        %{_rel}@%{_kernel_ver_str}
124 Group:          Base/Kernel
125 Requires(post,postun):  /sbin/depmod
126 Requires:       dev >= 2.9.0-7
127 %if %{with dist_kernel}
128 %requires_releq_kernel
129 Requires(postun):       %releq_kernel
130 %endif
131 Provides:       kernel(vmmon) = %{version}-%{_rel}
132
133 %description -n kernel%{_alt_kernel}-misc-vmmon
134 Kernel modules for VMware Player - vmmon.
135
136 %description -n kernel%{_alt_kernel}-misc-vmmon -l pl.UTF-8
137 Moduły jądra dla VMware Player - vmmon.
138
139 %package -n kernel%{_alt_kernel}-misc-vmnet
140 Summary:        Kernel module for VMware Player
141 Summary(pl.UTF-8):      Moduł jądra dla VMware Player
142 Release:        %{_rel}@%{_kernel_ver_str}
143 Group:          Base/Kernel
144 Requires(post,postun):  /sbin/depmod
145 Requires:       dev >= 2.9.0-7
146 %if %{with dist_kernel}
147 %requires_releq_kernel
148 Requires(postun):       %releq_kernel
149 %endif
150 Provides:       kernel(vmnet) = %{version}-%{_rel}
151
152 %description -n kernel%{_alt_kernel}-misc-vmnet
153 Kernel modules for VMware Player - vmnet.
154
155 %description -n kernel%{_alt_kernel}-misc-vmnet -l pl.UTF-8
156 Moduły jądra dla VMware Player - vmnet.
157
158 %prep
159 %setup -q -n vmware-player-distrib -a2
160 cd vmware-any-any-update%{urel}
161 tar xf vmmon.tar
162 tar xf vmnet.tar
163 cp -a vmmon-only{,.clean}
164 cp -a vmnet-only{,.clean}
165 sed -e 's/filter x86_64%/filter x86_64% amd64% ia64%/' \
166         -i vmnet-only.clean/Makefile.kernel
167 cd -
168
169 %patch0 -p1
170 %patch1 -p1
171
172 # will never use these
173 rm -f lib/libconf/lib/gtk-2.0/2.10.0/engines/*.a
174 rm -f lib/libconf/lib/gtk-2.0/2.10.0/immodules/*.a
175 rm -f lib/libconf/lib/gtk-2.0/2.10.0/loaders/*.a
176 rm -f lib/libconf/lib/pango/1.5.0/modules/*.a
177
178 %{__sed} -i -e 's#/build/.*/libconf/#%{_libdir}/vmware/libconf/#' \
179         lib/libconf/etc/gtk-2.0/{gdk-pixbuf.loaders,gtk.immodules} \
180         lib/libconf/etc/pango/{pango.modules,pangorc}
181
182 # typo?
183 %{__sed} -i -e 's#/etc/pango/pango/pangox.aliases#/etc/pango/pangox.aliases#' \
184         lib/libconf/etc/pango/pangorc
185
186 %build
187 sed -i 's:vm_db_answer_LIBDIR:VM_LIBDIR:g;s:vm_db_answer_BINDIR:VM_BINDIR:g' bin/vmplayer
188
189 cd vmware-any-any-update%{urel}
190 chmod u+w ../lib/bin/vmware-vmx ../lib/bin-debug/vmware-vmx ../bin/vmnet-bridge
191
192 # hack until new any-any-update version available
193 sed -i -e 's/#define.*VMMON_VERSION_V6.*/#define VMMON_VERSION_V6               (167 << 16 | 0)/g' vmmon-only.clean/include/iocontrols_compat.h
194
195 %if %{with kernel}
196 rm -rf built
197 mkdir built
198
199 for mod in vmmon vmnet ; do
200         for cfg in %{?with_dist_kernel:dist}%{!?with_dist_kernel:nondist}; do
201                 if [ ! -r "%{_kernelsrcdir}/config-$cfg" ]; then
202                         exit 1
203                 fi
204                 rm -rf $mod-only
205                 cp -a $mod-only.clean $mod-only
206                 cd $mod-only
207                 install -d o/include/linux
208                 ln -sf %{_kernelsrcdir}/config-$cfg o/.config
209                 ln -sf %{_kernelsrcdir}/Module.symvers-$cfg o/Module.symvers
210                 ln -sf %{_kernelsrcdir}/include/linux/autoconf-$cfg.h o/include/linux/autoconf.h
211         if grep -q "^CONFIG_PREEMPT_RT=y$" o/.config; then
212                 sed -e '/pollQueueLock/s/SPIN_LOCK_UNLOCKED/SPIN_LOCK_UNLOCKED(pollQueueLock)/' \
213                         -e '/timerLock/s/SPIN_LOCK_UNLOCKED/SPIN_LOCK_UNLOCKED(timerLock)/' \
214                         -i ../vmmon-only/linux/driver.c
215                 sed -e 's/SPIN_LOCK_UNLOCKED/SPIN_LOCK_UNLOCKED(vnetHubLock)/' \
216                         -i ../vmnet-only/hub.c
217                 sed -e 's/RW_LOCK_UNLOCKED/RW_LOCK_UNLOCKED(vnetPeerLock)/' \
218                         -i ../vmnet-only/driver.c
219         fi
220         %if %{with dist_kernel}
221                 %{__make} -j1 -C %{_kernelsrcdir} O=$PWD/o prepare scripts
222         %else
223                 install -d o/include/config
224                 touch o/include/config/MARKER
225                 ln -sf %{_kernelsrcdir}/scripts o/scripts
226                 %endif
227                 %{__make} -C %{_kernelsrcdir} modules \
228                         VMWARE_VER=VME_V5 \
229                         SRCROOT=$PWD \
230                         M=$PWD O=$PWD/o \
231                         VM_KBUILD=26 \
232                         %{?with_verbose:V=1} \
233                         VM_CCVER=%{ccver}
234                 mv -f $mod.ko ../built/$mod-$cfg.ko
235                 cd -
236         done
237 done
238 %endif
239
240 %install
241 rm -rf $RPM_BUILD_ROOT
242
243 %if %{with userspace}
244 install -d \
245         $RPM_BUILD_ROOT%{_sysconfdir}/vmware \
246         $RPM_BUILD_ROOT%{_sysconfdir}/vmware/vmnet8/{nat,dhcpd} \
247         $RPM_BUILD_ROOT%{_bindir} \
248         $RPM_BUILD_ROOT%{_libdir}/vmware/{bin,lib,share/pixmaps} \
249         $RPM_BUILD_ROOT%{_mandir} \
250         $RPM_BUILD_ROOT%{_pixmapsdir} \
251         $RPM_BUILD_ROOT%{_iconsdir}/hicolor \
252         $RPM_BUILD_ROOT%{_desktopdir} \
253         $RPM_BUILD_ROOT/etc/rc.d/init.d \
254         $RPM_BUILD_ROOT/var/run/vmware
255 %endif
256
257 %if %{with kernel}
258 install -d $RPM_BUILD_ROOT%{_sysconfdir}/modprobe.d
259 echo "options vmmon vmversion=16" > $RPM_BUILD_ROOT%{_sysconfdir}/modprobe.d/%{name}-vmmon.conf
260
261 install -d $RPM_BUILD_ROOT/lib/modules/%{_kernel_ver}{,smp}/misc
262
263 cd vmware-any-any-update%{urel}/built
264 install vmmon* $RPM_BUILD_ROOT/lib/modules/%{_kernel_ver}/misc/vmmon.ko
265 install vmnet* $RPM_BUILD_ROOT/lib/modules/%{_kernel_ver}/misc/vmnet.ko
266 cd -
267 %endif
268
269 %if %{with userspace}
270 install %{SOURCE8} $RPM_BUILD_ROOT/etc/rc.d/init.d/vmnet
271 install %{SOURCE3} $RPM_BUILD_ROOT%{_sysconfdir}/vmware/vmnet.conf
272 install %{SOURCE4} $RPM_BUILD_ROOT%{_pixmapsdir}
273 install %{SOURCE5} $RPM_BUILD_ROOT%{_desktopdir}
274 install %{SOURCE6} $RPM_BUILD_ROOT%{_sysconfdir}/vmware/vmnet8/nat/nat.conf
275 install %{SOURCE7} $RPM_BUILD_ROOT%{_sysconfdir}/vmware/vmnet8/dhcpd/dhcpd.conf
276
277 touch $RPM_BUILD_ROOT%{_sysconfdir}/vmware/vmnet8/dhcpd/dhcpd.leases
278 touch $RPM_BUILD_ROOT%{_sysconfdir}/vmware/vmnet8/dhcpd/dhcpd.leases~
279
280 cp -a lib/share/icons/hicolor/* $RPM_BUILD_ROOT%{_iconsdir}/hicolor
281
282 install lib/share/pixmaps/* $RPM_BUILD_ROOT%{_libdir}/vmware/share/pixmaps
283 install doc/EULA $RPM_BUILD_ROOT%{_libdir}/vmware/share/EULA.txt
284
285 install bin/*-* $RPM_BUILD_ROOT%{_bindir}
286 install lib/bin/vmware-vmx $RPM_BUILD_ROOT%{_libdir}/vmware/bin
287 install lib/lib/libvmwarebase.so.0/libvmwarebase.so.0 $RPM_BUILD_ROOT%{_libdir}
288 install lib/lib/libvmwareui.so.0/libvmwareui.so.0 $RPM_BUILD_ROOT%{_libdir}
289
290 cp -r   lib/{bin-debug,config,help*,messages,xkeymap} \
291         $RPM_BUILD_ROOT%{_libdir}/vmware
292
293 cat > $RPM_BUILD_ROOT%{_sysconfdir}/vmware/locations <<EOF
294 VM_BINDIR=%{_bindir}
295 VM_LIBDIR=%{_libdir}/vmware
296 EOF
297
298 %if %{with internal_libs}
299 install bin/vmplayer $RPM_BUILD_ROOT%{_bindir}
300 install lib/bin/vmplayer $RPM_BUILD_ROOT%{_libdir}/vmware/bin
301 cp -a   lib/lib/* $RPM_BUILD_ROOT%{_libdir}/vmware/lib
302 cp -a   lib/libconf $RPM_BUILD_ROOT%{_libdir}/vmware
303 %else
304 install lib/bin/vmplayer $RPM_BUILD_ROOT%{_bindir}
305 install -d $RPM_BUILD_ROOT%{_libdir}/vmware/lib/lib{crypto,ssl}.so.0.9.7
306 ln -s %{_libdir}/libcrypto.so.0.9.7 $RPM_BUILD_ROOT%{_libdir}/vmware/lib/libcrypto.so.0.9.7/libcrypto.so.0.9.7
307 ln -s %{_libdir}/libssl.so.0.9.7 $RPM_BUILD_ROOT%{_libdir}/vmware/lib/libssl.so.0.9.7/libssl.so.0.9.7
308 %endif
309
310 # remove not needed files
311 rm -rf $RPM_BUILD_ROOT%{_bindir}/vmware-{config,uninstall}.pl $RPM_BUILD_ROOT%{_iconsdir}/hicolor/index.theme
312 %endif
313
314 %clean
315 rm -rf $RPM_BUILD_ROOT
316
317 %post
318 %update_icon_cache hicolor
319 %if %{with internal_libs}
320 gdk-pixbuf-query-loaders %{_libdir}/vmware/libconf/lib/gtk-2.0/2.10.0/loaders/*.so \
321         > %{_libdir}/vmware/libconf/etc/gtk-2.0/gdk-pixbuf.loaders
322 gtk-query-immodules-2.0 %{_libdir}/vmware/libconf/lib/gtk-2.0/2.10.0/immodules/*.so \
323         > %{_libdir}/vmware/libconf/etc/gtk-2.0/gtk.immodules
324 pango-querymodules %{_libdir}/vmware/libconf/lib/pango/1.5.0/modules/*.so \
325         > %{_libdir}/vmware/libconf/etc/pango/pango.modules
326 %endif
327
328 %postun
329 %update_icon_cache hicolor
330
331 %post networking
332 /sbin/chkconfig --add vmnet
333 %service vmnet restart "VMware networking service"
334
335 %preun networking
336 if [ "$1" = "0" ]; then
337         %service vmnet stop
338         /sbin/chkconfig --del vmnet
339 fi
340
341 %post   -n kernel%{_alt_kernel}-misc-vmmon
342 %depmod %{_kernel_ver}
343
344 %postun -n kernel%{_alt_kernel}-misc-vmmon
345 %depmod %{_kernel_ver}
346
347 %post   -n kernel%{_alt_kernel}-misc-vmnet
348 %depmod %{_kernel_ver}
349
350 %postun -n kernel%{_alt_kernel}-misc-vmnet
351 %depmod %{_kernel_ver}
352
353 %if %{with userspace}
354 %files
355 %defattr(644,root,root,755)
356 %doc doc/* lib/configurator/vmnet-{dhcpd,nat}.conf
357 %dir %{_sysconfdir}/vmware
358 %{_sysconfdir}/vmware/locations
359 %attr(755,root,root) %{_bindir}/vmplayer
360 %attr(755,root,root) %{_bindir}/vmware-acetool
361 %attr(755,root,root) %{_bindir}/vm-support
362 %attr(755,root,root) %{_libdir}/libvmwarebase.so.*
363 %attr(755,root,root) %{_libdir}/libvmwareui.so.*
364 %dir %{_libdir}/vmware
365 %dir %{_libdir}/vmware/bin
366 # warning: SUID !!!
367 %attr(4755,root,root) %{_libdir}/vmware/bin/vmware-vmx
368 %dir %{_libdir}/vmware/lib
369 %{_libdir}/vmware/config
370 %if %{with internal_libs}
371 %attr(755,root,root) %{_libdir}/vmware/bin/vmplayer
372 %attr(755,root,root) %{_libdir}/vmware/lib/lib*
373 %attr(755,root,root) %{_libdir}/vmware/lib/wrapper-gtk24.sh
374
375 %dir %{_libdir}/vmware/libconf
376 %dir %{_libdir}/vmware/libconf/etc
377 %{_libdir}/vmware/libconf/etc/fonts
378 %{_libdir}/vmware/libconf/etc/gtk-2.0
379 %{_libdir}/vmware/libconf/etc/pango
380 %dir %{_libdir}/vmware/libconf/lib
381 %dir %{_libdir}/vmware/libconf/lib/gtk-2.0
382 %dir %{_libdir}/vmware/libconf/lib/gtk-2.0/2.10.0
383 %dir %{_libdir}/vmware/libconf/lib/gtk-2.0/2.10.0/engines
384 %attr(755,root,root) %{_libdir}/vmware/libconf/lib/gtk-2.0/2.10.0/engines/*.so
385 %dir %{_libdir}/vmware/libconf/lib/gtk-2.0/2.10.0/immodules
386 %attr(755,root,root) %{_libdir}/vmware/libconf/lib/gtk-2.0/2.10.0/immodules/*.so
387 %dir %{_libdir}/vmware/libconf/lib/gtk-2.0/2.10.0/loaders
388 %attr(755,root,root) %{_libdir}/vmware/libconf/lib/gtk-2.0/2.10.0/loaders/*.so
389 %dir %{_libdir}/vmware/libconf/lib/pango
390 %dir %{_libdir}/vmware/libconf/lib/pango/1.5.0
391 %dir %{_libdir}/vmware/libconf/lib/pango/1.5.0/modules
392 %attr(755,root,root) %{_libdir}/vmware/libconf/lib/pango/1.5.0/modules/*.so
393 %else
394 # package old openssl (buggy but needed to work)
395 %dir %{_libdir}/vmware/lib/libcrypto.so.0.9.7
396 %attr(755,root,root) %{_libdir}/vmware/lib/libcrypto.so.0.9.7/libcrypto.so.0.9.7
397 %dir %{_libdir}/vmware/lib/libssl.so.0.9.7
398 %attr(755,root,root) %{_libdir}/vmware/lib/libssl.so.0.9.7/libssl.so.0.9.7
399 %endif
400 %dir %{_libdir}/vmware/messages
401 %lang(en) %{_libdir}/vmware/messages/en
402 %lang(ja) %{_libdir}/vmware/messages/ja
403 %{_libdir}/vmware/share
404 %{_libdir}/vmware/xkeymap
405 %attr(1777,root,root) %dir /var/run/vmware
406 %{_iconsdir}/hicolor/*/*/*.png
407 %{_iconsdir}/hicolor/*/*/*.svg
408 %{_pixmapsdir}/*.png
409 %{_desktopdir}/%{name}.desktop
410
411 %files debug
412 %defattr(644,root,root,755)
413 %dir %{_libdir}/vmware/bin-debug
414 # warning: SUID !!!
415 %attr(4755,root,root) %{_libdir}/vmware/bin-debug/vmware-vmx
416
417 %files help
418 %defattr(644,root,root,755)
419 %{_libdir}/vmware/help*
420
421 %files networking
422 %defattr(644,root,root,755)
423 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/vmware/vmnet.conf
424 %attr(754,root,root) /etc/rc.d/init.d/vmnet
425 %attr(755,root,root) %{_bindir}/vmnet-bridge
426 %attr(755,root,root) %{_bindir}/vmnet-detect
427 %attr(755,root,root) %{_bindir}/vmnet-dhcpd
428 %attr(755,root,root) %{_bindir}/vmnet-natd
429 %attr(755,root,root) %{_bindir}/vmnet-netifup
430 %attr(755,root,root) %{_bindir}/vmnet-sniffer
431 %attr(755,root,root) %{_bindir}/vmware-ping
432 %dir %{_sysconfdir}/vmware/vmnet8
433 %dir %{_sysconfdir}/vmware/vmnet8/dhcpd
434 %dir %{_sysconfdir}/vmware/vmnet8/nat
435 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/vmware/vmnet8/dhcpd/dhcpd.conf
436 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/vmware/vmnet8/nat/nat.conf
437 %verify(not md5 mtime size) %{_sysconfdir}/vmware/vmnet8/dhcpd/dhcpd.leases*
438
439 %endif
440
441 %if %{with kernel}
442 %files -n kernel%{_alt_kernel}-misc-vmmon
443 %defattr(644,root,root,755)
444 %{_sysconfdir}/modprobe.d/%{name}-vmmon.conf
445 /lib/modules/%{_kernel_ver}/misc/vmmon.ko*
446
447 %files -n kernel%{_alt_kernel}-misc-vmnet
448 %defattr(644,root,root,755)
449 /lib/modules/%{_kernel_ver}/misc/vmnet.ko*
450
451 %endif
This page took 0.054356 seconds and 3 git commands to generate.