1 # Maintainer: David Runge <dvzrv@archlinux.org>
2 # Contributor: Tobias Powalowski <tpowa@archlinux.org>
3 # Contributor: Sébastien "Seblu" Luttringer <seblu@seblu.net>
8 qemu-audio-{alsa,dbus,jack,oss,pa,sdl,spice}
9 qemu-block-{curl,dmg,gluster,iscsi,nfs,rbd,ssh}
10 qemu-chardev-{baum,spice}
13 qemu-hw-display-{qxl,virtio-{gpu{,-{gl,pci,pci-gl}},vga{,-gl}}}
14 qemu-hw-s390x-virtio-gpu-ccw
15 qemu-hw-usb-{host,redirect,smartcard}
18 qemu-system-{aarch64,alpha,arm,avr,cris,hppa,m68k,microblaze,mips,nios2,or1k,ppc,riscv,rx,s390x,sh4,sparc,tricore,x86,xtensa}
21 qemu-ui-{curses,dbus,egl-headless,gtk,opengl,sdl,spice-{app,core}}
25 qemu-{base,desktop,emulators-full,full}
29 pkgdesc="A generic and open source machine emulator and virtualizer"
31 url="https://www.qemu.org/"
32 license=(GPL2 LGPL2.1)
33 # TODO: consider providing rdma-core
34 # TODO: consider providing lzfse
35 # TODO: package systemtap
36 # TODO: package openbios for qemu-system-{ppc,sparc}
37 # TODO: package /usr/share/qemu/{efi,pxe}-* for qemu (ipxe)
38 # TODO: package /usr/share/qemu/slof.bin for qemu-system-ppc (slof)
39 # TODO: package /usr/share/qemu/sgabios.bin for qemu-system-x86 (sgabios)
40 # TODO: package static libs of glib2 and pcre for qemu-user-static
85 python-sphinx_rtd_theme
99 # NOTE: currently the debug package for qemu >= 7.0.0 contains an invalid /build dir
102 https://download.qemu.org/qemu-$pkgver.tar.xz{,.sig}
107 99-qemu-guest-agent.rules
108 qemu-7.0.0-virtio-scsi_fix_ctrl_and_event_handler_functions_in_dataplane_mode.patch::https://github.com/qemu/qemu/commit/2f743ef6366c2df4ef51ef3ae318138cdc0125ab.patch
109 qemu-7.0.0-virtio-scsi_dont_waste_cpu_polling_the_eventvirtqueue.patch::https://github.com/qemu/qemu/commit/38738f7dbbda90fbc161757b7f4be35b52205552.patch
110 qemu-7.0.0-glibc-2.36.patch
112 sha512sums=('44ecd10c018a3763e1bc87d1d35b98890d0d5636acd69fe9b5cadf5024d5af6a31684d60cbe1c3370e02986434c1fb0ad99224e0e6f6fe7eda169992508157b1'
114 '7b412ffa5dcda47b0a4ec9e2c5e5e1d9eaaaf0a087b7ea3ead3e706ba4c9cafb919beadd088a0299b6f7aab753b81a5eafb545b4842ee5f26646d16544dd02a7'
115 '6e838773d63ae0ffdffe2b891bf611d8f5f3c67a9bc4cbbedf8363c150c2c9971c8e44d92270bc581af40eb0ece02192760bcdd6aee229fff55635f3a4825afa'
116 '985c2c7a6b5217c87a15b45368089ee91b2f9027b070f9eafa448a18b27ae0d9edd964d52e134b9c1f4aeef4d6aae88afd3f454551ca898affef7f9d28b99b8f'
117 'bdf05f99407491e27a03aaf845b7cc8acfa2e0e59968236f10ffc905e5e3d5e8569df496fd71c887da2b5b8d1902494520c7da2d3a8258f7fd93a881dd610c99'
118 '93b905046fcea8a0a89513b9259c222494ab3b91319dde23baebcb40dc17376a56661b159b99785d6e816831974a0f3cbd7b2f7d89e5fc3c258f88f4492f3839'
119 'e6208f10db9277c217fe4e1ff57cbb9701bd6fce2f75ed01b5ed5ad78dd0d24d65371ef8d4f6e3a33ad0d280eba6614389795f8c8655ad15162411adc5ec642e'
120 'a80b2b9a84ecdfa352b6c35f5db547e670e4e5efd485cade893c04b4e5265439cc844fefbd27c050e63c16f727115d513b33a4d50400e1a8ee9fb646f0c0c61c'
121 'aa976c84d8524bb40ada506f80c01384c49f2e48fba889b0e535285aee700937886e935d18ad83b38093ba07f38be50b0fae76a0b29fd487daeac31e3221381e')
122 b2sums=('ceda6d9f1a585298bd49fed61e8bb35f0064ad8388a9f979c8bd68a38bfe1a47c5bb055e5f74f970c2c440957042b9de4a861524120040c56e4cd8b56c5cfb68'
124 'b1eca364aa60f130ff5e649f5d004d3fcb75356d3421a4542efdfc410d39b40d9434d15e1dd7bbdbd315cb72b5290d3ea5f77f9c41961a5601cd28ef7bbe72e8'
125 '2102e4a34e11e406e9606c97e026e7b92e887e296a7f77b9cede1b37119d0df33735f3588628167b2b8e32244c196c491bfab623e2caddac9014d445aa2a6d98'
126 '69177b962d2fda20cafdbc6226fd017b5ca5a0f69f866d055dc1c744b7b2955059f47c693cfb5b4c863ec159569fdabd4327ab4b8a95566a68cd8ce38e339c7a'
127 '3559fe9c4f744194939770047a0a02d07ff791c845a80726d0bc7b8c4801ed5f11150e7d5adab813844b3dab1cf38c3a5a87fb6efbb8fc9dccdda9fa56409ed8'
128 'a9a2bdfeeb44eb86cbe88ac7c65f72800bdb2fd5cecb02f3a258cf9470b52832180aab43c89d481f7fd4d067342a9a27dd6c8a94d625b95d6e2b912e47d274e7'
129 '70aa62f9101b284248d098868031123e290030607c079475e715e2fde267b217c4f1971ba1f666130d8f427334cb5bf6fbabd87f7b7b83ecc3879a09a786aa90'
130 'f6dc6eec36e52ff230247f949651464ff4fbd8d77a295b16d78e290dd90f31f998c10c8490ec439fef10e6a69679e708d7ebf3ddca344c510c0b19b61db20bba'
131 'a7626f5ba67d628d74c909d84d9862e56435a1ace373fe5dedf93cd7d6ae56809b36cbcc271d156a6c3d5cac2a3824ffe2cb49e8f56d6bd964a7c416327f857e')
132 validpgpkeys=('CEACC9E15534EBABB82D3FA03353C9CEF108B584') # Michael Roth <flukshun@gmail.com>
138 glib2 libgio-2.0.so libglib-2.0.so libgmodule-2.0.so
142 libjpeg-turbo libjpeg.so
145 libseccomp libseccomp.so
152 pixman libpixman-1.so
160 # TODO: qemu-user-static
161 # 'qemu-user-static: for static user mode emulation of QEMU targets'
163 'qemu-audio-alsa: for ALSA audio driver'
164 'qemu-audio-dbus: for D-Bus audio driver'
165 'qemu-audio-jack: for JACK audio driver'
166 'qemu-audio-oss: for OSS audio driver'
167 'qemu-audio-pa: for PulseAudio audio driver'
168 'qemu-audio-sdl: for SDL audio driver'
169 'qemu-audio-spice: for spice audio driver'
170 'qemu-block-curl: for curl block driver'
171 'qemu-block-dmg: for DMG block driver'
172 'qemu-block-gluster: for Gluster block driver'
173 'qemu-block-iscsi: for iSCSI block driver'
174 'qemu-block-nfs: for NFS block driver'
175 'qemu-block-rbd: for Ceph/RBD block driver'
176 'qemu-block-ssh: for SSH block driver'
177 'qemu-chardev-baum: for Baum chardev driver'
178 'qemu-chardev-spice: for spice chardev driver'
179 'qemu-docs: for documentation'
180 'qemu-hw-display-qxl: for QXL display device'
181 'qemu-hw-display-virtio-gpu-gl: for virtio-gpu-gl display device'
182 'qemu-hw-display-virtio-gpu: for virtio-gpu display device'
183 'qemu-hw-display-virtio-gpu-pci: for virtio-gpu-pci display device'
184 'qemu-hw-display-virtio-gpu-pci-gl: for virtio-gpu-pci-gl display device'
185 'qemu-hw-display-virtio-vga: for virtio-gpu-vga display device'
186 'qemu-hw-display-virtio-vga-gl: for virtio-gpu-vga-gl display device'
187 'qemu-hw-s390x-virtio-gpu-ccw: for s390x-virtio-gpu-ccw display device'
188 'qemu-hw-usb-host: for USB host device'
189 'qemu-hw-usb-redirect: for usbredir device'
190 'qemu-hw-usb-smartcard: for USB smartcard device'
191 'qemu-img: for manipulating disk images'
192 'qemu-pr-helper: for persistent reservation utility'
193 'qemu-system-aarch64: for AARCH64 system emulator'
194 'qemu-system-alpha: for Alpha system emulator'
195 'qemu-system-arm: for ARM system emulator'
196 'qemu-system-avr: for AVR system emulator'
197 'qemu-system-cris: for CRIS system emulator'
198 'qemu-system-hppa: for HPPA system emulator'
199 'qemu-system-m68k: for ColdFire (m68k) system emulator'
200 'qemu-system-microblaze: for Microblaze system emulator'
201 'qemu-system-mips: for MIPS system emulator'
202 'qemu-system-nios2: for nios2 system emulator'
203 'qemu-system-or1k: for OpenRisc32 system emulator'
204 'qemu-system-ppc: for PPC system emulator'
205 'qemu-system-riscv: for RISC-V system emulator'
206 'qemu-system-rx: for RX system emulator'
207 'qemu-system-s390x: for S390 system emulator'
208 'qemu-system-sh4: for SH4 system emulator'
209 'qemu-system-sparc: for SPARC system emulator'
210 'qemu-system-tricore: for tricore system emulator'
211 'qemu-system-x86: for x86 system emulator'
212 'qemu-system-xtensa: for Xtensa system emulator'
213 'qemu-tests: for QEMU tests'
214 'qemu-tools: for QEMU tools'
215 'qemu-ui-curses: for curses UI driver'
216 'qemu-ui-dbus: for D-Bus UI driver'
217 'qemu-ui-egl-headless: for EGL headless UI driver'
218 'qemu-ui-gtk: for GTK UI driver'
219 'qemu-ui-opengl: for OpenGL UI driver'
220 'qemu-ui-sdl: for SDL UI driver'
221 'qemu-ui-spice-app: for spice app UI driver'
222 'qemu-ui-spice-core: for spice core UI driver'
223 'qemu-user: for user mode emulation of QEMU targets'
224 'qemu-vhost-user-gpu: for vhost-user-gpu display device'
225 'qemu-virtiofsd: for virtio-fs shared filesystem daemon'
226 'samba: for SMB/CIFS server support'
230 local p="$1" f d; shift
232 d="$srcdir/$p/${f#$pkgdir/}"
233 mkdir -p "$(dirname "$d")"
235 rmdir -p --ignore-fail-on-non-empty "$(dirname "$f")"
240 # extract licenses for TCG
241 sed -n '1,23p' $pkgbase-$pkgver/tcg/tcg-internal.h > tcg.LICENSE.MIT
242 sed -n '1,23p' $pkgbase-$pkgver/tcg/arm/tcg-target.c.inc > tcg-arm.LICENSE.MIT
243 sed -n '1,23p' $pkgbase-$pkgver/tcg/tci/tcg-target.h > tci.LICENSE.MIT
245 # install qemu-pr-helper.socket to sockets.target
246 sed -e 's/multi-user.target/sockets.target/g' -i $pkgbase-$pkgver/contrib/systemd/qemu-pr-helper.socket
250 mkdir -vp build-static
252 # fix issues with virtio-scsi https://lists.gnu.org/archive/html/qemu-devel/2022-04/msg04724.html
253 patch -Np1 -d $pkgbase-$pkgver -i ../qemu-7.0.0-virtio-scsi_fix_ctrl_and_event_handler_functions_in_dataplane_mode.patch
254 patch -Np1 -d $pkgbase-$pkgver -i ../qemu-7.0.0-virtio-scsi_dont_waste_cpu_polling_the_eventvirtqueue.patch
256 patch -Np1 -d $pkgbase-$pkgver -i ../qemu-7.0.0-glibc-2.36.patch
260 # Build only minimal debug info to reduce size
265 ../$pkgbase-$pkgver/configure \
268 --libexecdir=/usr/lib/qemu \
269 --localstatedir=/var \
270 --docdir=/usr/share/doc/qemu \
273 --enable-slirp=system \
275 --smbd=/usr/bin/smbd \
276 --tls-priority=@QEMU,SYSTEM \
277 --with-coroutine=ucontext
281 # TODO: qemu-user-static
284 # ../$pkgbase-$pkgver/configure \
286 # --enable-linux-user \
288 # --disable-install-blobs \
294 package_qemu-common() {
296 depends=(gcc-libs glib2 libglib-2.0.so libgmodule-2.0.so hicolor-icon-theme libcap-ng libcap-ng.so)
297 install=$pkgname.install
300 meson install -C build --destdir "$pkgdir"
302 install -vdm 755 "$pkgdir/usr/lib/binfmt.d/"
303 $pkgbase-$pkgver/scripts/qemu-binfmt-conf.sh --systemd ALL --exportdir "$pkgdir/usr/lib/binfmt.d/" --qemu-path "/usr/bin"
305 # TODO: qemu-user-static
306 # for _conf in "$pkgdir/usr/lib/binfmt.d/"*; do
307 # cat "$_conf" | tr -d '\n' | sed "s/:$/-static:F/" > "${_conf//.conf/-static.conf}"
310 # meson install -C build-static --destdir "$pkgdir"
311 # for _src in "$pkgdir/usr/bin/qemu-"*; do
312 # mv -v "$_src" "$pkgdir/usr/bin/$(basename "$_src")-static"
315 install -vDm 644 bridge.conf -t "$pkgdir/etc/$pkgbase/"
316 install -vDm 644 $pkgbase-$pkgver/$pkgbase.sasl "$pkgdir/etc/sasl2/$pkgbase.conf"
317 install -vDm 644 $pkgbase-$pkgver/LICENSE *LICENSE* -t "$pkgdir/usr/share/licenses/$pkgbase/"
318 install -vDm 644 $pkgbase-sysusers.conf "$pkgdir/usr/lib/sysusers.d/$pkgbase.conf"
320 # bridge_helper needs suid: https://bugs.archlinux.org/task/32565
321 chmod u+s "$pkgdir/usr/lib/qemu/qemu-bridge-helper"
323 # remoe invalid directory
324 rm -frv "$pkgdir/var"
326 # remove unneeded files
327 find "$pkgdir" -name .buildinfo -delete
329 # remove files provided by seabios
330 rm -fv "$pkgdir/usr/share/$pkgbase/"{bios,vgabios}*
332 # remove files provided by edk2-{armvirt,ovmf}
333 rm -fv "$pkgdir/usr/share/$pkgbase/"edk2-*
334 rm -frv "$pkgdir/usr/share/$pkgbase/firmware"
337 # create man page symlinks for all system emulators
338 cd "$pkgdir/usr/share/man/man1"
339 for _name in qemu-system-{aarch64,alpha,arm,avr,cris,hppa,i386,m68k,microblaze{,el},mips{,64,64el,el},nios2,or1k,ppc{,64},riscv{32,64},rx,s390x,sh4{,eb},sparc{,64},tricore,x86_64,xtensa{,eb}}; do
340 ln -sv $pkgbase.1.gz "$pkgdir/usr/share/man/man1/$_name.1.gz"
345 # pick files for all split packages
348 _pick qemu-guest-agent usr/bin/qemu-ga
349 _pick qemu-guest-agent usr/share/man/man8/qemu-ga.8*
351 _pick qemu-audio-alsa usr/lib/qemu/audio-alsa.so
352 _pick qemu-audio-dbus usr/lib/qemu/audio-dbus.so
353 _pick qemu-audio-jack usr/lib/qemu/audio-jack.so
354 _pick qemu-audio-oss usr/lib/qemu/audio-oss.so
355 _pick qemu-audio-pa usr/lib/qemu/audio-pa.so
356 _pick qemu-audio-sdl usr/lib/qemu/audio-sdl.so
357 _pick qemu-audio-spice usr/lib/qemu/audio-spice.so
359 _pick qemu-block-curl usr/lib/qemu/block-curl.so
360 _pick qemu-block-dmg usr/lib/qemu/block-dmg*.so
361 _pick qemu-block-gluster usr/lib/qemu/block-gluster.so
362 _pick qemu-block-iscsi usr/lib/qemu/block-iscsi.so
363 _pick qemu-block-nfs usr/lib/qemu/block-nfs.so
364 _pick qemu-block-rbd usr/lib/qemu/block-rbd.so
365 _pick qemu-block-ssh usr/lib/qemu/block-ssh.so
367 _pick qemu-chardev-baum usr/lib/qemu/chardev-baum.so
368 _pick qemu-chardev-spice usr/lib/qemu/chardev-spice.so
370 _pick qemu-docs usr/share/doc/qemu
372 _pick qemu-hw-display-qxl usr/lib/qemu/hw-display-qxl.so
373 _pick qemu-hw-display-virtio-gpu usr/lib/qemu/hw-display-virtio-gpu.so
374 _pick qemu-hw-display-virtio-gpu-gl usr/lib/qemu/hw-display-virtio-gpu-gl.so
375 _pick qemu-hw-display-virtio-gpu-pci usr/lib/qemu/hw-display-virtio-gpu-pci.so
376 _pick qemu-hw-display-virtio-gpu-pci-gl usr/lib/qemu/hw-display-virtio-gpu-pci-gl.so
377 _pick qemu-hw-display-virtio-vga usr/lib/qemu/hw-display-virtio-vga.so
378 _pick qemu-hw-display-virtio-vga-gl usr/lib/qemu/hw-display-virtio-vga-gl.so
380 _pick qemu-hw-usb-host usr/lib/qemu/hw-usb-host.so
381 _pick qemu-hw-usb-redirect usr/lib/qemu/hw-usb-redirect.so
382 _pick qemu-hw-usb-smartcard usr/lib/qemu/hw-usb-smartcard.so
384 _pick qemu-img usr/bin/qemu-{img,io,nbd,storage-daemon}
385 _pick qemu-img usr/share/man/man1/qemu-{img,storage-daemon}.1*
386 _pick qemu-img usr/share/man/man7/qemu-storage-daemon-qmp-ref.7*
387 _pick qemu-img usr/share/man/man8/qemu-nbd.8*
389 _pick qemu-pr-helper usr/bin/qemu-pr-helper
390 _pick qemu-pr-helper usr/share/man/man8/qemu-pr-helper.8*
392 _pick qemu-hw-s390x-virtio-gpu-ccw usr/lib/qemu/hw-s390x-virtio-gpu-ccw.so
394 _pick qemu-system-aarch64 usr/bin/qemu-system-aarch64
395 _pick qemu-system-aarch64 usr/share/man/man1/qemu-system-aarch64.1*
397 _pick qemu-system-alpha usr/bin/qemu-system-alpha
398 _pick qemu-system-alpha usr/share/qemu/palcode-clipper
399 _pick qemu-system-alpha usr/share/man/man1/qemu-system-alpha.1*
401 _pick qemu-system-arm usr/bin/qemu-system-arm
402 _pick qemu-system-arm usr/share/qemu/npcm7xx_bootrom.bin
403 _pick qemu-system-arm usr/share/man/man1/qemu-system-arm.1*
405 _pick qemu-system-avr usr/bin/qemu-system-avr
406 _pick qemu-system-avr usr/share/man/man1/qemu-system-avr.1*
408 _pick qemu-system-cris usr/bin/qemu-system-cris
409 _pick qemu-system-cris usr/share/man/man1/qemu-system-cris.1*
411 _pick qemu-system-hppa usr/bin/qemu-system-hppa
412 _pick qemu-system-hppa usr/share/qemu/hppa-firmware.img
413 _pick qemu-system-hppa usr/share/man/man1/qemu-system-hppa.1*
415 _pick qemu-system-m68k usr/bin/qemu-system-m68k
416 _pick qemu-system-m68k usr/share/man/man1/qemu-system-m68k.1*
418 _pick qemu-system-microblaze usr/bin/qemu-system-microblaze{,el}
419 _pick qemu-system-microblaze usr/share/qemu/petalogix-*.dtb
420 _pick qemu-system-microblaze usr/share/man/man1/qemu-system-microblaze{,el}.1*
422 _pick qemu-system-mips usr/bin/qemu-system-mips{,64,64el,el}
423 _pick qemu-system-mips usr/share/man/man1/qemu-system-mips{,64,64el,el}.1*
425 _pick qemu-system-nios2 usr/bin/qemu-system-nios2
426 _pick qemu-system-nios2 usr/share/man/man1/qemu-system-nios2.1*
428 _pick qemu-system-or1k usr/bin/qemu-system-or1k
429 _pick qemu-system-or1k usr/share/man/man1/qemu-system-or1k.1*
431 _pick qemu-system-ppc usr/bin/qemu-system-ppc{,64}
432 _pick qemu-system-ppc usr/share/qemu/{bamboo,canyonlands}.dtb
433 # NOTE: needs to be replaced by openbios
434 _pick qemu-system-ppc usr/share/qemu/openbios-ppc
435 _pick qemu-system-ppc usr/share/qemu/qemu_vga.ndrv
436 _pick qemu-system-ppc usr/share/qemu/skiboot.lid
437 # NOTE: needs to be replaced by slof
438 _pick qemu-system-ppc usr/share/qemu/slof.bin
439 _pick qemu-system-ppc usr/share/qemu/u-boot.e500
440 _pick qemu-system-ppc usr/share/qemu/u-boot-sam460-20100605.bin
441 _pick qemu-system-ppc usr/share/man/man1/qemu-system-ppc{,64}.1*
443 _pick qemu-system-riscv usr/bin/qemu-system-riscv{32,64}
444 _pick qemu-system-riscv usr/share/qemu/opensbi-riscv{32,64}*.bin
445 _pick qemu-system-riscv usr/share/man/man1/qemu-system-riscv{32,64}.1*
447 _pick qemu-system-rx usr/bin/qemu-system-rx
448 _pick qemu-system-rx usr/share/man/man1/qemu-system-rx.1*
450 _pick qemu-system-s390x usr/bin/qemu-system-s390x
451 _pick qemu-system-s390x usr/share/qemu/s390-{ccw,netboot}.img
452 _pick qemu-system-s390x usr/share/man/man1/qemu-system-s390x.1*
454 _pick qemu-system-sh4 usr/bin/qemu-system-sh4{,eb}
455 _pick qemu-system-sh4 usr/share/man/man1/qemu-system-sh4{,eb}.1*
457 _pick qemu-system-sparc usr/bin/qemu-system-sparc{,64}
458 # NOTE: needs to be replaced by openbios
459 _pick qemu-system-sparc usr/share/qemu/openbios-sparc{32,64}
460 _pick qemu-system-sparc usr/share/qemu/QEMU,{cgthree,tcx}.bin
461 _pick qemu-system-sparc usr/share/man/man1/qemu-system-sparc{,64}.1*
463 _pick qemu-system-tricore usr/bin/qemu-system-tricore
464 _pick qemu-system-tricore usr/share/man/man1/qemu-system-tricore.1*
466 _pick qemu-system-x86 usr/bin/qemu-system-{i386,x86_64}
467 _pick qemu-system-x86 usr/lib/qemu/accel-tcg-{i386,x86_64}.so
468 _pick qemu-system-x86 usr/share/qemu/{kvmvapic,linuxboot,multiboot{,_dma},pvh}.bin
469 _pick qemu-system-x86 usr/share/qemu/qboot.rom
470 # NOTE: needs to be replaced by sgabios
471 _pick qemu-system-x86 usr/share/qemu/sgabios.bin
472 _pick qemu-system-x86 usr/share/man/man1/qemu-system-{i386,x86_64}.1*
474 _pick qemu-system-xtensa usr/bin/qemu-system-xtensa{,eb}
475 _pick qemu-system-xtensa usr/share/man/man1/qemu-system-xtensa{,eb}.1*
477 _pick qemu-tests usr/lib/qemu/accel-qtest-*.so
479 _pick qemu-tools usr/bin/{elf2dmp,qemu-{edid,keymap}}
480 _pick qemu-tools usr/share/qemu/trace-events-all
482 _pick qemu-ui-curses usr/lib/qemu/ui-curses.so
483 _pick qemu-ui-dbus usr/lib/qemu/ui-dbus.so
484 _pick qemu-ui-egl-headless usr/lib/qemu/ui-egl-headless.so
485 _pick qemu-ui-gtk usr/lib/qemu/ui-gtk.so
486 _pick qemu-ui-opengl usr/lib/qemu/ui-opengl.so
487 _pick qemu-ui-sdl usr/lib/qemu/ui-sdl.so
488 _pick qemu-ui-spice-app usr/lib/qemu/ui-spice-app.so
489 _pick qemu-ui-spice-core usr/lib/qemu/ui-spice-core.so
491 # _pick qemu-user-static usr/bin/qemu-*-static
492 # _pick qemu-user-static usr/lib/binfmt.d/*-static.conf
494 _pick qemu-user usr/bin/qemu-{aarch64{,_be},alpha,arm{,eb},cris,hexagon,hppa,i386,m68k,microblaze{,el},mips{,64,64el,el,n32,n32el},nios2,or1k,ppc{,64,64le},riscv{32,64},s390x,sh4{,eb},sparc{,32plus,64},x86_64,xtensa{,eb}}
495 _pick qemu-user usr/lib/binfmt.d/*.conf
497 _pick qemu-vhost-user-gpu usr/lib/qemu/vhost-user-gpu
498 _pick qemu-vhost-user-gpu usr/share/qemu/vhost-user/50-qemu-gpu.json
500 _pick qemu-virtiofsd usr/lib/qemu/virtiofsd
501 _pick qemu-virtiofsd usr/share/man/man1/virtiofsd.1*
502 _pick qemu-virtiofsd usr/share/qemu/vhost-user/50-qemu-virtiofsd.json
506 package_qemu-audio-alsa() {
507 pkgdesc="QEMU ALSA audio driver"
508 depends=(alsa-lib libasound.so glibc qemu-common)
509 mv -v $pkgname/* "$pkgdir"
512 package_qemu-audio-dbus() {
513 pkgdesc="QEMU D-Bus audio driver"
514 depends=(gcc-libs glib2 libgio-2.0.so libgobject-2.0.so libglib-2.0.so glibc qemu-common)
515 mv -v $pkgname/* "$pkgdir"
518 package_qemu-audio-jack() {
519 pkgdesc="QEMU JACK audio driver"
520 depends=(jack libjack.so glibc qemu-common)
521 mv -v $pkgname/* "$pkgdir"
524 package_qemu-audio-oss() {
525 pkgdesc="QEMU OSS audio driver"
526 depends=(glibc qemu-common)
527 mv -v $pkgname/* "$pkgdir"
530 package_qemu-audio-pa() {
531 pkgdesc="QEMU PulseAudio audio driver"
532 depends=(glibc libpulse libpulse.so qemu-common)
533 mv -v $pkgname/* "$pkgdir"
536 package_qemu-audio-sdl() {
537 pkgdesc="QEMU SDL audio driver"
538 depends=(glibc qemu-common sdl2)
539 mv -v $pkgname/* "$pkgdir"
542 package_qemu-audio-spice() {
543 pkgdesc="QEMU spice audio driver"
544 depends=(glibc qemu-common qemu-ui-spice-core spice libspice-server.so)
545 mv -v $pkgname/* "$pkgdir"
548 package_qemu-block-curl() {
549 pkgdesc="QEMU curl block driver"
550 depends=(curl libcurl.so gcc-libs glibc qemu-common)
551 mv -v $pkgname/* "$pkgdir"
554 package_qemu-block-dmg() {
555 pkgdesc="QEMU DMG block driver"
556 depends=(bzip2 libbz2.so glibc qemu-common)
557 mv -v $pkgname/* "$pkgdir"
560 package_qemu-block-gluster() {
561 pkgdesc="QEMU Gluster block driver"
562 depends=(glibc glusterfs qemu-common)
563 mv -v $pkgname/* "$pkgdir"
566 package_qemu-block-iscsi() {
567 pkgdesc="QEMU iSCSI block driver"
568 depends=(gcc-libs glibc libiscsi qemu-common)
569 mv -v $pkgname/* "$pkgdir"
572 package_qemu-block-nfs() {
573 pkgdesc="QEMU NFS block driver"
574 depends=(gcc-libs glibc libnfs qemu-common)
575 mv -v $pkgname/* "$pkgdir"
578 package_qemu-block-rbd() {
579 pkgdesc="QEMU Ceph/RBD block driver"
580 depends=(ceph-libs glibc qemu-common)
581 mv -v $pkgname/* "$pkgdir"
584 package_qemu-block-ssh() {
585 pkgdesc="QEMU SSH block driver"
586 depends=(gcc-libs glibc libssh libssh.so qemu-common)
587 mv -v $pkgname/* "$pkgdir"
590 package_qemu-chardev-baum() {
591 pkgdesc="QEMU Baum chardev driver"
592 depends=(brltty libbrlapi.so glibc qemu-common)
593 mv -v $pkgname/* "$pkgdir"
596 package_qemu-chardev-spice() {
597 pkgdesc="QEMU spice chardev driver"
598 depends=(libspice-server.so glibc qemu-common qemu-ui-spice-core)
599 mv -v $pkgname/* "$pkgdir"
602 package_qemu-docs() {
603 pkgdesc+=" - documentation"
604 mv -v $pkgname/* "$pkgdir"
607 package_qemu-guest-agent() {
608 pkgdesc="QEMU Guest Agent"
609 depends=(gcc-libs glib2 libglib-2.0.so libgmodule-2.0.so glibc liburing liburing.so systemd-libs libudev.so)
611 etc/$pkgbase/$pkgbase-ga.conf
612 etc/$pkgbase/fsfreeze-hook
614 install=$pkgname.install
615 mv -v $pkgname/* "$pkgdir"
616 install -vDm 644 $pkgbase-$pkgver/contrib/systemd/$pkgname.service -t "$pkgdir/usr/lib/systemd/system/"
617 install -vDm 644 99-$pkgname.rules -t "$pkgdir/usr/lib/udev/rules.d/"
618 install -vDm 644 $pkgbase-ga.conf -t "$pkgdir/etc/$pkgbase/"
619 install -vDm 644 $pkgbase-$pkgver/scripts/$pkgname/fsfreeze-hook -t "$pkgdir/etc/$pkgbase/"
620 install -vdm 755 "$pkgdir/etc/$pkgbase/fsfreeze-hook.d"
623 package_qemu-hw-display-qxl() {
624 pkgdesc="QEMU QXL display device"
625 depends=(gcc-libs glibc pixman libpixman-1.so qemu-common qemu-ui-spice-core spice libspice-server.so)
626 mv -v $pkgname/* "$pkgdir"
629 package_qemu-hw-display-virtio-gpu() {
630 pkgdesc="QEMU virtio-gpu display device"
631 depends=(glibc pixman libpixman-1.so qemu-common)
632 mv -v $pkgname/* "$pkgdir"
635 package_qemu-hw-display-virtio-gpu-gl() {
636 pkgdesc="QEMU virtio-gpu-gl display device"
637 depends=(glibc qemu-common virglrenderer)
638 mv -v $pkgname/* "$pkgdir"
641 package_qemu-hw-display-virtio-gpu-pci() {
642 pkgdesc="QEMU virtio-gpu-pci display device"
643 depends=(qemu-common)
644 mv -v $pkgname/* "$pkgdir"
647 package_qemu-hw-display-virtio-gpu-pci-gl() {
648 pkgdesc="QEMU virtio-gpu-pci-gl display device"
649 depends=(qemu-common)
650 mv -v $pkgname/* "$pkgdir"
653 package_qemu-hw-display-virtio-vga() {
654 pkgdesc="QEMU virtio-vga display device"
655 depends=(qemu-common)
656 mv -v $pkgname/* "$pkgdir"
659 package_qemu-hw-display-virtio-vga-gl() {
660 pkgdesc="QEMU virtio-vga-gl display device"
661 depends=(qemu-common)
662 mv -v $pkgname/* "$pkgdir"
665 package_qemu-hw-s390x-virtio-gpu-ccw() {
666 pkgdesc="QEMU s390x-virtio-gpu-ccw display device"
667 depends=(qemu-common)
668 mv -v $pkgname/* "$pkgdir"
671 package_qemu-system-aarch64() {
672 pkgdesc="QEMU system emulator for AARCH64"
673 depends=("${_qemu_system_deps[@]}" edk2-armvirt systemd-libs libudev.so)
674 mv -v $pkgname/* "$pkgdir"
677 package_qemu-system-alpha() {
678 pkgdesc="QEMU system emulator for Alpha"
679 depends=("${_qemu_system_deps[@]}" systemd-libs libudev.so)
681 mv -v $pkgname/* "$pkgdir"
684 package_qemu-system-arm() {
685 pkgdesc="QEMU system emulator for ARM"
686 depends=("${_qemu_system_deps[@]}" systemd-libs libudev.so)
688 mv -v $pkgname/* "$pkgdir"
691 package_qemu-system-avr() {
692 pkgdesc="QEMU system emulator for AVR"
693 depends=("${_qemu_system_deps[@]}")
694 mv -v $pkgname/* "$pkgdir"
697 package_qemu-system-cris() {
698 pkgdesc="QEMU system emulator for CRIS"
699 depends=("${_qemu_system_deps[@]}")
700 mv -v $pkgname/* "$pkgdir"
703 package_qemu-system-hppa() {
704 pkgdesc="QEMU system emulator for HPPA"
705 depends=("${_qemu_system_deps[@]}" systemd-libs libudev.so)
707 mv -v $pkgname/* "$pkgdir"
710 package_qemu-system-m68k() {
711 pkgdesc="QEMU system emulator for ColdFire (m68k)"
712 depends=("${_qemu_system_deps[@]}")
713 mv -v $pkgname/* "$pkgdir"
716 package_qemu-system-microblaze() {
717 pkgdesc="QEMU system emulator for Microblaze"
718 depends=("${_qemu_system_deps[@]}")
719 mv -v $pkgname/* "$pkgdir"
722 package_qemu-system-mips() {
723 pkgdesc="QEMU system emulator for MIPS"
724 depends=("${_qemu_system_deps[@]}" systemd-libs libudev.so)
725 mv -v $pkgname/* "$pkgdir"
728 package_qemu-system-nios2() {
729 pkgdesc="QEMU system emulator for nios2"
730 depends=("${_qemu_system_deps[@]}")
731 mv -v $pkgname/* "$pkgdir"
734 package_qemu-system-or1k() {
735 pkgdesc="QEMU system emulator for OpenRisc32"
736 depends=("${_qemu_system_deps[@]}")
737 mv -v $pkgname/* "$pkgdir"
740 package_qemu-system-ppc() {
741 pkgdesc="QEMU system emulator for PPC"
742 # NOTE: will require openbios
743 depends=("${_qemu_system_deps[@]}" systemd-libs libudev.so)
745 mv -v $pkgname/* "$pkgdir"
748 package_qemu-system-riscv() {
749 pkgdesc="QEMU system emulator for RISC-V"
750 depends=("${_qemu_system_deps[@]}" systemd-libs libudev.so)
752 mv -v $pkgname/* "$pkgdir"
755 package_qemu-system-rx() {
756 pkgdesc="QEMU system emulator for RX"
757 depends=("${_qemu_system_deps[@]}")
758 mv -v $pkgname/* "$pkgdir"
761 package_qemu-system-s390x() {
762 pkgdesc="QEMU system emulator for S390"
763 depends=("${_qemu_system_deps[@]}")
765 mv -v $pkgname/* "$pkgdir"
768 package_qemu-system-sh4() {
769 pkgdesc="QEMU system emulator for SH4"
770 depends=("${_qemu_system_deps[@]}" systemd-libs libudev.so)
771 mv -v $pkgname/* "$pkgdir"
774 package_qemu-system-sparc() {
775 pkgdesc="QEMU system emulator for SPARC"
776 # NOTE: will require openbios
777 depends=("${_qemu_system_deps[@]}" systemd-libs libudev.so)
779 mv -v $pkgname/* "$pkgdir"
782 package_qemu-system-tricore() {
783 pkgdesc="QEMU system emulator for tricore"
784 depends=("${_qemu_system_deps[@]}")
785 mv -v $pkgname/* "$pkgdir"
788 package_qemu-system-x86() {
789 pkgdesc="QEMU system emulator for x86"
790 depends=("${_qemu_system_deps[@]}" edk2-ovmf seabios systemd-libs libudev.so)
792 mv -v $pkgname/* "$pkgdir"
795 package_qemu-system-xtensa() {
796 pkgdesc="QEMU system emulator for Xtensa"
797 depends=("${_qemu_system_deps[@]}" systemd-libs libudev.so)
798 mv -v $pkgname/* "$pkgdir"
801 package_qemu-hw-usb-host() {
802 pkgdesc="QEMU USB host device"
803 depends=(glibc libusb libusb-1.0.so qemu-common)
804 mv -v $pkgname/* "$pkgdir"
807 package_qemu-hw-usb-redirect() {
808 pkgdesc="QEMU usbredir device"
809 depends=(gcc-libs glibc qemu-common usbredir)
810 mv -v $pkgname/* "$pkgdir"
813 package_qemu-hw-usb-smartcard() {
814 pkgdesc="QEMU USB smartcard device"
815 depends=(gcc-libs libcacard glib2 libglib-2.0.so glibc qemu-common)
816 mv -v $pkgname/* "$pkgdir"
820 pkgdesc="QEMU tooling for manipulating disk images"
821 depends=(fuse3 gcc-libs glib2 libglib-2.0.so libgmodule-2.0.so glibc gnutls libaio liburing liburing.so pam libpam.so zlib zstd libzstd.so)
822 mv -v $pkgname/* "$pkgdir"
825 package_qemu-pr-helper() {
826 pkgdesc="QEMU persistent reservation utility"
827 depends=(gcc-libs glib2 libglib-2.0.so libgmodule-2.0.so glibc gnutls libcap-ng libcap-ng.so liburing liburing.so multipath-tools pam libpam.so qemu-common)
828 mv -v $pkgname/* "$pkgdir"
829 install -vDm 644 $pkgbase-$pkgver/contrib/systemd/$pkgname.{service,socket} -t "$pkgdir/usr/lib/systemd/system/"
832 package_qemu-tests() {
834 depends=(qemu-common)
835 mv -v $pkgname/* "$pkgdir"
838 package_qemu-tools() {
840 depends=(curl libcurl.so gcc-libs glib2 libglib-2.0.so libgmodule-2.0.so glibc libxkbcommon libxkbcommon.so python qemu-common)
841 mv -v $pkgname/* "$pkgdir"
842 install -vDm 644 $pkgbase-$pkgver/scripts/dump-guest-memory.py -t "$pkgdir/usr/share/$pkgbase/"
843 install -vDm 755 $pkgbase-$pkgver/scripts/simpletrace.py -t "$pkgdir/usr/share/$pkgbase/"
844 install -vDm 644 $pkgbase-$pkgver/scripts/tracetool/*.py -t "$pkgdir/usr/share/$pkgbase/tracetool/"
845 install -vDm 644 $pkgbase-$pkgver/scripts/tracetool/backend/*.py -t "$pkgdir/usr/share/$pkgbase/tracetool/backend/"
846 install -vDm 644 $pkgbase-$pkgver/scripts/tracetool/format/*.py -t "$pkgdir/usr/share/$pkgbase/tracetool/format/"
849 package_qemu-ui-curses() {
850 pkgdesc="QEMU curses UI driver"
851 depends=(gcc-libs glib2 libglib-2.0.so glibc ncurses libncursesw.so qemu-common)
852 mv -v $pkgname/* "$pkgdir"
855 package_qemu-ui-dbus() {
856 pkgdesc="QEMU D-Bus UI driver"
857 depends=(gcc-libs glib2 libgio-2.0.so libgobject-2.0.so libglib-2.0.so glibc libepoxy pixman libpixman-1.so qemu-common)
858 mv -v $pkgname/* "$pkgdir"
861 package_qemu-ui-egl-headless() {
862 pkgdesc="QEMU EGL headless UI driver"
863 depends=(glibc libepoxy qemu-common qemu-ui-opengl)
864 mv -v $pkgname/* "$pkgdir"
867 package_qemu-ui-gtk() {
868 pkgdesc="QEMU GTK UI driver"
872 gdk-pixbuf2 libgdk_pixbuf-2.0.so
873 glib2 libgobject-2.0.so libglib-2.0.so
875 gtk3 libgdk-3.so libgtk-3.so
878 pixman libpixman-1.so
883 mv -v $pkgname/* "$pkgdir"
886 package_qemu-ui-opengl() {
887 pkgdesc="QEMU OpenGL UI driver"
888 depends=(glibc libepoxy mesa pixman libpixman-1.so qemu-common)
889 mv -v $pkgname/* "$pkgdir"
892 package_qemu-ui-sdl() {
893 pkgdesc="QEMU SDL UI driver"
894 depends=(glib2 libglib-2.0.so glibc libx11 pixman libpixman-1.so qemu-common sdl2_image sdl2)
895 mv -v $pkgname/* "$pkgdir"
898 package_qemu-ui-spice-app() {
899 pkgdesc="QEMU spice app UI driver"
900 depends=(glib2 libgio-2.0.so libglib-2.0.so glibc qemu-common qemu-chardev-spice qemu-ui-spice-core)
901 mv -v $pkgname/* "$pkgdir"
904 package_qemu-ui-spice-core() {
905 pkgdesc="QEMU spice core UI driver"
906 depends=(gcc-libs glibc pixman libpixman-1.so qemu-common qemu-ui-opengl spice libspice-server.so)
907 mv -v $pkgname/* "$pkgdir"
910 package_qemu-user() {
911 pkgdesc="QEMU user mode emulation"
912 depends=(gcc-libs glib2 libglib-2.0.so libgmodule-2.0.so glibc gnutls liburing liburing.so qemu-common zlib)
913 mv -v $pkgname/* "$pkgdir"
916 # package_qemu-user-static() {
917 # pkgdesc="QEMU static user mode emulation"
919 # mv -v $pkgname/* "$pkgdir"
922 package_qemu-vhost-user-gpu() {
923 pkgdesc="QEMU vhost-user-gpu display device"
924 depends=(gcc-libs glib2 libglib-2.0.so libgmodule-2.0.so glibc pixman libpixman-1.so mesa qemu-common virglrenderer)
925 mv -v $pkgname/* "$pkgdir"
928 package_qemu-virtiofsd() {
929 pkgdesc="QEMU virtio-fs shared filesystem daemon"
930 depends=(gcc-libs glib2 libglib-2.0.so libgmodule-2.0.so glibc libcap-ng libcap-ng.so libseccomp libseccomp.so qemu-common)
931 mv -v $pkgname/* "$pkgdir"
934 package_qemu-base() {
935 pkgdesc="A basic QEMU setup for headless environments"
939 qemu-block-{curl,dmg,nfs,ssh}
941 qemu-hw-display-{qxl,virtio-gpu{,-{gl,pci,pci-gl}}}
942 qemu-hw-display-virtio-vga{,-gl}
943 qemu-hw-s390x-virtio-gpu-ccw
944 qemu-hw-usb-{host,redirect,smartcard}
949 qemu-ui-{curses,spice-{app,core}}
952 optdepends=("${_qemu_optdepends[@]}")
953 # TODO: remove conflicts/provides/replaces for qemu-headless after 2022-10-01
954 conflicts=(qemu qemu-headless)
955 provides=(qemu=$pkgver qemu-headless)
956 replaces=(qemu-headless)
959 package_qemu-desktop() {
960 pkgdesc="A QEMU setup for desktop environments"
963 qemu-audio-{alsa,dbus,jack,oss,pa,sdl,spice}
964 qemu-block-{curl,dmg,nfs,ssh}
966 qemu-hw-display-{qxl,virtio-gpu{,-{gl,pci,pci-gl}}}
967 qemu-hw-display-virtio-vga{,-gl}
968 qemu-hw-s390x-virtio-gpu-ccw
969 qemu-hw-usb-{host,redirect,smartcard}
974 qemu-ui-{curses,dbus,egl-headless,gtk,opengl,sdl,spice-{app,core}}
978 optdepends=("${_qemu_optdepends[@]}")
980 provides=(qemu=$pkgver)
984 package_qemu-emulators-full() {
985 pkgdesc="All QEMU user mode and system emulators"
987 qemu-system-{aarch64,alpha,arm,avr,cris,hppa,m68k,microblaze,mips,nios2,or1k,ppc,riscv,rx,s390x,sh4,sparc,tricore,x86,xtensa}
990 # TODO: remove conflicts/provides/replaces after 2022-10-01
991 conflicts=(qemu-arch-extra qemu-headless-arch-extra)
992 provides=(qemu-arch-extra qemu-headless-arch-extra)
993 replaces=(qemu-arch-extra qemu-headless-arch-extra)
996 package_qemu-full() {
997 pkgdesc="A full QEMU setup"
1000 qemu-audio-{alsa,dbus,jack,oss,pa,sdl,spice}
1001 qemu-block-{curl,dmg,gluster,iscsi,nfs,rbd,ssh}
1002 qemu-chardev-{baum,spice}
1004 qemu-hw-display-{qxl,virtio-{gpu{,-{gl,pci,pci-gl}},vga{,-gl}}}
1005 qemu-hw-s390x-virtio-gpu-ccw
1006 qemu-hw-usb-{host,redirect,smartcard}
1009 qemu-system-{aarch64,alpha,arm,avr,cris,hppa,m68k,microblaze,mips,nios2,or1k,ppc,riscv,rx,s390x,sh4,sparc,tricore,x86,xtensa}
1012 qemu-ui-{curses,dbus,egl-headless,gtk,opengl,sdl,spice-{app,core}}
1017 optdepends=("${_qemu_optdepends[@]}")
1019 provides=(qemu=$pkgver)
1022 # vim:set ts=2 sw=2 et: