Newer
Older
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
# Copyright : Obarun
#------------------------
# Maintainer : Eric Vidal <eric@obarun.org>
# Contributor : Jean-Michel T.Dydak <jean-michel@obarun.org>
#----------------
# Obarun PkgSrc : https://git.obarun.org/pkg/obextra/qemu-base
#--------------------------------------------------------------
# DESCRIPTION ]
pkgbase=qemu
pkgver=7.2.1
pkgrel=2
pkgdesc="A generic and open source machine emulator and virtualizer"
url='https://www.qemu.org/'
pkgname=(
qemu-common
qemu-audio-{alsa,dbus,jack,oss,pa,sdl,spice}
qemu-block-{curl,dmg,gluster,iscsi,nfs,ssh}
qemu-chardev-{baum,spice}
qemu-docs
qemu-guest-agent
qemu-hw-display-{qxl,virtio-{gpu{,-{gl,pci,pci-gl}},vga{,-gl}}}
qemu-hw-s390x-virtio-gpu-ccw
qemu-hw-usb-{host,redirect,smartcard}
qemu-img
qemu-pr-helper
qemu-system-{aarch64,alpha,arm,avr,cris,hppa,loongarch64,m68k,microblaze,mips,nios2,or1k,ppc,riscv,rx,sh4,sparc,tricore,x86,xtensa}
qemu-system-{alpha,arm,hppa,microblaze,ppc,riscv,s390x,sparc,x86}-firmware
qemu-tests
qemu-tools
qemu-ui-{curses,dbus,egl-headless,gtk,opengl,sdl,spice-{app,core}}
qemu-user{,-static}{,-binfmt}
qemu-vhost-user-gpu
qemu-virtiofsd
qemu-{base,desktop,emulators-full,full}
)
source=(
"https://download.qemu.org/${pkgbase}-${pkgver}.tar.xz"{,.sig}
bridge.conf
qemu-ga.conf
qemu-sysusers.conf
65-kvm.rules
99-qemu-guest-agent.rules
# fixes https://gitlab.com/qemu-project/qemu/-/issues/1471
$pkgbase-7.2.0-gen_adcox.patch::https://gitlab.com/qemu-project/qemu/-/commit/60c7dd22e1383754d5f150bc9f7c2785c662a7b6.patch
)
#--------------------
# BUILD PREPARATION ]
prepare() {
# extract licenses for TCG
sed -n '1,23p' $pkgbase-$pkgver/tcg/tcg-internal.h > tcg.LICENSE.MIT
sed -n '1,23p' $pkgbase-$pkgver/tcg/arm/tcg-target.c.inc > tcg-arm.LICENSE.MIT
sed -n '1,23p' $pkgbase-$pkgver/tcg/tci/tcg-target.h > tci.LICENSE.MIT
# create build dir
mkdir -vp build
mkdir -vp build-static
}
#----------------------
# BUILD CONFIGURATION ]
makedepends=(
alsa-lib
brltty
bzip2
cairo
capstone
curl
dtc
fuse3
gcc-libs
gdk-pixbuf2
glib2
glusterfs
gnutls
gtk3
jack
libaio
libbpf
libcacard
libcap-ng
libepoxy
libiscsi
libnfs
libpng
libpulse
libsasl
libseccomp
libslirp
libssh
liburing
libusb
libx11
libxml2
libxkbcommon
lzo
mesa
meson
ncurses
ndctl
numactl
pam
pcre
python
python-sphinx
python-sphinx_rtd_theme
sdl2
sdl2_image
snappy
spice-protocol
spice
usbredir
vde2
virglrenderer
vte3
zlib
zstd
)
#----------------
# BUILD PREPARE ]
_qemu_system_deps=(
capstone
dtc
fuse3
gcc-libs
glibc
glib2
libgio-2.0.so
libglib-2.0.so
libgmodule-2.0.so
gnutls
keyutils
libaio
libbpf
libbpf.so
libjpeg-turbo
libjpeg.so
libpng
libsasl
libseccomp
libseccomp.so
libslirp
libslirp.so
liburing
liburing.so
lzo
ndctl
numactl
libnuma.so
pam
libpam.so
pixman
libpixman-1.so
qemu-common=$pkgver-$pkgrel
snappy
vde2
zlib
zstd
libzstd.so
)
_qemu_optdepends=(
'qemu-audio-alsa: for ALSA audio driver'
'qemu-audio-dbus: for D-Bus audio driver'
'qemu-audio-jack: for JACK audio driver'
'qemu-audio-oss: for OSS audio driver'
'qemu-audio-pa: for PulseAudio audio driver'
'qemu-audio-sdl: for SDL audio driver'
'qemu-audio-spice: for spice audio driver'
'qemu-block-curl: for curl block driver'
'qemu-block-dmg: for DMG block driver'
'qemu-block-gluster: for Gluster block driver'
'qemu-block-iscsi: for iSCSI block driver'
'qemu-block-nfs: for NFS block driver'
'qemu-block-ssh: for SSH block driver'
'qemu-chardev-baum: for Baum chardev driver'
'qemu-chardev-spice: for spice chardev driver'
'qemu-docs: for documentation'
'qemu-hw-display-qxl: for QXL display device'
'qemu-hw-display-virtio-gpu-gl: for virtio-gpu-gl display device'
'qemu-hw-display-virtio-gpu: for virtio-gpu display device'
'qemu-hw-display-virtio-gpu-pci: for virtio-gpu-pci display device'
'qemu-hw-display-virtio-gpu-pci-gl: for virtio-gpu-pci-gl display device'
'qemu-hw-display-virtio-vga: for virtio-gpu-vga display device'
'qemu-hw-display-virtio-vga-gl: for virtio-gpu-vga-gl display device'
'qemu-hw-s390x-virtio-gpu-ccw: for s390x-virtio-gpu-ccw display device'
'qemu-hw-usb-host: for USB host device'
'qemu-hw-usb-redirect: for usbredir device'
'qemu-hw-usb-smartcard: for USB smartcard device'
'qemu-img: for manipulating disk images'
'qemu-pr-helper: for persistent reservation utility'
'qemu-system-aarch64: for AARCH64 system emulator'
'qemu-system-alpha: for Alpha system emulator'
'qemu-system-arm: for ARM system emulator'
'qemu-system-avr: for AVR system emulator'
'qemu-system-cris: for CRIS system emulator'
'qemu-system-hppa: for HPPA system emulator'
'qemu-system-m68k: for ColdFire (m68k) system emulator'
'qemu-system-microblaze: for Microblaze system emulator'
'qemu-system-mips: for MIPS system emulator'
'qemu-system-nios2: for nios2 system emulator'
'qemu-system-or1k: for OpenRisc32 system emulator'
'qemu-system-ppc: for PPC system emulator'
'qemu-system-riscv: for RISC-V system emulator'
'qemu-system-rx: for RX system emulator'
'qemu-system-s390x: for S390 system emulator'
'qemu-system-sh4: for SH4 system emulator'
'qemu-system-sparc: for SPARC system emulator'
'qemu-system-tricore: for tricore system emulator'
'qemu-system-x86: for x86 system emulator'
'qemu-system-xtensa: for Xtensa system emulator'
'qemu-tests: for QEMU tests'
'qemu-tools: for QEMU tools'
'qemu-ui-curses: for curses UI driver'
'qemu-ui-dbus: for D-Bus UI driver'
'qemu-ui-egl-headless: for EGL headless UI driver'
'qemu-ui-gtk: for GTK UI driver'
'qemu-ui-opengl: for OpenGL UI driver'
'qemu-ui-sdl: for SDL UI driver'
'qemu-ui-spice-app: for spice app UI driver'
'qemu-ui-spice-core: for spice core UI driver'
'qemu-user: for user mode emulation of QEMU targets'
'qemu-user-static: for static user mode emulation of QEMU targets'
'qemu-vhost-user-gpu: for vhost-user-gpu display device'
'virtiofsd-provider: for virtio-fs shared filesystem daemon'
'samba: for SMB/CIFS server support'
)
_pick() {
local p="$1" f d; shift
for f; do
d="$srcdir/$p/${f#$pkgdir/}"
mkdir -p "$(dirname "$d")"
mv "$f" "$d"
rmdir -p --ignore-fail-on-non-empty "$(dirname "$f")"
done
}
prepare() {
# extract licenses for TCG
sed -n '1,23p' $pkgbase-$pkgver/tcg/tcg-internal.h > tcg.LICENSE.MIT
sed -n '1,23p' $pkgbase-$pkgver/tcg/arm/tcg-target.c.inc > tcg-arm.LICENSE.MIT
sed -n '1,23p' $pkgbase-$pkgver/tcg/tci/tcg-target.h > tci.LICENSE.MIT
# create build dir
mkdir -vp build
mkdir -vp build-static
}
#--------
# BUILD ]
build() {
(
cd build-static
../$pkgbase-$pkgver/configure \
--prefix=/usr \
--sysconfdir=/etc \
--libexecdir=/usr/lib/qemu \
--enable-attr \
--enable-linux-user \
--enable-tcg \
--disable-bpf \
--disable-bsd-user \
--disable-capstone \
--disable-docs \
--disable-fdt \
--disable-gcrypt \
--disable-glusterfs \
--disable-gnutls \
--disable-gtk \
--disable-install-blobs \
--disable-kvm \
--disable-libiscsi \
--disable-libnfs \
--disable-libssh \
--disable-linux-io-uring \
--disable-mpath \
--disable-nettle \
--disable-opengl \
--disable-qom-cast-debug \
--disable-sdl \
--enable-slirp \
--disable-system \
--disable-tools \
--disable-tpm \
--disable-vde \
--disable-vhost-crypto \
--disable-vhost-kernel \
--disable-vhost-net \
--disable-vhost-user \
--disable-vnc \
--disable-werror \
--disable-xen \
--disable-zstd \
--static
ninja
)
# Build only minimal debug info to reduce size
CFLAGS+=' -g1'
CXXFLAGS+=' -g1'
(
cd build
../$pkgbase-$pkgver/configure \
--prefix=/usr \
--sysconfdir=/etc \
--libexecdir=/usr/lib/qemu \
--localstatedir=/var \
--docdir=/usr/share/doc/qemu \
--enable-modules \
--disable-mpath \
--enable-sdl \
--enable-slirp \
--enable-tpm \
--smbd=/usr/bin/smbd \
--with-coroutine=ucontext
ninja
)
}
package_qemu-common() {
local binfmt_conf_options=(
--systemd ALL
--exportdir "$pkgdir/usr/lib/binfmt.d/"
--qemu-path "/usr/bin"
--persistent yes
--preserve-argv0 yes
)
license+=(BSD MIT)
depends=(gcc-libs glibc glib2 libglib-2.0.so libgmodule-2.0.so hicolor-icon-theme libcap-ng libcap-ng.so numactl libnuma.so)
backup=(
etc/$pkgbase/bridge.conf
etc/sasl2/$pkgbase.conf
)
install=$pkgname.install
# install static binaries
meson install -C build-static --destdir "$pkgdir"
install -vdm 755 "$pkgdir/usr/lib/binfmt.d/"
$pkgbase-$pkgver/scripts/qemu-binfmt-conf.sh "${binfmt_conf_options[@]}"
# rename static binaries to prevent name conflicts
for _src in "$pkgdir/usr/bin/qemu-"*; do
mv -v "$_src" "$pkgdir/usr/bin/$(basename "$_src")-static"
done
# modify and rename binfmt.d configs to prevent name conflicts
for _conf in "$pkgdir/usr/lib/binfmt.d/"*; do
_exe_name="$(basename "${_conf/.conf/}")"
_new_exe_name="${_exe_name}-static"
_new_conf_name="${_conf/.conf/-static.conf}"
sed -e "s|usr/bin/${_exe_name}|usr/bin/${_new_exe_name}|" "$_conf" > "${_new_conf_name}"
done
# install default binaries
meson install -C build --destdir "$pkgdir"
install -vdm 755 "$pkgdir/usr/lib/binfmt.d/"
$pkgbase-$pkgver/scripts/qemu-binfmt-conf.sh "${binfmt_conf_options[@]}"
install -vDm 644 bridge.conf -t "$pkgdir/etc/$pkgbase/"
install -vDm 644 $pkgbase-$pkgver/$pkgbase.sasl "$pkgdir/etc/sasl2/$pkgbase.conf"
install -vDm 644 $pkgbase-$pkgver/LICENSE *LICENSE* -t "$pkgdir/usr/share/licenses/$pkgbase/"
install -vDm 644 $pkgbase-sysusers.conf "$pkgdir/usr/lib/sysusers.d/$pkgbase.conf"
# bridge_helper needs suid: https://bugs.archlinux.org/task/32565
chmod u+s "$pkgdir/usr/lib/qemu/qemu-bridge-helper"
# remoe invalid directory
rm -frv "$pkgdir/var"
# remove unneeded files
find "$pkgdir" -name .buildinfo -delete
# remove files provided by seabios
rm -fv "$pkgdir/usr/share/$pkgbase/"{bios,vgabios}*
# remove files provided by edk2-{aarch64,arm,ovmf}
rm -fv "$pkgdir/usr/share/$pkgbase/"edk2-*
rm -frv "$pkgdir/usr/share/$pkgbase/firmware"
(
# create man page symlinks for all system emulators
cd "$pkgdir/usr/share/man/man1"
for _name in qemu-system-{aarch64,alpha,arm,avr,cris,hppa,i386,loongarch64,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
ln -sv $pkgbase.1.gz "$pkgdir/usr/share/man/man1/$_name.1.gz"
done
)
(
# pick files for all split packages
cd "$pkgdir"
_pick qemu-guest-agent usr/bin/qemu-ga
_pick qemu-guest-agent usr/share/man/man8/qemu-ga.8*
_pick qemu-audio-alsa usr/lib/qemu/audio-alsa.so
_pick qemu-audio-dbus usr/lib/qemu/audio-dbus.so
_pick qemu-audio-jack usr/lib/qemu/audio-jack.so
_pick qemu-audio-oss usr/lib/qemu/audio-oss.so
_pick qemu-audio-pa usr/lib/qemu/audio-pa.so
_pick qemu-audio-sdl usr/lib/qemu/audio-sdl.so
_pick qemu-audio-spice usr/lib/qemu/audio-spice.so
_pick qemu-block-curl usr/lib/qemu/block-curl.so
_pick qemu-block-dmg usr/lib/qemu/block-dmg*.so
_pick qemu-block-gluster usr/lib/qemu/block-gluster.so
_pick qemu-block-iscsi usr/lib/qemu/block-iscsi.so
_pick qemu-block-nfs usr/lib/qemu/block-nfs.so
_pick qemu-block-ssh usr/lib/qemu/block-ssh.so
_pick qemu-chardev-baum usr/lib/qemu/chardev-baum.so
_pick qemu-chardev-spice usr/lib/qemu/chardev-spice.so
_pick qemu-docs usr/share/doc/qemu
_pick qemu-hw-display-qxl usr/lib/qemu/hw-display-qxl.so
_pick qemu-hw-display-virtio-gpu usr/lib/qemu/hw-display-virtio-gpu.so
_pick qemu-hw-display-virtio-gpu-gl usr/lib/qemu/hw-display-virtio-gpu-gl.so
_pick qemu-hw-display-virtio-gpu-pci usr/lib/qemu/hw-display-virtio-gpu-pci.so
_pick qemu-hw-display-virtio-gpu-pci-gl usr/lib/qemu/hw-display-virtio-gpu-pci-gl.so
_pick qemu-hw-display-virtio-vga usr/lib/qemu/hw-display-virtio-vga.so
_pick qemu-hw-display-virtio-vga-gl usr/lib/qemu/hw-display-virtio-vga-gl.so
_pick qemu-hw-usb-host usr/lib/qemu/hw-usb-host.so
_pick qemu-hw-usb-redirect usr/lib/qemu/hw-usb-redirect.so
_pick qemu-hw-usb-smartcard usr/lib/qemu/hw-usb-smartcard.so
_pick qemu-img usr/bin/qemu-{img,io,nbd,storage-daemon}
_pick qemu-img usr/share/man/man1/qemu-{img,storage-daemon}.1*
_pick qemu-img usr/share/man/man7/qemu-storage-daemon-qmp-ref.7*
_pick qemu-img usr/share/man/man8/qemu-nbd.8*
_pick qemu-pr-helper usr/bin/qemu-pr-helper
_pick qemu-pr-helper usr/share/man/man8/qemu-pr-helper.8*
_pick qemu-hw-s390x-virtio-gpu-ccw usr/lib/qemu/hw-s390x-virtio-gpu-ccw.so
_pick qemu-system-aarch64 usr/bin/qemu-system-aarch64
_pick qemu-system-aarch64 usr/share/man/man1/qemu-system-aarch64.1*
_pick qemu-system-alpha usr/bin/qemu-system-alpha
_pick qemu-system-alpha usr/share/man/man1/qemu-system-alpha.1*
_pick qemu-system-alpha-firmware usr/share/qemu/palcode-clipper
_pick qemu-system-arm usr/bin/qemu-system-arm
_pick qemu-system-arm usr/share/man/man1/qemu-system-arm.1*
_pick qemu-system-arm-firmware usr/share/qemu/npcm7xx_bootrom.bin
_pick qemu-system-avr usr/bin/qemu-system-avr
_pick qemu-system-avr usr/share/man/man1/qemu-system-avr.1*
_pick qemu-system-cris usr/bin/qemu-system-cris
_pick qemu-system-cris usr/share/man/man1/qemu-system-cris.1*
_pick qemu-system-hppa usr/bin/qemu-system-hppa
_pick qemu-system-hppa usr/share/man/man1/qemu-system-hppa.1*
_pick qemu-system-hppa-firmware usr/share/qemu/hppa-firmware.img
_pick qemu-system-loongarch64 usr/bin/qemu-system-loongarch64
_pick qemu-system-loongarch64 usr/share/man/man1/qemu-system-loongarch64.1*
_pick qemu-system-m68k usr/bin/qemu-system-m68k
_pick qemu-system-m68k usr/share/man/man1/qemu-system-m68k.1*
_pick qemu-system-microblaze usr/bin/qemu-system-microblaze{,el}
_pick qemu-system-microblaze usr/share/man/man1/qemu-system-microblaze{,el}.1*
_pick qemu-system-microblaze-firmware usr/share/qemu/petalogix-*.dtb
_pick qemu-system-mips usr/bin/qemu-system-mips{,64,64el,el}
_pick qemu-system-mips usr/share/man/man1/qemu-system-mips{,64,64el,el}.1*
_pick qemu-system-nios2 usr/bin/qemu-system-nios2
_pick qemu-system-nios2 usr/share/man/man1/qemu-system-nios2.1*
_pick qemu-system-or1k usr/bin/qemu-system-or1k
_pick qemu-system-or1k usr/share/man/man1/qemu-system-or1k.1*
_pick qemu-system-ppc usr/bin/qemu-system-ppc{,64}
_pick qemu-system-ppc usr/share/man/man1/qemu-system-ppc{,64}.1*
_pick qemu-system-ppc-firmware usr/share/qemu/{bamboo,canyonlands}.dtb
# NOTE: needs to be replaced by openbios
_pick qemu-system-ppc-firmware usr/share/qemu/openbios-ppc
_pick qemu-system-ppc-firmware usr/share/qemu/qemu_vga.ndrv
_pick qemu-system-ppc-firmware usr/share/qemu/skiboot.lid
# NOTE: needs to be replaced by slof
_pick qemu-system-ppc-firmware usr/share/qemu/slof.bin
_pick qemu-system-ppc-firmware usr/share/qemu/u-boot.e500
_pick qemu-system-ppc-firmware usr/share/qemu/u-boot-sam460-20100605.bin
_pick qemu-system-riscv usr/bin/qemu-system-riscv{32,64}
_pick qemu-system-riscv usr/share/man/man1/qemu-system-riscv{32,64}.1*
_pick qemu-system-riscv-firmware usr/share/qemu/opensbi-riscv{32,64}*.bin
_pick qemu-system-rx usr/bin/qemu-system-rx
_pick qemu-system-rx usr/share/man/man1/qemu-system-rx.1*
_pick qemu-system-s390x usr/bin/qemu-system-s390x
_pick qemu-system-s390x usr/share/man/man1/qemu-system-s390x.1*
_pick qemu-system-s390x-firmware usr/share/qemu/s390-{ccw,netboot}.img
_pick qemu-system-sh4 usr/bin/qemu-system-sh4{,eb}
_pick qemu-system-sh4 usr/share/man/man1/qemu-system-sh4{,eb}.1*
_pick qemu-system-sparc usr/bin/qemu-system-sparc{,64}
_pick qemu-system-sparc usr/share/man/man1/qemu-system-sparc{,64}.1*
# NOTE: needs to be replaced by openbios
_pick qemu-system-sparc-firmware usr/share/qemu/openbios-sparc{32,64}
_pick qemu-system-sparc-firmware usr/share/qemu/QEMU,{cgthree,tcx}.bin
_pick qemu-system-tricore usr/bin/qemu-system-tricore
_pick qemu-system-tricore usr/share/man/man1/qemu-system-tricore.1*
_pick qemu-system-x86 usr/bin/qemu-system-{i386,x86_64}
_pick qemu-system-x86 usr/lib/qemu/accel-tcg-{i386,x86_64}.so
_pick qemu-system-x86 usr/share/man/man1/qemu-system-{i386,x86_64}.1*
_pick qemu-system-x86-firmware usr/share/qemu/{kvmvapic,linuxboot,multiboot{,_dma},pvh}.bin
_pick qemu-system-x86-firmware usr/share/qemu/qboot.rom
# NOTE: needs to be replaced by sgabios
_pick qemu-system-x86-firmware usr/share/qemu/sgabios.bin
_pick qemu-system-xtensa usr/bin/qemu-system-xtensa{,eb}
_pick qemu-system-xtensa usr/share/man/man1/qemu-system-xtensa{,eb}.1*
_pick qemu-tests usr/lib/qemu/accel-qtest-*.so
_pick qemu-tools usr/bin/{elf2dmp,qemu-{edid,keymap}}
_pick qemu-tools usr/share/qemu/trace-events-all
_pick qemu-ui-curses usr/lib/qemu/ui-curses.so
_pick qemu-ui-dbus usr/lib/qemu/ui-dbus.so
_pick qemu-ui-egl-headless usr/lib/qemu/ui-egl-headless.so
_pick qemu-ui-gtk usr/lib/qemu/ui-gtk.so
_pick qemu-ui-opengl usr/lib/qemu/ui-opengl.so
_pick qemu-ui-sdl usr/lib/qemu/ui-sdl.so
_pick qemu-ui-spice-app usr/lib/qemu/ui-spice-app.so
_pick qemu-ui-spice-core usr/lib/qemu/ui-spice-core.so
_pick qemu-user-static usr/bin/qemu-*-static
_pick qemu-user-static-binfmt usr/lib/binfmt.d/*-static.conf
_pick qemu-user usr/bin/qemu-{aarch64{,_be},alpha,arm{,eb},cris,hexagon,hppa,i386,loongarch64,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}}
_pick qemu-user-binfmt usr/lib/binfmt.d/*.conf
_pick qemu-vhost-user-gpu usr/lib/qemu/vhost-user-gpu
_pick qemu-vhost-user-gpu usr/share/qemu/vhost-user/50-qemu-gpu.json
_pick qemu-virtiofsd usr/lib/qemu/virtiofsd
_pick qemu-virtiofsd usr/share/man/man1/virtiofsd.1*
_pick qemu-virtiofsd usr/share/qemu/vhost-user/50-qemu-virtiofsd.json
)
}
package_qemu-audio-alsa() {
pkgdesc="QEMU ALSA audio driver"
depends=(alsa-lib libasound.so glibc qemu-common=$pkgver-$pkgrel)
mv -v $pkgname/* "$pkgdir"
}
package_qemu-audio-dbus() {
pkgdesc="QEMU D-Bus audio driver"
depends=(gcc-libs glib2 libgio-2.0.so libgobject-2.0.so libglib-2.0.so glibc qemu-common=$pkgver-$pkgrel)
mv -v $pkgname/* "$pkgdir"
}
package_qemu-audio-jack() {
pkgdesc="QEMU JACK audio driver"
depends=(jack libjack.so glibc qemu-common=$pkgver-$pkgrel)
mv -v $pkgname/* "$pkgdir"
}
package_qemu-audio-oss() {
pkgdesc="QEMU OSS audio driver"
depends=(glibc qemu-common=$pkgver-$pkgrel)
mv -v $pkgname/* "$pkgdir"
}
package_qemu-audio-pa() {
pkgdesc="QEMU PulseAudio audio driver"
depends=(glibc libpulse libpulse.so qemu-common=$pkgver-$pkgrel)
mv -v $pkgname/* "$pkgdir"
}
package_qemu-audio-sdl() {
pkgdesc="QEMU SDL audio driver"
depends=(glibc qemu-common=$pkgver-$pkgrel sdl2)
mv -v $pkgname/* "$pkgdir"
}
package_qemu-audio-spice() {
pkgdesc="QEMU spice audio driver"
depends=(glibc qemu-common=$pkgver-$pkgrel qemu-ui-spice-core=$pkgver-$pkgrel spice libspice-server.so)
mv -v $pkgname/* "$pkgdir"
}
package_qemu-block-curl() {
pkgdesc="QEMU curl block driver"
depends=(curl libcurl.so gcc-libs glibc qemu-common=$pkgver-$pkgrel)
mv -v $pkgname/* "$pkgdir"
}
package_qemu-block-dmg() {
pkgdesc="QEMU DMG block driver"
depends=(bzip2 libbz2.so glibc qemu-common=$pkgver-$pkgrel)
mv -v $pkgname/* "$pkgdir"
}
package_qemu-block-gluster() {
pkgdesc="QEMU Gluster block driver"
depends=(glibc glusterfs qemu-common=$pkgver-$pkgrel)
mv -v $pkgname/* "$pkgdir"
}
package_qemu-block-iscsi() {
pkgdesc="QEMU iSCSI block driver"
depends=(gcc-libs glibc libiscsi qemu-common=$pkgver-$pkgrel)
mv -v $pkgname/* "$pkgdir"
}
package_qemu-block-nfs() {
pkgdesc="QEMU NFS block driver"
depends=(gcc-libs glibc libnfs qemu-common=$pkgver-$pkgrel)
mv -v $pkgname/* "$pkgdir"
}
package_qemu-block-ssh() {
pkgdesc="QEMU SSH block driver"
depends=(gcc-libs glibc libssh libssh.so qemu-common=$pkgver-$pkgrel)
mv -v $pkgname/* "$pkgdir"
}
package_qemu-chardev-baum() {
pkgdesc="QEMU Baum chardev driver"
depends=(brltty libbrlapi.so gcc-libs glibc qemu-common=$pkgver-$pkgrel)
mv -v $pkgname/* "$pkgdir"
}
package_qemu-chardev-spice() {
pkgdesc="QEMU spice chardev driver"
depends=(libspice-server.so glibc qemu-common=$pkgver-$pkgrel qemu-ui-spice-core=$pkgver-$pkgrel)
mv -v $pkgname/* "$pkgdir"
}
package_qemu-docs() {
pkgdesc+=" - documentation"
mv -v $pkgname/* "$pkgdir"
}
package_qemu-guest-agent() {
pkgdesc="QEMU Guest Agent"
depends=(gcc-libs glib2 libglib-2.0.so libgmodule-2.0.so glibc liburing liburing.so numactl libnuma.so sh libudev.so)
backup=(
etc/$pkgbase/$pkgbase-ga.conf
etc/$pkgbase/fsfreeze-hook
)
mv -v $pkgname/* "$pkgdir"
install -vDm 644 99-$pkgname.rules -t "$pkgdir/usr/lib/udev/rules.d/"
install -vDm 644 $pkgbase-ga.conf -t "$pkgdir/etc/$pkgbase/"
install -vDm 755 $pkgbase-$pkgver/scripts/$pkgname/fsfreeze-hook -t "$pkgdir/etc/$pkgbase/"
install -vdm 755 "$pkgdir/etc/$pkgbase/fsfreeze-hook.d"
}
package_qemu-hw-display-qxl() {
pkgdesc="QEMU QXL display device"
depends=(gcc-libs glibc pixman libpixman-1.so qemu-common=$pkgver-$pkgrel qemu-ui-spice-core=$pkgver-$pkgrel spice libspice-server.so)
mv -v $pkgname/* "$pkgdir"
}
package_qemu-hw-display-virtio-gpu() {
pkgdesc="QEMU virtio-gpu display device"
depends=(glibc pixman libpixman-1.so qemu-common=$pkgver-$pkgrel)
mv -v $pkgname/* "$pkgdir"
}
package_qemu-hw-display-virtio-gpu-gl() {
pkgdesc="QEMU virtio-gpu-gl display device"
depends=(glibc qemu-common=$pkgver-$pkgrel virglrenderer)
mv -v $pkgname/* "$pkgdir"
}
package_qemu-hw-display-virtio-gpu-pci() {
pkgdesc="QEMU virtio-gpu-pci display device"
depends=(qemu-common=$pkgver-$pkgrel)
mv -v $pkgname/* "$pkgdir"
}
package_qemu-hw-display-virtio-gpu-pci-gl() {
pkgdesc="QEMU virtio-gpu-pci-gl display device"
depends=(qemu-common=$pkgver-$pkgrel)
mv -v $pkgname/* "$pkgdir"
}
package_qemu-hw-display-virtio-vga() {
pkgdesc="QEMU virtio-vga display device"
depends=(qemu-common=$pkgver-$pkgrel)
mv -v $pkgname/* "$pkgdir"
}
package_qemu-hw-display-virtio-vga-gl() {
pkgdesc="QEMU virtio-vga-gl display device"
depends=(qemu-common=$pkgver-$pkgrel)
mv -v $pkgname/* "$pkgdir"
}
package_qemu-hw-s390x-virtio-gpu-ccw() {
pkgdesc="QEMU s390x-virtio-gpu-ccw display device"
depends=(qemu-common=$pkgver-$pkgrel)
mv -v $pkgname/* "$pkgdir"
}
package_qemu-system-aarch64() {
pkgdesc="QEMU system emulator for AARCH64"
depends=("${_qemu_system_deps[@]}" edk2-aarch64 libudev.so)
mv -v $pkgname/* "$pkgdir"
}
package_qemu-system-alpha() {
pkgdesc="QEMU system emulator for Alpha"
depends=("${_qemu_system_deps[@]}" qemu-system-alpha-firmware libudev.so)
mv -v $pkgname/* "$pkgdir"
}
package_qemu-system-alpha-firmware() {
pkgdesc="Firmware for QEMU system emulator for Alpha"
options=(!strip)
mv -v $pkgname/* "$pkgdir"
}
package_qemu-system-arm() {
pkgdesc="QEMU system emulator for ARM"
depends=("${_qemu_system_deps[@]}" edk2-arm qemu-system-arm-firmware=$pkgver-$pkgrel libudev.so)
mv -v $pkgname/* "$pkgdir"
}
package_qemu-system-arm-firmware() {
pkgdesc="Firmware for QEMU system emulator for ARM"
options=(!strip)
mv -v $pkgname/* "$pkgdir"
}
package_qemu-system-avr() {
pkgdesc="QEMU system emulator for AVR"
depends=("${_qemu_system_deps[@]}")
mv -v $pkgname/* "$pkgdir"
}
package_qemu-system-cris() {
pkgdesc="QEMU system emulator for CRIS"
depends=("${_qemu_system_deps[@]}")
mv -v $pkgname/* "$pkgdir"
}
package_qemu-system-hppa() {
pkgdesc="QEMU system emulator for HPPA"
depends=("${_qemu_system_deps[@]}" qemu-system-hppa-firmware=$pkgver-$pkgrel libudev.so)
mv -v $pkgname/* "$pkgdir"
}
package_qemu-system-hppa-firmware() {
pkgdesc="Firmware for QEMU system emulator for HPPA"
options=(!strip)
mv -v $pkgname/* "$pkgdir"
}
package_qemu-system-loongarch64() {
pkgdesc="QEMU system emulator for LoongArch64"
depends=("${_qemu_system_deps[@]}")
mv -v $pkgname/* "$pkgdir"
}
package_qemu-system-m68k() {
pkgdesc="QEMU system emulator for ColdFire (m68k)"
depends=("${_qemu_system_deps[@]}")
mv -v $pkgname/* "$pkgdir"
}
package_qemu-system-microblaze() {
pkgdesc="QEMU system emulator for Microblaze"
depends=("${_qemu_system_deps[@]}" qemu-system-microblaze-firmware=$pkgver-$pkgrel)
mv -v $pkgname/* "$pkgdir"
}
package_qemu-system-microblaze-firmware() {
pkgdesc="Firmware for QEMU system emulator for Microblaze"
options=(!strip)
mv -v $pkgname/* "$pkgdir"
}
package_qemu-system-mips() {
pkgdesc="QEMU system emulator for MIPS"
depends=("${_qemu_system_deps[@]}" libudev.so)
mv -v $pkgname/* "$pkgdir"
}
package_qemu-system-nios2() {
pkgdesc="QEMU system emulator for nios2"
depends=("${_qemu_system_deps[@]}")
mv -v $pkgname/* "$pkgdir"
}
package_qemu-system-or1k() {
pkgdesc="QEMU system emulator for OpenRisc32"
depends=("${_qemu_system_deps[@]}")
mv -v $pkgname/* "$pkgdir"
}
package_qemu-system-ppc() {
pkgdesc="QEMU system emulator for PPC"
# NOTE: will require openbios
depends=("${_qemu_system_deps[@]}" qemu-system-ppc-firmware=$pkgver-$pkgrel libudev.so)
options=(!strip)
mv -v $pkgname/* "$pkgdir"
}
package_qemu-system-ppc-firmware() {
pkgdesc="Firmware for QEMU system emulator for PPC"
options=(!strip)
mv -v $pkgname/* "$pkgdir"
}
package_qemu-system-riscv() {
pkgdesc="QEMU system emulator for RISC-V"
depends=("${_qemu_system_deps[@]}" qemu-system-riscv-firmware=$pkgver-$pkgrel libudev.so)
mv -v $pkgname/* "$pkgdir"
}
package_qemu-system-riscv-firmware() {
pkgdesc="Firmware for QEMU system emulator for RISC-V"
options=(!strip)
mv -v $pkgname/* "$pkgdir"
}
package_qemu-system-rx() {
pkgdesc="QEMU system emulator for RX"
depends=("${_qemu_system_deps[@]}")
mv -v $pkgname/* "$pkgdir"
}
package_qemu-system-s390x() {
pkgdesc="QEMU system emulator for S390"
depends=("${_qemu_system_deps[@]}" qemu-system-s390x-firmware=$pkgver-$pkgrel)
mv -v $pkgname/* "$pkgdir"
}
package_qemu-system-s390x-firmware() {
pkgdesc="Firmware for QEMU system emulator for S390"
options=(!strip)
mv -v $pkgname/* "$pkgdir"
}
package_qemu-system-sh4() {
pkgdesc="QEMU system emulator for SH4"
depends=("${_qemu_system_deps[@]}" libudev.so)
mv -v $pkgname/* "$pkgdir"
}
package_qemu-system-sparc() {
pkgdesc="QEMU system emulator for SPARC"
# NOTE: will require openbios
depends=("${_qemu_system_deps[@]}" qemu-system-sparc-firmware=$pkgver-$pkgrel libudev.so)
mv -v $pkgname/* "$pkgdir"
}
package_qemu-system-sparc-firmware() {
pkgdesc="Firmware for QEMU system emulator for SPARC"
options=(!strip)
# NOTE: will require openbios
mv -v $pkgname/* "$pkgdir"
}
package_qemu-system-tricore() {
pkgdesc="QEMU system emulator for tricore"
depends=("${_qemu_system_deps[@]}")
mv -v $pkgname/* "$pkgdir"
}
package_qemu-system-x86() {
pkgdesc="QEMU system emulator for x86"
depends=("${_qemu_system_deps[@]}" qemu-system-x86-firmware=$pkgver-$pkgrel edk2-ovmf seabios libudev.so)
mv -v $pkgname/* "$pkgdir"
}
package_qemu-system-x86-firmware() {
pkgdesc="Firmware for QEMU system emulator for x86"
options=(!strip)
mv -v $pkgname/* "$pkgdir"
}
package_qemu-system-xtensa() {
pkgdesc="QEMU system emulator for Xtensa"
depends=("${_qemu_system_deps[@]}" libudev.so)
mv -v $pkgname/* "$pkgdir"
}
package_qemu-hw-usb-host() {
pkgdesc="QEMU USB host device"
depends=(glibc libusb libusb-1.0.so qemu-common=$pkgver-$pkgrel)
mv -v $pkgname/* "$pkgdir"
}
package_qemu-hw-usb-redirect() {
pkgdesc="QEMU usbredir device"
depends=(gcc-libs glibc qemu-common=$pkgver-$pkgrel usbredir)
mv -v $pkgname/* "$pkgdir"
}
package_qemu-hw-usb-smartcard() {
pkgdesc="QEMU USB smartcard device"
depends=(gcc-libs libcacard glib2 libglib-2.0.so glibc qemu-common=$pkgver-$pkgrel)
mv -v $pkgname/* "$pkgdir"
}
package_qemu-img() {
pkgdesc="QEMU tooling for manipulating disk images"
depends=(fuse3 gcc-libs glib2 libglib-2.0.so libgmodule-2.0.so glibc gnutls libaio liburing liburing.so
numactl libnuma.so pam libpam.so zlib zstd libzstd.so)
mv -v $pkgname/* "$pkgdir"
}
package_qemu-pr-helper() {
pkgdesc="QEMU persistent reservation utility"
depends=(gcc-libs glib2 libglib-2.0.so libgmodule-2.0.so glibc gnutls libcap-ng libcap-ng.so liburing liburing.so numactl libnuma.so pam libpam.so qemu-common=$pkgver-$pkgrel)
mv -v $pkgname/* "$pkgdir"
}
package_qemu-tests() {
pkgdesc="QEMU tests"
depends=(qemu-common=$pkgver-$pkgrel)
mv -v $pkgname/* "$pkgdir"
}
package_qemu-tools() {
pkgdesc="QEMU tools"
depends=(curl libcurl.so gcc-libs glib2 libglib-2.0.so libgmodule-2.0.so glibc libxkbcommon libxkbcommon.so python qemu-common=$pkgver-$pkgrel)
mv -v $pkgname/* "$pkgdir"
install -vDm 644 $pkgbase-$pkgver/scripts/dump-guest-memory.py -t "$pkgdir/usr/share/$pkgbase/"
install -vDm 755 $pkgbase-$pkgver/scripts/simpletrace.py -t "$pkgdir/usr/share/$pkgbase/"
install -vDm 644 $pkgbase-$pkgver/scripts/tracetool/*.py -t "$pkgdir/usr/share/$pkgbase/tracetool/"
install -vDm 644 $pkgbase-$pkgver/scripts/tracetool/backend/*.py -t "$pkgdir/usr/share/$pkgbase/tracetool/backend/"
install -vDm 644 $pkgbase-$pkgver/scripts/tracetool/format/*.py -t "$pkgdir/usr/share/$pkgbase/tracetool/format/"
}
package_qemu-ui-curses() {
pkgdesc="QEMU curses UI driver"
depends=(gcc-libs glib2 libglib-2.0.so glibc ncurses libncursesw.so qemu-common=$pkgver-$pkgrel)
mv -v $pkgname/* "$pkgdir"
}
package_qemu-ui-dbus() {
pkgdesc="QEMU D-Bus UI driver"
depends=(gcc-libs glib2 libgio-2.0.so libgobject-2.0.so libglib-2.0.so glibc libepoxy pixman libpixman-1.so qemu-common=$pkgver-$pkgrel)
mv -v $pkgname/* "$pkgdir"
}
package_qemu-ui-egl-headless() {
pkgdesc="QEMU EGL headless UI driver"
depends=(glibc libepoxy qemu-common=$pkgver-$pkgrel qemu-ui-opengl=$pkgver-$pkgrel)
mv -v $pkgname/* "$pkgdir"
}
package_qemu-ui-gtk() {
pkgdesc="QEMU GTK UI driver"
depends=(
cairo
gcc-libs
gdk-pixbuf2 libgdk_pixbuf-2.0.so
glib2 libgobject-2.0.so libglib-2.0.so
glibc
gtk3 libgdk-3.so libgtk-3.so
libepoxy
libx11
pixman libpixman-1.so
qemu-common=$pkgver-$pkgrel
qemu-ui-opengl
vte3 libvte-2.91.so
)
mv -v $pkgname/* "$pkgdir"
}
package_qemu-ui-opengl() {