Date: Thursday, April 21, 2022 @ 20:19:04
  Author: dvzrv
Revision: 443489

upgpkg: qemu 7.0.0-1: Upgrade to 7.0.0.

Turn qemu into a finely grained split package.
Disable debug package as it would contain invalid /build dir.
Remove (now included) patch for glibc compat.
Use upstream's qemu-guest-agent.service instead of providing a broken one 
ourselves.
Add udev rules and configuration for qemu-guest-agent.
Integrate default bridge.conf for qemu.
Use upstream's sasl integration.
Add a qemu user and add it to the kvm group.
Add TODOs for outstanding firmware replacements and further split packages.
Increase hard and soft memlock for qemu-system-ppc (thanks to Fedora for the 
fix).
Update maintainer info.

Added:
  qemu/trunk/95-qemu-system-ppc.conf
  qemu/trunk/99-qemu-guest-agent.rules
  qemu/trunk/bridge.conf
  qemu/trunk/qemu-ga.conf
  qemu/trunk/qemu-sysusers.conf
Modified:
  qemu/trunk/PKGBUILD
  qemu/trunk/qemu.install
Deleted:
  qemu/trunk/qemu-guest-agent.service

---------------------------+
 95-qemu-system-ppc.conf   |   12 
 99-qemu-guest-agent.rules |    1 
 PKGBUILD                  | 1081 +++++++++++++++++++++++++++++++-------------
 bridge.conf               |    1 
 qemu-ga.conf              |   10 
 qemu-guest-agent.service  |    9 
 qemu-sysusers.conf        |    2 
 qemu.install              |   11 
 8 files changed, 816 insertions(+), 311 deletions(-)

Added: 95-qemu-system-ppc.conf
===================================================================
--- 95-qemu-system-ppc.conf                             (rev 0)
+++ 95-qemu-system-ppc.conf     2022-04-21 20:19:04 UTC (rev 443489)
@@ -0,0 +1,12 @@
+# The KVM Hypervisor implementation on PowerPC can require a significant amount
+# of unswappable memory (about half of which also needs to be host physically
+# contiguous) to hold the guest's Hash Page Table (HPT) - roughly 1/64th of the
+# guest's RAM size, minimum 16MiB.
+#
+# These limits allow unprivileged users to start smallish VMs, such as those
+# used by libguestfs.
+#
+# https://bugzilla.redhat.com/show_bug.cgi?id=1293024
+
+* hard memlock 65536
+* soft memlock 65536

Added: 99-qemu-guest-agent.rules
===================================================================
--- 99-qemu-guest-agent.rules                           (rev 0)
+++ 99-qemu-guest-agent.rules   2022-04-21 20:19:04 UTC (rev 443489)
@@ -0,0 +1 @@
+SUBSYSTEM=="virtio-ports", ATTR{name}=="org.qemu.guest_agent.0", 
TAG+="systemd" ENV{SYSTEMD_WANTS}="qemu-guest-agent.service"

Modified: PKGBUILD
===================================================================
--- PKGBUILD    2022-04-21 20:03:05 UTC (rev 443488)
+++ PKGBUILD    2022-04-21 20:19:04 UTC (rev 443489)
@@ -1,24 +1,42 @@
-# Maintainer: Tobias Powalowski <tp...@archlinux.org>
-# Contributor: David Runge <dv...@archlinux.org>
+# Maintainer: David Runge <dv...@archlinux.org>
+# Contributor: Tobias Powalowski <tp...@archlinux.org>
 # Contributor: Sébastien "Seblu" Luttringer <se...@seblu.net>
 
 pkgbase=qemu
 pkgname=(
   qemu
-  qemu-headless
-  qemu-arch-extra
-  qemu-headless-arch-extra
-  qemu-block-{iscsi,rbd,gluster}
+  qemu-audio-{alsa,dbus,jack,oss,pa,sdl,spice}
+  qemu-block-{curl,dmg,gluster,iscsi,nfs,rbd,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,m68k,microblaze,mips,nios2,or1k,ppc,riscv,rx,s390x,sh4,sparc,tricore,x86,xtensa}
+  qemu-tests
+  qemu-tools
+  qemu-ui-{curses,dbus,egl-headless,gtk,opengl,sdl,spice-{app,core}}
+  qemu-user
+  qemu-vhost-user-gpu
+  qemu-virtiofsd
 )
+pkgver=7.0.0
+pkgrel=1
 pkgdesc="A generic and open source machine emulator and virtualizer"
-pkgver=6.2.0
-pkgrel=4
 arch=(x86_64)
+url="https://www.qemu.org/";
 license=(GPL2 LGPL2.1)
-url="https://wiki.qemu.org/";
 # TODO: consider providing rdma-core
 # TODO: consider providing lzfse
+# TODO: package systemtap
+# TODO: package openbios for qemu-system-{ppc,sparc}
+# TODO: package /usr/share/qemu/{efi,pxe}-* for qemu (ipxe)
+# TODO: package /usr/share/qemu/slof.bin for qemu-system-ppc (slof)
+# TODO: package /usr/share/qemu/sgabios.bin for qemu-system-x86 (sgabios)
+# TODO: package static libs of glib2 and pcre for qemu-user-static
 makedepends=(
   alsa-lib
   brltty
@@ -26,7 +44,6 @@
   cairo
   ceph
   curl
-  cdrtools
   dtc
   fuse3
   gcc-libs
@@ -52,10 +69,12 @@
   liburing
   libusb
   libx11
+  libxml2
   libxkbcommon
   lzo
   mesa
   meson
+  multipath-tools
   ncurses
   ndctl
   numactl
@@ -65,7 +84,6 @@
   python-sphinx_rtd_theme
   sdl2
   sdl2_image
-  seabios
   snappy
   spice-protocol
   spice
@@ -74,362 +92,831 @@
   vde2
   virglrenderer
   vte3
-  xfsprogs
   zlib
   zstd
 )
