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 URL: http://open-vm-tools.sourceforge.net/
61 BuildRequires: rpmbuild(macros) >= 1.679
63 BuildRequires: autoconf
64 BuildRequires: doxygen
65 BuildRequires: glib2-devel >= 2.6.0
66 BuildRequires: gtk+2-devel
67 BuildRequires: gtkmm-devel >= 2.4.0
68 BuildRequires: libdnet-devel
69 BuildRequires: libfuse-devel
70 BuildRequires: libicu-devel
71 BuildRequires: libnotify-devel
72 BuildRequires: libpng-devel
73 BuildRequires: libstdc++-devel
74 BuildRequires: pam-devel
75 BuildRequires: pkgconfig
76 BuildRequires: procps-devel >= 1:3.3.3-2
77 BuildRequires: uriparser-devel
78 BuildRequires: xorg-lib-libSM-devel
79 BuildRequires: xorg-lib-libX11-devel
80 BuildRequires: xorg-lib-libXScrnSaver-devel
81 BuildRequires: xorg-lib-libXinerama-devel
82 BuildRequires: xorg-lib-libXrandr-devel
83 BuildRequires: xorg-lib-libXtst-devel
87 Obsoletes: kernel-misc-pvscsi
88 Obsoletes: kernel-misc-vmmemctl
90 %{?with_dist_kernel:%{expand:%kbrs}}
91 ExclusiveArch: %{ix86} %{x8664}
92 BuildRoot: %{tmpdir}/%{pname}-%{version}-root-%(id -u -n)
95 VMWare guest utilities.
97 %description -l pl.UTF-8
98 Narzędzia dla systemu-gościa dla VMware.
101 Summary: Header files for open-vm-tools
102 Summary(pl.UTF-8): Pliki nagłówkowe open-vm-tools
103 Group: Development/Libraries
104 Requires: %{pname} = %{epoch}:%{version}-%{release}
107 Header files for open-vm-tools.
109 %description devel -l pl.UTF-8
110 Pliki nagłówkowe open-vm-tools.
113 Summary: Static open-vm-tools libraries
114 Summary(pl.UTF-8): Statyczne biblioteki open-vm-tools
115 Group: Development/Libraries
116 Requires: %{pname}-devel = %{epoch}:%{version}-%{release}
119 Static open-vm-tools libraries.
121 %description static -l pl.UTF-8
122 Statyczne biblioteki open-vm-tools.
125 Summary: VMware guest utitities
126 Summary(pl.UTF-8): Narzędzia dla systemu-gościa dla VMware.
127 Group: Applications/System
128 Requires: %{pname} = %{epoch}:%{version}-%{release}
131 VMWare guest utilities. This package contains GUI part of tools.
133 %description gui -l pl.UTF-8
134 Narzędzia dla systemu-gościa dla VMware. Ten pakiet zawiera graficzną
137 %define kernel_pkg()\
138 %package -n kernel%{_alt_kernel}-misc-vmblock\
139 Summary: VMware vmblock Linux kernel module\
140 Summary(pl.UTF-8): Moduł jądra Linuksa VMware vmblock\
141 Release: %{rel}@%{_kernel_ver_str}\
143 Requires(post,postun): /sbin/depmod\
144 Requires: dev >= 2.9.0-7\
145 %if %{with dist_kernel}\
146 %requires_releq_kernel\
147 Requires(postun): %releq_kernel\
150 %description -n kernel%{_alt_kernel}-misc-vmblock\
151 VMware vmblock Linux kernel module.\
153 %description -n kernel%{_alt_kernel}-misc-vmblock -l pl.UTF-8\
154 Moduł jądra Linuksa VMware vmblock.\
156 %package -n kernel%{_alt_kernel}-misc-vmci\
157 Summary: VMware vmci Linux kernel module\
158 Summary(pl.UTF-8): Moduł jądra Linuksa VMware vmci\
159 Release: %{rel}@%{_kernel_ver_str}\
161 Requires(post,postun): /sbin/depmod\
162 Requires: dev >= 2.9.0-7\
163 %if %{with dist_kernel}\
164 %requires_releq_kernel\
165 Requires(postun): %releq_kernel\
168 %description -n kernel%{_alt_kernel}-misc-vmci\
169 VMware vmci Linux kernel module.\
171 %description -n kernel%{_alt_kernel}-misc-vmci -l pl.UTF-8\
172 Moduł jądra Linuksa VMware vmci.\
174 %package -n kernel%{_alt_kernel}-misc-vmhgfs\
175 Summary: VMware vmhgfs Linux kernel module\
176 Summary(pl.UTF-8): Moduł jądra Linuksa VMware vmhgfs\
177 Release: %{rel}@%{_kernel_ver_str}\
179 Requires(post,postun): /sbin/depmod\
180 Requires: dev >= 2.9.0-7\
181 %if %{with dist_kernel}\
182 %requires_releq_kernel\
183 Requires(postun): %releq_kernel\
186 %description -n kernel%{_alt_kernel}-misc-vmhgfs\
187 VMware vmhgfs Linux kernel module.\
189 %description -n kernel%{_alt_kernel}-misc-vmhgfs -l pl.UTF-8\
190 Moduł jądra Linuksa VMware vmhgfs.\
192 %package -n kernel%{_alt_kernel}-misc-vmsync\
193 Summary: VMware vmsync Linux kernel module\
194 Summary(pl.UTF-8): Moduł jądra Linuksa VMware vmsync\
195 Release: %{rel}@%{_kernel_ver_str}\
197 Requires(post,postun): /sbin/depmod\
198 Requires: dev >= 2.9.0-7\
199 %if %{with dist_kernel}\
200 %requires_releq_kernel\
201 Requires(postun): %releq_kernel\
204 %description -n kernel%{_alt_kernel}-misc-vmsync\
205 VMware vmsync Linux kernel module.\
207 %description -n kernel%{_alt_kernel}-misc-vmsync -l pl.UTF-8\
208 Moduł jądra Linuksa VMware vmsync.\
210 %package -n kernel%{_alt_kernel}-misc-vmxnet\
211 Summary: VMware vmxnet Linux kernel module\
212 Summary(pl.UTF-8): Moduł jądra Linuksa VMware vmxnet\
213 Release: %{rel}@%{_kernel_ver_str}\
215 Requires(post,postun): /sbin/depmod\
216 Requires: dev >= 2.9.0-7\
217 %if %{with dist_kernel}\
218 %requires_releq_kernel\
219 Requires(postun): %releq_kernel\
222 %description -n kernel%{_alt_kernel}-misc-vmxnet\
223 VMware vmxnet Linux kernel module.\
225 %description -n kernel%{_alt_kernel}-misc-vmxnet -l pl.UTF-8\
226 Moduł jądra Linuksa VMware vmxnet.\
228 %package -n kernel%{_alt_kernel}-misc-vsock\
229 Summary: VMware vsock Linux kernel module\
230 Summary(pl.UTF-8): Moduł jądra Linuksa VMware vsock\
231 Release: %{rel}@%{_kernel_ver_str}\
233 Requires(post,postun): /sbin/depmod\
234 Requires: dev >= 2.9.0-7\
235 %if %{with dist_kernel}\
236 %requires_releq_kernel\
237 Requires(postun): %releq_kernel\
240 %description -n kernel%{_alt_kernel}-misc-vsock\
241 VMware vsock Linux kernel module.\
243 %description -n kernel%{_alt_kernel}-misc-vsock -l pl.UTF-8\
244 Moduł jądra Linuksa VMware vsock.\
247 %files -n kernel%{_alt_kernel}-misc-vmblock\
248 %defattr(644,root,root,755)\
249 /lib/modules/%{_kernel_ver}/misc/vmblock.ko*\
251 %files -n kernel%{_alt_kernel}-misc-vmhgfs\
252 %defattr(644,root,root,755)\
253 /lib/modules/%{_kernel_ver}/misc/vmhgfs.ko*\
255 %if %{_kernel_version_code} < %{_kernel_version_magic 3 10 0}\
256 %files -n kernel%{_alt_kernel}-misc-vmci\
257 %defattr(644,root,root,755)\
258 /lib/modules/%{_kernel_ver}/misc/vmci.ko*\
260 %files -n kernel%{_alt_kernel}-misc-vmsync\
261 %defattr(644,root,root,755)\
262 /lib/modules/%{_kernel_ver}/misc/vmsync.ko*\
265 %files -n kernel%{_alt_kernel}-misc-vmxnet\
266 %defattr(644,root,root,755)\
267 /lib/modules/%{_kernel_ver}/misc/vmxnet.ko*\
269 %files -n kernel%{_alt_kernel}-misc-vsock\
270 %defattr(644,root,root,755)\
271 /lib/modules/%{_kernel_ver}/misc/vsock.ko*\
274 %post -n kernel%{_alt_kernel}-misc-vmblock\
275 %depmod %{_kernel_ver}\
277 %post -n kernel%{_alt_kernel}-misc-vmci\
278 %depmod %{_kernel_ver}\
280 %post -n kernel%{_alt_kernel}-misc-vmhgfs\
281 %depmod %{_kernel_ver}\
283 %post -n kernel%{_alt_kernel}-misc-vmsync\
284 %depmod %{_kernel_ver}\
286 %post -n kernel%{_alt_kernel}-misc-vmxnet\
287 %depmod %{_kernel_ver}\
289 %post -n kernel%{_alt_kernel}-misc-vsock\
290 %depmod %{_kernel_ver}\
293 %define build_kernel_pkg()\
294 export OVT_SOURCE_DIR=$PWD\
295 %build_kernel_modules -C %{modsrc}/vmblock -m vmblock SRCROOT=$PWD VM_KBUILD=26 VM_CCVER=%{cc_version}\
296 %build_kernel_modules -C %{modsrc}/vmhgfs -m vmhgfs SRCROOT=$PWD VM_KBUILD=26 VM_CCVER=%{cc_version}\
297 %build_kernel_modules -C %{modsrc}/vmxnet -m vmxnet SRCROOT=$PWD VM_KBUILD=26 VM_CCVER=%{cc_version}\
298 %build_kernel_modules -C %{modsrc}/vsock -m vsock SRCROOT=$PWD VM_KBUILD=26 VM_CCVER=%{cc_version}\
299 %install_kernel_modules -D installed -m %{modsrc}/vmblock/vmblock -d misc\
300 %install_kernel_modules -D installed -m %{modsrc}/vmhgfs/vmhgfs -d misc\
301 %install_kernel_modules -D installed -m %{modsrc}/vmxnet/vmxnet -d misc\
302 %install_kernel_modules -D installed -m %{modsrc}/vsock/vsock -d misc\
303 %if %{_kernel_version_code} < %{_kernel_version_magic 3 10 0}\
304 %build_kernel_modules -C %{modsrc}/vmci -m vmci SRCROOT=$PWD VM_KBUILD=26 VM_CCVER=%{cc_version}\
305 %build_kernel_modules -C %{modsrc}/vmsync -m vmsync SRCROOT=$PWD VM_KBUILD=26 VM_CCVER=%{cc_version}\
306 %install_kernel_modules -D installed -m %{modsrc}/vmci/vmci -d misc\
307 %install_kernel_modules -D installed -m %{modsrc}/vmsync/vmsync -d misc\
311 %{?with_kernel:%{expand:%kpkg}}
314 #setup -q -n %{pname}-%{snap}-%{rev}
315 %setup -q -n %{pname}-%{ver}-%{rev}
320 cp %{SOURCE1} packaging
321 %{__sed} -i -e 's|##{BUILD_OUTPUT}##|build|' docs/api/doxygen.conf
324 %{?with_kernel:%{expand:%bkpkg}}
326 %if %{with userspace}
327 rm -rf autom4te.cache
329 export CUSTOM_PROCPS_NAME=procps
331 --without-kernel-modules
333 CFLAGS="%{rpmcflags} -Wno-unused-but-set-variable"
337 rm -rf $RPM_BUILD_ROOT
340 install -d $RPM_BUILD_ROOT
341 cp -a installed/* $RPM_BUILD_ROOT
344 %if %{with userspace}
346 DESTDIR=$RPM_BUILD_ROOT
348 rm $RPM_BUILD_ROOT/sbin/mount.vmhgfs
349 ln -sf %{_sbindir}/mount.vmhgfs $RPM_BUILD_ROOT/sbin/mount.vmhgfs
350 rm -f $RPM_BUILD_ROOT%{_libdir}/open-vm-tools/plugins/common/*.la
352 install -d $RPM_BUILD_ROOT/etc/{modprobe.d,rc.d/init.d,xdg/autostart}
353 cp %{SOURCE2} $RPM_BUILD_ROOT/etc/modprobe.d/%{pname}.conf
354 cp %{SOURCE3} $RPM_BUILD_ROOT/etc/rc.d/init.d/%{pname}
355 cp %{SOURCE4} $RPM_BUILD_ROOT/etc/xdg/autostart/vmware-user.desktop
359 rm -rf $RPM_BUILD_ROOT
363 /sbin/chkconfig --add open-vm-tools
364 %service open-vm-tools restart "Open Virtual Machine"
367 if [ "$1" = "0" ]; then
368 %service open-vm-tools stop
369 /sbin/chkconfig --del open-vm-tools
372 %postun -p /sbin/ldconfig
374 %if %{with userspace}
376 %defattr(644,root,root,755)
377 %doc AUTHORS ChangeLog NEWS README packaging
378 %config(noreplace) %verify(not md5 mtime size) /etc/pam.d/vmtoolsd
379 %dir /etc/vmware-tools
380 %attr(755,root,root) /etc/vmware-tools/*vm-*
381 %attr(755,root,root) /etc/vmware-tools/statechange.subr
382 %dir /etc/vmware-tools/scripts
383 %dir /etc/vmware-tools/scripts/vmware
384 %attr(755,root,root) /etc/vmware-tools/scripts/vmware/network
385 %attr(755,root,root) /sbin/mount.vmhgfs
386 %attr(755,root,root) %{_bindir}/vmtoolsd
387 %attr(755,root,root) %{_bindir}/vmware-checkvm
388 %attr(755,root,root) %{_bindir}/vmware-hgfsclient
389 %attr(755,root,root) %{_bindir}/vmware-rpctool
390 %attr(755,root,root) %{_bindir}/vmware-toolbox-cmd
391 %attr(4755,root,root) %{_bindir}/vmware-user-suid-wrapper
392 %attr(755,root,root) %{_bindir}/vmware-xferlogs
393 %attr(755,root,root) %{_bindir}/vmware-vmblock-fuse
394 %attr(755,root,root) %{_sbindir}/mount.vmhgfs
395 %attr(755,root,root) %{_libdir}/libguestlib.so.*.*.*
396 %attr(755,root,root) %ghost %{_libdir}/libguestlib.so.0
397 %attr(755,root,root) %{_libdir}/libvmtools.so.*.*.*
398 %attr(755,root,root) %ghost %{_libdir}/libvmtools.so.0
399 %attr(755,root,root) %{_libdir}/libhgfs.so.*.*.*
400 %attr(755,root,root) %ghost %{_libdir}/libhgfs.so.0
401 %dir %{_libdir}/open-vm-tools
402 %dir %{_libdir}/open-vm-tools/plugins
403 %dir %{_libdir}/open-vm-tools/plugins/vmsvc
404 %attr(755,root,root) %{_libdir}/open-vm-tools/plugins/vmsvc/libguestInfo.so
405 %attr(755,root,root) %{_libdir}/open-vm-tools/plugins/vmsvc/libpowerOps.so
406 %attr(755,root,root) %{_libdir}/open-vm-tools/plugins/vmsvc/libtimeSync.so
407 %attr(755,root,root) %{_libdir}/open-vm-tools/plugins/vmsvc/libvmbackup.so
408 %dir %{_libdir}/open-vm-tools/plugins/common
409 %attr(755,root,root) %{_libdir}/open-vm-tools/plugins/common/libhgfsServer.so
410 %attr(755,root,root) %{_libdir}/open-vm-tools/plugins/common/libvix.so
411 %dir %{_libdir}/open-vm-tools/plugins/vmusr
412 %attr(755,root,root) %{_libdir}/open-vm-tools/plugins/vmusr/libdesktopEvents.so
413 %attr(755,root,root) %{_libdir}/open-vm-tools/plugins/vmusr/libdndcp.so
414 %attr(755,root,root) %{_libdir}/open-vm-tools/plugins/vmusr/libresolutionSet.so
415 %attr(754,root,root) /etc/rc.d/init.d/%{pname}
416 /etc/modprobe.d/%{pname}.conf
417 %dir %{_datadir}/open-vm-tools
418 %dir %{_datadir}/open-vm-tools/messages
419 %lang(de) %{_datadir}/open-vm-tools/messages/de
420 %lang(ja) %{_datadir}/open-vm-tools/messages/ja
421 %lang(ko) %{_datadir}/open-vm-tools/messages/ko
422 %lang(zh_CN) %{_datadir}/open-vm-tools/messages/zh_CN
425 %defattr(644,root,root,755)
426 %attr(755,root,root) %{_libdir}/libguestlib.so
427 %attr(755,root,root) %{_libdir}/libvmtools.so
428 %attr(755,root,root) %{_libdir}/libhgfs.so
429 %dir %{_includedir}/vmGuestLib
430 %{_includedir}/vmGuestLib/includeCheck.h
431 %{_includedir}/vmGuestLib/vmGuestLib.h
432 %{_includedir}/vmGuestLib/vmSessionId.h
433 %{_includedir}/vmGuestLib/vm_basic_types.h
434 %{_libdir}/libguestlib.la
435 %{_libdir}/libvmtools.la
436 %{_libdir}/libhgfs.la
437 %{_pkgconfigdir}/vmguestlib.pc
440 %defattr(644,root,root,755)
441 %{_libdir}/libguestlib.a
442 %{_libdir}/libvmtools.a
446 %defattr(644,root,root,755)
447 %{_sysconfdir}/xdg/autostart/vmware-user.desktop