#
+# TODO:
+# - init script
+# - SMP kernel module
+#
# Conditional build:
-# _without_dist_kernel - without distribution kernel
-# _without_smp - without UP kernel modules
-# _without_up - without SMP kernel modules
-# _with_i_know_its_nfy
+%bcond_without dist_kernel # without distribution kernel
+%bcond_without smp # without SMP kernel modules
#
-
-%define _build 4460
-
%include /usr/lib/rpm/macros.perl
Summary: VMware Workstation
Summary(pl): VMware Workstation - wirtualna platforma dla stacji roboczej
Name: VMware-workstation
-Version: 4.0.0
-%define _rel %{_build}.2
+Version: 4.0.5
+%define _build 6030
+%define _rel 0.%{_build}.3
Release: %{_rel}
License: custom, non-distributable
Group: Applications/Emulators
-Source0: http://vmware-chil.www.conxion.com/software/%{name}-%{version}-%{_build}.tar.gz
-URL: http://www.vmware.com/
+Source0: http://download3.vmware.com/software/wkst/%{name}-%{version}-%{_build}.tar.gz
NoSource: 0
+Source1: http://knihovny.cvut.cz/ftp/pub/vmware/vmware-any-any-update53.tar.gz
+# Source1-md5: 6e7c462f5dcb8881db5ccc709f43f56f
+Patch0: %{name}-Makefile.patch
+URL: http://www.vmware.com/
BuildRequires: rpm-perlprov
BuildRequires: rpmbuild(macros) >= 1.118
BuildRequires: %{kgcc_package}
-Requires: kernel(vmmon) = %{version}-%{_build}
-Requires: kernel(vmnet) = %{version}-%{_build}
-%{!?_without_dist_kernel:BuildRequires: kernel-headers}
+Requires: kernel(vmmon) = %{version}-%{_rel}
+Requires: kernel(vmnet) = %{version}-%{_rel}
+%{?with_dist_kernel:BuildRequires: kernel-headers}
BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
%description
operacyjnych na jednym zwyk³ym PC, bez repartycjonowania ani
rebootowania, bez znacznej utraty wydajno¶ci.
-%package -n kernel-misc-vmware_workstation
+%package -n kernel-misc-vmware-workstation
Summary: Kernel modules for VMware Workstation
Summary(pl): Modu³y j±dra dla VMware Workstation
Release: %{_rel}@%{_kernel_ver_str}
Group: Base/Kernel
-Provides: kernel(vmmon) = %{version}-%{_build}
-Provides: kernel(vmnet) = %{version}-%{_build}
+Provides: kernel(vmmon) = %{version}-%{_rel}
+Provides: kernel(vmnet) = %{version}-%{_rel}
Requires(post,postun): /sbin/depmod
-%{!?_without_dist_kernel:%requires_releq_kernel_up}
+%{?with_dist_kernel:%requires_releq_kernel_up}
-%description -n kernel-misc-vmware_workstation
+%description -n kernel-misc-vmware-workstation
Kernel modules for VMware Workstation: vmmon and vmnet.
-%description -n kernel-misc-vmware_workstation -l pl
+%description -n kernel-misc-vmware-workstation -l pl
Modu³y j±dra dla VMware Workstation: vmmon i vmnet.
-%package -n kernel-smp-misc-vmware_workstation
+%package -n kernel-smp-misc-vmware-workstation
Summary: SMP kernel modules for VMware Workstation
Summary(pl): Modu³y j±dra SMP dla VMware Workstation
Release: %{_rel}@%{_kernel_ver_str}
Group: Base/Kernel
-Provides: kernel(vmmon) = %{version}-%{_build}
-Provides: kernel(vmnet) = %{version}-%{_build}
+Provides: kernel(vmmon) = %{version}-%{_rel}
+Provides: kernel(vmnet) = %{version}-%{_rel}
Requires(post,postun): /sbin/depmod
-%{!?_without_dist_kernel:%requires_releq_kernel_smp}
+%{?with_dist_kernel:%requires_releq_kernel_smp}
-%description -n kernel-smp-misc-vmware_workstation
+%description -n kernel-smp-misc-vmware-workstation
SMP kernel modules fov VMware Workstation: vmmon-smp and vmnet-smp.
-%description -n kernel-smp-misc-vmware_workstation -l pl
+%description -n kernel-smp-misc-vmware-workstation -l pl
Modu³y j±dra SMP dla VMware Workstation: vmmon-smp i vmnet-smp.
%prep
-
-%if %{!?_with_i_know_its_nfy:1}0
-echo '
- This spec is not finished yet, and resulting package is not usable.
- Build "--with i_know_its_nfy" to force.
-'
-exit 1
-%endif
-
-
%setup -q -n vmware-distrib
-tar xf lib/modules/source/vmmon.tar
-tar xf lib/modules/source/vmnet.tar
+%setup -qDT -n vmware-distrib -a1
+cd vmware-any-any-update53
+tar xf vmmon.tar
+tar xf vmnet.tar
+cd ..
+%patch0 -p1
%build
-FLAGS="-D__KERNEL__ -DMODULE -Wall -Wstrict-prototypes \
- -fomit-frame-pointer -fno-strict-aliasing \
- -pipe -fno-strength-reduce %{rpmcflags}"
-export FLAGS
-
-# vmmon
-%if %{?!_without_smp:1}0
-%{__make} -C vmmon-only \
- HEADER_DIR=%{_kernelsrcdir}/include \
- CC_OPTS="$FLAGS -DVMWARE__FIX_IO_APIC_BASE=FIX_IO_APIC_BASE_0 -D__SMP__" \
- SUPPORT_SMP=1
-mv vmmon-only/driver-*/vmmon-smp-* vmmon-smp.o
-%endif
-
-%if %{?!_without_up:1}0
-%{__make} -C vmmon-only clean
-%{__make} -C vmmon-only \
- HEADER_DIR=%{_kernelsrcdir}/include \
- CC_OPTS="$FLAGS -DVMWARE__FIX_IO_APIC_BASE=FIX_IO_APIC_BASE_0"
-mv vmmon-only/driver-*/vmmon-* vmmon.o
-%endif
-
-# vmnet, makefile passes also -falign-loops=2 -falign-jumps=2 -falign-functions=2
-%if %{?!_without_smp:1}0
-%{__make} -C vmnet-only \
- HEADER_DIR=%{_kernelsrcdir}/include \
- CFLAGS="$FLAGS "'$(INCLUDE) -D__SMP__' \
- SUPPORT_SMP=1
-mv vmnet-only/vmnet-smp-* vmnet-smp.o
-%endif
-
-%if %{?!_without_up:1}0
-%{__make} -C vmnet-only clean
-%{__make} -C vmnet-only \
- HEADER_DIR=%{_kernelsrcdir}/include \
- CFLAGS="$FLAGS "'$(INCLUDE)'
-mv vmnet-only/vmnet-up-* vmnet.o
-%endif
+cd vmware-any-any-update53
+
+for cfg in %{?with_dist_kernel:%{?with_smp:smp} up}%{!?with_dist_kernel:nondist}; do
+
+ if [ ! -r "%{_kernelsrcdir}/config-$cfg" ]; then
+ exit 1
+ fi
+
+ cd vmmon-only
+ %{__make} clean
+ install -d include/{linux,config}
+ %{__make} -C %{_kernelsrcdir} mrproper \
+ SUBDIRS=$PWD \
+ O=$PWD
+ ln -sf %{_kernelsrcdir}/config-$cfg .config
+ ln -sf %{_kernelsrcdir}/include/linux/autoconf-$cfg.h include/linux/autoconf.h
+ touch include/linux/MARKER
+ touch includeCheck.h
+ %{__make} -C %{_kernelsrcdir} modules %{?with_smp:CPPFLAGS=\"-D__SMP__ SUPPORT_SMP=1\"} \
+ SUBDIRS=$PWD \
+ O=$PWD \
+ VM_KBUILD=26
+ mv vmmon.ko vmmon-$cfg.ko
+ cd ..
+
+ cd vmnet-only
+ %{__make} clean
+ install -d include/{linux,config}
+ %{__make} -C %{_kernelsrcdir} mrproper \
+ SUBDIRS=$PWD \
+ O=$PWD
+ ln -sf %{_kernelsrcdir}/config-$cfg .config
+ ln -sf %{_kernelsrcdir}/include/linux/autoconf-$cfg.h include/linux/autoconf.h
+ touch include/linux/MARKER
+ touch includeCheck.h
+ %{__make} -C %{_kernelsrcdir} modules %{?with_smp:CPPFLAGS=\"-D__SMP__ SUPPORT_SMP=1\"} \
+ SUBDIRS=$PWD \
+ O=$PWD \
+ VM_KBUILD=26
+ mv vmnet.ko vmnet-$cfg.ko
+ cd ..
+done
%install
rm -rf $RPM_BUILD_ROOT
install -d \
$RPM_BUILD_ROOT%{_bindir} \
- $RPM_BUILD_ROOT%{_sysconfdir} \
+ $RPM_BUILD_ROOT%{_sysconfdir}/{,vmware} \
$RPM_BUILD_ROOT%{_mandir} \
$RPM_BUILD_ROOT%{_libdir}/vmware \
$RPM_BUILD_ROOT%{_datadir}/vmware \
- $RPM_BUILD_ROOT/lib/modules/%{_kernel_ver}/misc \
- $RPM_BUILD_ROOT/lib/modules/%{_kernel_ver}smp/misc
-
-%{?!_without_smp:mv vm*-smp.o $RPM_BUILD_ROOT/lib/modules/%{_kernel_ver}smp/misc}
-%{?!_without_up: mv vm*.o $RPM_BUILD_ROOT/lib/modules/%{_kernel_ver}/misc}
+ $RPM_BUILD_ROOT/lib/modules/%{_kernel_ver}{,smp}/misc \
+ $RPM_BUILD_ROOT/var/run/vmware
+
+cd vmware-any-any-update53
+install vmmon-only/vmmon-%{?with_dist_kernel:up}%{!?with_dist_kernel:nondist}.ko \
+ $RPM_BUILD_ROOT/lib/modules/%{_kernel_ver}/misc/vmmon.ko
+install vmnet-only/vmnet-%{?with_dist_kernel:up}%{!?with_dist_kernel:nondist}.ko \
+ $RPM_BUILD_ROOT/lib/modules/%{_kernel_ver}/misc/vmnet.ko
+%if %{with smp} && %{with dist_kernel}
+install vmmon-only/vmmon-smp.ko \
+ $RPM_BUILD_ROOT/lib/modules/%{_kernel_ver}smp/misc/vmmon.ko
+install vmnet-only/vmnet-smp.ko \
+ $RPM_BUILD_ROOT/lib/modules/%{_kernel_ver}smp/misc/vmnet.ko
+%endif
+cd ..
-cp bin/* $RPM_BUILD_ROOT%{_bindir}
-cp -r etc $RPM_BUILD_ROOT%{_sysconfdir}/vmware
-cp -r man/* $RPM_BUILD_ROOT%{_mandir}
+cp bin/* $RPM_BUILD_ROOT%{_bindir}
+cp -r man/* $RPM_BUILD_ROOT%{_mandir}
+gunzip $RPM_BUILD_ROOT%{_mandir}/man?/*.gz
-cp -r lib/{bin*,config*,floppies,isoimages,lib,licenses,messages,smb,xkeymap} \
+cp -r lib/{bin*,config*,floppies,isoimages,lib,licenses,messages,smb,xkeymap} \
$RPM_BUILD_ROOT%{_libdir}/vmware
-gunzip $RPM_BUILD_ROOT%{_mandir}/man?/*.gz
+cat << EOF > $RPM_BUILD_ROOT%{_sysconfdir}/vmware/locations
+answer BINDIR %{_bindir}
+answer LIBDIR %{_libdir}/vmware
+answer MANDIR %{_mandir}
+answer INITDIR /tmp
+answer INITSCRIPTSDIR /tmp
+answer RUN_CONFIGURATOR no
+answer EULA_AGREED yes
+EOF
%clean
rm -rf $RPM_BUILD_ROOT
-%post -n kernel-misc-vmware_workstation
+%post -n kernel-misc-vmware-workstation
%depmod %{_kernel_ver}
-%postun -n kernel-misc-vmware_workstation
+%postun -n kernel-misc-vmware-workstation
%depmod %{_kernel_ver}
-%post -n kernel-smp-misc-vmware_workstation
+%post -n kernel-smp-misc-vmware-workstation
%depmod %{_kernel_ver}
-%postun -n kernel-smp-misc-vmware_workstation
+%postun -n kernel-smp-misc-vmware-workstation
%depmod %{_kernel_ver}
%files
%defattr(644,root,root,755)
+%attr(755,root,root) %{_bindir}/vmnet*
+%attr(755,root,root) %{_bindir}/vmware
+%attr(755,root,root) %{_bindir}/vmware-loop
+%attr(755,root,root) %{_bindir}/vmware-mount.pl
+%attr(755,root,root) %{_bindir}/vmware-nmbd
+%attr(755,root,root) %{_bindir}/vmware-ping
+%attr(755,root,root) %{_bindir}/vmware-smb*
+%attr(755,root,root) %{_bindir}/vmware-wizard
+%dev (c,10,165) %attr(640,root,root) /dev/vmmon
+%dev (c,119,10) %attr(640,root,root) /dev/vmnet0
+%dev (c,119,10) %attr(640,root,root) /dev/vmnet1
+%dev (c,119,10) %attr(640,root,root) /dev/vmnet2
+%dev (c,119,10) %attr(640,root,root) /dev/vmnet3
+%dev (c,119,10) %attr(640,root,root) /dev/vmnet4
+%dev (c,119,10) %attr(640,root,root) /dev/vmnet5
+%dev (c,119,10) %attr(640,root,root) /dev/vmnet6
+%dev (c,119,10) %attr(640,root,root) /dev/vmnet7
+%dev (c,119,10) %attr(640,root,root) /dev/vmnet8
%doc doc/*
-%attr(755,root,root) %{_bindir}/*
-%{_mandir}/man1/*
-
-%dir %{_sysconfdir}/vmware
-%ghost %{_sysconfdir}/vmware/not_configured
-%attr(755,root,root) %{_sysconfdir}/vmware/*.sh
-
+%{_sysconfdir}/vmware
%dir %{_libdir}/vmware
-%dir %{_libdir}/vmware/bin*
-%attr(755,root,root) %{_libdir}/vmware/bin*/*
+%dir %{_libdir}/vmware/bin
+%attr(755,root,root) %{_libdir}/vmware/bin/vmware
+%attr(755,root,root) %{_libdir}/vmware/bin/vmware-mks
+# warning: SUID !!!
+%attr(4755,root,root) %{_libdir}/vmware/bin/vmware-vmx
+#
%{_libdir}/vmware/config
%{_libdir}/vmware/configurator
%{_libdir}/vmware/floppies
%{_libdir}/vmware/isoimages
%{_libdir}/vmware/lib
%{_libdir}/vmware/licenses
-%dir %{_libdir}/vmware/messages
-%lang(ja) %{_libdir}/vmware/messages/ja
%{_libdir}/vmware/smb
%{_libdir}/vmware/xkeymap
+%{_mandir}/man1/*
+%attr(1777,root,root) %dir /var/run/vmware
-%if %{?!_without_up:1}0
-%files -n kernel-misc-vmware_workstation
+%files -n kernel-misc-vmware-workstation
%defattr(644,root,root,755)
-/lib/modules/%{_kernel_ver}/misc/vmmon.o*
-/lib/modules/%{_kernel_ver}/misc/vmnet.o*
-%endif
+/lib/modules/%{_kernel_ver}/misc/*
-%if %{?!_without_smp:1}0
-%files -n kernel-smp-misc-vmware_workstation
+%if %{with smp} && %{with dist_kernel}
+%files -n kernel-smp-misc-vmware-workstation
%defattr(644,root,root,755)
-/lib/modules/%{_kernel_ver}smp/misc/vmmon-smp.o*
-/lib/modules/%{_kernel_ver}smp/misc/vmnet-smp.o*
+/lib/modules/%{_kernel_ver}smp/misc/*
%endif