-options=(debug)
-source=(https://download.qemu.org/qemu-$pkgver.tar.xz{,.sig}
-        
virtiofsd-glibc235.patch::https://github.com/qemu/qemu/commit/7b223e38603de3a75602e14914d26f9d4baf52eb.patch
-        qemu-guest-agent.service
-        65-kvm.rules)
-sha512sums=('e9f8231c9e1cfcc41cb47f10a55d63f6b8aee307af00cf6acf64acb7aa4f49fa7e9d6330703a2abea15d8b7bbaba7d3cb08c83edd98d82642367b527df730817'
+# NOTE: currently the debug package for qemu >= 7.0.0 contains an invalid 
/build dir
+# options=(debug)
+source=(
+  https://download.qemu.org/qemu-$pkgver.tar.xz{,.sig}
+  bridge.conf
+  qemu-ga.conf
+  qemu-sysusers.conf
+  65-kvm.rules
+  95-qemu-system-ppc.conf
+  99-qemu-guest-agent.rules
+)
+sha512sums=('44ecd10c018a3763e1bc87d1d35b98890d0d5636acd69fe9b5cadf5024d5af6a31684d60cbe1c3370e02986434c1fb0ad99224e0e6f6fe7eda169992508157b1'
             'SKIP'
-            
'3b8b1e346d02516195c8ba4a1e88a2f0d69639b75cdd5e57185db624ba514f49b6d373a7fb2ec77133fb75cd43a11ce0e96b7a948ec9fc7140ae7ef26c203cb6'
-            
'269c0f0bacbd06a3d817fde02dce26c99d9f55c9e3b74bb710bd7e5cdde7a66b904d2eb794c8a605bf9305e4e3dee261a6e7d4ec9d9134144754914039f176e4'
-            
'bdf05f99407491e27a03aaf845b7cc8acfa2e0e59968236f10ffc905e5e3d5e8569df496fd71c887da2b5b8d1902494520c7da2d3a8258f7fd93a881dd610c99')
+            
'7b412ffa5dcda47b0a4ec9e2c5e5e1d9eaaaf0a087b7ea3ead3e706ba4c9cafb919beadd088a0299b6f7aab753b81a5eafb545b4842ee5f26646d16544dd02a7'
+            
'6e838773d63ae0ffdffe2b891bf611d8f5f3c67a9bc4cbbedf8363c150c2c9971c8e44d92270bc581af40eb0ece02192760bcdd6aee229fff55635f3a4825afa'
+            
'985c2c7a6b5217c87a15b45368089ee91b2f9027b070f9eafa448a18b27ae0d9edd964d52e134b9c1f4aeef4d6aae88afd3f454551ca898affef7f9d28b99b8f'
+            
'bdf05f99407491e27a03aaf845b7cc8acfa2e0e59968236f10ffc905e5e3d5e8569df496fd71c887da2b5b8d1902494520c7da2d3a8258f7fd93a881dd610c99'
+            
'd93ab81c08545722b92e7ff0a9c52ae5e339aa928baf65e811ec81772b400860403aa56b1585752c44d43435f4ffcb5092bc30de1c042355152e4ac0359a22a8'
+            
'93b905046fcea8a0a89513b9259c222494ab3b91319dde23baebcb40dc17376a56661b159b99785d6e816831974a0f3cbd7b2f7d89e5fc3c258f88f4492f3839')
+b2sums=('ceda6d9f1a585298bd49fed61e8bb35f0064ad8388a9f979c8bd68a38bfe1a47c5bb055e5f74f970c2c440957042b9de4a861524120040c56e4cd8b56c5cfb68'
+        'SKIP'
+        
'b1eca364aa60f130ff5e649f5d004d3fcb75356d3421a4542efdfc410d39b40d9434d15e1dd7bbdbd315cb72b5290d3ea5f77f9c41961a5601cd28ef7bbe72e8'
+        
'2102e4a34e11e406e9606c97e026e7b92e887e296a7f77b9cede1b37119d0df33735f3588628167b2b8e32244c196c491bfab623e2caddac9014d445aa2a6d98'
+        
'69177b962d2fda20cafdbc6226fd017b5ca5a0f69f866d055dc1c744b7b2955059f47c693cfb5b4c863ec159569fdabd4327ab4b8a95566a68cd8ce38e339c7a'
+        
'3559fe9c4f744194939770047a0a02d07ff791c845a80726d0bc7b8c4801ed5f11150e7d5adab813844b3dab1cf38c3a5a87fb6efbb8fc9dccdda9fa56409ed8'
+        
'56fd37a1aa9f07b4c5b401cff0283283e20a2d7928cbd4bbd89efbbbf8c8f2126be2a47dd6bb24528c2dac3932f9bf52dae0790b6bf2f2d60b3865d7e5dca041'
+        
'a9a2bdfeeb44eb86cbe88ac7c65f72800bdb2fd5cecb02f3a258cf9470b52832180aab43c89d481f7fd4d067342a9a27dd6c8a94d625b95d6e2b912e47d274e7')
 validpgpkeys=('CEACC9E15534EBABB82D3FA03353C9CEF108B584') # Michael Roth 
<fluks...@gmail.com>
 
