Go to file
Dario Faggioli d58941a9c7 Accepting request 1006734 from home:dfaggioli:devel:Virtualization
- Runs of the test-suite seem much more stable now, in this version
  of QEMU. (bsc#1203610) We are also fine re-enabling running them
  in parallel.
- Switch QEMU Linux user to emulate the same CPU as the one of the
  host by default. This is a bit conrtoversial and tricky, when
  thinking about system emulation/virtualization. But for linux-user,
  it should be just fine. (bsc#1203684)
* Patches added:
  linux-user-use-max-as-default-CPU-model-.patch
- Be less verbose when packaging documentation. In fact, with just
  a couple of (minor) re-arrangements, we can get rid of having to
  list all the files all the time
- Package /etc/qemu/bridge.conf as '%config(noreplace). Next step
  will probably be to move it to /usr/etc/qemu (bsc#1201944)
- Switch to %autosetup for all products (this required some changes
  in update_git.sh)
- Run check-qtest sequentially, as it's more reliable, when in OBS
- Build with libbpf, fdt and capstone support
- Drop the patch adding our support document, and deal with that
  in the spec file directly
* Patches dropped:
  doc-add-our-support-doc-to-the-main-proj.patch
- Updated to latest upstream version 7.1
  * https://wiki.qemu.org/ChangeLog/7.1
  Be sure to also check the following pages:
  * https://qemu-project.gitlab.io/qemu/about/removed-features.html
  * https://qemu-project.gitlab.io/qemu/about/deprecated.html
  Some notable changes:
  * [x86] Support for architectural LBRs on KVM virtual machines
  * [x86] The libopcode-based disassembler has been removed. Use
          Capstone instead
  * [LoongArch] Add initial support for the LoongArch64 architecture.
  * [ARM] The emulated SMMUv3 now advertises support for SMMUv3.2-BBML2
  * [ARM] The xlnx-zynqmp SoC model now implements the 4 TTC timers
  * [ARM] The versal machine now models the Cortex-R5s in the Real-Time
          Processing Unit (RPU) subsystem
  * [ARM] The virt board now supports emulation of the GICv4.0
  * [ARM] New emulated CPU types: Cortex-A76, Neoverse-N1
  * [HPPA] Fix serial port pass-through from host to guest
  * [HPPA] Lots of general code improvements and tidy-ups
  * [RISC-V] RISC-V
  * [RISC-V] Add support for privileged spec version 1.12.0
  * [RISC-V] Use privileged spec version 1.12.0 for virt machine by default
  * [RISC-V] Allow software access to MIP SEIP
  * [RISC-V] Add initial support for the Sdtrig extension
  * [RISC-V] Optimisations and improvements for the vector extension
  * [VFIO] Experimental support for exposing emulated PCI devices over the
           new vfio-user protocol (a vfio-user client is not yet available
           in QEMU, though)
  * [QMP] The on-cbw-error option for copy-before-write filter, to specify
           behavior on CBW (copy before write) operation failure.
  * [QMP] The cbw-timeout option for copy-before-write filter, to specify
          timeout for CBW operation.
  * [QMP] New commands query-stats and query-stats-schema to retrieve
          statistics from various QEMU subsystems (right now only from
          KVM).
  * [QMP] The PanicAction can now be configured to report an exit-failure
          (useful for automated testing)
  * [Networking] QEMU can be compiled with the system slirp library even
                 when using CFI. This requires libslirp 4.7.
  * [Migration] Support for zero-copy-send on Linux, which reduces CPU
                usage on the source host. Note that locked memory is needed
                to support this
* Patches added:
  Revert-tests-qtest-enable-more-vhost-use.patch
  meson-remove-pkgversion-from-CONFIG_STAM.patch
* Patches dropped:
  AIO-Reduce-number-of-threads-for-32bit-h.patch
  Makefile-Don-t-check-pc-bios-as-pre-requ.patch
  Revert-8dcb404bff6d9147765d7dd3e9c849337.patch
  Revert-qht-constify-qht_statistics_init.patch
  XXX-dont-dump-core-on-sigabort.patch
  acpi_piix4-Fix-migration-from-SLE11-SP2.patch
  configure-only-populate-roms-if-softmmu.patch
  configure-remove-pkgversion-from-CONFIG_.patch
  coroutine-ucontext-use-QEMU_DEFINE_STATI.patch
  coroutine-use-QEMU_DEFINE_STATIC_CO_TLS.patch
  coroutine-win32-use-QEMU_DEFINE_STATIC_C.patch
  hostmem-default-the-amount-of-prealloc-t.patch
  hw-usb-hcd-ehci-fix-writeback-order.patch
  i8254-Fix-migration-from-SLE11-SP2.patch
  intc-exynos4210_gic-replace-snprintf-wit.patch
  modules-generates-per-target-modinfo.patch
  modules-introduces-module_kconfig-direct.patch
  pc-bios-s390-ccw-net-avoid-warning-about.patch
  pci-fix-overflow-in-snprintf-string-form.patch
  qemu-cvs-gettimeofday.patch
  qemu-cvs-ioctl_debug.patch
  qemu-cvs-ioctl_nodirection.patch
  qht-Revert-some-constification-in-qht.c.patch
  qom-handle-case-of-chardev-spice-module-.patch
  scsi-lsi53c895a-fix-use-after-free-in-ls.patch
  scsi-lsi53c895a-really-fix-use-after-fre.patch
  softmmu-Always-initialize-xlat-in-addres.patch
  sphinx-change-default-language-to-en.patch
  test-add-mapping-from-arch-of-i686-to-qe.patch
  tests-Fix-block-tests-to-be-compatible-w.patch
  tests-qtest-Move-the-fuzz-tests-to-x86-o.patch
  usb-Help-compiler-out-to-avoid-a-warning.patch

OBS-URL: https://build.opensuse.org/request/show/1006734
OBS-URL: https://build.opensuse.org/package/show/Virtualization/qemu?expand=0&rev=732
2022-09-29 06:46:40 +00:00
_constraints Accepting request 919603 from home:jziviani:branches:Virtualization 2021-09-16 23:21:22 +00:00
_multibuild Accepting request 990667 from home:dfaggioli:old_qemu 2022-07-22 11:50:51 +00:00
.gitattributes OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/qemu?expand=0&rev=29 2009-04-01 16:57:34 +00:00
.gitignore OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/qemu?expand=0&rev=1 2007-01-15 23:34:41 +00:00
50-seabios-256k.json Accepting request 751303 from home:bfrogers:branches:Virtualization:Staging 2019-11-27 12:46:32 +00:00
60-seabios-128k.json Accepting request 751303 from home:bfrogers:branches:Virtualization:Staging 2019-11-27 12:46:32 +00:00
80-kvm.rules Accepting request 222193 from home:bfrogers:branches:Virtualization 2014-02-13 13:36:37 +00:00
80-qemu-ga.rules Accepting request 940701 from home:dfaggioli:devel:Virtualization 2021-12-15 11:09:40 +00:00
ath5k-Add-missing-AR5K_EEPROM_READ-in-at.patch Accepting request 873002 from home:bfrogers:branches:Virtualization 2021-02-17 02:19:36 +00:00
bridge.conf Accepting request 124357 from home:a_faerber:branches:Virtualization 2012-06-10 12:13:56 +00:00
build-be-explicit-about-mx86-used-note-n.patch Accepting request 941047 from home:dfaggioli:devel:Virtualization 2021-12-17 10:07:39 +00:00
bundles.tar.xz Accepting request 1006734 from home:dfaggioli:devel:Virtualization 2022-09-29 06:46:40 +00:00
config.sh Accepting request 1006734 from home:dfaggioli:devel:Virtualization 2022-09-29 06:46:40 +00:00
Disable-some-tests-that-have-problems-in.patch Accepting request 1006734 from home:dfaggioli:devel:Virtualization 2022-09-29 06:46:40 +00:00
DSDT.pcie Accepting request 990667 from home:dfaggioli:old_qemu 2022-07-22 11:50:51 +00:00
enable-cross-compilation-on-ARM.patch Accepting request 941047 from home:dfaggioli:devel:Virtualization 2021-12-17 10:07:39 +00:00
help-compiler-out-by-initializing-array.patch Accepting request 827680 from home:bfrogers:branches:Virtualization 2020-08-18 20:41:08 +00:00
hw-scsi-megasas-check-for-NULL-frame-in-.patch Accepting request 990667 from home:dfaggioli:old_qemu 2022-07-22 11:50:51 +00:00
hw-smbios-handle-both-file-formats-regar.patch Accepting request 990667 from home:dfaggioli:old_qemu 2022-07-22 11:50:51 +00:00
Ignore-spurious-GCC-12-warning.patch Accepting request 990667 from home:dfaggioli:old_qemu 2022-07-22 11:50:51 +00:00
increase-x86_64-physical-bits-to-42.patch Accepting request 1006734 from home:dfaggioli:devel:Virtualization 2022-09-29 06:46:40 +00:00
ipxe-Makefile-fix-issues-of-build-reprod.patch Accepting request 854151 from home:bfrogers:branches:Virtualization 2020-12-08 22:01:20 +00:00
ksm.service Accepting request 709099 from home:mslacken:branches:Virtualization 2019-07-01 08:07:52 +00:00
kvm.conf Accepting request 408598 from home:bfrogers:branches:Virtualization 2016-07-15 15:50:58 +00:00
linux-user-add-binfmt-wrapper-for-argv-0.patch Accepting request 1006734 from home:dfaggioli:devel:Virtualization 2022-09-29 06:46:40 +00:00
linux-user-binfmt-support-host-binaries.patch Accepting request 730437 from Virtualization:Staging 2019-09-12 15:54:03 +00:00
linux-user-Fake-proc-cpuinfo.patch Accepting request 1006734 from home:dfaggioli:devel:Virtualization 2022-09-29 06:46:40 +00:00
linux-user-lseek-explicitly-cast-non-set.patch Accepting request 1006734 from home:dfaggioli:devel:Virtualization 2022-09-29 06:46:40 +00:00
linux-user-use-max-as-default-CPU-model-.patch Accepting request 1006734 from home:dfaggioli:devel:Virtualization 2022-09-29 06:46:40 +00:00
linux-user-use-target_ulong.patch Accepting request 1006734 from home:dfaggioli:devel:Virtualization 2022-09-29 06:46:40 +00:00
Make-char-muxer-more-robust-wrt-small-FI.patch Accepting request 1006734 from home:dfaggioli:devel:Virtualization 2022-09-29 06:46:40 +00:00
Make-installed-scripts-explicitly-python.patch Accepting request 1006734 from home:dfaggioli:devel:Virtualization 2022-09-29 06:46:40 +00:00
Makefile-define-endianess-for-cross-buil.patch Accepting request 959502 from home:dfaggioli:experimental:Virtualization 2022-03-04 18:04:00 +00:00
Makefile-fix-build-with-binutils-2.38.patch Accepting request 990667 from home:dfaggioli:old_qemu 2022-07-22 11:50:51 +00:00
meson-install-ivshmem-client-and-ivshmem.patch Accepting request 990667 from home:dfaggioli:old_qemu 2022-07-22 11:50:51 +00:00
meson-remove-pkgversion-from-CONFIG_STAM.patch Accepting request 1006734 from home:dfaggioli:devel:Virtualization 2022-09-29 06:46:40 +00:00
pkg-split.txt Accepting request 833587 from home:bfrogers:branches:Virtualization 2020-09-11 02:47:21 +00:00
PPC-KVM-Disable-mmu-notifier-check.patch Accepting request 1006734 from home:dfaggioli:devel:Virtualization 2022-09-29 06:46:40 +00:00
qboot-add-cross.ini-file-to-handle-aarch.patch Accepting request 854151 from home:bfrogers:branches:Virtualization 2020-12-08 22:01:20 +00:00
qemu-7.1.0.tar.xz Accepting request 1006734 from home:dfaggioli:devel:Virtualization 2022-09-29 06:46:40 +00:00
qemu-7.1.0.tar.xz.sig Accepting request 1006734 from home:dfaggioli:devel:Virtualization 2022-09-29 06:46:40 +00:00
qemu-binfmt-conf-Modify-default-path.patch Accepting request 1006734 from home:dfaggioli:devel:Virtualization 2022-09-29 06:46:40 +00:00
qemu-bridge-helper-reduce-security-profi.patch Accepting request 854151 from home:bfrogers:branches:Virtualization 2020-12-08 22:01:20 +00:00
qemu-guest-agent.service Accepting request 940701 from home:dfaggioli:devel:Virtualization 2021-12-15 11:09:40 +00:00
qemu-ifup Accepting request 582028 from home:bfrogers:branches:Virtualization 2018-03-02 17:01:56 +00:00
qemu-kvm.1.gz Accepting request 222193 from home:bfrogers:branches:Virtualization 2014-02-13 13:36:37 +00:00
qemu-rpmlintrc Accepting request 976281 from home:marxin:branches:Virtualization 2022-05-11 14:18:03 +00:00
qemu-supportconfig Accepting request 903795 from home:jziviani:branches:Virtualization 2021-07-03 02:10:16 +00:00
qemu.changes Accepting request 1006734 from home:dfaggioli:devel:Virtualization 2022-09-29 06:46:40 +00:00
qemu.keyring Accepting request 637104 from home:bfrogers:branches:Virtualization 2018-09-21 21:17:21 +00:00
qemu.spec Accepting request 1006734 from home:dfaggioli:devel:Virtualization 2022-09-29 06:46:40 +00:00
qemu.spec.in Accepting request 1006734 from home:dfaggioli:devel:Virtualization 2022-09-29 06:46:40 +00:00
Raise-soft-address-space-limit-to-hard-l.patch Accepting request 1006734 from home:dfaggioli:devel:Virtualization 2022-09-29 06:46:40 +00:00
README.PACKAGING Accepting request 886771 from home:bfrogers:branches:Virtualization 2021-04-19 20:23:47 +00:00
Revert-roms-efirom-tests-uefi-test-tools.patch Accepting request 1006734 from home:dfaggioli:devel:Virtualization 2022-09-29 06:46:40 +00:00
Revert-tests-qtest-enable-more-vhost-use.patch Accepting request 1006734 from home:dfaggioli:devel:Virtualization 2022-09-29 06:46:40 +00:00
roms-change-cross-compiler-naming-to-be-.patch Accepting request 798748 from Virtualization:Staging 2020-04-29 00:12:31 +00:00
roms-Makefile-add-cross-file-to-qboot-me.patch Accepting request 1006734 from home:dfaggioli:devel:Virtualization 2022-09-29 06:46:40 +00:00
roms-Makefile-pass-a-packaging-timestamp.patch Accepting request 990667 from home:dfaggioli:old_qemu 2022-07-22 11:50:51 +00:00
roms-sgabios-Fix-csum8-to-be-built-by-ho.patch Accepting request 730437 from Virtualization:Staging 2019-09-12 15:54:03 +00:00
scsi-generic-check-for-additional-SG_IO-.patch Accepting request 1006734 from home:dfaggioli:devel:Virtualization 2022-09-29 06:46:40 +00:00
scsi-generic-replace-logical-block-count.patch Accepting request 1006734 from home:dfaggioli:devel:Virtualization 2022-09-29 06:46:40 +00:00
seabios-switch-to-python3-as-needed.patch Accepting request 990667 from home:dfaggioli:old_qemu 2022-07-22 11:50:51 +00:00
sgabios-Makefile-fix-issues-of-build-rep.patch Accepting request 730437 from Virtualization:Staging 2019-09-12 15:54:03 +00:00
Silence-GCC-12-spurious-warnings.patch Accepting request 964331 from home:dfaggioli:experimental:Virtualization 2022-03-23 16:26:18 +00:00
stub-out-the-SAN-req-s-in-int13.patch Accepting request 730437 from Virtualization:Staging 2019-09-12 15:54:03 +00:00
supported.arm.txt Accepting request 917591 from home:jziviani:branches:Virtualization 2021-09-08 13:59:23 +00:00
supported.ppc.txt Accepting request 914430 from home:jziviani:branches:Virtualization 2021-08-26 17:37:40 +00:00
supported.s390.txt Accepting request 917177 from home:jziviani:branches:Virtualization 2021-09-06 22:19:57 +00:00
supported.x86.txt Accepting request 917177 from home:jziviani:branches:Virtualization 2021-09-06 22:19:57 +00:00
tests-change-error-message-in-test-162.patch Accepting request 1006734 from home:dfaggioli:devel:Virtualization 2022-09-29 06:46:40 +00:00
tests-qemu-iotests-Triple-timeout-of-i-o.patch Accepting request 1006734 from home:dfaggioli:devel:Virtualization 2022-09-29 06:46:40 +00:00
update_git.sh Accepting request 1006734 from home:dfaggioli:devel:Virtualization 2022-09-29 06:46:40 +00:00
xen_disk-Add-suse-specific-flush-disable.patch Accepting request 1006734 from home:dfaggioli:devel:Virtualization 2022-09-29 06:46:40 +00:00
xen-add-block-resize-support-for-xen-dis.patch Accepting request 1006734 from home:dfaggioli:devel:Virtualization 2022-09-29 06:46:40 +00:00
xen-ignore-live-parameter-from-xen-save-.patch Accepting request 1006734 from home:dfaggioli:devel:Virtualization 2022-09-29 06:46:40 +00:00

The qemu package includes 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. A bash script (update_git.sh)
implements this workflow.

A local clone of the upstream repo(s) is required for the packaging workflow.
If none is found, the qemu superproject will be cloned as a shallow repo for the
workflow script's use. If you intend to do more than superficial work in the
qemu package, unshallow it. The submodule local repos aren't needed unless you
intend to do patch work there. See config.sh for the local repo paths.

The qemu.spec file is generated from a template file (qemu.spec.in), so to make
spec file changes outside of the patch file references (handled by the script),
you need to edit the template file, and NOT the qemu.spec file. The spec file's
version and patch references are added when update_git.sh is passed certain
commands, as described below.

If you are not modifying any patches or their order, but just need to update the
spec file from a changed template, run 'bash ./update_git.sh refresh'.

If the set of patches is being modified, including their order, you will want to
first run 'bash ./update_git.sh pkg2git', which makes the current package patch
set available in a local git branch named 'frombundle' (see config.sh for the
locations). This incarnation of the package patches comes from a "bundle of git
bundles", included as a package source file named bundles.tar.xz, which the
script extracts to the corresponding local frombundle branch. To add, remove or
modify the package patches, you will then do that work in a local branch whose
name corresponds to that qemu package's release version as follows:
The qemu major and minor release numbers are part of the name, prefixed by
'opensuse-', so, for example, for the v5.2.0 based SLE-15-SP3 qemu, the branch
would be named 'opensuse-5.2'. You want to start your work based on the current
patchqueue as contained in 'frombundle', so one approach is to do (depending on
your local repo's current state), 'git checkout -f --recurse-submodules -B
 opensuse-5.2 frombundle', and then cherry-pick upstream patches into it, or
interactive rebase it to modify or delete patches, etc. Be careful to keep the
branch based on the upstream tag which represents the package tarball however!

Once you have the patch queue ready to go, simply run 'bash ./update_git.sh
git2pkg' (in your local obs branch directory) to refresh the bundles.tar.xz
file, as well as the package spec and patch files. The package qemu.changes file
is modified to list added or removed patches as a starting point for documenting
the change.

When you are ready to check in the package, using 'bash update_git.sh ci' is
provided as a convenience (and to help preserve correct spec file formatting,
since a 'normal osc check-in' messes up the spec file a bit).

Additional Notes:

The maintainer and automation use another workflow mode dealing with packaging
the latest upstream qemu. See 'LATEST' references in the scripts for details,
as this is an 'expert mode' and isn't documented here.

Patches which are from an upstream git repo should have the commit id recorded
just below the Subject line (after a blank line) as follows:

Git-commit: <40-char-sha-id>

If a patch is anticipated to be shortly included in upstream repo, mark that
fact by doing the above with 40 0's, which will flag it as needing to be updated
in the near future.

We try to maintain, if possible, patch ordering as follows: (tarball as base),
patches which come from upstream commits in commit order, patches which will
soon be upstream (as mentioned above), followed by our private patches.

Bug or feature tracking identifiers should also be added to the patch similarly,
using the abbreviations identified here:
http://en.opensuse.org/openSUSE:Packaging_Patches_guidelines#Current_set_of_abbreviations
using the "Reference:" tag, with multiple entries comma separated.

The ability to provide a conditional inclusion of a patch (eg based on
architecture, is provided by this workflow by using the "Include-If:" tag, as
shown here:

Include-If: %ifarch aarch64

This will cause the patch application in the spec file to be done as follows:
%ifarch aarch64
%patch0013 -p1
%endif

A trick worth noting is, if a given git tracked patch is to be applied in a way
that can't be done in the normal patching section of the spec file, you can
still include the patch, and use it by name with the patch program elsewhere in
the spec file by doing something such as:
Include-If: %if 0%{?patch-possibly-applied-elsewhere}
(this variable will remain undefined in the spec file) And then elsewhere in the
spec file, the actual patch (eg specially-handled-change.patch) is referenced as
eg:

patch -p1 < %_sourcedir/specially-handled-change.patch