]> git.pld-linux.org Git - packages/VMware-workstation.git/blobdiff - VMware-workstation.spec
- realtime preempt hack
[packages/VMware-workstation.git] / VMware-workstation.spec
index 3e02fa2236030bfa3e6b029dce48903c8cdb8362..836e0d3699ae38195c42570d7dee7e984a47bd70 100644 (file)
@@ -4,16 +4,28 @@
 #      - http://www.vmware.com/support/ws45/doc/devices_linux_kb_ws.html#1040861
 #
 # Conditional build:
-%bcond_with    internal_libs   # internal libs stuff
 %bcond_without dist_kernel     # without distribution kernel
+%bcond_without kernel          # don't build kernel modules
 %bcond_without smp             # without SMP kernel modules
+%bcond_without userspace       # don't build userspace utilities
+%bcond_with    kernel24        # build kernel24 modules (disable kernel26)
+%bcond_with    internal_libs   # internal libs stuff
+%bcond_with    verbose         # verbose build (V=1)
 #
 %include       /usr/lib/rpm/macros.perl
+%if %{with kernel24}
+%define         _kernelsrcdir          /usr/src/linux-2.4
+%endif
+
+%ifarch %{x8664}
+%undefine      with_userspace
+%endif
 #
-%define                _ver    5.0.0
-%define                _build  13124
-%define                _rel    1
-%define                _urel   90
+%define                _ver    5.5.1
+%define                _build  19175
+%define                _rel    0.2
+%define                _urel   96
+%define                _ccver  %(rpm -q --qf "%{VERSION}" gcc)
 #
 Summary:       VMware Workstation
 Summary(pl):   VMware Workstation - wirtualna platforma dla stacji roboczej
@@ -23,9 +35,9 @@ Release:      %{_rel}
 License:       custom, non-distributable
 Group:         Applications/Emulators
 Source0:       http://download3.vmware.com/software/wkst/%{name}-%{_ver}-%{_build}.tar.gz
-# NoSource0-md5:       91821fc2649749911f0e2d0ca37b3eb8
-Source1:       http://knihovny.cvut.cz/ftp/pub/vmware/vmware-any-any-update%{_urel}.tar.gz
-# Source1-md5: b8f6498f5275dc8ef3ea2d2e17061ede
+# NoSource0-md5:       6101deb381beb49f5b99cb1f8a81a532
+#Source1:      http://knihovny.cvut.cz/ftp/pub/vmware/vmware-any-any-update%{_urel}.tar.gz
+## Source1-md5:        79dd91c65f3719bb7847d63b314706c3
 Source2:       %{name}.init
 Source3:       %{name}-vmnet.conf
 Source4:       %{name}.png
@@ -33,16 +45,18 @@ Source5:    %{name}.desktop
 Source6:       %{name}-nat.conf
 Source7:       %{name}-dhcpd.conf
 Patch0:                %{name}-Makefile.patch
-Patch1:                %{name}-compat.patch
-Patch2:                %{name}-run_script.patch
+Patch1:                %{name}-run_script.patch
 NoSource:      0
-#Icon:         XPM format req.
 URL:           http://www.vmware.com/
 BuildRequires: gcc-c++
-Requires:      kernel(vmmon) = %{version}-%{_rel}
 %{?with_dist_kernel:BuildRequires:     kernel-module-build >= 2.6.7}
 BuildRequires: rpm-perlprov
-BuildRequires: rpmbuild(macros) >= 1.153
+BuildRequires: rpmbuild(macros) >= 1.217
+BuildRequires: sed >= 4.0
+Requires:      kernel(vmmon) = %{version}-%{_rel}
+Requires:      libgnomecanvasmm
+Requires:      libview >= 0.5.5-2
+ExclusiveArch: %{ix86} %{x8664}
 BuildRoot:     %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
 
 %define                _noautoprovfiles %{_libdir}/vmware/lib/.*\.so.*
@@ -90,6 +104,7 @@ Summary(pl): Narz
 Group:         Applications/Emulators
 Requires:      %{name} = %{version}-%{release}
 Requires:      kernel(vmnet) = %{version}-%{_rel}
+Obsoletes:     VMware-workstation-samba
 
 %description networking
 VMware networking utilities.
@@ -185,18 +200,102 @@ SMP kernel module for VMware Workstation - vmnet-smp.
 %description -n kernel-smp-misc-vmnet -l pl
 Modu³y j±dra SMP dla VMware Workstation - vmnet-smp.
 
