Package kvm: Specfile

%define _unpackaged_files_terminate_build 1
%def_disable werror
%def_enable sdl
%def_enable curses
%def_enable bluez
%def_enable vnc_tls
%def_enable vde
%def_enable alsa
%def_enable esound
%def_enable pulseaudio
%def_enable aio
%def_enable blobs
%define audio_drv_list oss %{?_enable_alsa:alsa} %{?_enable_sdl:sdl} %{?_enable_esound:esd} %{?_enable_pulseaudio:pa}
%define audio_card_list ac97 adlib cs4231a gus

%define _group vmusers
%define rulenum 90
%define kernel_base_version 2.6.29
Name: kvm
Version: 85
Release: alt3
Summary: Kernel Virtual Machine virtualization environment
Group: Emulators
License: %gpl2plus
URL: http://%name.qumranet.com/%{name}wiki
Source0: %name-%version.tar
Patch: %name-%version-%release.patch
Patch1: kernel.patch
ExclusiveArch: %ix86 x86_64
Requires(pre): control >= 0.7.2
Requires(pre): shadow-utils sysvinit-utils
Packager: Michail Yakushin <silicium@altlinux.ru>

BuildRequires(pre): rpm-build-licenses
BuildRequires: zlib-devel kernel-build-tools iasl dev86 libX11-devel libvde2.2 libvde-devel
BuildRequires: kernel-source-%kernel_base_version
%{?_enable_sdl:BuildRequires: libSDL-devel}
%{?_enable_curses:BuildRequires: libncurses-devel}
%{?_enable_alsa:BuildRequires: libalsa-devel}
%{?_enable_esound:BuildRequires: esound-devel}
%{?_enable_pulseaudio:BuildRequires: libpulseaudio-devel}
%{?_enable_vnc_tls:BuildRequires: libgnutls-devel}
%{?_enable_vde:BuildRequires: libvde-devel}

%description
The Kernel Virtual Machine provides a virtualization enviroment for
processors with hardware support for virtualization: Intel's VT and
AMD's AMD-V.

%package vde
Summary: %name to virtual distributed network (VDE) connetion scripts
Requires: vde2
Group: Emulators
%description vde
This is scripts for %name to virtual distributed network (VDE).


%package -n kernel-source-%name
Summary: %name Linux kernel module sources
Group: Development/Kernel
BuildArch: noarch

%description -n kernel-source-%name
This is %name sources, a Linux kernel module for Kernel Virtual Machine
virtualization environment.


%prep
%setup
%patch -p1
tar -jxf %kernel_src/kernel-source-%kernel_base_version.tar.bz2
mv kernel-source-%kernel_base_version linux-2.6
pushd linux-2.6
%patch1 -p1
popd 

%build
export CFLAGS="%optflags"
./configure \
    --prefix=%_prefix \
    --qemu-cflags="%optflags" \
    %{subst_enable werror} \
    %{?_disable_sdl:--disable-sdl} \
    %{?_disable_curses:--disable-curses} \
    %{?_disable_bluez:--disable-bluez} \
    %{?_disable_vnc_tls:--disable-vnc-tls} \
    %{?_disable_aio: --disable-aio} \
    %{?_disable_blobs: --disable-blobs} \
    --audio-drv-list="%audio_drv_list" \
    --audio-card-list="%audio_card_list" \
    --disable-gfx-check 
make -C kernel sync
%make_build 
#vgabios extboot user libfdt 
sed -i 's/@GROUP@/%_group/g' %name.control.in

%install
%make_install DESTDIR=%buildroot initdir=%_initdir install-rpm

