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: 3969daf1535d34e1c5f0c87a779b7642
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 Patch2: %{pname}-linux-3.12.patch
61 Patch3: %{pname}-linux-3.14.patch
62 Patch4: %{pname}-linux-3.15.patch
63 Patch5: %{pname}-linux-3.16.patch
64 URL: http://open-vm-tools.sourceforge.net/
65 BuildRequires: rpmbuild(macros) >= 1.679
67 BuildRequires: autoconf
68 BuildRequires: doxygen
69 BuildRequires: glib2-devel >= 2.6.0
70 BuildRequires: gtk+2-devel
71 BuildRequires: gtkmm-devel >= 2.4.0
72 BuildRequires: libdnet-devel
73 BuildRequires: libfuse-devel
74 BuildRequires: libicu-devel
75 BuildRequires: libnotify-devel
76 BuildRequires: libpng-devel
77 BuildRequires: libstdc++-devel
78 BuildRequires: pam-devel
79 BuildRequires: pkgconfig
80 BuildRequires: procps-devel >= 1:3.3.3-2
81 BuildRequires: uriparser-devel
82 BuildRequires: xorg-lib-libSM-devel
83 BuildRequires: xorg-lib-libX11-devel
84 BuildRequires: xorg-lib-libXScrnSaver-devel
85 BuildRequires: xorg-lib-libXinerama-devel
86 BuildRequires: xorg-lib-libXrandr-devel
87 BuildRequires: xorg-lib-libXtst-devel
91 Obsoletes: kernel-misc-pvscsi
92 Obsoletes: kernel-misc-vmmemctl
94 %{?with_dist_kernel:%{expand:%kbrs}}
95 ExclusiveArch: %{ix86} %{x8664}
96 BuildRoot: %{tmpdir}/%{pname}-%{version}-root-%(id -u -n)
99 VMWare guest utilities.
101 %description -l pl.UTF-8
102 Narzędzia dla systemu-gościa dla VMware.
105 Summary: Header files for open-vm-tools
106 Summary(pl.UTF-8): Pliki nagłówkowe open-vm-tools
107 Group: Development/Libraries
108 Requires: %{pname} = %{epoch}:%{version}-%{release}
111 Header files for open-vm-tools.
113 %description devel -l pl.UTF-8
114 Pliki nagłówkowe open-vm-tools.
117 Summary: Static open-vm-tools libraries
118 Summary(pl.UTF-8): Statyczne biblioteki open-vm-tools
119 Group: Development/Libraries
120 Requires: %{pname}-devel = %{epoch}:%{version}-%{release}
123 Static open-vm-tools libraries.
125 %description static -l pl.UTF-8
126 Statyczne biblioteki open-vm-tools.
129 Summary: VMware guest utitities
130 Summary(pl.UTF-8): Narzędzia dla systemu-gościa dla VMware.
131 Group: Applications/System
132 Requires: %{pname} = %{epoch}:%{version}-%{release}
135 VMWare guest utilities. This package contains GUI part of tools.
137 %description gui -l pl.UTF-8
138 Narzędzia dla systemu-gościa dla VMware. Ten pakiet zawiera graficzną
141 %define kernel_pkg()\
142 %package -n kernel%{_alt_kernel}-misc-vmblock\
143 Summary: VMware vmblock Linux kernel module\
144 Summary(pl.UTF-8): Moduł jądra Linuksa VMware vmblock\
145 Release: %{rel}@%{_kernel_ver_str}\
147 Requires(post,postun): /sbin/depmod\
148 Requires: dev >= 2.9.0-7\
149 %if %{with dist_kernel}\
150 %requires_releq_kernel\
151 Requires(postun): %releq_kernel\
154 %description -n kernel%{_alt_kernel}-misc-vmblock\
155 VMware vmblock Linux kernel module.\
157 %description -n kernel%{_alt_kernel}-misc-vmblock -l pl.UTF-8\
158 Moduł jądra Linuksa VMware vmblock.\
160 %package -n kernel%{_alt_kernel}-misc-vmci\
161 Summary: VMware vmci Linux kernel module\
162 Summary(pl.UTF-8): Moduł jądra Linuksa VMware vmci\
163 Release: %{rel}@%{_kernel_ver_str}\
165 Requires(post,postun): /sbin/depmod\
166 Requires: dev >= 2.9.0-7\
167 %if %{with dist_kernel}\
168 %requires_releq_kernel\
169 Requires(postun): %releq_kernel\
172 %description -n kernel%{_alt_kernel}-misc-vmci\
173 VMware vmci Linux kernel module.\
175 %description -n kernel%{_alt_kernel}-misc-vmci -l pl.UTF-8\
176 Moduł jądra Linuksa VMware vmci.\
178 %package -n kernel%{_alt_kernel}-misc-vmhgfs\
179 Summary: VMware vmhgfs Linux kernel module\
180 Summary(pl.UTF-8): Moduł jądra Linuksa VMware vmhgfs\
181 Release: %{rel}@%{_kernel_ver_str}\
183 Requires(post,postun): /sbin/depmod\
184 Requires: dev >= 2.9.0-7\
185 %if %{with dist_kernel}\
186 %requires_releq_kernel\
187 Requires(postun): %releq_kernel\
190 %description -n kernel%{_alt_kernel}-misc-vmhgfs\
191 VMware vmhgfs Linux kernel module.\
193 %description -n kernel%{_alt_kernel}-misc-vmhgfs -l pl.UTF-8\
194 Moduł jądra Linuksa VMware vmhgfs.\
196 %package -n kernel%{_alt_kernel}-misc-vmsync\
197 Summary: VMware vmsync Linux kernel module\
198 Summary(pl.UTF-8): Moduł jądra Linuksa VMware vmsync\
199 Release: %{rel}@%{_kernel_ver_str}\
201 Requires(post,postun): /sbin/depmod\
202 Requires: dev >= 2.9.0-7\
203 %if %{with dist_kernel}\
204 %requires_releq_kernel\
205 Requires(postun): %releq_kernel\
208 %description -n kernel%{_alt_kernel}-misc-vmsync\
209 VMware vmsync Linux kernel module.\
211 %description -n kernel%{_alt_kernel}-misc-vmsync -l pl.UTF-8\
212 Moduł jądra Linuksa VMware vmsync.\
214 %package -n kernel%{_alt_kernel}-misc-vmxnet\
215 Summary: VMware vmxnet Linux kernel module\
216 Summary(pl.UTF-8): Moduł jądra Linuksa VMware vmxnet\
217 Release: %{rel}@%{_kernel_ver_str}\
219 Requires(post,postun): /sbin/depmod\
220 Requires: dev >= 2.9.0-7\
221 %if %{with dist_kernel}\
222 %requires_releq_kernel\
223 Requires(postun): %releq_kernel\
226 %description -n kernel%{_alt_kernel}-misc-vmxnet\
227 VMware vmxnet Linux kernel module.\
229 %description -n kernel%{_alt_kernel}-misc-vmxnet -l pl.UTF-8\
230 Moduł jądra Linuksa VMware vmxnet.\
232 %package -n kernel%{_alt_kernel}-misc-vsock\
233 Summary: VMware vsock Linux kernel module\
234 Summary(pl.UTF-8): Moduł jądra Linuksa VMware vsock\
235 Release: %{rel}@%{_kernel_ver_str}\
237 Requires(post,postun): /sbin/depmod\
238 Requires: dev >= 2.9.0-7\
239 %if %{with dist_kernel}\
240 %requires_releq_kernel\
241 Requires(postun): %releq_kernel\
244 %description -n kernel%{_alt_kernel}-misc-vsock\
245 VMware vsock Linux kernel module.\
247 %description -n kernel%{_alt_kernel}-misc-vsock -l pl.UTF-8\
248 Moduł jądra Linuksa VMware vsock.\
251 %files -n kernel%{_alt_kernel}-misc-vmblock\
252 %defattr(644,root,root,755)\
253 /lib/modules/%{_kernel_ver}/misc/vmblock.ko*\
255 %files -n kernel%{_alt_kernel}-misc-vmhgfs\
256 %defattr(644,root,root,755)\
257 /lib/modules/%{_kernel_ver}/misc/vmhgfs.ko*\
259 %if %{_kernel_version_code} < %{_kernel_version_magic 3 10 0}\
260 %files -n kernel%{_alt_kernel}-misc-vmci\
261 %defattr(644,root,root,755)\
262 /lib/modules/%{_kernel_ver}/misc/vmci.ko*\
264 %files -n kernel%{_alt_kernel}-misc-vmsync\
265 %defattr(644,root,root,755)\
266 /lib/modules/%{_kernel_ver}/misc/vmsync.ko*\
269 %files -n kernel%{_alt_kernel}-misc-vmxnet\
270 %defattr(644,root,root,755)\
271 /lib/modules/%{_kernel_ver}/misc/vmxnet.ko*\
273 %files -n kernel%{_alt_kernel}-misc-vsock\
274 %defattr(644,root,root,755)\
275 /lib/modules/%{_kernel_ver}/misc/vsock.ko*\
278 %post -n kernel%{_alt_kernel}-misc-vmblock\
279 %depmod %{_kernel_ver}\
281 %post -n kernel%{_alt_kernel}-misc-vmci\
282 %depmod %{_kernel_ver}\
284 %post -n kernel%{_alt_kernel}-misc-vmhgfs\
285 %depmod %{_kernel_ver}\
287 %post -n kernel%{_alt_kernel}-misc-vmsync\
288 %depmod %{_kernel_ver}\
290 %post -n kernel%{_alt_kernel}-misc-vmxnet\
291 %depmod %{_kernel_ver}\
293 %post -n kernel%{_alt_kernel}-misc-vsock\
294 %depmod %{_kernel_ver}\
297 %define build_kernel_pkg()\
298 export OVT_SOURCE_DIR=$PWD\
299 %build_kernel_modules -C %{modsrc}/vmblock -m vmblock SRCROOT=$PWD VM_KBUILD=26 VM_CCVER=%{cc_version}\
300 %build_kernel_modules -C %{modsrc}/vmhgfs -m vmhgfs SRCROOT=$PWD VM_KBUILD=26 VM_CCVER=%{cc_version}\
301 %build_kernel_modules -C %{modsrc}/vmxnet -m vmxnet SRCROOT=$PWD VM_KBUILD=26 VM_CCVER=%{cc_version}\
302 %build_kernel_modules -C %{modsrc}/vsock -m vsock SRCROOT=$PWD VM_KBUILD=26 VM_CCVER=%{cc_version}\
303 %install_kernel_modules -D installed -m %{modsrc}/vmblock/vmblock -d misc\
304 %install_kernel_modules -D installed -m %{modsrc}/vmhgfs/vmhgfs -d misc\
305 %install_kernel_modules -D installed -m %{modsrc}/vmxnet/vmxnet -d misc\
306 %install_kernel_modules -D installed -m %{modsrc}/vsock/vsock -d misc\
307 %if %{_kernel_version_code} < %{_kernel_version_magic 3 10 0}\
308 %build_kernel_modules -C %{modsrc}/vmci -m vmci SRCROOT=$PWD VM_KBUILD=26 VM_CCVER=%{cc_version}\
309 %build_kernel_modules -C %{modsrc}/vmsync -m vmsync SRCROOT=$PWD VM_KBUILD=26 VM_CCVER=%{cc_version}\
310 %install_kernel_modules -D installed -m %{modsrc}/vmci/vmci -d misc\
311 %install_kernel_modules -D installed -m %{modsrc}/vmsync/vmsync -d misc\
315 %{?with_kernel:%{expand:%kpkg}}
318 #setup -q -n %{pname}-%{snap}-%{rev}
319 %setup -q -n %{pname}-%{ver}-%{rev}
328 cp %{SOURCE1} packaging
329 %{__sed} -i -e 's|##{BUILD_OUTPUT}##|build|' docs/api/doxygen.conf
332 %{?with_kernel:%{expand:%bkpkg}}
334 %if %{with userspace}
335 rm -rf autom4te.cache
341 export CUSTOM_PROCPS_NAME=procps
343 --without-kernel-modules
345 CFLAGS="%{rpmcflags} -Wno-unused-but-set-variable"
349 rm -rf $RPM_BUILD_ROOT
352 install -d $RPM_BUILD_ROOT
353 cp -a installed/* $RPM_BUILD_ROOT
356 %if %{with userspace}
358 DESTDIR=$RPM_BUILD_ROOT
360 rm $RPM_BUILD_ROOT/sbin/mount.vmhgfs
361 ln -sf %{_sbindir}/mount.vmhgfs $RPM_BUILD_ROOT/sbin/mount.vmhgfs
362 rm -f $RPM_BUILD_ROOT%{_libdir}/open-vm-tools/plugins/common/*.la
364 install -d $RPM_BUILD_ROOT/etc/{modprobe.d,rc.d/init.d,xdg/autostart}
365 cp %{SOURCE2} $RPM_BUILD_ROOT/etc/modprobe.d/%{pname}.conf
366 cp %{SOURCE3} $RPM_BUILD_ROOT/etc/rc.d/init.d/%{pname}
367 cp %{SOURCE4} $RPM_BUILD_ROOT/etc/xdg/autostart/vmware-user.desktop
371 rm -rf $RPM_BUILD_ROOT
375 /sbin/chkconfig --add open-vm-tools
376 %service open-vm-tools restart "Open Virtual Machine"
379 if [ "$1" = "0" ]; then
380 %service open-vm-tools stop
381 /sbin/chkconfig --del open-vm-tools
384 %postun -p /sbin/ldconfig
386 %if %{with userspace}
388 %defattr(644,root,root,755)
389 %doc AUTHORS ChangeLog NEWS README packaging
390 %config(noreplace) %verify(not md5 mtime size) /etc/pam.d/vmtoolsd
391 %dir /etc/vmware-tools
392 %attr(755,root,root) /etc/vmware-tools/*vm-*
393 %attr(755,root,root) /etc/vmware-tools/statechange.subr
394 %dir /etc/vmware-tools/scripts
395 %dir /etc/vmware-tools/scripts/vmware
396 %attr(755,root,root) /etc/vmware-tools/scripts/vmware/network
397 %attr(755,root,root) /sbin/mount.vmhgfs
398 %attr(755,root,root) %{_bindir}/vmtoolsd
399 %attr(755,root,root) %{_bindir}/vmware-checkvm
400 %attr(755,root,root) %{_bindir}/vmware-hgfsclient
401 %attr(755,root,root) %{_bindir}/vmware-rpctool
402 %attr(755,root,root) %{_bindir}/vmware-toolbox-cmd
403 %attr(4755,root,root) %{_bindir}/vmware-user-suid-wrapper
404 %attr(755,root,root) %{_bindir}/vmware-xferlogs
405 %attr(755,root,root) %{_bindir}/vmware-vmblock-fuse
406 %attr(755,root,root) %{_sbindir}/mount.vmhgfs
407 %attr(755,root,root) %{_libdir}/libguestlib.so.*.*.*
408 %attr(755,root,root) %ghost %{_libdir}/libguestlib.so.0
409 %attr(755,root,root) %{_libdir}/libvmtools.so.*.*.*
410 %attr(755,root,root) %ghost %{_libdir}/libvmtools.so.0
411 %attr(755,root,root) %{_libdir}/libhgfs.so.*.*.*
412 %attr(755,root,root) %ghost %{_libdir}/libhgfs.so.0
413 %dir %{_libdir}/open-vm-tools
414 %dir %{_libdir}/open-vm-tools/plugins
415 %dir %{_libdir}/open-vm-tools/plugins/vmsvc
416 %attr(755,root,root) %{_libdir}/open-vm-tools/plugins/vmsvc/libguestInfo.so
417 %attr(755,root,root) %{_libdir}/open-vm-tools/plugins/vmsvc/libpowerOps.so
418 %attr(755,root,root) %{_libdir}/open-vm-tools/plugins/vmsvc/libtimeSync.so
419 %attr(755,root,root) %{_libdir}/open-vm-tools/plugins/vmsvc/libvmbackup.so
420 %dir %{_libdir}/open-vm-tools/plugins/common
421 %attr(755,root,root) %{_libdir}/open-vm-tools/plugins/common/libhgfsServer.so
422 %attr(755,root,root) %{_libdir}/open-vm-tools/plugins/common/libvix.so
423 %dir %{_libdir}/open-vm-tools/plugins/vmusr
424 %attr(755,root,root) %{_libdir}/open-vm-tools/plugins/vmusr/libdesktopEvents.so
425 %attr(755,root,root) %{_libdir}/open-vm-tools/plugins/vmusr/libdndcp.so
426 %attr(755,root,root) %{_libdir}/open-vm-tools/plugins/vmusr/libresolutionSet.so
427 %attr(754,root,root) /etc/rc.d/init.d/%{pname}
428 /etc/modprobe.d/%{pname}.conf
429 %dir %{_datadir}/open-vm-tools
430 %dir %{_datadir}/open-vm-tools/messages
431 %lang(de) %{_datadir}/open-vm-tools/messages/de
432 %lang(ja) %{_datadir}/open-vm-tools/messages/ja
433 %lang(ko) %{_datadir}/open-vm-tools/messages/ko
434 %lang(zh_CN) %{_datadir}/open-vm-tools/messages/zh_CN
437 %defattr(644,root,root,755)
438 %attr(755,root,root) %{_libdir}/libguestlib.so
439 %attr(755,root,root) %{_libdir}/libvmtools.so
440 %attr(755,root,root) %{_libdir}/libhgfs.so
441 %dir %{_includedir}/vmGuestLib
442 %{_includedir}/vmGuestLib/includeCheck.h
443 %{_includedir}/vmGuestLib/vmGuestLib.h
444 %{_includedir}/vmGuestLib/vmSessionId.h
445 %{_includedir}/vmGuestLib/vm_basic_types.h
446 %{_libdir}/libguestlib.la
447 %{_libdir}/libvmtools.la
448 %{_libdir}/libhgfs.la
449 %{_pkgconfigdir}/vmguestlib.pc
452 %defattr(644,root,root,755)
453 %{_libdir}/libguestlib.a
454 %{_libdir}/libvmtools.a
458 %defattr(644,root,root,755)
459 %{_sysconfdir}/xdg/autostart/vmware-user.desktop