+%package -n kernel24-misc-vmmon
+Summary:       Kernel module for VMware Workstation
+Summary(pl):   Modu³ j±dra dla VMware Workstation
+Release:       %{_rel}@%{_kernel_ver_str}
+Group:         Base/Kernel
+Requires(post,postun): /sbin/depmod
+Requires:      dev >= 2.9.0-7
+%if %{with dist_kernel}
+%requires_releq_kernel_up
+Requires(postun):      %releq_kernel_up
+%endif
+Provides:      kernel(vmmon) = %{version}-%{_rel}
+
+%description -n kernel24-misc-vmmon
+Kernel modules for VMware Workstation - vmmon.
+
+%description -n kernel24-misc-vmmon -l pl
+Modu³y j±dra dla VMware Workstation - vmmon.
+
+%package -n kernel24-misc-vmnet
+Summary:       Kernel module for VMware Workstation
+Summary(pl):   Modu³ j±dra dla VMware Workstation
+Release:       %{_rel}@%{_kernel_ver_str}
+Group:         Base/Kernel
+Requires(post,postun): /sbin/depmod
+Requires:      dev >= 2.9.0-7
+%if %{with dist_kernel}
+%requires_releq_kernel_up
+Requires(postun):      %releq_kernel_up
+%endif
+Provides:      kernel(vmnet) = %{version}-%{_rel}
+
+%description -n kernel24-misc-vmnet
+Kernel modules for VMware Workstation - vmnet.
+
+%description -n kernel24-misc-vmnet -l pl
+Modu³y j±dra dla VMware Workstation - vmnet.
+
+%package -n kernel24-smp-misc-vmmon
+Summary:       SMP kernel module for VMware Workstation
+Summary(pl):   Modu³ j±dra SMP dla VMware Workstation
+Release:       %{_rel}@%{_kernel_ver_str}
+Group:         Base/Kernel
+Requires(post,postun): /sbin/depmod
+Requires:      dev >= 2.9.0-7
+%if %{with dist_kernel}
+%requires_releq_kernel_smp
+Requires(postun):      %releq_kernel_smp
+%endif
+Provides:      kernel(vmmon) = %{version}-%{_rel}
+
+%description -n kernel24-smp-misc-vmmon
+SMP kernel modules fov VMware Workstation - vmmon-smp.
+
+%description -n kernel24-smp-misc-vmmon -l pl
+Modu³y j±dra SMP dla VMware Workstation - vmmon-smp.
+
+%package -n kernel24-smp-misc-vmnet
+Summary:       SMP kernel module for VMware Workstation
+Summary(pl):   Modu³ j±dra SMP dla VMware Workstation
+Release:       %{_rel}@%{_kernel_ver_str}
+Group:         Base/Kernel
+Requires(post,postun): /sbin/depmod
+Requires:      dev >= 2.9.0-7
+%if %{with dist_kernel}
+%requires_releq_kernel_smp
+Requires(postun):      %releq_kernel_smp
+%endif
+Provides:      kernel(vmnet) = %{version}-%{_rel}
+
+%description -n kernel24-smp-misc-vmnet
+SMP kernel module for VMware Workstation - vmnet-smp.
+
+%description -n kernel24-smp-misc-vmnet -l pl
+Modu³y j±dra SMP dla VMware Workstation - vmnet-smp.
+
 %prep
 %setup -q -n vmware-distrib
-%setup -qDT -n vmware-distrib -a1
+#%setup -qDT -n vmware-distrib -a1
+mkdir vmware-any-any-update%{_urel}
 cd vmware-any-any-update%{_urel}
-tar xf vmmon.tar
-tar xf vmnet.tar
-%patch0 -p0
-%patch1 -p0
+#tar xf vmmon.tar
+#tar xf vmnet.tar
+tar xf ../lib/modules/source/vmmon.tar
+tar xf ../lib/modules/source/vmnet.tar
+#%patch0 -p0
+cp -a vmmon-only{,.clean}
+cp -a vmnet-only{,.clean}
+sed -e 's/filter x86_64%/filter x86_64% amd64% ia64%/' \
+       -i vmnet-only.clean/Makefile.kernel
 cd -
-%patch2 -p1
+%patch1 -p1
 
 %build
+sed -i 's:vm_db_answer_LIBDIR:VM_LIBDIR:g;s:vm_db_answer_BINDIR:VM_BINDIR:g' bin/vmware
+
 cd vmware-any-any-update%{_urel}
 chmod u+w ../lib/bin/vmware-vmx ../lib/bin-debug/vmware-vmx ../bin/vmnet-bridge
 
