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
50 URL: http://open-vm-tools.sourceforge.net/
51 BuildRequires: rpmbuild(macros) >= 1.701
53 BuildRequires: autoconf
54 BuildRequires: doxygen
55 BuildRequires: glib2-devel >= 2.6.0
56 BuildRequires: gtk+2-devel
57 BuildRequires: gtkmm-devel >= 2.4.0
58 BuildRequires: libdnet-devel
59 BuildRequires: libfuse-devel
60 BuildRequires: libicu-devel
61 BuildRequires: libnotify-devel
62 BuildRequires: libpng-devel
63 BuildRequires: libstdc++-devel
64 BuildRequires: pam-devel
65 BuildRequires: pkgconfig
66 BuildRequires: procps-devel >= 1:3.3.3-2
67 BuildRequires: uriparser-devel
68 BuildRequires: xorg-lib-libSM-devel
69 BuildRequires: xorg-lib-libX11-devel
70 BuildRequires: xorg-lib-libXScrnSaver-devel
71 BuildRequires: xorg-lib-libXinerama-devel
72 BuildRequires: xorg-lib-libXrandr-devel
73 BuildRequires: xorg-lib-libXtst-devel
77 Obsoletes: kernel-misc-pvscsi
78 Obsoletes: kernel-misc-vmmemctl
80 %{?with_kernel:%{expand:%buildrequires_kernel kernel%%{_alt_kernel}-module-build >= 3:2.6.20.2}}
81 ExclusiveArch: %{ix86} %{x8664} %{?with_kernel:x32}
82 BuildRoot: %{tmpdir}/%{pname}-%{version}-root-%(id -u -n)
85 VMWare guest utilities.
87 %description -l pl.UTF-8
88 Narzędzia dla systemu-gościa dla VMware.
91 Summary: Header files for open-vm-tools
92 Summary(pl.UTF-8): Pliki nagłówkowe open-vm-tools
93 Group: Development/Libraries
94 Requires: %{pname} = %{epoch}:%{version}-%{release}
97 Header files for open-vm-tools.
99 %description devel -l pl.UTF-8
100 Pliki nagłówkowe open-vm-tools.
103 Summary: Static open-vm-tools libraries
104 Summary(pl.UTF-8): Statyczne biblioteki open-vm-tools
105 Group: Development/Libraries
106 Requires: %{pname}-devel = %{epoch}:%{version}-%{release}
109 Static open-vm-tools libraries.
111 %description static -l pl.UTF-8
112 Statyczne biblioteki open-vm-tools.
115 Summary: VMware guest utitities
116 Summary(pl.UTF-8): Narzędzia dla systemu-gościa dla VMware.
117 Group: Applications/System
118 Requires: %{pname} = %{epoch}:%{version}-%{release}
121 VMWare guest utilities. This package contains GUI part of tools.
123 %description gui -l pl.UTF-8
124 Narzędzia dla systemu-gościa dla VMware. Ten pakiet zawiera graficzną
127 %define kernel_pkg()\
128 %package -n kernel%{_alt_kernel}-misc-vmblock\
129 Summary: VMware vmblock Linux kernel module\
130 Summary(pl.UTF-8): Moduł jądra Linuksa VMware vmblock\
131 Release: %{rel}@%{_kernel_ver_str}\
133 Requires(post,postun): /sbin/depmod\
134 Requires: dev >= 2.9.0-7\
135 %requires_releq_kernel\
136 Requires(postun): %releq_kernel\
138 %description -n kernel%{_alt_kernel}-misc-vmblock\
139 VMware vmblock Linux kernel module.\
141 %description -n kernel%{_alt_kernel}-misc-vmblock -l pl.UTF-8\
142 Moduł jądra Linuksa VMware vmblock.\
144 %package -n kernel%{_alt_kernel}-misc-vmci\
145 Summary: VMware vmci Linux kernel module\
146 Summary(pl.UTF-8): Moduł jądra Linuksa VMware vmci\
147 Release: %{rel}@%{_kernel_ver_str}\
149 Requires(post,postun): /sbin/depmod\
150 Requires: dev >= 2.9.0-7\
151 %requires_releq_kernel\
152 Requires(postun): %releq_kernel\
154 %description -n kernel%{_alt_kernel}-misc-vmci\
155 VMware vmci Linux kernel module.\
157 %description -n kernel%{_alt_kernel}-misc-vmci -l pl.UTF-8\
158 Moduł jądra Linuksa VMware vmci.\
160 %package -n kernel%{_alt_kernel}-misc-vmhgfs\
161 Summary: VMware vmhgfs Linux kernel module\
162 Summary(pl.UTF-8): Moduł jądra Linuksa VMware vmhgfs\
163 Release: %{rel}@%{_kernel_ver_str}\
165 Requires(post,postun): /sbin/depmod\
166 Requires: dev >= 2.9.0-7\
167 %requires_releq_kernel\
168 Requires(postun): %releq_kernel\
170 %description -n kernel%{_alt_kernel}-misc-vmhgfs\
171 VMware vmhgfs Linux kernel module.\
173 %description -n kernel%{_alt_kernel}-misc-vmhgfs -l pl.UTF-8\
174 Moduł jądra Linuksa VMware vmhgfs.\
176 %package -n kernel%{_alt_kernel}-misc-vmsync\
177 Summary: VMware vmsync Linux kernel module\
178 Summary(pl.UTF-8): Moduł jądra Linuksa VMware vmsync\
179 Release: %{rel}@%{_kernel_ver_str}\
181 Requires(post,postun): /sbin/depmod\
182 Requires: dev >= 2.9.0-7\
183 %requires_releq_kernel\
184 Requires(postun): %releq_kernel\
186 %description -n kernel%{_alt_kernel}-misc-vmsync\
187 VMware vmsync Linux kernel module.\
189 %description -n kernel%{_alt_kernel}-misc-vmsync -l pl.UTF-8\
190 Moduł jądra Linuksa VMware vmsync.\
192 %package -n kernel%{_alt_kernel}-misc-vmxnet\
193 Summary: VMware vmxnet Linux kernel module\
194 Summary(pl.UTF-8): Moduł jądra Linuksa VMware vmxnet\
195 Release: %{rel}@%{_kernel_ver_str}\
197 Requires(post,postun): /sbin/depmod\
198 Requires: dev >= 2.9.0-7\
199 %requires_releq_kernel\
200 Requires(postun): %releq_kernel\
202 %description -n kernel%{_alt_kernel}-misc-vmxnet\
203 VMware vmxnet Linux kernel module.\
205 %description -n kernel%{_alt_kernel}-misc-vmxnet -l pl.UTF-8\
206 Moduł jądra Linuksa VMware vmxnet.\
208 %package -n kernel%{_alt_kernel}-misc-vsock\
209 Summary: VMware vsock Linux kernel module\
210 Summary(pl.UTF-8): Moduł jądra Linuksa VMware vsock\
211 Release: %{rel}@%{_kernel_ver_str}\
213 Requires(post,postun): /sbin/depmod\
214 Requires: dev >= 2.9.0-7\
215 %requires_releq_kernel\
216 Requires(postun): %releq_kernel\
218 %description -n kernel%{_alt_kernel}-misc-vsock\
219 VMware vsock Linux kernel module.\
221 %description -n kernel%{_alt_kernel}-misc-vsock -l pl.UTF-8\
222 Moduł jądra Linuksa VMware vsock.\
225 %files -n kernel%{_alt_kernel}-misc-vmblock\
226 %defattr(644,root,root,755)\
227 /lib/modules/%{_kernel_ver}/misc/vmblock.ko*\
229 %files -n kernel%{_alt_kernel}-misc-vmhgfs\
230 %defattr(644,root,root,755)\
231 /lib/modules/%{_kernel_ver}/misc/vmhgfs.ko*\
233 %if %{_kernel_version_code} < %{_kernel_version_magic 3 10 0}\
234 %files -n kernel%{_alt_kernel}-misc-vmci\
235 %defattr(644,root,root,755)\
236 /lib/modules/%{_kernel_ver}/misc/vmci.ko*\
238 %files -n kernel%{_alt_kernel}-misc-vmsync\
239 %defattr(644,root,root,755)\
240 /lib/modules/%{_kernel_ver}/misc/vmsync.ko*\
243 %files -n kernel%{_alt_kernel}-misc-vmxnet\
244 %defattr(644,root,root,755)\
245 /lib/modules/%{_kernel_ver}/misc/vmxnet.ko*\
247 %files -n kernel%{_alt_kernel}-misc-vsock\
248 %defattr(644,root,root,755)\
249 /lib/modules/%{_kernel_ver}/misc/vsock.ko*\
252 %post -n kernel%{_alt_kernel}-misc-vmblock\
253 %depmod %{_kernel_ver}\
255 %post -n kernel%{_alt_kernel}-misc-vmci\
256 %depmod %{_kernel_ver}\
258 %post -n kernel%{_alt_kernel}-misc-vmhgfs\
259 %depmod %{_kernel_ver}\
261 %post -n kernel%{_alt_kernel}-misc-vmsync\
262 %depmod %{_kernel_ver}\
264 %post -n kernel%{_alt_kernel}-misc-vmxnet\
265 %depmod %{_kernel_ver}\
267 %post -n kernel%{_alt_kernel}-misc-vsock\
268 %depmod %{_kernel_ver}\
271 %define build_kernel_pkg()\
272 export OVT_SOURCE_DIR=$PWD\
273 %build_kernel_modules -C %{modsrc}/vmblock -m vmblock SRCROOT=$PWD VM_KBUILD=26 VM_CCVER=%{cc_version}\
274 %build_kernel_modules -C %{modsrc}/vmhgfs -m vmhgfs SRCROOT=$PWD VM_KBUILD=26 VM_CCVER=%{cc_version}\
275 %build_kernel_modules -C %{modsrc}/vmxnet -m vmxnet SRCROOT=$PWD VM_KBUILD=26 VM_CCVER=%{cc_version}\
276 %build_kernel_modules -C %{modsrc}/vsock -m vsock SRCROOT=$PWD VM_KBUILD=26 VM_CCVER=%{cc_version}\
277 %install_kernel_modules -D installed -m %{modsrc}/vmblock/vmblock -d misc\
278 %install_kernel_modules -D installed -m %{modsrc}/vmhgfs/vmhgfs -d misc\
279 %install_kernel_modules -D installed -m %{modsrc}/vmxnet/vmxnet -d misc\
280 %install_kernel_modules -D installed -m %{modsrc}/vsock/vsock -d misc\
281 %if %{_kernel_version_code} < %{_kernel_version_magic 3 10 0}\
282 %build_kernel_modules -C %{modsrc}/vmci -m vmci SRCROOT=$PWD VM_KBUILD=26 VM_CCVER=%{cc_version}\
283 %build_kernel_modules -C %{modsrc}/vmsync -m vmsync SRCROOT=$PWD VM_KBUILD=26 VM_CCVER=%{cc_version}\
284 %install_kernel_modules -D installed -m %{modsrc}/vmci/vmci -d misc\
285 %install_kernel_modules -D installed -m %{modsrc}/vmsync/vmsync -d misc\
289 %{?with_kernel:%{expand:%create_kernel_packages}}
292 #setup -q -n %{pname}-%{snap}-%{rev}
293 %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"
324 rm -rf $RPM_BUILD_ROOT
327 install -d $RPM_BUILD_ROOT
328 cp -a installed/* $RPM_BUILD_ROOT
331 %if %{with userspace}
333 DESTDIR=$RPM_BUILD_ROOT
335 rm $RPM_BUILD_ROOT/sbin/mount.vmhgfs
336 ln -sf %{_sbindir}/mount.vmhgfs $RPM_BUILD_ROOT/sbin/mount.vmhgfs
337 rm -f $RPM_BUILD_ROOT%{_libdir}/open-vm-tools/plugins/common/*.la
339 install -d $RPM_BUILD_ROOT/etc/{modprobe.d,rc.d/init.d,xdg/autostart}
340 cp %{SOURCE2} $RPM_BUILD_ROOT/etc/modprobe.d/%{pname}.conf
341 cp %{SOURCE3} $RPM_BUILD_ROOT/etc/rc.d/init.d/%{pname}
342 cp %{SOURCE4} $RPM_BUILD_ROOT/etc/xdg/autostart/vmware-user.desktop
346 rm -rf $RPM_BUILD_ROOT
350 /sbin/chkconfig --add open-vm-tools
351 %service open-vm-tools restart "Open Virtual Machine"
354 if [ "$1" = "0" ]; then
355 %service open-vm-tools stop
356 /sbin/chkconfig --del open-vm-tools
359 %postun -p /sbin/ldconfig
361 %if %{with userspace}
363 %defattr(644,root,root,755)
364 %doc AUTHORS ChangeLog NEWS README packaging
365 %config(noreplace) %verify(not md5 mtime size) /etc/pam.d/vmtoolsd
366 %dir /etc/vmware-tools
367 %attr(755,root,root) /etc/vmware-tools/*vm-*
368 %attr(755,root,root) /etc/vmware-tools/statechange.subr
369 %dir /etc/vmware-tools/scripts
370 %dir /etc/vmware-tools/scripts/vmware
371 %attr(755,root,root) /etc/vmware-tools/scripts/vmware/network
372 %attr(755,root,root) /sbin/mount.vmhgfs
373 %attr(755,root,root) %{_bindir}/vmtoolsd
374 %attr(755,root,root) %{_bindir}/vmware-checkvm
375 %attr(755,root,root) %{_bindir}/vmware-hgfsclient
376 %attr(755,root,root) %{_bindir}/vmware-rpctool
377 %attr(755,root,root) %{_bindir}/vmware-toolbox-cmd
378 %attr(4755,root,root) %{_bindir}/vmware-user-suid-wrapper
379 %attr(755,root,root) %{_bindir}/vmware-xferlogs
380 %attr(755,root,root) %{_bindir}/vmware-vmblock-fuse
381 %attr(755,root,root) %{_sbindir}/mount.vmhgfs
382 %attr(755,root,root) %{_libdir}/libguestlib.so.*.*.*
383 %attr(755,root,root) %ghost %{_libdir}/libguestlib.so.0
384 %attr(755,root,root) %{_libdir}/libvmtools.so.*.*.*
385 %attr(755,root,root) %ghost %{_libdir}/libvmtools.so.0
386 %attr(755,root,root) %{_libdir}/libhgfs.so.*.*.*
387 %attr(755,root,root) %ghost %{_libdir}/libhgfs.so.0
388 %dir %{_libdir}/open-vm-tools
389 %dir %{_libdir}/open-vm-tools/plugins
390 %dir %{_libdir}/open-vm-tools/plugins/vmsvc
391 %attr(755,root,root) %{_libdir}/open-vm-tools/plugins/vmsvc/libguestInfo.so
392 %attr(755,root,root) %{_libdir}/open-vm-tools/plugins/vmsvc/libpowerOps.so
393 %attr(755,root,root) %{_libdir}/open-vm-tools/plugins/vmsvc/libtimeSync.so
394 %attr(755,root,root) %{_libdir}/open-vm-tools/plugins/vmsvc/libvmbackup.so
395 %dir %{_libdir}/open-vm-tools/plugins/common
396 %attr(755,root,root) %{_libdir}/open-vm-tools/plugins/common/libhgfsServer.so
397 %attr(755,root,root) %{_libdir}/open-vm-tools/plugins/common/libvix.so
398 %dir %{_libdir}/open-vm-tools/plugins/vmusr
399 %attr(755,root,root) %{_libdir}/open-vm-tools/plugins/vmusr/libdesktopEvents.so
400 %attr(755,root,root) %{_libdir}/open-vm-tools/plugins/vmusr/libdndcp.so
401 %attr(755,root,root) %{_libdir}/open-vm-tools/plugins/vmusr/libresolutionSet.so
402 %attr(754,root,root) /etc/rc.d/init.d/%{pname}
403 /etc/modprobe.d/%{pname}.conf
404 %dir %{_datadir}/open-vm-tools
405 %dir %{_datadir}/open-vm-tools/messages
406 %lang(de) %{_datadir}/open-vm-tools/messages/de
407 %lang(ja) %{_datadir}/open-vm-tools/messages/ja
408 %lang(ko) %{_datadir}/open-vm-tools/messages/ko
409 %lang(zh_CN) %{_datadir}/open-vm-tools/messages/zh_CN
412 %defattr(644,root,root,755)
413 %attr(755,root,root) %{_libdir}/libguestlib.so
414 %attr(755,root,root) %{_libdir}/libvmtools.so
415 %attr(755,root,root) %{_libdir}/libhgfs.so
416 %dir %{_includedir}/vmGuestLib
417 %{_includedir}/vmGuestLib/includeCheck.h
418 %{_includedir}/vmGuestLib/vmGuestLib.h
419 %{_includedir}/vmGuestLib/vmSessionId.h
420 %{_includedir}/vmGuestLib/vm_basic_types.h
421 %{_libdir}/libguestlib.la
422 %{_libdir}/libvmtools.la
423 %{_libdir}/libhgfs.la
424 %{_pkgconfigdir}/vmguestlib.pc
427 %defattr(644,root,root,755)
428 %{_libdir}/libguestlib.a
429 %{_libdir}/libvmtools.a
433 %defattr(644,root,root,755)
434 %{_sysconfdir}/xdg/autostart/vmware-user.desktop