Author: gb
Date: Tue Feb  6 16:03:29 2007
New Revision: 116795

Added:
   packages/cooker/qemu/current/SOURCES/kqemu-1.3.0pre10.tar.bz2   (contents, 
props changed)
Modified:
   packages/cooker/qemu/current/SPECS/qemu.spec

Log:
- integrate kqemu


Added: packages/cooker/qemu/current/SOURCES/kqemu-1.3.0pre10.tar.bz2
==============================================================================
Binary file. No diff available.

Modified: packages/cooker/qemu/current/SPECS/qemu.spec
==============================================================================
--- packages/cooker/qemu/current/SPECS/qemu.spec        (original)
+++ packages/cooker/qemu/current/SPECS/qemu.spec        Tue Feb  6 16:03:29 2007
@@ -1,8 +1,16 @@
-%define name   qemu
-%define version        0.8.3
-%define rel    1
-%define release        %mkrel %{?cvsdate:0.%{cvsdate}.}%{rel}
-%define cvsdate        20070203
+%define qemu_name      qemu
+%define qemu_version   0.8.3
+%define qemu_rel       1
+%define qemu_release   %mkrel %{?qemu_snapshot:0.%{qemu_snapshot}.}%{qemu_rel}
+%define qemu_snapshot  20070203
+
+# XXX add service
+%define kqemu_name     kqemu
+%define kqemu_version  1.3.0
+%define kqemu_snapshot pre10
+%define kqemu_fullver  %{kqemu_version}%{?kqemu_snapshot:%{kqemu_snapshot}}
+%define kqemu_release  %mkrel 
%{?kqemu_snapshot:0.%{kqemu_snapshot}.}%{qemu_rel}
+%define kqemu_arches   %{ix86} x86_64
 
 # Define targets to enable, allow redefinition from rpm build
 %define all_targets i386-linux-user arm-linux-user armeb-linux-user 
arm-softmmu sparc-linux-user ppc-linux-user i386-softmmu ppc-softmmu 
sparc-softmmu x86_64-softmmu mips-softmmu
@@ -19,10 +27,11 @@
 %endif
 
 Summary:       QEMU CPU Emulator
-Name:          %{name}
-Version:       %{version}
-Release:       %{release}
-Source0:       %{name}-%{version}%{?cvsdate:-%{cvsdate}}.tar.bz2
+Name:          %{qemu_name}
+Version:       %{qemu_version}
+Release:       %{qemu_release}
+Source0:       %{name}-%{version}%{?qemu_snapshot:-%{qemu_snapshot}}.tar.bz2
+Source1:       kqemu-%{kqemu_fullver}.tar.bz2
 Patch1:                qemu-0.8.3-gcc4.patch
 Patch2:                qemu-0.7.0-gcc4-dot-syms.patch
 Patch3:                qemu-0.8.0-gcc4-hacks.patch
@@ -43,6 +52,10 @@
 ExclusiveArch: %{ix86} ppc x86_64 amd64 sparc
 BuildRoot:     %{_tmppath}/%{name}-%{version}-%{release}-buildroot
 
+%ifarch %{kqemu_arches}
+Requires:      dkms-%{kqemu_name} >= %{kqemu_version}-%{kqemu_release}
+%endif
+
 %description
 QEMU is a FAST! processor emulator. By using dynamic translation it
 achieves a reasonnable speed while being easy to port on new host
@@ -61,8 +74,34 @@
   used to provide virtual hosting of several virtual PC on a single
   server.
 
