3 %bcond_without kernel # without kernel modules
4 %bcond_without userspace # without userspace package
5 %bcond_with verbose # verbose build (V=1)
7 # The goal here is to have main, userspace, package built once with
8 # simple release number, and only rebuild kernel packages with kernel
9 # version as part of release number, without the need to bump release
10 # with every kernel change.
11 %if 0%{?_pld_builder:1} && %{with kernel} && %{with userspace}
12 %{error:kernel and userspace cannot be built at the same time on PLD builders}
16 %if %{without userspace}
17 # nothing to be placed to debuginfo package
18 %define _enable_debug_packages 0
21 %define snap 2011.10.26
22 %define subver %(echo %{snap} | tr -d .)
26 %define pname open-vm-tools
27 %define modsrc modules/linux
28 Summary: VMWare guest utilities
29 Summary(pl.UTF-8): Narzędzia dla systemu-gościa dla VMware
30 Name: %{pname}%{?_pld_builder:%{?with_kernel:-kernel}}%{_alt_kernel}
32 #Release: 0.%{subver}.%{rel}%{?with_kernel:@%{_kernel_ver_str}}
33 Release: %{rel}%{?_pld_builder:%{?with_kernel:@%{_kernel_ver_str}}}
36 Group: Applications/System
37 Source0: http://downloads.sourceforge.net/project/open-vm-tools/open-vm-tools/stable-9.4.x/%{pname}-%{ver}-%{rev}.tar.gz
38 # Source0-md5: 3969daf1535d34e1c5f0c87a779b7642
39 #Source0: http://downloads.sourceforge.net/open-vm-tools/open-vm-tools/%{snap}/%{pname}-%{snap}-%{rev}.tar.gz
40 Source1: %{pname}-packaging
41 Source2: %{pname}-modprobe.d
42 Source3: %{pname}-init
43 Source4: %{pname}-vmware-user.desktop
44 Patch0: %{pname}-linux-3.10.patch
45 Patch2: %{pname}-linux-3.12.patch
46 Patch3: %{pname}-linux-3.14.patch
47 Patch4: %{pname}-linux-3.15.patch
48 Patch5: %{pname}-linux-3.16.patch
49 Patch6: %{pname}-linux-3.18.3.patch
51 URL: http://open-vm-tools.sourceforge.net/
52 BuildRequires: rpmbuild(macros) >= 1.701
54 BuildRequires: autoconf
55 BuildRequires: doxygen
56 BuildRequires: glib2-devel >= 2.6.0
57 BuildRequires: gtk+2-devel
58 BuildRequires: gtkmm-devel >= 2.4.0
59 BuildRequires: libdnet-devel
60 BuildRequires: libfuse-devel
61 BuildRequires: libicu-devel
62 BuildRequires: libnotify-devel
63 BuildRequires: libpng-devel
64 BuildRequires: libstdc++-devel
65 BuildRequires: pam-devel
66 BuildRequires: pkgconfig
67 BuildRequires: procps-devel >= 1:3.3.3-2
68 BuildRequires: uriparser-devel
69 BuildRequires: xorg-lib-libSM-devel
70 BuildRequires: xorg-lib-libX11-devel
71 BuildRequires: xorg-lib-libXScrnSaver-devel
72 BuildRequires: xorg-lib-libXinerama-devel
73 BuildRequires: xorg-lib-libXrandr-devel
74 BuildRequires: xorg-lib-libXtst-devel
78 Obsoletes: kernel-misc-pvscsi
79 Obsoletes: kernel-misc-vmmemctl
81 %{?with_kernel:%{expand:%buildrequires_kernel kernel%%{_alt_kernel}-module-build >= 3:2.6.20.2}}
82 ExclusiveArch: %{ix86} %{x8664} %{?with_kernel:x32}
83 BuildRoot: %{tmpdir}/%{pname}-%{version}-root-%(id -u -n)
86 VMWare guest utilities.
88 %description -l pl.UTF-8
89 Narzędzia dla systemu-gościa dla VMware.
92 Summary: Header files for open-vm-tools
93 Summary(pl.UTF-8): Pliki nagłówkowe open-vm-tools
94 Group: Development/Libraries
95 Requires: %{pname} = %{epoch}:%{version}-%{release}
98 Header files for open-vm-tools.
100 %description devel -l pl.UTF-8
101 Pliki nagłówkowe open-vm-tools.
104 Summary: Static open-vm-tools libraries
105 Summary(pl.UTF-8): Statyczne biblioteki open-vm-tools
106 Group: Development/Libraries
107 Requires: %{pname}-devel = %{epoch}:%{version}-%{release}
110 Static open-vm-tools libraries.
112 %description static -l pl.UTF-8
113 Statyczne biblioteki open-vm-tools.
116 Summary: VMware guest utitities
117 Summary(pl.UTF-8): Narzędzia dla systemu-gościa dla VMware.
118 Group: Applications/System
119 Requires: %{pname} = %{epoch}:%{version}-%{release}
122 VMWare guest utilities. This package contains GUI part of tools.
124 %description gui -l pl.UTF-8
125 Narzędzia dla systemu-gościa dla VMware. Ten pakiet zawiera graficzną
128 %define kernel_pkg()\
129 %package -n kernel%{_alt_kernel}-misc-vmblock\
130 Summary: VMware vmblock Linux kernel module\
131 Summary(pl.UTF-8): Moduł jądra Linuksa VMware vmblock\
132 Release: %{rel}@%{_kernel_ver_str}\
134 Requires(post,postun): /sbin/depmod\
135 Requires: dev >= 2.9.0-7\
136 %requires_releq_kernel\
137 Requires(postun): %releq_kernel\
139 %description -n kernel%{_alt_kernel}-misc-vmblock\
140 VMware vmblock Linux kernel module.\
142 %description -n kernel%{_alt_kernel}-misc-vmblock -l pl.UTF-8\
143 Moduł jądra Linuksa VMware vmblock.\
145 %package -n kernel%{_alt_kernel}-misc-vmci\
146 Summary: VMware vmci Linux kernel module\
147 Summary(pl.UTF-8): Moduł jądra Linuksa VMware vmci\
148 Release: %{rel}@%{_kernel_ver_str}\
150 Requires(post,postun): /sbin/depmod\
151 Requires: dev >= 2.9.0-7\
152 %requires_releq_kernel\
153 Requires(postun): %releq_kernel\
155 %description -n kernel%{_alt_kernel}-misc-vmci\
156 VMware vmci Linux kernel module.\
158 %description -n kernel%{_alt_kernel}-misc-vmci -l pl.UTF-8\
159 Moduł jądra Linuksa VMware vmci.\
161 %package -n kernel%{_alt_kernel}-misc-vmhgfs\
162 Summary: VMware vmhgfs Linux kernel module\
163 Summary(pl.UTF-8): Moduł jądra Linuksa VMware vmhgfs\
164 Release: %{rel}@%{_kernel_ver_str}\
166 Requires(post,postun): /sbin/depmod\
167 Requires: dev >= 2.9.0-7\
168 %requires_releq_kernel\
169 Requires(postun): %releq_kernel\
171 %description -n kernel%{_alt_kernel}-misc-vmhgfs\
172 VMware vmhgfs Linux kernel module.\
174 %description -n kernel%{_alt_kernel}-misc-vmhgfs -l pl.UTF-8\
175 Moduł jądra Linuksa VMware vmhgfs.\
177 %package -n kernel%{_alt_kernel}-misc-vmsync\
178 Summary: VMware vmsync Linux kernel module\
179 Summary(pl.UTF-8): Moduł jądra Linuksa VMware vmsync\
180 Release: %{rel}@%{_kernel_ver_str}\
182 Requires(post,postun): /sbin/depmod\
183 Requires: dev >= 2.9.0-7\
184 %requires_releq_kernel\
185 Requires(postun): %releq_kernel\
187 %description -n kernel%{_alt_kernel}-misc-vmsync\
188 VMware vmsync Linux kernel module.\
190 %description -n kernel%{_alt_kernel}-misc-vmsync -l pl.UTF-8\
191 Moduł jądra Linuksa VMware vmsync.\
193 %package -n kernel%{_alt_kernel}-misc-vmxnet\
194 Summary: VMware vmxnet Linux kernel module\
195 Summary(pl.UTF-8): Moduł jądra Linuksa VMware vmxnet\
196 Release: %{rel}@%{_kernel_ver_str}\
198 Requires(post,postun): /sbin/depmod\
199 Requires: dev >= 2.9.0-7\
200 %requires_releq_kernel\
201 Requires(postun): %releq_kernel\
203 %description -n kernel%{_alt_kernel}-misc-vmxnet\
204 VMware vmxnet Linux kernel module.\
206 %description -n kernel%{_alt_kernel}-misc-vmxnet -l pl.UTF-8\
207 Moduł jądra Linuksa VMware vmxnet.\
209 %package -n kernel%{_alt_kernel}-misc-vsock\
210 Summary: VMware vsock Linux kernel module\
211 Summary(pl.UTF-8): Moduł jądra Linuksa VMware vsock\
212 Release: %{rel}@%{_kernel_ver_str}\
214 Requires(post,postun): /sbin/depmod\
215 Requires: dev >= 2.9.0-7\
216 %requires_releq_kernel\
217 Requires(postun): %releq_kernel\
219 %description -n kernel%{_alt_kernel}-misc-vsock\
220 VMware vsock Linux kernel module.\
222 %description -n kernel%{_alt_kernel}-misc-vsock -l pl.UTF-8\
223 Moduł jądra Linuksa VMware vsock.\
226 %files -n kernel%{_alt_kernel}-misc-vmblock\
227 %defattr(644,root,root,755)\
228 /lib/modules/%{_kernel_ver}/misc/vmblock.ko*\
230 %files -n kernel%{_alt_kernel}-misc-vmhgfs\
231 %defattr(644,root,root,755)\
232 /lib/modules/%{_kernel_ver}/misc/vmhgfs.ko*\
234 %if %{_kernel_version_code} < %{_kernel_version_magic 3 10 0}\
235 %files -n kernel%{_alt_kernel}-misc-vmci\
236 %defattr(644,root,root,755)\
237 /lib/modules/%{_kernel_ver}/misc/vmci.ko*\
239 %files -n kernel%{_alt_kernel}-misc-vmsync\
240 %defattr(644,root,root,755)\
241 /lib/modules/%{_kernel_ver}/misc/vmsync.ko*\
244 %files -n kernel%{_alt_kernel}-misc-vmxnet\
245 %defattr(644,root,root,755)\
246 /lib/modules/%{_kernel_ver}/misc/vmxnet.ko*\
248 %files -n kernel%{_alt_kernel}-misc-vsock\
249 %defattr(644,root,root,755)\
250 /lib/modules/%{_kernel_ver}/misc/vsock.ko*\
253 %post -n kernel%{_alt_kernel}-misc-vmblock\
254 %depmod %{_kernel_ver}\
256 %post -n kernel%{_alt_kernel}-misc-vmci\
257 %depmod %{_kernel_ver}\
259 %post -n kernel%{_alt_kernel}-misc-vmhgfs\
260 %depmod %{_kernel_ver}\
262 %post -n kernel%{_alt_kernel}-misc-vmsync\
263 %depmod %{_kernel_ver}\
265 %post -n kernel%{_alt_kernel}-misc-vmxnet\
266 %depmod %{_kernel_ver}\
268 %post -n kernel%{_alt_kernel}-misc-vsock\
269 %depmod %{_kernel_ver}\
272 %define build_kernel_pkg()\
273 export OVT_SOURCE_DIR=$PWD\
274 %build_kernel_modules -C %{modsrc}/vmblock -m vmblock SRCROOT=$PWD VM_KBUILD=26 VM_CCVER=%{cc_version}\
275 %build_kernel_modules -C %{modsrc}/vmhgfs -m vmhgfs SRCROOT=$PWD VM_KBUILD=26 VM_CCVER=%{cc_version}\
276 %build_kernel_modules -C %{modsrc}/vmxnet -m vmxnet SRCROOT=$PWD VM_KBUILD=26 VM_CCVER=%{cc_version}\
277 %build_kernel_modules -C %{modsrc}/vsock -m vsock SRCROOT=$PWD VM_KBUILD=26 VM_CCVER=%{cc_version}\
278 %install_kernel_modules -D installed -m %{modsrc}/vmblock/vmblock -d misc\
279 %install_kernel_modules -D installed -m %{modsrc}/vmhgfs/vmhgfs -d misc\
280 %install_kernel_modules -D installed -m %{modsrc}/vmxnet/vmxnet -d misc\
281 %install_kernel_modules -D installed -m %{modsrc}/vsock/vsock -d misc\
282 %if %{_kernel_version_code} < %{_kernel_version_magic 3 10 0}\
283 %build_kernel_modules -C %{modsrc}/vmci -m vmci SRCROOT=$PWD VM_KBUILD=26 VM_CCVER=%{cc_version}\
284 %build_kernel_modules -C %{modsrc}/vmsync -m vmsync SRCROOT=$PWD VM_KBUILD=26 VM_CCVER=%{cc_version}\
285 %install_kernel_modules -D installed -m %{modsrc}/vmci/vmci -d misc\
286 %install_kernel_modules -D installed -m %{modsrc}/vmsync/vmsync -d misc\
290 %{?with_kernel:%{expand:%create_kernel_packages}}
293 #setup -q -n %{pname}-%{snap}-%{rev}
294 %setup -q -n %{pname}-%{ver}-%{rev}
303 cp %{SOURCE1} packaging
304 %{__sed} -i -e 's|##{BUILD_OUTPUT}##|build|' docs/api/doxygen.conf
307 %{?with_kernel:%{expand:%build_kernel_packages}}
309 %if %{with userspace}
310 rm -rf autom4te.cache
316 export CUSTOM_PROCPS_NAME=procps
318 --without-kernel-modules
320 CFLAGS="%{rpmcflags} -Wno-unused-but-set-variable" \
321 CXXFLAGS="%{rpmcxxflags} -std=c++11 -Wno-unused-but-set-variable"
325 rm -rf $RPM_BUILD_ROOT
328 install -d $RPM_BUILD_ROOT
329 cp -a installed/* $RPM_BUILD_ROOT
332 %if %{with userspace}
334 DESTDIR=$RPM_BUILD_ROOT
336 rm $RPM_BUILD_ROOT/sbin/mount.vmhgfs
337 ln -sf %{_sbindir}/mount.vmhgfs $RPM_BUILD_ROOT/sbin/mount.vmhgfs
338 rm -f $RPM_BUILD_ROOT%{_libdir}/open-vm-tools/plugins/common/*.la
340 install -d $RPM_BUILD_ROOT/etc/{modprobe.d,rc.d/init.d,xdg/autostart}
341 cp %{SOURCE2} $RPM_BUILD_ROOT/etc/modprobe.d/%{pname}.conf
342 cp %{SOURCE3} $RPM_BUILD_ROOT/etc/rc.d/init.d/%{pname}
343 cp %{SOURCE4} $RPM_BUILD_ROOT/etc/xdg/autostart/vmware-user.desktop
347 rm -rf $RPM_BUILD_ROOT
351 /sbin/chkconfig --add open-vm-tools
352 %service open-vm-tools restart "Open Virtual Machine"
355 if [ "$1" = "0" ]; then
356 %service open-vm-tools stop
357 /sbin/chkconfig --del open-vm-tools
360 %postun -p /sbin/ldconfig
362 %if %{with userspace}
364 %defattr(644,root,root,755)
365 %doc AUTHORS ChangeLog NEWS README packaging
366 %config(noreplace) %verify(not md5 mtime size) /etc/pam.d/vmtoolsd
367 %dir /etc/vmware-tools
368 %attr(755,root,root) /etc/vmware-tools/*vm-*
369 %attr(755,root,root) /etc/vmware-tools/statechange.subr
370 %dir /etc/vmware-tools/scripts
371 %dir /etc/vmware-tools/scripts/vmware
372 %attr(755,root,root) /etc/vmware-tools/scripts/vmware/network
373 %attr(755,root,root) /sbin/mount.vmhgfs
374 %attr(755,root,root) %{_bindir}/vmtoolsd
375 %attr(755,root,root) %{_bindir}/vmware-checkvm
376 %attr(755,root,root) %{_bindir}/vmware-hgfsclient
377 %attr(755,root,root) %{_bindir}/vmware-rpctool
378 %attr(755,root,root) %{_bindir}/vmware-toolbox-cmd
379 %attr(4755,root,root) %{_bindir}/vmware-user-suid-wrapper
380 %attr(755,root,root) %{_bindir}/vmware-xferlogs
381 %attr(755,root,root) %{_bindir}/vmware-vmblock-fuse
382 %attr(755,root,root) %{_sbindir}/mount.vmhgfs
383 %attr(755,root,root) %{_libdir}/libguestlib.so.*.*.*
384 %attr(755,root,root) %ghost %{_libdir}/libguestlib.so.0
385 %attr(755,root,root) %{_libdir}/libvmtools.so.*.*.*
386 %attr(755,root,root) %ghost %{_libdir}/libvmtools.so.0
387 %attr(755,root,root) %{_libdir}/libhgfs.so.*.*.*
388 %attr(755,root,root) %ghost %{_libdir}/libhgfs.so.0
389 %dir %{_libdir}/open-vm-tools
390 %dir %{_libdir}/open-vm-tools/plugins
391 %dir %{_libdir}/open-vm-tools/plugins/vmsvc
392 %attr(755,root,root) %{_libdir}/open-vm-tools/plugins/vmsvc/libguestInfo.so
393 %attr(755,root,root) %{_libdir}/open-vm-tools/plugins/vmsvc/libpowerOps.so
394 %attr(755,root,root) %{_libdir}/open-vm-tools/plugins/vmsvc/libtimeSync.so
395 %attr(755,root,root) %{_libdir}/open-vm-tools/plugins/vmsvc/libvmbackup.so
396 %dir %{_libdir}/open-vm-tools/plugins/common
397 %attr(755,root,root) %{_libdir}/open-vm-tools/plugins/common/libhgfsServer.so
398 %attr(755,root,root) %{_libdir}/open-vm-tools/plugins/common/libvix.so
399 %dir %{_libdir}/open-vm-tools/plugins/vmusr
400 %attr(755,root,root) %{_libdir}/open-vm-tools/plugins/vmusr/libdesktopEvents.so
401 %attr(755,root,root) %{_libdir}/open-vm-tools/plugins/vmusr/libdndcp.so
402 %attr(755,root,root) %{_libdir}/open-vm-tools/plugins/vmusr/libresolutionSet.so
403 %attr(754,root,root) /etc/rc.d/init.d/%{pname}
404 /etc/modprobe.d/%{pname}.conf
405 %dir %{_datadir}/open-vm-tools
406 %dir %{_datadir}/open-vm-tools/messages
407 %lang(de) %{_datadir}/open-vm-tools/messages/de
408 %lang(ja) %{_datadir}/open-vm-tools/messages/ja
409 %lang(ko) %{_datadir}/open-vm-tools/messages/ko
410 %lang(zh_CN) %{_datadir}/open-vm-tools/messages/zh_CN
413 %defattr(644,root,root,755)
414 %attr(755,root,root) %{_libdir}/libguestlib.so
415 %attr(755,root,root) %{_libdir}/libvmtools.so
416 %attr(755,root,root) %{_libdir}/libhgfs.so
417 %dir %{_includedir}/vmGuestLib
418 %{_includedir}/vmGuestLib/includeCheck.h
419 %{_includedir}/vmGuestLib/vmGuestLib.h
420 %{_includedir}/vmGuestLib/vmSessionId.h
421 %{_includedir}/vmGuestLib/vm_basic_types.h
422 %{_libdir}/libguestlib.la
423 %{_libdir}/libvmtools.la
424 %{_libdir}/libhgfs.la
425 %{_pkgconfigdir}/vmguestlib.pc
428 %defattr(644,root,root,755)
429 %{_libdir}/libguestlib.a
430 %{_libdir}/libvmtools.a
434 %defattr(644,root,root,755)
435 %{_sysconfdir}/xdg/autostart/vmware-user.desktop