--- /dev/null
+{
+ "description": "SeaBIOS",
+ "interface-types": [
+ "bios"
+ ],
+ "mapping": {
+ "device": "memory",
+ "filename": "/usr/share/qemu/bios-256k.bin"
+ },
+ "targets": [
+ {
+ "architecture": "i386",
+ "machines": [
+ "pc-i440fx-*",
+ "pc-q35-*"
+ ]
+ },
+ {
+ "architecture": "x86_64",
+ "machines": [
+ "pc-i440fx-*",
+ "pc-q35-*"
+ ]
+ }
+ ],
+ "features": [
+ "acpi-s3",
+ "acpi-s4"
+ ],
+ "tags": [
+ "CONFIG_QEMU=y",
+ "CONFIG_ROM_SIZE=256",
+ "CONFIG_ATA_DMA=n"
+ ]
+}
--- /dev/null
+{
+ "description": "SeaBIOS",
+ "interface-types": [
+ "bios"
+ ],
+ "mapping": {
+ "device": "memory",
+ "filename": "/usr/share/qemu/bios.bin"
+ },
+ "targets": [
+ {
+ "architecture": "i386",
+ "machines": [
+ "pc-i440fx-*",
+ "pc-q35-*"
+ ]
+ },
+ {
+ "architecture": "x86_64",
+ "machines": [
+ "pc-i440fx-*",
+ "pc-q35-*"
+ ]
+ }
+ ],
+ "features": [
+ "acpi-s3",
+ "acpi-s4"
+ ],
+ "tags": [
+ "CONFIG_QEMU=y",
+ "CONFIG_ROM_SIZE=128",
+ "CONFIG_ATA_DMA=n",
+ "CONFIG_BOOTSPLASH=n",
+ "CONFIG_XEN=n",
+ "CONFIG_USB_OHCI=n",
+ "CONFIG_USB_XHCI=n",
+ "CONFIG_USB_UAS=n",
+ "CONFIG_SDCARD=n",
+ "CONFIG_TCGBIOS=n",
+ "CONFIG_MPT_SCSI=n",
+ "CONFIG_PVSCSI=n",
+ "CONFIG_NVME=n",
+ "CONFIG_USE_SMM=n",
+ "CONFIG_VGAHOOKS=n"
+ ]
+}
--- /dev/null
+KERNEL=="kvm", MODE="0666", GROUP="kvm"
--- /dev/null
+SUBSYSTEM=="virtio-ports", ATTR{name}=="org.qemu.guest_agent.0", TAG+="systemd", ENV{SYSTEMD_WANTS}+="qemu-guest-agent.service"
--- /dev/null
+# PACKAGING WORKFLOW(S)
+
+The qemu package follows a special maintenance workflow in order to support
+git based patching, including of submodules. Please use it in order to have
+changes you make be acceptable to the package maintainers.
+
+All the development happens at https://github.com/openSUSE/qemu. The relevant
+branch is `factory`.
+
+Any change to the package should be submitted in the form of a Pull Request
+against such repository and branch.
+
+The reminder of this document provides more details, explanations and examples
+for both contributors and maintainers.
+
+
+# FOR CONTRIBUTORS
+
+## BACKPORTING AN UPSTREAM PATCH
+
+For submitting a backport of an upstream patch, proceed as follows (a local
+copy of the repository is of course necessary).
+
+Identify the hash of the commit that needs backporting and do:
+
+ git cherry-pick -esx <commit_hash>
+
+This way, the changelog will already contain the reference to the upstream
+commit itself, and the appropriate "Signed-off-by:" tag.
+
+If the backport is related to Bugzilla (or Jira, and/or CVEs, etc) entry, add a
+reference to that, such as:
+
+ Resolves: bsc#123456
+
+Or:
+
+ References: jsc#PED-1234
+
+Or:
+
+ Resolves: bsc#7891011 (CVE-1234-5678)
+
+Add it between the "(cherry picked from commit ...)" line and the "Signed-off-by:"
+line that follows it.
+
+An example of the end result, where Dario Faggioli (<dfaggioli@suse.com>) is
+backporting upstream commit abe2c4bdb65e8dd in order to fix bug 1209546 from
+bugzilla.opensuse.org is:
+
+ test-vmstate: fix bad GTree usage, use-after-free
+
+ According to g_tree_foreach() documentation:
+ "The tree may not be modified while iterating over it (you can't
+ add/remove items)."
+
+ [...]
+
+ Get rid of the node removal within the tree traversal. Also
+ check the trees have the same number of nodes before the actual
+ diff.
+
+ Fixes: 9a85e4b8f6 ("migration: Support gtree migration")
+ Resolves: https://gitlab.com/qemu-project/qemu/-/issues/1518
+ Signed-off-by: Marc-Andr303251 Lureau <marcandre.lureau@redhat.com>
+ Signed-off-by: Eric Auger <eric.auger@redhat.com>
+ Reported-by: Richard W.M. Jones <rjones@redhat.com>
+ Tested-by: Richard W.M. Jones <rjones@redhat.com>
+ Reviewed-by: Richard W.M. Jones <rjones@redhat.com>
+ Reviewed-by: Daniel P. Berrang303251 <berrange@redhat.com>
+ Reviewed-by: Juan Quintela <quintela@redhat.com>
+ Signed-off-by: Juan Quintela <quintela@redhat.com>
+ (cherry picked from commit abe2c4bdb65e8dd9cb2f01c355baa394bf49a8af)
+ Resolves: bsc#1209546
+ Signed-off-by: Dario Faggioli <dfaggioli@suse.com>
+
+Of course, all conflicts and issues should be resolved, before committing the
+result/completing the cherry-picking.
+
+At this point, the PR should be opened. As soon as that happens, some checks
+will be run automatically and the maintainers of the QEMU package will review
+and, eventually, merge or reject it.
+
+PRs containing multiple commits are allowed. They are actually encouraged, if
+the patches being backported are related and/or dependant among each others. It
+must, however, always be the case that each upstream commit is cherry-picked
+individually.
+
+Note that there is no need to change any 'qemu.changes' file. That will, in
+fact be handled by the package maintainers (and such RPM changelog entries will
+be automatically generated out of the git commit messages).
+
+## ADDING A PATCH NOT COMING FROM UPSTREAM
+
+Downstream patches, i.e., patches that are not backports of upstream commits,
+should be avoided as much as possible. The (largely!) recommended approach is
+to submit the patch upstream and then, once it is accepted and committed,
+backport it.
+
+If that is not possible (for whatever reason), a pull request with a downstream
+only patch can be opened. The procedure is almost identical to the one described
+above for upstream backports. The main differences are:
+
+1) Downstream only patch cannot be cherry-picked from upstream commits, of
+ course. Therefore, the PR will consist of the commit(s) that introduces the
+ patch.
+
+2) There will be no "(cherry picked from commit ...") line in the changelog
+ of a downstream only patch. On the other hand, the "Resolves:" or
+ "Reference:" tag, that link the patch to the issue it's trying to solve,
+ must be there, and the same is true for the "Signed-off-by:" tag
+ indicating who is proposing adding it.
+
+3) It is required that the subject of the commit starts with the [openSUSE] tag.
+
+An example of a downstream only commit is:
+
+ [openSUSE] pc: q35: Bump max_cpus to 1024
+
+ And use the new limit for machine version 7.1 too.
+ Keep the old limit of 288 for machine versions 7.0 and earlier.
+
+ Signed-off-by: Dario Faggioli <dfaggioli@suse.com>
+ References: bsc#1202282, jsc#PED-2592
+ Signed-off-by: Dario Faggioli <dfaggioli@suse.com>
+
+## CHANGING THE PACKAGING FILES
+
+Files that are necessary for building the RPM (like the spec file) or that
+are part of the RPM and will be copied in the appropriate places in the
+filesystem when it is installed are also part of the git repository. In fact,
+they can be found in the `rpm/` directory.
+
+Any addition, removal or change of and on any of those file should just be done
+as a regular commit, and a pull request including such commit(s) should be
+opened.
+
+Commits to packaging files should be prefixed with both the [openSUSE] tag and
+an [RPM] tag. An example can be this one:
+
+ [openSUSE][RPM] Add downstream packaging files
+
+ Stash the "packaging files" in the QEMU repository, in the rpm/
+ directory. During package build, they will be pulled out from there
+ and used as appropriate.
+
+ Signed-off-by: Dario Faggioli <dfaggioli@suse.com>
+
+## ADDING A PATCH IN A SUBMODULE
+
+For including a backport, or in general adding a patch, to a submodule, the
+downstream git repository for the submodule must be checkedout at the location
+where the submodule resides, in the main QEMU git repository.
+
+For example, for including a downstream patch in the ipxe submodule, a local
+copy of the repository https://github.com/openSUSE/qemu-ipxe.git is necessary.
+After checking out the `factory` branch, add the patch there (cherry-picking
+it from upstream, if it is a backport, and respecting all the tagging rules
+explained in the previous sections).
+
+At this point:
+- the branch must be pushed;
+- in the main (qemu) repository, a commit must be added and pushed, for making
+ sure that the new patch is picked up.
+
+Basically, the commit in the main repository is how the information that a
+submodule as a new head is recorded.
+
+The changelog of such commit shall include a reference to the subjects of all
+the new commits in the various submodules. Unfortinately, there is not yet a
+good way of achieving this automatically.
+
+As last step, a pull request should be opened, as usual.
+
+## REMOVING PATCHES
+
+If a patch, or, in general, a commit, that is already part of the repository
+must be removed, this must be done without rewriting the git history, i.e., with
+a revert (and then a pull request with the revert should be opened).
+
+
+# FOR MAINTAINERS
+
+## REVIEWING AND ACCEPTING PRs
+
+TODO
+
+## COMMITTING CHANGES INTO FACTORY
+
+TODO
+
+## UPDATING THE BASE QEMU VERSION
+
+TODO
+
+
+# MANUAL AND AUTOMATED CHECKS
+
+TODO
+
+
+
--- /dev/null
+arch i586 targets armv7l:cross aarch64:cross riscv64:cross
+arch i686 targets armv7l:cross aarch64:cross riscv64:cross
+arch x86_64 targets armv7l:cross aarch64:cross riscv64:cross
+arch i586 targets armv7l:x86-cross aarch64:x86-cross riscv64:x86-cross
+arch i686 targets armv7l:x86-cross aarch64:x86-cross riscv64:x86-cross
+arch x86_64 targets armv7l:x86_64-cross aarch64:x86_64-cross riscv64:x86_64-cross
+qemu-linux-user
+ +/
+qemu-linux-user-debuginfo
+ +/
+qemu-linux-user-debugsource
+ +/
+
+targettype cross package qemu-linux-user
+ autoreqprov off
+ +/
+ post "function setbinfmt () {"
+ post " local arch=$1"
+ post " local fmt=$2"
+ post " local comp_fmt=$(echo ${fmt} | sed -e 's/.*:://;s/:[^:]$//;s/\\x//g')"
+ post " local curr_fmt=$(cat /proc/sys/fs/binfmt_misc/${arch} | sed -ne '/interpreter/{s/interpreter //;h};/magic/{s/magic //;H};/mask/{s/mask //;G;s/\([^\n]*\)\n\([^\n]*\)\n\([^\n]*\)/\3:\1:\2/p}')"
+ post " if ( [ ! -e "/proc/sys/fs/binfmt_misc/${arch}" ] || [ "x${comp_fmt}" != "x${curr_fmt}" ] ); then"
+ post " builtin echo -1 > "/proc/sys/fs/binfmt_misc/${arch}""
+ post " builtin echo "${fmt}" > /proc/sys/fs/binfmt_misc/register"
+ post " fi"
+ post "}"
+ post "[ ! -d /proc/sys/fs/binfmt_misc ] && ( /sbin/modprobe binfmt_misc )"
+ post "[ ! -f /proc/sys/fs/binfmt_misc/register ] && ( mount binfmt_misc -t binfmt_misc /proc/sys/fs/binfmt_misc )"
+ post "[ -e /proc/sys/fs/binfmt_misc/arm64 ] && ( builtin echo -1 > /proc/sys/fs/binfmt_misc/arm64 )"
+ post "setbinfmt 'arm' ':arm:M::\x7f\x45\x4c\x46\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x28\x00:\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff:/usr/bin/qemu-arm-binfmt:P' "
+ post "setbinfmt 'armeb' ':armeb:M::\x7f\x45\x4c\x46\x01\x02\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x28:\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff:/usr/bin/qemu-armeb-binfmt:P'"
+ post "setbinfmt 'aarch64' ':aarch64:M::\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\xb7:\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff:/usr/bin/qemu-aarch64-binfmt:P'"
+ post "setbinfmt 'riscv64' ':riscv64:M::\x7fELF\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\xf3\x00:\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff:/usr/bin/qemu-riscv64-binfmt:P'"
+ post "# workaround for using ldd on non-pie executable causes segfault"
+ post "# ex) ldd /usr/bin/which"
+ post "# ldd: exited with unknown exit code (139)"
+ post "%ifarch aarch64"
+ post "echo 'export QEMU_GUEST_BASE=0x5500000000' > /etc/profile.d/qemu_base.sh"
+ post "chmod 755 /etc/profile.d/qemu_base.sh"
+ post "%endif"
+ post "%ifarch armv7l"
+ post "echo 'export QEMU_GUEST_BASE=0x11000000000' > /etc/profile.d/qemu_base.sh"
+ post "chmod 755 /etc/profile.d/qemu_base.sh"
+ post "%endif"
+
+targettype x86_64-cross package qemu-linux-user
+ autoreqprov off
+ +/
+ post "function setbinfmt () {"
+ post " local arch=$1"
+ post " local fmt=$2"
+ post " local comp_fmt=$(echo ${fmt} | sed -e 's/.*:://;s/:[^:]$//;s/\\x//g')"
+ post " local curr_fmt=$(cat /proc/sys/fs/binfmt_misc/${arch} | sed -ne '/interpreter/{s/interpreter //;h};/magic/{s/magic //;H};/mask/{s/mask //;G;s/\([^\n]*\)\n\([^\n]*\)\n\([^\n]*\)/\3:\1:\2/p}')"
+ post " if ( [ ! -e "/proc/sys/fs/binfmt_misc/${arch}" ] || [ "x${comp_fmt}" != "x${curr_fmt}" ] ); then"
+ post " builtin echo -1 > "/proc/sys/fs/binfmt_misc/${arch}""
+ post " builtin echo "${fmt}" > /proc/sys/fs/binfmt_misc/register"
+ post " fi"
+ post "}"
+ post "[ ! -d /proc/sys/fs/binfmt_misc ] && ( /sbin/modprobe binfmt_misc )"
+ post "[ ! -f /proc/sys/fs/binfmt_misc/register ] && ( mount binfmt_misc -t binfmt_misc /proc/sys/fs/binfmt_misc )"
+ post "[ -e /proc/sys/fs/binfmt_misc/arm64 ] && ( builtin echo -1 > /proc/sys/fs/binfmt_misc/arm64 )"
+ post "setbinfmt 'arm' ':arm:M::\x7f\x45\x4c\x46\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x28\x00:\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff:/usr/bin/qemu-arm-binfmt:P' "
+ post "setbinfmt 'armeb' ':armeb:M::\x7f\x45\x4c\x46\x01\x02\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x28:\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff:/usr/bin/qemu-armeb-binfmt:P'"
+ post "setbinfmt 'aarch64' ':aarch64:M::\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\xb7:\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff:/usr/bin/qemu-aarch64-binfmt:P'"
+ post "setbinfmt 'riscv64' ':riscv64:M::\x7fELF\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\xf3\x00:\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff:/usr/bin/qemu-riscv64-binfmt:P'"
+ post "# workaround for using ldd on non-pie executable causes segfault"
+ post "# ex) ldd /usr/bin/which"
+ post "# ldd: exited with unknown exit code (139)"
+ post "%ifarch aarch64"
+ post "echo 'export QEMU_GUEST_BASE=0x5500000000' > /etc/profile.d/qemu_base.sh"
+ post "chmod 755 /etc/profile.d/qemu_base.sh"
+ post "%endif"
+ post "%ifarch armv7l"
+ post "echo 'export QEMU_GUEST_BASE=0x11000000000' > /etc/profile.d/qemu_base.sh"
+ post "chmod 755 /etc/profile.d/qemu_base.sh"
+ post "%endif"
+
+targettype x86-cross package qemu-linux-user
+ autoreqprov off
+ +/
+ post "function setbinfmt () {"
+ post " local arch=$1"
+ post " local fmt=$2"
+ post " local comp_fmt=$(echo ${fmt} | sed -e 's/.*:://;s/:[^:]$//;s/\\x//g')"
+ post " local curr_fmt=$(cat /proc/sys/fs/binfmt_misc/${arch} | sed -ne '/interpreter/{s/interpreter //;h};/magic/{s/magic //;H};/mask/{s/mask //;G;s/\([^\n]*\)\n\([^\n]*\)\n\([^\n]*\)/\3:\1:\2/p}')"
+ post " if ( [ ! -e "/proc/sys/fs/binfmt_misc/${arch}" ] || [ "x${comp_fmt}" != "x${curr_fmt}" ] ); then"
+ post " builtin echo -1 > "/proc/sys/fs/binfmt_misc/${arch}""
+ post " builtin echo "${fmt}" > /proc/sys/fs/binfmt_misc/register"
+ post " fi"
+ post "}"
+ post "[ ! -d /proc/sys/fs/binfmt_misc ] && ( /sbin/modprobe binfmt_misc )"
+ post "[ ! -f /proc/sys/fs/binfmt_misc/register ] && ( mount binfmt_misc -t binfmt_misc /proc/sys/fs/binfmt_misc )"
+ post "[ -e /proc/sys/fs/binfmt_misc/arm64 ] && ( builtin echo -1 > /proc/sys/fs/binfmt_misc/arm64 )"
+ post "setbinfmt 'arm' ':arm:M::\x7f\x45\x4c\x46\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x28\x00:\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff:/usr/bin/qemu-arm-binfmt:P' "
+ post "setbinfmt 'armeb' ':armeb:M::\x7f\x45\x4c\x46\x01\x02\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x28:\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff:/usr/bin/qemu-armeb-binfmt:P'"
+ post "setbinfmt 'aarch64' ':aarch64:M::\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\xb7:\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff:/usr/bin/qemu-aarch64-binfmt:P'"
+ post "setbinfmt 'riscv64' ':riscv64:M::\x7fELF\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\xf3\x00:\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff:/usr/bin/qemu-riscv64-binfmt:P'"
+ post "# workaround for using ldd on non-pie executable causes segfault"
+ post "# ex) ldd /usr/bin/which"
+ post "# ldd: exited with unknown exit code (139)"
+ post "%ifarch aarch64"
+ post "echo 'export QEMU_GUEST_BASE=0x5500000000' > /etc/profile.d/qemu_base.sh"
+ post "chmod 755 /etc/profile.d/qemu_base.sh"
+ post "%endif"
+ post "%ifarch armv7l"
+ post "echo 'export QEMU_GUEST_BASE=0x11000000000' > /etc/profile.d/qemu_base.sh"
+ post "chmod 755 /etc/profile.d/qemu_base.sh"
+ post "%endif"
+
--- /dev/null
+# Access control file for qemu bridge helper
+# Syntax consists of:
+# # comment (ignored)
+# allow all
+# allow <bridge_name>
+# deny all
+# deny <bridge_name>
+# include /path/to/additional/ACL/file
+# Users are blacklisted by default and 'deny' takes precedence over 'allow'.
+# Including additional ACL files allows file access permissions to be used as
+# a component of the policy to allow access or deny access to specific bridges.
--- /dev/null
+#!/bin/bash
+
+# config.sh:
+
+# The next few VARIABLES are to be edited as required:
+
+# Package name. (In multibuild, it's the base package). Used to ref spec file.
+PKG=qemu
+
+# Here is the git repo which tracks a separate upstream git based project
+# We take this approach so we can have our own tags and branches, and store
+# the patches in git for others to access outside of the bundle.
+PACKAGE_MAIN_GIT_REPO=https://github.com/openSUSE/qemu.git
+
+# This is the upstream for the PACKAGE_MAIN_GIT_REPO
+UPSTREAM_GIT_REPO=https://gitlab.com/qemu-project/qemu.git
+
+# The following specifies the upstream tag or commit upon which our patchqueue
+# gets rebased. The special value LATEST may be used to "automatically" track
+# the upstream development tree in the master branch
+#GIT_UPSTREAM_COMMIT_ISH=v7.0.0
+GIT_UPSTREAM_COMMIT_ISH=v7.1.0
+# WARNING: If transitioning from using LATEST to not, MANUALLY re-set the
+# tarball present. If transitioning TO LATEST, make sure that
+# NEXT_RELEASE_IS_MAJOR is set correctly
+# This is used to choose the version number when LATEST processing is active
+NEXT_RELEASE_IS_MAJOR=1
+
+# Unfortunately, SeaBIOS doesn't always follow an "always increasing" version
+# model, so there may be times we should overide the automated version setting.
+# We can do so by specifing the value here:
+#SEABIOS_VERSION=1.13.0
+
+# In following, use 1 or 0 as needed (representing true or false respectively)
+NUMBERED_PATCHES=0
+
+PATCH_RANGE=1000
+
+# For compatibility with old packages, we include this option
+OVERRIDE_FIVE_DIGIT_NUMBERING=0
+
+# Path to be used for temporary files, directories, repositories, etc.
+# Default is /dev/shm. An alternative could be /tmp (e.g., when building
+# in containers, or whatever).
+#TMPDIR=/dev/shm
+TMPDIR=/tmp
+
+# This array tracks all git submodule paths within the superproject (1st entry)
+PATCH_PATH_MAP=(
+ ""
+ "roms/seabios/"
+ "roms/ipxe/"
+ "roms/sgabios/"
+ "roms/edk2/"
+ "roms/skiboot/"
+ "roms/SLOF/"
+ "roms/openbios/"
+ "ui/keycodemapdb/"
+ "slirp/"
+ "roms/u-boot/"
+ "roms/qboot/"
+ "dtc/"
+ "roms/opensbi/"
+ "roms/edk2/CryptoPkg/Library/OpensslLib/openssl/"
+ "capstone/"
+ "roms/qemu-palcode/"
+ "roms/seabios-hppa/"
+ "roms/u-boot-sam460ex/"
+ "roms/QemuMacDrivers/"
+ "meson/"
+ "tests/fp/berkeley-softfloat-3/"
+ "tests/fp/berkeley-testfloat-3/"
+ "tests/lcitool/libvirt-ci"
+ "roms/edk2/ArmPkg/Library/ArmSoftFloatLib/berkeley-softfloat-3/"
+ "roms/edk2/CryptoPkg/Library/OpensslLib/openssl/boringssl/"
+ "roms/edk2/CryptoPkg/Library/OpensslLib/openssl/krb5/"
+ "roms/edk2/CryptoPkg/Library/OpensslLib/openssl/pyca-cryptography/"
+ "roms/edk2/BaseTools/Source/C/BrotliCompress/brotli/"
+ "roms/edk2/MdeModulePkg/Library/BrotliCustomDecompressLib/brotli/"
+ "roms/edk2/MdeModulePkg/Universal/RegularExpressionDxe/oniguruma/"
+ "roms/edk2/UnitTestFrameworkPkg/Library/CmockaLib/cmocka/"
+ "roms/vbootrom/"
+ "roms/edk2/RedfishPkg/Library/JsonLib/jansson"
+)
+
+# (order and count must correspond to PATCH_PATH_MAP)
+LOCAL_REPO_MAP=(
+ ~/git/qemu-opensuse
+ ~/git/qemu-seabios
+ ~/git/qemu-ipxe
+ ~/git/qemu-sgabios
+ ~/git/qemu-edk2
+ ~/git/qemu-skiboot
+ ~/git/qemu-SLOF
+ ~/git/qemu-openbios
+ ~/git/qemu-keycodemapdb
+ ~/git/qemu-slirp
+ ~/git/qemu-u-boot
+ ~/git/qemu-qboot
+ ~/git/qemu-dtc
+ ~/git/qemu-opensbi
+ ~/git/qemu-edk2-openssl
+ ~/git/qemu-capstone
+ ~/git/qemu-qemu-palcode
+ ~/git/qemu-seabios-hppa
+ ~/git/qemu-u-boot-sam460ex
+ ~/git/qemu-QemuMacDrivers
+ ~/git/qemu-meson
+ ~/git/qemu-tests-berkeley-softfloat-3
+ ~/git/qemu-tests-berkeley-testfloat-3
+ ~/git/qemu-tests-lcitool-libvirt-ci
+ ~/git/qemu-edk2-berkeley-softfloat-3
+ ~/git/qemu-edk2-openssl-boringssl
+ ~/git/qemu-edk2-openssl-krb5
+ ~/git/qemu-edk2-openssl-pyca-cryptography
+ ~/git/qemu-edk2-BrotliCompress-brotli
+ ~/git/qemu-edk2-BrotliCustomDecompressLib-brotli
+ ~/git/qemu-edk2-oniguruma
+ ~/git/qemu-edk2-cmocka
+ ~/git/qemu-vbootrom
+ ~/git/qemu-edk2-jansson
+)
--- /dev/null
+[Unit]
+Description=Kernel Samepage Merging
+ConditionPathExists=/sys/kernel/mm/ksm
+ConditionVirtualization=no
+
+[Service]
+Type=oneshot
+RemainAfterExit=yes
+ExecStart=/bin/bash -c "/bin/echo 1 > /sys/kernel/mm/ksm/run"
+ExecStop=/bin/bash -c "/bin/echo 0 > /sys/kernel/mm/ksm/run"
+
+[Install]
+WantedBy=multi-user.target
--- /dev/null
+# load kvm module at boot time
+kvm
+
--- /dev/null
+[Unit]
+Description=QEMU Guest Agent
+Documentation=http://wiki.qemu.org/Features/GuestAgent
+BindsTo=dev-virtio\x2dports-org.qemu.guest_agent.0.device
+After=dev-virtio\x2dports-org.qemu.guest_agent.0.device
+
+[Service]
+Type=simple
+ExecStart=-/usr/bin/qemu-ga -p /dev/virtio-ports/org.qemu.guest_agent.0
+Restart=always
+RestartSec=0
+
+[Install]
+WantedBy=dev-virtio\x2dports-org.qemu.guest_agent.0.device
--- /dev/null
+#!/bin/sh
+
+# sample bridge qemu-ifup script
+
+echo 'configuring qemu network with bridge for' $*
+
+# If bridge is not specified, try device with default route.
+bridge=$2
+if [ -z "$bridge" ]; then
+ bridge=$(/usr/sbin/ip route list | /usr/bin/awk '/^default / { print $5 }')
+fi
+
+# Exit if $bridge is not a bridge. Exit with 0 status
+# so qemu process is not terminated and provide message
+# about failure to setup network.
+if [ ! -e "/sys/class/net/${bridge}/bridge" ]
+then
+ echo "WARNING! ${bridge} is not a bridge. qemu-ifup exiting. VM may not have a functioning networking stack."
+ exit 0
+fi
+
+/usr/sbin/ip link set $1 up
+/usr/sbin/ip link set $1 master $bridge || true
--- /dev/null
+#
+# spec file for package qemu-linux-user
+#
+# Copyright (c) 2024 SUSE LLC
+#
+# All modifications and additions to the file contributed by third parties
+# remain the property of their copyright owners, unless otherwise agreed
+# upon. The license for this file, and modifications and additions to the
+# file, is the same license as for the pristine package itself (unless the
+# license for the pristine package is not an Open Source License, in which
+# case the license is the MIT License). An "Open Source License" is a
+# license that conforms to the Open Source Definition (Version 1.9)
+# published by the Open Source Initiative.
+
+# Please submit bugfixes or comments via https://bugs.opensuse.org/
+#
+
+
+%define _buildshell /bin/bash
+
+%define sbver 1.16.3_3_ga95067eb
+
+%define srcdir %{_builddir}/%buildsubdir
+%define blddir %srcdir/build
+
+%define build_x86_firmware 0
+%define build_ppc_firmware 0
+%define build_opensbi_firmware 0
+%define kvm_available 0
+%define legacy_qemu_kvm 0
+%define force_fit_virtio_pxe_rom 1
+
+%define with_xen 0%{!?_without_xen:1}
+
+%if "%{?distribution}" == ""
+%define distro private-build
+%else
+%define distro %{distribution}
+%endif
+
+# Items to exclude in ALP-based products
+%if 0%{?suse_version} == 1600
+%define with_xen 0
+%endif
+
+%bcond_with system_membarrier
+%bcond_with malloc_trim
+
+%bcond_with chkqtests
+
+%if 0%{?suse_version} > 1600
+# canokey is an openSUSE thing, not a SLE one
+%ifarch x86_64
+%bcond_without canokey
+%else
+%bcond_with canokey
+%endif
+%endif
+
+%if 0%{?suse_version} > 1600
+# XDP seems not to be there in SLE...
+%bcond_without xdp
+%else
+%bcond_with xdp
+%endif
+
+# Make it possible to build without spice (for SLE/Leap Micro)
+%bcond_without spice
+
+# We do not have the stuff needed to compile rutabaga support.
+# If/when we want to do it, we can check how it's done here:
+# https://src.fedoraproject.org/rpms/qemu/c/deeb9357cb751df21c566fd8408936cfb034d43b?branch=rawhide
+%define has_rutabaga_gfx 0
+
+%define has_virtiofsd 1
+# Upstream virtiofsd does not even build on 32 bit systems
+%ifarch %ix86 %arm
+%define has_virtiofsd 0
+%endif
+
+# non-x86 archs still seem to have some issues with Link Time Optimization
+%ifnarch %ix86 x86_64
+%define _lto_cflags %{nil}
+%endif
+
+%ifarch aarch64
+%define qemu_arch aarch64
+%endif
+%ifarch %arm
+%define qemu_arch arm
+%endif
+%ifarch %ix86
+%define qemu_arch i386
+%endif
+%ifarch ppc64
+%define qemu_arch ppc64
+%endif
+%ifarch ppc
+%define qemu_arch ppc
+%endif
+%ifarch ppc64le
+%define qemu_arch ppc64le
+%endif
+%ifarch riscv64
+%define qemu_arch riscv64
+%endif
+%ifarch s390x
+%define qemu_arch s390x
+%endif
+%ifarch x86_64
+%define qemu_arch x86_64
+%endif
+
+%define generic_qemu_description \
+QEMU provides full machine emulation and cross architecture usage. It closely\
+integrates with KVM and Xen virtualization, allowing for excellent performance.\
+Many options are available for defining the emulated environment, including\
+traditional devices, direct host device access, and interfaces specific to\
+virtualization.
+
+
+%ifarch %ix86 x86_64 s390x
+%define legacy_qemu_kvm 1
+%endif
+
+Name: qemu-linux-user
+URL: https://www.qemu.org/
+Summary: CPU emulator for user space
+License: BSD-2-Clause AND BSD-3-Clause AND GPL-2.0-only AND GPL-2.0-or-later AND LGPL-2.1-or-later AND MIT
+Group: System/Emulators/PC
+Version: 8.2.2
+Release: 0
+Source0: qemu-%{version}.tar.xz
+Source13: supported.s390.txt
+Source303: README.PACKAGING
+Source1000: qemu-rpmlintrc
+BuildRoot: %{_tmppath}/%{name}-%{version}-build
+BuildRequires: bison
+BuildRequires: glib2-devel-static >= 2.56
+BuildRequires: glibc-devel-static
+BuildRequires: (pcre-devel-static if glib2-devel-static < 2.73 else pcre2-devel-static)
+# passing filelist check for /usr/lib/binfmt.d
+#BuildRequires: systemd
+BuildRequires: zlib-devel-static
+# we must not install the qemu-linux-user package when under QEMU build
+%if 0%{?qemu_user_space_build:1}
+#!BuildIgnore: post-build-checks
+%endif
+BuildRequires: discount
+BuildRequires: fdupes
+BuildRequires: flex
+BuildRequires: gcc-c++
+BuildRequires: meson
+BuildRequires: ninja >= 1.7
+%if 0%{?suse_version} >= 1600
+BuildRequires: python3-Sphinx
+BuildRequires: python3-base >= 3.8
+%else
+BuildRequires: python311-Sphinx
+BuildRequires: python311-base
+%endif
+
+%description
+QEMU provides CPU emulation along with other related capabilities. This package
+provides programs to run user space binaries and libraries meant for another
+architecture. The syscall interface is intercepted and execution below the
+syscall layer occurs on the native hardware and operating system.
+
+%files
+%doc README.rst VERSION
+%license COPYING COPYING.LIB LICENSE
+%_bindir/qemu-aarch64
+%_bindir/qemu-aarch64_be
+%_bindir/qemu-alpha
+%_bindir/qemu-arm
+%_bindir/qemu-armeb
+%_bindir/qemu-cris
+%_bindir/qemu-hexagon
+%_bindir/qemu-hppa
+%_bindir/qemu-i386
+%_bindir/qemu-loongarch64
+%_bindir/qemu-m68k
+%_bindir/qemu-microblaze
+%_bindir/qemu-microblazeel
+%_bindir/qemu-mips
+%_bindir/qemu-mips64
+%_bindir/qemu-mips64el
+%_bindir/qemu-mipsel
+%_bindir/qemu-mipsn32
+%_bindir/qemu-mipsn32el
+%_bindir/qemu-nios2
+%_bindir/qemu-or1k
+%_bindir/qemu-ppc
+%_bindir/qemu-ppc64
+%_bindir/qemu-ppc64le
+%_bindir/qemu-riscv32
+%_bindir/qemu-riscv64
+%_bindir/qemu-s390x
+%_bindir/qemu-sh4
+%_bindir/qemu-sh4eb
+%_bindir/qemu-sparc
+%_bindir/qemu-sparc32plus
+%_bindir/qemu-sparc64
+%_bindir/qemu-x86_64
+%_bindir/qemu-xtensa
+%_bindir/qemu-xtensaeb
+%_sbindir/qemu-binfmt-conf.sh
+#%_prefix/lib/binfmt.d/qemu-*.conf
+# add files for tizen compatibility
+%_bindir/qemu-binfmt
+%_bindir/qemu-*-binfmt
+%_bindir/qemu-arm64
+%_bindir/qemu-*-static
+/qemu/
+
+%prep
+%setup -q -n qemu-%{version}
+
+# We have the meson subprojects there, but as submodules (because OBS
+# SCM bridge can handle the latter, but not the former) so we need to
+# apply the layering of the packagefiles manually
+meson subprojects packagefiles --apply berkeley-testfloat-3
+meson subprojects packagefiles --apply berkeley-softfloat-3
+
+%build
+
+%define rpmfilesdir %{_builddir}/qemu-%{version}/rpm
+
+%if %{legacy_qemu_kvm}
+# FIXME: Why are we copying the s390 specific one?
+cp %{SOURCE13} docs/supported.rst
+sed -i '/^\ \ \ about\/index.*/i \ \ \ supported.rst' docs/index.rst
+%endif
+
+find . -iname ".git" -exec rm -rf {} +
+
+mkdir -p %blddir
+cd %blddir
+
+# We define a few general and common options and then we disable
+# pretty much everything. Afterwards, there is a section for each
+# of the flavors where we explicitly enable all the feature we want
+# for them.
+
+# TODO: Check whether we want to enable the followings:
+# * avx512f
+# * debug-info
+# * fuse
+# * malloc-trim
+# * multiprocess
+# * qom-cast-debug
+# * trace-backends=dtrace
+#
+# Fedora has avx2 enabled for ix86, while we can't (I tried). Guess it's
+# because, for them, ix86 == i686 (while for us it's i586).
+
+# Let's try to stick to _FORTIFY_SOURCE=2 for now
+EXTRA_CFLAGS="$(echo %{optflags} | sed -E 's/-[A-Z]?_FORTIFY_SOURCE[=]?[0-9]*//g') -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -Wno-error"
+
+%srcdir/configure \
+%if 0%{?suse_version} >= 1600
+ --python=%_bindir/python3 \
+%else
+ --python=%_bindir/python3.11 \
+%endif
+ --docdir=%_docdir \
+ --datadir=%_datadir \
+ --extra-cflags="${EXTRA_CFLAGS}" \
+ --firmwarepath=%_datadir/%name \
+ --libdir=%_libdir \
+ --libexecdir=%_libexecdir \
+ --localstatedir=%_localstatedir \
+ --prefix=%_prefix \
+ --sysconfdir=%_sysconfdir \
+ --with-pkgversion="%(echo '%{distro}' | sed 's/ (.*)//')" \
+ --disable-af-xdp \
+ --disable-alsa \
+ --disable-attr \
+ --disable-auth-pam \
+ --disable-avx2 \
+ --disable-avx512f \
+ --disable-block-drv-whitelist-in-tools \
+ --disable-bochs \
+ --disable-bpf \
+ --disable-brlapi \
+ --disable-bsd-user \
+ --disable-bzip2 \
+ --disable-cap-ng \
+ --disable-capstone \
+ --disable-cfi \
+ --disable-cfi-debug \
+ --disable-cloop \
+ --disable-cocoa \
+ --disable-coreaudio \
+ --disable-coroutine-pool \
+ --disable-crypto-afalg \
+ --disable-curl \
+ --disable-curses \
+ --disable-dbus-display \
+ --disable-debug-info \
+ --disable-debug-mutex \
+ --disable-debug-tcg \
+ --disable-dmg \
+ --disable-docs \
+ --disable-download \
+ --disable-dsound \
+ --disable-fdt \
+ --disable-fuse \
+ --disable-fuse-lseek \
+ --disable-gcrypt \
+ --disable-gettext \
+ --disable-gio \
+ --disable-glusterfs \
+ --disable-gnutls \
+ --disable-gtk \
+ --disable-guest-agent \
+ --disable-guest-agent-msi \
+ --disable-hv-balloon \
+ --disable-hvf \
+ --disable-iconv \
+ --disable-jack \
+ --disable-kvm \
+ --disable-l2tpv3 \
+ --disable-libdaxctl \
+ --disable-libiscsi \
+ --disable-libkeyutils \
+ --disable-libnfs \
+ --disable-libpmem \
+ --disable-libssh \
+ --disable-libudev \
+ --disable-libusb \
+ --disable-linux-aio \
+ --disable-linux-io-uring \
+ --disable-linux-user \
+ --disable-live-block-migration \
+ --disable-lto \
+ --disable-lzfse \
+ --disable-lzo \
+ --disable-malloc-trim \
+ --disable-membarrier \
+ --disable-module-upgrades \
+ --disable-modules \
+ --disable-mpath \
+ --disable-multiprocess \
+ --disable-netmap \
+ --disable-nettle \
+ --disable-numa \
+ --disable-nvmm \
+ --disable-opengl \
+ --disable-oss \
+ --disable-pa \
+ --disable-parallels \
+ --disable-pie \
+ --disable-pipewire \
+ --disable-pixman \
+ --disable-plugins \
+ --disable-png \
+ --disable-pvrdma \
+ --disable-qcow1 \
+ --disable-qed \
+ --disable-qom-cast-debug \
+ --disable-rbd \
+ --disable-rdma \
+ --disable-relocatable \
+ --disable-replication \
+ --disable-rng-none \
+ --disable-rutabaga-gfx \
+ --disable-safe-stack \
+ --disable-sanitizers \
+ --disable-sdl \
+ --disable-sdl-image \
+ --disable-seccomp \
+ --disable-selinux \
+ --disable-slirp \
+ --disable-slirp-smbd \
+ --disable-smartcard \
+ --disable-snappy \
+ --disable-sparse \
+ --disable-spice \
+ --disable-spice-protocol \
+ --disable-strip \
+ --disable-system \
+ --disable-tcg \
+ --disable-tcg-interpreter \
+ --disable-tools \
+ --disable-tpm \
+ --disable-u2f \
+ --disable-usb-redir \
+ --disable-user \
+ --disable-vde \
+ --disable-vdi \
+ --disable-vhost-crypto \
+ --disable-vhost-kernel \
+ --disable-vhost-net \
+ --disable-vhost-user \
+ --disable-vhost-user-blk-server \
+ --disable-vhost-vdpa \
+ --disable-virglrenderer \
+ --disable-virtfs \
+ --disable-vnc \
+ --disable-vnc-jpeg \
+ --disable-vnc-sasl \
+ --disable-vte \
+ --disable-vvfat \
+ --disable-werror \
+ --disable-whpx \
+ --disable-xen \
+ --disable-xen-pci-passthrough \
+ --disable-xkbcommon \
+ --disable-zstd \
+ --without-default-devices \
+%if %{with system_membarrier}
+ --enable-membarrier \
+%endif
+%if %{with malloc_trim}
+ --enable-malloc-trim \
+%endif
+%if "%{_lto_cflags}" != "%{nil}"
+ --disable-lto \
+%endif
+ --disable-install-blobs \
+ --enable-attr \
+ --enable-coroutine-pool \
+ --enable-linux-user \
+ --enable-selinux \
+ --enable-tcg \
+ --static
+
+echo "=== Content of config-host.mak: ==="
+cat config-host.mak
+echo "=== ==="
+
+%make_build
+
+%install
+cd %blddir
+
+%make_build install DESTDIR=%{buildroot}
+
+rm -rf %{buildroot}%_datadir/qemu/keymaps
+unlink %{buildroot}%_datadir/qemu/trace-events-all
+install -d -m 755 %{buildroot}%_sbindir
+install -m 755 scripts/qemu-binfmt-conf.sh %{buildroot}%_sbindir
+#install -d -m 755 %{buildroot}%{_prefix}/lib/binfmt.d/
+#scripts/qemu-binfmt-conf.sh --systemd ALL --persistent yes --preserve-argv0 yes --exportdir %{buildroot}%{_prefix}/lib/binfmt.d/
+
+# add qemu-binfmt for tizen.
+ln -s qemu-binfmt %{buildroot}%_bindir/qemu-aarch64-binfmt
+ln -s qemu-binfmt %{buildroot}%_bindir/qemu-aarch64_be-binfmt
+ln -s qemu-binfmt %{buildroot}%_bindir/qemu-alpha-binfmt
+ln -s qemu-binfmt %{buildroot}%_bindir/qemu-arm-binfmt
+ln -s qemu-binfmt %{buildroot}%_bindir/qemu-armeb-binfmt
+ln -s qemu-binfmt %{buildroot}%_bindir/qemu-cris-binfmt
+ln -s qemu-binfmt %{buildroot}%_bindir/qemu-hexagon-binfmt
+ln -s qemu-binfmt %{buildroot}%_bindir/qemu-hppa-binfmt
+ln -s qemu-binfmt %{buildroot}%_bindir/qemu-i386-binfmt
+ln -s qemu-binfmt %{buildroot}%_bindir/qemu-loongarch64-binfmt
+ln -s qemu-binfmt %{buildroot}%_bindir/qemu-m68k-binfmt
+ln -s qemu-binfmt %{buildroot}%_bindir/qemu-microblaze-binfmt
+ln -s qemu-binfmt %{buildroot}%_bindir/qemu-microblazeel-binfmt
+ln -s qemu-binfmt %{buildroot}%_bindir/qemu-mips-binfmt
+ln -s qemu-binfmt %{buildroot}%_bindir/qemu-mips64-binfmt
+ln -s qemu-binfmt %{buildroot}%_bindir/qemu-mips64el-binfmt
+ln -s qemu-binfmt %{buildroot}%_bindir/qemu-mipsel-binfmt
+ln -s qemu-binfmt %{buildroot}%_bindir/qemu-mipsn32-binfmt
+ln -s qemu-binfmt %{buildroot}%_bindir/qemu-mipsn32el-binfmt
+ln -s qemu-binfmt %{buildroot}%_bindir/qemu-or1k-binfmt
+ln -s qemu-binfmt %{buildroot}%_bindir/qemu-ppc-binfmt
+ln -s qemu-binfmt %{buildroot}%_bindir/qemu-ppc64-binfmt
+ln -s qemu-binfmt %{buildroot}%_bindir/qemu-ppc64le-binfmt
+ln -s qemu-binfmt %{buildroot}%_bindir/qemu-riscv32-binfmt
+ln -s qemu-binfmt %{buildroot}%_bindir/qemu-riscv64-binfmt
+ln -s qemu-binfmt %{buildroot}%_bindir/qemu-s390x-binfmt
+ln -s qemu-binfmt %{buildroot}%_bindir/qemu-sh4-binfmt
+ln -s qemu-binfmt %{buildroot}%_bindir/qemu-sh4eb-binfmt
+ln -s qemu-binfmt %{buildroot}%_bindir/qemu-sparc-binfmt
+ln -s qemu-binfmt %{buildroot}%_bindir/qemu-sparc32plus-binfmt
+ln -s qemu-binfmt %{buildroot}%_bindir/qemu-sparc64-binfmt
+ln -s qemu-binfmt %{buildroot}%_bindir/qemu-x86_64-binfmt
+ln -s qemu-binfmt %{buildroot}%_bindir/qemu-xtensa-binfmt
+ln -s qemu-binfmt %{buildroot}%_bindir/qemu-xtensaeb-binfmt
+
+#from tizen patches: Add compatibility symlinks
+ln -sf qemu-arm %{buildroot}%_bindir/qemu-arm-static
+ln -sf qemu-aarch64 %{buildroot}%_bindir/qemu-aarch64-static
+ln -sf qemu-aarch64 %{buildroot}%_bindir/qemu-arm64
+ln -sf qemu-aarch64-binfmt %{buildroot}%_bindir/qemu-arm64-binfmt
+
+mkdir -p %{buildroot}/qemu
+for arch in arm{,64} aarch64;
+do
+ ln -sf %{_bindir}/qemu-$arch %{buildroot}/qemu/qemu-$arch
+ ln -sf %{_bindir}/qemu-$arch-binfmt %{buildroot}/qemu/qemu-$arch-binfmt
+done
+
+%fdupes -s %{buildroot}
+
+%check
+cd %blddir
+
+%ifarch aarch64 %ix86 ppc ppc64 ppc64le riscv64 s390x x86_64
+%{qemu_arch}-linux-user/qemu-%{qemu_arch} %_bindir/ls > /dev/null
+%endif
+
+%make_build check-softfloat
+
+%clean
+rm -rf %{buildroot}
+
+%changelog
--- /dev/null
+# This line is mandatory to access the configuration functions
+from Config import *
+
+addFilter("arch-dependent-file-in-usr-share")
+addFilter("obsolete-not-provided")
+addFilter("summary-not-capitalized")
+addFilter("executable-stack")
--- /dev/null
+#!/bin/bash
+#############################################################
+# Name: Supportconfig Plugin for QEMU/KVM
+# Description: Gathers important troubleshooting information
+# about QEMU
+#############################################################
+
+RCFILE="/usr/lib/supportconfig/resources/supportconfig.rc"
+OF="output-qemu.txt"
+
+if [ -s $RCFILE ]; then
+ if ! source $RCFILE; then
+ log_write $OF "ERROR: Initializing resource file: $RCFILE"
+ exit 1
+ fi
+fi
+
+rpm_verify $OF qemu || exit 111
+
+# skip if the host is xen
+log_write $OF "#==[ Checking if booted Xen ]=================================#"
+if [ -d /proc/xen ] && [ -e /proc/xen/capabilities ] && [ `cat /proc/xen/capabilities` = "control_d" ]; then
+ log_write $OF "Yes"
+ log_write $OF "Skipped"
+ exit 0
+else
+ log_write $OF "No"
+fi
+
+# basic system information
+log_cmd $OF "uname -r"
+log_cmd $OF "lscpu"
+log_cmd $OF "lspci -v"
+log_cmd $OF "lsscsi"
+log_cmd $OF "kvm_stat -1"
+log_cmd $OF "lsmod | grep ^kvm"
+for MODULE in `lsmod | grep ^kvm | cut -d ' ' -f 1`; do
+ log_cmd $OF "modinfo $MODULE"
+done
+log_cmd $OF "ps -ef | grep qemu"
+
+# list contents of common config and image directories
+log_cmd $OF "ls -alR /var/lib/libvirt/images/"
+
+# network-related info often useful for debugging
+nm_enabled=$(systemctl is-enabled NetworkManager.service > /dev/null 2>&1; echo $?)
+if [ $nm_enabled -eq 0 ]; then
+ log_write $OF "NOTE: NetworkManager should not be enabled on a KVM host"
+fi
+log_cmd $OF "ip route list"
+log_cmd $OF "ip neigh list"
+log_cmd $OF "ip link show type bridge"
+log_cmd $OF "bridge link show"
--- /dev/null
+-----BEGIN PGP PUBLIC KEY BLOCK-----
+
+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
+=YraJ
+-----END PGP PUBLIC KEY BLOCK-----
--- /dev/null
+#
+# spec file for package qemu
+#
+# Copyright (c) 2024 SUSE LLC
+#
+# All modifications and additions to the file contributed by third parties
+# remain the property of their copyright owners, unless otherwise agreed
+# upon. The license for this file, and modifications and additions to the
+# file, is the same license as for the pristine package itself (unless the
+# license for the pristine package is not an Open Source License, in which
+# case the license is the MIT License). An "Open Source License" is a
+# license that conforms to the Open Source Definition (Version 1.9)
+# published by the Open Source Initiative.
+
+# Please submit bugfixes or comments via https://bugs.opensuse.org/
+#
+
+
+%define _buildshell /bin/bash
+
+%define sbver 1.16.3_3_ga95067eb
+
+%define srcdir %{_builddir}/%buildsubdir
+%define blddir %srcdir/build
+
+%define build_x86_firmware 0
+%define build_ppc_firmware 0
+%define build_opensbi_firmware 0
+%define kvm_available 0
+%define legacy_qemu_kvm 0
+%define force_fit_virtio_pxe_rom 1
+
+%define with_xen 0%{!?_without_xen:1}
+
+%if "%{?distribution}" == ""
+%define distro private-build
+%else
+%define distro %{distribution}
+%endif
+
+# Items to exclude in ALP-based products
+%if 0%{?suse_version} == 1600
+%define with_xen 0
+%endif
+
+%bcond_with system_membarrier
+%bcond_with malloc_trim
+
+%bcond_with chkqtests
+
+%if 0%{?suse_version} > 1600
+# canokey is an openSUSE thing, not a SLE one
+%ifarch x86_64
+%bcond_without canokey
+%else
+%bcond_with canokey
+%endif
+%endif
+
+%if 0%{?suse_version} > 1600
+# XDP seems not to be there in SLE...
+%bcond_without xdp
+%else
+%bcond_with xdp
+%endif
+
+# Make it possible to build without spice (for SLE/Leap Micro)
+%bcond_without spice
+
+# We do not have the stuff needed to compile rutabaga support.
+# If/when we want to do it, we can check how it's done here:
+# https://src.fedoraproject.org/rpms/qemu/c/deeb9357cb751df21c566fd8408936cfb034d43b?branch=rawhide
+%define has_rutabaga_gfx 0
+
+%define has_virtiofsd 1
+# Upstream virtiofsd does not even build on 32 bit systems
+%ifarch %ix86 %arm
+%define has_virtiofsd 0
+%endif
+
+# non-x86 archs still seem to have some issues with Link Time Optimization
+%ifnarch %ix86 x86_64
+%define _lto_cflags %{nil}
+%endif
+
+%ifarch aarch64
+%define qemu_arch aarch64
+%endif
+%ifarch %arm
+%define qemu_arch arm
+%endif
+%ifarch %ix86
+%define qemu_arch i386
+%endif
+%ifarch ppc64
+%define qemu_arch ppc64
+%endif
+%ifarch ppc
+%define qemu_arch ppc
+%endif
+%ifarch ppc64le
+%define qemu_arch ppc64le
+%endif
+%ifarch riscv64
+%define qemu_arch riscv64
+%endif
+%ifarch s390x
+%define qemu_arch s390x
+%endif
+%ifarch x86_64
+%define qemu_arch x86_64
+%endif
+
+%define generic_qemu_description \
+QEMU provides full machine emulation and cross architecture usage. It closely\
+integrates with KVM and Xen virtualization, allowing for excellent performance.\
+Many options are available for defining the emulated environment, including\
+traditional devices, direct host device access, and interfaces specific to\
+virtualization.
+
+
+# So, we have openSUSE:Factory, and we have "ports". In openSUSE:Factory, we
+# have i586 and x86_64. In the :ARM port, we have aarch64, armv6l and armv7l.
+# In the :PowerPC port, we have ppc64, ppc and ppc64le. In the :zSystems port
+# we have s390x. And in the :RISCV we have riscv.
+#
+# Ideally, we'd want to build the firmwares at least once per port, and then
+# share the resulting packages among the arch-es within each port (check the
+# `ExportFilter` directives in the project config).
+#
+# Of course, we always build the "native fimrwares" (e.g., x86 firmwares on
+# x86_64, PPC firmwares on ppc64le, etc). But we also cross compile as much
+# firmwares as we can (e.g., both x86 and PPC firmwares on aarch64) so they'll
+# be available in as many ports as possible (as noarch packages).
+
+%ifarch x86_64 aarch64
+%define build_ppc_firmware 1
+# Currently, opensbi does not cross build cleanly on 15.3 and 15.4
+%if ! 0%{?sle_version}
+%define build_opensbi_firmware 1
+%endif
+%define build_x86_firmware 1
+%endif
+%ifarch ppc64 ppc64le
+%define build_ppc_firmware 1
+%if ! 0%{?sle_version}
+%define build_opensbi_firmware 1
+%endif
+# FIXME: Try to enable cross building of x86 firmwares here on PPC
+%endif
+%ifarch riscv64
+%define build_opensbi_firmware 1
+%endif
+
+%ifarch %ix86 x86_64 ppc ppc64 ppc64le s390x armv7hl aarch64 riscv64
+%define kvm_available 1
+%define with_uring 1
+%define liburing_min_version 1.0
+%endif
+
+%ifarch %ix86 x86_64 s390x
+%define legacy_qemu_kvm 1
+%endif
+
+%ifarch x86_64 aarch64 ppc64le s390x
+%define with_rbd 1
+%endif
+
+%ifarch x86_64 ppc64le
+%define with_daxctl 1
+%endif
+
+# enforce pxe rom sizes for migration compatability from SLE 11 SP3 forward
+# the following need to be > 64K
+%define supported_nics_large {e1000 rtl8139}
+# the following need to be <= 64K
+%define supported_nics_small {virtio}
+# Though not required, make unsupported pxe roms migration compatable as well
+%define unsupported_nics {eepro100 ne2k_pci pcnet}
+
+Name: qemu
+URL: https://www.qemu.org/
+Summary: Machine emulator and virtualizer
+License: BSD-2-Clause AND BSD-3-Clause AND GPL-2.0-only AND GPL-2.0-or-later AND LGPL-2.1-or-later AND MIT
+Group: System/Emulators/PC
+Version: 8.2.2
+Release: 0
+Source0: qemu-%{version}.tar.xz
+Source1: 80-kvm.rules
+Source2: kvm.conf
+Source3: qemu-ifup
+Source4: bridge.conf
+Source5: qemu-kvm.1.gz
+Source6: ksm.service
+Source7: qemu-guest-agent.service
+Source8: 80-qemu-ga.rules
+Source9: qemu-supportconfig
+Source10: supported.arm.txt
+Source11: supported.ppc.txt
+Source12: supported.x86.txt
+Source13: supported.s390.txt
+Source14: 50-seabios-256k.json
+Source15: 60-seabios-128k.json
+Source16: seabios_version
+Source17: skiboot_version
+Source18: openSUSE-pcbios-stub-out-the-SAN-req-s-i.patch
+Source19: DSDT.pcie
+Source20: APIC.core-count2
+Source21: DSDT.core-count2
+Source22: FACP.core-count2
+Source303: README.PACKAGING
+Source1000: qemu-rpmlintrc
+BuildRoot: %{_tmppath}/%{name}-%{version}-build
+## Packages we REQUIRE during build
+%if %{build_x86_firmware}
+%ifnarch %ix86 x86_64
+# We must cross-compile on non-x86*
+BuildRequires: cross-x86_64-binutils
+BuildRequires: cross-x86_64-gcc%gcc_version
+%endif
+BuildRequires: acpica
+BuildRequires: binutils-devel
+BuildRequires: dos2unix
+BuildRequires: glibc-devel-32bit
+BuildRequires: pkgconfig(liblzma)
+%endif
+%if %{build_opensbi_firmware}
+%ifnarch riscv64
+BuildRequires: cross-riscv64-binutils
+BuildRequires: cross-riscv64-gcc%gcc_version
+%endif
+%endif
+%if %{build_ppc_firmware}
+%ifnarch ppc64 ppc64le
+BuildRequires: cross-ppc64-binutils
+BuildRequires: cross-ppc64-gcc%gcc_version
+%endif
+%endif
+%ifarch x86_64
+BuildRequires: gcc-32bit
+%if %{with_xen}
+BuildRequires: xen-devel >= 4.2
+%endif
+BuildRequires: pkgconfig(libpmem)
+%endif
+%ifnarch %arm s390x
+BuildRequires: libnuma-devel
+%endif
+%if 0%{with canokey}
+BuildRequires: canokey-qemu-devel
+%endif
+%if 0%{?with_daxctl}
+BuildRequires: pkgconfig(libndctl)
+%endif
+%if %{kvm_available}
+BuildRequires: pkgconfig(udev)
+%endif
+%if 0%{?with_rbd}
+BuildRequires: librbd-devel
+%endif
+%if 0%{with spice}
+BuildRequires: pkgconfig(spice-protocol) >= 0.12.3
+BuildRequires: pkgconfig(spice-server) >= 0.12.5
+%endif
+%if 0%{?with_uring}
+BuildRequires: pkgconfig(liburing) >= %liburing_min_version
+%endif
+%if 0%{with xdp}
+BuildRequires: libxdp-devel
+%endif
+%if 0%{?suse_version} >= 1600
+BuildRequires: python3-Sphinx
+BuildRequires: python3-base >= 3.8
+%else
+BuildRequires: python311-Sphinx
+BuildRequires: python311-base
+%endif
+BuildRequires: Mesa-devel
+BuildRequires: bison
+BuildRequires: brlapi-devel
+BuildRequires: discount
+BuildRequires: fdupes
+BuildRequires: flex
+BuildRequires: gcc-c++
+BuildRequires: keyutils-devel
+BuildRequires: libaio-devel
+BuildRequires: libattr-devel
+BuildRequires: libbpf-devel
+BuildRequires: libbz2-devel
+BuildRequires: libcapstone-devel
+BuildRequires: libfdt-devel >= 1.4.2
+BuildRequires: libgcrypt-devel >= 1.8.0
+BuildRequires: lzfse-devel
+BuildRequires: meson
+BuildRequires: multipath-tools-devel
+BuildRequires: ninja >= 1.7
+BuildRequires: pam-devel
+BuildRequires: pkgconfig
+BuildRequires: pkgconfig(alsa)
+BuildRequires: pkgconfig(epoxy)
+BuildRequires: pkgconfig(gbm)
+BuildRequires: pkgconfig(glib-2.0) >= 2.56
+BuildRequires: pkgconfig(glusterfs-api) >= 3
+BuildRequires: pkgconfig(gnutls) >= 3.5.18
+BuildRequires: pkgconfig(gtk+-3.0) >= 3.22
+BuildRequires: pkgconfig(jack)
+BuildRequires: pkgconfig(libcacard) >= 2.5.1
+BuildRequires: pkgconfig(libcap-ng)
+BuildRequires: pkgconfig(libcurl) >= 7.29
+BuildRequires: pkgconfig(libdrm)
+BuildRequires: pkgconfig(libiscsi) >= 1.9.0
+BuildRequires: pkgconfig(libjpeg)
+BuildRequires: pkgconfig(libnfs) >= 1.9.3
+BuildRequires: pkgconfig(libpipewire-0.3)
+BuildRequires: pkgconfig(libpng)
+BuildRequires: pkgconfig(libpulse)
+BuildRequires: pkgconfig(libsasl2)
+BuildRequires: pkgconfig(libseccomp) >= 2.3.0
+BuildRequires: pkgconfig(libssh) >= 0.8.7
+BuildRequires: pkgconfig(libudev)
+BuildRequires: pkgconfig(libusb-1.0) >= 1.0.13
+BuildRequires: pkgconfig(libzstd)
+BuildRequires: pkgconfig(lzo2)
+BuildRequires: pkgconfig(ncurses)
+BuildRequires: pkgconfig(openssl) >= 1.0.0
+BuildRequires: pkgconfig(pixman-1) >= 0.21.8
+BuildRequires: pkgconfig(slirp) >= 4.2.0
+BuildRequires: pkgconfig(systemd)
+BuildRequires: pkgconfig(vdeplug)
+BuildRequires: pkgconfig(virglrenderer) >= 0.4.1
+BuildRequires: pkgconfig(vte-2.91)
+BuildRequires: pkgconfig(xkbcommon)
+BuildRequires: pkgconfig(zlib)
+BuildRequires: rdma-core-devel
+BuildRequires: snappy-devel
+BuildRequires: update-desktop-files
+BuildRequires: usbredir-devel >= 0.6
+BuildRequires: xfsprogs-devel
+%{?systemd_ordering}
+## Packages we will REQUIRE
+%if %{kvm_available}
+Requires(post): acl
+Requires(post): udev
+%endif
+Requires(post): coreutils
+Requires: group(kvm)
+Requires: group(qemu)
+Requires: user(qemu)
+# Due to change in where some documentation files are, if qemu-guest-agent
+# is installed, we need to make sure we update it to our version.
+Requires: (qemu-guest-agent = %{version} if qemu-guest-agent)
+## Packages we will RECOMMEND
+%ifarch s390x
+Recommends: qemu-hw-s390x-virtio-gpu-ccw
+%else
+Recommends: qemu-hw-display-qxl
+Recommends: qemu-hw-display-virtio-gpu
+Recommends: qemu-hw-display-virtio-gpu-pci
+Recommends: qemu-hw-display-virtio-vga
+Recommends: qemu-hw-usb-host
+Recommends: qemu-hw-usb-redirect
+Recommends: qemu-hw-usb-smartcard
+%if 0%{with spice}
+Recommends: qemu-ui-spice-app
+%endif
+# End of "ifarch s390x"
+%endif
+%if %{kvm_available}
+Recommends: kvm_stat
+%endif
+Recommends: qemu-block-curl
+Recommends: qemu-block-nfs
+Recommends: qemu-ksm = %{version}
+Recommends: qemu-tools
+Recommends: qemu-ui-curses
+## Packages we will SUGGEST
+%if 0%{?with_rbd}
+Suggests: qemu-block-rbd
+%endif
+Suggests: qemu-accel-qtest
+Suggests: qemu-block-dmg
+Suggests: qemu-block-gluster
+Suggests: qemu-block-iscsi
+Suggests: qemu-block-ssh
+Suggests: qemu-chardev-baum
+Suggests: qemu-extra
+Suggests: qemu-lang
+Suggests: qemu-microvm
+Suggests: qemu-skiboot
+Suggests: qemu-vhost-user-gpu
+Suggests: qemu-ui-gtk
+Suggests: qemu-doc
+## Packages we PROVIDE
+Provides: kvm = %{version}
+Provides: qemu-kvm = %{version}
+## Pacakges we OBSOLETE (and CONFLICT)
+Obsoletes: kvm <= %{version}
+Obsoletes: qemu-audio-oss < %{version}
+Obsoletes: qemu-audio-sdl < %{version}
+Obsoletes: qemu-kvm <= %{version}
+Obsoletes: qemu-sgabios <= 8
+Obsoletes: qemu-ui-sdl < %{version}
+## What we do with the main emulator depends on the architecture we're on
+%if %{kvm_available}
+%ifarch %ix86 x86_64
+Requires: qemu-x86
+%else
+Suggests: qemu-x86
+%endif
+%ifarch ppc ppc64 ppc64le
+Requires: qemu-ppc
+%else
+Suggests: qemu-ppc
+%endif
+%ifarch s390x
+Requires: qemu-s390x
+Requires(post): procps
+%else
+Suggests: qemu-s390x
+%endif
+%ifarch %arm aarch64
+Requires: qemu-arm
+%else
+Suggests: qemu-arm
+%endif
+%ifarch riscv64
+Requires: qemu-extra
+%else
+Suggests: qemu-extra
+%endif
+# End of "if kvm_available"
+%endif
+
+%description
+%{generic_qemu_description}
+
+This package acts as an umbrella package to the other QEMU sub-packages.
+
+%files
+%if %{kvm_available}
+%ifarch s390x
+%{_prefix}/lib/modules-load.d/kvm.conf
+%endif
+/usr/lib/udev/rules.d/80-kvm.rules
+# End of "if kvm_available"
+%endif
+%if %{legacy_qemu_kvm}
+%doc %_docdir/qemu-kvm
+%_mandir/man1/qemu-kvm.1.gz
+%endif
+%_bindir/qemu-kvm
+%dir %_datadir/icons/hicolor
+%dir %_datadir/icons/hicolor/*/
+%dir %_datadir/icons/hicolor/*/apps
+%dir %_datadir/%name
+%dir %_datadir/%name/firmware
+%dir %_datadir/%name/vhost-user
+%dir %_sysconfdir/%name
+%dir %_sysconfdir/%name/firmware
+%dir /usr/lib/supportconfig
+%dir /usr/lib/supportconfig/plugins
+%_datadir/applications/qemu.desktop
+%_datadir/icons/hicolor/16x16/apps/qemu.png
+%_datadir/icons/hicolor/24x24/apps/qemu.png
+%_datadir/icons/hicolor/32x32/apps/qemu.bmp
+%_datadir/icons/hicolor/32x32/apps/qemu.png
+%_datadir/icons/hicolor/48x48/apps/qemu.png
+%_datadir/icons/hicolor/64x64/apps/qemu.png
+%_datadir/icons/hicolor/128x128/apps/qemu.png
+%_datadir/icons/hicolor/256x256/apps/qemu.png
+%_datadir/icons/hicolor/512x512/apps/qemu.png
+%_datadir/icons/hicolor/scalable/apps/qemu.svg
+%_datadir/%name/keymaps
+%_datadir/%name/qemu-ifup
+%_datadir/%name/qemu-nsis.bmp
+%_datadir/%name/trace-events-all
+%_mandir/man1/%name.1.gz
+%_mandir/man7/qemu-block-drivers.7.gz
+%_mandir/man7/qemu-cpu-models.7.gz
+%_mandir/man7/qemu-qmp-ref.7.gz
+%_mandir/man7/qemu-ga-ref.7.gz
+/usr/lib/supportconfig/plugins/%name
+%license COPYING COPYING.LIB LICENSE
+
+%if %{kvm_available}
+%post
+# Do not execute operations affecting host devices while running in a chroot
+if [ $(stat -L -c "%i" /proc/1/root/) = $(stat -L -c "%i" /) ]; then
+ setfacl --remove-all /dev/kvm &> /dev/null || :
+%ifarch s390x
+ if [ -c /dev/kvm ]; then
+ %_bindir/chmod 0666 /dev/kvm
+ %_bindir/chgrp kvm /dev/kvm
+ fi
+%endif
+ %udev_rules_update
+ %_bindir/udevadm trigger -y kvm || :
+%ifarch s390x
+ sysctl vm.allocate_pgste=1 || :
+%endif
+fi
+# End of "if {kvm_available}"
+%endif
+
+# Modules need to match {qemu-system-*,qemu-img} version.
+# We cannot have qemu and qemu-tools require them in the right version,
+# as that would drag in the dependencies the modules are supposed to avoid.
+# Nor can we have modules require the right version of qemu and qemu-tools
+# as Xen reuses our qemu-tools but does not want our qemu and qemu-x86.
+%define qemu_module_conflicts \
+Conflicts: %name < %{version}-%{release} \
+Conflicts: %name > %{version}-%{release} \
+Conflicts: qemu-tools < %{version}-%{release} \
+Conflicts: qemu-tools > %{version}-%{release}
+
+%prep
+%setup -q -n qemu-%{version}
+
+# We have the meson subprojects there, but as submodules (because OBS
+# SCM bridge can handle the latter, but not the former) so we need to
+# apply the layering of the packagefiles manually
+meson subprojects packagefiles --apply berkeley-testfloat-3
+meson subprojects packagefiles --apply berkeley-softfloat-3
+
+# for the record, this set of firmware files is installed, but we don't
+# build (yet): bamboo.dtb canyonlands.dtb hppa-firmware.img openbios-ppc
+# openbios-sparc32 openbios-sparc64 palcode-clipper petalogix-ml605.dtb
+# petalogix-s3adsp1800.dtb QEMU,cgthree.bin QEMU,tcx.bin qemu_vga.ndrv
+# u-boot.e500 u-boot-sam460-20100605.bin opensbi-riscv32-generic-fw_dynamic.bin
+# opensbi-riscv32-generic-fw_dynamic.elfnpcm7xx_bootrom.bin vof.bin
+# vof-nvram.bin
+
+# Note that:
+# - default firmwares are built "by default", i.e., they're built automatically
+# during the process of building QEMU (on each specific arch)
+# - extra firmwares are built "manually" (see below) from their own sources
+# (which, typically, are submodules checked out in the {srcdi}r/roms directory)
+%define ppc_default_firmware %{nil}
+#{vof.bin vof-nvram.bin}
+%define ppc_extra_firmware {skiboot.lid slof.bin}
+%define riscv64_default_firmware %{nil}
+%define riscv64_extra_firmware {opensbi-riscv64-generic-fw_dynamic.bin}
+%define s390x_default_firmware {s390-ccw.img s390-netboot.img}
+%define s390x_extra_firmware %{nil}
+%define x86_default_firmware {linuxboot.bin linuxboot_dma.bin multiboot.bin \
+multiboot_dma.bin kvmvapic.bin pvh.bin}
+%define x86_extra_firmware {bios.bin bios-256k.bin bios-microvm.bin qboot.rom \
+pxe-e1000.rom pxe-eepro100.rom pxe-ne2k_pci.rom pxe-pcnet.rom pxe-rtl8139.rom \
+pxe-virtio.rom vgabios-ati.bin vgabios-bochs-display.bin \
+vgabios.bin vgabios-cirrus.bin vgabios-qxl.bin vgabios-ramfb.bin \
+vgabios-stdvga.bin vgabios-virtio.bin vgabios-vmware.bin \
+efi-e1000.rom efi-e1000e.rom efi-eepro100.rom efi-ne2k_pci.rom efi-pcnet.rom \
+efi-rtl8139.rom efi-virtio.rom efi-vmxnet3.rom}
+
+# Complete list of all the firmwares that we build, if we consider
+# all the builds, on all the arches.
+%define firmware { \
+%{ppc_default_firmware} %{ppc_extra_firmware} \
+%{riscv64_default_firmware} %{riscv64_extra_firmware} \
+%{s390x_default_firmware} %{s390x_extra_firmware} \
+%{x86_default_firmware} %{x86_extra_firmware} }
+
+# Note that:
+# - {arch}_default_built_firmware are the firmwares that we will be built by
+# default in this particular build, on the arch where we currently are on
+# - {arch}_extra_built_fimrware, likewise, but for extra firmwares, built manually
+%ifarch ppc64 ppc64le
+%define ppc_default_built_firmware %{ppc_default_firmware}
+%endif
+%ifarch riscv64
+%define riscv64_default_built_firmware %{riscv64_default_firmware}
+%endif
+%ifarch s390x
+%define s390x_default_built_firmware %{s390x_default_firmware}
+%endif
+%ifarch %ix86 x86_64
+%define x86_default_built_firmware %{x86_default_firmware}
+%endif
+
+%if %{build_opensbi_firmware}
+%define riscv64_extra_built_firmware %{riscv64_extra_firmware}
+%endif
+%if %{build_ppc_firmware}
+%define ppc_extra_built_firmware %{ppc_extra_firmware}
+%endif
+%if %{build_x86_firmware}
+%define x86_extra_built_firmware %{x86_extra_firmware}
+%endif
+
+# List of only firmwares that will actually be built, in this instance
+%define built_firmware { \
+%{?ppc_default_built_firmware} %{?ppc_extra_built_firmware} \
+%{?riscv64_default_built_firmware} %{?riscv64_extra_built_firmware} \
+%{?s390x_default_built_firmware} %{?s390x_extra_built_firmware} \
+%{?x86_default_built_firmware} %{?x86_extra_built_firmware} }
+
+%build
+
+%define rpmfilesdir %{_builddir}/qemu-%{version}/rpm
+
+%if %{legacy_qemu_kvm}
+# FIXME: Why are we copying the s390 specific one?
+cp %{SOURCE13} docs/supported.rst
+sed -i '/^\ \ \ about\/index.*/i \ \ \ supported.rst' docs/index.rst
+%endif
+
+# When generating an upstream release tarball, the following commands
+# are run (see scripts/make-release):
+# (cd roms/seabios && git describe --tags --long --dirty > .version)
+# (cd roms/skiboot && ./make_version.sh > .version)
+# This has not happened for the archive we're using, since it's cloned
+# from a git branch. We, therefore, assumed that the following commands
+# have been run, and the result committed to the repository (with seabios
+# and skiboot at the proper commit/tag/...):
+# git -C roms/seabios describe --tags --long --dirty > rpm/seabios_version
+# (cd roms/skiboot && ./make_version.sh > ../../rpm/skiboot_version)
+cp %{SOURCE16} roms/seabios/.version
+cp %{SOURCE17} roms/skiboot/.version
+find . -iname ".git" -exec rm -rf {} +
+
+mkdir -p %blddir
+cd %blddir
+
+# We define a few general and common options and then we disable
+# pretty much everything. Afterwards, there is a section for each
+# of the flavors where we explicitly enable all the feature we want
+# for them.
+
+# TODO: Check whether we want to enable the followings:
+# * avx512f
+# * debug-info
+# * fuse
+# * malloc-trim
+# * multiprocess
+# * qom-cast-debug
+# * trace-backends=dtrace
+#
+# Fedora has avx2 enabled for ix86, while we can't (I tried). Guess it's
+# because, for them, ix86 == i686 (while for us it's i586).
+
+# Let's try to stick to _FORTIFY_SOURCE=2 for now
+EXTRA_CFLAGS="$(echo %{optflags} | sed -E 's/-[A-Z]?_FORTIFY_SOURCE[=]?[0-9]*//g') -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -Wno-error"
+
+%srcdir/configure \
+%if 0%{?suse_version} >= 1600
+ --python=%_bindir/python3 \
+%else
+ --python=%_bindir/python3.11 \
+%endif
+ --docdir=%_docdir \
+ --datadir=%_datadir \
+ --extra-cflags="${EXTRA_CFLAGS}" \
+ --firmwarepath=%_datadir/%name \
+ --libdir=%_libdir \
+ --libexecdir=%_libexecdir \
+ --localstatedir=%_localstatedir \
+ --prefix=%_prefix \
+ --sysconfdir=%_sysconfdir \
+ --with-pkgversion="%(echo '%{distro}' | sed 's/ (.*)//')" \
+ --disable-af-xdp \
+ --disable-alsa \
+ --disable-attr \
+ --disable-auth-pam \
+ --disable-avx2 \
+ --disable-avx512f \
+ --disable-block-drv-whitelist-in-tools \
+ --disable-bochs \
+ --disable-bpf \
+ --disable-brlapi \
+ --disable-bsd-user \
+ --disable-bzip2 \
+ --disable-cap-ng \
+ --disable-capstone \
+ --disable-cfi \
+ --disable-cfi-debug \
+ --disable-cloop \
+ --disable-cocoa \
+ --disable-coreaudio \
+ --disable-coroutine-pool \
+ --disable-crypto-afalg \
+ --disable-curl \
+ --disable-curses \
+ --disable-dbus-display \
+ --disable-debug-info \
+ --disable-debug-mutex \
+ --disable-debug-tcg \
+ --disable-dmg \
+ --disable-docs \
+ --disable-download \
+ --disable-dsound \
+ --disable-fdt \
+ --disable-fuse \
+ --disable-fuse-lseek \
+ --disable-gcrypt \
+ --disable-gettext \
+ --disable-gio \
+ --disable-glusterfs \
+ --disable-gnutls \
+ --disable-gtk \
+ --disable-guest-agent \
+ --disable-guest-agent-msi \
+ --disable-hv-balloon \
+ --disable-hvf \
+ --disable-iconv \
+ --disable-jack \
+ --disable-kvm \
+ --disable-l2tpv3 \
+ --disable-libdaxctl \
+ --disable-libiscsi \
+ --disable-libkeyutils \
+ --disable-libnfs \
+ --disable-libpmem \
+ --disable-libssh \
+ --disable-libudev \
+ --disable-libusb \
+ --disable-linux-aio \
+ --disable-linux-io-uring \
+ --disable-linux-user \
+ --disable-live-block-migration \
+ --disable-lto \
+ --disable-lzfse \
+ --disable-lzo \
+ --disable-malloc-trim \
+ --disable-membarrier \
+ --disable-module-upgrades \
+ --disable-modules \
+ --disable-mpath \
+ --disable-multiprocess \
+ --disable-netmap \
+ --disable-nettle \
+ --disable-numa \
+ --disable-nvmm \
+ --disable-opengl \
+ --disable-oss \
+ --disable-pa \
+ --disable-parallels \
+ --disable-pie \
+ --disable-pipewire \
+ --disable-pixman \
+ --disable-plugins \
+ --disable-png \
+ --disable-pvrdma \
+ --disable-qcow1 \
+ --disable-qed \
+ --disable-qom-cast-debug \
+ --disable-rbd \
+ --disable-rdma \
+ --disable-relocatable \
+ --disable-replication \
+ --disable-rng-none \
+ --disable-rutabaga-gfx \
+ --disable-safe-stack \
+ --disable-sanitizers \
+ --disable-sdl \
+ --disable-sdl-image \
+ --disable-seccomp \
+ --disable-selinux \
+ --disable-slirp \
+ --disable-slirp-smbd \
+ --disable-smartcard \
+ --disable-snappy \
+ --disable-sparse \
+ --disable-spice \
+ --disable-spice-protocol \
+ --disable-strip \
+ --disable-system \
+ --disable-tcg \
+ --disable-tcg-interpreter \
+ --disable-tools \
+ --disable-tpm \
+ --disable-u2f \
+ --disable-usb-redir \
+ --disable-user \
+ --disable-vde \
+ --disable-vdi \
+ --disable-vhost-crypto \
+ --disable-vhost-kernel \
+ --disable-vhost-net \
+ --disable-vhost-user \
+ --disable-vhost-user-blk-server \
+ --disable-vhost-vdpa \
+ --disable-virglrenderer \
+ --disable-virtfs \
+ --disable-vnc \
+ --disable-vnc-jpeg \
+ --disable-vnc-sasl \
+ --disable-vte \
+ --disable-vvfat \
+ --disable-werror \
+ --disable-whpx \
+ --disable-xen \
+ --disable-xen-pci-passthrough \
+ --disable-xkbcommon \
+ --disable-zstd \
+ --without-default-devices \
+ --audio-drv-list=pipewire,pa,alsa,jack,oss \
+%ifarch x86_64
+ --enable-avx2 \
+ --enable-libpmem \
+%if %{with_xen}
+ --enable-xen \
+ --enable-xen-pci-passthrough \
+%endif
+%endif
+%if 0%{with xdp}
+ --enable-af-xdp \
+%endif
+%if 0%{with canokey}
+ --enable-canokey \
+%endif
+%if %{kvm_available}
+ --enable-kvm \
+%endif
+%if 0%{?with_daxctl}
+ --enable-libdaxctl \
+%endif
+%if 0%{?with_uring}
+ --enable-linux-io-uring \
+%endif
+%if "%{_lto_cflags}" != "%{nil}"
+ --enable-lto \
+%endif
+%if %{with malloc_trim}
+ --enable-malloc-trim \
+%endif
+%if %{with system_membarrier}
+ --enable-membarrier \
+%endif
+%ifnarch %arm s390x
+ --enable-numa \
+%endif
+%if 0%{?with_rbd}
+ --enable-rbd \
+%endif
+%if %{has_rutabaga_gfx}
+ --enable-rutabaga-gfx \
+%endif
+ --enable-alsa \
+ --enable-attr \
+ --enable-auth-pam \
+ --enable-bochs \
+ --enable-bpf \
+ --enable-brlapi \
+ --enable-bzip2 \
+ --enable-cap-ng \
+ --enable-capstone \
+ --enable-cloop \
+ --enable-coroutine-pool \
+ --enable-curl \
+ --enable-curses \
+ --enable-dbus-display \
+ --enable-dmg \
+ --enable-docs \
+ --enable-fdt=system \
+ --enable-gcrypt \
+ --enable-gettext \
+ --enable-gio \
+ --enable-glusterfs \
+ --enable-gnutls \
+ --enable-gtk \
+ --enable-guest-agent \
+ --enable-hv-balloon \
+ --enable-iconv \
+ --enable-jack \
+ --enable-l2tpv3 \
+ --enable-libiscsi \
+ --enable-libkeyutils \
+ --enable-libnfs \
+ --enable-libssh \
+ --enable-libudev \
+ --enable-libusb \
+ --enable-linux-aio \
+ --enable-live-block-migration \
+ --enable-lzfse \
+ --enable-lzo \
+ --enable-modules \
+ --enable-mpath \
+ --enable-opengl \
+ --enable-oss \
+ --enable-pa \
+ --enable-parallels \
+ --enable-pie \
+ --enable-pipewire \
+ --enable-pixman \
+ --enable-png \
+ --enable-pvrdma \
+ --enable-qcow1 \
+ --enable-qed \
+ --enable-rdma \
+ --enable-relocatable \
+ --enable-replication \
+ --enable-seccomp \
+ --enable-selinux \
+ --enable-slirp \
+ --enable-slirp-smbd \
+ --enable-smartcard \
+ --enable-snappy \
+%if 0%{with spice}
+ --enable-spice \
+ --enable-spice-protocol \
+%endif
+ --enable-system \
+ --enable-tcg \
+ --enable-tools \
+ --enable-tpm \
+ --enable-usb-redir \
+ --enable-vde \
+ --enable-vdi \
+ --enable-vhost-crypto \
+ --enable-vhost-kernel \
+ --enable-vhost-net \
+ --enable-vhost-user \
+ --enable-vhost-user-blk-server \
+ --enable-vhost-vdpa \
+ --enable-virglrenderer \
+ --enable-virtfs \
+ --enable-vnc \
+ --enable-vnc-jpeg \
+ --enable-vnc-sasl \
+ --enable-vte \
+ --enable-vvfat \
+ --enable-werror \
+ --enable-xkbcommon \
+ --enable-zstd \
+ --with-coroutine=ucontext \
+ --with-default-devices
+
+echo "=== Content of config-host.mak: ==="
+cat config-host.mak
+echo "=== ==="
+
+# For building QEMU and all the "default" firmwares, for each arch,
+# for the package qemu, we first need to delete the firmware files that
+# we intend to build...
+#
+# TODO: check if this can be common to qemu and qemu-linux-user
+for i in %built_firmware
+do
+ unlink %srcdir/pc-bios/$i
+done
+
+%make_build
+
+# ... Then, we need to reinstate the firmwares that have been built already
+for i in %{?s390x_default_built_firmware}
+do
+ cp pc-bios/s390-ccw/$i %srcdir/pc-bios/
+done
+
+for i in %{?x86_default_built_firmware}
+do
+ cp pc-bios/optionrom/$i %srcdir/pc-bios/
+done
+
+# Build the "extra" firmwares. Note that the QEMU Makefile in {srcdir}/roms
+# does some cross-compiler auto detection. So we often don't need to define
+# or pass CROSS= and CROSS_COMPILE ourselves.
+
+%if %{build_ppc_firmware}
+# FIXME: check if we can upstream: Makefile-define-endianess-for-cross-buil.patch
+%make_build -C %srcdir/roms skiboot
+
+%make_build -C %srcdir/roms slof
+%endif
+
+%if %{build_opensbi_firmware}
+%make_build -C %srcdir/roms opensbi64-generic
+# End of "if build_ppc_firmware"
+%endif
+
+%if %{build_x86_firmware}
+%make_build %{?_smp_mflags} -C %srcdir/roms bios \
+ SEABIOS_EXTRAVERSION="-rebuilt.opensuse.org" \
+
+pushd %srcdir/roms/seabios/docs
+for f in *.md
+do
+ b="${f%.md}"
+ # Ensure the correct media type
+ markdown "${f}" >"${b}.html"
+ # Links to b.md will be rendered as to b
+ ln -Ts "${b}.html" "${b}"
+done
+popd
+
+# FIXME: check if we can upstream: roms-Makefile-add-cross-file-to-qboot-me.patch
+# and qboot-add-cross.ini-file-to-handle-aarch.patch
+%make_build -C %srcdir/roms qboot
+
+%make_build -C %srcdir/roms seavgabios \
+
+%make_build -C %srcdir/roms seavgabios-ati \
+
+%make_build -C %srcdir/roms pxerom
+
+%make_build -C %srcdir/roms edk2-basetools EXTRA_OPTFLAGS='-fPIE'
+%make_build -C %srcdir/roms efirom
+
+%if %{force_fit_virtio_pxe_rom}
+pushd %srcdir
+patch -p1 < %{SOURCE18}
+popd
+%make_build -C %srcdir/roms pxerom_variants=virtio pxerom_targets=1af41000 pxerom
+%endif
+
+for i in %supported_nics_large %unsupported_nics
+ do
+ if test "`stat -c '%s' %srcdir/pc-bios/pxe-$i.rom`" -gt "131072" ; then
+ echo "pxe rom is too large"
+ exit 1
+ fi
+ if test "`stat -c '%s' %srcdir/pc-bios/pxe-$i.rom`" -le "65536" ; then
+ %srcdir/roms/ipxe/src/util/padimg.pl %srcdir/pc-bios/pxe-$i.rom -s 65536 -b 255
+ echo -ne "SEGMENT OVERAGE\0" >> %srcdir/pc-bios/pxe-$i.rom
+ fi
+done
+for i in %supported_nics_small
+ do
+ if test "`stat -c '%s' %srcdir/pc-bios/pxe-$i.rom`" -gt "65536" ; then
+ echo "pxe rom is too large"
+ exit 1
+ fi
+done
+# End of "if build_x86_firmware"
+%endif
+
+%install
+cd %blddir
+export USER=abuild
+export HOSTNAME=OBS # is used in roms/SLOF/Makefile.gen (boo#1084909)
+
+%make_build install DESTDIR=%{buildroot}
+
+%find_lang %name
+install -d -m 0755 %{buildroot}%_datadir/%name/firmware
+install -d -m 0755 %{buildroot}/usr/lib/supportconfig/plugins
+install -d -m 0755 %{buildroot}%_sysconfdir/%name/firmware
+install -D -m 0644 %{SOURCE4} %{buildroot}%_sysconfdir/%name/bridge.conf
+install -D -m 0755 %{SOURCE3} %{buildroot}%_datadir/%name/qemu-ifup
+install -D -p -m 0644 %{SOURCE8} %{buildroot}/usr/lib/udev/rules.d/80-qemu-ga.rules
+install -D -m 0755 scripts/analyze-migration.py %{buildroot}%_bindir/analyze-migration.py
+install -D -m 0755 scripts/vmstate-static-checker.py %{buildroot}%_bindir/vmstate-static-checker.py
+install -D -m 0755 scripts/kvm/vmxcap %{buildroot}%_bindir/vmxcap
+install -D -m 0755 %{SOURCE9} %{buildroot}/usr/lib/supportconfig/plugins/%name
+install -D -m 0644 %{SOURCE10} %{buildroot}%_docdir/qemu-arm/supported.txt
+install -D -m 0644 %{SOURCE11} %{buildroot}%_docdir/qemu-ppc/supported.txt
+install -D -m 0644 %{SOURCE12} %{buildroot}%_docdir/qemu-x86/supported.txt
+install -D -m 0644 %{SOURCE13} %{buildroot}%_docdir/qemu-s390x/supported.txt
+
+%if %{legacy_qemu_kvm}
+install -D -m 0644 %{SOURCE5} %{buildroot}%_mandir/man1/qemu-kvm.1.gz
+install -d %{buildroot}%_docdir/qemu-kvm
+# FIXME: Why do we onlly generate the HTML for the legacy package documentation?
+%ifarch s390x
+ln -s ../qemu-s390x/supported.txt %{buildroot}%_docdir/qemu-kvm/kvm-supported.txt
+rst2html --exit-status=2 %{buildroot}%_docdir/qemu-s390x/supported.txt %{buildroot}%_docdir/qemu-kvm/kvm-supported.html
+%else
+ln -s ../qemu-x86/supported.txt %{buildroot}%_docdir/qemu-kvm/kvm-supported.txt
+rst2html --exit-status=2 %{buildroot}%_docdir/qemu-x86/supported.txt %{buildroot}%_docdir/qemu-kvm/kvm-supported.html
+# End of "ifarch s390x"
+%endif
+# End of "if legacy_qemu_kvm"
+%endif
+
+%ifarch aarch64 %arm %ix86 ppc ppc64 ppc64le riscv64 s390x x86_64
+%ifarch ppc64le
+%define qemu_arch ppc64
+%endif
+ln -s qemu-system-%{qemu_arch} %{buildroot}%_bindir/qemu-kvm
+%endif
+
+%if %{kvm_available}
+install -D -m 0644 %{SOURCE1} %{buildroot}/usr/lib/udev/rules.d/80-kvm.rules
+%endif
+install -D -p -m 0644 %{SOURCE7} %{buildroot}%{_unitdir}/qemu-guest-agent.service
+install -D -p -m 0644 %{SOURCE6} %{buildroot}%{_unitdir}/ksm.service
+%ifarch s390x
+install -D -m 0644 %{SOURCE2} %{buildroot}%{_prefix}/lib/modules-load.d/kvm.conf
+# End of "if kvm_available"
+%endif
+
+# We rely on a separate project / package to provide edk2 firmware
+unlink %{buildroot}%_datadir/%name/edk2-licenses.txt
+unlink %{buildroot}%_datadir/%name/firmware/50-edk2-i386-secure.json
+unlink %{buildroot}%_datadir/%name/firmware/50-edk2-x86_64-secure.json
+unlink %{buildroot}%_datadir/%name/firmware/60-edk2-aarch64.json
+unlink %{buildroot}%_datadir/%name/firmware/60-edk2-arm.json
+unlink %{buildroot}%_datadir/%name/firmware/60-edk2-i386.json
+unlink %{buildroot}%_datadir/%name/firmware/60-edk2-x86_64.json
+unlink %{buildroot}%_datadir/%name/edk2-aarch64-code.fd
+unlink %{buildroot}%_datadir/%name/edk2-arm-code.fd
+unlink %{buildroot}%_datadir/%name/edk2-arm-vars.fd
+unlink %{buildroot}%_datadir/%name/edk2-i386-code.fd
+unlink %{buildroot}%_datadir/%name/edk2-i386-secure-code.fd
+unlink %{buildroot}%_datadir/%name/edk2-i386-vars.fd
+unlink %{buildroot}%_datadir/%name/edk2-x86_64-code.fd
+unlink %{buildroot}%_datadir/%name/edk2-x86_64-secure-code.fd
+
+# this was never meant for customer consumption - delete even though installed
+unlink %{buildroot}%_bindir/elf2dmp
+
+# For PPC and x86 firmwares, there are a few extra install steps necessary.
+# In general, if we know that we have not built a firmware, remove it from the
+# install base, as the one that we have there is the upstream binary, that got
+# copied there during `make install`.
+
+%if %{build_ppc_firmware}
+# In support of update-alternatives
+#
+# The reason why we do this, is because we have (only for PPC) an skiboot
+# package, shipping an alternative version of skiboot.lid. That is, in fact,
+# what's "on the other end" of us supporting update-alternatives for this
+# particular firmware.
+mv %{buildroot}%_datadir/%name/skiboot.lid %{buildroot}%_datadir/%name/skiboot.lid.qemu
+# create a dummy target for /etc/alternatives/skiboot.lid
+mkdir -p %{buildroot}%{_sysconfdir}/alternatives
+ln -s -f %{_sysconfdir}/alternatives/skiboot.lid %{buildroot}%{_datadir}/%name/skiboot.lid
+%else
+for f in %{ppc_extra_firmware} ; do
+ unlink %{buildroot}%_datadir/%name/$f
+done
+# End of "if build_ppc_fimrware"
+%endif
+
+# For riscv64 firmwares (currently, only opensbi), we leave them there in
+# any case, because they're part of the qemu-extra package, and riscv is
+# a bit special in many ways already.
+
+%if %{build_x86_firmware}
+install -D -m 0644 %{SOURCE14} %{buildroot}%_datadir/%name/firmware/50-seabios-256k.json
+install -D -m 0644 %{SOURCE15} %{buildroot}%_datadir/%name/firmware/60-seabios-128k.json
+install -d -m 0755 %{buildroot}%_docdir/qemu-seabios
+%else
+for f in %{x86_extra_firmware} ; do
+ unlink %{buildroot}%_datadir/%name/$f
+done
+# End of "if build_x86_firmware"
+%endif
+
+%suse_update_desktop_file qemu
+
+# Common install steps for qemu and qemu-linux-user
+%fdupes -s %{buildroot}
+
+%check
+cd %blddir
+
+# Patch 'increase x86_64 physical bits to 42' requires that the DSDT used for
+# acpi [q]tests is modified too. But it's binary, and that means we cannot
+# do that in the patch itself. Instead, we keep a copy of the binary in the
+# package sources, and put it in place now, before the tests themselves.
+# If that patch is removed, the following line needs to go as well.
+cp %{SOURCE19} %{srcdir}/tests/data/acpi/microvm/
+
+# Patch 'tests/acpi: update tables for new core count test' requires some new
+# binaries to be introcuded too. Let's copy them in place as well
+cp %{SOURCE20} %{SOURCE21} %{SOURCE22} %{srcdir}/tests/data/acpi/q35/
+
+%if 0%{?qemu_user_space_build}
+# Seccomp is not supported by linux-user emulation
+echo 'int main (void) { return 0; }' > %{srcdir}/tests/unit/test-seccomp.c
+# keyctl is not yet supported by linux-user emulation
+echo 'int main (void) { return 0; }' > %{srcdir}/tests/unit/test-crypto-secret.c
+%endif
+
+# Compile the QOM test binary first, so that ...
+%make_build tests/qtest/qom-test
+# ... make comes in fresh and has lots of address space (needed for 32bit, bsc#957379)
+# FIXME: is this still a problem?
+
+# Let's build everything first
+%make_build check-build
+# Let's now run the 'make check' component individually, so we have
+# more control on the options (like -j, etc)
+%make_build check-unit
+%make_build check-qapi-schema
+%make_build check-softfloat
+# This would be `make_build check-block`. But iotests are not reliable
+# if ran in parallel in OBS, so let's be slow for now.
+make -O V=1 VERBOSE=1 -j1 check-block
+%if %{with chkqtests} && !0%{?qemu_user_space_build}
+# Run qtests sequentially, as it's too unreliable, when run in OBS, if parallelized
+make -O V=1 VERBOSE=1 -j1 check-qtest
+%endif
+# Last step will be to run a full check-report, but we will
+# enable this at a later point
+#make -O V=1 VERBOSE=1 -j1 check-report.junit.xml
+
+%if 0%{with spice}
+%package spice
+Summary: Modules and packages for SPICE
+Group: System/Emulators/PC
+Requires: qemu-audio-spice
+Requires: qemu-chardev-spice
+Requires: qemu-headless
+Requires: qemu-hw-display-qxl
+Requires: qemu-hw-usb-redirect
+Requires: qemu-ui-spice-core
+
+%description spice
+%{generic_qemu_description}
+
+This meta-package brings in, as dependencies, the modules and packages
+necessary for having SPICE working for your VMs.
+
+%files spice
+
+%package audio-spice
+Summary: Spice based audio support for QEMU
+Group: System/Emulators/PC
+Requires: qemu-ui-spice-core = %{version}-%{release}
+%{qemu_module_conflicts}
+
+%description audio-spice
+This package contains a module for Spice based audio support for QEMU.
+
+%files audio-spice
+%dir %_libdir/%name
+%_libdir/%name/audio-spice.so
+
+%package chardev-spice
+Summary: Spice vmc and port chardev support for QEMU
+Group: System/Emulators/PC
+Requires: qemu-ui-spice-core = %{version}-%{release}
+%{qemu_module_conflicts}
+
+%description chardev-spice
+This package contains a module for Spice chardev support for QEMU.
+
+%files chardev-spice
+%dir %_datadir/%name
+%dir %_libdir/%name
+%_libdir/%name/chardev-spice.so
+
+%package ui-spice-app
+Summary: Spice UI support for QEMU
+Group: System/Emulators/PC
+Requires: qemu-chardev-spice = %{version}-%{release}
+Requires: qemu-ui-spice-core = %{version}-%{release}
+%{qemu_module_conflicts}
+
+%description ui-spice-app
+This package contains a module for doing Spice based UI for QEMU.
+
+%files ui-spice-app
+%dir %_libdir/%name
+%_libdir/%name/ui-spice-app.so
+
+%package ui-spice-core
+Summary: Core Spice support for QEMU
+Group: System/Emulators/PC
+Requires: qemu-ui-opengl
+# This next Requires is only since virt-manager expects audio support
+Requires: qemu-audio-spice = %{version}-%{release}
+%{qemu_module_conflicts}
+
+%description ui-spice-core
+This package contains a module with core Spice support for QEMU.
+
+%files ui-spice-core
+%dir %_datadir/%name
+%dir %_libdir/%name
+%_libdir/%name/ui-spice-core.so
+
+%package hw-display-qxl
+Summary: QXL display support for QEMU
+Group: System/Emulators/PC
+Requires: qemu-ui-spice-core = %{version}-%{release}
+%{qemu_module_conflicts}
+
+%description hw-display-qxl
+This package contains a module for QXL display support for QEMU.
+
+%files hw-display-qxl
+%dir %_datadir/%name
+%dir %_libdir/%name
+%_libdir/%name/hw-display-qxl.so
+
+# End of "with spice"
+%endif
+
+%package headless
+Summary: Minimum set of packages for having a functional QEMU
+Group: System/Emulators/PC
+Requires: qemu
+Requires: qemu-block-curl
+Requires: qemu-block-nfs
+Requires: qemu-img
+%if %{has_virtiofsd}
+Requires: virtiofsd
+%endif
+Recommends: qemu-tools
+
+%description headless
+%{generic_qemu_description}
+
+This meta-package brings in, as dependencies, the minimum set of packages
+currently necessary for having a functional (headless) QEMU/KVM stack.
+
+%files headless
+
+%package x86
+Summary: Machine emulator and virtualizer for x86 architectures
+Group: System/Emulators/PC
+Requires: %name = %{version}
+Requires: qemu-accel-tcg-x86
+Requires: qemu-ipxe
+Requires: qemu-seabios
+Requires: qemu-vgabios
+%ifarch x86_64
+Requires: qemu-ovmf-x86_64
+%else
+Recommends: qemu-ovmf-ia32
+Recommends: qemu-ovmf-x86_64
+%endif
+Recommends: ovmf
+Recommends: qemu-microvm
+
+%description x86
+%{generic_qemu_description}
+
+This package provides i386 and x86_64 emulation.
+
+%files x86
+%_bindir/qemu-system-i386
+%_bindir/qemu-system-x86_64
+%_datadir/%name/kvmvapic.bin
+%_datadir/%name/linuxboot.bin
+%_datadir/%name/linuxboot_dma.bin
+%_datadir/%name/multiboot.bin
+%_datadir/%name/multiboot_dma.bin
+%_datadir/%name/pvh.bin
+%doc %_docdir/qemu-x86
+
+%package ppc
+Summary: Machine emulator and virtualizer for Power architectures
+Group: System/Emulators/PC
+Requires: %name = %{version}
+Requires: qemu-SLOF
+Recommends: qemu-ipxe
+Recommends: qemu-vgabios
+
+%description ppc
+%{generic_qemu_description}
+
+This package provides ppc and ppc64 emulation.
+
+%files ppc
+%_bindir/qemu-system-ppc
+%_bindir/qemu-system-ppc64
+%_datadir/%name/bamboo.dtb
+%_datadir/%name/canyonlands.dtb
+%_datadir/%name/openbios-ppc
+%_datadir/%name/qemu_vga.ndrv
+%_datadir/%name/u-boot.e500
+%_datadir/%name/u-boot-sam460-20100605.bin
+%_datadir/%name/vof*.bin
+%doc %_docdir/qemu-ppc
+
+%package s390x
+Summary: Machine emulator and virtualizer for S/390 architectures
+Group: System/Emulators/PC
+Requires: %name = %{version}
+Provides: qemu-s390 = %{version}
+Obsoletes: qemu-s390 < %{version}
+
+%description s390x
+%{generic_qemu_description}
+
+This package provides s390x emulation.
+
+%files s390x
+%_bindir/qemu-system-s390x
+%_datadir/%name/s390-ccw.img
+%_datadir/%name/s390-netboot.img
+%doc %_docdir/qemu-s390x
+
+%package arm
+Summary: Machine emulator and virtualizer for ARM architectures
+Group: System/Emulators/PC
+Requires: %name = %{version}
+Recommends: ovmf
+Recommends: qemu-ipxe
+Recommends: qemu-uefi-aarch64
+Recommends: qemu-vgabios
+
+%description arm
+%{generic_qemu_description}
+
+This package provides arm emulation.
+
+%files arm
+%_bindir/qemu-system-arm
+%_bindir/qemu-system-aarch64
+%_datadir/%name/npcm7xx_bootrom.bin
+%doc %_docdir/qemu-arm
+
+%package extra
+Summary: Machine emulator and virtualizer for "extra" architectures
+Group: System/Emulators/PC
+Requires: %name = %{version}
+Recommends: qemu-ipxe
+Recommends: qemu-skiboot
+Recommends: qemu-vgabios
+
+%description extra
+%{generic_qemu_description}
+
+This package provides some lesser used emulations, including alpha, m68k,
+mips, sparc, and xtensa. (The term "extra" is juxtapositioned against more
+popular QEMU packages which are dedicated to a single architecture.)
+
+%files extra
+%_bindir/qemu-system-alpha
+%_bindir/qemu-system-avr
+%_bindir/qemu-system-cris
+%_bindir/qemu-system-hppa
+%_bindir/qemu-system-loongarch64
+%_bindir/qemu-system-m68k
+%_bindir/qemu-system-microblaze
+%_bindir/qemu-system-microblazeel
+%_bindir/qemu-system-mips
+%_bindir/qemu-system-mipsel
+%_bindir/qemu-system-mips64
+%_bindir/qemu-system-mips64el
+%_bindir/qemu-system-nios2
+%_bindir/qemu-system-or1k
+%_bindir/qemu-system-riscv32
+%_bindir/qemu-system-riscv64
+%_bindir/qemu-system-rx
+%_bindir/qemu-system-sh4
+%_bindir/qemu-system-sh4eb
+%_bindir/qemu-system-sparc
+%_bindir/qemu-system-sparc64
+%_bindir/qemu-system-tricore
+%_bindir/qemu-system-xtensa
+%_bindir/qemu-system-xtensaeb
+%_datadir/%name/hppa-firmware.img
+%_datadir/%name/openbios-sparc32
+%_datadir/%name/openbios-sparc64
+%_datadir/%name/opensbi-riscv32-generic-fw_dynamic.bin
+%_datadir/%name/opensbi-riscv64-generic-fw_dynamic.bin
+%_datadir/%name/palcode-clipper
+%_datadir/%name/petalogix-ml605.dtb
+%_datadir/%name/petalogix-s3adsp1800.dtb
+%_datadir/%name/QEMU,cgthree.bin
+%_datadir/%name/QEMU,tcx.bin
+
+%package lang
+Summary: Translations for QEMU
+Group: System/Emulators/PC
+
+%description lang
+This package contains a few language translations, particularly for the
+graphical user interface components that come with QEMU. The bulk of strings
+in QEMU are not localized.
+
+%files lang -f %blddir/%name.lang
+
+%package audio-alsa
+Summary: ALSA based audio support for QEMU
+Group: System/Emulators/PC
+%{qemu_module_conflicts}
+
+%description audio-alsa
+This package contains a module for ALSA based audio support for QEMU.
+
+%files audio-alsa
+%dir %_libdir/%name
+%_libdir/%name/audio-alsa.so
+
+%package audio-dbus
+Summary: D-Bus based audio support for QEMU
+Group: System/Emulators/PC
+%{qemu_module_conflicts}
+
+%description audio-dbus
+This package provides a module for D-Bus based audio support for QEMU.
+
+%files audio-dbus
+%dir %_libdir/%name
+%_libdir/%name/audio-dbus.so
+
+%package audio-pa
+Summary: Pulse Audio based audio support for QEMU
+Group: System/Emulators/PC
+%{qemu_module_conflicts}
+
+%description audio-pa
+This package contains a module for Pulse Audio based audio support for QEMU.
+
+%files audio-pa
+%dir %_libdir/%name
+%_libdir/%name/audio-pa.so
+
+%package audio-jack
+Summary: JACK based audio support for QEMU
+Group: System/Emulators/PC
+%{qemu_module_conflicts}
+
+%description audio-jack
+This package contains a module for JACK based audio support for QEMU.
+
+%files audio-jack
+%dir %_libdir/%name
+%_libdir/%name/audio-jack.so
+
+%package audio-oss
+Summary: OSS based audio support for QEMU
+Group: System/Emulators/PC
+%{qemu_module_conflicts}
+
+%description audio-oss
+This package contains a module for OSS based audio support for QEMU.
+
+%files audio-oss
+%dir %_libdir/%name
+%_libdir/%name/audio-oss.so
+
+%package audio-pipewire
+Summary: Pipewire based audio support for QEMU
+Group: System/Emulators/PC
+%{qemu_module_conflicts}
+
+%description audio-pipewire
+This package contains a module for Pipewire based audio support for QEMU.
+
+%files audio-pipewire
+%dir %_libdir/%name
+%_libdir/%name/audio-pipewire.so
+
+%package block-curl
+Summary: cURL block support for QEMU
+Group: System/Emulators/PC
+%{qemu_module_conflicts}
+
+%description block-curl
+This package contains a module for accessing network-based image files over
+a network connection from qemu-img tool and QEMU system emulation.
+
+%files block-curl
+%dir %_libdir/%name
+%_libdir/%name/block-curl.so
+
+%package block-dmg
+Summary: DMG block support for QEMU
+Group: System/Emulators/PC
+%{qemu_module_conflicts}
+
+%description block-dmg
+This package contains a module for accessing Mac OS X image files from
+qemu-img tool and QEMU system emulation.
+
+%files block-dmg
+%dir %_libdir/%name
+%_libdir/%name/block-dmg-bz2.so
+%_libdir/%name/block-dmg-lzfse.so
+
+%package block-gluster
+Summary: GlusterFS block support for QEMU
+Group: System/Emulators/PC
+%{qemu_module_conflicts}
+
+%description block-gluster
+This package contains a module for accessing network-based image files over a
+GlusterFS network connection from qemu-img tool and QEMU system emulation.
+
+%files block-gluster
+%dir %_libdir/%name
+%_libdir/%name/block-gluster.so
+
+%package block-iscsi
+Summary: iSCSI block support for QEMU
+Group: System/Emulators/PC
+%{qemu_module_conflicts}
+
+%description block-iscsi
+This package contains a module for accessing network-based image files over an
+iSCSI network connection from qemu-img tool and QEMU system emulation.
+
+%files block-iscsi
+%dir %_libdir/%name
+%_libdir/%name/block-iscsi.so
+
+%package block-nfs
+Summary: direct Network File System support for QEMU
+Group: System/Emulators/PC
+%{qemu_module_conflicts}
+
+%description block-nfs
+This package contains a module for directly accessing nfs based image files
+for QEMU.
+
+%files block-nfs
+%dir %_libdir/%name
+%_libdir/%name/block-nfs.so
+
+%package block-ssh
+Summary: SSH (SFTP) block support for QEMU
+Group: System/Emulators/PC
+%{qemu_module_conflicts}
+
+%description block-ssh
+This package contains a module for accessing network-based image files over an
+SSH network connection from qemu-img tool and QEMU system emulation.
+
+%files block-ssh
+%dir %_libdir/%name
+%_libdir/%name/block-ssh.so
+
+%package chardev-baum
+Summary: Baum braille chardev support for QEMU
+Group: System/Emulators/PC
+%{qemu_module_conflicts}
+
+%description chardev-baum
+This package contains a module for baum braille chardev support for QEMU.
+
+%files chardev-baum
+%dir %_datadir/%name
+%dir %_libdir/%name
+%_libdir/%name/chardev-baum.so
+
+%package hw-display-virtio-gpu
+Summary: Virtio GPU display support for QEMU
+Group: System/Emulators/PC
+# Make sure that VGA is pretty much always there. Technically, this isn't
+# really necessary (and/or, should be dealt with in other places) but it
+# makes it easier to deal with strange situation where, e.g., GRUB is
+# configured to work only with a graphical terminal (see bsc#1219164),
+# and the hw-display-virtio-vga package is small enough, anyway.
+Requires: qemu-hw-display-virtio-vga = %{version}-%{release}
+%{qemu_module_conflicts}
+
+%description hw-display-virtio-gpu
+This package contains a module for Virtio GPU display support for QEMU.
+
+%files hw-display-virtio-gpu
+%dir %_datadir/%name
+%_libdir/%name/hw-display-virtio-gpu.so
+%_libdir/%name/hw-display-virtio-gpu-gl.so
+
+%package hw-display-virtio-gpu-pci
+Summary: Virtio-gpu pci device for QEMU
+Group: System/Emulators/PC
+Requires: qemu-hw-display-virtio-gpu = %{version}-%{release}
+%{qemu_module_conflicts}
+
+%description hw-display-virtio-gpu-pci
+This package contains a module providing the virtio gpu pci device for QEMU.
+
+%files hw-display-virtio-gpu-pci
+%dir %_datadir/%name
+%dir %_libdir/%name
+%_libdir/%name/hw-display-virtio-gpu-pci.so
+%_libdir/%name/hw-display-virtio-gpu-pci-gl.so
+
+%package hw-display-virtio-vga
+Summary: Virtio vga device for QEMU
+Group: System/Emulators/PC
+%{qemu_module_conflicts}
+
+%description hw-display-virtio-vga
+This package contains a module providing the virtio vga device for QEMU.
+
+%files hw-display-virtio-vga
+%dir %_datadir/%name
+%dir %_libdir/%name
+%_libdir/%name/hw-display-virtio-vga.so
+%_libdir/%name/hw-display-virtio-vga-gl.so
+
+%package hw-s390x-virtio-gpu-ccw
+Summary: S390x virtio-gpu ccw device for QEMU
+Group: System/Emulators/PC
+Requires: qemu-hw-display-virtio-gpu = %{version}-%{release}
+%{qemu_module_conflicts}
+
+%description hw-s390x-virtio-gpu-ccw
+This package contains a module providing the s390x virtio gpu ccw device for
+QEMU.
+
+%files hw-s390x-virtio-gpu-ccw
+%dir %_datadir/%name
+%dir %_libdir/%name
+%_libdir/%name/hw-s390x-virtio-gpu-ccw.so
+
+%package hw-usb-redirect
+Summary: USB redirection support for QEMU
+Group: System/Emulators/PC
+%{qemu_module_conflicts}
+
+%description hw-usb-redirect
+This package contains a module for USB redirection support for QEMU.
+
+%files hw-usb-redirect
+%dir %_datadir/%name
+%dir %_libdir/%name
+%_libdir/%name/hw-usb-redirect.so
+
+%package hw-usb-smartcard
+Summary: USB smartcard support for QEMU
+Group: System/Emulators/PC
+%{qemu_module_conflicts}
+
+%description hw-usb-smartcard
+This package contains a modules for USB smartcard support for QEMU.
+
+%files hw-usb-smartcard
+%dir %_datadir/%name
+%dir %_libdir/%name
+%_libdir/%name/hw-usb-smartcard.so
+
+%package hw-usb-host
+Summary: USB passthrough driver support for QEMU
+Group: System/Emulators/PC
+%{qemu_module_conflicts}
+
+%description hw-usb-host
+This package contains a modules for USB passthrough driver for QEMU.
+
+%files hw-usb-host
+%dir %_datadir/%name
+%dir %_libdir/%name
+%_libdir/%name/hw-usb-host.so
+
+%package ui-dbus
+Summary: D-Bus based UI support for QEMU
+Group: System/Emulators/PC
+%{qemu_module_conflicts}
+
+%description ui-dbus
+This package contains a module for doing D-Bus based UI for QEMU.
+
+%files ui-dbus
+%dir %_libdir/%name
+%_libdir/%name/ui-dbus.so
+
+%package ui-curses
+Summary: Curses based UI support for QEMU
+Group: System/Emulators/PC
+%{qemu_module_conflicts}
+
+%description ui-curses
+This package contains a module for doing curses based UI for QEMU.
+
+%files ui-curses
+%dir %_libdir/%name
+%_libdir/%name/ui-curses.so
+
+%package ui-gtk
+Summary: GTK based UI support for QEMU
+Group: System/Emulators/PC
+Requires: qemu-ui-opengl
+Supplements: (qemu and libgtk-3-0)
+%{qemu_module_conflicts}
+
+%description ui-gtk
+This package contains a module for doing GTK based UI for QEMU.
+
+%files ui-gtk
+%dir %_libdir/%name
+%_libdir/%name/ui-gtk.so
+
+%package ui-opengl
+Summary: OpenGL based UI support for QEMU
+Group: System/Emulators/PC
+%{qemu_module_conflicts}
+
+%description ui-opengl
+This package contains a module for doing OpenGL based UI for QEMU.
+
+%files ui-opengl
+%dir %_datadir/%name
+%dir %_libdir/%name
+%_libdir/%name/ui-egl-headless.so
+%_libdir/%name/ui-opengl.so
+
+%package vhost-user-gpu
+Summary: Vhost user mode virtio-gpu 2D/3D rendering backend for QEMU
+Group: System/Emulators/PC
+%{qemu_module_conflicts}
+
+%description vhost-user-gpu
+This package contains a vhost user mode virtio-gpu 2D/3D rendering backend for
+QEMU.
+
+%files vhost-user-gpu
+%dir %_datadir/%name/vhost-user
+%_datadir/%name/vhost-user/50-qemu-gpu.json
+%_libexecdir/vhost-user-gpu
+
+%package img
+Summary: QEMU disk image utility
+Group: System/Emulators/PC
+
+%description img
+This package provides command line tools for manipulating disk images.
+
+%files img
+%_bindir/qemu-img
+%_bindir/qemu-io
+%_bindir/qemu-nbd
+%_bindir/qemu-storage-daemon
+%_mandir/man1/qemu-img.1.gz
+%_mandir/man8/qemu-nbd.8.gz
+%_mandir/man1/qemu-storage-daemon.1.gz
+%_mandir/man7/qemu-storage-daemon-qmp-ref.7.gz
+
+%package pr-helper
+Summary: QEMU persistent reservation helper
+Group: System/Emulators/PC
+
+%description pr-helper
+This package provides a helper utility for SCSI persistent reservations.
+
+%files pr-helper
+%_bindir/qemu-pr-helper
+%_mandir/man8/qemu-pr-helper.8.gz
+
+%package tools
+Summary: Tools for QEMU
+Group: System/Emulators/PC
+Requires(pre): permissions
+Requires: qemu-img
+Requires: qemu-pr-helper
+Requires: group(kvm)
+%if %{has_virtiofsd}
+Requires: virtiofsd
+%endif
+Recommends: multipath-tools
+Recommends: qemu-block-curl
+%if 0%{?with_rbd}
+Recommends: qemu-block-rbd
+%endif
+
+%description tools
+This package contains various QEMU related tools, including a bridge helper,
+a virtfs helper, ivshmem, disk utilities and scripts for various purposes.
+
+%files tools
+%_bindir/analyze-migration.py
+%_bindir/qemu-edid
+%_bindir/qemu-keymap
+%_bindir/vmstate-static-checker.py
+%_bindir/vmxcap
+%verify(not mode) %attr(4750,root,kvm) %_libexecdir/qemu-bridge-helper
+%_libexecdir/virtfs-proxy-helper
+%_mandir/man1/virtfs-proxy-helper.1.gz
+%dir %_sysconfdir/%name
+%config(noreplace) %_sysconfdir/%name/bridge.conf
+
+%post tools
+%set_permissions %_libexecdir/qemu-bridge-helper
+
+%verifyscript tools
+%verify_permissions %_libexecdir/qemu-bridge-helper
+
+%package ivshmem-tools
+Summary: Inter-VM Shared Memory Tools for QEMU
+Group: System/Emulators/PC
+
+%description ivshmem-tools
+This package contains a sample shared memory client and server which utilize
+QEMU's Inter-VM shared memory device as specified by the ivshmem client-server
+protocol specification documented in docs/specs/ivshmem-spec.txt in QEMU source
+code.
+
+%files ivshmem-tools
+%dir %_datadir/%name
+%_bindir/ivshmem-client
+%_bindir/ivshmem-server
+
+%package guest-agent
+Summary: Guest agent for QEMU
+Group: System/Emulators/PC
+Requires: group(kvm)
+Requires(post): udev
+Supplements: modalias(acpi*:QEMU0002%3A*)
+Supplements: modalias(pci:v00005853d00000001sv*sd*bc*sc*i*)
+Supplements: modalias(pci:v0000FFFDd00000101sv*sd*bc*sc*i*)
+%{?systemd_ordering}
+
+%description guest-agent
+This package contains the QEMU guest agent. It is installed in the linux guest
+to provide information and control at the guest OS level.
+
+%files guest-agent
+%attr(0755,root,kvm) %_bindir/qemu-ga
+%_mandir/man8/qemu-ga.8.gz
+%{_unitdir}/qemu-guest-agent.service
+/usr/lib/udev/rules.d/80-qemu-ga.rules
+
+%pre guest-agent
+%service_add_pre qemu-guest-agent.service
+
+%post guest-agent
+%service_add_post qemu-guest-agent.service
+if [ -e /dev/virtio-ports/org.qemu.guest_agent.0 ]; then
+ /usr/bin/systemctl start qemu-guest-agent.service || :
+fi
+
+%preun guest-agent
+if [ -e /dev/virtio-ports/org.qemu.guest_agent.0 ]; then
+ /usr/bin/systemctl stop qemu-guest-agent.service || :
+fi
+
+%postun guest-agent
+%service_del_postun_without_restart qemu-guest-agent.service
+if [ "$1" = "1" ] ; then
+ if [ -e /dev/virtio-ports/org.qemu.guest_agent.0 ]; then
+ /usr/bin/systemctl restart qemu-guest-agent.service || :
+ fi
+fi
+
+%package ksm
+Summary: Kernel Samepage Merging services
+Group: System/Emulators/PC
+Requires(pre): coreutils
+Requires(post): coreutils
+
+%description ksm
+Kernel Samepage Merging (KSM) is a memory-saving de-duplication feature, that
+merges anonymous (private) pages (not pagecache ones).
+
+This package provides a service file for starting and stopping KSM.
+
+%files ksm
+%{_unitdir}/ksm.service
+
+%pre ksm
+%service_add_pre ksm.service
+
+%post ksm
+%service_add_post ksm.service
+
+%preun ksm
+%service_del_preun ksm.service
+
+%postun ksm
+%service_del_postun ksm.service
+
+%package accel-tcg-x86
+Summary: TCG accelerator for QEMU
+Group: System/Emulators/PC
+%{qemu_module_conflicts}
+
+%description accel-tcg-x86
+TCG is the QEMU binary translator, responsible for converting from target to
+host instruction set.
+
+This package provides the TCG accelerator for QEMU.
+
+%files accel-tcg-x86
+%dir %_datadir/%name
+%dir %_libdir/%name
+%_libdir/%name/accel-tcg-i386.so
+%_libdir/%name/accel-tcg-x86_64.so
+
+%package accel-qtest
+Summary: QTest accelerator for QEMU
+Group: System/Emulators/PC
+%{qemu_module_conflicts}
+
+%description accel-qtest
+QTest is a device emulation testing framework. It is useful to test device
+models.
+
+This package provides QTest accelerator for testing QEMU.
+
+%files accel-qtest
+%dir %_datadir/%name
+%dir %_libdir/%name
+%_libdir/%name/accel-qtest-aarch64.so
+%_libdir/%name/accel-qtest-alpha.so
+%_libdir/%name/accel-qtest-arm.so
+%_libdir/%name/accel-qtest-avr.so
+%_libdir/%name/accel-qtest-cris.so
+%_libdir/%name/accel-qtest-hppa.so
+%_libdir/%name/accel-qtest-i386.so
+%_libdir/%name/accel-qtest-loongarch64.so
+%_libdir/%name/accel-qtest-m68k.so
+%_libdir/%name/accel-qtest-microblaze.so
+%_libdir/%name/accel-qtest-microblazeel.so
+%_libdir/%name/accel-qtest-mips.so
+%_libdir/%name/accel-qtest-mips64.so
+%_libdir/%name/accel-qtest-mips64el.so
+%_libdir/%name/accel-qtest-mipsel.so
+%_libdir/%name/accel-qtest-nios2.so
+%_libdir/%name/accel-qtest-or1k.so
+%_libdir/%name/accel-qtest-ppc.so
+%_libdir/%name/accel-qtest-ppc64.so
+%_libdir/%name/accel-qtest-riscv32.so
+%_libdir/%name/accel-qtest-riscv64.so
+%_libdir/%name/accel-qtest-rx.so
+%_libdir/%name/accel-qtest-s390x.so
+%_libdir/%name/accel-qtest-sh4.so
+%_libdir/%name/accel-qtest-sh4eb.so
+%_libdir/%name/accel-qtest-sparc.so
+%_libdir/%name/accel-qtest-sparc64.so
+%_libdir/%name/accel-qtest-tricore.so
+%_libdir/%name/accel-qtest-x86_64.so
+%_libdir/%name/accel-qtest-xtensa.so
+%_libdir/%name/accel-qtest-xtensaeb.so
+
+%if 0%{?with_rbd}
+%package block-rbd
+Summary: Rados Block Device (Ceph) support for QEMU
+Group: System/Emulators/PC
+%{qemu_module_conflicts}
+
+%description block-rbd
+This package contains a module for accessing ceph (rbd,rados) image files
+for QEMU.
+
+%files block-rbd
+%dir %_libdir/%name
+%_libdir/%name/block-rbd.so
+# End of "if with_rbd"
+%endif
+
+%if %{build_ppc_firmware}
+%package SLOF
+Summary: Slimline Open Firmware - SLOF
+Group: System/Emulators/PC
+BuildArch: noarch
+
+%description SLOF
+Slimline Open Firmware (SLOF) is an implementation of the IEEE 1275 standard.
+It can be used as partition firmware for pSeries machines running on QEMU or KVM.
+
+%files SLOF
+%dir %_datadir/%name
+%_datadir/%name/slof.bin
+
+%package skiboot
+Summary: OPAL firmware (aka skiboot), used in booting OpenPOWER systems
+Group: System/Emulators/PC
+BuildArch: noarch
+Requires(post): update-alternatives
+Requires(postun): update-alternatives
+
+%description skiboot
+Provides OPAL (OpenPower Abstraction Layer) firmware, aka skiboot, as
+traditionally packaged with QEMU.
+
+%files skiboot
+%dir %_datadir/%name
+%_datadir/%name/skiboot.lid
+%_datadir/%name/skiboot.lid.qemu
+%ghost %_sysconfdir/alternatives/skiboot.lid
+
+%post skiboot
+update-alternatives --install \
+ %{_datadir}/%name/skiboot.lid skiboot.lid %{_datadir}/%name/skiboot.lid.qemu 15
+
+%preun skiboot
+if [ ! -f %{_datadir}/%name/skiboot.lid.qemu ] ; then
+ update-alternatives --remove skiboot.lid %{_datadir}/%name/skiboot.lid.qemu
+fi
+# End of "if build_ppc_firmware"
+%endif
+
+%if %{build_x86_firmware}
+%package microvm
+Summary: x86 MicroVM firmware for QEMU
+Group: System/Emulators/PC
+BuildArch: noarch
+
+%description microvm
+This package provides minimal x86 firmware for booting certain guests under
+QEMU. qboot provides the minimum resources needed to boot PVH and bzImages.
+bios-microvm, created from a minimal seabios configuration, provides slightly
+wider support than qboot, but still focuses on quick boot up.
+
+%files microvm
+%dir %_datadir/%name
+%_datadir/%name/bios-microvm.bin
+%_datadir/%name/qboot.rom
+
+%package seabios
+Summary: x86 Legacy BIOS for QEMU
+Group: System/Emulators/PC
+Version: %{sbver}
+Release: 0
+BuildArch: noarch
+Conflicts: %name < 1.6.0
+
+%description seabios
+SeaBIOS is an open source implementation of a 16bit x86 BIOS. SeaBIOS
+is the default and legacy BIOS for QEMU.
+
+%files seabios
+%dir %_datadir/%name
+%_datadir/%name/bios.bin
+%_datadir/%name/bios-256k.bin
+%_datadir/%name/firmware/50-seabios-256k.json
+%_datadir/%name/firmware/60-seabios-128k.json
+%license roms/seabios/COPYING
+%doc %_docdir/qemu-seabios
+
+%package vgabios
+Summary: VGA BIOSes for QEMU
+Group: System/Emulators/PC
+Version: %{sbver}
+Release: 0
+BuildArch: noarch
+Conflicts: %name < 1.6.0
+
+%description vgabios
+VGABIOS provides the video ROM BIOSes for the following variants of VGA
+emulated devices: Std VGA, QXL, Cirrus CLGD 5446 and VMware emulated
+video card. For use with QEMU.
+
+%files vgabios
+%dir %_datadir/%name
+%_datadir/%name/vgabios.bin
+%_datadir/%name/vgabios-ati.bin
+%_datadir/%name/vgabios-bochs-display.bin
+%_datadir/%name/vgabios-cirrus.bin
+%_datadir/%name/vgabios-qxl.bin
+%_datadir/%name/vgabios-ramfb.bin
+%_datadir/%name/vgabios-stdvga.bin
+%_datadir/%name/vgabios-virtio.bin
+%_datadir/%name/vgabios-vmware.bin
+%license roms/seabios/COPYING
+
+%package ipxe
+Summary: PXE ROMs for QEMU NICs
+Group: System/Emulators/PC
+Version: 1.0.0+
+Release: 0
+BuildArch: noarch
+Conflicts: %name < 1.6.0
+
+%description ipxe
+Provides Preboot Execution Environment (PXE) ROM support for various emulated
+network adapters available with QEMU.
+
+%files ipxe
+%dir %_datadir/%name
+%_datadir/%name/efi-e1000.rom
+%_datadir/%name/efi-e1000e.rom
+%_datadir/%name/efi-eepro100.rom
+%_datadir/%name/efi-ne2k_pci.rom
+%_datadir/%name/efi-pcnet.rom
+%_datadir/%name/efi-rtl8139.rom
+%_datadir/%name/efi-virtio.rom
+%_datadir/%name/efi-vmxnet3.rom
+%_datadir/%name/pxe-e1000.rom
+%_datadir/%name/pxe-eepro100.rom
+%_datadir/%name/pxe-ne2k_pci.rom
+%_datadir/%name/pxe-pcnet.rom
+%_datadir/%name/pxe-rtl8139.rom
+%_datadir/%name/pxe-virtio.rom
+# End of "if build_x86_firmware"
+%endif
+
+%package doc
+Summary: Documentation for QEMU
+Group: System/Emulators/PC
+BuildArch: noarch
+Suggests: qemu
+
+%files doc
+%doc %_docdir/%name
+
+%description doc
+%{generic_qemu_description}
+
+This package contains user and developer documentation for QEMU.
+
+%changelog
--- /dev/null
+rel-1.16.2-3-gd478f380
--- /dev/null
+[qemu-arm package document]
+
+SLES 15 SP4 QEMU/KVM RELATED SUPPORT STATEMENTS
+===============================================
+
+Overview
+--------
+
+ The QEMU based packages included with SLES 15 SP4 provide a large variety of
+ features, from the very latest customer requests to features of questionable
+ quality or value. The linux kernel includes components which contribute KVM
+ virtualization features as well. This document was created to assist the user
+ in deciding which features can be relied upon to build enterprise class
+ virtualization solutions. KVM based virtualization for x86 (Intel 64/AMD64),
+ for IBM System z (s390x), and for the ARM64 architecture (AArch64) are offered
+ at the L3 (full support) level. The bulk of this document deals with L3
+ supported features and is primarily ARM64 centric. This document should be
+ considered a companion to the standard virtualization documentation delivered
+ with the product.
+
+ KVM is implemented in linux kernel modules which enable the linux kernel to
+ function as an integral part of the KVM hypervisor. The hypervisor-guest
+ interaction is managed by QEMU through the /dev/kvm ioctl interface. The linux
+ host assists in the virtualization of storage, networking and display
+ resources as well as allowing direct hardware passthrough of PCI and USB
+ devices. Linux memory and cpu management features are used by QEMU/KVM to
+ enable guests to share those host resources as efficiently as possible.
+
+ QEMU is a primary component of KVM based virtualization. The QEMU emulator
+ binary qemu-system-aarch64 is the program to use to access KVM virtualization.
+ When using this program, the -machine option accel=kvm (or its alias
+ -enable-kvm) or --accel kvm option must be specified for KVM acceleration to
+ be used by the guest.
+
+ Libvirt is the preferred means of accessing QEMU/KVM functionality and is
+ documented elsewhere. This document focuses on the features and direct usage
+ of QEMU/KVM as provided by the QEMU based packages.
+
+Major QEMU/KVM Supported Features
+---------------------------------
+
+- KVM virtualization is accomplished by using the QEMU program in KVM
+ acceleration mode. KVM acceleration requires that both guest and host have
+ the same fundamental architecture.
+
+- Guest images created under previous QEMU versions are supported by machine
+ version compatibilities built into more recent QEMU versions.
+
+- For ease of use, the QEMU program has defaults which represent traditional
+ usage patterns.
+
+- Guest virtual machine characteristics are specified by a combination of
+ internal defaults, options provided on the QEMU program command-line, runtime
+ configurations set via the monitor interfaces and optional config files. The
+ runtime control of a VM is effected either through the Human Monitor
+ "Protocol" (HMP), or the JSON based programmatical QEMU Monitor Protocol (QMP)
+ interface. For QMP details, see qemu-qmp-ref man page.
+ Since a KVM guest runs in the context of a normal linux process, some types
+ of execution controls are managed with linux tools.
+
+- QEMU is compatible with EDK II based UEFI firmware available with SLES 15 SP4,
+ which allow boot options common to physical systems, along with other features
+ tailored to virtualization. Various VGABIOS ROMs, from the SEABIOS project,
+ are also available.
+
+- Some QEMU messages have been localized to various languages. This is provided
+ by the optional qemu-lang package. Keyboard mappings for various nationalities
+ is also provided.
+
+- Virtual machine lifecycle controls include startup through the UEFI BIOS or
+ kernel boot, ACPI based shutdown, execution pausing, the saving and restoring
+ of machine state or disk state, VM migration to another host, and
+ miscellaneous controls available through the "monitors" mentioned above.
+
+- Guest execution state may be "moved" in both time (save/restore) and space
+ (static and live migration). These migrations or save/restore operations can
+ take place either from certain prior SLES versioned hosts to a SLES 15 SP4
+ host or between hosts of the same version. Certain other restrictions also
+ apply.
+
+- Security considerations include privileged helpers and a security model which
+ allows running guests as a non-root user.
+
+- QEMU provides best effort reuse of existing disk images, including those with
+ systems installed, through geometry probing. Also disk images produced by
+ other popular virtualization technologies may be imported into QEMU supported
+ storage formats. These QEMU formats include features which exploit the
+ benefits of virtualization.
+
+- Memory, cpu and disk space overcommit are possible and can be beneficial when
+ done responsibly. Additional management of these resources comes in the form
+ of memory ballooning or hotplug, host KSM, vcpu hot-add, online disk resizing,
+ trim, discard and hole punching.
+
+- Guest performance is enhanced through the use of virtio devices, various disk
+ caching modes, network acceleration via the vhost-net kernel module, multi-
+ queue network transmit capabilities, host transparent huge pages (THP) and
+ direct hugetlb usage. Physical PCI and USB devices may also be passed through
+ to the guest, including SR-IOV VF's.
+
+- The guest UI is accessable via GTK, VNC, Spice, and serial (including curses
+ TUI) interfaces.
+
+- Guest timekeeping is supported in a variety of ways, including a paravirtual
+ clocksource, and options for the various guest clocks for how to handle the
+ timeslicing of the guest's execution on the host.
+
+- In addition to the para-virtualized devices already mentioned, other devices
+ and infrastructure designed to avoid virtualization "problem areas" are
+ available such as SPICE graphics, vmmouse emulation, tablet style pointer
+ interfaces and virtio based UI interfaces.
+
+- A built-in user-mode network (SLIRP) stack is available.
+
+- Portions of the host file system may be shared with a guest by using virtFS.
+
+- A guest "agent" is available for SLES 15 SP4 KVM guests via the
+ qemu-guest-agent package. This allows some introspection and control of the
+ guest OS environment from the host.
+
+QEMU/KVM Technology Previews
+----------------------------
+
+- All features indicated as not being supported in this document fall under the
+ Technology Preview definition contained in the main product's release notes.
+
+Noteworthy QEMU/KVM Unsupported Features
+----------------------------------------
+
+- Note that some features are unsupported simply due to lack of validation. If
+ an existing feature is desired, but not marked supported, let SUSE know about
+ your requirements.
+
+- The TCG "acceleration" mode may be helpful for problem isolation, but
+ otherwise presents insufficient benefit and stability.
+
+- GlusterFS integration is not enabled.
+
+- 32 bit ARM KVM has never been supported by SUSE, but it's worth noting that
+ this capability will cease to even be possible in a near-future QEMU/KVM
+ (kernel) combination.
+
+Deprecated, Superseded, Modified and Dropped Features
+-----------------------------------------------------
+
+- https://qemu-project.gitlab.io/qemu/about/deprecated.html and
+ https://qemu-project.gitlab.io/qemu/about/removed-features.html
+ These websites track features deprecation and removal at the upstream
+ development level. Our qemu package inherits this community direction, but be
+ aware that we can and will deviate as needed. Those deviations and additional
+ information can be found in this section. Feature deprecation as well as
+ removed features are also tracked in the "System Emulation" section of the
+ documentation installed with the qemu package.
+
+- qemu-img: Deprecate use of -b without -F. Creating an image that requires
+ format probing of the backing image is potentially unsafe and is now
+ deprecated.
+
+- Aspeed swift-bmc machine is deprecated. It can be easily replaced by the
+ witherspoon-bmc or the romulus-bmc machines.
+
+- The previously non-persistent backing file with pmem=on is deprecated. Modify
+ VM configuration to set pmem=off to continue using fake NVDIMM with backing
+ file or move backing file to NVDIMM storage and keep pmem=on.
+
+- The use of "?" as a parameter to "-cpu", "-soundhw", "-device", "-M",
+ "-machine" and "-d" is now considered deprecated. Use "help"
+ instead.
+
+- The use of "if=scsi" as a parameter to "-drive" does not work anymore with PC
+ machine types, as it created an obsolete SCSI controller model.
+
+- Use of aio=native without direct cache mode also being specified (cache=none,
+ cache=directsync, or cache.direct=on) is no longer allowed.
+
+- The use of image encryption in qcow and qcow2 formats is now considered
+ deprecated.
+ Analysis has shown it to be weak encryption, in addition to suffering from
+ poor design. Images can easily be converted to a non-encrypted format.
+
+- Use of acpi, boot-opts, and smp-opts in a -readconfig config file are now
+ considered deprecated. In the future those names will be standardized to
+ acpitable, boot, and smp respectively.
+
+- These previously supported command line options are now considered deprecated:
+ -display sdl,window_close= (use -display sdl,window-close)
+ -no-quit (use -display ...,window-close=off)
+ -chardev tty (use serial name instead)
+ -chardev paraport (use parallel name instead)
+ -device virtio-blk,scsi= (use virtio-scsi instead)
+ -device virtio-blk-pci,scsi= (use virtio-scsi instead)
+ -enable-fips (not really helpful - see https://git.qemu.org/?p=qemu.git;a=commit;h=166310299a1e7824bbff17e1f016659d18b4a559 for details)
+ -realtime mlock= (use -overcommit mem-lock= instead)
+ -spice password=string (use password-string option instead)
+ -writeconfig (no replacement - never really worked right)
+ -share and noshare must be replaced by share=on/share=off
+ -nodelay must be replaced by nodelay=on rather than delay=off
+ -object-add options opened=on and loaded=on (both had no effect)
+
+- These previously supported command line options are no longer supported:
+ -device ide-drive (use ide-hd or ide-cd instead)
+ -device scsi-disk (use scsi-hd or scsi-cd instead)
+
+- These previously supported command line options are no longer recognized:
+ -balloon (use -device virtio-balloon instead)
+ -clock
+ -device ivshmem (use ivshmem-doorbell or ivshmem-plain instead)
+ -device pc-sysfw (no longer needed)
+ -device pci-assign, -device kvm-pci-assign (use -device vfio-pci instead)
+ -display sdl
+ -no-frame
+ -nodefconfig (use -no-user-config instead)
+ -realtime ...
+ -sdl
+ -show-cursor
+ -virtioconsole (use -device virtconsole instead)
+
+- The previously unsupported machine type xlnx-ep108 is no longer recognized
+ (used xlnx-zcu102 unstead)
+
+- Specifying a cpu feature with both "+feature/-feature" and "feature=on/off"
+ will now cause a warning. The current behavior for this combination where
+ "+feature/-feature" wins over "feature=on/off", will be changed going forward
+ so that "+feature" and "-feature" will be synonyms for "feature=on" and
+ "feature=off" respectively.
+
+- The previously supported blkdev-add QMP command has been flagged as lacking
+ and could possibly change syntax in the future.
+
+- This previously unsupported command line option is now deprecated:
+ -soundhw (use -device ... instead)
+
+- These previously unsupported command line options are no longer recognized:
+ -bt
+ -device at24c-eeprom
+ -device mmio_interface
+ -device ssi-sd
+ -device tpm-tis-device
+ -device u2f-passthru
+ -device vhost-user-vsock-pci-transitional
+ -device vhost-vsock-pci-transitional
+ -device virtio-iommu-pci-transitional
+ -enable-hax
+ -tb-size
+ -tdf
+ -xen-create
+
+- These previously supported QMP commands are now deprecated:
+ <previously mentioned items have been moved to another category>
+
+- These previously supported QMP commands are no longer recognized:
+ info cpustats
+ block_passwd
+ change (use blockdev-change-medium or change-vnc-password instead)
+ cpu-add (use device_add instead)
+ migrate-set-cache-size (use migrate-set-parameters instead)
+ migrate_set_downtime (use migrate-set-parameters instead)
+ migrate_set_speed (use migrate-set-parameters instead)
+ query-cpus (use query-cpus-fast instead)
+ query-events
+ query-migrate-cache-size (use query-migrate-parameters instead)
+
+- These previously supported monitor commands are now deprecated:
+ change
+
+- These previously supported monitor commands are no longer recognized:
+ info cpustats
+ block_passwd ...
+ cpu-add (use device_add instead)
+ migrate_set_cache_size
+ migrate_set_downtime
+ migrate_set_speed
+ pci_add (use device_add instead)
+ pci_del (use device_del instead)
+ usb_add (use device_add instead)
+ usb_del (use device_del instead)
+
+- These previously unsupported monitor command are now deprecated:
+ <previously mentioned items have been moved to another category>
+
+- These previously unsupported monitor commands are no longer recognized:
+ acl_add ...
+ acl_policy ...
+ acl_remove ...
+ acl_reset ...
+ acl_show ...
+ host_net_add
+ host_net_remove
+
+- These previously unsupported QMP commands are now supported under a new name:
+ x-block-dirty-bitmap-disable (use block-dirty-bitmap-disable instead)
+ x-block-dirty-bitmap-enable (use block-dirty-bitmap-enable instead)
+ x-block-dirty-bitmap-merge (use block-dirty-bitmap-merge instead)
+ x-block-latency-histogram-set (use block-latency-histogram-set instead)
+ x-blockdev-create (use blockdev-create instead)
+
+- This previously unsupported QMP commands is no longer recognized:
+ x-nbd-server-add-bitmap
+
+- Due to upstream's decision to no longer fully support the qed storage format
+ going forward (since it really provides no benefit over qcow2 and is now no
+ longer actively maintained upstream), creating qed storage images is no longer
+ supported and it is highly discouraged to continue using existing qed images.
+ They should instead be converted to another supported format.
+
+QEMU Command-Line and Monitor Syntax and Support
+------------------------------------------------
+
+- The QEMU program command-line syntax is as follows:
+ qemu-system-aarch64 [options]
+
+ Where 'options' are taken from the options listed below.
+ The images used with -drive or -cdrom, may be in the raw (no format) or qcow2
+ storage formats, and may be located in files within the host filesystem,
+ logical volumes, host physical disks, or network based storage. Read only
+ media may also be accessed via URL style protocol specifiers.
+
+ Note that as a general rule, as new command line options are added which serve
+ to replace an older option or interface, you are strongly encouraged to adapt
+ your usage to the new option. The new option is being introduced to provide
+ better functionality and usability going forward. In some cases existing
+ problems or even bugs in older interfaces cannot be fixed due to functional
+ expectations, but are resolved in the newer interface or option.
+ This advice includes moving to the most recent machine type (eg virt-6.1
+ instead of virt-6.0) if possible.
+
+- The following command line options are supported:
+ -accel ...
+ -action ...
+ -add-fd ...
+ -alt-grab
+ -append ...
+ -audio-help
+ -audiodev
+ -bios ...
+ -blockdev ...
+ -boot ...
+ -cdrom ...
+ -chardev ...
+ -compat ...
+ -cpu host
+ -ctrl-grab
+ -d ...
+ -daemonize
+ -debugcon ...
+ -device
+
+ [VGA|rtl8139|virtio-net-pci|virtio-blk-pci|virtio-balloon-pci|
+ virtio-9p-pci|usb-hub|usb-ehci|usb-tablet|usb-storage|usb-mouse|
+ usb-kbd|virtserialport|virtconsole|virtio-serial-pci|i82559er|
+ virtio-scsi-pci|scsi-cd|scsi-hd|scsi-generic|scsi-disk|scsi-block|
+ pci-serial|pci-serial-2x|pci-serial-4x|ich9-ahci|usb-host|usb-serial|
+ usb-wacom-tablet|usb-braille|usb-net|pci-ohci|virtio-rng-pci|i6300esb|
+ qxl|qxl-vga|pvpanic|vfio-pci|ivshmem-doorbell|ivshmem-plain|
+ pci-bridge|megasas-gen2|e1000e|e1000|vmcoreinfo|pcie-pci-bridge|
+ vhost-user-blk|vhost-user-blk-pci|vhost-user-scsi|vhost-user-scsi-pci|
+ vhost-vsock-pci|virtio-crypto-pci|virtio-vga|
+ vhost-scsi-pci-non-transitional|vhost-scsi-pci-transitional|
+ vhost-user-blk-pci-non-transitional|vhost-user-blk-pci-transitional|
+ vhost-user-scsi-pci-non-transitional|vhost-user-scsi-pci-transitional|
+ vhost-vsock-pci-non-transitional|virtio-9p-pci-non-transitional|
+ virtio-9p-pci-transitional|virtio-balloon-pci-non-transitional|
+ virtio-balloon-pci-transitional|virtio-blk-pci-non-transitional|
+ virtio-blk-pci-transitional|virtio-input-host-pci-non-transitional|
+ virtio-input-host-pci-transitional|virtio-net-pci-non-transitional|
+ virtio-net-pci-transitional|virtio-rng-pci-non-transitional|
+ virtio-rng-pci-transitional|virtio-scsi-pci-non-transitional|
+ virtio-scsi-pci-transitional|virtio-serial-pci-non-transitional|
+ virtio-serial-pci-transitional|vhost-user-fs-pci|vhost-user-gpu|
+ vhost-user-pci-pci|vhost-user-input|vhost-user-input-pci|
+ vhost-user-vga|virtio-mmio|guest-loader|nvme-subsys|pvpanic-pci]
+ (the following are aliases of these supported devices: ahci|
+ virtio-blk|virtio-net|virtio-serial|virtio-balloon| virtio-9p|
+ virtio-input-host|virtio-keyboard|virtio-mouse|virtio-tablet|
+ virtio-gpu|virtio-scsi|virtio-rng|e1000-82540em)
+
+ -dfilter range, ...
+ -display ...
+ -drive
+
+ ... (if specified if=[virtio] and format=[qcow2|raw] and
+ snapshot=off only)
+
+ -echr ...
+ -enable-fips
+ -enable-kvm
+ -fsdev ...
+ -full-screen
+ -fw_cfg ...
+ -gdb ...
+ -global ...
+ -h
+ -help
+ -incoming ...
+ -initrd ...
+ -iscsi ...
+ -k ...
+ -kernel ...
+ -loadvm ...
+ -m ...
+ -M [help|none|virt-2.6|virt-2.11|virtio-3.1|virt-4.2|virt-5.2|virt-6.0|virt-6.1]
+ -machine [help|none|virt-2.6|virt-2.11|virt-3.1|virt-4.2|virt-5.2|virt-6.0|virt-6.1]
+ -mem-path ...
+ -mem-prealloc
+ -mon ...
+ -monitor ...
+ -msg ...
+ -name ...
+ -net
+
+ [bridge|l2tpv3|nic|none|tap|user] ... (for model= only e1000, rtl8139,
+ and virtio are supported)
+
+ -netdev [bridge|tap|user] ...
+ -nic ...
+ -no-acpi
+ -nodefaults
+ -nographic
+ -no-quit
+ -no-reboot
+ -no-shutdown
+ -no-user-config
+ -object ...
+ -only-migratable
+ -parallel ...
+ -pidfile ...
+ -plugin ...
+ -qmp ...
+ -qmp-pretty ...
+ -readconfig ...
+ -rtc ...
+ -runas ...
+ -s
+ -S
+ -sandbox ...
+ -seed ...
+ -serial ...
+ -smbios ...
+ -smp ...
+ -spice
+ -tpmdev passthrough ...
+ -trace ...
+ -usb
+ -usbdevice [braile|disk|host|mouse|net|serial|tablet]
+ -uuid ...
+ -version
+ -vga [none|qxl|std|virtio]
+ -virtfs ...
+ -vnc ...
+ -watchdog ...
+ -watchdog-action ...
+ -writeconfig ...
+
+- The following monitor commands are supported:
+ ?
+ announce_self ...
+ balloon ...
+ block_resize ...
+ boot_set ...
+ c
+ change ...
+ chardev-add ...
+ chardev-change ...
+ chardev-remove ...
+ chardev-send-break ...
+ client_migrate_info ...
+ closefd ...
+ cont
+ cpu ...
+ delvm ...
+ device_add ...
+ device_del ...
+ drive_add ...
+ drive_backup ...
+ drive_del ...
+ dump_guest_memory ...
+ eject ...
+ gdbserver ...
+ gpa2hpa ...
+ gpa2hva ...
+ gva2gpa ...
+ help
+ i ...
+ info ...
+ loadvm ...
+ logfile ...
+ logitem ...
+ mce ...
+ memsave ...
+ migrate ...
+ migrate_cancel
+ migrate_continue ...
+ migrate_incoming
+ migrate_pause
+ migrate_recover ...
+ migrate_set_capability ...
+ migrate_set_parameter ...
+ migrate_start_post_copy
+ mouse_button ...
+ mouse_move ...
+ mouse_set ...
+ nmi ...
+ o ...
+ object_add ...
+ object_del ...
+ p ...
+ pmemsave ...
+ print ...
+ q
+ qemu-io ...
+ qom-list
+ qom-set
+ ringbuf_read ...
+ ringbuf_write ...
+ savevm ...
+ screendump ...
+ sendkey ...
+ snapshot_blkdev_internal ...
+ snapshot_delete_blkdev_internal ...
+ stop
+ sum ...
+ system_powerdown
+ system_reset
+ system_wakeup
+ trace-event ...
+ watchdog_action ...
+ x ...
+ xp ...
+
+- The following QMP commands are supported:
+ add_client
+ add-fd
+ announce-self
+ balloon
+ blockdev-add
+ blockdev-backup
+ blockdev-change-medium
+ blockdev-close-tray
+ blockdev-create
+ blockdev-del
+ blockdev-mirror
+ blockdev-open-tray
+ blockdev-snapshot
+ blockdev-snapshot-delete-internal-sync
+ blockdev-snapshot-internal-sync
+ blockdev-snapshot-sync
+ block-commit
+ block-dirty-bitmap-add
+ block-dirty-bitmap-clear
+ block-dirty-bitmap-disable
+ block-dirty-bitmap-enable
+ block-dirty-bitmap-merge
+ block-dirty-bitmap-remove
+ block-export-add
+ block-export-del
+ block-latency-histogram-set
+ block_resize
+ block_set_io_throttle
+ block-set-write-threshold
+ block_stream
+ calc-dirty-rate
+ change-vnc-password
+ chardev-add
+ chardev-change
+ chardev-remove
+ chardev-send-break
+ client_migrate_info
+ closefd
+ cont
+ cpu
+ device_add
+ device_del
+ device-list-properties
+ display-reload
+ dump-guest-memory
+ eject
+ expire_password
+ getfd
+ human-monitor-command
+ inject-nmi
+ input-send-event
+ job-cancel
+ job-complete
+ job-dismiss
+ job-finalize
+ job-pause
+ job-resume
+ memsave
+ migrate
+ migrate_cancel
+ migrate-continue
+ migrate-incoming
+ migrate-pause
+ migrate-resume
+ migrate-set-capabilities
+ migrate-set-parameters
+ migrate-start-postcopy
+ object-add
+ object-del
+ pmemsave
+ qmp_capabilities
+ qom-get
+ qom-list
+ qom-list-types
+ qom-set
+ query-acpi-ospm-status
+ query-balloon
+ query-block
+ query-block-exports
+ query-block-jobs
+ query-blockstats
+ query-chardev
+ query-chardev-backends
+ query-command-line-options
+ query-commands
+ query-cpu-definitions
+ query-cpu-model-expansion
+ query-cpus-fast
+ query-current-machine
+ query-display-options
+ query-dirty-rate
+ query-dump
+ query-dump-guest-memory-capability
+ query-fdsets
+ query-gic-capabilities
+ query-hotpluggable-cpus
+ query-iothreads
+ query-jobs
+ query-kvm
+ query-machines
+ query-memdev
+ query-memory-devices
+ query-memory-size-summary
+ query-mice
+ query-migrate
+ query-migrate-capabilities
+ query-migrate-parameters
+ query-name
+ query-named-block-nodes
+ query-pci
+ query-pr-managers
+ query-qmp-schema
+ query-rocker
+ query-rocker-of-dpa-flows
+ query-rocker-of-dpa-groups
+ query-rocker-ports
+ query-rx-filter
+ query-spice
+ query-status
+ query-target
+ query-tpm
+ query-tpm-models
+ query-tpm-types
+ query-uuid
+ query-version
+ query-vnc
+ query-vnc-servers
+ query-yank
+ query-xen-replication-status
+ quit
+ remove-fd
+ ringbuf-read
+ ringbuf-write
+ screendump
+ send-key
+ set-action
+ set_link
+ set_password
+ snapshot-delete
+ snapshot-load
+ snapshot-save
+ stop
+ system_powerdown
+ system_reset
+ system_wakeup
+ trace-event-get-state
+ trace-event-set-state
+ transaction
+ watchdog-set-action
+ yank
+
+- The following command line options are unsupported:
+
+ -acpitable ...
+ -chroot ...
+ -cpu ... (all except host)
+ -curses
+ -device
+
+ [160s33b|320s33b|640s33b|a15mpcore_priv|a9mpcore_priv|a9-scu|adlib|
+ ads7846|allwinner-a10|allwinner-a10-pic|allwinner-A10-timer|
+ allwinner-emac|amd-iommu|AMDVI-PCI|arm1026-arm-cpu|arm1136-arm-cpu|
+ arm1136-r2-arm-cpu|arm1176-arm-cpu|arm11mpcore-arm-cpu|
+ arm11mpcore_priv|arm11-scu|arm926-arm-cpu|arm946-arm-cpu|
+ arm.cortex-a9-global-timer|arm_gic|arm-gicv2m|
+ arm_mptimer|armv7m_nvic|aspeed.timer|aspeed.vic|ast2400|
+ at25128a-nonjedec|at25256a-nonjedec|at25df041a|at25df321a|at25df641|
+ at25fs010|at25fs040|at26df081a|at26df161a|at26df321|at26f004|
+ at45db081d|bcm2835-aux|bcm2835-dma|bcm2835-fb|bcm2835-ic|bcm2835-mbox|
+ bcm2835-peripherals|bcm2835-property|bcm2836|bcm2836-control|
+ bochs-display|cadence_gem|cadence_ttc|cadence_uart|ccid-card-emulated|
+ ccid-card-passthru|cfi.pflash02|cirrus-vga|cmsdk-apb-dualtimer|
+ cmsdk-apb-watchdog|corgi-ssp|cortex-a15-arm-cpu|cortex-a53-arm-cpu|
+ cortex-a57-arm-cpu|cortex-a72-arm-cpu|cortex-a8-arm-cpu|
+ cortex-a9-arm-cpu|cortex-m0-arm-cpu|cortex-m3-arm-cpu|
+ cortex-m4-arm-cpu|cortex-r5-arm-cpu|cs4231a|digic|digic-timer|
+ digic-uart|ds1338|dscm1xxxx|e1000|en25f32|en25p32|en25p64|en25q32b|
+ en25q64|exynos4210.combiner|exynos4210-ehci-usb|exynos4210.fimd|
+ exynos4210.gic|exynos4210.i2c|exynos4210.irq_gate|exynos4210.mct|
+ exynos4210.pmu|exynos4210.pwm|exynos4210.rtc|exynos4210.uart|floppy|
+ fslimx25|fslimx31|fusbh200-ehci-usb|fw_cfg|gd25q32|gd25q64|
+ gpex-pcihost|gpex-root|gpio_i2c|gpio-key|gus|hyperv-testdev|
+ highbank-regs|host-arm-cpu|*-i386-cpu|i8042|ib700|icp-ctrl-regs|
+ igd-passthrough-isa-bridge|imx25.ccm|imx31.ccm|imx6.ccm|imx.avic|
+ imx.epit|imx.fec|imx.gpio|imx.gpt|imx.i2c|imx.serial|imx6ul.ccm|
+ integrator_core|integrator_debug|integrator_pic|integrator_pit|
+ intel_iommu|iotkit-sysctl|iotkit-sysinfo|ipmi-bmc-extern|ipmi-bmc-sim|
+ isa-applesmc|isa-cirrus-vga|isa-debugcon|isa-debug-exit|isa-fdc|
+ isa-ide|isa-ipmi-bt|isa-ipmi-kcs|isa-parallel|isa-vga|kvaser_pci|
+ kvm-arm-gic|kvm-arm-gicv3|l2x0|lan9118|lm8323|loader|lsi53c810a|
+ lsi53c895a|m25p05|m25p10|m25p128|m25p16|m25p20|m25p32|m25p40|m25p64|
+ m25p80|m25pe16|m25pe20|m25pe80|m25px32|m25px32-s0|m25px32-s1|m25px64|
+ m45pe10|m45pe16|m45pe80|mainstone-fpga|max1110|max1111|max7310|
+ mioe3680_pci|msf2-soc|msf2-sysreg|mss-sp1|mss-timer|musicpal_gpio|
+ musicpal_key|musicpal_lcd|musicpal-misc|mv88w8618_audio|mv88w8618_eth|
+ mv88w8618_flashcfg|mv88w8618_pic|mv88w8618_pit|mv88w8618_wlan|
+ mx25l12805d|mx25l12855e|mx25l1606e|mx25l2005a|mx25l25635e|mx25l25655e|
+ mx25l3205d|mx25l4005a|mx25l6405d|mx25l8005|n25q032|n25q032a11|
+ n25q032a13|n25q064|n25q064a11|n25q064a13|n25q128|n25q128a11|
+ n25q128a13|n25q256a|n25q256a11|n25q256a13|n25q512a|n25q512a11|
+ n25q512a13|nand|ne2k_isa|nrf51-soc|nrf51_soc.uart|nvdimm|omap2-gpio|
+ omap2-intc|omap-gpio|omap_i2c|omap-intc|onenand|pc-dimm|pc-testdev|
+ piix3-ide|piix3-ide|piix3-ide-xen|piix3-usb-uhci|pl011|pl011_luminary|
+ pl022|pl031|pl041|pl050_keyboard|pl050_mouse|pl061|pl061_luminary|
+ pl080|pl081|pl110|pl110_versatile|pl111|pl181|pl190|pl330|
+ platform-bus-device|pvrdma|pxa250-arm-cpu|pxa255-arm-cpu|pxa25x-timer|
+ pxa260-arm-cpu|pxa261-arm-cpu|pxa262-arm-cpu|pxa270-a0-arm-cpu|
+ pxa270-a1-arm-cpu|pxa270-arm-cpu|pxa270-b0-arm-cpu|pxa270-b1-arm-cpu|
+ pxa270-c0-arm-cpu|pxa270-c5-arm-cpu|pxa27x-timer|pxa2xx-dma|
+ pxa2xx-fir|pxa2xx-gpio|pxa2xx_i2c|pxa2xx-i2c-slave|pxa2xx-mmci|
+ pxa2xx-pcmcia|pxa2xx_pic|pxa2xx_rtc|pxa2xx-ssp|ramfb|realview_gic|
+ realview_mpcore|realview_pci|realview_sysctl|s25fl016k|s25fl064k|
+ s25fl129p0|s25fl129p1|s25fl256s0|s25fl256s1|s25fl512s|s25sl004a|
+ s25sl008a|s25sl016a|s25sl032a|s25sl032p|s25sl064a|s25sl064p|
+ s25sl12800|s25sl12801|s70fl01gs|sa1100-arm-cpu|sa1110-arm-cpu|sb16|
+ scoop|sdhci-pci|sga|sii9022|sl-nand|smbus-eeprom|smc91c111|sp804|
+ spitz-keyboard|spitz-lcdtg|ssd0303|ssd0323|sst25vf016b|sst25vf032b|
+ sst25vf040b|sst25vf080b|sst25wf010|sst25wf020|sst25wf040| sst25wf080|
+ sst25wf512|stellaris-adc|stellaris_enet|stellaris-gptm|stellaris-i2c|
+ stm32f205-soc|stm32f2xx-syscfg|stm32f2xx-timer|stm32f2xx-usart|
+ strongarm-gpio|strongarm_pic|strongarm-ppc|strongarm-rtc|
+ strongarm-ssp|strongarm-uart|tegra2-ehci-usb|ti925t-arm-cpu|tmp105|
+ tosa_dac|tosa-ssp|tusb6010|twl92230|tz-msc|usb-redir|versatile_i2c|
+ versatilepb_sic|versatile_pci|versatile_pci_host|vfio-pci-nohotplug|
+ vfio-platform|vhost-vsock-device|virtconsole|virtio-crypto-device|
+ vmgenid|vmware-svga|w25q256|w25q32|w25q32dw|w25q64|w25q80|w25q80bl|
+ w25x10|w25x16|w25x20|w25x32|w25x40|w25x64|w25x80|wm8750|*-x86_64-cpu|
+ xen-backend|xen-pci-passthrough|xen-platform|xen-pvdevice|xgmac|
+ xilinxzynq_slcr|xlnx-versal|xlnx.ps7-qspi|xlnx.ps7-spi|xlnxzynqmp|
+ xlnxzynq-xadc|armsse-cpuid|armsse-mhu|cpu-cluster|luminary-watchdog|
+ microbit.i2c|nrf51_soc.gpio|nrf51_soc.nvm|nrf51_soc.rng|
+ nrf51_soc.timer|platform-ehci-usb|sse-200|vmware-svga|vmxnet3|ati-vga|
+ cirrus-vga|vhost-user-fs-device|tulip|ati-vga|aw-hc-ehci-usb|
+ virtio-iommu-device|virtio-iommu-pci|
+ virtio-iommu-pci-non-transitional|cortex-m7-arm-cpu|allwinner-cpucfg|
+ allwinner-h3|allwinner-h3-ccu|allwinner-h3-dramc|allwinner-h3-sysctrl|
+ allwinner-rtc-sun4i|allwinner-rtc-sun6i|allwinner-rtc-sun7i|
+ allwinner-sdhost-sun4i|allwinner-sdhost-sun5i|allwinner-sid|
+ allwinner-sun8i-emac|imx.rngc|imx.usbphy|serial|serial-io|
+ stm32f405-soc|stm32f4xx-exti|stm32f4xx-syscfg|nvdimm|
+ vhost-user-vsock-device|vhost-user-vsock-pci|
+ vhost-user-vsock-pci-non-transitional|nvme-ns|ads7846|led|ssd0323|
+ vhost-user-vga|ctucan_pci|bcm2835-cprman-clock-mux|
+ bcm2835-cprman-cprman-dsi0hsck-mux|bcm2835-cprman-cprman-pll|
+ bcm2835-cprman-cprman-pll-channel|mt25ql512ab|mx66l5123f|n25q512ax3|
+ ssd0323|at24c-eeprom|emc1413|emc1414|is25lp016d|is25lp032|is25lp064|
+ is25lp080d|is25lp128|is25lp256|is25lq040b|is25wp032|is25wp064|
+ is25wp128|is25wp256|npcm7xx-clock-divider|npcm7xx-clock-pll|
+ npcm7xx-clock-sel]
+ (the following are aliases of these unsupported devices: lsi|
+ piix3-usb-uhci)
+ (note that some of these device names represent supported devices and
+ are used internally, but are not specifyable via -device even though
+ they appear in the list of devices)
+
+ -drive
+
+ ,if=[scsi|mtd|pflash], snapshot=on, format=[anything besides qcow2 or
+ raw]
+
+ -dtb file
+ -enable-sync-profile
+ -fda/-fdb ...
+ -g ...
+ -hda/-hdb/-hdc/-hdd ...
+ -icount ...
+ -L ...
+ -M
+
+ [akita|ast2500-evb|ast2600-evb|borzoi|canon-a1100|cheetah|collie|connex|
+ cubieboard|emcraft-sf2|g220a-bmc|highbank|imx25-pdk|integratorcp|kzm|
+ lm3s6965evb|lm3s811evb|mainstone|mcimx6ul-evk|mcimx7d-sabre|microbit|
+ midway|mps2-an385|mps2-an386|mps2-an500|mps2-an505|mps2-an511|mps2-an521|
+ mps3-an524|mps3-an547|musca-a|musca-b1|musicpal|n800|n810|netduino2|
+ netduinoplus2|npcm750-evb|nuri|orangepi-pc|palmetto-bmc|quanta-gsj|raspi0|
+ raspi1ap|raspi2|raspi2b|raspi3ap|raspi3|raspi3b|realview-eb|
+ realview-eb-mpcore|realview-pb-a8|realview-pbx-a9|romulus-bmc|sabrelite|
+ sbsa-ref|smdkc210|sonorapass-bmc|spitz|supermicrox11-bmc|swift-bmc|sx1|
+ sx1-v1|tacoma-bmc|terrier|tosa|verdex|versatileab|versatilepb|
+ vexpress-a15|vexpress-a9|virt-2.12|virt-2.7|virt-2.8|virt-3.0|virt-4.0|
+ virt-4.1|virt-5.0|virt-5.1|virt-6.0|virt|virt-6.1|witherspoon-bmc|
+ xilinx-zynq-a9|xlnx-versal-virt|xlnx-zcu102|z2]
+
+ -machine
+
+ [akita|ast2500-evb|ast2600-evb|borzoi|canon-a1100|cheetah|collie|
+ connex|cubieboard|emcraft-sf2|g220a-bmc|highbank|imx25-pdk|
+ integratorcp|kzm|lm3s6965evb|lm3s811evb|mainstone|mcimx6ul-evk|
+ mcimx7d-sabre|microbit|midway|mps2-an385|mps2-an386|mps2-an500|
+ mps2-an505|mps2-an511|mps2-an521|mps3-an524|mps3-an547|musca-a|
+ musca-b1|musicpal|n800|n810|netduino2|netduinoplus2|npcm750-evb|
+ nuri|orangepi-pc|palmetto-bmc|quanta-gsj|raspi0|raspi1ap|raspi2|
+ raspi2b|raspi3ap|raspi3|raspi3b|realview-eb|realview-eb-mpcore|
+ realview-pb-a8|realview-pbx-a9|romulus-bmc|sabrelite|sbsa-ref|
+ smdkc210|sonorapass-bmc|spitz|supermicrox11-bmc|swift-bmc|sx1|
+ sx1-v1|tacoma-bmc|terrier|tosa|verdex|versatileab|versatilepb|
+ vexpress-a15|vexpress-a9|virt-2.12|virt-2.7|virt-2.8|virt-3.0|
+ virt-4.0|virt-4.1|virt-5.0|virt-5.1|virt-6.0|virt|virt-6.1|
+ witherspoon-bmc|xilinx-zynq-a9|xlnx-versal-virt|xlnx-zcu102|z2]
+
+ -mtdblock file
+ -net [socket|vde] ...
+ -netdev [hubport|l2tpv3|socket|vde] ...
+ -no-fd-bootchk
+ -no-hpet
+ -no-kvm
+ -no-kvm-irqchip
+ -no-kvm-pit
+ -no-kvm-pit-reinjection
+ -numa cpu ...
+ -numa dist ...
+ -numa node ...
+ -option-rom ...
+ -overcommit ...
+ -pflash file
+ -portrait
+ -preconfig
+ -prom-env ...
+ -qtest ...
+ -qtest-log ...
+ -rotate
+ -sd file
+ -sdl
+ -set ...
+ -singlestep
+ -snapshot
+ -soundhw ...
+ -tpmdev emulator ...
+ -vga [cg3|tcx|virtio|cirrus|xenfb]
+ -win2k-hack
+ -xen-attach ...
+ -xen-domid ...
+ -xen-domid-restrict ...
+
+- The following monitor commands are unsupported:
+ block_job_cancel ...
+ block_job_complete ...
+ block_job_pause ...
+ block_job_resume ...
+ block_job_set_speed ...
+ commit ...
+ drive_mirror ...
+ exit_preconfig
+ expire_password ...
+ hostfwd_add ...
+ hostfwd_remove ...
+ nbd_server_add ...
+ nbd server_start ...
+ nbd_server_stop ...
+ netdev_add
+ netdev_del ...
+ pcie_aer_inject_error ...
+ replay_break ...
+ replay_delete_break
+ replay_seek ...
+ set_link ...
+ set_password ...
+ singlestep ...
+ snapshot_blkdev ...
+ stopcapture ...
+ sync-profile ...
+ wavcapture ...
+ x_colo_lost_heartbeat
+
+- The following QMP commands are unsupported:
+ block-job-cancel
+ block-job-complete
+ block-job-pause
+ block-job-resume
+ block-job-set-speed
+ change-backing-file
+ drive-backup
+ drive-mirror
+ netdev_add
+ netdev_del
+ nbd-server-add
+ nbd-server-start
+ nbd-server-stop
+ query-colo-status
+ replay_break
+ replay_delete_break
+ replay_seek
+ x-blockdev-amend
+ x-blockdev-change
+ x-blockdev-insert-medium
+ x-blockdev-remove-medium
+ x-blockdev-reopen
+ x-colo-lost-heartbeat
+ x-debug-block-dirty-bitmap-sha256
+ x-debug-query-block-graph
+ x-exit-preconfig
+ xen-colo-do-checkpoint
+ xen-load-devices-state
+ xen-save-devices-state
+ xen-set-global-dirty-log
+ xen-set-replication
--- /dev/null
+[qemu-ppc package document]
+
+SLES 15 SP4 QEMU/KVM RELATED SUPPORT STATEMENTS
+===============================================
+
+QEMU/KVM on ppc is not supported.
--- /dev/null
+[qemu-s390 package document]
+
+SLES 15 SP4 QEMU/KVM RELATED SUPPORT STATEMENTS
+===============================================
+
+Overview
+--------
+
+ The QEMU based packages included with SLES 15 SP4 provide a large variety of
+ features, from the very latest customer requests to features of questionable
+ quality or value. The linux kernel includes components which contribute KVM
+ virtualization features as well. This document was created to assist the user
+ in deciding which features can be relied upon to build enterprise class
+ virtualization solutions. KVM based virtualization for x86 (Intel 64/AMD64),
+ for IBM System z (s390x), and for the ARM64 architecture (AArch64) are offered
+ at the L3 (full support) level. The bulk of this document deals with L3
+ supported features and is primarily s390x centric. This document should be
+ considered a companion to the standard virtualization documentation delivered
+ with the product.
+
+ KVM is implemented in linux kernel modules which enable the linux kernel to
+ function as an integral part of the KVM hypervisor. The hypervisor-guest
+ interaction is managed by QEMU through the /dev/kvm ioctl interface. The linux
+ host assists in the virtualization of storage, networking and display
+ resources as well as allowing direct hardware passthrough of PCI devices.
+ Linux memory and cpu management features are used by QEMU/KVM to enable guests
+ to share those host resources as efficiently as possible.
+
+ QEMU is a primary component of KVM based virtualization. The legacy qemu-kvm
+ program is available for continuity with pre SLES 12 usage, including in
+ libvirt domain xml references. The QEMU emulator binary qemu-system-s390x is
+ now the primary program to use to access KVM virtualization. When using this
+ program, the -machine option accel=kvm (or its alias -enable-kvm) or --accel
+ kvm option must be specified for KVM acceleration to be used by the guest.
+
+ Libvirt is the preferred means of accessing QEMU/KVM functionality and is
+ documented elsewhere. This document focuses on the features and direct usage
+ of QEMU/KVM as provided by the QEMU based packages.
+
+Major QEMU/KVM Supported Features
+---------------------------------
+
+- KVM virtualization is accomplished by using the QEMU program in KVM
+ acceleration mode. KVM acceleration requires that both guest and host have
+ the same fundamental architecture.
+
+- Guest images created under previous QEMU versions are supported by machine
+ version compatibilities built into more recent QEMU versions.
+
+- For ease of use, the QEMU program has defaults which represent traditional
+ usage patterns.
+
+- Guest virtual machine characteristics are specified by a combination of
+ internal defaults, options provided on the QEMU program command-line, runtime
+ configurations set via the monitor interfaces and optional config files. The
+ runtime control of a VM is effected either through the Human Monitor
+ "Protocol" (HMP), or the JSON based programmatical QEMU Monitor Protocol (QMP)
+ interface. For QMP details, see qemu-qmp-ref man page.
+ Since a KVM guest runs in the context of a normal linux process, some types
+ of execution controls are managed with linux tools.
+
+- QEMU incorporates virtualized, s390 specific, ccw bus based firmware for
+ booting s390 guests. This firmware is automatically incorporated and
+ doesn't need to be explicitly referenced.
+
+- Some QEMU messages have been localized to various languages. This is provided
+ by the optional qemu-lang package. Keyboard mappings for various nationalities
+ is also provided.
+
+- Virtual machine lifecycle controls include startup through the ccw firmware or
+ kernel boot, firmware based shutdown, execution pausing, the saving and
+ restoring of machine state or disk state, VM migration to another host, and
+ miscellaneous controls available through the "monitors" mentioned above.
+
+- Guest execution state may be "moved" in both time (save/restore) and space
+ (static and live migration). These migrations or save/restore operations can
+ take place either from certain prior SLES versioned hosts to a SLES 15 SP4
+ host or between hosts of the same version. Certain other restrictions also
+ apply.
+
+- Security considerations include privileged helpers and a security model which
+ allows running guests as a non-root user.
+
+- QEMU provides best effort reuse of existing disk images, including those with
+ systems installed, through geometry probing. Also disk images produced by
+ other popular virtualization technologies may be imported into QEMU supported
+ storage formats. These QEMU formats include features which exploit the
+ benefits of virtualization.
+
+- Memory, cpu and disk space overcommit are possible and can be beneficial when
+ done responsibly. Additional management of these resources comes in the form
+ of memory ballooning or hotplug, host KSM, vcpu hot-add, online disk resizing,
+ trim, discard and hole punching.
+
+- Guest performance is enhanced through the use of virtio devices, various disk
+ caching modes, network acceleration via the vhost-net kernel module, multi-
+ queue network transmit capabilities, host transparent huge pages (THP) and
+ direct hugetlb usage. Physical PCI devices may also be passed through to the
+ guest, including SR-IOV VF's.
+
+- The guest UI is accessable via GTK, VNC, and serial (including curses TUI)
+ interfaces.
+
+- Guest timekeeping is supported in a variety of ways, including a paravirtual
+ clocksource, and options for the various guest clocks for how to handle the
+ timeslicing of the guest's execution on the host.
+
+- In addition to the para-virtualized devices already mentioned, other devices
+ and infrastructure designed to avoid virtualization "problem areas" are
+ available such as SPICE graphics, vmmouse emulation, tablet style pointer
+ interfaces and virtio based UI interfaces.
+
+- A built-in user-mode network (SLIRP) stack is available.
+
+- Portions of the host file system may be shared with a guest by using virtFS.
+
+- A guest "agent" is available for SLES 15 SP4 KVM guests via the
+ qemu-guest-agent package. This allows some introspection and control of the
+ guest OS environment from the host.
+
+QEMU/KVM Technology Previews
+----------------------------
+
+- All features indicated as not being supported in this document fall under the
+ Technology Preview definition contained in the main product's release notes.
+
+Noteworthy QEMU/KVM Unsupported Features
+----------------------------------------
+
+- Note that some features are unsupported simply due to lack of validation. If
+ an existing feature is desired, but not marked supported, let SUSE know about
+ your requirements.
+
+- The TCG "acceleration" mode may be helpful for problem isolation, but
+ otherwise presents insufficient benefit and stability.
+
+- GlusterFS integration is not enabled.
+
+Deprecated, Superseded, Modified and Dropped Features
+-----------------------------------------------------
+
+- https://qemu-project.gitlab.io/qemu/about/deprecated.html and
+ https://qemu-project.gitlab.io/qemu/about/removed-features.html
+ These websites track features deprecation and removal at the upstream
+ development level. Our qemu package inherits this community direction, but be
+ aware that we can and will deviate as needed. Those deviations and additional
+ information can be found in this section. Feature deprecation as well as
+ removed features are also tracked in the "System Emulation" section of the
+ documentation installed with the qemu package.
+
+- qemu-img: Deprecate use of -b without -F. Creating an image that requires
+ format probing of the backing image is potentially unsafe and is now
+ deprecated.
+
+- The previously non-persistent backing file with pmem=on is deprecated. Modify
+ VM configuration to set pmem=off to continue using fake NVDIMM with backing
+ file or move backing file to NVDIMM storage and keep pmem=on.
+
+- The use of "?" as a parameter to "-cpu", "-soundhw", "-device", "-M",
+ "-machine" and "-d" is now considered deprecated. Use "help"
+ instead.
+
+- The use of "if=scsi" as a parameter to "-drive" does not work anymore with PC
+ machine types, as it created an obsolete SCSI controller model.
+
+- Use of aio=native without direct cache mode also being specified (cache=none,
+ cache=directsync, or cache.direct=on) is no longer allowed.
+
+- The use of image encryption in qcow and qcow2 formats is now considered
+ deprecated.
+ Analysis has shown it to be weak encryption, in addition to suffering from
+ poor design. Images can easily be converted to a non-encrypted format.
+
+- Use of acpi, boot-opts, and smp-opts in a -readconfig config file are now
+ considered deprecated. In the future those names will be standardized to
+ acpitable, boot, and smp respectively.
+
+- These previously supported command line options are now considered deprecated:
+ -display sdl,window_close= (use -display sdl,window-close)
+ -no-quit (use -display ...,window-close=off)
+ -chardev tty (use serial name instead)
+ -chardev paraport (use parallel name instead)
+ -device virtio-blk,scsi= (use virtio-scsi instead)
+ -device virtio-blk-pci,scsi= (use virtio-scsi instead)
+ -enable-fips (not really helpful - see https://git.qemu.org/?p=qemu.git;a=commit;h=166310299a1e7824bbff17e1f016659d18b4a559 for details)
+ -realtime mlock= (use -overcommit mem-lock= instead)
+ -spice password=string (use password-string option instead)
+ -writeconfig (no replacement - never really worked right)
+ -share and noshare must be replaced by share=on/share=off
+ -nodelay must be replaced by nodelay=on rather than delay=off
+ -object-add options opened=on and loaded=on (both had no effect)
+
+- These previously supported command line options are no longer supported:
+ <previously mentioned items have been moved to another category>
+
+- These previously supported command line options are no longer recognized:
+ -balloon (use -device virtio-balloon instead)
+ -clock
+ -device ivshmem (use ivshmem-doorbell or ivshmem-plain instead)
+ -device pc-sysfw (no longer needed)
+ -device pci-assign, -device kvm-pci-assign (use -device vfio-pci instead)
+ -display sdl
+ -no-frame
+ -nodefconfig (use -no-user-config instead)
+ -realtime ...
+ -sdl
+ -show-cursor
+ -virtioconsole (use -device virtconsole instead)
+
+- Specifying a cpu feature with both "+feature/-feature" and "feature=on/off"
+ will now cause a warning. The current behavior for this combination where
+ "+feature/-feature" wins over "feature=on/off", will be changed going forward
+ so that "+feature" and "-feature" will be synonyms for "feature=on" and
+ "feature=off" respectively.
+
+- The previously supported blkdev-add QMP command has been flagged as lacking
+ and could possibly change syntax in the future.
+
+- These previously unsupported command line options are now deprecated:
+ -bt
+ -soundhw (use -device ... instead)
+
+- These previously unsupported command line options are no longer recognized:
+ -device ide-drive (use ide-hd or ide-cd)
+ -device mmio_interface
+ -device ramfb
+ -device scsi-disk (use scsi-hd or scsi-cd)
+ -device vhost-user-vsock-pci-transitional
+ -device vhost-vsock-pci-transitional
+ -device virtio-iommu-pci-transitional
+ -enable-hax
+ -tb-size
+ -tdf
+ -xen-create
+
+- These previously supported QMP commands are now deprecated:
+ <previously mentioned items have been moved to another category>
+
+- These previously supported QMP commands are no longer recognized:
+ info cpustats
+ block_passwd
+ change (use blockdev-change-medium or change-vnc-password instead)
+ cpu-add (use device_add instead)
+ migrate-set-cache-size (use migrate-set-parameters instead)
+ migrate_set_downtime (use migrate-set-parameters instead)
+ migrate_set_speed (use migrate-set-parameters instead)
+ query-cpus (use query-cpus-fast instead)
+ query-events
+ query-migrate-cache-size (use query-migrate-parameters instead)
+
+- These previously supported monitor commands are now deprecated:
+ change
+
+- These previously supported monitor commands are no longer recognized:
+ info cpustats
+ block_passwd ...
+ cpu-add (use device_add instead)
+ migrate_set_cache_size
+ migrate_set_downtime
+ migrate_set_speed
+ pci_add (use device_add instead)
+ pci_del (use device_del instead)
+
+- These previously unsupported monitor command are now deprecated:
+ <previously mentioned items have been moved to another category>
+
+- These previously unsupported monitor commands are no longer recognized:
+ acl_add ...
+ acl_policy ...
+ acl_remove ...
+ acl_reset ...
+ acl_show ...
+ host_net_add
+ host_net_remove
+ usb_add
+ usb_del
+
+- These previously unsupported QMP commands are now supported under a new name:
+ x-block-dirty-bitmap-disable (use block-dirty-bitmap-disable instead)
+ x-block-dirty-bitmap-enable (use block-dirty-bitmap-enable instead)
+ x-block-dirty-bitmap-merge (use block-dirty-bitmap-merge instead)
+ x-block-latency-histogram-set (use block-latency-histogram-set instead)
+ x-blockdev-create (use blockdev-create instead)
+
+- This previously unsupported QMP commands is no longer recognized:
+ x-nbd-server-add-bitmap
+
+- Due to upstream's decision to no longer fully support the qed storage format
+ going forward (since it really provides no benefit over qcow2 and is now no
+ longer actively maintained upstream), creating qed storage images is no longer
+ supported and it is highly discouraged to continue using existing qed images.
+ They should instead be converted to another supported format.
+
+QEMU Command-Line and Monitor Syntax and Support
+------------------------------------------------
+
+- The QEMU program command-line syntax is as follows:
+ qemu-system-s390x [options]
+
+ Where 'options' are taken from the options listed below.
+ The images used with -drive or -cdrom, may be in the raw (no format) or qcow2
+ storage formats, and may be located in files within the host filesystem,
+ logical volumes, host physical disks, or network based storage. Read only
+ media may also be accessed via URL style protocol specifiers.
+
+ Note that as a general rule, as new command line options are added which serve
+ to replace an older option or interface, you are strongly encouraged to adapt
+ your usage to the new option. The new option is being introduced to provide
+ better functionality and usability going forward. In some cases existing
+ problems or even bugs in older interfaces cannot be fixed due to functional
+ expectations, but are resolved in the newer interface or option.
+ This advice includes moving to the most recent machine type (eg
+ s390-ccw-virtio-6.1 instead of s390-ccw-virtio-6.0) if possible.
+
+- The following command line options are supported:
+ -accel ...
+ -action ...
+ -add-fd ...
+ -alt-grab
+ -append ...
+ -audio-help
+ -audiodev
+ -bios ...
+ -blockdev ...
+ -boot ...
+ -cdrom ...
+ -chardev ...
+ -compat ...
+ -cpu host
+ -ctrl-grab
+ -d ...
+ -daemonize
+ -debugcon ...
+ -device
+
+ [virtio-net-pci|virtio-blk-pci|virtio-balloon-pci|virtserialport|
+ virtconsole|virtio-serial-pci|virtio-scsi-pci|scsi-cd|scsi-hd|
+ scsi-generic|scsi-block|virtio-rng-pci|pci-bridge|megasas-gen2|e1000e|
+ e1000|zpci|virtio-gpu-ccw|virtio-keyboard-ccw|vhost-user-blk-pci|
+ vhost-user-scsi|vhost-user-scsi-pci|vhost-vsock-ccw|
+ virtio-balloon-ccw|virtio-blk-ccw|vhost-scsi-ccw|vhost-user-blk|
+ virtio-crypto-ccw|virtio-net-ccw|virtio-rng-ccw|virtio-scsi-ccw|
+ virtio-serial-ccw|virtio-mouse-ccw|virtio-tablet-ccw|vfio-pci|
+ virtio-vga|vhost-scsi-pci-non-transitional|
+ vhost-scsi-pci-transitional|vhost-user-blk-pci-non-transitional|
+ vhost-user-blk-pci-transitional|vhost-user-scsi-pci-non-transitional|
+ vhost-user-scsi-pci-transitional|vhost-vsock-pci-non-transitional|
+ virtio-9p-ccw|virtio-9p-pci-non-transitional|
+ virtio-9p-pci-transitional|virtio-balloon-pci-non-transitional|
+ virtio-balloon-pci-transitional|virtio-blk-pci-non-transitional|
+ virtio-blk-pci-transitional|virtio-input-host-pci-non-transitional|
+ virtio-input-host-pci-transitional|virtio-net-pci-non-transitional|
+ virtio-net-pci-transitional|virtio-rng-pci-non-transitional|
+ virtio-rng-pci-transitional|virtio-scsi-pci-non-transitional|
+ virtio-scsi-pci-transitional|virtio-serial-pci-non-transitional|
+ virtio-serial-pci-transitional|vhost-user-fs-pci|vhost-user-gpu|
+ vhost-user-pci-pci|vhost-user-input|vhost-user-input-pci|
+ vhost-user-vga]
+ (the following are aliases of these supported devices: virtio-blk|
+ virtio-input-host|virtio-keyboard|virtio-mouse|virtio-tablet|
+ virtio-gpu|virtio-9p|virtio-net|virtio-serial|virtio-balloon|
+ virtio-scsi|virtio-rng)
+
+ -dfilter range, ...
+ -display ...
+ -drive
+
+ ... (if specified if=[virtio] and format=[qcow2|raw] and
+ snapshot=off only)
+
+ -echr ...
+ -enable-fips
+ -enable-kvm
+ -fsdev ...
+ -full-screen
+ -fw_cfg ...
+ -gdb ...
+ -global ...
+ -h
+ -help
+ -incoming ...
+ -initrd ...
+ -iscsi ...
+ -k ...
+ -kernel ...
+ -loadvm ...
+ -m ...
+ -M
+
+ [help|?|none|s390-ccw-virtio-2.6|s390-ccw-virtio-2.9|s390-ccw-virtio-2.11|
+ s390-ccw-virtio-3.1|s390-ccw-virtio-4.2|s390-ccw-virtio-5.2]
+
+ -machine
+
+ [help|?|none|s390-ccw-virtio-2.6|s390-ccw-virtio-2.9|
+ s390-ccw-virtio-2.11|s390-ccw-virtio-3.1|s390-ccw-virtio-4.2|
+ s390-ccw-virtio-5.2]
+
+ -mem-path ...
+ -mem-prealloc
+ -mon ...
+ -monitor ...
+ -msg ...
+ -name ...
+ -net
+
+ [bridge|l2tpv3|nic|none|tap|user] ... (for model= only e1000, rtl8139,
+ and virtio are supported)
+
+ -netdev [bridge|tap|user] ...
+ -nic ...
+ -nodefaults
+ -nographic
+ -no-quit
+ -no-reboot
+ -no-shutdown
+ -no-user-config
+ -object ...
+ -only-migratable
+ -parallel ...
+ -pidfile ...
+ -plugin ...
+ -qmp ...
+ -qmp-pretty ...
+ -readconfig ...
+ -rtc ...
+ -runas ...
+ -s
+ -S
+ -sandbox ...
+ -seed ...
+ -serial ...
+ -smp ...
+ -trace ...
+ -uuid ...
+ -version
+ -vga [none|qxl|std]
+ -virtfs ...
+ -vnc ...
+ -watchdog ...
+ -watchdog-action ...
+ -writeconfig ...
+
+- The following monitor commands are supported:
+ ?
+ announce_self ...
+ balloon ...
+ block_resize ...
+ boot_set ...
+ c
+ change ...
+ chardev-add ...
+ chardev-change ...
+ chardev-remove ...
+ chardev-send-break ...
+ client_migrate_info ...
+ closefd ...
+ cont
+ cpu ...
+ delvm ...
+ device_add ...
+ device_del ...
+ drive_add ...
+ drive_backup ...
+ drive_del ...
+ dump_guest_memory ...
+ eject ...
+ gdbserver ...
+ gpa2hpa ...
+ gpa2hva ...
+ gva2gpa ...
+ help
+ i ...
+ info ...
+ loadvm ...
+ logfile ...
+ logitem ...
+ mce ...
+ memsave ...
+ migrate ...
+ migrate_cancel
+ migrate_continue ...
+ migrate_incoming
+ migrate_pause
+ migrate_recover ...
+ migrate_set_capability ...
+ migrate_set_parameter ...
+ migrate_start_post_copy
+ mouse_button ...
+ mouse_move ...
+ mouse_set ...
+ nmi ...
+ o ...
+ object_add ...
+ object_del ...
+ p ...
+ pmemsave ...
+ print ...
+ q
+ qemu-io ...
+ qom-list
+ qom-set
+ ringbuf_read ...
+ ringbuf_write ...
+ savevm ...
+ screendump ...
+ sendkey ...
+ snapshot_blkdev_internal ...
+ snapshot_delete_blkdev_internal ...
+ stop
+ sum ...
+ system_powerdown
+ system_reset
+ system_wakeup
+ trace-event ...
+ watchdog_action ...
+ x ...
+ xp ...
+
+- The following QMP commands are supported:
+ add_client
+ add-fd
+ announce-self
+ balloon
+ blockdev-add
+ blockdev-backup
+ blockdev-change-medium
+ blockdev-close-tray
+ blockdev-create
+ blockdev-del
+ blockdev-mirror
+ blockdev-open-tray
+ blockdev-snapshot
+ blockdev-snapshot-delete-internal-sync
+ blockdev-snapshot-internal-sync
+ blockdev-snapshot-sync
+ block-commit
+ block-dirty-bitmap-add
+ block-dirty-bitmap-clear
+ block-dirty-bitmap-disable
+ block-dirty-bitmap-enable
+ block-dirty-bitmap-merge
+ block-dirty-bitmap-remove
+ block-export-add
+ block-export-del
+ block-latency-histogram-set
+ block_resize
+ block_set_io_throttle
+ block-set-write-threshold
+ block_stream
+ calc-dirty-rate
+ change-vnc-password
+ chardev-add
+ chardev-change
+ chardev-remove
+ chardev-send-break
+ client_migrate_info
+ closefd
+ cont
+ cpu
+ device_add
+ device_del
+ device-list-properties
+ display-reload
+ dump-guest-memory
+ eject
+ expire_password
+ getfd
+ human-monitor-command
+ inject-nmi
+ input-send-event
+ job-cancel
+ job-complete
+ job-dismiss
+ job-finalize
+ job-pause
+ job-resume
+ memsave
+ migrate
+ migrate_cancel
+ migrate-continue
+ migrate-incoming
+ migrate-pause
+ migrate-resume
+ migrate-set-capabilities
+ migrate-set-parameters
+ migrate-start-postcopy
+ object-add
+ object-del
+ pmemsave
+ qmp_capabilities
+ qom-get
+ qom-list
+ qom-list-types
+ qom-set
+ query-acpi-ospm-status
+ query-balloon
+ query-block
+ query-block-exports
+ query-block-jobs
+ query-blockstats
+ query-chardev
+ query-chardev-backends
+ query-command-line-options
+ query-commands
+ query-cpu-definitions
+ query-cpu-model-baseline
+ query-cpu-model-comparison
+ query-cpu-model-expansion
+ query-cpus-fast
+ query-current-machine
+ query-dirty-rate
+ query-display-options
+ query-dump
+ query-dump-guest-memory-capability
+ query-fdsets
+ query-gic-capabilities
+ query-hotpluggable-cpus
+ query-iothreads
+ query-jobs
+ query-kvm
+ query-machines
+ query-memdev
+ query-memory-devices
+ query-memory-size-summary
+ query-mice
+ query-migrate
+ query-migrate-capabilities
+ query-migrate-parameters
+ query-name
+ query-named-block-nodes
+ query-pci
+ query-pr-managers
+ query-qmp-schema
+ query-rocker
+ query-rocker-of-dpa-flows
+ query-rocker-of-dpa-groups
+ query-rocker-ports
+ query-rx-filter
+ query-spice
+ query-status
+ query-target
+ query-uuid
+ query-version
+ query-vnc
+ query-vnc-servers
+ query-yank
+ query-xen-replication-status
+ quit
+ remove-fd
+ ringbuf-read
+ ringbuf-write
+ screendump
+ send-key
+ set-action
+ set_link
+ set_password
+ snapshot-delete
+ snapshot-load
+ snapshot-save
+ stop
+ system_powerdown
+ system_reset
+ system_wakeup
+ trace-event-get-state
+ trace-event-set-state
+ transaction
+ watchdog-set-action
+ yank
+
+- The following command line options are unsupported:
+
+ -acpitable ...
+ -chroot ...
+ -cpu ... (all except host)
+ -curses
+ -device
+
+ [AC97|adlib|am53c974|amd-iommu|AMDVI-PCI|ccid-card-emulated|
+ ccid-card-passthrough|cirrus-vga|cs4231a|dc390|diag288|e1000-82544gc|
+ e1000-82545em|edu|ES1370|floppy|generic-sdhci|gus|hda-duplex|
+ hda-micro|hda-output|hyperv-testdev|*-i386-cpu|i8042|i82550|i82551|
+ i82557a|i82557b|i82557c|i82558a|i82558b|i82559a|i82559b|i82559c|
+ i82562|i82801|i82801b11-bridge|ib700|ich9-intel-hda|ich9-usb-ehci1|
+ ich9-usb-ehci2|ich9-usb-uhci1|ich9-usb-uhci2|ich9-usb-uhci3|
+ ich9-usb-uhci4|ich9-usb-uhci5|ich9-usb-uhci6|ide-cd|ide-drive|ide-hd|
+ igd-passthrough-isa-bridge|intel-hda|intel_iommu|ioh3420|
+ ipmi-bmc-extern|ipmi-bmc-sim|ipoctal232|isa-applesmc|isa-cirrus-vga|
+ isa-debugcon|isa-debug-exit|isa-fdc|isa-ide|isa-ipmi-bt|isa-ipmi-kcs|
+ isa-parallel|isa-serial|isa-vga|lsi53c810|lsi53c810a|max-s390x-cpu|
+ megasas|mptsas1068|ne2k_isa|ne2k_pci|nec-usb-xhci|nvdimm|nvme|pc-dimm|
+ pci-testdev|pcnet|pc-testdev|piix3-ide|piix3-ide|piix3-ide-xen|
+ piix4-usb-uhci|pvscsi|pxb|pxb-host|pxb-pcie|qemu-s390-cpu|rocker|
+ s390-flic|s390-flic-qemu|s390-ipl|s390-pcihost|
+ s390-sclp-event-facility|s390-skeys-qemu|sb16|sclp|sclpconsole|
+ sclp-cpu-hotplug|sclplmconsole|sclp-memory-hotplug-dev|sclpquiesce|
+ sd-card|sdhci-pci|secondary-vga|sga|smbus-eeprom|tpci200|usb-audio|
+ usb-bot|usb-ccid|usb-mtp|usb-uas|vfio-ap|vfio-pci-nohotplug|
+ virtio-9p-device|virtual-css-bridge|vmcoreinfo|vmgenid|vmware-svga|
+ vmxnet3|vt82c686b-usb-uhci|x3130-upstream|*-x86_64-cpu|xen-backend|
+ xen-pci-passthrough|xen-platform|xen-pvdevice|xio3130-downstream|
+ z10BC.2-base-s390x-cpu|z10BC.2-s390x-cpu|z10BC-base-s390x-cpu|
+ z10BC-s390x-cpu|z10EC.2-base-s390x-cpu|z10EC.2-s390x-cpu|
+ z10EC.3-base-s390x-cpu|z10EC.3-s390x-cpu|z10EC-base-s390x-cpu|
+ z10EC-s390x-cpu|z114-base-s390x-cpu|z114-s390x-cpu|
+ z13.2-base-s390x-cpu|z13.2-s390x-cpu|z13-base-s390x-cpu|z13-s390x-cpu|
+ z13s-base-s390x-cpu|z13s-s390x-cpu|z196.2-base-s390x-cpu|
+ z196.2-s390x-cpu|z196-base-s390x-cpu|z196-s390x-cpu|
+ z800-base-s390x-cpu|z800-s390x-cpu|z890.2-base-s390x-cpu|
+ z890.2-s390x-cpu|z890.3-base-s390x-cpu|z890.3-s390x-cpu|
+ z890-base-s390x-cpu|z890-s390x-cpu|z900.2-base-s390x-cpu|
+ z900.2-s390x-cpu|z900.3-base-s390x-cpu|z900.3-s390x-cpu|
+ z900-base-s390x-cpu|z900-s390x-cpu|z990.2-base-s390x-cpu|
+ z990.2-s390x-cpu|z990.3-base-s390x-cpu|z990.3-s390x-cpu|
+ z990.4-base-s390x-cpu|z990.4-s390x-cpu|z990.5-base-s390x-cpu|
+ z990.5-s390x-cpu|z990-base-s390x-cpu|z990-s390x-cpu|
+ z9BC.2-base-s390x-cpu|z9BC.2-s390x-cpu|z9BC-base-s390x-cpu|
+ z9BC-s390x-cpu|z9EC.2-base-s390x-cpu|z9EC.2-s390x-cpu|
+ z9EC.3-base-s390x-cpu|z9EC.3-s390x-cpu|z9EC-base-s390x-cpu|
+ z9EC-s390x-cpu|z14ZR1-base-s390x-cpu|z14ZR1-s390x-cpu|
+ zBC12-base-s390x-cpu|zBC12-s390x-cpu|zEC12.2-base-s390x-cpu|
+ zEC12.2-s390x-cpu|zEC12-base-s390x-cpu|zEC12-s390x-cpu|cpu-cluster|
+ z14.2-base-s390x-cpu|z14.2-s390x-cpu|vhost-user-fs-device|
+ virtio-iommu-device|virtio-iommu-pci|
+ virtio-iommu-pci-non-transitional|vhost-user-vsock-device|
+ vhost-user-vsock-pci|vhost-user-vsock-pci-non-transitional|
+ vhost-user-fs-ccw|guest-loader]
+ (the following are aliases of these unsupported devices: lsi|
+ ahci|e1000-82540em|vfio-ccw)
+ (note that some of these device names represent supported devices and
+ are used internally, but are not specifyable via -device even though
+ they appear in the list of devices)
+
+ -drive
+
+ ,if=[scsi|mtd|pflash], snapshot=on, format=[anything besides qcow2 or
+ raw]
+
+ -dtb file
+ -enable-sync-profile
+ -fda/-fdb ...
+ -g ...
+ -hda/-hdb/-hdc/-hdd ...
+ -icount ...
+ -L ...
+ -M
+
+ [s390-ccw-virtio|s390-ccw-virtio-2.4|s390-ccw-virtio-2.5|
+ s390-ccw-virtio-2.7|s390-ccw-virtio-2.8|s390-ccw-virtio-2.10|
+ s390-ccw-virtio-2.12|s390-ccw-virtio-3.0|s390-ccw-virtio-4.0|
+ s390-ccw-virtio-4.1|s390-ccw-virtio-5.0|s390-ccw-virtio-5.1|
+ s390-ccw-virtio-6.0|s390-ccw-virtio-6.1]
+
+ -machine
+
+ [s390-ccw-virtio|s390-ccw-virtio-2.4|s390-ccw-virtio-2.5|
+ s390-ccw-virtio-2.7|s390-ccw-virtio-2.8|s390-ccw-virtio-2.10|
+ s390-ccw-virtio-2.12|s390-ccw-virtio-3.0|s390-ccw-virtio-4.0|
+ s390-ccw-virtio-4.1|s390-ccw-virtio-5.0|s390-ccw-virtio-5.1|
+ s390-ccw-virtio-6.0|s390-ccw-virtio-6.1]
+
+ -mtdblock file
+ -net [socket|vde] ...
+ -netdev [hubport|l2tpv3|socket|vde] ...
+ -no-acpi
+ -no-fd-bootchk
+ -no-hpet
+ -no-kvm
+ -no-kvm-irqchip
+ -no-kvm-pit
+ -no-kvm-pit-reinjection
+ -numa cpu ...
+ -numa dist ...
+ -numa node ...
+ -option-rom ...
+ -overcommit ...
+ -pflash file
+ -portrait
+ -preconfig
+ -prom-env ...
+ -qtest ...
+ -qtest-log ...
+ -rotate
+ -sd file
+ -sdl
+ -set ...
+ -singlestep
+ -smbios ...
+ -snapshot
+ -soundhw ...
+ -spice
+ -tdf
+ -tpmdev emulator ...
+ -tpmdev passthrough ...
+ -usb
+ -usbdevice [braile|disk|host|mouse|net|serial|tablet]
+ -vga [cg3|tcx|virtio|cirrus|xenfb|vmware]
+ -win2k-hack
+ -xen-attach ...
+ -xen-domid ...
+ -xen-domid-restrict ...
+
+- The following monitor commands are unsupported:
+ block_job_cancel ...
+ block_job_complete ...
+ block_job_pause ...
+ block_job_resume ...
+ block_job_set_speed ...
+ commit ...
+ drive_mirror ...
+ exit_preconfig
+ expire_password ...
+ hostfwd_add ...
+ hostfwd_remove ...
+ nbd_server_add ...
+ nbd server_start ...
+ nbd_server_stop ...
+ netdev_add
+ netdev_del ...
+ pcie_aer_inject_error ...
+ replay_break ...
+ replay_delete_break
+ replay_seek ...
+ set_link ...
+ set_password ...
+ singlestep ...
+ snapshot_blkdev ...
+ stopcapture ...
+ sync-profile ...
+ wavcapture ...
+ x_colo_lost_heartbeat
+
+- The following QMP commands are unsupported:
+ block-job-cancel
+ block-job-complete
+ block-job-pause
+ block-job-resume
+ block-job-set-speed
+ change-backing-file
+ drive-backup
+ drive-mirror
+ dump-skeys
+ netdev_add
+ netdev_del
+ nbd-server-add
+ nbd-server-start
+ nbd-server-stop
+ query-colo-status
+ query-tpm
+ query-tpm-models
+ query-tpm-types
+ replay_break
+ replay_delete_break
+ replay_seek
+ x-blockdev-amend
+ x-blockdev-change
+ x-blockdev-insert-medium
+ x-blockdev-remove-medium
+ x-blockdev-reopen
+ x-colo-lost-heartbeat
+ x-debug-block-dirty-bitmap-sha256
+ x-debug-query-block-graph
+ x-exit-preconfig
+ xen-colo-do-checkpoint
+ xen-load-devices-state
+ xen-save-devices-state
+ xen-set-global-dirty-log
+ xen-set-replication
--- /dev/null
+[qemu-x86 package document]
+
+SLES 15 SP4 QEMU/KVM RELATED SUPPORT STATEMENTS
+===============================================
+
+Overview
+--------
+
+ The QEMU based packages included with SLES 15 SP4 provide a large variety of
+ features, from the very latest customer requests to features of questionable
+ quality or value. The linux kernel includes components which contribute KVM
+ virtualization features as well. This document was created to assist the user
+ in deciding which features can be relied upon to build enterprise class
+ virtualization solutions. KVM based virtualization for x86 (Intel 64/AMD64),
+ for IBM System z (s390x), and for the ARM64 architecture (AArch64) are offered
+ at the L3 (full support) level. The bulk of this document deals with L3
+ supported features and is primarily x86 centric. This document should be
+ considered a companion to the standard virtualization documentation delivered
+ with the product.
+
+ KVM is implemented in linux kernel modules which enable the linux kernel to
+ function as an integral part of the KVM hypervisor. The hypervisor-guest
+ interaction is managed by QEMU through the /dev/kvm ioctl interface. The linux
+ host assists in the virtualization of storage, networking and display
+ resources as well as allowing direct hardware passthrough of PCI and USB
+ devices. Linux memory and cpu management features are used by QEMU/KVM to
+ enable guests to share those host resources as efficiently as possible.
+
+ QEMU is a primary component of KVM based virtualization. The legacy qemu-kvm
+ program is available for continuity with pre SLES 12 usage, including in
+ libvirt domain xml references. The QEMU emulator binaries qemu-system-x86_64
+ and qemu-system-i386 (x86 host) are now the primary programs to use to access
+ KVM virtualization. When using these programs, the -machine option accel=kvm
+ (or its alias -enable-kvm), or --accel kvm option must be specified for KVM
+ acceleration to be used by the guest. Although Xen uses QEMU for
+ virtualization as well, this document does not identify Xen supported
+ features.
+
+ Libvirt is the preferred means of accessing QEMU/KVM functionality and is
+ documented elsewhere. This document focuses on the features and direct usage
+ of QEMU/KVM as provided by the QEMU based packages.
+
+Major QEMU/KVM Supported Features
+---------------------------------
+
+- KVM virtualization is accomplished by using the QEMU program in KVM
+ acceleration mode. KVM acceleration requires that both guest and host have
+ the same fundamental architecture.
+
+- Guest images created under previous QEMU versions are supported by machine
+ version compatibilities built into more recent QEMU versions.
+
+- For ease of use, the QEMU program has defaults which represent traditional
+ usage patterns.
+
+- Guest virtual machine characteristics are specified by a combination of
+ internal defaults, options provided on the QEMU program command-line, runtime
+ configurations set via the monitor interfaces and optional config files. The
+ runtime control of a VM is effected either through the Human Monitor
+ "Protocol" (HMP), or the JSON based programmatical QEMU Monitor Protocol (QMP)
+ interface. For QMP details, see qemu-qmp-ref man page.
+ Since a KVM guest runs in the context of a normal linux process, some types
+ of execution controls are managed with linux tools.
+
+- Various standard vCPU types are available, along with the ability to specify
+ individual CPU features visible to the guest.
+
+- QEMU incorporates a SEABIOS based system BIOS and iPXE based PXE ROMs, which
+ allow boot options common to physical systems, along with other features
+ tailored to virtualization. Various VGABIOS ROMs, also from the SEABIOS
+ project, are also included. A UEFI based guest boot environment is also
+ available by using the firmware provided by the qemu-ovmf-x86_64 package.
+
+- Some QEMU messages have been localized to various languages. This is provided
+ by the optional qemu-lang package. Keyboard mappings for various nationalities
+ is also provided.
+
+- Virtual machine lifecycle controls include startup through the system BIOS or
+ kernel boot, ACPI or legacy based shutdown, execution pausing, the saving and
+ restoring of machine state or disk state, VM migration to another host, and
+ miscellaneous controls available through the "monitors" mentioned above.
+
+- Guest execution state may be "moved" in both time (save/restore) and space
+ (static and live migration). These migrations or save/restore operations can
+ take place either from certain prior SLES versioned hosts to a SLES 15 SP4
+ host or between hosts of the same version. Certain other restrictions also
+ apply.
+
+- Security considerations include seccomp2 based sandboxing, vTPM, privileged
+ helpers and a security model which allows running guests as a non-root user.
+
+- QEMU/KVM supports a wide range of operating systems within the VMs. See the
+ online SUSE documentation for supported OS's. Windows guests can optionally be
+ accelerated with QEMU/KVM provided Hyper-V hypercalls, or with paravirtual
+ drivers from the SUSE Virtual Machine Driver Pack. Linux includes a number of
+ paravirtual drivers as well.
+
+- QEMU provides best effort reuse of existing disk images, including those with
+ systems installed, through geometry probing. Also disk images produced by
+ other popular virtualization technologies may be imported into QEMU supported
+ storage formats. These QEMU formats include features which exploit the
+ benefits of virtualization.
+
+- Memory, cpu and disk space overcommit are possible and can be beneficial when
+ done responsibly. Additional management of these resources comes in the form
+ of memory ballooning or hotplug, host KSM, vcpu hot-add, online disk resizing,
+ trim, discard and hole punching.
+
+- Guest performance is enhanced through the use of virtio devices, various disk
+ caching modes, network acceleration via the vhost-net kernel module, multi-
+ queue network transmit capabilities, host transparent huge pages (THP) and
+ direct hugetlb usage. Physical PCI and USB devices may also be passed through
+ to the guest, including SR-IOV VF's.
+
+- The guest UI is accessable via GTK, VNC, Spice, and serial (including curses
+ TUI) interfaces.
+
+- Guest timekeeping is supported in a variety of ways, including a paravirtual
+ clocksource, and options for the various guest clocks for how to handle the
+ timeslicing of the guest's execution on the host.
+
+- Guest OS's interact with virtualized hardware including a choice of either
+ older or more recent x86 system chipsets, system devices and buses, and a
+ variety of common storage and networking emulated devices. SMBIOS and ACPI
+ table details can be customized.
+
+- In addition to the para-virtualized devices already mentioned, other devices
+ and infrastructure designed to avoid virtualization "problem areas" are
+ available such as SPICE graphics, vmmouse emulation, tablet style pointer
+ interfaces and virtio based UI interfaces.
+
+- A built-in user-mode network (SLIRP) stack is available.
+
+- Portions of the host file system may be shared with a guest by using virtFS.
+
+- A guest "agent" is available for SLES 15 SP4 KVM guests via the
+ qemu-guest-agent package. This allows some introspection and control of the
+ guest OS environment from the host.
+
+QEMU/KVM Technology Previews
+----------------------------
+
+- Nested VMX and SVM virtualization is possible.
+
+- All features indicated as not being supported in this document fall under the
+ Technology Preview definition contained in the main product's release notes.
+
+Noteworthy QEMU/KVM Unsupported Features
+----------------------------------------
+
+- Note that some features are unsupported simply due to lack of validation. If
+ an existing feature is desired, but not marked supported, let SUSE know about
+ your requirements.
+
+- The TCG "acceleration" mode may be helpful for problem isolation, but
+ otherwise presents insufficient benefit and stability.
+
+- Use of -cpu host is not supported in all host/guest configurations.
+
+- GlusterFS integration is not enabled.
+
+Deprecated, Superseded, Modified and Dropped Features
+-----------------------------------------------------
+
+- https://qemu-project.gitlab.io/qemu/about/deprecated.html and
+ https://qemu-project.gitlab.io/qemu/about/removed-features.html
+ These websites track features deprecation and removal at the upstream
+ development level. Our qemu package inherits this community direction, but be
+ aware that we can and will deviate as needed. Those deviations and additional
+ information can be found in this section. Feature deprecation as well as
+ removed features are also tracked in the "System Emulation" section of the
+ documentation installed with the qemu package.
+
+- qemu-img: Deprecate use of -b without -F. Creating an image that requires
+ format probing of the backing image is potentially unsafe and is now
+ deprecated.
+
+- When no video adapter is specified, the default used is stdvga. This differs
+ from the default of prior releases which was cirrus. The cirrus adapter was
+ considered too outdated to continue to use as the default.
+
+- The deprecated windows drivers (win-virtio-drivers.iso) are no longer provided.
+ The Virtual Machine Driver Pack is the supported way to get virtio drivers for
+ Windows guests.
+
+- The use of ",boot=on" for virtio disks is no longer needed since the bios used
+ supports the virtio block interface directly. In fact, its usage may cause
+ problems, and is now considered deprecated.
+
+- The previously non-persistent backing file with pmem=on is deprecated. Modify
+ VM configuration to set pmem=off to continue using fake NVDIMM with backing
+ file or move backing file to NVDIMM storage and keep pmem=on.
+
+- The use of "?" as a parameter to "-cpu", "-soundhw", "-device", "-M",
+ "-machine" and "-d" is now considered deprecated. Use "help"
+ instead.
+
+- The use of "if=scsi" as a parameter to "-drive" does not work anymore with PC
+ machine types, as it created an obsolete SCSI controller model.
+
+- Passthrough of a host floppy device is now considered deprecated.
+
+- Use of aio=native without direct cache mode also being specified (cache=none,
+ cache=directsync, or cache.direct=on) is no longer allowed.
+
+- The use of image encryption in qcow and qcow2 formats is now considered
+ deprecated.
+ Analysis has shown it to be weak encryption, in addition to suffering from
+ poor design. Images can easily be converted to a non-encrypted format.
+
+- Use of acpi, boot-opts, and smp-opts in a -readconfig config file are now
+ considered deprecated. In the future those names will be standardized to
+ acpitable, boot, and smp respectively.
+
+- When only a partial SMP topology is provided (ie only some of sockets, cores,
+ threads) the derived guest ABI is not guaranteed to be equivalent in future
+ versions.
+
+- These previously supported command line options are now considered deprecated:
+ -display sdl,window_close= (use -display sdl,window-close)
+ -no-quit (use -display ...,window-close=off)
+ -M option kernel-irqchip=off
+ -chardev tty (use serial name instead)
+ -chardev paraport (use parallel name instead)
+ -device virtio-blk,scsi= (use virtio-scsi instead)
+ -device virtio-blk-pci,scsi= (use virtio-scsi instead)
+ -enable-fips (not really helpful - see https://git.qemu.org/?p=qemu.git;a=commit;h=166310299a1e7824bbff17e1f016659d18b4a559 for details)
+ -realtime mlock= (use -overcommit mem-lock= instead)
+ -spice password=string (use password-string option instead)
+ -writeconfig (no replacement - never really worked right)
+ -share and noshare must be replaced by share=on/share=off
+ -nodelay must be replaced by nodelay=on rather than delay=off
+ -object-add options opened=on and loaded=on (both had no effect)
+
+- These previously supported command line options are no longer supported:
+ -device ide-drive (use ide-hd or ide-cd instead)
+ -device scsi-disk (use scsi-hd or scsi-cd instead)
+
+- The previously supported machine types pc-0.12, pc-0.14 and pc-0.15 are no
+ longer recognized. Switch to a newer machine type.
+
+- These previously supported command line options are no longer recognized:
+ -balloon (use -device virtio-balloon instead)
+ -clock
+ -device ivshmem (use ivshmem-doorbell or ivshmem-plain instead)
+ -device pc-sysfw (no longer needed)
+ -device pci-assign, -device kvm-pci-assign (use -device vfio-pci instead)
+ -display sdl
+ -no-frame
+ -nodefconfig (use -no-user-config instead)
+ -realtime ...
+ -sdl
+ -show-cursor
+ -virtioconsole (use -device virtconsole instead)
+
+- Specifying a cpu feature with both "+feature/-feature" and "feature=on/off"
+ will now cause a warning. The current behavior for this combination where
+ "+feature/-feature" wins over "feature=on/off", will be changed going forward
+ so that "+feature" and "-feature" will be synonyms for "feature=on" and
+ "feature=off" respectively.
+
+- The case of specified sockets, cores, and threads not matching the vcpu count
+ is no longer silently ignored. QEMU now requires that the topology match the
+ vcpu count.
+
+- The previously supported blkdev-add QMP command has been flagged as lacking
+ and could possibly change syntax in the future.
+
+- These previously unsupported command line options are now deprecated:
+ -no-kvm-pit
+ -soundhw (use -device ... instead)
+
+- These previously unsupported command line options are no longer recognized:
+ -bt
+ -device at24c-eeprom
+ -device ccid-card-passthru
+ -device cfi.pflash01
+ -device esp
+ -device exynos4210-ehci-usb
+ -device fusbh200-ehci-usb
+ -device icc-bridge
+ -device q35-pcihost
+ -device mch
+ -device mmio_interface
+ -device smbus-eeprom
+ -device SUNW,fdtwo
+ -device sysbus-ahci
+ -device sysbus-fdc
+ -device sysbus-ohci
+ -device tegra2-ehci-usb
+ -device testdev (use -device pc-testdev instead)
+ -device vhost-user-vsock-pci-transitional
+ -device vhost-vsock-pci-transitional
+ -device virtio-iommu-pci-transitional
+ -device virtio-mmio
+ -device xln,ps7-usb
+ -enable-hax (use -accel hax instead)
+ -enable-nesting
+ -kvm-shadow-memory (use -machine kvm_shadow_mem= instead)
+ -M mac
+ -machine mac
+ -no-kvm-irqchip (use -machine kernel_irqchip=off instead)
+ -no-kvm-pit
+ -no-kvm-pit-reinjection (use -global kvm-pit.lost_tick_policy=discard instead)
+ -nvram
+ -old-param
+ -osk
+ -pcidevice (use -device vfio-pci instead)
+ -qtest
+ -semihosting
+ -tb-size
+ -tdf (note: mistakenly listed previously as supported)
+ -xen-create
+
+- The previously unsupported machine types pc-0.10, pc-0.11, pc-0.13,
+ pc-1.0, pc-1.1, pc-1.2 and pc-1.3 are are no longer recognized.
+
+- These previously supported QMP commands are now deprecated:
+ <previously mentioned items have been moved to another category>
+
+- These previously supported QMP commands are no longer recognized:
+ info cpustats
+ block_passwd
+ change (use blockdev-change-medium or change-vnc-password instead)
+ cpu-add (use device_add instead)
+ migrate-set-cache-size (use migrate-set-parameters instead)
+ migrate_set_downtime (use migrate-set-parameters instead)
+ migrate_set_speed (use migrate-set-parameters instead)
+ query-cpus (use query-cpus-fast instead)
+ query-events
+ query-migrate-cache-size (use query-migrate-parameters instead)
+
+- These previously supported monitor commands are now deprecated:
+ change
+
+- These previously supported monitor commands are no longer recognized:
+ info cpustats
+ block_passwd ...
+ block_passwd
+ cpu-add
+ cpu_set
+ migrate_set_cache_size
+ migrate_set_downtime
+ migrate_set_speed
+ pci_add (use device_add instead)
+ pci_del (use device_del instead)
+ usb_add (use device_add instead)
+ usb_del (use device_del instead)
+
+- These previously unsupported monitor command are now deprecated:
+ <previously mentioned items have been moved to another category>
+
+- These previously unsupported monitor commands are no longer recognized:
+ acl_add ...
+ acl_policy ...
+ acl_remove ...
+ acl_reset ...
+ acl_show ...
+ host_net_add
+ host_net_remove
+
+- These previously unsupported QMP commands are now supported under a new name:
+ x-block-dirty-bitmap-disable (use block-dirty-bitmap-disable instead)
+ x-block-dirty-bitmap-enable (use block-dirty-bitmap-enable instead)
+ x-block-dirty-bitmap-merge (use block-dirty-bitmap-merge instead)
+ x-block-latency-histogram-set (use block-latency-histogram-set instead)
+ x-blockdev-create (use blockdev-create instead)
+ x-input-send-event (use input-send-event instead)
+
+- This previously unsupported QMP commands is no longer recognized:
+ x-nbd-server-add-bitmap
+
+- Due to the lack of migration support (mainly due to ahci interface issues)
+ and other unstable interface issues, earlier versions of the q35 machine type
+ are not supported in this release. The current q35 machine type is however now
+ fully supported.
+
+- Due to upstream's decision to no longer fully support the qed storage format
+ going forward (since it really provides no benefit over qcow2 and is now no
+ longer actively maintained upstream), creating qed storage images is no longer
+ supported and it is highly discouraged to continue using existing qed images.
+ They should instead be converted to another supported format.
+
+- If KVM Intel nested virtualization is enabled, and the guest is passed the vmx
+ feature, then live migration or save/restore is prohibited.
+
+QEMU Command-Line and Monitor Syntax and Support
+------------------------------------------------
+
+- The QEMU program command-line syntax is as follows:
+ qemu-system-i386 [options] [disk_image]
+ qemu-system-x86_64 [options] [disk_image]
+
+ Where 'options' are taken from the options listed below, and 'disk_image' is
+ the file system reference to the x86 guest's primary IDE based hard disk
+ image. This image as well as those used with -drive or -cdrom, may be in the
+ raw (no format) or qcow2 storage formats, and may be located in files within
+ the host filesystem, logical volumes, host physical disks, or network based
+ storage. Read only media may also be accessed via URL style protocol
+ specifiers.
+
+ Note that as a general rule, as new command line options are added which serve
+ to replace an older option or interface, you are strongly encouraged to adapt
+ your usage to the new option. The new option is being introduced to provide
+ better functionality and usability going forward. In some cases existing
+ problems or even bugs in older interfaces cannot be fixed due to functional
+ expectations, but are resolved in the newer interface or option.
+ This advice includes moving to the most recent machine type (eg pc-i440fx-6.1
+ instead of pc-i440fx-6.0) if possible.
+
+- The following command line options are supported:
+ -accel ...
+ -action ...
+ -add-fd ...
+ -alt-grab
+ -append ...
+ -audio-help
+ -audiodev
+ -bios ...
+ -blockdev ...
+ -boot ...
+ -cdrom ...
+ -chardev ...
+ -compat ...
+ -cpu ... (all except host)
+ -ctrl-grab
+ -d ...
+ -daemonize
+ -debugcon ...
+ -device
+
+ [isa-serial|isa-parallel|isa-fdc|ide-hd|ide-cd|VGA|cirrus-vga|rtl8139|
+ usb-hub|usb-ehci|usb-tablet|usb-storage|usb-mouse|usb-kbd|
+ virtserialport|virtconsole|sga|i82559er|scsi-cd|scsi-hd|scsi-generic|
+ scsi-block|pci-serial|pci-serial-2x|pci-serial-4x|ich9-ahci|
+ piix3-usb-uhci|usb-host|usb-serial|usb-wacom-tablet|usb-braille|
+ usb-net|pci-ohci|piix4-usb-uhci|i6300esb|ib700|qxl|qxl-vga|pvpanic|
+ vfio-pci|ivshmem-doorbell|ivshmem-plain|pci-bridge|megasas-gen2|
+ pc-dimm|floppy|e1000e|ccid-card-emulated|ccid-card-passthrough|
+ xen-backend|loader|e1000-82540em|vmgenid|vmcoreinfo|pcie-pci-bridge|
+ ich9-usb-ehci1|ich9-usb-ehci2|ich9-usb-uhci1|ich9-usb-uhci2|
+ ich9-usb-uhci3|ich9-usb-uhci4|ich9-usb-uhci5|ich9-usb-uhci6|
+ usb-redir|vhost-scsi|vhost-scsi-pci|vhost-user-blk|
+ vhost-user-blk-pci|vhost-user-blk-pci-non-transitional|
+ vhost-user-blk-pci-transitional|vhost-user-scsi|vhost-user-scsi-pci|
+ vhost-user-scsi-pci-non-transitional|vhost-user-pci-transitional|
+ vhost-vsock-pci|vhost-vsock-pci-non-transitional|virtio-balloon-pci|
+ virtio-balloon-pci-non-transitional|virtio-balloon-pci-transitional|
+ virtio-blk-pci|virtio-blk-pci-non-transitional|
+ virtio-blk-pci-transitional|virtio-net-pci|
+ virtio-net-pci-non-transitional|virtio-net-pci-transitional|
+ virtio-9p-pci|virtio-9p-pci-non-transitional|
+ virtio-9p-pci-transitional|virtio-serial-pci|
+ virtio-serial-pci-non-transitional|virtio-serial-pci-transitional|
+ virtio-scsi-pci|virtio-scsi-pci-non-transitional|
+ virtio-scsi-pci-transitional|virtio-rng-pci|
+ virtio-rng-pci-non-transitional|virtio-rng-pci-transitional|
+ virtio-input-host-pci|virtio-input-host-pci-non-transitional|
+ virtio-input-host-pci-transitional|virtio-keyboard-pci|
+ virtio-mouse-pci|virtio-tablet-pci|virtio-gpu-pci|virtio-crypto-pci|
+ virtio-vga|vhost-user-fs-pci|vhost-user-gpu|vhost-user-pci-pci|
+ vhost-user-input|vhost-user-input-pci|vhost-user-vga|virtio-mmio|
+ virtio-pmem|virtio-pmem-pci|mc146818rtci|nvme-subsys|guest-loader|
+ pvpanic-pci]
+ (the following are aliases of these supported devices: ahci|
+ e1000|virtio-blk|virtio-net|virtio-serial|virtio-balloon|virtio-9p|
+ virtio-scsi|virtio-rng|virtio-input-host|virtio-keyboard|virtio-mouse|virtio-tablet|virtio-gpu)
+
+ -dfilter range, ...
+ -display ...
+ -drive
+
+ ... (if specified if=[floppy|ide|virtio] and format=[qcow2|raw] and
+ snapshot=off only)
+
+ -echr ...
+ -enable-fips
+ -enable-kvm
+ -fda/-fdb ...
+ -fsdev ...
+ -full-screen
+ -fw_cfg ...
+ -gdb ...
+ -global ...
+ -h
+ -hda/-hdb/-hdc/-hdd ...
+ -help
+ -incoming ...
+ -initrd ...
+ -iscsi ...
+ -k ...
+ -kernel ...
+ -loadvm ...
+ -m ...
+ -M
+
+ [help|none|pc-i440fx-1.4|pc-i440fx-1.7|pc-i440fx-2.0|pc-i440fx-2.3|
+ pc-i440fx-2.6|pc-i440fx-2.9|pc-i440fx-2.11|pc-i440fx-3.1|pc-i440fx-4.2|
+ pc-i440fx-5.2|pc-i440fx-6.0|pc-i440fx-6.1|pc-q35-2.6|pc-q35-2.9|
+ pc-q35-2.11|pc-q35-3.1|pc-q35-4.2|pc-q35-5.2|pc-q35-6.0|pc-q35-6.1|
+ xenfv|xenfv-4.2]
+
+ -machine
+
+ [help|none|pc-i440fx-1.4|pc-i440fx-1.7|pc-i440fx-2.0|
+ pc-i440fx-2.3|pc-440fx-2.6|pc-i440fx-2.9|pc-i440fx-2.11|
+ pc-i440fx-3.1|pc-i440fx-4.2|pc-i440fx-5.2|pc-i440fx-6.0|
+ pc-i440fx-6.1|pc-q35-2.6|pc-q35-2.9|pc-q35-2.11|pc-q35-3.1|
+ pc-q35-4.2|pc-q35-5.2|pc-q35-6.0|pc-q35-6.1|xenfv|xenifv-4.2]
+
+ -mem-path ...
+ -mem-prealloc
+ -mon ...
+ -monitor ...
+ -msg ...
+ -name ...
+ -net
+
+ [bridge|l2tpv3|nic|none|tap|user] ... (for model= only e1000, rtl8139,
+ and virtio are supported)
+
+ -netdev [bridge|tap|user] ...
+ -nic ...
+ -no-acpi
+ -nodefaults
+ -no-fd-bootchk
+ -nographic
+ -no-hpet
+ -no-quit
+ -no-reboot
+ -no-shutdown
+ -no-user-config
+ -numa cpu ...
+ -numa dist ...
+ -object ...
+ -only-migratable
+ -parallel ...
+ -pidfile ...
+ -plugin ...
+ -qmp ...
+ -qmp-pretty ...
+ -readconfig ...
+ -rtc ...
+ -runas ...
+ -s
+ -S
+ -sandbox ...
+ -seed ...
+ -serial ...
+ -smbios ...
+ -smp ...
+ -spice
+ -tpmdev passthrough ...
+ -trace ...
+ -usb
+ -usbdevice [braile|disk|host|mouse|net|serial|tablet]
+ -uuid ...
+ -version
+ -vga [cirrus|none|qxl|std|xenfb]
+ -virtfs ...
+ -vnc ...
+ -watchdog ...
+ -watchdog-action ...
+ -writeconfig ...
+ -xen-attach ...
+ -xen-domid ...
+ -xen-domid-restrict ...
+
+- The following monitor commands are supported:
+ ?
+ announce_self ...
+ balloon ...
+ block_resize ...
+ boot_set ...
+ c
+ change ...
+ chardev-add ...
+ chardev-change ...
+ chardev-remove ...
+ chardev-send-break ...
+ client_migrate_info ...
+ closefd ...
+ cont
+ cpu ...
+ delvm ...
+ device_add ...
+ device_del ...
+ drive_add ...
+ drive_backup ...
+ drive_del ...
+ dump_guest_memory ...
+ eject ...
+ gdbserver ...
+ gpa2hpa ...
+ gpa2hva ...
+ gva2gpa ...
+ help
+ i ...
+ info ...
+ loadvm ...
+ logfile ...
+ logitem ...
+ mce ...
+ memsave ...
+ migrate ...
+ migrate_cancel
+ migrate_continue ...
+ migrate_incoming
+ migrate_pause
+ migrate_recover ...
+ migrate_set_capability ...
+ migrate_set_parameter ...
+ migrate_start_post_copy
+ mouse_button ...
+ mouse_move ...
+ mouse_set ...
+ nmi ...
+ o ...
+ object_add ...
+ object_del ...
+ p ...
+ pci_add ...
+ pci_del...
+ pmemsave ...
+ print ...
+ q
+ qemu-io ...
+ qom-list
+ qom-set
+ ringbuf_read ...
+ ringbuf_write ...
+ savevm ...
+ screendump ...
+ sendkey ...
+ snapshot_blkdev_internal ...
+ snapshot_delete_blkdev_internal ...
+ stop
+ sum ...
+ system_powerdown
+ system_reset
+ system_wakeup
+ trace-event ...
+ watchdog_action ...
+ x ...
+ xp ...
+
+- The following QMP commands are supported:
+ add_client
+ add-fd
+ announce-self
+ balloon
+ blockdev-add
+ blockdev-backup
+ blockdev-change-medium
+ blockdev-close-tray
+ blockdev-create
+ blockdev-del
+ blockdev-mirror
+ blockdev-open-tray
+ blockdev-snapshot
+ blockdev-snapshot-delete-internal-sync
+ blockdev-snapshot-internal-sync
+ blockdev-snapshot-sync
+ block-commit
+ block-dirty-bitmap-add
+ block-dirty-bitmap-clear
+ block-dirty-bitmap-disable
+ block-dirty-bitmap-enable
+ block-dirty-bitmap-merge
+ block-dirty-bitmap-remove
+ block-export-add
+ block-export-del
+ block-latency-histogram-set
+ block_resize
+ block_set_io_throttle
+ block-set-write-threshold
+ block_stream
+ calc-dirty-rate
+ change-vnc-password
+ chardev-add
+ chardev-change
+ chardev-remove
+ chardev-send-break
+ client_migrate_info
+ closefd
+ cont
+ cpu
+ device_add
+ device_del
+ device-list-properties
+ display-reload
+ dump-guest-memory
+ eject
+ expire_password
+ getfd
+ human-monitor-command
+ inject-nmi
+ input-send-event
+ job-cancel
+ job-complete
+ job-dismiss
+ job-finalize
+ job-pause
+ job-resume
+ memsave
+ migrate
+ migrate_cancel
+ migrate-continue
+ migrate-incoming
+ migrate-pause
+ migrate-resume
+ migrate-set-capabilities
+ migrate-set-parameters
+ migrate-start-postcopy
+ object-add
+ object-del
+ pmemsave
+ qmp_capabilities
+ qom-get
+ qom-list
+ qom-list-types
+ qom-set
+ query-acpi-ospm-status
+ query-balloon
+ query-block
+ query-block-exports
+ query-block-jobs
+ query-blockstats
+ query-chardev
+ query-chardev-backends
+ query-command-line-options
+ query-commands
+ query-cpu-definitions
+ query-cpu-model-expansion
+ query-cpus-fast
+ query-current-machine
+ query-dirty-rate
+ query-display-options
+ query-dump
+ query-dump-guest-memory-capability
+ query-fdsets
+ query-gic-capabilities
+ query-hotpluggable-cpus
+ query-iothreads
+ query-jobs
+ query-kvm
+ query-machines
+ query-memdev
+ query-memory-devices
+ query-memory-size-summary
+ query-mice
+ query-migrate
+ query-migrate-capabilities
+ query-migrate-parameters
+ query-name
+ query-named-block-nodes
+ query-pci
+ query-pr-managers
+ query-qmp-schema
+ query-rocker
+ query-rocker-of-dpa-flows
+ query-rocker-of-dpa-groups
+ query-rocker-ports
+ query-rx-filter
+ query-sev
+ query-sev-capabilities
+ query-sev-launch-measure
+ query-spice
+ query-status
+ query-target
+ query-tpm
+ query-tpm-models
+ query-tpm-types
+ query-uuid
+ query-version
+ query-vnc
+ query-vnc-servers
+ query-yank
+ query-xen-replication-status
+ quit
+ remove-fd
+ ringbuf-read
+ ringbuf-write
+ screendump
+ send-key
+ set-action
+ set_link
+ set_password
+ set-numa-node
+ sev-inject-launch-secret
+ snapshot-delete
+ snapshot-load
+ snapshot-save
+ stop
+ system_powerdown
+ system_reset
+ system_wakeup
+ trace-event-get-state
+ trace-event-set-state
+ transaction
+ watchdog-set-action
+ xen-load-devices-state
+ xen-save-devices-state
+ xen-set-global-dirty-log
+ yank
+
+- The following command line options are unsupported:
+
+ -acpitable ...
+ -chroot ...
+ -cpu host
+ -curses
+ -device
+
+ [ipoctal232|i82562|nec-usb-xhci|hda-duplex|hda-output|usb-bot|
+ lsi53c810a|isa-debug-exit|ne2k_pci|usb-uas|ioh3420|isa-ide|usb-ccid|
+ pcnet|ich9-intel-hda|dc390|hda-micro|x3130-upstream|isa-cirrus-vga|
+ pc-testdev|ne2k_isa|isa-vga|cs4231a|gus|vmware-svga|i82801b11-bridge|
+ i82557a|i82557c|i82557b|i82801|AC97|am53c974|intel-hda|i82558a|
+ i82558b|usb-audio|i82550|isa-debugcon|sb16|megasas|i82551|
+ xio3130-downstream|vt82c686b-usb-uhci|tpci200|i82559a|i82559b|i82559c|
+ isa-applesmc|adlib|ES1370|lsi53c810|nvme|pci-testdev|pvscsi|
+ virtio-9p-device|virtio-balloon-device|virtio-blk-device|
+ virtio-net-device|virtio-rng-device|virtio-scsi-device|
+ virtio-serial-device|vmxnet3|xen-pci-passthrough|xen-platform|
+ xen-pvdevice|piix3-ide|piix3-ide-xen|piix3-ide|i8042|sdhci-pci|
+ secondary-vga|edu|intel_iommu|usb-mtp|e1000-82544gc|e1000-82545em|
+ pci-bridge-seat|pxb|pxb-pcie|rocker|virtio-input-host-device|
+ virtio-keyboard-device|virtio-mouse-device|virtio-tablet-device|
+ hyperv-testdev|generic-sdhci|igd-passthrough-isa-bridge|
+ ipmi-bmc-extern|ipmi-bmc-sim|isa-ipmi-bt|isa-ipmi-kcs|mptsas1068|
+ nvdimm|pxb-host|sd-card|virtio-gpu-device|amd-iommu|AMDVI-PCI|
+ vhost-vsock-device|virtio-crypto-device|vfio-pci-igd-lpc-bridge|
+ pcie-root-port|qemu-xhci|*-i386-cpu|*-x86_64-cpu|pvrdma|bochs-display|
+ ramfb|ccid-card-emulated|ccid-card-passthru|kvaser_pci|tpm-crb|
+ mioe3680_pci|pcm3680_pci|hyperv-synic|vfio-pci-nohotplug|
+ vfio-platform|xen-bridge|xen-cdrom|xen-disk|ati-vga|cpu-cluster|
+ intel-iommu|vhost-user-fs-device|tulip|ati-vga|i2c-ddc|pci-ipmi-bt|
+ pci-ipmi-kcs|serial|serial-io|serial-mm|virtio-iommu-device|
+ virtio-iommu-pci|virtio-iommu-pci-nontransitional|xen-sysdev|
+ imx.usbphy|vmbus-bridge|vhost-user-vsock-device|vhost-user-vsock-pci|
+ vhost-user-vsock-pci-non-transitional|virtio-mem|virtio-mem-pci|
+ nvme-ns|ctucan_pci|u2f-passthru]
+ (the following are aliases of these unsupported devices: lsi)
+ (note that some of these device names represent supported devices and
+ are used internally, but are not specifyable via -device even though
+ they appear in the list of devices)
+
+ -drive
+
+ ,if=[scsi|mtd|pflash], snapshot=on, format=[anything besides qcow2 or
+ raw]
+
+ -dtb file
+ -enable-sync-profile
+ -g ...
+ -icount ...
+ -L ...
+ -M
+
+ [pc|isapc|microvm|x-remote|pc-i440fx-1.5|pc-i440fx-1.6|pc-i440fx-2.1|
+ pc-i440fx-2.2|pc-i440fx-2.4|pc-i440fx-2.5|pc-i440fx-2.7|pc-i440fx-2.8|
+ pc-i440fx-2.10|pc-i440fx-2.12|pc-i440fx-3.0|pc-i440fx-4.0|pc-i440fx-4.1|
+ pc-i440fx-5.0|pc-i440fx-5.1|pc-i440fx-6.0|q35|pc-q35-1.4|pc-q35-1.5|
+ pc-q35-1.6|pc-q35-1.7|pc-q35-2.0|pc-q35-2.1|pc-q35-2.2|pc-q35-2.3|
+ pc-q35-2.4|pc-q35-2.5|pc-q35-2.7|pc-q35-2.8|pc-q35-2.10|pc-q35-2.12|
+ pc-q35-3.0|pc-q35-4.0|pc-q35-4.1|pc-q35-5.0|pc-q35-5.1|pc-q35-6.0]
+
+ -machine
+
+ [pc|isapc|microvm|x-remote|pc-i440fx-1.5|pc-i440fx-1.6|pc-i440fx-2.1|
+ pc-i440fx-2.2|pc-i440fx-2.4|pc-i440fx-2.5|pc-i440fx-2.7|
+ pc-i440fx-2.8|pc-i440fx-2.10|pc-i440fx-2.12|pc-i440fx-3.0|
+ pc-i440fx-4.0|pc-i440fx-4.1|pc-i440fx-5.0|pc-i440fx-5.1|
+ pc-i440fx-6.0|q35|pc-q35-1.4|pc-q35-1.5|pc-q35-1.6|pc-q35-1.7|
+ pc-q35-2.0|pc-q35-2.1|pc-q35-2.2|pc-q35-2.3|pc-q35-2.4|pc-q35-2.5|
+ pc-q35-2.7|pc-q35-2.8|pc-q35-2.10|pc-q35-2.12|pc-q35-3.0|pc-q35-4.0|
+ pc-q35-4.1|pc-q35-5.0|pc-q35-5.1|pc-q35-6.0]
+
+ -mtdblock file
+ -net [socket|vde] ...
+ -netdev [hubport|l2tpv3|socket|vde] ...
+ -no-kvm
+ -numa node ...
+ -option-rom ...
+ -overcommit ...
+ -pflash file
+ -portrait
+ -preconfig
+ -prom-env ...
+ -qtest ...
+ -qtest-log ...
+ -rotate
+ -sd file
+ -sdl
+ -set ...
+ -singlestep
+ -snapshot
+ -soundhw ...
+ -tpmdev emulator ...
+ -vga [cg3|tcx|virtio|vmware]
+ -win2k-hack
+
+- The following monitor commands are unsupported:
+ block_job_cancel ...
+ block_job_complete ...
+ block_job_pause ...
+ block_job_resume ...
+ block_job_set_speed ...
+ commit ...
+ drive_mirror ...
+ exit_preconfig
+ expire_password ...
+ hostfwd_add ...
+ hostfwd_remove ...
+ nbd_server_add ...
+ nbd server_start ...
+ nbd_server_stop ...
+ netdev_add
+ netdev_del ...
+ pcie_aer_inject_error ...
+ replay_break ...
+ replay_delete_break
+ replay_seek ...
+ set_link ...
+ set_password ...
+ singlestep ...
+ snapshot_blkdev ...
+ stopcapture ...
+ sync-profile ...
+ wavcapture ...
+ x_colo_lost_heartbeat
+
+- The following QMP commands are unsupported:
+ block-job-cancel
+ block-job-complete
+ block-job-pause
+ block-job-resume
+ block-job-set-speed
+ change-backing-file
+ drive-backup
+ drive-mirror
+ netdev_add
+ netdev_del
+ nbd-server-add
+ nbd-server-start
+ nbd-server-stop
+ query-colo-status
+ query-replay
+ replay_break
+ replay_delete_break
+ replay_seek
+ x-blockdev-amend
+ x-blockdev-change
+ x-blockdev-insert-medium
+ x-blockdev-remove-medium
+ x-blockdev-reopen
+ x-colo-lost-heartbeat
+ x-debug-block-dirty-bitmap-sha256
+ x-debug-query-block-graph
+ x-exit-preconfig
+ xen-colo-do-checkpoint
+ xen-set-replication