@@ -208,10 +307,11 @@ rm -f update
 ./update bridge                ../bin/vmnet-bridge
 %endif
 
+%if %{with kernel}
 rm -rf built
 mkdir built
-cp -a vmmon-only vmmon-only.clean
-cp -a vmnet-only vmnet-only.clean
+
+%if %{without kernel24}
 for mod in vmmon vmnet ; do
        for cfg in %{?with_dist_kernel:%{?with_smp:smp} up}%{!?with_dist_kernel:nondist}; do
                if [ ! -r "%{_kernelsrcdir}/config-$cfg" ]; then
@@ -220,36 +320,97 @@ for mod in vmmon vmnet ; do
                rm -rf $mod-only
                cp -a $mod-only.clean $mod-only
                cd $mod-only
-               install -d include/{linux,config}
-               touch include/config/MARKER
-               ln -sf %{_kernelsrcdir}/config-$cfg .config
-               ln -sf %{_kernelsrcdir}/include/linux/autoconf-$cfg.h include/linux/autoconf.h
-               ln -sf %{_kernelsrcdir}/include/asm-%{_target_base_arch} include/asm
+               install -d o/include/linux
+               ln -sf %{_kernelsrcdir}/config-$cfg o/.config
+               ln -sf %{_kernelsrcdir}/Module.symvers-$cfg o/Module.symvers
+               ln -sf %{_kernelsrcdir}/include/linux/autoconf-$cfg.h o/include/linux/autoconf.h
+       if grep -q "^CONFIG_PREEMPT_RT=y$" o/.config; then
+               sed -e '/pollQueueLock/s/SPIN_LOCK_UNLOCKED/SPIN_LOCK_UNLOCKED(pollQueueLock)/' \
+                       -e '/timerLock/s/SPIN_LOCK_UNLOCKED/SPIN_LOCK_UNLOCKED(timerLock)/' \
+                       -i ../vmmon-only/linux/driver.c
+               sed -e 's/SPIN_LOCK_UNLOCKED/SPIN_LOCK_UNLOCKED(vnetHubLock)/' \
+                       -i ../vmnet-only/hub.c
+               sed -e 's/RW_LOCK_UNLOCKED/RW_LOCK_UNLOCKED(vnetPeerLock)/' \
+                       -i ../vmnet-only/driver.c
+       fi
+       %if %{with dist_kernel}
+               %{__make} -C %{_kernelsrcdir} O=$PWD/o prepare scripts
+       %else
+               install -d o/include/config
+               touch o/include/config/MARKER
+               ln -sf %{_kernelsrcdir}/scripts o/scripts
+        %endif
                %{__make} -C %{_kernelsrcdir} modules \
                        VMWARE_VER=VME_V5 \
-                       M=$PWD O=$PWD \
-                       VM_KBUILD=26
+                       SRCROOT=$PWD \
+                       M=$PWD O=$PWD/o \
+                       VM_KBUILD=26 \
+                       %{?with_verbose:V=1} \
+                       VM_CCVER=%{_ccver}
                mv -f $mod.ko ../built/$mod-$cfg.ko
                cd -
        done
 done
-cd -
+
+%else
+for mod in vmmon vmnet ; do
+       rm -rf $mod-only
+       tar xf $mod.tar
+       cd $mod-only
+       sed -i s/'^HEADER_DIR.*'/'HEADER_DIR = \/usr\/src\/linux-2.4\/include'/ Makefile
+       sed -i s/'^BUILD_DIR.*'/'BUILD_DIR = .'/ Makefile
+
+%if %{with smp}
+       %{__make} \
+               VM_KBUILD=no VMWARE_VER=VME_V5 \
+               M=$PWD O=$PWD CC=%{kgcc} \
+               INCLUDES="%{rpmcflags} -I. -D__KERNEL_SMP=1 -D__SMP__ -I%{_kernelsrcdir}/include"
+       if [ -e $mod-xxx-* ]; then
+               mv -f $mod-xxx-* ../built/$mod-smp.o
+       else
+               mv -f driver-*/$mod-xxx-* ../built/$mod-smp.o
+       fi
+
+       %{__make} VM_KBUILD=no clean
+%endif
+       %{__make} \
+               VM_KBUILD=no VMWARE_VER=VME_V5 \
+               M=$PWD O=$PWD CC=%{kgcc} \
+               INCLUDES="%{rpmcflags} -I. -I%{_kernelsrcdir}/include"
+       if [ -e $mod-xxx-* ]; then
+               mv -f $mod-xxx-* ../built/$mod.o
+       else
+               mv -f driver-*/$mod-xxx-* ../built/$mod.o
+       fi
+
+       cd ..
+done
+%endif # kernel24
+
+%endif
 
 %install
 rm -rf $RPM_BUILD_ROOT
+
+%if %{with userspace}
 install -d \
        $RPM_BUILD_ROOT%{_sysconfdir}/vmware \
        $RPM_BUILD_ROOT%{_sysconfdir}/vmware/vmnet8/{nat,dhcpd} \
        $RPM_BUILD_ROOT%{_bindir} \
-       $RPM_BUILD_ROOT%{_libdir}/vmware/bin \
+       $RPM_BUILD_ROOT%{_libdir}/vmware/{bin,share/pixmaps} \
        $RPM_BUILD_ROOT%{_mandir} \
        $RPM_BUILD_ROOT%{_pixmapsdir} \
        $RPM_BUILD_ROOT%{_desktopdir} \
        $RPM_BUILD_ROOT/etc/rc.d/init.d \
-       $RPM_BUILD_ROOT/lib/modules/%{_kernel_ver}{,smp}/misc \
        $RPM_BUILD_ROOT/var/run/vmware
+%endif
+
+%if %{with kernel}
+install -d $RPM_BUILD_ROOT/lib/modules/%{_kernel_ver}{,smp}/misc
 
 cd vmware-any-any-update%{_urel}
+
+%if %{without kernel24}
 install built/vmmon-%{?with_dist_kernel:up}%{!?with_dist_kernel:nondist}.ko \
        $RPM_BUILD_ROOT/lib/modules/%{_kernel_ver}/misc/vmmon.ko
 install built/vmnet-%{?with_dist_kernel:up}%{!?with_dist_kernel:nondist}.ko \
@@ -260,8 +421,25 @@ install built/vmmon-smp.ko \
 install built/vmnet-smp.ko \
        $RPM_BUILD_ROOT/lib/modules/%{_kernel_ver}smp/misc/vmnet.ko
 %endif
+
+%else
+install built/vmmon.o \
+       $RPM_BUILD_ROOT/lib/modules/%{_kernel_ver}/misc/vmmon.o
+install built/vmnet.o \
+       $RPM_BUILD_ROOT/lib/modules/%{_kernel_ver}/misc/vmnet.o
+%if %{with smp} && %{with dist_kernel}
+install built/vmmon-smp.o \
+       $RPM_BUILD_ROOT/lib/modules/%{_kernel_ver}smp/misc/vmmon.o
+install built/vmnet-smp.o \
+       $RPM_BUILD_ROOT/lib/modules/%{_kernel_ver}smp/misc/vmnet.o
+%endif
+
+%endif
+
 cd -
+%endif
 
+%if %{with userspace}
 install %{SOURCE2} $RPM_BUILD_ROOT/etc/rc.d/init.d/vmnet
 install %{SOURCE3} $RPM_BUILD_ROOT%{_sysconfdir}/vmware/vmnet.conf
 install %{SOURCE4} $RPM_BUILD_ROOT%{_pixmapsdir}
@@ -272,12 +450,10 @@ install %{SOURCE7} $RPM_BUILD_ROOT%{_sysconfdir}/vmware/vmnet8/dhcpd/dhcpd.conf
 touch $RPM_BUILD_ROOT%{_sysconfdir}/vmware/vmnet8/dhcpd/dhcpd.leases
 touch $RPM_BUILD_ROOT%{_sysconfdir}/vmware/vmnet8/dhcpd/dhcpd.leases~
 
