File open-vm-tools.spec of Package open-vm-tools

#
# spec file for package open-vm-tools (Version 2008.09.03)
#
# Copyright (c) 2009 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.

# Please submit bugfixes or comments via http://bugs.opensuse.org/
#

# norootforbuild

%define __find_supplements sh -c '/usr/lib/rpm/find-supplements %{name} | grep -v pci:v00001022d00002000'

Name:           open-vm-tools
Group:          System/Emulators/PC
Summary:        Open Virtual Machine Tools
Version:        2008.09.03
Release:        5.<RELEASE50>
%define         svn_rev 114782
Url:            http://open-vm-tools.sourceforge.net/
License:        BSD 3-Clause; GPL v2 only; LGPL v2.1 only
Source:         %{name}-%{version}-%{svn_rev}licfix.tar.bz2
Source1:        vmware-guest
Source2:        vmware-user.desktop
Source3:        vmware-toolbox.desktop
Source4:        preamble
Source99:       %{name}-%{version}-rpmlintrc
Patch0:         %{name}-%{version}-kver.patch
BuildRoot:      %{_tmppath}/%{name}-%{version}-build
BuildRequires:  gcc-c++
BuildRequires:  kernel-source kernel-syms module-init-tools
BuildRequires:  libdnet-devel libicu-devel pcre-devel procps
BuildRequires:  gtk2-devel update-desktop-files xorg-x11-devel
# openSUSE 10.2 seems not to pull libtiff in automatically... weird
%if 0%{?suse_version} == 1020
BuildRequires:  libtiff
%endif
# liburiparser was not present before 11.0
%if 0%{?suse_version} >= 1100
BuildRequires:  liburiparser-devel
%endif
PreReq:         %insserv_prereq  %fillup_prereq
PreReq:         permissions
ExclusiveArch:  %ix86 x86_64
Requires:       vmware-kmp
Supplements:    modalias(pci:v000015ADd*sv*sd*bc*sc*i*)
%define vm_modules vmblock vmhgfs vmmemctl vmsync vmxnet vmci vsock
%suse_kernel_module_package -n vmware -p %{SOURCE4} xen um

%description
Open Virtual Machine Tools (open-vm-tools) are the open source
implementation of VMware Tools. They are a set of guest operating
system virtualization components that enhance performance and user
experience of virtual machines. As virtualization technology rapidly
becomes mainstream, each virtualization solution provider implements
their own set of tools and utilities to supplement the guest virtual
machine. However, most of the implementations are proprietary and are
tied to a specific virtualization platform.

With the Open Virtual Machine Tools project, we are hoping to solve
this and other related problems. The tools are currently composed of
kernel modules for Linux and user-space programs for all VMware
supported Unix-like guest operating systems. They provide several
useful functions like:

* File transfer between a host and guest

* Improved memory management and network performance under
   virtualization

* General mechanisms and protocols for communication between host and
guests and from guest to guest



Authors:
--------
    The VMware Guest Components Team

%package -n vmware-KMP
License:        BSD 3-Clause; GPL v2 only; LGPL v2.1 only
Summary:        Open Virtual Machine Tools
Group:          System/Emulators/PC

%description -n vmware-KMP
Open Virtual Machine Tools (open-vm-tools) are the open source
implementation of VMware Tools. They are a set of guest operating
system virtualization components that enhance performance and user
experience of virtual machines. As virtualization technology rapidly
becomes mainstream, each virtualization solution provider implements
their own set of tools and utilities to supplement the guest virtual
machine. However, most of the implementations are proprietary and are
tied to a specific virtualization platform.

With the Open Virtual Machine Tools project, we are hoping to solve
this and other related problems. The tools are currently composed of
kernel modules for Linux and user-space programs for all VMware
supported Unix-like guest operating systems. They provide several
useful functions like:

* File transfer between a host and guest

* Improved memory management and network performance under
   virtualization

* General mechanisms and protocols for communication between host and
guests and from guest to guest



Authors:
--------
    The VMware Guest Components Team

%package gui
License:        BSD 3-Clause; GPL v2 only; LGPL v2.1 only
Summary:        Open Virtual Machine Tools - GUI
Group:          System/Emulators/PC
Requires:       open-vm-tools
Supplements:    packageand(open-vm-tools:xorg-x11)