+%package -n dkms-%{kqemu_name}
+Summary:       QEMU Accelerator Module
+Group:         System/Kernel and hardware
+Version:       %{kqemu_version}
+Release:       %{kqemu_release}
+Requires(post):         dkms
+Requires(preun): dkms
+
+%description -n dkms-%{kqemu_name}
+QEMU Accelerator (KQEMU) is a driver allowing the QEMU PC emulator to
+run much faster when emulating a PC on an x86 host.
+
+Full virtualization mode can also be enabled (with -kernel-kqemu) for
+best performance. This mode only works with the following guest OSes:
+Linux 2.4, Linux 2.6, Windows 2000 and Windows XP. WARNING: for
+Windows 2000/XP, you cannot use it during installation.
+
+%package -n __pfff_restore_rpm_tags-%{qemu_name}
+Summary:       Dummy package to restore rpm tags
+Group:         Emulators
+Version:       %{qemu_version}
+Release:       %{qemu_release}
+
+%description -n __pfff_restore_rpm_tags-%{qemu_name}
+.
+
 %prep
-%setup -q
+%setup -q -a 1
 %patch1 -p1 -b .gcc4
 %patch2 -p1 -b .gcc4-dot-syms
 %patch3 -p1 -b .gcc4-hacks
@@ -96,12 +135,46 @@
 EOF
 chmod +x find_requires.sh
 
+%ifarch %{kqemu_arches}
+# install kqemu sources
+mkdir -p $RPM_BUILD_ROOT%{_usr}/src/%{kqemu_name}-%{kqemu_fullver}
+(cd kqemu-%{kqemu_fullver} && tar cf - .) | \
+(cd $RPM_BUILD_ROOT%{_usr}/src/%{kqemu_name}-%{kqemu_fullver} && tar xf -)
+cat > $RPM_BUILD_ROOT%{_usr}/src/%{kqemu_name}-%{kqemu_fullver}/dkms.conf << 
EOF
+PACKAGE_NAME=%{kqemu_name}
+PACKAGE_VERSION=%{kqemu_fullver}
+MAKE[0]="./configure --kernel-path=/lib/modules/\${kernelver}/source && make"
+DEST_MODULE_LOCATION[0]=/kernel/3rdparty/%{kqemu_name}
+BUILT_MODULE_NAME[0]=%{kqemu_name}
+AUTOINSTALL=yes
+EOF
+
+# install udev rules
+mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/udev/rules.d/
+cat > $RPM_BUILD_ROOT%{_sysconfdir}/udev/rules.d/%{kqemu_name}.rules << EOF
+KERNEL=="%{kqemu_name}", MODE="0666"
+EOF
+%endif
+
 # remove unpackaged files
 rm -rf $RPM_BUILD_ROOT%{_docdir}/qemu
 
 %clean
 rm -rf $RPM_BUILD_ROOT
 
+%post -n dkms-%{kqemu_name}
+set -x
+/usr/sbin/dkms --rpm_safe_upgrade add -m %{kqemu_name} -v %{kqemu_fullver}
+/usr/sbin/dkms --rpm_safe_upgrade build -m %{kqemu_name} -v %{kqemu_fullver}
+/usr/sbin/dkms --rpm_safe_upgrade install -m %{kqemu_name} -v %{kqemu_fullver}
+/sbin/modprobe %{kqemu_name} >/dev/null 2>&1 || :
+
+%preun -n dkms-%{kqemu_name}
+# rmmod can fail
+/sbin/rmmod %{kqemu_name} >/dev/null 2>&1
+set -x
+/usr/sbin/dkms --rpm_safe_upgrade remove -m %{kqemu_name} -v %{kqemu_fullver} 
--all || :
+
 %files
 %defattr(-,root,root)
 %doc README qemu-doc.html qemu-tech.html
@@ -125,3 +198,12 @@
 %{_datadir}/qemu/keymaps
 %{_datadir}/qemu/video.x
 %{_datadir}/qemu/openbios-sparc32
+
+%ifarch %{kqemu_arches}
+%files -n dkms-%{kqemu_name}
+%defattr(-,root,root)
+%doc kqemu-%{kqemu_fullver}/README
+%doc kqemu-%{kqemu_fullver}/kqemu-doc.html
+%{_usr}/src/%{kqemu_name}-%{kqemu_fullver}
+%_sysconfdir/udev/rules.d/%{kqemu_name}.rules
+%endif

Reply via email to