-case $CARCH in
-  i?86) _corearch=i386 ;;
-  x86_64) _corearch=x86_64 ;;
-esac
+_qemu_system_deps=(
+  dtc
+  fuse3
+  gcc-libs
+  glib2 libgio-2.0.so libglib-2.0.so libgmodule-2.0.so
+  gnutls
+  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
+  snappy
+  vde2
+  zlib
+  zstd libzstd.so
+)
 
+_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() {
-  mkdir build-{full,headless}
-  mkdir -p extra-arch-{full,headless}/usr/{bin,share/qemu}
+  # extract licenses for TCG
+  sed -n '1,23p' $pkgname-$pkgver/tcg/tcg-internal.h > tcg.LICENSE.MIT
+  sed -n '1,23p' $pkgname-$pkgver/tcg/arm/tcg-target.c.inc > 
tcg-arm.LICENSE.MIT
+  sed -n '1,23p' $pkgname-$pkgver/tcg/tci/tcg-target.h > tci.LICENSE.MIT
 
-  cd ${pkgname}-${pkgver}
-  patch -p1 < ../virtiofsd-glibc235.patch # FS#73856
+  # install qemu-pr-helper.socket to sockets.target
+  sed -e 's/multi-user.target/sockets.target/g' -i 
$pkgname-$pkgver/contrib/systemd/qemu-pr-helper.socket
+
+  # create build dir
+  mkdir -vp build
+  mkdir -vp build-static
 }
 
 build() {
-  _build full
+  (
+    cd build
+    ../$pkgname-$pkgver/configure \
+      --prefix=/usr \
+      --sysconfdir=/etc \
+      --libexecdir=/usr/lib/qemu \
+      --localstatedir=/var \
+      --docdir=/usr/share/doc/qemu \
+      --audio-drv-list="pa,jack,alsa,oss" \
+      --enable-modules \
+      --enable-lto \
+      --enable-sdl \
+      --enable-slirp=system \
+      --enable-tpm \
+      --extra-ldflags="$LDFLAGS" \
+      --extra-cflags="$CFLAGS" \
+      --smbd=/usr/bin/smbd \
+      --tls-priority=@QEMU,SYSTEM \
+      --with-coroutine=ucontext
+    ninja
+  )
 
-  _build headless \
-    --disable-sdl \
-    --disable-gtk \
-    --disable-vte \
-    --disable-brlapi \
-    --disable-opengl \
-    --disable-virglrenderer \
-    --disable-alsa \
-    --disable-jack \
-    --disable-oss \
-    --disable-pa \
-    --disable-sdl
+# TODO: qemu-user-static
+#  (
+#    cd build-static
+#    ../$pkgbase-$pkgver/configure \
+#      --enable-attr \
+#      --enable-linux-user \
+#      --enable-tcg \
+#      --disable-install-blobs \
+#      --static
+#    ninja
+#  )
 }
 
-_build() (
-  cd build-$1
+package_qemu() {
+  license+=(BSD MIT)
+  depends=(gcc-libs glib2 libglib-2.0.so libgmodule-2.0.so hicolor-icon-theme 
libcap-ng libcap-ng.so)
+  # TODO: qemu-user-static
+  #  'qemu-user-static: for static user mode emulation of QEMU targets'
+  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-rbd: for Ceph/RBD 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-gpu-vga: for virtio-gpu-vga display device'
+    'qemu-hw-display-virtio-gpu-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-vhost-user-gpu: for vhost-user-gpu display device'
+    'qemu-virtiofsd: for virtio-fs shared filesystem daemon'
+    'samba: for SMB/CIFS server support'
+  )
+  install=$pkgname.install
+  options=(!strip)
 
-  ../${pkgname}-${pkgver}/configure \
-    --prefix=/usr \
-    --sysconfdir=/etc \
-    --localstatedir=/var \
-    --libexecdir=/usr/lib/qemu \
-    --smbd=/usr/bin/smbd \
-    --enable-modules \
-    --enable-sdl \
-    --enable-slirp=system \
-    --enable-xfsctl \
-    "${@:2}"
+  meson install -C build --destdir "$pkgdir"
 
-  ninja
-)
+  install -vdm 755 "$pkgdir/usr/lib/binfmt.d/"
+  $pkgbase-$pkgver/scripts/qemu-binfmt-conf.sh --systemd ALL --exportdir 
"$pkgdir/usr/lib/binfmt.d/" --qemu-path "$pkgdir/usr/bin/"
 