%description gui
GUI Toolbox for Open Virtual Machine Tools



Authors:
--------
    The VMware Guest Components Team

%debugpackage
%prep
%setup -q -n %{name}-%{version}-%{svn_rev}
%patch0
chmod -x AUTHORS COPYING ChangeLog NEWS README

%build
# liburiparser was not present before 11.0 (--disable-unity)
# comments in a continued line seem not to work... shame
%configure \
%if 0%{?suse_version} < 1100
    --disable-unity \
%endif
    --without-kernel-modules \
    --without-procps \
    --disable-dependency-tracking
make
cd ..
mkdir -p obj
for flavor in %{flavors_to_build}; do
  rm -rf obj/$flavor
  cp -r %{name}-%{version}-%{svn_rev} obj/$flavor
  pushd obj/$flavor
  #make modules
  for module in %{vm_modules}; do
    pushd modules/linux/$module
    make -C /usr/src/linux-obj/%{_target_cpu}/$flavor modules M=$PWD VM_CCVER=$(gcc -dumpversion) SRCROOT=$PWD
    popd
  done
  popd
done

%install
# let's use the kernel's own modules_install routine
export INSTALL_MOD_PATH=$RPM_BUILD_ROOT
export INSTALL_MOD_DIR=updates
pushd ..
for flavor in %{flavors_to_build}; do
  pushd obj/$flavor
  for module in %{vm_modules}; do
    make -C /usr/src/linux-obj/%_target_cpu/$flavor modules_install M=$PWD/modules/linux/$module
  done
  popd
