Source10: kmodtool Source11: find-requires Source12: find-requires.ksyms %define kmodtool bash %{SOURCE10} # if kversion isn't defined on rpm build line, build against current kernel %{!?kversion: %define kversion 2.6.18-92.1.13.el5} # hint: this can he overridden with "--define kversion foo" on the rpmbuild command line, e.g. # --define "kversion 2.6.18-8.el5" %define kmod_name kvm %define kverrel %(%{kmodtool} verrel %{?kversion} 2>/dev/null) %define upvar "" %ifarch i686 %define paevar PAE %endif %{!?kvariants: %define kvariants %{?upvar} %{?paevar}} Name: %{kmod_name}-kmod Summary: Kernel-based Virtual Machine module Version: 36 Release: 3 Source: http://download.sourceforge.net/sourceforge/kvm/kvm-%{version}.tar.gz Source13: kvm.rules License: GPL ExclusiveOS: linux Group: System Environment/Kernel Provides: %{name} URL: http://kvm.sf.net BuildRoot: %{_tmppath}/%{name}-%{version}-root ExclusiveArch: %{ix86} x86_64 Patch: kvm-36-check-frozen-per-define.diff # Override find_provides to use a script that provides "kernel(symbol) = hash". # Pass path of the RPM temp dir containing kabideps to find-provides script. %global _use_internal_dependency_generator 0 %define __find_requires %_sourcedir/find-requires %{name} %description KVM (for Kernel-based Virtual Machine) is a full virtualization solution for Linux on x86 hardware. Using KVM, one can run multiple virtual machines running unmodified Linux or Windows images. Each virtual machine has private virtualized hardware: a network card, disk, graphics adapter, etc. This package contains the KVM module. # magic hidden here: %{expand:%(%{kmodtool} rpmtemplate_kmp %{kmod_name} %{kverrel} %{kvariants} 2>/dev/null)} %prep %setup -q -c -T -a 0 ( cd %{kmod_name}-%{version} %patch0 -p1 ) for kvariant in %{kvariants} ; do cp -a %{kmod_name}-%{version} _kmod_build_$kvariant cat << EOF > _kmod_build_$kvariant/config.mak PREFIX=/usr KERNELDIR=%{_usrsrc}/kernels/%{kverrel}${kvariant:+-$kvariant}-%{_target_cpu} WANT_MODULE=1 EOF done cd %{kmod_name}-%{version} %build [ -n $RPM_BUILD_ROOT -a "$RPM_BUILD_ROOT" != "/" ] && rm -rf $RPM_BUILD_ROOT mkdir -p %{buildroot} for kvariant in %{kvariants} do ksrc=%{_usrsrc}/kernels/%{kverrel}${kvariant:+-$kvariant}-%{_target_cpu} pushd _kmod_build_$kvariant/kernel make KDIR="${ksrc}" popd done %install for kvariant in %{kvariants} do ksrc=%{_usrsrc}/kernels/%{kverrel}${kvariant:+-$kvariant}-%{_target_cpu} pushd _kmod_build_$kvariant/kernel make -C "${ksrc}" INSTALL_MOD_PATH=$RPM_BUILD_ROOT INSTALL_MOD_DIR=extra/%{kmod_name} modules_install M=$PWD mkdir -p -m755 $RPM_BUILD_ROOT/etc/udev/rules.d/ install -m 644 %{SOURCE13} $RPM_BUILD_ROOT/etc/udev/rules.d/90-kvm.rules popd done %clean [ -n $RPM_BUILD_ROOT -a "$RPM_BUILD_ROOT" != "/" ] && rm -rf $RPM_BUILD_ROOT %changelog * Thu Nov 15 2007 Daniel de Kok <daniel@centos.org> 36-2 - Kernel 2.6.18-53.el5 now defines some CPU_.*FROZEN macros, but doesn't define others. Modify compatibility macros to check each case. * Sat Sep 06 2007 Daniel de Kok <daniel@centos.org> 36-1 - Update to KVM-36 * Mon Aug 20 2007 Daniel de Kok <daniel@centos.org> 35-1 - Update to KVM-35 * Wed Jul 28 2007 Daniel de Kok <daniel@centos.org> 33-1 - Update to KVM-33 * Wed Jul 18 2007 Daniel de Kok <daniel@centos.org> 29-1 - Update to KVM-29 * Mon Jun 18 2007 Daniel de Kok <daniel@centos.org> - 28-1 - First kvm kmod spec file.