Sophie

Sophie

distrib > CentOS > 5 > x86_64 > by-pkgid > 415cd22811c3a294275d9b73efd4da84 > files > 6

kvm-kmod-36-3.src.rpm

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.