2 # - package virtfs-proxy-helper, qemu-bridge-helper.
3 # - package qemu-system-or32
5 # - qemu-system-ppc -hda ac-ppc.img says:
6 # qemu: could not open disk image ac-ppc.img: error "Success"
7 # qemu-0.12.2-2.x86_64.rpm - broken
8 # qemu-0.12.3-3.x86_64/qemu-0.12.4-1.x86_64 - stops on "returning from prom_init"
9 # qemu-0.15.0-2.x86_64.rpm - qemu-system-sparc/ppc booting with -kernel, -initrd options stalls in openbios prompt
10 # qemu-0.11.1-*.x86_64.rpm - OK
13 %bcond_with nosdlgui # do not use SDL gui (use X11 instead)
15 Summary: QEMU CPU Emulator
16 Summary(pl.UTF-8): QEMU - emulator procesora
21 Group: Applications/Emulators
22 Source0: http://wiki.qemu.org/download/%{name}-%{version}.tar.bz2
23 # Source0-md5: 78eb1e984f4532aa9f2bdd3c127b5b61
24 Patch0: %{name}-cflags.patch
25 Patch1: vgabios-widescreens.patch
26 Patch6: %{name}-nosdlgui.patch
27 # Proof of concept, for reference, do not remove
28 Patch8: %{name}-kde_virtual_workspaces_hack.patch
29 Patch17: %{name}-whitelist.patch
30 URL: http://wiki.qemu.org/Index.html
31 BuildRequires: SDL-devel >= 1.2.1
32 BuildRequires: alsa-lib-devel
33 BuildRequires: bluez-libs-devel
34 BuildRequires: gnutls-devel
35 BuildRequires: ncurses-devel
36 BuildRequires: perl-Encode
37 BuildRequires: perl-tools-pod
38 BuildRequires: pkgconfig
39 BuildRequires: sed >= 4.0
40 BuildRequires: texi2html
41 BuildRequires: texinfo
43 BuildRequires: xen-devel
44 BuildRequires: xorg-lib-libX11-devel
45 Requires: %{name}-img = %{version}-%{release}
46 Requires: %{name}-system-alpha = %{version}-%{release}
47 Requires: %{name}-system-arm = %{version}-%{release}
48 Requires: %{name}-system-cris = %{version}-%{release}
49 Requires: %{name}-system-lm32 = %{version}-%{release}
50 Requires: %{name}-system-m68k = %{version}-%{release}
51 Requires: %{name}-system-microblaze = %{version}-%{release}
52 Requires: %{name}-system-mips = %{version}-%{release}
53 Requires: %{name}-system-ppc = %{version}-%{release}
54 Requires: %{name}-system-s390x = %{version}-%{release}
55 Requires: %{name}-system-sh4 = %{version}-%{release}
56 Requires: %{name}-system-sparc = %{version}-%{release}
57 Requires: %{name}-system-unicore32 = %{version}-%{release}
58 Requires: %{name}-system-x86 = %{version}-%{release}
59 Requires: %{name}-system-xtensa = %{version}-%{release}
60 Requires: %{name}-user = %{version}-%{release}
61 # sparc is currently unsupported (missing cpu_get_real_ticks() impl in vl.c)
62 ExclusiveArch: %{ix86} %{x8664} %{?with_userspace:ppc}
63 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
65 # some PPC/SPARC boot image in ELF format
66 %define _noautostrip .*%{_datadir}/qemu/.*-.*
69 QEMU is a FAST! processor emulator. By using dynamic translation it
70 achieves a reasonnable speed while being easy to port on new host
71 CPUs. QEMU has two operating modes:
73 - User mode emulation. In this mode, QEMU can launch Linux processes
74 compiled for one CPU on another CPU. Linux system calls are converted
75 because of endianness and 32/64 bit mismatches. Wine (Windows
76 emulation) and DOSEMU (DOS emulation) are the main targets for QEMU.
78 - Full system emulation. In this mode, QEMU emulates a full system,
79 including a processor and various peripherials. It can also be used to
80 provide virtual hosting of several virtual PC on a single server.
82 %description -l pl.UTF-8
83 QEMU to szybki(!) emulator procesora. Poprzez użycie dynamicznego
84 tłumaczenia osiąga rozsądną szybkość i jest łatwy do przeportowania,
85 aby działał na kolejnych procesorach. QEMU ma dwa tryby pracy:
87 - Emulacja trybu użytkownika. W tym trybie QEMU może uruchamiać
88 procesy linuksowe skompilowane dla jednego procesora na innym
89 procesorze. Linuksowe wywołania systemowe są tłumaczone ze względu na
90 niezgodność kolejności bajtów w słowie i 32/64-bitowego rozmiaru
91 słowa. Wine (emulacja Windows) i DOSEMU (emulacja DOS-a) to główne
94 - Pełna emulacja systemu. W tym trybie QEMU emuluje cały system,
95 włączając w to procesor i różne urządzenia peryferyjne. Może być także
96 używane do wirtualnego hostowania kilku wirtualnych pecetów na
100 Summary: QEMU common files needed by all QEMU targets
101 Group: Development/Tools
102 Requires: SDL >= 1.2.1
103 Conflicts: qemu < 1.0-2
106 QEMU is a generic and open source processor emulator which achieves a
107 good emulation speed by using dynamic translation.
109 This package provides the common files needed by all QEMU targets.
112 Summary: QEMU command line tool for manipulating disk images
113 Group: Development/Tools
114 Conflicts: qemu < 1.0-2
117 This package provides a command line tool for manipulating disk images
120 Summary: QEMU user mode emulation of qemu targets
121 Group: Development/Tools
122 Requires: %{name}-common = %{version}-%{release}
125 QEMU is a generic and open source processor emulator which achieves a
126 good emulation speed by using dynamic translation.
128 This package provides the user mode emulation of QEMU targets.
130 %package system-alpha
131 Summary: QEMU system emulator for alpha
132 Group: Development/Tools
133 Requires: %{name}-common = %{version}-%{release}
135 %description system-alpha
136 QEMU is a generic and open source processor emulator which achieves a
137 good emulation speed by using dynamic translation.
139 This package provides the system emulator for alpha.
142 Summary: QEMU system emulator for arm
143 Group: Development/Tools
144 Requires: %{name}-common = %{version}-%{release}
146 %description system-arm
147 QEMU is a generic and open source processor emulator which achieves a
148 good emulation speed by using dynamic translation.
150 This package provides the system emulator for arm.
153 Summary: QEMU system emulator for cris
154 Group: Development/Tools
155 Requires: %{name}-common = %{version}-%{release}
157 %description system-cris
158 QEMU is a generic and open source processor emulator which achieves a
159 good emulation speed by using dynamic translation.
161 This package provides the system emulator for cris.
164 Summary: QEMU system emulator for lm32
165 Group: Development/Tools
166 Requires: %{name}-common = %{version}-%{release}
168 %description system-lm32
169 QEMU is a generic and open source processor emulator which achieves a
170 good emulation speed by using dynamic translation.
172 This package provides the system emulator for lm32.
175 Summary: QEMU system emulator for m68k
176 Group: Development/Tools
177 Requires: %{name}-common = %{version}-%{release}
179 %description system-m68k
180 QEMU is a generic and open source processor emulator which achieves a
181 good emulation speed by using dynamic translation.
183 This package provides the system emulator for m68k.
185 %package system-microblaze
186 Summary: QEMU system emulator for microblaze
187 Group: Development/Tools
188 Requires: %{name}-common = %{version}-%{release}
190 %description system-microblaze
191 QEMU is a generic and open source processor emulator which achieves a
192 good emulation speed by using dynamic translation.
194 This package provides the system emulator for microblaze.
197 Summary: QEMU system emulator for mips
198 Group: Development/Tools
199 Requires: %{name}-common = %{version}-%{release}
201 %description system-mips
202 QEMU is a generic and open source processor emulator which achieves a
203 good emulation speed by using dynamic translation.
205 This package provides the system emulator for mips.
208 Summary: QEMU system emulator for ppc
209 Group: Development/Tools
210 Requires: %{name}-common = %{version}-%{release}
212 %description system-ppc
213 QEMU is a generic and open source processor emulator which achieves a
214 good emulation speed by using dynamic translation.
216 This package provides the system emulator for ppc.
218 %package system-s390x
219 Summary: QEMU system emulator for s390x
220 Group: Development/Tools
221 Requires: %{name}-common = %{version}-%{release}
223 %description system-s390x
224 QEMU is a generic and open source processor emulator which achieves a
225 good emulation speed by using dynamic translation.
227 This package provides the system emulator for s390x.
230 Summary: QEMU system emulator for sh4
231 Group: Development/Tools
232 Requires: %{name}-common = %{version}-%{release}
234 %description system-sh4
235 QEMU is a generic and open source processor emulator which achieves a
236 good emulation speed by using dynamic translation.
238 This package provides the system emulator for sh4.
240 %package system-sparc
241 Summary: QEMU system emulator for sparc
242 Group: Development/Tools
243 Requires: %{name}-common = %{version}-%{release}
245 %description system-sparc
246 QEMU is a generic and open source processor emulator which achieves a
247 good emulation speed by using dynamic translation.
249 This package provides the system emulator for sparc/sparc64.
251 %package system-unicore32
252 Summary: QEMU system emulator for unicore32
253 Group: Development/Tools
254 Requires: %{name}-common = %{version}-%{release}
256 %description system-unicore32
257 QEMU is a generic and open source processor emulator which achieves a
258 good emulation speed by using dynamic translation.
260 This package provides the system emulator for unicore32.
263 Summary: QEMU system emulator for x86
264 Group: Development/Tools
265 Requires: %{name}-common = %{version}-%{release}
267 %description system-x86
268 QEMU is a generic and open source processor emulator which achieves a
269 good emulation speed by using dynamic translation.
271 This package provides the system emulator for x86. When being run in a
272 x86 machine that supports it, this package also provides the KVM
273 virtualization platform.
275 %package system-xtensa
276 Summary: QEMU system emulator for xtensa
277 Group: Development/Tools
278 Requires: %{name}-common = %{version}-%{release}
280 %description system-xtensa
281 QEMU is a generic and open source processor emulator which achieves a
282 good emulation speed by using dynamic translation.
284 This package provides the system emulator for xtensa.
290 %{?with_nosdlgui:%patch6 -p1}
294 # workaround for conflict with alsa/error.h
295 ln -s ../error.h qapi/error.h
299 --extra-cflags="%{rpmcflags} -I/usr/include/ncurses" \
300 --extra-ldflags="%{rpmldflags}" \
302 --sysconfdir=%{_sysconfdir} \
303 --prefix=%{_prefix} \
305 --host-cc="%{__cc}" \
307 --audio-drv-list="alsa" \
308 --interp-prefix=%{_libdir}/%{name}
311 # rebuild patched vesa tables with additional widescreen modes.
312 %{__make} -C roms/vgabios stdvga-bios
315 rm -rf $RPM_BUILD_ROOT
318 DESTDIR=$RPM_BUILD_ROOT
320 install -d $RPM_BUILD_ROOT%{_sysconfdir}
321 cat <<'EOF' > $RPM_BUILD_ROOT%{_sysconfdir}/qemu-ifup
327 rm -rf $RPM_BUILD_ROOT%{_docdir}/qemu/qemu-{doc,tech}.html
329 # install patched vesa tables with additional widescreen modes.
330 install -m 644 roms/vgabios/VGABIOS-lgpl-latest.stdvga.bin $RPM_BUILD_ROOT%{_datadir}/%{name}/vgabios-stdvga.bin
333 rm -rf $RPM_BUILD_ROOT
336 %defattr(644,root,root,755)
339 %defattr(644,root,root,755)
340 %doc README qemu-doc.html qemu-tech.html
341 %attr(755,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/qemu-ifup
342 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/qemu/target-*.conf
343 %dir %{_sysconfdir}/qemu
344 %attr(755,root,root) %{_bindir}/qemu-nbd
345 %{_mandir}/man1/qemu.1*
346 %{_mandir}/man8/qemu-nbd.8*
348 %dir %{_datadir}/qemu
349 %{_datadir}/%{name}/cpus-*.conf
350 %{_datadir}/%{name}/keymaps
351 # various bios images
352 %{_datadir}/%{name}/*.bin
353 %{_datadir}/%{name}/*.rom
354 %{_datadir}/%{name}/*.dtb
355 %{_datadir}/%{name}/openbios-ppc
356 %{_datadir}/%{name}/openbios-sparc*
357 %{_datadir}/%{name}/palcode-clipper
360 %defattr(644,root,root,755)
361 %attr(755,root,root) %{_bindir}/qemu-img
362 %{_mandir}/man1/qemu-img.1*
365 %defattr(644,root,root,755)
366 %attr(755,root,root) %{_bindir}/qemu-x86_64
367 %attr(755,root,root) %{_bindir}/qemu-i386
368 %attr(755,root,root) %{_bindir}/qemu-alpha
369 %attr(755,root,root) %{_bindir}/qemu-arm
370 %attr(755,root,root) %{_bindir}/qemu-armeb
371 %attr(755,root,root) %{_bindir}/qemu-cris
372 %attr(755,root,root) %{_bindir}/qemu-ga
373 %attr(755,root,root) %{_bindir}/qemu-io
374 %attr(755,root,root) %{_bindir}/qemu-m68k
375 %attr(755,root,root) %{_bindir}/qemu-microblaze
376 %attr(755,root,root) %{_bindir}/qemu-microblazeel
377 %attr(755,root,root) %{_bindir}/qemu-mips
378 %attr(755,root,root) %{_bindir}/qemu-mipsel
379 %attr(755,root,root) %{_bindir}/qemu-ppc
380 %attr(755,root,root) %{_bindir}/qemu-ppc64
381 %attr(755,root,root) %{_bindir}/qemu-ppc64abi32
382 %attr(755,root,root) %{_bindir}/qemu-s390x
383 %attr(755,root,root) %{_bindir}/qemu-sh4
384 %attr(755,root,root) %{_bindir}/qemu-sh4eb
385 %attr(755,root,root) %{_bindir}/qemu-sparc
386 %attr(755,root,root) %{_bindir}/qemu-sparc32plus
387 %attr(755,root,root) %{_bindir}/qemu-sparc64
388 %attr(755,root,root) %{_bindir}/qemu-unicore32
391 %defattr(644,root,root,755)
392 %attr(755,root,root) %{_bindir}/qemu-system-alpha
395 %defattr(644,root,root,755)
396 %attr(755,root,root) %{_bindir}/qemu-system-arm
399 %defattr(644,root,root,755)
400 %attr(755,root,root) %{_bindir}/qemu-system-cris
403 %defattr(644,root,root,755)
404 %attr(755,root,root) %{_bindir}/qemu-system-lm32
407 %defattr(644,root,root,755)
408 %attr(755,root,root) %{_bindir}/qemu-system-m68k
410 %files system-microblaze
411 %defattr(644,root,root,755)
412 %attr(755,root,root) %{_bindir}/qemu-system-microblaze
413 %attr(755,root,root) %{_bindir}/qemu-system-microblazeel
416 %defattr(644,root,root,755)
417 %attr(755,root,root) %{_bindir}/qemu-system-mips
418 %attr(755,root,root) %{_bindir}/qemu-system-mipsel
419 %attr(755,root,root) %{_bindir}/qemu-system-mips64
420 %attr(755,root,root) %{_bindir}/qemu-system-mips64el
423 %defattr(644,root,root,755)
424 %attr(755,root,root) %{_bindir}/qemu-system-ppc
425 %attr(755,root,root) %{_bindir}/qemu-system-ppc64
426 %attr(755,root,root) %{_bindir}/qemu-system-ppcemb
429 %defattr(644,root,root,755)
430 %attr(755,root,root) %{_bindir}/qemu-system-s390x
433 %defattr(644,root,root,755)
434 %attr(755,root,root) %{_bindir}/qemu-system-sh4
435 %attr(755,root,root) %{_bindir}/qemu-system-sh4eb
438 %defattr(644,root,root,755)
439 %attr(755,root,root) %{_bindir}/qemu-system-sparc
440 %attr(755,root,root) %{_bindir}/qemu-system-sparc64
442 %files system-unicore32
443 %defattr(644,root,root,755)
444 %attr(755,root,root) %{_bindir}/qemu-system-unicore32
447 %defattr(644,root,root,755)
448 %attr(755,root,root) %{_bindir}/qemu-system-i386
449 %attr(755,root,root) %{_bindir}/qemu-system-x86_64
452 %defattr(644,root,root,755)
453 %attr(755,root,root) %{_bindir}/qemu-system-xtensa
454 %attr(755,root,root) %{_bindir}/qemu-system-xtensaeb