rm -f %buildroot%_datadir/*/openbios*
rm -f %buildroot%_bindir/kvm
mv %buildroot%_bindir/qemu-system-x86_64 %buildroot%_bindir/kvm
rm -f %buildroot%_bindir/qemu-*
rm -f %buildroot%_sysconfdir/udev/rules.d/*

#install -m 0755 %name %buildroot%_bindir/
install -m 0755 %name.init %buildroot%_initdir/%name
install -D -m 0644 %name.sysconfig %buildroot%_sysconfdir/sysconfig/%name
install -D -m 0644 %name.rules %buildroot%_sysconfdir/udev/rules.d/%rulenum-%name.rules
install -D -m 0755 %name.control.in %buildroot%_controldir/%name
install -d -m 0755 kernel-source-%name-%version %buildroot%kernel_src
cp -r kernel/* kernel-source-%name-%version/
tar -c kernel-source-%name-%version | bzip2 --best > %buildroot%kernel_src/kernel-source-%name-%version.tar.bz2
rm -rf kernel-source-%name-%version
rm %buildroot/%_sysconfdir/kvm/qemu-ifup

install -m 0755 vde/%{name}_vde %buildroot%_initdir/%{name}_vde
install -d -m 0755 %buildroot%_sysconfdir/kvm/vde
install -m 0644 vde/*.conf %buildroot%_sysconfdir/kvm/vde/
install -m 0770 -d %buildroot%_var/run/kvm_vde

%pre
%_sbindir/groupadd -r -f %_group
%pre_control %name

%post
%post_control -s %name %name
%post_service %name

%post vde
%post_service %{name}_vde

%preun
%preun_service %name

%preun vde
%preun_service %{name}_vde

%files
%_bindir/*
%_sysconfdir/udev/rules.d/*
%_initdir/kvm
%config(noreplace) %_sysconfdir/sysconfig/*
%_controldir/*
%_sysconfdir/kvm
%_datadir/*
%exclude %_sysconfdir/kvm/vde

%files vde
%_sysconfdir/kvm/vde
%config(noreplace) %_sysconfdir/kvm/vde/*
%_initdir/kvm_vde
%attr(750,root,%_group) %_var/run/kvm_vde/

%files -n kernel-source-%name
%kernel_src/*


%changelog
* Wed Jun 10 2009 Michail Yakushin <silicium@altlinux.ru> 85-alt3
- add option boot=[on|off] to kvm help.

* Tue May 26 2009 Michail Yakushin <silicium@altlinux.ru> 85-alt2
- move  {post,preun}_service kvm_vde to kvm-vde subpackage

* Tue Apr 21 2009 Michail Yakushin <silicium@altlinux.ru> 85-alt1
- kvm-85 

* Tue Apr 14 2009 Michail Yakushin <silicium@altlinux.ru> 84-alt5
- improved kvm_vde scripts
- move kvm-vde fetures to separated packages 

* Wed Apr 08 2009 Michail Yakushin <silicium@altlinux.ru> 84-alt4
- add VDE support
- set RAM to 512 by default

* Tue Mar 24 2009 Michail Yakushin <silicium@altlinux.ru> 84-alt3
- fix evdev keyboard support 
- remove junk udev rule
- add check option to initscript 
- rename group kvm to vmusers

* Thu Mar 19 2009 Michail Yakushin <silicium@altlinux.ru> 84-alt2
- Build form upstream git

* Tue Mar 10 2009 Michail Yakushin <silicium@altlinux.ru> 84-alt1
- 84 

* Sat Jan 24 2009 Led <led@altlinux.ru> 83-alt1
- 83

* Wed Jan 07 2009 Led <led@altlinux.ru> 82-alt1
- 82

* Sun Dec 21 2008 Led <led@altlinux.ru> 81-alt1
- 81

* Sun Dec 14 2008 Led <led@altlinux.ru> 80-alt1
- 80

* Wed Nov 26 2008 Led <led@altlinux.ru> 79-alt2
- Added control(8) support to control /dev/kvm permissions
- Added initscript

* Tue Nov 25 2008 Led <led@altlinux.ru> 79-alt1
- 79

* Tue Nov 25 2008 Led <led@altlinux.ru> 78-alt2
- fixed kernel-source-%name

* Thu Nov 06 2008 Led <led@altlinux.ru> 78-alt1
- 78

* Mon Sep 29 2008 Led <led@altlinux.ru> 76-alt1
- 76
- updated qemu-flags.patch

* Sun Sep 14 2008 Led <led@altlinux.ru> 75-alt1
- 75

* Fri Aug 29 2008 Led <led@altlinux.ru> 74-alt1
- 74

* Fri Aug 29 2008 Led <led@altlinux.ru> 73-alt1
- 73
- added %name-73-alt-eventfd.patch

* Sun Jul 20 2008 Led <led@altlinux.ru> 71-alt1
- 71

* Mon May 19 2008 Led <led@altlinux.ru> 69-alt1
- 69

* Mon May 05 2008 Led <led@altlinux.ru> 68-alt1
- 68

* Thu Apr 17 2008 Led <led@altlinux.ru> 66-alt1
- 66

* Tue Apr 08 2008 Led <led@altlinux.ru> 65-alt1
- 65

* Thu Mar 27 2008 Led <led@altlinux.ru> 64-alt1
- 64

* Mon Mar 17 2008 Led <led@altlinux.ru> 63-alt1
- 63

* Wed Feb 27 2008 Led <led@altlinux.ru> 62-alt1
- 62:
  + fixed vulnerability (SA29129)

* Sat Feb 23 2008 Led <led@altlinux.ru> 61-alt1
- 61:
  + AC97 emulation
  + Adlib emulation
  + Gravis Ultrasound emulation
  + EsounD audio driver
- fixed Kbuild
- added qemu-flags.patch
  
* Mon Feb 11 2008 Led <led@altlinux.ru> 60-alt0.2
- fixed spec

* Sun Feb 10 2008 Led <led@altlinux.ru> 60-alt0.1
- initial build