]> git.pld-linux.org Git - packages/qemu.git/blob - qemu.spec
- release 3
[packages/qemu.git] / qemu.spec
1 # TODO:
2 # - update patches
3 # - qemu-system-ppc -hda ac-ppc.img says:
4 #   qemu: could not open disk image ac-ppc.img: error "Success"
5 #   qemu-0.12.2-2.x86_64.rpm - broken
6 #   qemu-0.12.3-3.x86_64/qemu-0.12.4-1.x86_64 - stops on "returning from prom_init"
7 #   qemu-0.15.0-2.x86_64.rpm - qemu-system-sparc/ppc booting with -kernel, -initrd options stalls in openbios prompt
8 #   qemu-0.11.1-*.x86_64.rpm - OK
9 #
10 # Conditional build:
11 %bcond_with     cflags_passing          # with passing rpmcflags to Makefiles
12 %bcond_with     dosguest                # add special patch when use with DOS as guest os
13 %bcond_with     nosdlgui                # do not use SDL gui (use X11 instead)
14
15 Summary:        QEMU CPU Emulator
16 Summary(pl.UTF-8):      QEMU - emulator procesora
17 Name:           qemu
18 Version:        1.0
19 Release:        3
20 License:        GPL
21 Group:          Applications/Emulators
22 Source0:        http://wiki.qemu.org/download/%{name}-%{version}.tar.gz
23 # Source0-md5:  a64b36067a191451323b0d34ebb44954
24 Patch0:         %{name}-ncurses.patch
25 Patch6:         %{name}-nosdlgui.patch
26 # Proof of concept, for reference, do not remove
27 Patch8:         %{name}-kde_virtual_workspaces_hack.patch
28 #Patch12: %{name}-0.7.2-dyngen-check-stack-clobbers.patch
29 Patch13:        %{name}-dosguest.patch
30 Patch14:        %{name}-ppc_old_binutils.patch
31 Patch15:        %{name}-isa-bios-ram.patch
32 # below one fixes problems with passing ram size to bios/bootloader
33 # which affects coreboot/linuxbios
34 Patch16:        %{name}-piix-ram-size.patch
35 Patch17:        %{name}-whitelist.patch
36 URL:            http://wiki.qemu.org/Index.html
37 BuildRequires:  SDL-devel >= 1.2.1
38 BuildRequires:  alsa-lib-devel
39 BuildRequires:  bluez-libs-devel
40 BuildRequires:  gnutls-devel
41 BuildRequires:  ncurses-devel
42 BuildRequires:  perl-Encode
43 BuildRequires:  perl-tools-pod
44 BuildRequires:  pkgconfig
45 BuildRequires:  sed >= 4.0
46 BuildRequires:  texi2html
47 BuildRequires:  which
48 BuildRequires:  xorg-lib-libX11-devel
49 Requires:       %{name}-img = %{version}-%{release}
50 Requires:       %{name}-system-alpha = %{version}-%{release}
51 Requires:       %{name}-system-arm = %{version}-%{release}
52 Requires:       %{name}-system-cris = %{version}-%{release}
53 Requires:       %{name}-system-lm32 = %{version}-%{release}
54 Requires:       %{name}-system-m68k = %{version}-%{release}
55 Requires:       %{name}-system-microblaze = %{version}-%{release}
56 Requires:       %{name}-system-mips = %{version}-%{release}
57 Requires:       %{name}-system-ppc = %{version}-%{release}
58 Requires:       %{name}-system-s390x = %{version}-%{release}
59 Requires:       %{name}-system-sh4 = %{version}-%{release}
60 Requires:       %{name}-system-sparc = %{version}-%{release}
61 Requires:       %{name}-system-x86 = %{version}-%{release}
62 Requires:       %{name}-system-xtensa = %{version}-%{release}
63 Requires:       %{name}-user = %{version}-%{release}
64 # sparc is currently unsupported (missing cpu_get_real_ticks() impl in vl.c)
65 ExclusiveArch:  %{ix86} %{x8664} %{?with_userspace:ppc}
66 BuildRoot:      %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
67
68 # some PPC/SPARC boot image in ELF format
69 %define         _noautostrip    .*%{_datadir}/qemu/.*-.* .*%{_datadir}/qemu/bios.bin
70
71 %description
72 QEMU is a FAST! processor emulator. By using dynamic translation it
73 achieves a reasonnable speed while being easy to port on new host
74 CPUs. QEMU has two operating modes:
75
76 - User mode emulation. In this mode, QEMU can launch Linux processes
77   compiled for one CPU on another CPU. Linux system calls are converted
78   because of endianness and 32/64 bit mismatches. Wine (Windows
79   emulation) and DOSEMU (DOS emulation) are the main targets for QEMU.
80
81 - Full system emulation. In this mode, QEMU emulates a full system,
82   including a processor and various peripherials. It can also be used to
83   provide virtual hosting of several virtual PC on a single server.
84
85 %description -l pl.UTF-8
86 QEMU to szybki(!) emulator procesora. Poprzez użycie dynamicznego
87 tłumaczenia osiąga rozsądną szybkość i jest łatwy do przeportowania,
88 aby działał na kolejnych procesorach. QEMU ma dwa tryby pracy:
89
90 - Emulacja trybu użytkownika. W tym trybie QEMU może uruchamiać
91   procesy linuksowe skompilowane dla jednego procesora na innym
92   procesorze. Linuksowe wywołania systemowe są tłumaczone ze względu na
93   niezgodność kolejności bajtów w słowie i 32/64-bitowego rozmiaru
94   słowa. Wine (emulacja Windows) i DOSEMU (emulacja DOS-a) to główne
95   cele QEMU.
96
97 - Pełna emulacja systemu. W tym trybie QEMU emuluje cały system,
98   włączając w to procesor i różne urządzenia peryferyjne. Może być także
99   używane do wirtualnego hostowania kilku wirtualnych pecetów na
100   pojedynczym serwerze.
101
102 %package  common
103 Summary:        QEMU common files needed by all QEMU targets
104 Group:          Development/Tools
105 Requires:       SDL >= 1.2.1
106 Conflicts:      qemu < 1.0-2
107
108 %description common
109 QEMU is a generic and open source processor emulator which achieves a
110 good emulation speed by using dynamic translation.
111
112 This package provides the common files needed by all QEMU targets.
113
114 %package  img
115 Summary:        QEMU command line tool for manipulating disk images
116 Group:          Development/Tools
117 Conflicts:      qemu < 1.0-2
118
119 %description img
120 This package provides a command line tool for manipulating disk images
121
122 %package user
123 Summary:        QEMU user mode emulation of qemu targets
124 Group:          Development/Tools
125 Requires:       %{name}-common = %{version}-%{release}
126
127 %description user
128 QEMU is a generic and open source processor emulator which achieves a
129 good emulation speed by using dynamic translation.
130
131 This package provides the user mode emulation of QEMU targets.
132
133 %package system-alpha
134 Summary:        QEMU system emulator for alpha
135 Group:          Development/Tools
136 Requires:       %{name}-common = %{version}-%{release}
137
138 %description system-alpha
139 QEMU is a generic and open source processor emulator which achieves a
140 good emulation speed by using dynamic translation.
141
142 This package provides the system emulator for alpha.
143
144 %package system-arm
145 Summary:        QEMU system emulator for arm
146 Group:          Development/Tools
147 Requires:       %{name}-common = %{version}-%{release}
148
149 %description system-arm
150 QEMU is a generic and open source processor emulator which achieves a
151 good emulation speed by using dynamic translation.
152
153 This package provides the system emulator for arm.
154
155 %package system-cris
156 Summary:        QEMU system emulator for cris
157 Group:          Development/Tools
158 Requires:       %{name}-common = %{version}-%{release}
159
160 %description system-cris
161 QEMU is a generic and open source processor emulator which achieves a
162 good emulation speed by using dynamic translation.
163
164 This package provides the system emulator for cris.
165
166 %package system-lm32
167 Summary:        QEMU system emulator for lm32
168 Group:          Development/Tools
169 Requires:       %{name}-common = %{version}-%{release}
170
171 %description system-lm32
172 QEMU is a generic and open source processor emulator which achieves a
173 good emulation speed by using dynamic translation.
174
175 This package provides the system emulator for lm32.
176
177 %package system-m68k
178 Summary:        QEMU system emulator for m68k
179 Group:          Development/Tools
180 Requires:       %{name}-common = %{version}-%{release}
181
182 %description system-m68k
183 QEMU is a generic and open source processor emulator which achieves a
184 good emulation speed by using dynamic translation.
185
186 This package provides the system emulator for m68k.
187
188 %package system-microblaze
189 Summary:        QEMU system emulator for microblaze
190 Group:          Development/Tools
191 Requires:       %{name}-common = %{version}-%{release}
192
193 %description system-microblaze
194 QEMU is a generic and open source processor emulator which achieves a
195 good emulation speed by using dynamic translation.
196
197 This package provides the system emulator for microblaze.
198
199 %package system-mips
200 Summary:        QEMU system emulator for mips
201 Group:          Development/Tools
202 Requires:       %{name}-common = %{version}-%{release}
203
204 %description system-mips
205 QEMU is a generic and open source processor emulator which achieves a
206 good emulation speed by using dynamic translation.
207
208 This package provides the system emulator for mips.
209
210 %package system-ppc
211 Summary:        QEMU system emulator for ppc
212 Group:          Development/Tools
213 Requires:       %{name}-common = %{version}-%{release}
214
215 %description system-ppc
216 QEMU is a generic and open source processor emulator which achieves a
217 good emulation speed by using dynamic translation.
218
219 This package provides the system emulator for ppc.
220
221 %package system-s390x
222 Summary:        QEMU system emulator for s390x
223 Group:          Development/Tools
224 Requires:       %{name}-common = %{version}-%{release}
225
226 %description system-s390x
227 QEMU is a generic and open source processor emulator which achieves a
228 good emulation speed by using dynamic translation.
229
230 This package provides the system emulator for s390x.
231
232 %package system-sh4
233 Summary:        QEMU system emulator for sh4
234 Group:          Development/Tools
235 Requires:       %{name}-common = %{version}-%{release}
236
237 %description system-sh4
238 QEMU is a generic and open source processor emulator which achieves a
239 good emulation speed by using dynamic translation.
240
241 This package provides the system emulator for sh4.
242
243 %package system-sparc
244 Summary:        QEMU system emulator for sparc
245 Group:          Development/Tools
246 Requires:       %{name}-common = %{version}-%{release}
247
248 %description system-sparc
249 QEMU is a generic and open source processor emulator which achieves a
250 good emulation speed by using dynamic translation.
251
252 This package provides the system emulator for sparc/sparc64.
253
254 %package system-x86
255 Summary:        QEMU system emulator for x86
256 Group:          Development/Tools
257 Requires:       %{name}-common = %{version}-%{release}
258 Obsoletes:      qemu-kvm
259
260 %description system-x86
261 QEMU is a generic and open source processor emulator which achieves a
262 good emulation speed by using dynamic translation.
263
264 This package provides the system emulator for x86. When being run in a
265 x86 machine that supports it, this package also provides the KVM
266 virtualization platform.
267
268 %package system-xtensa
269 Summary:        QEMU system emulator for xtensa
270 Group:          Development/Tools
271 Requires:       %{name}-common = %{version}-%{release}
272
273 %description system-xtensa
274 QEMU is a generic and open source processor emulator which achieves a
275 good emulation speed by using dynamic translation.
276
277 This package provides the system emulator for xtensa.
278
279 %prep
280 %setup -q
281 %patch0 -p1
282 %{?with_nosdlgui:%patch6 -p1}
283 #patch8 -p1
284 %patch17 -p0
285
286 %{__sed} -i -e 's/sdl_static=yes/sdl_static=no/' configure
287 %{__sed} -i 's/.*MAKE) -C kqemu$//' Makefile
288
289 # cannot use optflags on x86 - they cause "no register to spill" errors
290 %if %{with cflags_passing}
291 %{__sed} -i -e 's/-g $CFLAGS/-Wall %{rpmcflags}/' configure
292 %else
293 %{__sed} -i 's/-g $CFLAGS/-Wall -fno-var-tracking-assignments/' configure
294 %endif
295
296 # workaround for conflict with alsa/error.h
297 ln -s ../error.h qapi/error.h
298
299 %build
300 # --extra-cflags don't work (overridden by CFLAGS in Makefile*)
301 # they can be passed if the cflags_passing bcond is used
302 ./configure \
303         --sysconfdir=%{_sysconfdir} \
304         --prefix=%{_prefix} \
305         --cc="%{__cc}" \
306         --host-cc="%{__cc}" \
307         --enable-mixemu \
308         --audio-drv-list="alsa" \
309         --interp-prefix=%{_libdir}/%{name}
310 %{__make} V=1
311
312 %install
313 rm -rf $RPM_BUILD_ROOT
314
315 %{__make} install \
316         DESTDIR=$RPM_BUILD_ROOT
317
318 install -d $RPM_BUILD_ROOT%{_sysconfdir}
319 cat <<'EOF' > $RPM_BUILD_ROOT%{_sysconfdir}/qemu-ifup
320 #!/bin/sh
321
322 EOF
323
324 # already packaged
325 rm -rf $RPM_BUILD_ROOT%{_docdir}/qemu/qemu-{doc,tech}.html
326
327 %clean
328 rm -rf $RPM_BUILD_ROOT
329
330 %files
331 %defattr(644,root,root,755)
332
333 %files common
334 %defattr(644,root,root,755)
335 %doc README qemu-doc.html qemu-tech.html
336 %attr(755,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/qemu-ifup
337 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/qemu/target-*.conf
338 %dir %{_sysconfdir}/qemu
339 %attr(755,root,root) %{_bindir}/qemu-nbd
340 %{_mandir}/man1/qemu.1*
341 %{_mandir}/man8/qemu-nbd.8*
342
343 %dir %{_datadir}/qemu
344 %{_datadir}/%{name}/keymaps
345 # various bios images
346 %{_datadir}/%{name}/*.bin
347 %{_datadir}/%{name}/*.rom
348 %{_datadir}/%{name}/*.dtb
349 %{_datadir}/%{name}/openbios-ppc
350 %{_datadir}/%{name}/openbios-sparc*
351 %{_datadir}/%{name}/palcode-clipper
352
353 %files img
354 %defattr(644,root,root,755)
355 %attr(755,root,root) %{_bindir}/qemu-img
356 %{_mandir}/man1/qemu-img.1*
357
358 %files user
359 %defattr(644,root,root,755)
360 %attr(755,root,root) %{_bindir}/qemu-x86_64
361 %attr(755,root,root) %{_bindir}/qemu-i386
362 %attr(755,root,root) %{_bindir}/qemu-alpha
363 %attr(755,root,root) %{_bindir}/qemu-arm
364 %attr(755,root,root) %{_bindir}/qemu-armeb
365 %attr(755,root,root) %{_bindir}/qemu-cris
366 %attr(755,root,root) %{_bindir}/qemu-ga
367 %attr(755,root,root) %{_bindir}/qemu-io
368 %attr(755,root,root) %{_bindir}/qemu-m68k
369 %attr(755,root,root) %{_bindir}/qemu-microblaze
370 %attr(755,root,root) %{_bindir}/qemu-microblazeel
371 %attr(755,root,root) %{_bindir}/qemu-mips
372 %attr(755,root,root) %{_bindir}/qemu-mipsel
373 %attr(755,root,root) %{_bindir}/qemu-ppc
374 %attr(755,root,root) %{_bindir}/qemu-ppc64
375 %attr(755,root,root) %{_bindir}/qemu-ppc64abi32
376 %attr(755,root,root) %{_bindir}/qemu-s390x
377 %attr(755,root,root) %{_bindir}/qemu-sh4
378 %attr(755,root,root) %{_bindir}/qemu-sh4eb
379 %attr(755,root,root) %{_bindir}/qemu-sparc
380 %attr(755,root,root) %{_bindir}/qemu-sparc32plus
381 %attr(755,root,root) %{_bindir}/qemu-sparc64
382 %attr(755,root,root) %{_bindir}/qemu-unicore32
383
384 %files system-alpha
385 %defattr(644,root,root,755)
386 %attr(755,root,root) %{_bindir}/qemu-system-alpha
387
388 %files system-arm
389 %defattr(644,root,root,755)
390 %attr(755,root,root) %{_bindir}/qemu-system-arm
391
392 %files system-cris
393 %defattr(644,root,root,755)
394 %attr(755,root,root) %{_bindir}/qemu-system-cris
395
396 %files system-lm32
397 %defattr(644,root,root,755)
398 %attr(755,root,root) %{_bindir}/qemu-system-lm32
399
400 %files system-m68k
401 %defattr(644,root,root,755)
402 %attr(755,root,root) %{_bindir}/qemu-system-m68k
403
404 %files system-microblaze
405 %defattr(644,root,root,755)
406 %attr(755,root,root) %{_bindir}/qemu-system-microblaze
407 %attr(755,root,root) %{_bindir}/qemu-system-microblazeel
408
409 %files system-mips
410 %defattr(644,root,root,755)
411 %attr(755,root,root) %{_bindir}/qemu-system-mips
412 %attr(755,root,root) %{_bindir}/qemu-system-mipsel
413 %attr(755,root,root) %{_bindir}/qemu-system-mips64
414 %attr(755,root,root) %{_bindir}/qemu-system-mips64el
415
416 %files system-ppc
417 %defattr(644,root,root,755)
418 %attr(755,root,root) %{_bindir}/qemu-system-ppc
419 %attr(755,root,root) %{_bindir}/qemu-system-ppc64
420 %attr(755,root,root) %{_bindir}/qemu-system-ppcemb
421
422 %files system-s390x
423 %defattr(644,root,root,755)
424 %attr(755,root,root) %{_bindir}/qemu-system-s390x
425
426 %files system-sh4
427 %defattr(644,root,root,755)
428 %attr(755,root,root) %{_bindir}/qemu-system-sh4
429 %attr(755,root,root) %{_bindir}/qemu-system-sh4eb
430
431 %files system-sparc
432 %defattr(644,root,root,755)
433 %attr(755,root,root) %{_bindir}/qemu-system-sparc
434 %attr(755,root,root) %{_bindir}/qemu-system-sparc64
435
436 %files system-x86
437 %defattr(644,root,root,755)
438 %attr(755,root,root) %{_bindir}/qemu-system-i386
439 %attr(755,root,root) %{_bindir}/qemu-system-x86_64
440
441 %files system-xtensa
442 %defattr(644,root,root,755)
443 %attr(755,root,root) %{_bindir}/qemu-system-xtensa
444 %attr(755,root,root) %{_bindir}/qemu-system-xtensaeb
This page took 0.052116 seconds and 4 git commands to generate.