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