-cp     bin/*-* $RPM_BUILD_ROOT%{_bindir}
-
-cp     lib/bin/vmware $RPM_BUILD_ROOT%{_bindir}
+install lib/share/pixmaps/* $RPM_BUILD_ROOT%{_libdir}/vmware/share/pixmaps
 
-cp -r  lib/bin/vmware-vmx \
-       $RPM_BUILD_ROOT%{_libdir}/vmware/bin
+install bin/*-* $RPM_BUILD_ROOT%{_bindir}
+install lib/bin/vmware-vmx $RPM_BUILD_ROOT%{_libdir}/vmware/bin
 
 #cp -r lib/{bin-debug,config,floppies,help*,isoimages,licenses,messages,smb,xkeymap} \
 cp -r  lib/{bin-debug,config,floppies,help*,isoimages,licenses,messages,xkeymap} \
@@ -292,8 +468,12 @@ VM_LIBDIR=%{_libdir}/vmware
 EOF
 
 %if %{with internal_libs}
-cp     bin/vmware $RPM_BUILD_ROOT%{_bindir}/vmware.sh
+install bin/vmware $RPM_BUILD_ROOT%{_bindir}
+install lib/bin/vmware $RPM_BUILD_ROOT%{_libdir}/vmware/bin
 cp -r  lib/lib $RPM_BUILD_ROOT%{_libdir}/vmware
+%else
+install lib/bin/vmware $RPM_BUILD_ROOT%{_bindir}
+%endif
 %endif
 
 %clean
@@ -339,13 +519,37 @@ fi
 %postun -n kernel-smp-misc-vmnet
 %depmod %{_kernel_ver}smp
 
+%post  -n kernel24-misc-vmmon
+%depmod %{_kernel_ver}
+
+%postun -n kernel24-misc-vmmon
+%depmod %{_kernel_ver}
+
+%post  -n kernel24-misc-vmnet
+%depmod %{_kernel_ver}
+
+%postun -n kernel24-misc-vmnet
+%depmod %{_kernel_ver}
+
+%post  -n kernel24-smp-misc-vmmon
+%depmod %{_kernel_ver}smp
+
+%postun -n kernel24-smp-misc-vmmon
+%depmod %{_kernel_ver}smp
+
+%post  -n kernel24-smp-misc-vmnet
+%depmod %{_kernel_ver}smp
+
+%postun -n kernel24-smp-misc-vmnet
+%depmod %{_kernel_ver}smp
+
+%if %{with userspace}
 %files
 %defattr(644,root,root,755)
 %doc doc/* lib/configurator/vmnet-{dhcpd,nat}.conf
 %dir %{_sysconfdir}/vmware
 %{_sysconfdir}/vmware/locations
 %attr(755,root,root) %{_bindir}/vmware
-%{?with_internal_libs:%attr(755,root,root) %{_bindir}/vmware.sh}
 %attr(755,root,root) %{_bindir}/vmware-loop
 %attr(755,root,root) %{_bindir}/vmware-mount.pl
 %attr(755,root,root) %{_bindir}/vmware-vdiskmanager
@@ -356,11 +560,16 @@ fi
 %{_libdir}/vmware/config
 %{_libdir}/vmware/floppies
 %{_libdir}/vmware/isoimages
-%{?with_internal_libs:%{_libdir}/vmware/lib}
+%if %{with internal_libs}
+%attr(755,root,root) %{_libdir}/vmware/bin/vmware
+%{_libdir}/vmware/lib
+%attr(755,root,root) %{_libdir}/vmware/lib/wrapper-gtk24.sh
+%endif
 %{_libdir}/vmware/licenses
 %dir %{_libdir}/vmware/messages
 %{_libdir}/vmware/messages/en
 %lang(ja) %{_libdir}/vmware/messages/ja
+%{_libdir}/vmware/share
 %{_libdir}/vmware/xkeymap
 %{_mandir}/man1/*
 %attr(1777,root,root) %dir /var/run/vmware
@@ -402,7 +611,10 @@ fi
 %attr(755,root,root) %{_bindir}/vmware-smbpasswd.bin
 %{_libdir}/vmware/smb
 %endif
+%endif
 
+%if %{with kernel}
+%if %{without kernel24}
 %files -n kernel-misc-vmmon
 %defattr(644,root,root,755)
 /lib/modules/%{_kernel_ver}/misc/vmmon.ko*
@@ -420,3 +632,26 @@ fi
 %defattr(644,root,root,755)
 /lib/modules/%{_kernel_ver}smp/misc/vmnet.ko*
 %endif
+
+%else
+%files -n kernel24-misc-vmmon
+%defattr(644,root,root,755)
+/lib/modules/%{_kernel_ver}/misc/vmmon.o*
+
+%files -n kernel24-misc-vmnet
+%defattr(644,root,root,755)
+/lib/modules/%{_kernel_ver}/misc/vmnet.o*
+
+%if %{with smp} && %{with dist_kernel}
+%files -n kernel24-smp-misc-vmmon
+%defattr(644,root,root,755)
+/lib/modules/%{_kernel_ver}smp/misc/vmmon.o*
+
+%files -n kernel24-smp-misc-vmnet
+%defattr(644,root,root,755)
+/lib/modules/%{_kernel_ver}smp/misc/vmnet.o*
+%endif
+
+%endif
+
+%endif
This page took 0.04441 seconds and 4 git commands to generate.