%define fc4 1 # Define fc4 1 if the system is FC4-based %define smp 0 # Define smp 1 if the system is SMP-based %if %{?smp} %define kernel %(echo `uname -r` | sed -e s/smp//g) %define kernels %{kernel} %{kernel}smp %else %define kernel %(echo `uname -r`) %define kernels %{kernel} %endif %define pkgver 0.7.2 %define pkgrel 3 %define module qvm86.ko %define qvm86_name kernel-module-qvm86 # See http://fedoraproject.org/wiki/PackageNamingGuidelines %define qvm86_srcversion snapshot-2005-10-25_23 %define qvm86_version 0.0_2005102523 %define qvm86_release %{pkgrel}%{?dist}.%(echo %{kernel} | sed -e s/-/_/g) Name : qemu Version : %{pkgver} Release : %{pkgrel}%{?dist} # See http://fedoraproject.org/wiki/DistTag License : LGPL, GPL Summary : A generic and open source processor emulator. Group : Applications/Emulators # See http://fedoraproject.org/wiki/RPMGroups for valid RPM GROUPS URL : http://fabrice.bellard.free.fr/qemu/ Vendor : Fabrice Bellard Packager : Thomas Chung BuildRoot : %{_tmppath}/%{name}-buildroot Source0 : %{name}-%{version}.tar.gz Source1 : qvm86_module-%{qvm86_srcversion}.tar.bz2 Source2 : qvm86.init Patch0 : qemu-Makefile-qvm86.patch Patch1 : qemu-configure.patch Requires : SDL BuildRequires : SDL-devel %if %{?fc4} BuildRequires : compat-gcc-32 %endif AutoReq : no AutoProv : no %description QEMU is processor and system emulator which achieves a good emulation speed by using dynamic translation. It emulates a full system (for example a PC or a PowerMac) or runs Linux processes compiled for one processor on another. %prep rm -rf %{buildroot} ####################################################################### # setup macro # -a num : Only unpack source number after changing to the directory # -b num : Only unpack source number before changing to the directory # -c : Create directory before unpacking. # -D : Do not delete the directory before unpacking # -n name : Name the directory as name # -q : Run quiety with minimum output # -T : Disable the automatic unpacking of the archives. ####################################################################### %setup -q tar jxf %{SOURCE1} -C %{_builddir}/%{name}-%{version} mv qvm86_module-%{qvm86_srcversion} qvm86 patch -p0 < qvm86/patch.qvm86 %patch0 # patch1 (qemu-configure.patch) only needed in FC4 # make sure to install compat-gcc-32 %if %{?fc4} %patch1 %endif ######################################################### # Common Red Hat RPM macros (rpm --showrc for more info) # {_sourcedir} : /usr/src/redhat/SOURCES # {_builddir} : /usr/src/redhat/BUILD # {_tmppath} : /var/tmp # {_libdir} : /usr/lib # {_bindir} : /usr/bin # {_datadir} : /usr/share/ # {_mandir} : /usr/share/man # {_docdir} : /usr/share/doc # {_sysconfdir} : /etc # {_initrddir} : /etc/rc.d/init.d ########################################################## %build for kernel in %{kernels} do ./configure --prefix=/usr --kernel-path=/lib/modules/$kernel/build --target-list=i386-softmmu make %{?_smp_mflags} # See http://fedoraproject.org/wiki/PackagingGuidelines#parallelmake mv qvm86/%{module} qvm86/$kernel-%{module} done %install mkdir -p %{buildroot}/usr/lib/debug make install prefix=%{buildroot}/usr bindir=%{buildroot}/usr/bin \ datadir=%{buildroot}/usr/share/qemu docdir=%{buildroot}/usr/share/doc/qemu mandir=%{buildroot}/usr/share/man for kernel in %{kernels} do mkdir -p %{buildroot}/lib/modules/${kernel}/misc install -m 644 qvm86/$kernel-%{module} %{buildroot}/lib/modules/$kernel/misc/%{module} done mkdir -p %{buildroot}/etc/rc.d/init.d install -m 755 %{SOURCE2} %{buildroot}/etc/rc.d/init.d/qvm86 %clean rm -rf %{buildroot} %files ##################################################### # defattr sets the default attributes for all files ##################################################### %defattr(-,root,root) %doc Changelog COPYING COPYING.LIB LICENSE README README.distrib TODO VERSION %{_bindir}/qemu* %{_docdir}/qemu %{_mandir}/man1/qemu* %{_datadir}/qemu ################################# # subpackage : kernel-module-qemu ################################# %package -n %{qvm86_name} Version : %{qvm86_version} Release : %{qvm86_release} License : Proprietary Summary : The QEMU Accelerator Module (KQEMU) Group : Applications/Emulators Requires : qemu Obsoletes : kernel-modules-qemu %description -n %{qvm86_name} The QEMU Accelerator Module increases the speed of QEMU when a PC is emulated on a PC. It runs most of the target application code directly on the host processor to achieve near native performance. %post -n %{qvm86_name} /sbin/chkconfig --add qvm86 /sbin/service qvm86 restart > /dev/null 2>&1 || : %preun -n %{qvm86_name} if [ "$1" = 0 ]; then /sbin/service qvm86 stop > /dev/null 2>&1 || : /sbin/chkconfig --del qvm86 fi %files -n %{qvm86_name} %defattr(-,root,root) %doc qvm86/GPL qvm86/README /etc/rc.d/init.d/qvm86 /lib/modules/*/misc/%{module} %changelog * Wed Oct 26 2005 David Fraser 0.7.2-3 - Modified to build qvm86 instead of kqemu * Sat Sep 24 2005 Thomas Chung 0.7.2-2 - Fix kqemu init script starting issue * Sun Sep 04 2005 Thomas Chung 0.7.2-1 - Version 0.7.2 - Patch #2 (kqemu-linux.patch) no longer needed * Fri Sep 02 2005 Thomas Chung 0.7.1-3 - Use {?smp} to define SMP kernel or not - Use {?fc4} to defind FC4 system or not * Thu Jul 28 2005 Thomas Chung 0.7.1-2 - Patch qemu-configure to use gcc32 for FC4 - Patch kqemu-linux.c to fix Unknown symbol __PAGE_KERNEL_EXEC - Use {?_smp_mflags} to speed up builds and especially on SMP machines * Wed Jul 27 2005 Thomas Chung 0.7.1-1 - Version 0.7.1 - Change kernel-modules-qemu to kernel-module-qemu to comply with Fedora Project Package Naming Guidelines See http://fedoraproject.org/wiki/PackageNamingGuidelines - Use Obsoletes kernel-modules-qemu * Mon Jun 20 2005 Thomas Chung 0.7.0-5 - Use {?dist} in qemu release - Requires SDL - BuildRequires SDL-devel * Sun May 22 2005 Thomas Chung 0.7.0-4 - Create an init script for kqemu - Build kernel-modules-qemu for the latest installed kernels * Thu May 19 2005 Thomas Chung 0.7.0-3 - Rename qemu-accelerator to kernel-modules-qemu * Wed May 18 2005 Thomas Chung 0.7.0-2 - Splits package into subpackage qemu-accelerator * Tue May 17 2005 Thomas Chung 0.7.0-1 - Includes QEMU Accelerator Module * Mon May 16 2005 Thomas Chung 0.7.0-0 - Initial RPM build