-package_qemu() {
-  depends=(
-    alsa-lib libasound.so
-    bzip2 libbz2.so
-    cairo
-    curl libcurl.so
-    dtc
-    fuse3
-    gcc-libs
-    gdk-pixbuf2 libgdk_pixbuf-2.0.so
-    glib2 libgio-2.0.so libglib-2.0.so libgmodule-2.0.so libgobject-2.0.so
-    gnutls
-    gtk3 libgdk-3.so libgtk-3.so
-    jack libjack.so
-    libaio
-    libbpf libbpf.so
-    libcacard
-    libcap-ng libcap-ng.so
-    libepoxy
-    libjpeg libjpeg.so
-    libnfs
-    libpng
-    libpulse libpulse.so
-    libsasl
-    libseccomp libseccomp.so
-    libslirp libslirp.so
-    libssh libssh.so
-    libusb libusb-1.0.so
-    liburing liburing.so
-    libx11
-    libxkbcommon libxkbcommon.so
-    lzo
-    mesa
-    ncurses libncursesw.so
-    ndctl
-    numactl libnuma.so
-    pam libpam.so
-    pixman libpixman-1.so
-    seabios
-    sdl2
-    sdl2_image
-    snappy
-    spice libspice-server.so
-    systemd-libs libudev.so
-    usbredir
-    virglrenderer
-    vde2
-    vte3 libvte-2.91.so
-    zlib
-    zstd libzstd.so
+# TODO: qemu-user-static
+#  for _conf in "$pkgdir/usr/lib/binfmt.d/"*; do
+#    cat "$_conf" | tr -d '\n' | sed "s/:$/-static:F/" > 
"${_conf//.conf/-static.conf}"
+#  done
+#
+#  meson install -C build-static --destdir "$pkgdir"
+#  for _src in "$pkgdir/usr/bin/qemu-"*; do
+#    mv -v "$_src" "$pkgdir/usr/bin/$(basename  "$_src")-static"
+#  done
+
+  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-{armvirt,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,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
   )
-  optdepends=(
-    'brltty: for braille device support'
-    'qemu-arch-extra: extra architectures support'
+
+  (
+    # 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-rbd usr/lib/qemu/block-rbd.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/qemu/palcode-clipper
+    _pick qemu-system-alpha usr/share/man/man1/qemu-system-alpha.1*
+
+    _pick qemu-system-arm usr/bin/qemu-system-arm
+    _pick qemu-system-arm usr/share/qemu/npcm7xx_bootrom.bin
+    _pick qemu-system-arm usr/share/man/man1/qemu-system-arm.1*
+
+    _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/qemu/hppa-firmware.img
+    _pick qemu-system-hppa usr/share/man/man1/qemu-system-hppa.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/qemu/petalogix-*.dtb
+    _pick qemu-system-microblaze 
usr/share/man/man1/qemu-system-microblaze{,el}.1*
+
+    _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/qemu/{bamboo,canyonlands}.dtb
+    # NOTE: needs to be replaced by openbios
+    _pick qemu-system-ppc usr/share/qemu/openbios-ppc
+    _pick qemu-system-ppc usr/share/qemu/qemu_vga.ndrv
+    _pick qemu-system-ppc usr/share/qemu/skiboot.lid
+    # NOTE: needs to be replaced by slof
+    _pick qemu-system-ppc usr/share/qemu/slof.bin
+    _pick qemu-system-ppc usr/share/qemu/u-boot.e500
+    _pick qemu-system-ppc usr/share/qemu/u-boot-sam460-20100605.bin
+    _pick qemu-system-ppc usr/share/man/man1/qemu-system-ppc{,64}.1*
+
+    _pick qemu-system-riscv usr/bin/qemu-system-riscv{32,64}
+    _pick qemu-system-riscv usr/share/qemu/opensbi-riscv{32,64}*.bin
+    _pick qemu-system-riscv usr/share/man/man1/qemu-system-riscv{32,64}.1*
+
+    _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/qemu/s390-{ccw,netboot}.img
+    _pick qemu-system-s390x usr/share/man/man1/qemu-system-s390x.1*
+
+    _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}
+    # NOTE: needs to be replaced by openbios
+    _pick qemu-system-sparc usr/share/qemu/openbios-sparc{32,64}
+    _pick qemu-system-sparc usr/share/qemu/QEMU,{cgthree,tcx}.bin
+    _pick qemu-system-sparc usr/share/man/man1/qemu-system-sparc{,64}.1*
+
+    _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/qemu/{kvmvapic,linuxboot,multiboot{,_dma},pvh}.bin
+    _pick qemu-system-x86 usr/share/qemu/qboot.rom
+    # NOTE: needs to be replaced by sgabios
+    _pick qemu-system-x86 usr/share/qemu/sgabios.bin
+    _pick qemu-system-x86 usr/share/man/man1/qemu-system-{i386,x86_64}.1*
+
+    _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 usr/lib/binfmt.d/*-static.conf
+
+    _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}}
+    _pick qemu-user 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
   )
-  provides=(qemu-headless)
-  conflicts=(qemu-headless)
-  replaces=(qemu-kvm)
+}
 
-  _package full
+package_qemu-audio-alsa() {
+  pkgdesc="QEMU ALSA audio driver"
+  depends=(alsa-lib libasound.so glibc qemu)
+  mv -v $pkgname/* "$pkgdir"
 }
 
-package_qemu-headless() {
-  pkgdesc="QEMU without GUI"
-  depends=(
-    bzip2 libbz2.so
-    curl libcurl.so
-    dtc
-    fuse3
-    gcc-libs
-    glib2 libgio-2.0.so libglib-2.0.so libgmodule-2.0.so libgobject-2.0.so
-    gnutls
-    libaio
-    libbpf libbpf.so
-    libcacard
-    libcap-ng libcap-ng.so
-    libjpeg libjpeg.so
-    libnfs
-    libpng
-    libsasl
-    libseccomp libseccomp.so
-    libslirp libslirp.so
-    libssh libssh.so
-    libusb libusb-1.0.so
-    liburing liburing.so
-    libxkbcommon libxkbcommon.so
-    lzo
-    ndctl
-    numactl libnuma.so
-    ncurses libncursesw.so
-    pam libpam.so
-    pixman libpixman-1.so
-    seabios
-    snappy
-    spice libspice-server.so
-    systemd-libs libudev.so
-    usbredir
-    vde2
-    zlib
-    zstd libzstd.so
+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)
+  mv -v $pkgname/* "$pkgdir"
+}
+
+package_qemu-audio-jack() {
+  pkgdesc="QEMU JACK audio driver"
+  depends=(jack libjack.so glibc qemu)
+  mv -v $pkgname/* "$pkgdir"
+}
+
+package_qemu-audio-oss() {
+  pkgdesc="QEMU OSS audio driver"
+  depends=(glibc qemu)
+  mv -v $pkgname/* "$pkgdir"
+}
+
+package_qemu-audio-pa() {
+  pkgdesc="QEMU PulseAudio audio driver"
+  depends=(glibc libpulse libpulse.so qemu)
+  mv -v $pkgname/* "$pkgdir"
+}
+
+package_qemu-audio-sdl() {
+  pkgdesc="QEMU SDL audio driver"
+  depends=(glibc qemu sdl2)
+  mv -v $pkgname/* "$pkgdir"
+}
+
+package_qemu-audio-spice() {
+  pkgdesc="QEMU spice audio driver"
+  depends=(glibc qemu qemu-ui-spice-core 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)
+  mv -v $pkgname/* "$pkgdir"
+}
+
+package_qemu-block-dmg() {
+  pkgdesc="QEMU DMG block driver"
+  depends=(bzip2 libbz2.so glibc qemu)
+  mv -v $pkgname/* "$pkgdir"
+}
+
+package_qemu-block-gluster() {
+  pkgdesc="QEMU Gluster block driver"
+  depends=(glibc glusterfs qemu)
+  mv -v $pkgname/* "$pkgdir"
+}
+
+package_qemu-block-iscsi() {
+  pkgdesc="QEMU iSCSI block driver"
+  depends=(gcc-libs glibc libiscsi qemu)
+  mv -v $pkgname/* "$pkgdir"
+}
+
+package_qemu-block-nfs() {
+  pkgdesc="QEMU NFS block driver"
+  depends=(gcc-libs glibc libnfs qemu)
+  mv -v $pkgname/* "$pkgdir"
+}
+
+package_qemu-block-rbd() {
+  pkgdesc="QEMU Ceph/RBD block driver"
+  depends=(ceph-libs glibc qemu)
+  mv -v $pkgname/* "$pkgdir"
+}
+
+package_qemu-block-ssh() {
+  pkgdesc="QEMU SSH block driver"
+  depends=(gcc-libs glibc libssh libssh.so qemu)
+  mv -v $pkgname/* "$pkgdir"
+}
+
+package_qemu-chardev-baum() {
+  pkgdesc="QEMU Baum chardev driver"
+  depends=(brltty libbrlapi.so glibc qemu)
+  mv -v $pkgname/* "$pkgdir"
+}
+
+package_qemu-chardev-spice() {
+  pkgdesc="QEMU spice chardev driver"
+  depends=(libspice-server.so glibc qemu qemu-ui-spice-core)
+  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 systemd-libs libudev.so)
+  backup=(
+    etc/$pkgbase/$pkgbase-ga.conf
+    etc/$pkgbase/fsfreeze-hook
   )
-  optdepends=('qemu-headless-arch-extra: extra architectures support')
+  install=$pkgname.install
+  mv -v $pkgname/* "$pkgdir"
+  install -vDm 644 $pkgbase-$pkgver/contrib/systemd/$pkgname.service -t 
"$pkgdir/usr/lib/systemd/system/"
+  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 644 $pkgbase-$pkgver/scripts/$pkgname/fsfreeze-hook -t 
"$pkgdir/etc/$pkgbase/"
+  install -vdm 755 "$pkgdir/etc/$pkgbase/fsfreeze-hook.d"
+}
 
-  _package headless
+package_qemu-hw-display-qxl() {
+  pkgdesc="QEMU QXL display device"
+  depends=(gcc-libs glibc pixman libpixman-1.so qemu qemu-ui-spice-core spice 
libspice-server.so)
+  mv -v $pkgname/* "$pkgdir"
 }
 
-_package() {
-  optdepends+=('samba: SMB/CIFS server support'
-               'qemu-block-iscsi: iSCSI block support'
-               'qemu-block-rbd: RBD block support'
-               'qemu-block-gluster: glusterfs block support')
-  install=qemu.install
-  options=(!strip !emptydirs)
+package_qemu-hw-display-virtio-gpu() {
+  pkgdesc="QEMU virtio-gpu display device"
+  depends=(glibc pixman libpixman-1.so qemu)
+  mv -v $pkgname/* "$pkgdir"
+}
 
-  DESTDIR="$pkgdir" ninja -C build-$1 install "${@:2}"
+package_qemu-hw-display-virtio-gpu-gl() {
+  pkgdesc="QEMU virtio-gpu-gl display device"
+  depends=(glibc qemu virglrenderer)
+  mv -v $pkgname/* "$pkgdir"
+}
 
-  # systemd stuff
-  install -Dm644 65-kvm.rules "$pkgdir/usr/lib/udev/rules.d/65-kvm.rules"
+package_qemu-hw-display-virtio-gpu-pci() {
+  pkgdesc="QEMU virtio-gpu-pci display device"
+  depends=(qemu)
+  mv -v $pkgname/* "$pkgdir"
+}
 
-  # remove conflicting /var/run directory
-  cd "$pkgdir"
-  rm -r var
+package_qemu-hw-display-virtio-gpu-pci-gl() {
+  pkgdesc="QEMU virtio-gpu-pci-gl display device"
+  depends=(qemu)
+  mv -v $pkgname/* "$pkgdir"
+}
 
-  cd usr/lib
+package_qemu-hw-display-virtio-vga() {
+  pkgdesc="QEMU virtio-vga display device"
+  depends=(qemu)
+  mv -v $pkgname/* "$pkgdir"
+}
 
-  # bridge_helper needs suid
-  # https://bugs.archlinux.org/task/32565
-  chmod u+s qemu/qemu-bridge-helper
+package_qemu-hw-display-virtio-vga-gl() {
+  pkgdesc="QEMU virtio-vga-gl display device"
+  depends=(qemu)
+  mv -v $pkgname/* "$pkgdir"
+}
 
-  # remove split block modules
-  rm qemu/block-{iscsi,rbd,gluster}.so
+package_qemu-hw-s390x-virtio-gpu-ccw() {
+  pkgdesc="QEMU s390x-virtio-gpu-ccw display device"
+  depends=(qemu)
+  mv -v $pkgname/* "$pkgdir"
+}
 
-  cd ../bin
+package_qemu-system-aarch64() {
+  pkgdesc="QEMU system emulator for AARCH64"
+  depends=("${_qemu_system_deps[@]}" edk2-armvirt systemd-libs libudev.so)
+  mv -v $pkgname/* "$pkgdir"
+}
 
-  # remove extra arch
-  for _bin in qemu-*; do
-    [[ -f $_bin ]] || continue
+package_qemu-system-alpha() {
+  pkgdesc="QEMU system emulator for Alpha"
+  depends=("${_qemu_system_deps[@]}" systemd-libs libudev.so)
+  options=(!strip)
+  mv -v $pkgname/* "$pkgdir"
+}
 
-    case ${_bin#qemu-} in
-      # guest agent
-      ga) rm "$_bin"; continue ;;
+package_qemu-system-arm() {
+  pkgdesc="QEMU system emulator for ARM"
+  depends=("${_qemu_system_deps[@]}" systemd-libs libudev.so)
+  options=(!strip)
+  mv -v $pkgname/* "$pkgdir"
+}
 
-      # tools
-      edid|img|io|keymap|nbd|pr-helper|storage-daemon) continue ;;
+package_qemu-system-avr() {
+  pkgdesc="QEMU system emulator for AVR"
+  depends=("${_qemu_system_deps[@]}")
+  mv -v $pkgname/* "$pkgdir"
+}
 
-      # core emu
-      system-${_corearch}) continue ;;
-    esac
+package_qemu-system-cris() {
+  pkgdesc="QEMU system emulator for CRIS"
+  depends=("${_qemu_system_deps[@]}")
+  mv -v $pkgname/* "$pkgdir"
+}
 
-    mv "$_bin" "$srcdir/extra-arch-$1/usr/bin"
-  done
+package_qemu-system-hppa() {
+  pkgdesc="QEMU system emulator for HPPA"
+  depends=("${_qemu_system_deps[@]}" systemd-libs libudev.so)
+  options=(!strip)
+  mv -v $pkgname/* "$pkgdir"
+}
 
-  cd ../share/qemu
-  for _blob in *; do
-    [[ -f $_blob ]] || continue
+package_qemu-system-m68k() {
+  pkgdesc="QEMU system emulator for ColdFire (m68k)"
+  depends=("${_qemu_system_deps[@]}")
+  mv -v $pkgname/* "$pkgdir"
+}
 
-    case $_blob in
-      # provided by seabios package
-      bios.bin|bios-256k.bin|vgabios-cirrus.bin|vgabios-qxl.bin|\
-      
vgabios-stdvga.bin|vgabios-vmware.bin|vgabios-virtio.bin|vgabios-bochs-display.bin|\
-      vgabios-ramfb.bin) rm "$_blob"; continue ;;
+package_qemu-system-microblaze() {
+  pkgdesc="QEMU system emulator for ColdFire (m68k)"
+  depends=("${_qemu_system_deps[@]}")
+  mv -v $pkgname/* "$pkgdir"
+}
 
-      # provided by edk2-ovmf package
-      edk2-*) rm "$_blob"; continue ;;
+package_qemu-system-mips() {
+  pkgdesc="QEMU system emulator for MIPS"
+  depends=("${_qemu_system_deps[@]}" systemd-libs libudev.so)
+  mv -v $pkgname/* "$pkgdir"
+}
 
-      # iPXE ROMs
-      efi-*|pxe-*) continue ;;
+package_qemu-system-nios2() {
+  pkgdesc="QEMU system emulator for nios2"
+  depends=("${_qemu_system_deps[@]}")
+  mv -v $pkgname/* "$pkgdir"
+}
 
-      # core blobs
-      
bios-microvm.bin|kvmvapic.bin|linuxboot*|multiboot.bin|sgabios.bin|vgabios*) 
continue ;;
+package_qemu-system-or1k() {
+  pkgdesc="QEMU system emulator for OpenRisc32"
+  depends=("${_qemu_system_deps[@]}")
+  mv -v $pkgname/* "$pkgdir"
+}
 
-      # Trace events definitions
-      trace-events*) continue ;;
-    esac
+package_qemu-system-ppc() {
+  pkgdesc="QEMU system emulator for PPC"
+  # NOTE: will require openbios
+  depends=("${_qemu_system_deps[@]}" systemd-libs libudev.so)
+  options=(!strip)
+  mv -v $pkgname/* "$pkgdir"
+  install -vDm 644 95-$pkgname.conf -t "$pkgdir/etc/security/limits.d/"
+}
 
-    mv "$_blob" "$srcdir/extra-arch-$1/usr/share/qemu"
-  done
+package_qemu-system-riscv() {
+  pkgdesc="QEMU system emulator for RISC-V"
+  depends=("${_qemu_system_deps[@]}" systemd-libs libudev.so)
+  options=(!strip)
+  mv -v $pkgname/* "$pkgdir"
+}
 
-  # provided by edk2-ovmf package
-  rm -r firmware
+package_qemu-system-rx() {
+  pkgdesc="QEMU system emulator for RX"
+  depends=("${_qemu_system_deps[@]}")
+  mv -v $pkgname/* "$pkgdir"
+}
 
-  cd ..
-  if [ "$1" = headless ]; then rm -r {applications,icons}; fi
+package_qemu-system-s390x() {
+  pkgdesc="QEMU system emulator for S390"
+  depends=("${_qemu_system_deps[@]}")
+  options=(!strip)
+  mv -v $pkgname/* "$pkgdir"
 }
 
-package_qemu-arch-extra() {
-  pkgdesc="QEMU for foreign architectures"
-  depends=(
-    dtc
-    fuse3
-    gcc-libs
-    gnutls
-    libaio
-    libbpf libbpf.so
-    glib2 libgio-2.0.so libglib-2.0.so libgobject-2.0.so libgmodule-2.0.so
-    libjpeg 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
-    snappy
-    systemd-libs
-    libudev.so
-    qemu
-    vde2
-    zlib
-    zstd
-    libzstd.so
-  )
-  optdepends=(
-    'edk2-armvirt: for aarch64 UEFI support'
-    'edk2-ovmf: for ia32 and x64 UEFI support'
-  )
-  provides=(qemu-headless-arch-extra)
-  conflicts=(qemu-headless-arch-extra)
+package_qemu-system-sh4() {
+  pkgdesc="QEMU system emulator for SH4"
+  depends=("${_qemu_system_deps[@]}" systemd-libs libudev.so)
+  mv -v $pkgname/* "$pkgdir"
+}
+
+package_qemu-system-sparc() {
+  pkgdesc="QEMU system emulator for SPARC"
+  # NOTE: will require openbios
+  depends=("${_qemu_system_deps[@]}" systemd-libs libudev.so)
   options=(!strip)
+  mv -v $pkgname/* "$pkgdir"
+}
 
-  mv -v extra-arch-full/usr "$pkgdir"
+package_qemu-system-tricore() {
+  pkgdesc="QEMU system emulator for tricore"
+  depends=("${_qemu_system_deps[@]}")
+  mv -v $pkgname/* "$pkgdir"
 }
 
-package_qemu-headless-arch-extra() {
-  pkgdesc="QEMU without GUI, for foreign architectures"
+package_qemu-system-x86() {
+  pkgdesc="QEMU system emulator for x86"
+  depends=("${_qemu_system_deps[@]}" edk2-ovmf seabios systemd-libs libudev.so)
+  options=(!strip)
+  mv -v $pkgname/* "$pkgdir"
+}
+
+package_qemu-system-xtensa() {
+  pkgdesc="QEMU system emulator for Xtensa"
+  depends=("${_qemu_system_deps[@]}" systemd-libs libudev.so)
+  mv -v $pkgname/* "$pkgdir"
+}
+
+package_qemu-hw-usb-host() {
+  pkgdesc="QEMU USB host device"
+  depends=(glibc libusb libusb-1.0.so qemu)
+  mv -v $pkgname/* "$pkgdir"
+}
+
+package_qemu-hw-usb-redirect() {
+  pkgdesc="QEMU usbredir device"
+  depends=(gcc-libs glibc qemu 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)
+  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 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 multipath-tools pam libpam.so qemu)
+  mv -v $pkgname/* "$pkgdir"
+  install -vDm 644 $pkgbase-$pkgver/contrib/systemd/$pkgname.{service,socket} 
-t "$pkgdir/usr/lib/systemd/system/"
+}
+
+package_qemu-tests() {
+  pkgdesc="QEMU tests"
+  depends=(qemu)
+  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)
+  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)
+  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)
+  mv -v $pkgname/* "$pkgdir"
+}
+
+package_qemu-ui-egl-headless() {
+  pkgdesc="QEMU EGL headless UI driver"
+  depends=(glibc libepoxy qemu qemu-ui-opengl)
+  mv -v $pkgname/* "$pkgdir"
+}
+
+package_qemu-ui-gtk() {
+  pkgdesc="QEMU GTK UI driver"
   depends=(
-    dtc
-    fuse3
+    cairo
     gcc-libs
-    gnutls
-    libaio
-    libbpf libbpf.so
-    glib2 libgio-2.0.so libglib-2.0.so libgobject-2.0.so libgmodule-2.0.so
-    libjpeg libjpeg.so
-    libpng
-    libsasl
-    libseccomp libseccomp.so
-    libslirp libslirp.so
-    liburing liburing.so
-    lzo
-    ndctl
-    numactl libnuma.so
-    pam libpam.so
+    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
-    snappy
-    qemu-headless
-    systemd-libs libudev.so
-    vde2
-    zlib
-    zstd libzstd.so
+    qemu
+    qemu-ui-opengl
+    vte3 libvte-2.91.so
   )
-  optdepends=(
-    'edk2-armvirt: for aarch64 UEFI support'
-    'edk2-ovmf: for ia32 and x64 UEFI support'
-  )
-  options=(!strip)
+  mv -v $pkgname/* "$pkgdir"
+}
 
-  mv -v extra-arch-headless/usr "$pkgdir"
+package_qemu-ui-opengl() {
+  pkgdesc="QEMU OpenGL UI driver"
+  depends=(glibc libepoxy mesa pixman libpixman-1.so qemu)
+  mv -v $pkgname/* "$pkgdir"
 }
 
-package_qemu-block-iscsi() {
-  pkgdesc="QEMU iSCSI block module"
-  depends=(glibc libiscsi)
+package_qemu-ui-sdl() {
+  pkgdesc="QEMU SDL UI driver"
+  depends=(glib2 libglib-2.0.so glibc libx11 pixman libpixman-1.so qemu 
sdl2_image sdl2)
+  mv -v $pkgname/* "$pkgdir"
+}
 
-  install -vDm 755 build-full/block-iscsi.so -t "$pkgdir/usr/lib/qemu/"
+package_qemu-ui-spice-app() {
+  pkgdesc="QEMU spice app UI driver"
+  depends=(glib2 libgio-2.0.so libglib-2.0.so glibc qemu qemu-chardev-spice 
qemu-ui-spice-core)
+  mv -v $pkgname/* "$pkgdir"
 }
 
-package_qemu-block-rbd() {
-  pkgdesc="QEMU RBD block module"
-  depends=(glibc ceph-libs)
+package_qemu-ui-spice-core() {
+  pkgdesc="QEMU spice core UI driver"
+  depends=(gcc-libs glibc pixman libpixman-1.so qemu qemu-ui-opengl spice 
libspice-server.so)
+  mv -v $pkgname/* "$pkgdir"
+}
 
-  install -vDm 755 build-full/block-rbd.so -t "$pkgdir/usr/lib/qemu/"
+package_qemu-user() {
+  pkgdesc="QEMU user mode emulation"
+  depends=(gcc-libs glib2 libglib-2.0.so libgmodule-2.0.so glibc gnutls 
liburing liburing.so qemu zlib)
+  mv -v $pkgname/* "$pkgdir"
 }
 
-package_qemu-block-gluster() {
-  pkgdesc="QEMU GlusterFS block module"
-  depends=(glibc glusterfs)
+# package_qemu-user-static() {
+#   pkgdesc="QEMU static user mode emulation"
+#   depends=(glibc)
+#   mv -v $pkgname/* "$pkgdir"
+# }
 
-  install -vDm 755 build-full/block-gluster.so -t "$pkgdir/usr/lib/qemu/"
+package_qemu-vhost-user-gpu() {
+  pkgdesc="QEMU vhost-user-gpu display device"
+  depends=(gcc-libs glib2 libglib-2.0.so libgmodule-2.0.so glibc pixman 
libpixman-1.so mesa qemu virglrenderer)
+  mv -v $pkgname/* "$pkgdir"
 }
 
-package_qemu-guest-agent() {
-  pkgdesc="QEMU Guest Agent"
-  depends=(gcc-libs glib2 libudev.so liburing)
-  install=qemu-guest-agent.install
-
-  install -vDm 755 build-full/qga/qemu-ga -t "$pkgdir/usr/bin/"
-  install -vDm 644 qemu-guest-agent.service -t 
"$pkgdir/usr/lib/systemd/system/"
-  install -vDm 755 
"$srcdir/qemu-$pkgver/scripts/qemu-guest-agent/fsfreeze-hook" -t 
"$pkgdir/etc/qemu/"
+package_qemu-virtiofsd() {
+  pkgdesc="QEMU virtio-fs shared filesystem daemon"
+  depends=(gcc-libs glib2 libglib-2.0.so libgmodule-2.0.so glibc libcap-ng 
libcap-ng.so libseccomp libseccomp.so qemu)
+  mv -v $pkgname/* "$pkgdir"
 }
 
 # vim:set ts=2 sw=2 et:

Added: bridge.conf
===================================================================
--- bridge.conf                         (rev 0)
+++ bridge.conf 2022-04-21 20:19:04 UTC (rev 443489)
@@ -0,0 +1 @@
+allow virbr0

Added: qemu-ga.conf
===================================================================
--- qemu-ga.conf                                (rev 0)
+++ qemu-ga.conf        2022-04-21 20:19:04 UTC (rev 443489)
@@ -0,0 +1,10 @@
+[general]
+daemonize = 0
+fsfreeze-hook = /etc/qemu/fsfreeze-hook
+method = virtio-serial
+path = /dev/virtio-ports/org.qemu.guest_agent.0
+pidfile = /run/qemu-ga.pid
+statedir = /run
+verbose = 0
+# blacklist =
+# logfile =

Deleted: qemu-guest-agent.service
===================================================================
--- qemu-guest-agent.service    2022-04-21 20:03:05 UTC (rev 443488)
+++ qemu-guest-agent.service    2022-04-21 20:19:04 UTC (rev 443489)
@@ -1,9 +0,0 @@
-[Unit]
-Description=QEMU Guest Agent
-ConditionPathExists=/dev/virtio-ports/org.qemu.guest_agent.0
-
-[Service]
-ExecStart=/usr/bin/qemu-ga
-
-[Install]
-WantedBy=multi-user.target

Added: qemu-sysusers.conf
===================================================================
--- qemu-sysusers.conf                          (rev 0)
+++ qemu-sysusers.conf  2022-04-21 20:19:04 UTC (rev 443489)
@@ -0,0 +1,2 @@
+u qemu - "QEMU user" - -
+m qemu kvm

Modified: qemu.install
===================================================================
--- qemu.install        2022-04-21 20:03:05 UTC (rev 443488)
+++ qemu.install        2022-04-21 20:19:04 UTC (rev 443489)
@@ -1,8 +1,9 @@
-# Arg 1:  the new package version
 post_install() {
-  # trigger events on modules files when already loaded
-  for _f in /sys/devices/virtual/misc/vhost-net; do
-    [[ -e "$_f" ]] &&  udevadm trigger "$_f"
+  local _file
+  local _files=(/sys/devices/virtual/misc/vhost-net)
+
+  # trigger change event, if modules are already loaded
+  for _file in "${_files[@]}"; do
+    [[ -d "$_file" ]] &&  udevadm trigger --action=change "$_file"
   done
-  :
 }

Reply via email to