done
popd
# fix some rights on the kernel modules, to have a complete -debuginfo package
chmod u+x $RPM_BUILD_ROOT/lib/modules/*/updates/*
#installation of libguestlib
mkdir -p $RPM_BUILD_ROOT%{_libdir}
install -m 0755 libguestlib/.libs/libguestlib.so.0.0.0 $RPM_BUILD_ROOT%{_libdir}/libguestlib.so.0.0.0
ln -s %{_libdir}/libguestlib.so.0.0.0 $RPM_BUILD_ROOT%{_libdir}/libguestlib.so.0
ln -s %{_libdir}/libguestlib.so.0.0.0 $RPM_BUILD_ROOT%{_libdir}/libguestlib.so
# installation of vmware-guestd
mkdir -p $RPM_BUILD_ROOT%{_sbindir}
mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/init.d
install -m 0755 guestd/vmware-guestd $RPM_BUILD_ROOT%{_sbindir}/vmware-guestd
install -m 0755 %{SOURCE1} $RPM_BUILD_ROOT%{_sysconfdir}/init.d/vmware-guest
# and the corresponding PAM magic for vmware-guestd
mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/pam.d/
cat <<EOF > $RPM_BUILD_ROOT%{_sysconfdir}/pam.d/vmware-guestd
#%PAM-1.0
auth       sufficient       /%{_lib}/security/pam_unix2.so shadow nullok
auth       required         /%{_lib}/security/pam_unix_auth.so shadow nullok
account    sufficient       /%{_lib}/security/pam_unix2.so
account    required         /%{_lib}/security/pam_unix_acct.so
EOF
# create /etc/vmware-tools/tools.conf
mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/vmware-tools
cat <<EOF > $RPM_BUILD_ROOT%{_sysconfdir}/vmware-tools/tools.conf
bindir = "%{_bindir}"
EOF
# and also /etc/xdg/autostart/vmware-user.desktop
mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/xdg/autostart/
install -m 0644 %{SOURCE2} $RPM_BUILD_ROOT%{_sysconfdir}/xdg/autostart/vmware-user.desktop
# For vmware-guestd to run the default soft power operation scripts,
# they must be installed to /etc/vmware-tools with the executable bit activated.
install -m 0555 scripts/linux/poweroff-vm-default $RPM_BUILD_ROOT%{_sysconfdir}/vmware-tools/
install -m 0555 scripts/linux/poweron-vm-default  $RPM_BUILD_ROOT%{_sysconfdir}/vmware-tools/
install -m 0555 scripts/linux/resume-vm-default   $RPM_BUILD_ROOT%{_sysconfdir}/vmware-tools/
install -m 0555 scripts/linux/suspend-vm-default  $RPM_BUILD_ROOT%{_sysconfdir}/vmware-tools/
# installing vmware-user (is being started by vmware-guestd when a X-session starts and one of
# the applications from /etc/vmware-tools/xautostart.conf is detected
# it is NOT multi-user able!
mkdir -p $RPM_BUILD_ROOT%{_bindir}
install -m 0755 vmware-user/vmware-user $RPM_BUILD_ROOT%{_bindir}
# the toolbox, to be started by the user
install -m 0755 toolbox/vmware-toolbox $RPM_BUILD_ROOT%{_bindir}/vmware-toolbox
# checkvm is a simple console application.
install -m 0755 checkvm/vmware-checkvm $RPM_BUILD_ROOT%{_bindir}/vmware-checkvm
# xferlogs is a simple console application.
install -m 0755 xferlogs/vmware-xferlogs $RPM_BUILD_ROOT%{_bindir}/vmware-xferlogs
# hgfsclient is a simple console application.
install -m 0755 hgfsclient/vmware-hgfsclient $RPM_BUILD_ROOT%{_bindir}/vmware-hgfsclient
# install vmware-user-suid-wrapper
install -m 0755 vmware-user-suid-wrapper/vmware-user-suid-wrapper $RPM_BUILD_ROOT/%{_bindir}/vmware-user-suid-wrapper
# Install hgfsmounter
mkdir -p $RPM_BUILD_ROOT/sbin
cp hgfsmounter/mount.vmhgfs $RPM_BUILD_ROOT/sbin/mount.vmhgfs
# provide a menu entry for the various Desktop Environments
mkdir -p $RPM_BUILD_ROOT%{_datadir}/{applications,pixmaps}
install -m 0644 %{SOURCE3} $RPM_BUILD_ROOT%{_datadir}/applications/vmware-toolbox.desktop
install -m 0644 toolbox/bigIcon.xpm $RPM_BUILD_ROOT%{_datadir}/pixmaps/vmware-toolbox.xpm
%suse_update_desktop_file -r vmware-toolbox System Monitor
# "morph" the amd32 driver over to the vmnetx driver for better performance
mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/modprobe.d
cat <<EOF > $RPM_BUILD_ROOT%{_sysconfdir}/modprobe.d/vmnics
install pcnet32 /sbin/modprobe -q --ignore-install vmxnet; /sbin/modprobe -q --ignore-install pcnet32 $CMDLINE_OPTS; /bin/true;
EOF
#provide the rcvmware-guest link
ln -sf ../../etc/init.d/vmware-guest $RPM_BUILD_ROOT%{_sbindir}/rcvmware-guest

%post
%run_permissions
/sbin/ldconfig
%{fillup_and_insserv -y vmware-guest}
%verifyscript
%verify_permissions -e /sbin/mount.vmhgfs

%preun
%stop_on_removal vmware-guest

%postun
%restart_on_update vmware-guest
%insserv_cleanup
/sbin/ldconfig

%clean
rm -rf $RPM_BUILD_ROOT

%files
%defattr(-, root, root)
%doc AUTHORS COPYING ChangeLog NEWS README
%{_bindir}/vmware*
%exclude %{_bindir}/vmware-toolbox
%exclude %{_bindir}/vmware-user
%config %{_sysconfdir}/init.d/vmware*
%{_sysconfdir}/vmware-tools
%{_sysconfdir}/modprobe.d/vmnics
%{_sysconfdir}/pam.d/vmware*
%verify(not mode) %attr(0755,root,root) /sbin/mount.vmhgfs
%{_sbindir}/vmware*
%{_sbindir}/rcvmware-guest
%{_libdir}/libguestlib.*

%files gui
%defattr(-, root, root)
%{_bindir}/vmware-toolbox
%{_bindir}/vmware-user
%{_datadir}/applications/vmware*
%{_datadir}/pixmaps/vmware*
%{_sysconfdir}/xdg/autostart/vmware-user.desktop

%changelog
* Wed Sep 17 2008 prusnak@suse.cz
- fixed license problem with region.c by applying patch from upstream
* Thu Sep 04 2008 prusnak@suse.cz
- reviewed changes by Dominique
* Wed Sep 03 2008 dominique@leuenberger.net
- Activated compilation of modules vmci and vsock after fixing the
  kver.patch
- dropped obsoleted patch:
  * str_c.patch (included in update)
* Wed Sep 03 2008 prusnak@suse.cz
- updated to 2008-09-03
  * Fixed an issue where open-vm-tools fails to configure when using
    --without-icu. Thanks to Timo Gurr for reporting the issue
  (Sourceforge bug 2046262).
  * Fixed failed build on Ubuntu Intrepid and Fedora 9.
  Thanks to Nathan Charles for reporting the issue
  (Sourceforge bug 2048423).
  * Fixed kernel module build issues on 2.6.27 pre-release kernels.
  Thanks to Dominique Leuenberger for reporting the issue
  (Sourceforge bug 2071170).
  * ...and other bug fixes.
- dropped obsoleted patches:
  * 2.6.27-kernel.patch (included in update)
  * fix-Werror.patch (included in update)
* Sun Aug 24 2008 dominique@leuenberger.net
- Added open-vm-tools-2008-08-08-2.6.27-kernel.patch to compile on
  more recent kernels (patch should be merged in next release)
* Fri Aug 22 2008 dominique@leuenberger.net
- added packageand(open-vm-tools:xorg-x11) to Supplements
  of open-vm-tools-gui sub package
* Fri Aug 22 2008 dominique@leuenberger.net
- Re-arranged comments for the configure line. Apparently, comments
  that appear in a line continuing on the next line, split using '\'
  break the flow
* Wed Aug 20 2008 dominique@leuenberger.net
- Added --without-kernel-modules to configure, as we take
  care of it on ourself using the loop, for the different
  kernel variants
* Tue Aug 12 2008 prusnak@suse.cz
- updated to 2008.08.08
  * Unity for X11 guests has been added. Unity is implemented within
  vmware-user and requires no additional setup beyond setting up the
  vmware-user application itself. Unity should work with Fusion 1.x
  releases as well as with the upcoming Workstation 6.5 release. Our
  in-house testing was with Linux guests, and they should mostly work.
  There is very little standing in the way of FreeBSD/Solaris support,
  though we've never built or tested Unity for those platforms.
  * The VMCI Linux kernel module has been added. This module provides
  high-speed datagram and socket interfaces for guest<->guest and
  host<->guest communication. It should work for all kernels beginning
  with 2.4, and for VMware products beginning with Workstation 6.5.
  * The VMCI sockets Linux kernel module has been added. It provides
  both datagram and stream socket interfaces to userlevel for use with
  VMCI. As with VMCI, it should work for kernels 2.4 or later, and for
  VMware products beginning with Workstation 6.5.
  * The command-line Toolbox has been added. This application provides
  the same functionality as the GTK Toolbox, but with a scriptable
  command-line interface. It also has some statistic retrieval commands
  that aren't found in the GTK Toolbox.
  * Fixed compilation of vmsync and vmmemctl Linux kernel modules on
  2.6.26. Thanks to Pavol Rusnak for the report (Sourceforge bug 2032683).
  * Fixed an issue with guestd's nicInfo updating mechanism. Thanks to
  Jason Lunz for the patch (not tracked on Sourceforge).
  * Fixed handling of $(DESTDIR) in automake. Thanks to Mike Auty for
  the patch (Sourceforge bug 2018802).
  * Fixed build of vmware-user using gtk 1.2. Thanks to Stephen Duncan
  for the report (Sourceforge bug 2014338).
  * Fixed compilation of lib/guestApp when using --without-x. Thanks to
  Martin Preishuber for the report (Sourceforge bug 2013568).
  * As usual, other bug fixes.
* Mon Jul 21 2008 prusnak@suse.cz
- updated to 2008.07.01:
  * fixed a backwards time synchronization issue
  * fixed an issue where open-vm-tools configured via --without-x didn't
  compile (not tracked on Sourceforge)
  * one can now pass --without-kernel-modules, --with-kernel-release, and
    --with-linuxdir to the ./configure script
  * other bug fixes.
- branched open-vm-tools-gui subpackage with tools that need X
* Thu Jun 12 2008 prusnak@suse.cz
- open-vm-tools now requires vmware-kmp [bnc#397972]
- exclude AMD PCnet32 LANCE pci.id from Supplements list [bnc#397554]
* Mon Jun 09 2008 dominique-obs@leuenberger.net
- Updated to version 2008.06.03
  adopted spec file to new build structure layout (the binaries
  are now named correctly just after build and do not need to
  be renamed anymore)
- Replaced -werror patch with -fix-Werror-patch (submitted to
  VMware for inclusion)
* Mon Jun 02 2008 prusnak@suse.cz
- updated vmware init-script [bnc#394431]:
  * check whether /tmp/VMwareDnD exists and create it if necessary
  * use modules vmblock, vmmemctl, vmsync for better performance
  * mount the virtual system for Drag'n'Drop
* Wed May 28 2008 dominique-rpm@leuenberger.net
- Excluded the building of KMPs for XEN, probably nobody installs
  a vmware host in xen.
* Thu May 22 2008 prusnak@suse.cz
- added Recommends: open-vm-tools to KMP preamble [bnc#391434]
- added -y to %%fillup_and_insserv macro, so the service starts
  automatically [bnc#391434]
* Tue May 20 2008 dominique-rpm@leuenberger.net
- replaced %%build section with the one from openSUSE internal
  stable build, for building properly against all buildtargets
* Tue May 20 2008 dominique-rpm@leuenberger.net
- Added preamble for %%suse_kernel_module_package in order to have
  a Recommends: open-vm-tools on the kmp.
  The KMP is installed by Supplements: the hardware ID, and the KMP
  then pulls in the open-vm-tools package by Recommends (if available)
* Wed May 07 2008 dominique-rpm@leuenberger.net
- Updated to 2008.05.15:
  * Removed "blessed app" code for starting vmware-user
  * lib/file/filePosix.c: Use new Posix_RealPath implementation.
  * Cleanup UTF-8 handling.
- Added patch open-vm-tools-2008.05.02-str.c that should solve
  compilation with FORTIFY_SOURCE enabled
* Tue May 06 2008 prusnak@suse.cz
- updated to 2008.05.02:
  * continued Unicode support
  * open-vm-tools now depends on libicu for codeset conversions
  * a few more bug fixes
* Mon Apr 28 2008 ro@suse.de
- tweak build section long enough to really build modules
  matching to kernel flavour (and not just build all for -default)
  (bnc#384192)
* Thu Apr 24 2008 ro@suse.de
- added vmware-KMP package and description tags to specfile
- added preable file for kmp packages
* Wed Apr 23 2008 prusnak@suse.cz
- fixed %%verifyscript
* Tue Apr 22 2008 prusnak@suse.cz
- updated to 2008.04.14
  * continued Unicode support
  * more bug fixes, including a security fix in guestd
- added permissions scripts to %%post section
* Tue Mar 25 2008 dominique-rpm@leuenberger.net
- updated to 2008.03.19
* Thu Mar 20 2008 prusnak@suse.cz
- add Supplements to automatically install in VMware
* Tue Mar 18 2008 prusnak@suse.cz
- first autobuild checkin
- turn off -Werror (werror.patch)
- reworked spec file
* Fri Mar 14 2008 dominique-rpm@leuenberger.net
- updated to 2008.03.11
  (developer snapshot to support all modules on 2.6.25 kernels)
* Tue Mar 11 2008 dominique-rpm@leuenberger.net
- updated to 2008.03.10
  (developer snapshot to support kernel version 2.6.25-rc1)
* Sun Mar 09 2008 dominique-rpm@leuenberger.net
- refactored open-vm-tools-kver.patch to detect the kernel source
  correctly
* Sat Mar 08 2008 dominique-rpm@leuenberger.net
- create link from /sbin/rcvmware to /etc/init.d/vmware-guest
- autostart the service after installation
* Sat Mar 08 2008 dominique-rpm@leuenberger.net
- initial build of open-vm-tools
- builds kmps and open-vm-tools
openSUSE Build Service is sponsored by