X-Git-Url: http://git.pld-linux.org/?a=blobdiff_plain;f=qemu.spec;h=f1f76060dfc7de7490801a2c6c943e6933bb2410;hb=a6d3659e55d0054f1d7a588bd0ac726bdb1724e0;hp=0664ece2ab7fa808e02d6c49e465e98e5f32d855;hpb=8bd2aee22b81a6d67708f7809bb13575f8fd15f3;p=packages%2Fqemu.git diff --git a/qemu.spec b/qemu.spec index 0664ece..f1f7606 100644 --- a/qemu.spec +++ b/qemu.spec @@ -1,22 +1,50 @@ +# +# TODO: +# - wait till the gcc bug http://gcc.gnu.org/PR16185 is fixed. +# +# Conditional build: +%bcond_with kqemu # with QEMU accelerator module +%bcond_with cflags_passing # with passing rpmcflags to Makefiles +%bcond_with nosdlgui # do not use SDL gui (use X11 instead) +# Summary: QEMU CPU Emulator +Summary(pl): QEMU - emulator procesora Name: qemu -Version: 0.5.2 -Release: 0.1 +Version: 0.7.0 +Release: 1.3 +License: GPL +Group: Applications/Emulators +#Source0Download: http://fabrice.bellard.free.fr/qemu/download.html Source0: http://fabrice.bellard.free.fr/qemu/%{name}-%{version}.tar.gz +# Source0-md5: 234e9ace03b00259bb57dc5a9c633056 +%if %{with kqemu} +Source1: http://fabrice.bellard.free.fr/qemu/kqemu-0.6.2-1.tar.gz +# NoSource1-md5: c6bb3b40fb3d526d731eb0f1f9dee7ee +NoSource: 1 +%endif Patch0: %{name}-nostatic.patch -#Patch0: qemu-0.5.0-cvsupdates.patch.bz2 -#Patch1: qemu-0.1.6-glibc23-ldscripts.patch.bz2 -#Patch2: qemu-0.5.0-sdl-static-libs.patch.bz2 -#Patch3: qemu-0.5.0-DESTDIR.patch.bz2 -#Patch4: qemu-0.5.0-lib64.patch.bz2 -#Patch5: qemu-0.5.0-amd64.patch.bz2 -#Patch6: qemu-0.5.0-vl-amd64.patch.bz2 -License: GPL +Patch1: %{name}-DESTDIR.patch +Patch2: %{name}-longjmp.patch +Patch3: %{name}-dot.patch +Patch4: %{name}-initrd_load_addr.patch +Patch5: %{name}-gcc4_x86.patch +Patch6: %{name}-gcc4_ppc.patch +Patch7: %{name}-parallel.patch +Patch8: %{name}-nosdlgui.patch URL: http://fabrice.bellard.free.fr/qemu/ -Group: Applications/Emulators -BuildRequires: SDL-devel +Requires: SDL >= 1.2.1 +BuildRequires: SDL-devel >= 1.2.1 +BuildRequires: sed >= 4.0 +%if %{with kqemu} +BuildRequires: kernel-source +%endif +ExclusiveArch: %{ix86} %{x8664} ppc +# sparc is currently unsupported (missing cpu_get_real_ticks() impl in vl.c) BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n) +# some SPARC boot image in ELF format +%define _noautostrip .*%{_datadir}/qemu/proll.elf + %description QEMU is a FAST! processor emulator. By using dynamic translation it achieves a reasonnable speed while being easy to port on new host @@ -28,54 +56,113 @@ CPUs. QEMU has two operating modes: emulation) and DOSEMU (DOS emulation) are the main targets for QEMU. - Full system emulation. In this mode, QEMU emulates a full system, - including a processor and various peripherials. Currently, it is only - used to launch an x86 Linux kernel on an x86 Linux system. It enables - easier testing and debugging of system code. It can also be used to - provide virtual hosting of several virtual PC on a single server. + including a processor and various peripherials. + It can also be used to provide virtual hosting of several + virtual PC on a single server. + +%description -l pl +QEMU to szybki(!) emulator procesora. Poprzez u¿ycie dynamicznego +t³umaczenia osi±ga rozs±dn± szybko¶æ i jest ³atwy do przeportowania, +aby dzia³a³ na kolejnych procesorach. QEMU ma dwa tryby pracy: + +- Emulacja trybu u¿ytkownika. W tym trybie QEMU mo¿e uruchamiaæ + procesy linuksowe skompilowane dla jednego procesora na innym + procesorze. Linuksowe wywo³ania systemowe s± t³umaczone ze wzglêdu + na niezgodno¶æ kolejno¶ci bajtów w s³owie i 32/64-bitowego rozmiaru + s³owa. Wine (emulacja Windows) i DOSEMU (emulacja DOS-a) to g³ówne + cele QEMU. + +- Pe³na emulacja systemu. W tym trybie QEMU emuluje ca³y system, + w³±czaj±c w to procesor i ró¿ne urz±dzenia peryferyjne. + Mo¿e byæ tak¿e u¿ywane do wirtualnego hostowania kilku wirtualnych + pecetów na pojedynczym serwerze. %prep -%setup -q -%patch0 -p1 -#%patch0 -p1 -b .cvsupdates -#%patch1 -p1 -b .glibc23-ldscripts -#%patch2 -p1 -b .sdl-static-libs -#%patch3 -p1 -b .DESTDIR -#%patch4 -p1 -b .lib64 -#%patch5 -p1 -b .amd64 -# needs to 64-bit clean softmmu code or MAP_32BIT physical_ram_base -# but other problems remain. -#%patch6 -p1 -b .vl-amd64 +%setup -q %{?with_kqemu:-a1} +%patch0 -p1 +%patch1 -p1 +%patch2 -p1 +%patch3 -p1 +%patch4 -p1 +%patch5 -p0 +%patch6 -p1 +%patch7 -p1 +%{?with_nosdlgui:%patch8 -p1} + +%{__sed} -i -e 's/sdl_static=yes/sdl_static=no/' configure + +# cannot use optflags on x86 - they cause "no register to spill" errors +%if %{with cflags_passing} +%{__sed} -i -e 's/-Wall -O2 -g/-Wall %{rpmcflags}/' Makefile Makefile.target +%endif + +%{?with_kqemu:echo -n > kqemu/install.sh} %build + +%if %{with kqemu} +cp -rdp %{_kernelsrcdir}/ . +rm -f linux/.config +cp -f linux/config-smp linux/.config +make -C linux modules_prepare +%endif + +# --extra-cflags don't work (overridden by CFLAGS in Makefile*) +# they can be passed if the cflags_passing bcond is used ./configure \ --prefix=%{_prefix} \ - --cc=%{__cc} \ - --make=%{__make} \ - --interp-prefix=%{_libdir}/gnemul/qemu-%M -%{__make} + --cc="%{__cc}" \ + %if %{with kqemu} + --enable-kqemu }\ + --kernel-path=`pwd`/linux \ + %endif + --make="%{__make}" + +%{__make} + +%if %{with kqemu} +mv kqemu/kqemu.ko kqemu/kqemu.smp +cp -f linux/config-up linux/.config +make -C linux modules_prepare +%endif %install rm -rf $RPM_BUILD_ROOT + %{__make} install \ DESTDIR=$RPM_BUILD_ROOT +%if %{with kqemu} +install -d $RPM_BUILD_ROOT/lib/modules/%{_kernel_ver}{,smp}/misc +install kqemu/kqemu.smp $RPM_BUILD_ROOT/lib/modules/%{_kernel_ver}smp/misc/kqemu.ko +install kqemu/kqemu.ko $RPM_BUILD_ROOT/lib/modules/%{_kernel_ver}/misc +%endif + %clean rm -rf $RPM_BUILD_ROOT +%post +%if %{with kqemu} +%depmod + +%banner %{name} -e << EOF +To enable qemu accelerator (kqemu), You must manually create device for it: +mknod /dev/kqemu c 250 0 +chmod 666 /dev/kqemu + +And before start qemu, the kqemu kernel module must be loaded: +modprobe kqemu +EOF +%endif + +%postun +%{?with_kqemu: %depmod} + %files %defattr(644,root,root,755) -%doc README qemu-doc.html -%ifarch %{ix86} -%attr(755,root,root) %{_bindir}/qemu-fast -%endif -%ifarch %{ix86} ppc -%{_bindir}/qemu -%endif -%{_bindir}/qemu-mkcow -%{_bindir}/qemu-arm -%{_bindir}/qemu-i386 -%{_bindir}/qemu-sparc +%doc README qemu-doc.html qemu-tech.html +%attr(755,root,root) %{_bindir}/* +%{_datadir}/qemu %{_mandir}/man1/qemu.1* -%dir %{_datadir}/qemu -%{_datadir}/qemu/bios.bin -%{_datadir}/qemu/vgabios.bin +%{_mandir}/man1/qemu-img.1* +%{?with_kqemu: /lib/*}