# kernel_version is needed for mock builds, to make installing build # dependencies work. Only define it here if unset, so it can be # overridden via ~/.rpmmacros or rpmbuild command line. %if "%{?kernel_version}" == "" %if "%{?rhel}" == "5" %define kernel_version 2.6.18-53.el5 %endif %if "%{?fedora}" == "8" #%define kernel_version 2.6.24.5-85.fc8 %define kernel_version 2.6.24.7-92.fc8 %endif %if "%{?fedora}" == "9" #%define kernel_version 2.6.25-14.fc9 %define kernel_version 2.6.25.3-18.fc9 %endif %endif %if "%{?fedora}" >= "8" %define gcc34 gcc34 -Wl,--build-id %else %define gcc34 gcc34 %endif ######################################################################## Name: kvm License: GPLv2+ Group: Applications/Emulators Summary: Kernel-based Virtual Machine URL: http://kvm.sf.net/ Version: 69 Release: 1%{?dist}.kraxel Source0: %name-%version.tar.bz2 Source1: 60-kvm.rules Patch01: qemu-datadir.diff Patch09: kvmclock-3.diff BuildRoot: %{_tmppath}/%{name}-%{version}-build Requires: %{name}-kmod Provides: %{name}-kmod-common = %{version}-%{release} BuildArch: i686 x86_64 BuildRequires: compat-gcc-34 which BuildRequires: alsa-lib-devel SDL-devel e2fsprogs-devel zlib-devel BuildRequires: perl texi2html %if "%{?fedora}" != "" BuildRequires: gnutls-devel %endif #BuildRequires: %kernel_module_package_buildreqs BuildRequires: kernel-devel BuildRequires: redhat-rpm-config %kernel_module_package -x xen smp %description Kernel-based Virtual Machine %package devel Summary: Kernel-based Virtual Machine Group: Applications/Emulators %description devel Kernel-based Virtual Machine %prep %setup -q %patch01 -p1 -b .datadir %patch09 -p1 -b .clock ./configure --prefix=%{_prefix} --qemu-cc="%{gcc34}" %build for flavor in %flavors_to_build; do echo "### building for $flavor kernel ###" moddir="$(pwd)/flavor-$flavor" kdir=%{kernel_source $flavor} rm -rf "$moddir" cp -r kernel "$moddir" # make -C "$kdir" M=$moddir modules make -C "$moddir" KERNELDIR="$kdir" done echo "### building userspace bits ###" make -C libkvm make -C user make -C qemu make extboot %install # kernel module export INSTALL_MOD_PATH=$RPM_BUILD_ROOT export INSTALL_MOD_DIR=extra/kvm/external-%{version}-%{release} for flavor in %flavors_to_build; do echo "### installing $flavor kernel modules ###" moddir="$(pwd)/flavor-$flavor" kdir=%{kernel_source $flavor} make -C "$kdir" M=$moddir modules_install done # patched qemu echo "### installing userspace ###" make DESTDIR=%{buildroot} WANT_MODULE="" install test -x %{buildroot}/usr/bin/qemu-system-x86_64 &&\ mv %{buildroot}/usr/bin/qemu-system-x86_64 %{buildroot}/usr/bin/qemu-kvm test -x %{buildroot}/usr/bin/qemu &&\ mv %{buildroot}/usr/bin/qemu %{buildroot}/usr/bin/qemu-kvm mv %{buildroot}/usr/share/man/man1/qemu.1 %{buildroot}/usr/share/man/man1/qemu-kvm.1 rm -rf %{buildroot}/usr/bin/qemu-img rm -rf %{buildroot}/usr/share/man/man1/qemu-img.1* rm -rf %{buildroot}/usr/share/doc rm -rf %{buildroot}/lib/modules/*/modules.* # scripts cp kvm_stat %{buildroot}/usr/bin # /etc files mkdir -p %{buildroot}/etc/udev/rules.d install %{SOURCE1} %{buildroot}/etc/udev/rules.d %pre /usr/sbin/groupadd -r kvm 2>/dev/null || : %files %defattr(-,root,root) %doc qemu/qemu-doc.html %{_bindir}/qemu-kvm %{_bindir}/kvm_stat %{_datadir}/qemu-kvm %attr(644,root,root) %{_mandir}/man*/* %attr(644,root,root) %config(noreplace) /etc/udev/rules.d/60-kvm.rules %files devel %defattr(-,root,root) %doc qemu/qemu-tech.html %attr(644,root,root) %{_includedir}/libkvm.h %attr(644,root,root) %{_includedir}/linux/*.h %attr(644,root,root) %{_libdir}/libkvm.a %clean rm -rf %{buildroot}