3 %bcond_without kernel # without kernel modules
4 %bcond_without dist_kernel # without distribution kernel
5 %bcond_without userspace # without userspace package
6 %bcond_with verbose # verbose build (V=1)
9 %undefine with_dist_kernel
12 # The goal here is to have main, userspace, package built once with
13 # simple release number, and only rebuild kernel packages with kernel
14 # version as part of release number, without the need to bump release
15 # with every kernel change.
16 %if 0%{?_pld_builder:1} && %{with kernel} && %{with userspace}
17 %{error:kernel and userspace cannot be built at the same time on PLD builders}
21 %if "%{_alt_kernel}" != "%{nil}"
22 %if 0%{?build_kernels:1}
23 %{error:alt_kernel and build_kernels are mutually exclusive}
26 %undefine with_userspace
27 %global _build_kernels %{alt_kernel}
29 %global _build_kernels %{?build_kernels:,%{?build_kernels}}
32 %define kbrs %(echo %{_build_kernels} | tr , '\\n' | while read n ; do echo %%undefine alt_kernel ; [ -z "$n" ] || echo %%define alt_kernel $n ; echo "BuildRequires:kernel%%{_alt_kernel}-module-build >= 3:2.6.20.2" ; done)
33 %define kpkg %(echo %{_build_kernels} | tr , '\\n' | while read n ; do echo %%undefine alt_kernel ; [ -z "$n" ] || echo %%define alt_kernel $n ; echo %%kernel_pkg ; done)
34 %define bkpkg %(echo %{_build_kernels} | tr , '\\n' | while read n ; do echo %%undefine alt_kernel ; [ -z "$n" ] || echo %%define alt_kernel $n ; echo %%build_kernel_pkg ; done)
36 %define snap 2011.10.26
37 %define subver %(echo %{snap} | tr -d .)
41 %define pname open-vm-tools
42 %define modsrc modules/linux
43 Summary: VMWare guest utilities
44 Summary(pl.UTF-8): Narzędzia dla systemu-gościa dla VMware
45 Name: %{pname}%{?_pld_builder:%{?with_kernel:-kernel}}%{_alt_kernel}
47 #Release: 0.%{subver}.%{rel}%{?with_kernel:@%{_kernel_ver_str}}
48 Release: %{rel}%{?_pld_builder:%{?with_kernel:@%{_kernel_ver_str}}}
51 Group: Applications/System
52 Source0: http://downloads.sourceforge.net/project/open-vm-tools/open-vm-tools/stable-9.4.x/%{pname}-%{ver}-%{rev}.tar.gz
53 # Source0-md5: 91f74bf6e42a3f460a42b3be31db31dc
54 #Source0: http://downloads.sourceforge.net/open-vm-tools/open-vm-tools/%{snap}/%{pname}-%{snap}-%{rev}.tar.gz
55 Source1: %{pname}-packaging
56 Source2: %{pname}-modprobe.d
57 Source3: %{pname}-init
58 Source4: %{pname}-vmware-user.desktop
59 Patch0: %{pname}-linux-3.10.patch
60 Patch1: %{pname}-linux-3.11.patch
61 Patch2: %{pname}-linux-3.12.patch
62 Patch3: %{pname}-linux-3.14.patch
63 URL: http://open-vm-tools.sourceforge.net/
64 BuildRequires: rpmbuild(macros) >= 1.679
66 BuildRequires: autoconf
67 BuildRequires: doxygen
68 BuildRequires: glib2-devel >= 2.6.0
69 BuildRequires: gtk+2-devel
70 BuildRequires: gtkmm-devel >= 2.4.0
71 BuildRequires: libdnet-devel
72 BuildRequires: libfuse-devel
73 BuildRequires: libicu-devel
74 BuildRequires: libnotify-devel
75 BuildRequires: libpng-devel
76 BuildRequires: libstdc++-devel
77 BuildRequires: pam-devel
78 BuildRequires: pkgconfig
79 BuildRequires: procps-devel >= 1:3.3.3-2
80 BuildRequires: uriparser-devel
81 BuildRequires: xorg-lib-libSM-devel
82 BuildRequires: xorg-lib-libX11-devel
83 BuildRequires: xorg-lib-libXScrnSaver-devel
84 BuildRequires: xorg-lib-libXinerama-devel
85 BuildRequires: xorg-lib-libXrandr-devel
86 BuildRequires: xorg-lib-libXtst-devel
90 Obsoletes: kernel-misc-pvscsi
91 Obsoletes: kernel-misc-vmmemctl
93 %{?with_dist_kernel:%{expand:%kbrs}}
94 ExclusiveArch: %{ix86} %{x8664}
95 BuildRoot: %{tmpdir}/%{pname}-%{version}-root-%(id -u -n)
98 VMWare guest utilities.
100 %description -l pl.UTF-8
101 Narzędzia dla systemu-gościa dla VMware.
104 Summary: Header files for open-vm-tools
105 Summary(pl.UTF-8): Pliki nagłówkowe open-vm-tools
106 Group: Development/Libraries
107 Requires: %{pname} = %{epoch}:%{version}-%{release}
110 Header files for open-vm-tools.
112 %description devel -l pl.UTF-8
113 Pliki nagłówkowe open-vm-tools.
116 Summary: Static open-vm-tools libraries
117 Summary(pl.UTF-8): Statyczne biblioteki open-vm-tools
118 Group: Development/Libraries
119 Requires: %{pname}-devel = %{epoch}:%{version}-%{release}
122 Static open-vm-tools libraries.
124 %description static -l pl.UTF-8
125 Statyczne biblioteki open-vm-tools.
128 Summary: VMware guest utitities
129 Summary(pl.UTF-8): Narzędzia dla systemu-gościa dla VMware.
130 Group: Applications/System
131 Requires: %{pname} = %{epoch}:%{version}-%{release}
134 VMWare guest utilities. This package contains GUI part of tools.
136 %description gui -l pl.UTF-8
137 Narzędzia dla systemu-gościa dla VMware. Ten pakiet zawiera graficzną
140 %define kernel_pkg()\
141 %package -n kernel%{_alt_kernel}-misc-vmblock\
142 Summary: VMware vmblock Linux kernel module\
143 Summary(pl.UTF-8): Moduł jądra Linuksa VMware vmblock\
144 Release: %{rel}@%{_kernel_ver_str}\
146 Requires(post,postun): /sbin/depmod\
147 Requires: dev >= 2.9.0-7\
148 %if %{with dist_kernel}\
149 %requires_releq_kernel\
150 Requires(postun): %releq_kernel\
153 %description -n kernel%{_alt_kernel}-misc-vmblock\
154 VMware vmblock Linux kernel module.\
156 %description -n kernel%{_alt_kernel}-misc-vmblock -l pl.UTF-8\
157 Moduł jądra Linuksa VMware vmblock.\
159 %package -n kernel%{_alt_kernel}-misc-vmci\
160 Summary: VMware vmci Linux kernel module\
161 Summary(pl.UTF-8): Moduł jądra Linuksa VMware vmci\
162 Release: %{rel}@%{_kernel_ver_str}\
164 Requires(post,postun): /sbin/depmod\
165 Requires: dev >= 2.9.0-7\
166 %if %{with dist_kernel}\
167 %requires_releq_kernel\
168 Requires(postun): %releq_kernel\
171 %description -n kernel%{_alt_kernel}-misc-vmci\
172 VMware vmci Linux kernel module.\
174 %description -n kernel%{_alt_kernel}-misc-vmci -l pl.UTF-8\
175 Moduł jądra Linuksa VMware vmci.\
177 %package -n kernel%{_alt_kernel}-misc-vmhgfs\
178 Summary: VMware vmhgfs Linux kernel module\
179 Summary(pl.UTF-8): Moduł jądra Linuksa VMware vmhgfs\
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\
189 %description -n kernel%{_alt_kernel}-misc-vmhgfs\
190 VMware vmhgfs Linux kernel module.\
192 %description -n kernel%{_alt_kernel}-misc-vmhgfs -l pl.UTF-8\
193 Moduł jądra Linuksa VMware vmhgfs.\
195 %package -n kernel%{_alt_kernel}-misc-vmsync\
196 Summary: VMware vmsync Linux kernel module\
197 Summary(pl.UTF-8): Moduł jądra Linuksa VMware vmsync\
198 Release: %{rel}@%{_kernel_ver_str}\
200 Requires(post,postun): /sbin/depmod\
201 Requires: dev >= 2.9.0-7\
202 %if %{with dist_kernel}\
203 %requires_releq_kernel\
204 Requires(postun): %releq_kernel\
207 %description -n kernel%{_alt_kernel}-misc-vmsync\
208 VMware vmsync Linux kernel module.\
210 %description -n kernel%{_alt_kernel}-misc-vmsync -l pl.UTF-8\
211 Moduł jądra Linuksa VMware vmsync.\
213 %package -n kernel%{_alt_kernel}-misc-vmxnet\
214 Summary: VMware vmxnet Linux kernel module\
215 Summary(pl.UTF-8): Moduł jądra Linuksa VMware vmxnet\
216 Release: %{rel}@%{_kernel_ver_str}\
218 Requires(post,postun): /sbin/depmod\
219 Requires: dev >= 2.9.0-7\
220 %if %{with dist_kernel}\
221 %requires_releq_kernel\
222 Requires(postun): %releq_kernel\
225 %description -n kernel%{_alt_kernel}-misc-vmxnet\
226 VMware vmxnet Linux kernel module.\
228 %description -n kernel%{_alt_kernel}-misc-vmxnet -l pl.UTF-8\
229 Moduł jądra Linuksa VMware vmxnet.\
231 %package -n kernel%{_alt_kernel}-misc-vsock\
232 Summary: VMware vsock Linux kernel module\
233 Summary(pl.UTF-8): Moduł jądra Linuksa VMware vsock\
234 Release: %{rel}@%{_kernel_ver_str}\
236 Requires(post,postun): /sbin/depmod\
237 Requires: dev >= 2.9.0-7\
238 %if %{with dist_kernel}\
239 %requires_releq_kernel\
240 Requires(postun): %releq_kernel\
243 %description -n kernel%{_alt_kernel}-misc-vsock\
244 VMware vsock Linux kernel module.\
246 %description -n kernel%{_alt_kernel}-misc-vsock -l pl.UTF-8\
247 Moduł jądra Linuksa VMware vsock.\
250 %files -n kernel%{_alt_kernel}-misc-vmblock\
251 %defattr(644,root,root,755)\
252 /lib/modules/%{_kernel_ver}/misc/vmblock.ko*\
254 %files -n kernel%{_alt_kernel}-misc-vmhgfs\
255 %defattr(644,root,root,755)\
256 /lib/modules/%{_kernel_ver}/misc/vmhgfs.ko*\
258 %if %{_kernel_version_code} < %{_kernel_version_magic 3 10 0}\
259 %files -n kernel%{_alt_kernel}-misc-vmci\
260 %defattr(644,root,root,755)\
261 /lib/modules/%{_kernel_ver}/misc/vmci.ko*\
263 %files -n kernel%{_alt_kernel}-misc-vmsync\
264 %defattr(644,root,root,755)\
265 /lib/modules/%{_kernel_ver}/misc/vmsync.ko*\
268 %files -n kernel%{_alt_kernel}-misc-vmxnet\
269 %defattr(644,root,root,755)\
270 /lib/modules/%{_kernel_ver}/misc/vmxnet.ko*\
272 %files -n kernel%{_alt_kernel}-misc-vsock\
273 %defattr(644,root,root,755)\
274 /lib/modules/%{_kernel_ver}/misc/vsock.ko*\
277 %post -n kernel%{_alt_kernel}-misc-vmblock\
278 %depmod %{_kernel_ver}\
280 %post -n kernel%{_alt_kernel}-misc-vmci\
281 %depmod %{_kernel_ver}\
283 %post -n kernel%{_alt_kernel}-misc-vmhgfs\
284 %depmod %{_kernel_ver}\
286 %post -n kernel%{_alt_kernel}-misc-vmsync\
287 %depmod %{_kernel_ver}\
289 %post -n kernel%{_alt_kernel}-misc-vmxnet\
290 %depmod %{_kernel_ver}\
292 %post -n kernel%{_alt_kernel}-misc-vsock\
293 %depmod %{_kernel_ver}\
296 %define build_kernel_pkg()\
297 export OVT_SOURCE_DIR=$PWD\
298 %build_kernel_modules -C %{modsrc}/vmblock -m vmblock SRCROOT=$PWD VM_KBUILD=26 VM_CCVER=%{cc_version}\
299 %build_kernel_modules -C %{modsrc}/vmhgfs -m vmhgfs SRCROOT=$PWD VM_KBUILD=26 VM_CCVER=%{cc_version}\
300 %build_kernel_modules -C %{modsrc}/vmxnet -m vmxnet SRCROOT=$PWD VM_KBUILD=26 VM_CCVER=%{cc_version}\
301 %build_kernel_modules -C %{modsrc}/vsock -m vsock SRCROOT=$PWD VM_KBUILD=26 VM_CCVER=%{cc_version}\
302 %install_kernel_modules -D installed -m %{modsrc}/vmblock/vmblock -d misc\
303 %install_kernel_modules -D installed -m %{modsrc}/vmhgfs/vmhgfs -d misc\
304 %install_kernel_modules -D installed -m %{modsrc}/vmxnet/vmxnet -d misc\
305 %install_kernel_modules -D installed -m %{modsrc}/vsock/vsock -d misc\
306 %if %{_kernel_version_code} < %{_kernel_version_magic 3 10 0}\
307 %build_kernel_modules -C %{modsrc}/vmci -m vmci SRCROOT=$PWD VM_KBUILD=26 VM_CCVER=%{cc_version}\
308 %build_kernel_modules -C %{modsrc}/vmsync -m vmsync SRCROOT=$PWD VM_KBUILD=26 VM_CCVER=%{cc_version}\
309 %install_kernel_modules -D installed -m %{modsrc}/vmci/vmci -d misc\
310 %install_kernel_modules -D installed -m %{modsrc}/vmsync/vmsync -d misc\
314 %{?with_kernel:%{expand:%kpkg}}
317 #setup -q -n %{pname}-%{snap}-%{rev}
318 %setup -q -n %{pname}-%{ver}-%{rev}
326 cp %{SOURCE1} packaging
327 %{__sed} -i -e 's|##{BUILD_OUTPUT}##|build|' docs/api/doxygen.conf
330 %{?with_kernel:%{expand:%bkpkg}}
332 %if %{with userspace}
333 rm -rf autom4te.cache
335 export CUSTOM_PROCPS_NAME=procps
337 --without-kernel-modules
339 CFLAGS="%{rpmcflags} -Wno-unused-but-set-variable"
343 rm -rf $RPM_BUILD_ROOT
346 install -d $RPM_BUILD_ROOT
347 cp -a installed/* $RPM_BUILD_ROOT
350 %if %{with userspace}
352 DESTDIR=$RPM_BUILD_ROOT
354 rm $RPM_BUILD_ROOT/sbin/mount.vmhgfs
355 ln -sf %{_sbindir}/mount.vmhgfs $RPM_BUILD_ROOT/sbin/mount.vmhgfs
356 rm -f $RPM_BUILD_ROOT%{_libdir}/open-vm-tools/plugins/common/*.la
358 install -d $RPM_BUILD_ROOT/etc/{modprobe.d,rc.d/init.d,xdg/autostart}
359 cp %{SOURCE2} $RPM_BUILD_ROOT/etc/modprobe.d/%{pname}.conf
360 cp %{SOURCE3} $RPM_BUILD_ROOT/etc/rc.d/init.d/%{pname}
361 cp %{SOURCE4} $RPM_BUILD_ROOT/etc/xdg/autostart/vmware-user.desktop
365 rm -rf $RPM_BUILD_ROOT
369 /sbin/chkconfig --add open-vm-tools
370 %service open-vm-tools restart "Open Virtual Machine"
373 if [ "$1" = "0" ]; then
374 %service open-vm-tools stop
375 /sbin/chkconfig --del open-vm-tools
378 %postun -p /sbin/ldconfig
380 %if %{with userspace}
382 %defattr(644,root,root,755)
383 %doc AUTHORS ChangeLog NEWS README packaging
384 %config(noreplace) %verify(not md5 mtime size) /etc/pam.d/vmtoolsd
385 %dir /etc/vmware-tools
386 %attr(755,root,root) /etc/vmware-tools/*vm-*
387 %attr(755,root,root) /etc/vmware-tools/statechange.subr
388 %dir /etc/vmware-tools/scripts
389 %dir /etc/vmware-tools/scripts/vmware
390 %attr(755,root,root) /etc/vmware-tools/scripts/vmware/network
391 %attr(755,root,root) /sbin/mount.vmhgfs
392 %attr(755,root,root) %{_bindir}/vmtoolsd
393 %attr(755,root,root) %{_bindir}/vmware-checkvm
394 %attr(755,root,root) %{_bindir}/vmware-hgfsclient
395 %attr(755,root,root) %{_bindir}/vmware-rpctool
396 %attr(755,root,root) %{_bindir}/vmware-toolbox-cmd
397 %attr(4755,root,root) %{_bindir}/vmware-user-suid-wrapper
398 %attr(755,root,root) %{_bindir}/vmware-xferlogs
399 %attr(755,root,root) %{_bindir}/vmware-vmblock-fuse
400 %attr(755,root,root) %{_sbindir}/mount.vmhgfs
401 %attr(755,root,root) %{_libdir}/libguestlib.so.*.*.*
402 %attr(755,root,root) %ghost %{_libdir}/libguestlib.so.0
403 %attr(755,root,root) %{_libdir}/libvmtools.so.*.*.*
404 %attr(755,root,root) %ghost %{_libdir}/libvmtools.so.0
405 %attr(755,root,root) %{_libdir}/libhgfs.so.*.*.*
406 %attr(755,root,root) %ghost %{_libdir}/libhgfs.so.0
407 %dir %{_libdir}/open-vm-tools
408 %dir %{_libdir}/open-vm-tools/plugins
409 %dir %{_libdir}/open-vm-tools/plugins/vmsvc
410 %attr(755,root,root) %{_libdir}/open-vm-tools/plugins/vmsvc/libguestInfo.so
411 %attr(755,root,root) %{_libdir}/open-vm-tools/plugins/vmsvc/libpowerOps.so
412 %attr(755,root,root) %{_libdir}/open-vm-tools/plugins/vmsvc/libtimeSync.so
413 %attr(755,root,root) %{_libdir}/open-vm-tools/plugins/vmsvc/libvmbackup.so
414 %dir %{_libdir}/open-vm-tools/plugins/common
415 %attr(755,root,root) %{_libdir}/open-vm-tools/plugins/common/libhgfsServer.so
416 %attr(755,root,root) %{_libdir}/open-vm-tools/plugins/common/libvix.so
417 %dir %{_libdir}/open-vm-tools/plugins/vmusr
418 %attr(755,root,root) %{_libdir}/open-vm-tools/plugins/vmusr/libdesktopEvents.so
419 %attr(755,root,root) %{_libdir}/open-vm-tools/plugins/vmusr/libdndcp.so
420 %attr(755,root,root) %{_libdir}/open-vm-tools/plugins/vmusr/libresolutionSet.so
421 %attr(754,root,root) /etc/rc.d/init.d/%{pname}
422 /etc/modprobe.d/%{pname}.conf
423 %dir %{_datadir}/open-vm-tools
424 %dir %{_datadir}/open-vm-tools/messages
425 %lang(de) %{_datadir}/open-vm-tools/messages/de
426 %lang(ja) %{_datadir}/open-vm-tools/messages/ja
427 %lang(ko) %{_datadir}/open-vm-tools/messages/ko
428 %lang(zh_CN) %{_datadir}/open-vm-tools/messages/zh_CN
431 %defattr(644,root,root,755)
432 %attr(755,root,root) %{_libdir}/libguestlib.so
433 %attr(755,root,root) %{_libdir}/libvmtools.so
434 %attr(755,root,root) %{_libdir}/libhgfs.so
435 %dir %{_includedir}/vmGuestLib
436 %{_includedir}/vmGuestLib/includeCheck.h
437 %{_includedir}/vmGuestLib/vmGuestLib.h
438 %{_includedir}/vmGuestLib/vmSessionId.h
439 %{_includedir}/vmGuestLib/vm_basic_types.h
440 %{_libdir}/libguestlib.la
441 %{_libdir}/libvmtools.la
442 %{_libdir}/libhgfs.la
443 %{_pkgconfigdir}/vmguestlib.pc
446 %defattr(644,root,root,755)
447 %{_libdir}/libguestlib.a
448 %{_libdir}/libvmtools.a
452 %defattr(644,root,root,755)
453 %{_sysconfdir}/xdg/autostart/vmware-user.desktop