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