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