From fc6feafd4eafee97b9fd661161fade2d8ea74e02ec45e5d8102cdbf169886bef Mon Sep 17 00:00:00 2001 From: Bruce Rogers Date: Tue, 8 Dec 2020 22:01:20 +0000 Subject: [PATCH] Accepting request 854151 from home:bfrogers:branches:Virtualization - Update to v5.2.0: See http://wiki.qemu.org/ChangeLog/5.2 Take note that ongoing feature deprecation is tracked at both http://wiki.qemu-project.org/Features/LegacyRemoval and in the deprecated.html file installed with the qemu package Some noteworthy changes: * Dropped system emulators: qemu-system-lm32, qemu-system-unicore32 * Dropped linux user emulator: qemu-ppc64abi32 * Added linux user emulator: qemu-extensaeb * Unicore32 and lm32 guest support dropped * New sub-packages (most due to ongoing modularization of QEMU): qemu-audio-spice, qemu-hw-chardev-spice, qemu-hw-display-virtio-vga, qemu-hw-display-virtio-gpu, qemu-hw-display-virtio-gpu-pci, qemu-ui-spice-core, qemu-ui-opengl, qemu-ivshmem-tools * x86: A new KVM feature which improves the handling of asynchronous page faults is available with -cpu ...,kvm-async-pf-int (requires Linux 5.8) * s390: More instructions emulated under TCG * PowerPC: nvdimm= machine option now functions correctly; misc improvements * ARM: new boards: mps2-an386 (Cortex-M4 based) and mps2-an500 (Cortex-M7 based), raspi3ap (the Pi 3 model A+), raspi0 (the Pi Zero) and raspi1ap (the Pi A+) * RISC-V: OpenSBI v0.8 included by default; Generic OpenSBI platform used when no -bios argument is supplied; Support for NUMA sockets on Virt and Spike Machines; Support for migrating machines; misc improvements * Misc NVMe improvements * The 'vhost-user-blk' export type has been added, allowing qemu-storage-daemon to act as a vhost-user-blk device backend * The SMBIOS OEM strings can now come from a file * 9pfs - misc performance related improvements * virtiofs - misc improvements * migration: The default migration bandwidth has been increased to 1Gbps (users are still encouraged to tune it to their own hardware); The new 'calc-dirty-rate' and 'query-dirty-rate' QMP commands can help determine the likelihood of precopy migration success; TLS+multifd now supported for higher bandwidth encrypted migration; misc minor features added * Misc minor block features added * Misc doc improvements * qemu-microvm subpackage change: the bios-microvm.bin is now SeaBIOS based, and the qboot based on is now qboot.rom * elf2dmp is no longer part of qemu-tools (it was never intended to be a packaged binary) * Some subpackages which were 'Requires' are now 'Recommends', allowing for a smaller qemu packaging footprint if needed * Patches dropped (included in release tarball, unless otherwise noted): docs-fix-trace-docs-build-with-sphinx-3..patch (fixed differently) hw-hyperv-vmbus-Fix-32bit-compilation.patch linux-user-properly-test-for-infinite-ti.patch Switch-order-of-libraries-for-mpath-supp.patch (fixed differently) Conditionalize-ui-bitmap-installation-be.patch (fixed differently) hw-usb-hcd-xhci-Fix-GCC-9-build-warning.patch (no longer using gcc9) hw-usb-dev-mtp-Fix-GCC-9-build-warning.patch (no longer using gcc9) roms-Makefile-enable-cross-compile-for-b.patch (fixed with different patch) libvhost-user-handle-endianness-as-manda.patch virtio-add-vhost-user-fs-ccw-device.patch Fix-s-directive-argument-is-null-error.patch build-Workaround-compilation-error-with-.patch build-Be-explicit-about-fcommon-compiler.patch intel-Avoid-spurious-compiler-warning-on.patch golan-Add-explicit-type-casts-for-nodnic.patch Do-not-apply-WORKAROUND_CFLAGS-for-host-.patch ensure-headers-included-are-compatible-w.patch Enable-cross-compile-prefix-for-C-compil.patch (fixed differently) hw-net-net_tx_pkt-fix-assertion-failure-.patch hw-net-xgmac-Fix-buffer-overflow-in-xgma.patch s390x-protvirt-allow-to-IPL-secure-guest.patch usb-fix-setup_len-init-CVE-2020-14364.patch * Patches added: meson-install-ivshmem-client-and-ivshmem.patch Revert-roms-efirom-tests-uefi-test-tools.patch Makefile-Don-t-check-pc-bios-as-pre-requ.patch roms-Makefile-add-cross-file-to-qboot-me.patch qboot-add-cross.ini-file-to-handle-aarch.patch usb-Help-compiler-out-to-avoid-a-warning.patch - In spec file, where reasonable, switch BuildRequires: XXX-devel to be pkgconfig(XXX') instead - No longer disable link time optimization for qemu for x86. It looks like either the build service, qemu code changes and/or the switch to meson have resolved issues previously seen there. We still see problems for other architectures however. - For the record, the following issues reported for SUSE SLE15-SP2 are either fixed in this current package, or are otherwise no longer an issue: bsc#1172384 bsc#1174386 bsc#1174641 bsc#1174863 bsc#1175370 bsc#1175441 bsc#1176494 CVE-2020-13361 CVE-2020-14364 CVE-2020-15863 CVE-2020-16092 CVE-2020-24352 and the following feature requests are satisfied by this package: jsc#SLE-13689 jsc#SEL-13780 jsc#SLE-13840 - To be more accurate, and to align with other qemu packaging practices, rename the qemu-s390 package to qemu-s390x. The old name (in the rpm namespace) is provided with a "Provides" directive, and an "Obsoletes" done against that name for prior qemu versions, as is standard practice (boo#1177764 jsc#SLE-17060) - Take this opportunity to remove some ancient Split-Provides mechanisms which can't conceivably be needed any more: qemu-block-curl provided: qemu:%_libdir/%name/block-curl.so qemu-guest-agent provided: qemu:%_bindir/qemu-ga qemu-tools provided: qemu:%_libexecdir/qemu-bridge-helper - Disable linux-user 'ls' test on 32 bit arm. It's failing with "Allocating guest commpage: Cannot allocate memory" error, which we should hunt down, but for now we don't want it to prevent the package from being built OBS-URL: https://build.opensuse.org/request/show/854151 OBS-URL: https://build.opensuse.org/package/show/Virtualization/qemu?expand=0&rev=597 --- ...itionalize-ui-bitmap-installation-be.patch | 29 - ...ot-apply-WORKAROUND_CFLAGS-for-host-.patch | 67 -- ...le-cross-compile-prefix-for-C-compil.patch | 30 - Fix-s-directive-argument-is-null-error.patch | 35 - ...-char-muxer-more-robust-wrt-small-FI.patch | 8 +- ...-installed-scripts-explicitly-python.patch | 2 +- ...file-Don-t-check-pc-bios-as-pre-requ.patch | 25 + PPC-KVM-Disable-mmu-notifier-check.patch | 12 +- ...e-soft-address-space-limit-to-hard-l.patch | 6 +- Revert-qht-constify-qht_statistics_init.patch | 8 +- ...rt-roms-efirom-tests-uefi-test-tools.patch | 39 + ...ch-order-of-libraries-for-mpath-supp.patch | 36 - XXX-dont-dump-core-on-sigabort.patch | 2 +- acpi_piix4-Fix-migration-from-SLE11-SP2.patch | 4 +- ...d-Be-explicit-about-fcommon-compiler.patch | 30 - ...d-Workaround-compilation-error-with-.patch | 54 -- bundles.tar.xz | 4 +- config.sh | 27 +- configure-only-populate-roms-if-softmmu.patch | 4 +- ...igure-remove-pkgversion-from-CONFIG_.patch | 4 +- ...-add-SUSE-support-statements-to-html.patch | 4 +- ...-fix-trace-docs-build-with-sphinx-3..patch | 62 -- ...re-headers-included-are-compatible-w.patch | 52 -- ...n-Add-explicit-type-casts-for-nodnic.patch | 43 - hw-hyperv-vmbus-Fix-32bit-compilation.patch | 43 - ...ntc-exynos4210_gic-provide-more-room.patch | 2 +- ...mbios-handle-both-file-formats-regar.patch | 10 +- hw-usb-dev-mtp-Fix-GCC-9-build-warning.patch | 45 - hw-usb-hcd-xhci-Fix-GCC-9-build-warning.patch | 41 - increase-x86_64-physical-bits-to-42.patch | 4 +- ...l-Avoid-spurious-compiler-warning-on.patch | 89 -- ...-Makefile-fix-issues-of-build-reprod.patch | 6 +- ...host-user-handle-endianness-as-manda.patch | 275 ------ linux-user-Fake-proc-cpuinfo.patch | 6 +- ...x-user-add-binfmt-wrapper-for-argv-0.patch | 78 +- ...x-user-lseek-explicitly-cast-non-set.patch | 4 +- ...x-user-properly-test-for-infinite-ti.patch | 29 - linux-user-use-target_ulong.patch | 12 +- ...n-install-ivshmem-client-and-ivshmem.patch | 32 + ...t-add-cross.ini-file-to-handle-aarch.patch | 23 + qemu-5.1.0.tar.xz | 3 - qemu-5.1.0.tar.xz.sig | Bin 310 -> 0 bytes qemu-5.2.0.tar.xz | 3 + qemu-5.2.0.tar.xz.sig | Bin 0 -> 310 bytes ...-bridge-helper-reduce-security-profi.patch | 10 +- qemu-cvs-gettimeofday.patch | 4 +- qemu-cvs-ioctl_debug.patch | 4 +- qemu-cvs-ioctl_nodirection.patch | 6 +- qemu-ga-ref.html | 31 - qemu-ga-ref.txt | 8 - qemu-qmp-ref.html | 31 - qemu-qmp-ref.txt | 8 - qemu.changes | 107 +++ qemu.spec | 784 ++++++++++-------- qemu.spec.in | 640 ++++++++------ qht-Revert-some-constification-in-qht.c.patch | 10 +- ...-Makefile-add-cross-file-to-qboot-me.patch | 27 + ...-Makefile-enable-cross-compile-for-b.patch | 22 - ...-Makefile-pass-a-packaging-timestamp.patch | 14 +- supported.arm.txt | 109 +-- supported.ppc.txt | 2 +- supported.s390.txt | 57 +- supported.x86.txt | 60 +- ...s-Fix-block-tests-to-be-compatible-w.patch | 2 +- tests-change-error-message-in-test-162.patch | 2 +- update_git.sh | 6 +- ...Help-compiler-out-to-avoid-a-warning.patch | 41 + usb-fix-setup_len-init-CVE-2020-14364.patch | 86 -- virtio-add-vhost-user-fs-ccw-device.patch | 99 --- ...ignore-live-parameter-from-xen-save-.patch | 6 +- 70 files changed, 1368 insertions(+), 2100 deletions(-) delete mode 100644 Conditionalize-ui-bitmap-installation-be.patch delete mode 100644 Do-not-apply-WORKAROUND_CFLAGS-for-host-.patch delete mode 100644 Enable-cross-compile-prefix-for-C-compil.patch delete mode 100644 Fix-s-directive-argument-is-null-error.patch create mode 100644 Makefile-Don-t-check-pc-bios-as-pre-requ.patch create mode 100644 Revert-roms-efirom-tests-uefi-test-tools.patch delete mode 100644 Switch-order-of-libraries-for-mpath-supp.patch delete mode 100644 build-Be-explicit-about-fcommon-compiler.patch delete mode 100644 build-Workaround-compilation-error-with-.patch delete mode 100644 docs-fix-trace-docs-build-with-sphinx-3..patch delete mode 100644 ensure-headers-included-are-compatible-w.patch delete mode 100644 golan-Add-explicit-type-casts-for-nodnic.patch delete mode 100644 hw-hyperv-vmbus-Fix-32bit-compilation.patch delete mode 100644 hw-usb-dev-mtp-Fix-GCC-9-build-warning.patch delete mode 100644 hw-usb-hcd-xhci-Fix-GCC-9-build-warning.patch delete mode 100644 intel-Avoid-spurious-compiler-warning-on.patch delete mode 100644 libvhost-user-handle-endianness-as-manda.patch delete mode 100644 linux-user-properly-test-for-infinite-ti.patch create mode 100644 meson-install-ivshmem-client-and-ivshmem.patch create mode 100644 qboot-add-cross.ini-file-to-handle-aarch.patch delete mode 100644 qemu-5.1.0.tar.xz delete mode 100644 qemu-5.1.0.tar.xz.sig create mode 100644 qemu-5.2.0.tar.xz create mode 100644 qemu-5.2.0.tar.xz.sig delete mode 100644 qemu-ga-ref.html delete mode 100644 qemu-ga-ref.txt delete mode 100644 qemu-qmp-ref.html delete mode 100644 qemu-qmp-ref.txt create mode 100644 roms-Makefile-add-cross-file-to-qboot-me.patch delete mode 100644 roms-Makefile-enable-cross-compile-for-b.patch create mode 100644 usb-Help-compiler-out-to-avoid-a-warning.patch delete mode 100644 usb-fix-setup_len-init-CVE-2020-14364.patch delete mode 100644 virtio-add-vhost-user-fs-ccw-device.patch diff --git a/Conditionalize-ui-bitmap-installation-be.patch b/Conditionalize-ui-bitmap-installation-be.patch deleted file mode 100644 index f040ac21..00000000 --- a/Conditionalize-ui-bitmap-installation-be.patch +++ /dev/null @@ -1,29 +0,0 @@ -From: Bruce Rogers -Date: Wed, 23 Jan 2019 20:23:01 -0700 -Subject: Conditionalize ui bitmap installation better - -Signed-off-by: Bruce Rogers ---- - Makefile | 2 ++ - 1 file changed, 2 insertions(+) - -diff --git a/Makefile b/Makefile -index e7116289550f169a65f8aecfeccf..3da7feaf0d9e9b3f1222efb8823b 100644 ---- a/Makefile -+++ b/Makefile -@@ -970,6 +970,7 @@ ifneq ($(DESCS),) - "$(DESTDIR)$(qemu_datadir)/firmware/$$x"; \ - done - endif -+ifneq ($(or $(CONFIG_GTK),$(CONFIG_SDL)),) - for s in $(ICON_SIZES); do \ - mkdir -p "$(DESTDIR)$(qemu_icondir)/hicolor/$${s}/apps"; \ - $(INSTALL_DATA) $(SRC_PATH)/ui/icons/qemu_$${s}.png \ -@@ -984,6 +985,7 @@ endif - mkdir -p "$(DESTDIR)$(qemu_desktopdir)" - $(INSTALL_DATA) $(SRC_PATH)/ui/qemu.desktop \ - "$(DESTDIR)$(qemu_desktopdir)/qemu.desktop" -+endif - ifdef CONFIG_GTK - $(MAKE) -C po $@ - endif diff --git a/Do-not-apply-WORKAROUND_CFLAGS-for-host-.patch b/Do-not-apply-WORKAROUND_CFLAGS-for-host-.patch deleted file mode 100644 index 6fe33a56..00000000 --- a/Do-not-apply-WORKAROUND_CFLAGS-for-host-.patch +++ /dev/null @@ -1,67 +0,0 @@ -From: Michael Brown -Date: Mon, 22 Jul 2019 14:51:28 +0100 -Subject: Do not apply WORKAROUND_CFLAGS for host compiler - -Git-commit: a4f8c6e31f6c62522cfc633bbbffa81b22f9d6f3 -Include-If: %ifarch aarch64 - -The WORKAROUND_CFLAGS list is constructed based on running tests on -the target compiler, and the results may not be valid for the host -compiler. - -The only relevant workaround required for the host compiler is --Wno-stringop-truncation, which is needed to avoid a spurious compiler -warning for a totally correct usage of strncpy() in util/elf2efi.c. - -Duplicating the workaround tests for the host compiler is messy, as is -conditionally applying __attribute__((nonstring)). Fix instead by -disapplying WORKAROUND_CFLAGS for the host compiler, and using -memcpy() with an explicitly calculated length instead of strncpy() in -util/elf2efi.c. - -Reported-by: Ignat Korchagin -Reported-by: Christopher Clark -Signed-off-by: Michael Brown -Signed-off-by: Bruce Rogers ---- - src/Makefile.housekeeping | 2 +- - src/util/elf2efi.c | 6 +++++- - 2 files changed, 6 insertions(+), 2 deletions(-) - -diff --git a/roms/ipxe/src/Makefile.housekeeping b/roms/ipxe/src/Makefile.housekeeping -index d94eb1454c9168545c933ec6e900..9c33cc08c4db1bbd0f9966924fce 100644 ---- a/roms/ipxe/src/Makefile.housekeeping -+++ b/roms/ipxe/src/Makefile.housekeeping -@@ -455,7 +455,7 @@ endif - CFLAGS += $(WORKAROUND_CFLAGS) $(EXTRA_CFLAGS) - ASFLAGS += $(WORKAROUND_ASFLAGS) $(EXTRA_ASFLAGS) - LDFLAGS += $(WORKAROUND_LDFLAGS) $(EXTRA_LDFLAGS) --HOST_CFLAGS += $(WORKAROUND_CFLAGS) -O2 -g -+HOST_CFLAGS += -O2 -g - - # Inhibit -Werror if NO_WERROR is specified on make command line - # -diff --git a/roms/ipxe/src/util/elf2efi.c b/roms/ipxe/src/util/elf2efi.c -index 2c5b9df8aae853bfce4d5d3bae89..bcd53c9afda7880d42ec80c07f17 100644 ---- a/roms/ipxe/src/util/elf2efi.c -+++ b/roms/ipxe/src/util/elf2efi.c -@@ -458,6 +458,7 @@ static struct pe_section * process_section ( struct elf_file *elf, - struct pe_header *pe_header ) { - struct pe_section *new; - const char *name; -+ size_t name_len; - size_t section_memsz; - size_t section_filesz; - unsigned long code_start; -@@ -494,7 +495,10 @@ static struct pe_section * process_section ( struct elf_file *elf, - memset ( new, 0, sizeof ( *new ) + section_filesz ); - - /* Fill in section header details */ -- strncpy ( ( char * ) new->hdr.Name, name, sizeof ( new->hdr.Name ) ); -+ name_len = strlen ( name ); -+ if ( name_len > sizeof ( new->hdr.Name ) ) -+ name_len = sizeof ( new->hdr.Name ); -+ memcpy ( new->hdr.Name, name, name_len ); - new->hdr.Misc.VirtualSize = section_memsz; - new->hdr.VirtualAddress = shdr->sh_addr; - new->hdr.SizeOfRawData = section_filesz; diff --git a/Enable-cross-compile-prefix-for-C-compil.patch b/Enable-cross-compile-prefix-for-C-compil.patch deleted file mode 100644 index 9c7d26de..00000000 --- a/Enable-cross-compile-prefix-for-C-compil.patch +++ /dev/null @@ -1,30 +0,0 @@ -From: Bruce Rogers -Date: Fri, 1 Nov 2019 19:41:52 -0600 -Subject: Enable cross compile prefix for C compiler invocation - -Signed-off-by: Bruce Rogers ---- - Makefile | 5 +++-- - 1 file changed, 3 insertions(+), 2 deletions(-) - -diff --git a/roms/qboot/Makefile b/roms/qboot/Makefile -index adbf1b319e4a7bee78e2f95c5e51..cdde20fc37b13a1877668cd20e2f 100644 ---- a/roms/qboot/Makefile -+++ b/roms/qboot/Makefile -@@ -1,3 +1,4 @@ -+CROSS_COMPILE ?= - obj-y = code16.o entry.o main.o string.o printf.o cstart.o fw_cfg.o - obj-y += linuxboot.o malloc.o tables.o hwsetup.o pci.o code32seg.o - obj-y += mptable.o -@@ -25,9 +26,9 @@ autodepend-flags = -MMD -MF .deps/cc-$(patsubst %/,%,$(dir $*))-$(notdir $*).d - - .PRECIOUS: %.o - %.o: %.c -- $(CC) $(CFLAGS) $(BIOS_CFLAGS) $($@-cflags) -c -s $< -o $@ -+ $(CROSS_COMPILE)$(CC) $(CFLAGS) $(BIOS_CFLAGS) $($@-cflags) -c -s $< -o $@ - %.o: %.S -- $(CC) $(CFLAGS) $(BIOS_CFLAGS) -c -s $< -o $@ -+ $(CROSS_COMPILE)$(CC) $(CFLAGS) $(BIOS_CFLAGS) -c -s $< -o $@ - - bios.bin.elf: $(obj-y) flat.lds - $(LD) -T flat.lds -o bios.bin.elf $(obj-y) diff --git a/Fix-s-directive-argument-is-null-error.patch b/Fix-s-directive-argument-is-null-error.patch deleted file mode 100644 index 712d17f1..00000000 --- a/Fix-s-directive-argument-is-null-error.patch +++ /dev/null @@ -1,35 +0,0 @@ -From: Valentine Barshak -Date: Sun, 9 Jun 2019 13:30:11 +0300 -Subject: Fix "'%s' directive argument is null" error - -Git-commit: 412acd7854de10e7194f362a6b1a3257a17974f7 -References: bsc#1121464 - -Use '%p' directive, and print handle's address if the address is null -and the handle doesn't have a name. This fixes the following -compilation error: - - interface/efi/efi_debug.c:334:3: error: '%s' directive - argument is null [-Werror=format-overflow=] - -Signed-off-by: Valentine Barshak -Signed-off-by: Michael Brown -Signed-off-by: Bruce Rogers ---- - src/interface/efi/efi_debug.c | 3 +-- - 1 file changed, 1 insertion(+), 2 deletions(-) - -diff --git a/roms/ipxe/src/interface/efi/efi_debug.c b/roms/ipxe/src/interface/efi/efi_debug.c -index 8ea0a822d044caca088c64ca2407..de9b1af5579cfddba1b55788b7b6 100644 ---- a/roms/ipxe/src/interface/efi/efi_debug.c -+++ b/roms/ipxe/src/interface/efi/efi_debug.c -@@ -331,8 +331,7 @@ void dbg_efi_protocols ( EFI_HANDLE handle ) { - - /* Sanity check */ - if ( ! handle ) { -- printf ( "HANDLE %s could not retrieve protocols\n", -- efi_handle_name ( handle ) ); -+ printf ( "HANDLE %p could not retrieve protocols\n", handle ); - return; - } - diff --git a/Make-char-muxer-more-robust-wrt-small-FI.patch b/Make-char-muxer-more-robust-wrt-small-FI.patch index 9acf1878..7a6177d6 100644 --- a/Make-char-muxer-more-robust-wrt-small-FI.patch +++ b/Make-char-muxer-more-robust-wrt-small-FI.patch @@ -83,7 +83,7 @@ index 6f980bb83647da13c62f514391b3..094bc6703a3febdf5fefb7c0024f 100644 * set of muxes */ diff --git a/chardev/char.c b/chardev/char.c -index 77e7ec814f2196d8352e2f3ec75e..bcdec537e8753025b715e75214e6 100644 +index aa4282164acabbba58a6eea76b8c..9add6ca377e402f5ce3215e4934d 100644 --- a/chardev/char.c +++ b/chardev/char.c @@ -22,6 +22,7 @@ @@ -95,10 +95,10 @@ index 77e7ec814f2196d8352e2f3ec75e..bcdec537e8753025b715e75214e6 100644 #include "qemu/cutils.h" #include "monitor/monitor.h" diff --git a/chardev/chardev-internal.h b/chardev/chardev-internal.h -index f4d0429763bc28438e6cd6e7de1a..fc6cd39eb2d98af15aec25642438 100644 +index aba0240759ebf938cf391d89edb8..fb3957b771f9e24547619fd45669 100644 --- a/chardev/chardev-internal.h +++ b/chardev/chardev-internal.h -@@ -36,6 +36,9 @@ typedef struct MuxChardev { +@@ -36,6 +36,9 @@ struct MuxChardev { Chardev parent; CharBackend *backends[MAX_MUX]; CharBackend chr; @@ -121,7 +121,7 @@ index eecdc615ee1c6c64060452ac837d..c052f101e89c193af1effa9c6fa5 100644 #include "sysemu/sysemu.h" #include "chardev/char.h" diff --git a/tests/test-char.c b/tests/test-char.c -index d35cc839bc60db1884c3f265629b..51635ba059ef2302608459e84a65 100644 +index 9196e566e9ba671ed268a3178845..5d84a777738abfb28de151930c46 100644 --- a/tests/test-char.c +++ b/tests/test-char.c @@ -1,3 +1,4 @@ diff --git a/Make-installed-scripts-explicitly-python.patch b/Make-installed-scripts-explicitly-python.patch index 0bb7abc9..d4fcfc3f 100644 --- a/Make-installed-scripts-explicitly-python.patch +++ b/Make-installed-scripts-explicitly-python.patch @@ -13,7 +13,7 @@ Signed-off-by: Bruce Rogers 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/scripts/analyze-migration.py b/scripts/analyze-migration.py -index 95838cbff3f00f1ba097ee032032..d5f6c67bf1f7305461bb536f57b1 100755 +index d7177b212c86e826303bd93e74cb..502ae14111aa328e549b70ac66e7 100755 --- a/scripts/analyze-migration.py +++ b/scripts/analyze-migration.py @@ -1,4 +1,4 @@ diff --git a/Makefile-Don-t-check-pc-bios-as-pre-requ.patch b/Makefile-Don-t-check-pc-bios-as-pre-requ.patch new file mode 100644 index 00000000..3c1ee412 --- /dev/null +++ b/Makefile-Don-t-check-pc-bios-as-pre-requ.patch @@ -0,0 +1,25 @@ +From: Bruce Rogers +Date: Mon, 19 Oct 2020 15:05:15 -0600 +Subject: Makefile: Don't check pc-bios as pre-requisite for config-host.mak + +This check isn't needed when we know this is a fresh build, which of +course it is when we are building the qemu packages. + +Signed-off-by: Bruce Rogers +--- + Makefile | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/Makefile b/Makefile +index 76dbb917f5cd3085ad93cb634c14..2e4808da4de018be61545ec681e3 100644 +--- a/Makefile ++++ b/Makefile +@@ -105,7 +105,7 @@ x := $(shell rm -rf meson-private meson-info meson-logs) + endif + + # 1. ensure config-host.mak is up-to-date +-config-host.mak: $(SRC_PATH)/configure $(SRC_PATH)/pc-bios $(SRC_PATH)/VERSION ++config-host.mak: $(SRC_PATH)/configure $(SRC_PATH)/VERSION + @echo config-host.mak is out-of-date, running configure + @if test -f meson-private/coredata.dat; then \ + ./config.status --skip-meson; \ diff --git a/PPC-KVM-Disable-mmu-notifier-check.patch b/PPC-KVM-Disable-mmu-notifier-check.patch index d4413a7c..65bf621e 100644 --- a/PPC-KVM-Disable-mmu-notifier-check.patch +++ b/PPC-KVM-Disable-mmu-notifier-check.patch @@ -10,14 +10,14 @@ KVM guests work there, even if possibly racy in some odd circumstances. Signed-off-by: Bruce Rogers --- - exec.c | 2 ++ + softmmu/physmem.c | 2 ++ 1 file changed, 2 insertions(+) -diff --git a/exec.c b/exec.c -index 6f381f98e2a01c432c28c0c094db..0cec6a514147a1b90e2056f3eac4 100644 ---- a/exec.c -+++ b/exec.c -@@ -2328,11 +2328,13 @@ RAMBlock *qemu_ram_alloc_from_fd(ram_addr_t size, MemoryRegion *mr, +diff --git a/softmmu/physmem.c b/softmmu/physmem.c +index 3027747c0302c0904db2568eabb8..402a33cb95d898db6a951563c168 100644 +--- a/softmmu/physmem.c ++++ b/softmmu/physmem.c +@@ -1957,11 +1957,13 @@ RAMBlock *qemu_ram_alloc_from_fd(ram_addr_t size, MemoryRegion *mr, return NULL; } diff --git a/Raise-soft-address-space-limit-to-hard-l.patch b/Raise-soft-address-space-limit-to-hard-l.patch index b3c818da..6af5e1cc 100644 --- a/Raise-soft-address-space-limit-to-hard-l.patch +++ b/Raise-soft-address-space-limit-to-hard-l.patch @@ -16,7 +16,7 @@ Signed-off-by: Bruce Rogers 1 file changed, 12 insertions(+) diff --git a/softmmu/vl.c b/softmmu/vl.c -index 4eb9d1f7fd54f27583bfb1ce9407..c6e7530b012db308d0c607ec749d 100644 +index e6e0ad5a9259038413f855ef6374..eaab7bf13e8c51e93b3d0f348f06 100644 --- a/softmmu/vl.c +++ b/softmmu/vl.c @@ -34,6 +34,7 @@ @@ -27,7 +27,7 @@ index 4eb9d1f7fd54f27583bfb1ce9407..c6e7530b012db308d0c607ec749d 100644 #include "sysemu/seccomp.h" #include "sysemu/tcg.h" #include "sysemu/xen.h" -@@ -2868,6 +2869,7 @@ void qemu_init(int argc, char **argv, char **envp) +@@ -2899,6 +2900,7 @@ void qemu_init(int argc, char **argv, char **envp) BlockdevOptionsQueue bdo_queue = QSIMPLEQ_HEAD_INITIALIZER(bdo_queue); QemuPluginList plugin_list = QTAILQ_HEAD_INITIALIZER(plugin_list); int mem_prealloc = 0; /* force preallocation of physical target memory */ @@ -35,7 +35,7 @@ index 4eb9d1f7fd54f27583bfb1ce9407..c6e7530b012db308d0c607ec749d 100644 os_set_line_buffering(); -@@ -2879,6 +2881,16 @@ void qemu_init(int argc, char **argv, char **envp) +@@ -2910,6 +2912,16 @@ void qemu_init(int argc, char **argv, char **envp) qemu_mutex_lock_iothread(); diff --git a/Revert-qht-constify-qht_statistics_init.patch b/Revert-qht-constify-qht_statistics_init.patch index 809f9397..34d78525 100644 --- a/Revert-qht-constify-qht_statistics_init.patch +++ b/Revert-qht-constify-qht_statistics_init.patch @@ -27,10 +27,10 @@ index 758c7ac6c89978ee762e9d946584..2e2d6bca932c83bea993850b60f8 100644 /** * qht_statistics_destroy - Destroy a &struct qht_stats diff --git a/util/qht.c b/util/qht.c -index 67e5d5b9163f5f33e41f76a7cd26..a5a332d98998209875a47ebfdeee 100644 +index 079605121b1452dac9937b0e6137..cfc2c60639af8f7905aae51c53bb 100644 --- a/util/qht.c +++ b/util/qht.c -@@ -900,9 +900,9 @@ bool qht_resize(struct qht *ht, size_t n_elems) +@@ -901,9 +901,9 @@ bool qht_resize(struct qht *ht, size_t n_elems) } /* pass @stats to qht_statistics_destroy() when done */ @@ -41,8 +41,8 @@ index 67e5d5b9163f5f33e41f76a7cd26..a5a332d98998209875a47ebfdeee 100644 + struct qht_map *map; int i; - map = atomic_rcu_read(&ht->map); -@@ -919,8 +919,8 @@ void qht_statistics_init(const struct qht *ht, struct qht_stats *stats) + map = qatomic_rcu_read(&ht->map); +@@ -920,8 +920,8 @@ void qht_statistics_init(const struct qht *ht, struct qht_stats *stats) stats->head_buckets = map->n_buckets; for (i = 0; i < map->n_buckets; i++) { diff --git a/Revert-roms-efirom-tests-uefi-test-tools.patch b/Revert-roms-efirom-tests-uefi-test-tools.patch new file mode 100644 index 00000000..8e41ac76 --- /dev/null +++ b/Revert-roms-efirom-tests-uefi-test-tools.patch @@ -0,0 +1,39 @@ +From: Bruce Rogers +Date: Mon, 14 Sep 2020 14:15:00 -0600 +Subject: Revert "roms/efirom, tests/uefi-test-tools: update edk2's own + submodules first" + +This reverts commit ec87b5daca761039bbcf781eedbe4987f790836f. + +No need. In our build system submodules are checked out. + +Signed-off-by: Bruce Rogers +--- + roms/Makefile | 1 - + tests/uefi-test-tools/Makefile | 1 - + 2 files changed, 2 deletions(-) + +diff --git a/roms/Makefile b/roms/Makefile +index bbbe2eff895868b8a5781f6ca397..a91ffad548af3e95410ce6712fb3 100644 +--- a/roms/Makefile ++++ b/roms/Makefile +@@ -151,7 +151,6 @@ build-efi-roms: build-pxe-roms + # efirom + # + edk2-basetools: +- cd edk2/BaseTools && git submodule update --init --force + $(MAKE) -C edk2/BaseTools \ + PYTHON_COMMAND=$${EDK2_PYTHON_COMMAND:-python3} \ + EXTRA_OPTFLAGS='$(EDK2_BASETOOLS_OPTFLAGS)' \ +diff --git a/tests/uefi-test-tools/Makefile b/tests/uefi-test-tools/Makefile +index 471f0de981090b3d419b8bc7890c..1dcddcdbbabf1c7dbea9c233d0ef 100644 +--- a/tests/uefi-test-tools/Makefile ++++ b/tests/uefi-test-tools/Makefile +@@ -99,7 +99,6 @@ Build/bios-tables-test.%.efi: build-edk2-tools + +./build.sh $(edk2_dir) BiosTablesTest $* $@ + + build-edk2-tools: +- cd $(edk2_dir)/BaseTools && git submodule update --init --force + $(MAKE) -C $(edk2_dir)/BaseTools \ + PYTHON_COMMAND=$${EDK2_PYTHON_COMMAND:-python3} \ + EXTRA_OPTFLAGS='$(EDK2_BASETOOLS_OPTFLAGS)' \ diff --git a/Switch-order-of-libraries-for-mpath-supp.patch b/Switch-order-of-libraries-for-mpath-supp.patch deleted file mode 100644 index e9cfe1c9..00000000 --- a/Switch-order-of-libraries-for-mpath-supp.patch +++ /dev/null @@ -1,36 +0,0 @@ -From: Bruce Rogers -Date: Fri, 3 Nov 2017 11:12:40 -0600 -Subject: Switch order of libraries for mpath support - -Signed-off-by: Bruce Rogers ---- - Makefile | 2 +- - configure | 2 +- - 2 files changed, 2 insertions(+), 2 deletions(-) - -diff --git a/Makefile b/Makefile -index 13dd708c4af52df3bc932812fc60..e7116289550f169a65f8aecfeccf 100644 ---- a/Makefile -+++ b/Makefile -@@ -613,7 +613,7 @@ fsdev/virtfs-proxy-helper$(EXESUF): fsdev/virtfs-proxy-helper.o fsdev/9p-marshal - - scsi/qemu-pr-helper$(EXESUF): scsi/qemu-pr-helper.o scsi/utils.o $(authz-obj-y) $(crypto-obj-y) $(io-obj-y) $(qom-obj-y) $(COMMON_LDADDS) - ifdef CONFIG_MPATH --scsi/qemu-pr-helper$(EXESUF): LIBS += -ludev -lmultipath -lmpathpersist -+scsi/qemu-pr-helper$(EXESUF): LIBS += -ludev -lmpathpersist -lmultipath - endif - - qemu-img-cmds.h: $(SRC_PATH)/qemu-img-cmds.hx $(SRC_PATH)/scripts/hxtool -diff --git a/configure b/configure -index 2acc4d1465f8165ae3a238784231..a47fda0fb5267e153a3f1f3ee3bc 100755 ---- a/configure -+++ b/configure -@@ -4100,7 +4100,7 @@ int main(void) { - return 0; - } - EOF -- if compile_prog "" "-ludev -lmultipath -lmpathpersist" ; then -+ if compile_prog "" "-ludev -lmpathpersist -lmultipath" ; then - mpathpersist=yes - mpathpersist_new_api=yes - else diff --git a/XXX-dont-dump-core-on-sigabort.patch b/XXX-dont-dump-core-on-sigabort.patch index f484745e..c6f29e23 100644 --- a/XXX-dont-dump-core-on-sigabort.patch +++ b/XXX-dont-dump-core-on-sigabort.patch @@ -8,7 +8,7 @@ Signed-off-by: Bruce Rogers 1 file changed, 6 insertions(+) diff --git a/linux-user/signal.c b/linux-user/signal.c -index 8cf51ffecde659742b7aac6dfaae..08cb813a8a1782ed4b845d716ce2 100644 +index 73de934c65117c5caa0f2dabe8e2..be83f5e4030f2a6e90606f762396 100644 --- a/linux-user/signal.c +++ b/linux-user/signal.c @@ -632,6 +632,10 @@ static void QEMU_NORETURN dump_core_and_abort(int target_sig) diff --git a/acpi_piix4-Fix-migration-from-SLE11-SP2.patch b/acpi_piix4-Fix-migration-from-SLE11-SP2.patch index 7a762f49..2e823c21 100644 --- a/acpi_piix4-Fix-migration-from-SLE11-SP2.patch +++ b/acpi_piix4-Fix-migration-from-SLE11-SP2.patch @@ -16,10 +16,10 @@ Signed-off-by: Andreas Färber 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hw/acpi/piix4.c b/hw/acpi/piix4.c -index 26bac4f16c18a7d32b3821e5e3e6..81c2a3410319e6236c1a09b07bb1 100644 +index 669be5bbf61ecc9308bb4b25e2b8..bd1c7cc447bda59190590cb4551f 100644 --- a/hw/acpi/piix4.c +++ b/hw/acpi/piix4.c -@@ -275,7 +275,7 @@ static bool piix4_vmstate_need_smbus(void *opaque, int version_id) +@@ -276,7 +276,7 @@ static bool piix4_vmstate_need_smbus(void *opaque, int version_id) static const VMStateDescription vmstate_acpi = { .name = "piix4_pm", .version_id = 3, diff --git a/build-Be-explicit-about-fcommon-compiler.patch b/build-Be-explicit-about-fcommon-compiler.patch deleted file mode 100644 index 1d999033..00000000 --- a/build-Be-explicit-about-fcommon-compiler.patch +++ /dev/null @@ -1,30 +0,0 @@ -From: Bruce Rogers -Date: Wed, 6 May 2020 15:03:02 -0600 -Subject: [build] Be explicit about -fcommon compiler directive - -Git-commit: f982a712979619dbae2c6e0d741757e2ce94be11 -References: boo#1171140 - -gcc10 switched default behavior from -fcommon to -fno-common. Since -"__shared" relies on the legacy behavior, explicitly specify it. - -Signed-off-by: Bruce Rogers -Modified-by: Michael Brown -Signed-off-by: Michael Brown -Signed-off-by: Bruce Rogers ---- - src/Makefile.housekeeping | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/roms/ipxe/src/Makefile.housekeeping b/roms/ipxe/src/Makefile.housekeeping -index 4b09e81f0b1eb82e79f6af11986d..f6f3e29248d3e59b76de690aeb0c 100644 ---- a/roms/ipxe/src/Makefile.housekeeping -+++ b/roms/ipxe/src/Makefile.housekeeping -@@ -422,6 +422,7 @@ CFLAGS += -Os - CFLAGS += -g - ifeq ($(CCTYPE),gcc) - CFLAGS += -ffreestanding -+CFLAGS += -fcommon - CFLAGS += -Wall -W -Wformat-nonliteral - HOST_CFLAGS += -Wall -W -Wformat-nonliteral - endif diff --git a/build-Workaround-compilation-error-with-.patch b/build-Workaround-compilation-error-with-.patch deleted file mode 100644 index 4154c05f..00000000 --- a/build-Workaround-compilation-error-with-.patch +++ /dev/null @@ -1,54 +0,0 @@ -From: Valentine Barshak -Date: Mon, 22 Jul 2019 10:47:50 +0100 -Subject: [build] Workaround compilation error with gcc 9.1 - -Git-commit: 1dd56dbd11082fb622c2ed21cfaced4f47d798a6 -References: bsc#1121464 - -Compiling with gcc 9.1 generates lots of "taking address of packed -member of ... may result in an unaligned pointer value" warnings. - -Some of these warnings are genuine, and indicate correctly that parts -of iPXE currently require the CPU (or runtime environment) to support -unaligned accesses. For example: the TCP/IP receive data path will -attempt to access 32-bit fields that may not be aligned to a 32-bit -boundary. - -Other warnings are either spurious (such as when the pointer is to a -variable-length byte array, which can have no alignment requirement -anyway) or unhelpful (such as when the pointer is used solely to -provide a debug colour value for the DBGC() macro). - -There appears to be no easy way to silence the spurious warnings. -Since the ability to perform unaligned accesses is already a -requirement for iPXE, work around the problem by silencing this class -of warnings. - -Signed-off-by: Valentine Barshak -Modified-by: Michael Brown -Signed-off-by: Michael Brown -Signed-off-by: Bruce Rogers ---- - src/Makefile.housekeeping | 9 +++++++++ - 1 file changed, 9 insertions(+) - -diff --git a/roms/ipxe/src/Makefile.housekeeping b/roms/ipxe/src/Makefile.housekeeping -index f8334921b8b93cbd03f0a0de9910..4b09e81f0b1eb82e79f6af11986d 100644 ---- a/roms/ipxe/src/Makefile.housekeeping -+++ b/roms/ipxe/src/Makefile.housekeeping -@@ -185,6 +185,15 @@ WNST_TEST = $(CC) -Wstringop-truncation -x c -c /dev/null -o /dev/null \ - >/dev/null 2>&1 - WNST_FLAGS := $(shell $(WNST_TEST) && $(ECHO) '-Wno-stringop-truncation') - WORKAROUND_CFLAGS += $(WNST_FLAGS) -+ -+# gcc 9.1 generates warnings for taking address of packed member which -+# may result in an unaligned pointer value. Inhibit the warnings. -+# -+WNAPM_TEST = $(CC) -Wno-address-of-packed-member -x c -c /dev/null \ -+ -o /dev/null >/dev/null 2>&1 -+WNAPM_FLAGS := $(shell $(WNAPM_TEST) && \ -+ $(ECHO) '-Wno-address-of-packed-member') -+WORKAROUND_CFLAGS += $(WNAPM_FLAGS) - endif - - # Some versions of gas choke on division operators, treating them as diff --git a/bundles.tar.xz b/bundles.tar.xz index b655d886..6fb9b41d 100644 --- a/bundles.tar.xz +++ b/bundles.tar.xz @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:9544eda1805358a45c48f47fa30a2759ccc79bbfb4f35ac3b4644d228db99858 -size 38124 +oid sha256:1a1a89b8155d9fe84ce29e1c725fd7523c807b8a30e801a297a89901a1817058 +size 39184 diff --git a/config.sh b/config.sh index fe4234d7..0ceb0352 100644 --- a/config.sh +++ b/config.sh @@ -7,12 +7,12 @@ # 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=v5.1.0 +GIT_UPSTREAM_COMMIT_ISH=v5.2.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=0 +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. @@ -28,7 +28,7 @@ BUNDLE_DIR=/dev/shm/qemu-factory-bundle-dir NUMBERED_PATCHES=0 PATCH_RANGE=1000 -REPO_COUNT=26 +REPO_COUNT=36 # Perhaps we need to instead use the terminal local dirname as the index # and store the ~/git/ as a separate VARIABLE @@ -55,12 +55,22 @@ LOCAL_REPO_MAP=( ~/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-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-BrotliCustomDecompressLib-brotli-research-esaxx + ~/git/qemu-edk2-BrotliCustomDecompressLib-brotli-research-libdivsufsort + ~/git/qemu-edk2-BrotliCompress-brotli-research-esaxx + ~/git/qemu-edk2-BrotliCompress-brotli-research-libdivsufsort ) # TEMPORARY! FOR NOW WE REQUIRE THESE LOCALLY TO DO WORK ON PACKAGE @@ -94,12 +104,23 @@ PATCH_PATH_MAP=( "roms/seabios-hppa/" "roms/u-boot-sam460ex/" "roms/QemuMacDrivers/" + "meson/" "tests/fp/berkeley-softfloat-3/" "tests/fp/berkeley-testfloat-3/" "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/MdeModulePkg/Library/BrotliCustomDecompressLib/brotli/research/esaxx/" + "roms/edk2/MdeModulePkg/Library/BrotliCustomDecompressLib/brotli/research/libdivsufsort/" + "roms/edk2/MdeModulePkg/Library/BrotliCompress/brotli/research/esaxx/" + "roms/edk2/MdeModulePkg/Library/BrotliCompress/brotli/research/libdivsufsort/" + ) # Zero based numbering, so we subtract 1 here: diff --git a/configure-only-populate-roms-if-softmmu.patch b/configure-only-populate-roms-if-softmmu.patch index 58748e22..3d4d3dc3 100644 --- a/configure-only-populate-roms-if-softmmu.patch +++ b/configure-only-populate-roms-if-softmmu.patch @@ -12,10 +12,10 @@ Signed-off-by: Bruce Rogers 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/configure b/configure -index a47fda0fb5267e153a3f1f3ee3bc..3b3c5dc2f93b87a91d247079f4c8 100755 +index 18c26e0389741643748c70ac7788..b9c4fec9793d2815e52479779d10 100755 --- a/configure +++ b/configure -@@ -6770,7 +6770,7 @@ if { test "$cpu" = "i386" || test "$cpu" = "x86_64"; } && \ +@@ -5860,7 +5860,7 @@ if { test "$cpu" = "i386" || test "$cpu" = "x86_64"; } && \ fi # Only build s390-ccw bios if we're on s390x and the compiler has -march=z900 diff --git a/configure-remove-pkgversion-from-CONFIG_.patch b/configure-remove-pkgversion-from-CONFIG_.patch index 470469a7..fc52ea5b 100644 --- a/configure-remove-pkgversion-from-CONFIG_.patch +++ b/configure-remove-pkgversion-from-CONFIG_.patch @@ -18,10 +18,10 @@ Signed-off-by: Bruce Rogers 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/configure b/configure -index 3b3c5dc2f93b87a91d247079f4c8..4340229b47a3294307a08df3339e 100755 +index b9c4fec9793d2815e52479779d10..379a03b111d9e7a80e5717782953 100755 --- a/configure +++ b/configure -@@ -7229,7 +7229,7 @@ fi +@@ -6047,7 +6047,7 @@ echo "TARGET_DIRS=$target_list" >> $config_host_mak if test "$modules" = "yes"; then # $shacmd can generate a hash started with digit, which the compiler doesn't # like as an symbol. So prefix it with an underscore diff --git a/docs-add-SUSE-support-statements-to-html.patch b/docs-add-SUSE-support-statements-to-html.patch index cbb31372..31f07f06 100644 --- a/docs-add-SUSE-support-statements-to-html.patch +++ b/docs-add-SUSE-support-statements-to-html.patch @@ -14,12 +14,12 @@ Signed-off-by: Bruce Rogers 1 file changed, 1 insertion(+) diff --git a/docs/index.html.in b/docs/index.html.in -index 6736fa4360cfb8c40cbab2a362b0..ad431321ee858bcbe3e237e687b5 100644 +index 33db4396ac83b95b60ef16580d31..ba157bf3c8dcace7149eabf171af 100644 --- a/docs/index.html.in +++ b/docs/index.html.in @@ -7,6 +7,7 @@ -

QEMU @@VERSION@@ Documentation

+

QEMU @VERSION@ Documentation

    +
  • SUSE Support Statements
  • System Emulation User's Guide
  • diff --git a/docs-fix-trace-docs-build-with-sphinx-3..patch b/docs-fix-trace-docs-build-with-sphinx-3..patch deleted file mode 100644 index d5f5b843..00000000 --- a/docs-fix-trace-docs-build-with-sphinx-3..patch +++ /dev/null @@ -1,62 +0,0 @@ -From: =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= -Date: Tue, 14 Jul 2020 17:26:59 +0100 -Subject: docs: fix trace docs build with sphinx 3.1.1 -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Git-commit: 0000000000000000000000000000000000000000 -Include-If: %if 0%{?suse_version} > 1500 - -In Fedora 33 rawhide, we now have sphinx 3.1.1, as opposed -to previous 2.2.2. This new version generates a warning on -the source: - -docs/qemu-option-trace.rst.inc:4:Malformed option description - '[enable=]PATTERN', should look like "opt", "-opt args", - "--opt args", "/opt args" or "+opt args" - -This turns into an error when QEMU passes -W to sphinx-build - -Strangely the previous 2.2.2 code has the exact same logic -for checking the syntax, but it is not being triggered. While -it is only complaining about the first option, I changed all -the options to give consistency. - -Signed-off-by: Daniel P. Berrangé -Signed-off-by: Bruce Rogers ---- - docs/qemu-option-trace.rst.inc | 6 +++--- - 1 file changed, 3 insertions(+), 3 deletions(-) - -diff --git a/docs/qemu-option-trace.rst.inc b/docs/qemu-option-trace.rst.inc -index 7e09773a9c518f6a47e9262b66c6..e79b0b43fcb3f5a05ad281109e6f 100644 ---- a/docs/qemu-option-trace.rst.inc -+++ b/docs/qemu-option-trace.rst.inc -@@ -1,7 +1,7 @@ - - Specify tracing options. - --.. option:: [enable=]PATTERN -+.. option:: -trace [enable=]PATTERN - - Immediately enable events matching *PATTERN* - (either event name or a globbing pattern). This option is only -@@ -11,7 +11,7 @@ Specify tracing options. - - Use :option:`-trace help` to print a list of names of trace points. - --.. option:: events=FILE -+.. option:: -trace events=FILE - - Immediately enable events listed in *FILE*. - The file must contain one event name (as listed in the ``trace-events-all`` -@@ -19,7 +19,7 @@ Specify tracing options. - available if QEMU has been compiled with the ``simple``, ``log`` or - ``ftrace`` tracing backend. - --.. option:: file=FILE -+.. option:: -trace file=FILE - - Log output traces to *FILE*. - This option is only available if QEMU has been compiled with diff --git a/ensure-headers-included-are-compatible-w.patch b/ensure-headers-included-are-compatible-w.patch deleted file mode 100644 index 724b9271..00000000 --- a/ensure-headers-included-are-compatible-w.patch +++ /dev/null @@ -1,52 +0,0 @@ -From: Bruce Rogers -Date: Fri, 1 Nov 2019 19:32:57 -0600 -Subject: ensure headers included are compatible with freestanding mode - -Certain standard headers are designated for use in freestanding mode -while others are prohibited. To conform to these rules, use -instead of as well as switch one reference to -the "string.h" implemented in project. - -Signed-off-by: Bruce Rogers ---- - include/bios.h | 2 +- - malloc.c | 2 +- - pci.c | 2 +- - 3 files changed, 3 insertions(+), 3 deletions(-) - -diff --git a/roms/qboot/include/bios.h b/roms/qboot/include/bios.h -index f36638b977864c220bf3ed9a612f..7f8f677671d7b47e7c07f800646c 100644 ---- a/roms/qboot/include/bios.h -+++ b/roms/qboot/include/bios.h -@@ -1,7 +1,7 @@ - #ifndef BIOS_H_ - #define BIOS_H_ - --#include -+#include - #include - #include - -diff --git a/roms/qboot/malloc.c b/roms/qboot/malloc.c -index 8738373b774358425b2767fc7e9f..bd0ac0f23ee1e3c4a8f5e003ff1d 100644 ---- a/roms/qboot/malloc.c -+++ b/roms/qboot/malloc.c -@@ -1,4 +1,4 @@ --#include -+#include - #include "string.h" - #include "bios.h" - -diff --git a/roms/qboot/pci.c b/roms/qboot/pci.c -index 65c9e81793ab7aad9b5d1679e78e..63ebda6a0580463ea2b562317cec 100644 ---- a/roms/qboot/pci.c -+++ b/roms/qboot/pci.c -@@ -1,7 +1,7 @@ - #include "bios.h" - #include "ioport.h" - #include "pci.h" --#include -+#include "string.h" - - static uint16_t addend; - static uint8_t bus, bridge_head; diff --git a/golan-Add-explicit-type-casts-for-nodnic.patch b/golan-Add-explicit-type-casts-for-nodnic.patch deleted file mode 100644 index f92de54b..00000000 --- a/golan-Add-explicit-type-casts-for-nodnic.patch +++ /dev/null @@ -1,43 +0,0 @@ -From: Michael Brown -Date: Sat, 27 Jun 2020 20:43:32 +0100 -Subject: [golan] Add explicit type casts for nodnic_queue_pair_type - -Git-commit: 8a1d66c7aec020f3e90254ed2fa55ecd9494fcc3 -References: boo#1171139 - -GCC 10 emits warnings for implicit conversions of enumerated types. - -The flexboot_nodnic code defines nodnic_queue_pair_type with values -identical to those of ib_queue_pair_type, and implicitly casts between -them. Add an explicit cast to fix the warning. - -Signed-off-by: Michael Brown -Signed-off-by: Bruce Rogers ---- - src/drivers/infiniband/flexboot_nodnic.c | 6 ++++-- - 1 file changed, 4 insertions(+), 2 deletions(-) - -diff --git a/roms/ipxe/src/drivers/infiniband/flexboot_nodnic.c b/roms/ipxe/src/drivers/infiniband/flexboot_nodnic.c -index c13fcefc56866da67d701baa96b8..4463bb78458cbeadd962ed7909ef 100644 ---- a/roms/ipxe/src/drivers/infiniband/flexboot_nodnic.c -+++ b/roms/ipxe/src/drivers/infiniband/flexboot_nodnic.c -@@ -365,7 +365,8 @@ static int flexboot_nodnic_create_qp ( struct ib_device *ibdev, - goto qp_alloc_err; - } - -- status = nodnic_port_create_qp(&port->port_priv, qp->type, -+ status = nodnic_port_create_qp(&port->port_priv, -+ (nodnic_queue_pair_type) qp->type, - qp->send.num_wqes * sizeof(struct nodnic_send_wqbb), - qp->send.num_wqes, - qp->recv.num_wqes * sizeof(struct nodnic_recv_wqe), -@@ -406,7 +407,8 @@ static void flexboot_nodnic_destroy_qp ( struct ib_device *ibdev, - struct flexboot_nodnic_port *port = &flexboot_nodnic->port[ibdev->port - 1]; - struct flexboot_nodnic_queue_pair *flexboot_nodnic_qp = ib_qp_get_drvdata ( qp ); - -- nodnic_port_destroy_qp(&port->port_priv, qp->type, -+ nodnic_port_destroy_qp(&port->port_priv, -+ (nodnic_queue_pair_type) qp->type, - flexboot_nodnic_qp->nodnic_queue_pair); - - free(flexboot_nodnic_qp); diff --git a/hw-hyperv-vmbus-Fix-32bit-compilation.patch b/hw-hyperv-vmbus-Fix-32bit-compilation.patch deleted file mode 100644 index 514ff53a..00000000 --- a/hw-hyperv-vmbus-Fix-32bit-compilation.patch +++ /dev/null @@ -1,43 +0,0 @@ -From: Jon Doron -Date: Wed, 15 Jul 2020 11:43:26 +0300 -Subject: hw: hyperv: vmbus: Fix 32bit compilation -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Git-commit: 8b39aa90e90e9c04d07b0fbb583195237f3f11fe - -Fix 32-bit build error for vmbus: - - hw/hyperv/vmbus.c: In function ‘gpadl_iter_io’: - hw/hyperv/vmbus.c:383:13: error: cast to pointer from integer of different size [-Werror=int-to-pointer-cast] - 383 | p = (void *)(((uintptr_t)iter->map & TARGET_PAGE_MASK) | off_in_page); - | ^ - cc1: all warnings being treated as errors - -Fixes: 0d71f7082d7 ("vmbus: vmbus implementation") -Signed-off-by: Jon Doron -Tested-by: Aleksandar Markovic -Reviewed-by: Aleksandar Markovic -Message-Id: <20200715084326.678715-3-arilou@gmail.com> -[lv: updated with commit description from <20200906050113.2783642-1-richard.henderson@linaro.org>] -Signed-off-by: Laurent Vivier -Signed-off-by: Bruce Rogers ---- - hw/hyperv/vmbus.c | 3 ++- - 1 file changed, 2 insertions(+), 1 deletion(-) - -diff --git a/hw/hyperv/vmbus.c b/hw/hyperv/vmbus.c -index 34392e892af6228f270ec327563e..c28bb4201be449eb6dae4b0e0218 100644 ---- a/hw/hyperv/vmbus.c -+++ b/hw/hyperv/vmbus.c -@@ -383,7 +383,8 @@ static ssize_t gpadl_iter_io(GpadlIter *iter, void *buf, uint32_t len) - } - } - -- p = (void *)(((uintptr_t)iter->map & TARGET_PAGE_MASK) | off_in_page); -+ p = (void *)(uintptr_t)(((uintptr_t)iter->map & TARGET_PAGE_MASK) | -+ off_in_page); - if (iter->dir == DMA_DIRECTION_FROM_DEVICE) { - memcpy(p, buf, cplen); - } else { diff --git a/hw-intc-exynos4210_gic-provide-more-room.patch b/hw-intc-exynos4210_gic-provide-more-room.patch index b2a2c358..44f2a1b2 100644 --- a/hw-intc-exynos4210_gic-provide-more-room.patch +++ b/hw-intc-exynos4210_gic-provide-more-room.patch @@ -41,7 +41,7 @@ Signed-off-by: Bruce Rogers 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/hw/intc/exynos4210_gic.c b/hw/intc/exynos4210_gic.c -index 0aa3b843a9e045348b719cb4b8a4..83506dda3c9142350319d7f4dd5c 100644 +index bc73d1f1152438de04c252a2ec84..db58021ef62cdf8554d7e00e0761 100644 --- a/hw/intc/exynos4210_gic.c +++ b/hw/intc/exynos4210_gic.c @@ -291,8 +291,8 @@ static void exynos4210_gic_realize(DeviceState *dev, Error **errp) diff --git a/hw-smbios-handle-both-file-formats-regar.patch b/hw-smbios-handle-both-file-formats-regar.patch index 495bab14..0698c4aa 100644 --- a/hw-smbios-handle-both-file-formats-regar.patch +++ b/hw-smbios-handle-both-file-formats-regar.patch @@ -16,10 +16,10 @@ Signed-off-by: Bruce Rogers 1 file changed, 39 insertions(+), 4 deletions(-) diff --git a/hw/smbios/smbios.c b/hw/smbios/smbios.c -index f56082690437df2962681ea823d3..4ad74efc8e764429b5567c91d7ed 100644 +index 6a3d39793bc9dd13f6c6cc8c08e4..e3c9d92c1d60c0f791c5852f88e5 100644 --- a/hw/smbios/smbios.c +++ b/hw/smbios/smbios.c -@@ -962,6 +962,7 @@ void smbios_entry_add(QemuOpts *opts, Error **errp) +@@ -1040,6 +1040,7 @@ void smbios_entry_add(QemuOpts *opts, Error **errp) struct smbios_structure_header *header; int size; struct smbios_table *table; /* legacy mode only */ @@ -27,7 +27,7 @@ index f56082690437df2962681ea823d3..4ad74efc8e764429b5567c91d7ed 100644 if (!qemu_opts_validate(opts, qemu_smbios_file_opts, errp)) { return; -@@ -974,11 +975,21 @@ void smbios_entry_add(QemuOpts *opts, Error **errp) +@@ -1052,11 +1053,21 @@ void smbios_entry_add(QemuOpts *opts, Error **errp) } /* @@ -53,7 +53,7 @@ index f56082690437df2962681ea823d3..4ad74efc8e764429b5567c91d7ed 100644 header = (struct smbios_structure_header *)(smbios_tables + smbios_tables_len); -@@ -993,6 +1004,19 @@ void smbios_entry_add(QemuOpts *opts, Error **errp) +@@ -1071,6 +1082,19 @@ void smbios_entry_add(QemuOpts *opts, Error **errp) header->type); return; } @@ -73,7 +73,7 @@ index f56082690437df2962681ea823d3..4ad74efc8e764429b5567c91d7ed 100644 set_bit(header->type, have_binfile_bitmap); if (header->type == 4) { -@@ -1013,6 +1037,17 @@ void smbios_entry_add(QemuOpts *opts, Error **errp) +@@ -1091,6 +1115,17 @@ void smbios_entry_add(QemuOpts *opts, Error **errp) * delete the one we don't need from smbios_set_defaults(), * once we know which machine version has been requested. */ diff --git a/hw-usb-dev-mtp-Fix-GCC-9-build-warning.patch b/hw-usb-dev-mtp-Fix-GCC-9-build-warning.patch deleted file mode 100644 index a11d82d9..00000000 --- a/hw-usb-dev-mtp-Fix-GCC-9-build-warning.patch +++ /dev/null @@ -1,45 +0,0 @@ -From: Alistair Francis -Date: Sat, 4 May 2019 07:58:55 -0600 -Subject: hw/usb/dev-mtp: Fix GCC 9 build warning -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Fix this warning with GCC 9 on Fedora 30: -hw/usb/dev-mtp.c:1715:36: error: taking address of packed member of ‘struct ’ may result in an unaligned pointer value [-Werror=address-of-packed-member] - 1715 | dataset->filename); - | ~~~~~~~^~~~~~~~~~ - -Signed-off-by: Alistair Francis -Signed-off-by: Bruce Rogers ---- - hw/usb/dev-mtp.c | 13 +++++++++++++ - 1 file changed, 13 insertions(+) - -diff --git a/hw/usb/dev-mtp.c b/hw/usb/dev-mtp.c -index 15a2243101f8c465e038e26c6551..d4d3a388f2034d735a6595fdaa36 100644 ---- a/hw/usb/dev-mtp.c -+++ b/hw/usb/dev-mtp.c -@@ -1721,9 +1721,22 @@ static void usb_mtp_write_metadata(MTPState *s, uint64_t dlen) - assert(!s->write_pending); - assert(p != NULL); - -+/* -+ * We are about to access a packed struct. We are confident that the pointer -+ * address won't be unaligned, so we ignore GCC warnings. -+ */ -+#if defined(CONFIG_PRAGMA_DIAGNOSTIC_AVAILABLE) && QEMU_GNUC_PREREQ(9, 0) -+#pragma GCC diagnostic push -+#pragma GCC diagnostic ignored "-Waddress-of-packed-member" -+#endif -+ - filename = utf16_to_str(MIN(dataset->length, filename_chars), - dataset->filename); - -+#if defined(CONFIG_PRAGMA_DIAGNOSTIC_AVAILABLE) && QEMU_GNUC_PREREQ(9, 0) -+#pragma GCC diagnostic pop -+#endif -+ - if (strchr(filename, '/')) { - usb_mtp_queue_result(s, RES_PARAMETER_NOT_SUPPORTED, d->trans, - 0, 0, 0, 0); diff --git a/hw-usb-hcd-xhci-Fix-GCC-9-build-warning.patch b/hw-usb-hcd-xhci-Fix-GCC-9-build-warning.patch deleted file mode 100644 index ce56e672..00000000 --- a/hw-usb-hcd-xhci-Fix-GCC-9-build-warning.patch +++ /dev/null @@ -1,41 +0,0 @@ -From: Alistair Francis -Date: Sat, 4 May 2019 07:58:35 -0600 -Subject: hw/usb/hcd-xhci: Fix GCC 9 build warning -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Fix this build warning with GCC 9 on Fedora 30: -hw/usb/hcd-xhci.c:3339:66: error: ‘%d’ directive output may be truncated writing between 1 and 10 bytes into a region of size 5 [-Werror=format-truncation=] - 3339 | snprintf(port->name, sizeof(port->name), "usb2 port #%d", i+1); - | ^~ -hw/usb/hcd-xhci.c:3339:54: note: directive argument in the range [1, 2147483647] - 3339 | snprintf(port->name, sizeof(port->name), "usb2 port #%d", i+1); - | ^~~~~~~~~~~~~~~ -In file included from /usr/include/stdio.h:867, - from /home/alistair/qemu/include/qemu/osdep.h:99, - from hw/usb/hcd-xhci.c:21: -/usr/include/bits/stdio2.h:67:10: note: ‘__builtin___snprintf_chk’ output between 13 and 22 bytes into a destination of size 16 - 67 | return __builtin___snprintf_chk (__s, __n, __USE_FORTIFY_LEVEL - 1, - | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - 68 | __bos (__s), __fmt, __va_arg_pack ()); - | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -Signed-off-by: Alistair Francis -Signed-off-by: Bruce Rogers ---- - hw/usb/hcd-xhci.c | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/hw/usb/hcd-xhci.c b/hw/usb/hcd-xhci.c -index 67a18fe2b64c2cc0f77be5897c5d..79386df49b7aaec7c2f2b4c19b6f 100644 ---- a/hw/usb/hcd-xhci.c -+++ b/hw/usb/hcd-xhci.c -@@ -3340,6 +3340,7 @@ static void usb_xhci_init(XHCIState *xhci) - usb_bus_new(&xhci->bus, sizeof(xhci->bus), &xhci_bus_ops, dev); - - for (i = 0; i < usbports; i++) { -+ g_assert(i < MAX(MAXPORTS_2, MAXPORTS_3)); - speedmask = 0; - if (i < xhci->numports_2) { - if (xhci_get_flag(xhci, XHCI_FLAG_SS_FIRST)) { diff --git a/increase-x86_64-physical-bits-to-42.patch b/increase-x86_64-physical-bits-to-42.patch index 66f794f2..45e0c2fd 100644 --- a/increase-x86_64-physical-bits-to-42.patch +++ b/increase-x86_64-physical-bits-to-42.patch @@ -18,10 +18,10 @@ Signed-off-by: Andreas Färber 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/target/i386/cpu.h b/target/i386/cpu.h -index e1a5c174dce15c4620bb94bc2826..2dc6d4ae0b61303401cc08bfb7ae 100644 +index 88e8586f8fb46293810cb34a06a0..a72134a1874f2d7b3ab7c8f4fd59 100644 --- a/target/i386/cpu.h +++ b/target/i386/cpu.h -@@ -1963,7 +1963,7 @@ uint64_t cpu_get_tsc(CPUX86State *env); +@@ -1961,7 +1961,7 @@ uint64_t cpu_get_tsc(CPUX86State *env); /* XXX: This value should match the one returned by CPUID * and in exec.c */ # if defined(TARGET_X86_64) diff --git a/intel-Avoid-spurious-compiler-warning-on.patch b/intel-Avoid-spurious-compiler-warning-on.patch deleted file mode 100644 index 7ce8816d..00000000 --- a/intel-Avoid-spurious-compiler-warning-on.patch +++ /dev/null @@ -1,89 +0,0 @@ -From: Michael Brown -Date: Sat, 27 Jun 2020 20:21:11 +0100 -Subject: [intel] Avoid spurious compiler warning on GCC 10 - -Git-commit: 28cf9806d1632d378485005babec295da0c77fcf -References: boo#1171123 - -GCC 10 produces a spurious warning about an out-of-bounds array access -for the unsized raw dword array in union intelvf_msg. - -Avoid the warning by embedding the zero-length array within a struct. - -Signed-off-by: Michael Brown -Signed-off-by: Bruce Rogers ---- - src/drivers/net/intelvf.c | 18 ++++++++++-------- - src/drivers/net/intelvf.h | 8 +++++++- - 2 files changed, 17 insertions(+), 9 deletions(-) - -diff --git a/roms/ipxe/src/drivers/net/intelvf.c b/roms/ipxe/src/drivers/net/intelvf.c -index ac6fea745457863544edf6658138..0d48b4178cb5aa0542ba7c507d04 100644 ---- a/roms/ipxe/src/drivers/net/intelvf.c -+++ b/roms/ipxe/src/drivers/net/intelvf.c -@@ -52,14 +52,15 @@ FILE_LICENCE ( GPL2_OR_LATER_OR_UBDL ); - */ - static void intelvf_mbox_write ( struct intel_nic *intel, - const union intelvf_msg *msg ) { -+ const struct intelvf_msg_raw *raw = &msg->raw; - unsigned int i; - - /* Write message */ - DBGC2 ( intel, "INTEL %p sending message", intel ); -- for ( i = 0 ; i < ( sizeof ( *msg ) / sizeof ( msg->dword[0] ) ) ; i++){ -- DBGC2 ( intel, "%c%08x", ( i ? ':' : ' ' ), msg->dword[i] ); -- writel ( msg->dword[i], ( intel->regs + intel->mbox.mem + -- ( i * sizeof ( msg->dword[0] ) ) ) ); -+ for ( i = 0 ; i < ( sizeof ( *msg ) / sizeof ( raw->dword[0] ) ) ; i++){ -+ DBGC2 ( intel, "%c%08x", ( i ? ':' : ' ' ), raw->dword[i] ); -+ writel ( raw->dword[i], ( intel->regs + intel->mbox.mem + -+ ( i * sizeof ( raw->dword[0] ) ) ) ); - } - DBGC2 ( intel, "\n" ); - } -@@ -72,14 +73,15 @@ static void intelvf_mbox_write ( struct intel_nic *intel, - */ - static void intelvf_mbox_read ( struct intel_nic *intel, - union intelvf_msg *msg ) { -+ struct intelvf_msg_raw *raw = &msg->raw; - unsigned int i; - - /* Read message */ - DBGC2 ( intel, "INTEL %p received message", intel ); -- for ( i = 0 ; i < ( sizeof ( *msg ) / sizeof ( msg->dword[0] ) ) ; i++){ -- msg->dword[i] = readl ( intel->regs + intel->mbox.mem + -- ( i * sizeof ( msg->dword[0] ) ) ); -- DBGC2 ( intel, "%c%08x", ( i ? ':' : ' ' ), msg->dword[i] ); -+ for ( i = 0 ; i < ( sizeof ( *msg ) / sizeof ( raw->dword[0] ) ) ; i++){ -+ raw->dword[i] = readl ( intel->regs + intel->mbox.mem + -+ ( i * sizeof ( raw->dword[0] ) ) ); -+ DBGC2 ( intel, "%c%08x", ( i ? ':' : ' ' ), raw->dword[i] ); - } - DBGC2 ( intel, "\n" ); - } -diff --git a/roms/ipxe/src/drivers/net/intelvf.h b/roms/ipxe/src/drivers/net/intelvf.h -index ab404698fe6de9f48370931fdf56..ffb18e04052f1b4a6fe406f5062c 100644 ---- a/roms/ipxe/src/drivers/net/intelvf.h -+++ b/roms/ipxe/src/drivers/net/intelvf.h -@@ -119,6 +119,12 @@ struct intelvf_msg_queues { - uint32_t dflt; - } __attribute__ (( packed )); - -+/** Raw mailbox message */ -+struct intelvf_msg_raw { -+ /** Raw dwords */ -+ uint32_t dword[0]; -+} __attribute__ (( packed )); -+ - /** Mailbox message */ - union intelvf_msg { - /** Message header */ -@@ -132,7 +138,7 @@ union intelvf_msg { - /** Queue configuration message */ - struct intelvf_msg_queues queues; - /** Raw dwords */ -- uint32_t dword[0]; -+ struct intelvf_msg_raw raw; - }; - - /** Maximum time to wait for mailbox message diff --git a/ipxe-Makefile-fix-issues-of-build-reprod.patch b/ipxe-Makefile-fix-issues-of-build-reprod.patch index e9465993..6bce55ee 100644 --- a/ipxe-Makefile-fix-issues-of-build-reprod.patch +++ b/ipxe-Makefile-fix-issues-of-build-reprod.patch @@ -14,10 +14,10 @@ Signed-off-by: Bruce Rogers 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/roms/ipxe/src/Makefile.housekeeping b/roms/ipxe/src/Makefile.housekeeping -index f6f3e29248d3e59b76de690aeb0c..d94eb1454c9168545c933ec6e900 100644 +index 134becd508c2f7f7c01c2f601d36..36cfb950e014914232f254b7edbb 100644 --- a/roms/ipxe/src/Makefile.housekeeping +++ b/roms/ipxe/src/Makefile.housekeeping -@@ -1172,11 +1172,18 @@ blib : $(BLIB) +@@ -1163,11 +1163,18 @@ blib : $(BLIB) # Command to generate build ID. Must be unique for each $(BIN)/%.tmp, # even within the same build run. # @@ -38,7 +38,7 @@ index f6f3e29248d3e59b76de690aeb0c..d94eb1454c9168545c933ec6e900 100644 # Build version # -@@ -1196,7 +1203,7 @@ $(BIN)/version.%.o : core/version.c $(MAKEDEPS) $(GIT_INDEX) +@@ -1187,7 +1194,7 @@ $(BIN)/version.%.o : core/version.c $(MAKEDEPS) $(GIT_INDEX) $(BIN)/%.tmp : $(BIN)/version.%.o $(BLIB) $(MAKEDEPS) $(LDSCRIPT) $(QM)$(ECHO) " [LD] $@" $(Q)$(LD) $(LDFLAGS) -T $(LDSCRIPT) $(TGT_LD_FLAGS) $< $(BLIB) -o $@ \ diff --git a/libvhost-user-handle-endianness-as-manda.patch b/libvhost-user-handle-endianness-as-manda.patch deleted file mode 100644 index 9b1c8723..00000000 --- a/libvhost-user-handle-endianness-as-manda.patch +++ /dev/null @@ -1,275 +0,0 @@ -From: Marc Hartmayer -Date: Tue, 1 Sep 2020 17:00:19 +0200 -Subject: libvhost-user: handle endianness as mandated by the spec - -Git-commit: 2ffc54708087c6e524297957be2fc5d543abb767 -References: jsc#sle-13822 - -Since virtio existed even before it got standardized, the virtio -standard defines the following types of virtio devices: - - + legacy device (pre-virtio 1.0) - + non-legacy or VIRTIO 1.0 device - + transitional device (which can act both as legacy and non-legacy) - -Virtio 1.0 defines the fields of the virtqueues as little endian, -while legacy uses guest's native endian [1]. Currently libvhost-user -does not handle virtio endianness at all, i.e. it works only if the -native endianness matches with whatever is actually needed. That means -things break spectacularly on big-endian targets. Let us handle virtio -endianness for non-legacy as required by the virtio specification [1] -and fence legacy virtio, as there is no safe way to figure out the -needed endianness conversions for all cases. The fencing of legacy -virtio devices is done in `vu_set_features_exec`. - -[1] https://docs.oasis-open.org/virtio/virtio/v1.1/cs01/virtio-v1.1-cs01.html#x1-210003 - -Reviewed-by: Michael S. Tsirkin -Signed-off-by: Marc Hartmayer -Message-id: 20200901150019.29229-3-mhartmay@linux.ibm.com -Signed-off-by: Stefan Hajnoczi -Signed-off-by: Liang Yan ---- - contrib/libvhost-user/libvhost-user.c | 77 +++++++++++++++------------ - 1 file changed, 43 insertions(+), 34 deletions(-) - -diff --git a/contrib/libvhost-user/libvhost-user.c b/contrib/libvhost-user/libvhost-user.c -index 53f16bdf082c758e795859b71d22..e2238a0400c9630be1cdab30788c 100644 ---- a/contrib/libvhost-user/libvhost-user.c -+++ b/contrib/libvhost-user/libvhost-user.c -@@ -42,6 +42,7 @@ - - #include "qemu/atomic.h" - #include "qemu/osdep.h" -+#include "qemu/bswap.h" - #include "qemu/memfd.h" - - #include "libvhost-user.h" -@@ -539,6 +540,14 @@ vu_set_features_exec(VuDev *dev, VhostUserMsg *vmsg) - DPRINT("u64: 0x%016"PRIx64"\n", vmsg->payload.u64); - - dev->features = vmsg->payload.u64; -+ if (!vu_has_feature(dev, VIRTIO_F_VERSION_1)) { -+ /* -+ * We only support devices conforming to VIRTIO 1.0 or -+ * later -+ */ -+ vu_panic(dev, "virtio legacy devices aren't supported by libvhost-user"); -+ return false; -+ } - - if (!(dev->features & VHOST_USER_F_PROTOCOL_FEATURES)) { - vu_set_enable_all_rings(dev, true); -@@ -1074,7 +1083,7 @@ vu_set_vring_addr_exec(VuDev *dev, VhostUserMsg *vmsg) - return false; - } - -- vq->used_idx = vq->vring.used->idx; -+ vq->used_idx = lduw_le_p(&vq->vring.used->idx); - - if (vq->last_avail_idx != vq->used_idx) { - bool resume = dev->iface->queue_is_processed_in_order && -@@ -1191,7 +1200,7 @@ vu_check_queue_inflights(VuDev *dev, VuVirtq *vq) - return 0; - } - -- vq->used_idx = vq->vring.used->idx; -+ vq->used_idx = lduw_le_p(&vq->vring.used->idx); - vq->resubmit_num = 0; - vq->resubmit_list = NULL; - vq->counter = 0; -@@ -2021,13 +2030,13 @@ vu_queue_started(const VuDev *dev, const VuVirtq *vq) - static inline uint16_t - vring_avail_flags(VuVirtq *vq) - { -- return vq->vring.avail->flags; -+ return lduw_le_p(&vq->vring.avail->flags); - } - - static inline uint16_t - vring_avail_idx(VuVirtq *vq) - { -- vq->shadow_avail_idx = vq->vring.avail->idx; -+ vq->shadow_avail_idx = lduw_le_p(&vq->vring.avail->idx); - - return vq->shadow_avail_idx; - } -@@ -2035,7 +2044,7 @@ vring_avail_idx(VuVirtq *vq) - static inline uint16_t - vring_avail_ring(VuVirtq *vq, int i) - { -- return vq->vring.avail->ring[i]; -+ return lduw_le_p(&vq->vring.avail->ring[i]); - } - - static inline uint16_t -@@ -2123,12 +2132,12 @@ virtqueue_read_next_desc(VuDev *dev, struct vring_desc *desc, - int i, unsigned int max, unsigned int *next) - { - /* If this descriptor says it doesn't chain, we're done. */ -- if (!(desc[i].flags & VRING_DESC_F_NEXT)) { -+ if (!(lduw_le_p(&desc[i].flags) & VRING_DESC_F_NEXT)) { - return VIRTQUEUE_READ_DESC_DONE; - } - - /* Check they're not leading us off end of descriptors. */ -- *next = desc[i].next; -+ *next = lduw_le_p(&desc[i].next); - /* Make sure compiler knows to grab that: we don't want it changing! */ - smp_wmb(); - -@@ -2171,8 +2180,8 @@ vu_queue_get_avail_bytes(VuDev *dev, VuVirtq *vq, unsigned int *in_bytes, - } - desc = vq->vring.desc; - -- if (desc[i].flags & VRING_DESC_F_INDIRECT) { -- if (desc[i].len % sizeof(struct vring_desc)) { -+ if (lduw_le_p(&desc[i].flags) & VRING_DESC_F_INDIRECT) { -+ if (ldl_le_p(&desc[i].len) % sizeof(struct vring_desc)) { - vu_panic(dev, "Invalid size for indirect buffer table"); - goto err; - } -@@ -2185,8 +2194,8 @@ vu_queue_get_avail_bytes(VuDev *dev, VuVirtq *vq, unsigned int *in_bytes, - - /* loop over the indirect descriptor table */ - indirect = 1; -- desc_addr = desc[i].addr; -- desc_len = desc[i].len; -+ desc_addr = ldq_le_p(&desc[i].addr); -+ desc_len = ldl_le_p(&desc[i].len); - max = desc_len / sizeof(struct vring_desc); - read_len = desc_len; - desc = vu_gpa_to_va(dev, &read_len, desc_addr); -@@ -2213,10 +2222,10 @@ vu_queue_get_avail_bytes(VuDev *dev, VuVirtq *vq, unsigned int *in_bytes, - goto err; - } - -- if (desc[i].flags & VRING_DESC_F_WRITE) { -- in_total += desc[i].len; -+ if (lduw_le_p(&desc[i].flags) & VRING_DESC_F_WRITE) { -+ in_total += ldl_le_p(&desc[i].len); - } else { -- out_total += desc[i].len; -+ out_total += ldl_le_p(&desc[i].len); - } - if (in_total >= max_in_bytes && out_total >= max_out_bytes) { - goto done; -@@ -2367,7 +2376,7 @@ vring_used_flags_set_bit(VuVirtq *vq, int mask) - - flags = (uint16_t *)((char*)vq->vring.used + - offsetof(struct vring_used, flags)); -- *flags |= mask; -+ stw_le_p(flags, lduw_le_p(flags) | mask); - } - - static inline void -@@ -2377,7 +2386,7 @@ vring_used_flags_unset_bit(VuVirtq *vq, int mask) - - flags = (uint16_t *)((char*)vq->vring.used + - offsetof(struct vring_used, flags)); -- *flags &= ~mask; -+ stw_le_p(flags, lduw_le_p(flags) & ~mask); - } - - static inline void -@@ -2387,7 +2396,7 @@ vring_set_avail_event(VuVirtq *vq, uint16_t val) - return; - } - -- *((uint16_t *) &vq->vring.used->ring[vq->vring.num]) = val; -+ stw_le_p(&vq->vring.used->ring[vq->vring.num], val); - } - - void -@@ -2476,14 +2485,14 @@ vu_queue_map_desc(VuDev *dev, VuVirtq *vq, unsigned int idx, size_t sz) - struct vring_desc desc_buf[VIRTQUEUE_MAX_SIZE]; - int rc; - -- if (desc[i].flags & VRING_DESC_F_INDIRECT) { -- if (desc[i].len % sizeof(struct vring_desc)) { -+ if (lduw_le_p(&desc[i].flags) & VRING_DESC_F_INDIRECT) { -+ if (ldl_le_p(&desc[i].len) % sizeof(struct vring_desc)) { - vu_panic(dev, "Invalid size for indirect buffer table"); - } - - /* loop over the indirect descriptor table */ -- desc_addr = desc[i].addr; -- desc_len = desc[i].len; -+ desc_addr = ldq_le_p(&desc[i].addr); -+ desc_len = ldl_le_p(&desc[i].len); - max = desc_len / sizeof(struct vring_desc); - read_len = desc_len; - desc = vu_gpa_to_va(dev, &read_len, desc_addr); -@@ -2505,10 +2514,10 @@ vu_queue_map_desc(VuDev *dev, VuVirtq *vq, unsigned int idx, size_t sz) - - /* Collect all the descriptors */ - do { -- if (desc[i].flags & VRING_DESC_F_WRITE) { -+ if (lduw_le_p(&desc[i].flags) & VRING_DESC_F_WRITE) { - virtqueue_map_desc(dev, &in_num, iov + out_num, - VIRTQUEUE_MAX_SIZE - out_num, true, -- desc[i].addr, desc[i].len); -+ ldq_le_p(&desc[i].addr), ldl_le_p(&desc[i].len)); - } else { - if (in_num) { - vu_panic(dev, "Incorrect order for descriptors"); -@@ -2516,7 +2525,7 @@ vu_queue_map_desc(VuDev *dev, VuVirtq *vq, unsigned int idx, size_t sz) - } - virtqueue_map_desc(dev, &out_num, iov, - VIRTQUEUE_MAX_SIZE, false, -- desc[i].addr, desc[i].len); -+ ldq_le_p(&desc[i].addr), ldl_le_p(&desc[i].len)); - } - - /* If we've got too many, that implies a descriptor loop. */ -@@ -2712,14 +2721,14 @@ vu_log_queue_fill(VuDev *dev, VuVirtq *vq, - max = vq->vring.num; - i = elem->index; - -- if (desc[i].flags & VRING_DESC_F_INDIRECT) { -- if (desc[i].len % sizeof(struct vring_desc)) { -+ if (lduw_le_p(&desc[i].flags) & VRING_DESC_F_INDIRECT) { -+ if (ldl_le_p(&desc[i].len) % sizeof(struct vring_desc)) { - vu_panic(dev, "Invalid size for indirect buffer table"); - } - - /* loop over the indirect descriptor table */ -- desc_addr = desc[i].addr; -- desc_len = desc[i].len; -+ desc_addr = ldq_le_p(&desc[i].addr); -+ desc_len = ldl_le_p(&desc[i].len); - max = desc_len / sizeof(struct vring_desc); - read_len = desc_len; - desc = vu_gpa_to_va(dev, &read_len, desc_addr); -@@ -2745,9 +2754,9 @@ vu_log_queue_fill(VuDev *dev, VuVirtq *vq, - return; - } - -- if (desc[i].flags & VRING_DESC_F_WRITE) { -- min = MIN(desc[i].len, len); -- vu_log_write(dev, desc[i].addr, min); -+ if (lduw_le_p(&desc[i].flags) & VRING_DESC_F_WRITE) { -+ min = MIN(ldl_le_p(&desc[i].len), len); -+ vu_log_write(dev, ldq_le_p(&desc[i].addr), min); - len -= min; - } - -@@ -2772,15 +2781,15 @@ vu_queue_fill(VuDev *dev, VuVirtq *vq, - - idx = (idx + vq->used_idx) % vq->vring.num; - -- uelem.id = elem->index; -- uelem.len = len; -+ stl_le_p(&uelem.id, elem->index); -+ stl_le_p(&uelem.len, len); - vring_used_write(dev, vq, &uelem, idx); - } - - static inline - void vring_used_idx_set(VuDev *dev, VuVirtq *vq, uint16_t val) - { -- vq->vring.used->idx = val; -+ stw_le_p(&vq->vring.used->idx, val); - vu_log_write(dev, - vq->vring.log_guest_addr + offsetof(struct vring_used, idx), - sizeof(vq->vring.used->idx)); diff --git a/linux-user-Fake-proc-cpuinfo.patch b/linux-user-Fake-proc-cpuinfo.patch index 8b8a3a61..a6a4b8b8 100644 --- a/linux-user-Fake-proc-cpuinfo.patch +++ b/linux-user-Fake-proc-cpuinfo.patch @@ -21,10 +21,10 @@ Signed-off-by: Andreas Färber 1 file changed, 24 insertions(+) diff --git a/linux-user/syscall.c b/linux-user/syscall.c -index 1a835798d19cc77da8d7ec6bdc7b..5cd29859d6ac5349f04c03996b12 100644 +index 2839a2c5e906dde840f040c5f235..e1341c9d391bde792d37443c4b9f 100644 --- a/linux-user/syscall.c +++ b/linux-user/syscall.c -@@ -7473,6 +7473,27 @@ static int open_self_stat(void *cpu_env, int fd) +@@ -7887,6 +7887,27 @@ static int open_self_stat(void *cpu_env, int fd) return 0; } @@ -52,7 +52,7 @@ index 1a835798d19cc77da8d7ec6bdc7b..5cd29859d6ac5349f04c03996b12 100644 static int open_self_auxv(void *cpu_env, int fd) { CPUState *cpu = env_cpu((CPUArchState *)cpu_env); -@@ -7627,6 +7648,9 @@ static int do_openat(void *cpu_env, int dirfd, const char *pathname, int flags, +@@ -8041,6 +8062,9 @@ static int do_openat(void *cpu_env, int dirfd, const char *pathname, int flags, #if defined(TARGET_SPARC) || defined(TARGET_HPPA) { "/proc/cpuinfo", open_cpuinfo, is_proc }, #endif diff --git a/linux-user-add-binfmt-wrapper-for-argv-0.patch b/linux-user-add-binfmt-wrapper-for-argv-0.patch index 0551f732..c047ff85 100644 --- a/linux-user-add-binfmt-wrapper-for-argv-0.patch +++ b/linux-user-add-binfmt-wrapper-for-argv-0.patch @@ -29,66 +29,10 @@ Signed-off-by: Alexander Graf [AF: Rebased onto script rewrite for v2.7.0-rc2 - to be fixed] Signed-off-by: Andreas Färber --- - Makefile.target | 13 +++++++++++++ - linux-user/Makefile.objs | 1 + - linux-user/binfmt.c | 42 ++++++++++++++++++++++++++++++++++++++++ - 3 files changed, 56 insertions(+) + linux-user/binfmt.c | 42 ++++++++++++++++++++++++++++++++++++++++++ + meson.build | 5 +++++ + 2 files changed, 47 insertions(+) -diff --git a/Makefile.target b/Makefile.target -index ffa2657269ac5e4ed4eab213e1bd..b6621549b8909d76e64cc0c5c2f3 100644 ---- a/Makefile.target -+++ b/Makefile.target -@@ -39,6 +39,10 @@ endif - PROGS=$(QEMU_PROG) $(QEMU_PROGW) - STPFILES= - -+ifdef CONFIG_LINUX_USER -+PROGS+=$(QEMU_PROG)-binfmt -+endif -+ - config-target.h: config-target.h-timestamp - config-target.h-timestamp: config-target.mak - -@@ -134,6 +138,8 @@ QEMU_CFLAGS+=-I$(SRC_PATH)/linux-user/$(TARGET_ABI_DIR) \ - obj-y += linux-user/ - obj-y += gdbstub.o thunk.o - -+obj-binfmt-y += linux-user/ -+ - endif #CONFIG_LINUX_USER - - ######################################################### -@@ -173,7 +179,11 @@ generated-files-y += config-devices.h - - endif # CONFIG_SOFTMMU - -+ifdef CONFIG_LINUX_USER -+dummy := $(call unnest-vars,,obj-y obj-binfmt-y) -+else - dummy := $(call unnest-vars,,obj-y) -+endif - all-obj-y := $(obj-y) - - # -@@ -222,6 +232,9 @@ ifdef CONFIG_DARWIN - $(call quiet-command,SetFile -a C $@,"SETFILE","$(TARGET_DIR)$@") - endif - -+$(QEMU_PROG)-binfmt: $(obj-binfmt-y) -+ $(call LINK,$^) -+ - gdbstub-xml.c: $(TARGET_XML_FILES) $(SRC_PATH)/scripts/feature_to_c.sh - $(call quiet-command,rm -f $@ && $(SHELL) $(SRC_PATH)/scripts/feature_to_c.sh $@ $(TARGET_XML_FILES),"GEN","$(TARGET_DIR)$@") - -diff --git a/linux-user/Makefile.objs b/linux-user/Makefile.objs -index 1940910a7321c5a44d29c2602f9e..84c770a6cb58193d73afdffa2b01 100644 ---- a/linux-user/Makefile.objs -+++ b/linux-user/Makefile.objs -@@ -23,3 +23,4 @@ obj-$(TARGET_SPARC) += sparc/ - obj-$(TARGET_SPARC64) += $(TARGET_ABI_DIR)/ - obj-$(TARGET_X86_64) += x86_64/ - obj-$(TARGET_XTENSA) += xtensa/ -+obj-binfmt-y = binfmt.o diff --git a/linux-user/binfmt.c b/linux-user/binfmt.c new file mode 100644 index 0000000000000000000000000000000000000000..cd1f513b334f3b263d9e4b5adb1981e376429fa6 @@ -137,3 +81,19 @@ index 0000000000000000000000000000000000000000..cd1f513b334f3b263d9e4b5adb1981e3 + + return execve(new_argv[0], new_argv, envp); +} +diff --git a/meson.build b/meson.build +index e3386196ba4106a973edb7f9d07c..a4743a83ae82bbe57e8dfeec3da4 100644 +--- a/meson.build ++++ b/meson.build +@@ -1883,6 +1883,11 @@ endforeach + + # Other build targets + ++if 'CONFIG_LINUX_USER' in config_target ++ executable('qemu-binfmt', files('linux-user/binfmt.c'), ++ install: true) ++endif ++ + if 'CONFIG_PLUGIN' in config_host + install_headers('include/qemu/qemu-plugin.h') + endif diff --git a/linux-user-lseek-explicitly-cast-non-set.patch b/linux-user-lseek-explicitly-cast-non-set.patch index 56dff008..82bea3c8 100644 --- a/linux-user-lseek-explicitly-cast-non-set.patch +++ b/linux-user-lseek-explicitly-cast-non-set.patch @@ -15,10 +15,10 @@ Signed-off-by: Alexander Graf 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/linux-user/syscall.c b/linux-user/syscall.c -index 9ec933bdc0078f3fc62bfd499957..78a1f6c347511b85634da898f831 100644 +index 4c178ceab8ac708e4ee4587f6589..72c10911d6773e1e53fa36a3e741 100644 --- a/linux-user/syscall.c +++ b/linux-user/syscall.c -@@ -8149,8 +8149,13 @@ static abi_long do_syscall1(void *cpu_env, int num, abi_ulong arg1, +@@ -8563,8 +8563,13 @@ static abi_long do_syscall1(void *cpu_env, int num, abi_ulong arg1, return ret; #endif #ifdef TARGET_NR_lseek diff --git a/linux-user-properly-test-for-infinite-ti.patch b/linux-user-properly-test-for-infinite-ti.patch deleted file mode 100644 index 84cd530d..00000000 --- a/linux-user-properly-test-for-infinite-ti.patch +++ /dev/null @@ -1,29 +0,0 @@ -From: Andreas Schwab -Date: Thu, 8 Sep 2016 11:21:05 +0200 -Subject: linux-user: properly test for infinite timeout in poll (#8) - -After "linux-user: use target_ulong" the poll syscall was no longer -handling infinite timeout. - -/home/abuild/rpmbuild/BUILD/qemu-2.7.0-rc5/linux-user/syscall.c:9773:26: warning: comparison of unsigned expression >= 0 is always true [-Wtype-limits] - if (arg3 >= 0) { - ^~ - -Signed-off-by: Andreas Schwab ---- - linux-user/syscall.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/linux-user/syscall.c b/linux-user/syscall.c -index 78a1f6c347511b85634da898f831..d70d8a59f44feaf126d8b6187f17 100644 ---- a/linux-user/syscall.c -+++ b/linux-user/syscall.c -@@ -10207,7 +10207,7 @@ static abi_long do_syscall1(void *cpu_env, int num, abi_ulong arg1, - { - struct timespec ts, *pts; - -- if (arg3 >= 0) { -+ if ((abi_long)arg3 >= 0) { - /* Convert ms to secs, ns */ - ts.tv_sec = arg3 / 1000; - ts.tv_nsec = (arg3 % 1000) * 1000000LL; diff --git a/linux-user-use-target_ulong.patch b/linux-user-use-target_ulong.patch index 0ecada61..ffa9d402 100644 --- a/linux-user-use-target_ulong.patch +++ b/linux-user-use-target_ulong.patch @@ -16,10 +16,10 @@ Signed-off-by: Alexander Graf 2 files changed, 13 insertions(+), 13 deletions(-) diff --git a/linux-user/qemu.h b/linux-user/qemu.h -index 5c964389c101ce00fcffe206bc69..76d0399e82d5c2b599b9472e0743 100644 +index 534753ca12542383002cbf5544ac..c1c7448ef304cf8a56ac60ec8639 100644 --- a/linux-user/qemu.h +++ b/linux-user/qemu.h -@@ -227,10 +227,10 @@ abi_long memcpy_to_target(abi_ulong dest, const void *src, +@@ -231,10 +231,10 @@ abi_long memcpy_to_target(abi_ulong dest, const void *src, void target_set_brk(abi_ulong new_brk); abi_long do_brk(abi_ulong new_brk); void syscall_init(void); @@ -35,10 +35,10 @@ index 5c964389c101ce00fcffe206bc69..76d0399e82d5c2b599b9472e0743 100644 void cpu_loop(CPUArchState *env); const char *target_strerror(int err); diff --git a/linux-user/syscall.c b/linux-user/syscall.c -index 5cd29859d6ac5349f04c03996b12..9ec933bdc0078f3fc62bfd499957 100644 +index e1341c9d391bde792d37443c4b9f..4c178ceab8ac708e4ee4587f6589 100644 --- a/linux-user/syscall.c +++ b/linux-user/syscall.c -@@ -7791,10 +7791,10 @@ static int host_to_target_cpu_mask(const unsigned long *host_mask, +@@ -8205,10 +8205,10 @@ static int host_to_target_cpu_mask(const unsigned long *host_mask, * of syscall results, can be performed. * All errnos that do_syscall() returns must be -TARGET_. */ @@ -53,7 +53,7 @@ index 5cd29859d6ac5349f04c03996b12..9ec933bdc0078f3fc62bfd499957 100644 { CPUState *cpu = env_cpu(cpu_env); abi_long ret; -@@ -10578,7 +10578,7 @@ static abi_long do_syscall1(void *cpu_env, int num, abi_long arg1, +@@ -10871,7 +10871,7 @@ static abi_long do_syscall1(void *cpu_env, int num, abi_long arg1, */ ret = -TARGET_EINVAL; if (cpu_isar_feature(aa64_sve, env_archcpu(cpu_env)) @@ -62,7 +62,7 @@ index 5cd29859d6ac5349f04c03996b12..9ec933bdc0078f3fc62bfd499957 100644 CPUARMState *env = cpu_env; ARMCPU *cpu = env_archcpu(env); uint32_t vq, old_vq; -@@ -12610,10 +12610,10 @@ static abi_long do_syscall1(void *cpu_env, int num, abi_long arg1, +@@ -13120,10 +13120,10 @@ static abi_long do_syscall1(void *cpu_env, int num, abi_long arg1, return ret; } diff --git a/meson-install-ivshmem-client-and-ivshmem.patch b/meson-install-ivshmem-client-and-ivshmem.patch new file mode 100644 index 00000000..51ccd979 --- /dev/null +++ b/meson-install-ivshmem-client-and-ivshmem.patch @@ -0,0 +1,32 @@ +From: Bruce Rogers +Date: Fri, 28 Aug 2020 13:50:40 -0600 +Subject: meson: install ivshmem-client and ivshmem-server + +Turn on the meson install flag for these executables + +Signed-off-by: Bruce Rogers +--- + contrib/ivshmem-client/meson.build | 2 +- + contrib/ivshmem-server/meson.build | 2 +- + 2 files changed, 2 insertions(+), 2 deletions(-) + +diff --git a/contrib/ivshmem-client/meson.build b/contrib/ivshmem-client/meson.build +index 1b171efb4f536f608191cd4cba1b..83a559117fd1a2c99f34a43fa38d 100644 +--- a/contrib/ivshmem-client/meson.build ++++ b/contrib/ivshmem-client/meson.build +@@ -1,4 +1,4 @@ + executable('ivshmem-client', files('ivshmem-client.c', 'main.c'), + dependencies: glib, + build_by_default: targetos == 'linux', +- install: false) ++ install: true) +diff --git a/contrib/ivshmem-server/meson.build b/contrib/ivshmem-server/meson.build +index 3a539422017e6dc342e098c3e9c8..a1c39aa3b30e9c56941cbc394f86 100644 +--- a/contrib/ivshmem-server/meson.build ++++ b/contrib/ivshmem-server/meson.build +@@ -1,4 +1,4 @@ + executable('ivshmem-server', files('ivshmem-server.c', 'main.c'), + dependencies: [qemuutil, rt], + build_by_default: targetos == 'linux', +- install: false) ++ install: true) diff --git a/qboot-add-cross.ini-file-to-handle-aarch.patch b/qboot-add-cross.ini-file-to-handle-aarch.patch new file mode 100644 index 00000000..078b4e19 --- /dev/null +++ b/qboot-add-cross.ini-file-to-handle-aarch.patch @@ -0,0 +1,23 @@ +From: Bruce Rogers +Date: Mon, 23 Nov 2020 07:06:37 -0700 +Subject: qboot: add cross.ini file to handle aarch64 based build + +Signed-off-by: Bruce Rogers +--- + cross.ini | 8 ++++++++ + 1 file changed, 8 insertions(+) + +diff --git a/roms/qboot/cross.ini b/roms/qboot/cross.ini +new file mode 100644 +index 0000000000000000000000000000000000000000..4b3584da7e189efad7865450bf5310685c2e0f31 +--- /dev/null ++++ b/roms/qboot/cross.ini +@@ -0,0 +1,8 @@ ++[host_machine] ++system = 'linux' ++cpu_family = 'x86' ++cpu = 'x86_64' ++endian = 'little' ++ ++[binaries] ++c = 'x86_64-suse-linux-gcc' diff --git a/qemu-5.1.0.tar.xz b/qemu-5.1.0.tar.xz deleted file mode 100644 index 4a465e9f..00000000 --- a/qemu-5.1.0.tar.xz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:c9174eb5933d9eb5e61f541cd6d1184cd3118dfe4c5c4955bc1bdc4d390fa4e5 -size 62911540 diff --git a/qemu-5.1.0.tar.xz.sig b/qemu-5.1.0.tar.xz.sig deleted file mode 100644 index 5fc0f5ceae1cbb7706287d556b52eb50b4aa7a0d2ef419181fcc752a83684e40..0000000000000000000000000000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 310 zcmV-60m=S}0W$;u0SW*e79j-AtjXb3H0!IlEkB?$Q_0Tp2(^R-0$(!{Z~zJk5HnNB z&hZGfgsIyH|6l(I`W*E*vBI8$ZUfLNTuk-8)IWC1%hXroIqJ-USfTR>eI16Zwf(*c zYZvm5V&=T7#b%!*q7jZh?g9ZWdQ0h&ZRnrB;)#=2Vnhz9;6ch&E*Ww*1m){Fw769 z0a;w-DGGg=7W+((oX3*izMEpAbNOmFQI-{bn#VsV2VYZRMOGZAm$U!vq~TBqz=SA2 zkmx&3uxPMfe)7lx)6Xf3G4E2k?CJ&^YcF%RZVUgpsr_;AP(>wwTjBe3w!hrMm0hdH IYyDNKLLyCn>hBNS$NX z*~-#}uG{6suDC87i-bgR!plJ!1}2?*PAmS;IHUCsZw=XvyZ{#etDAG@&(X;f<9Oue I6doMR(}d!g0ssI2 literal 0 HcmV?d00001 diff --git a/qemu-bridge-helper-reduce-security-profi.patch b/qemu-bridge-helper-reduce-security-profi.patch index acfc7842..5526c2be 100644 --- a/qemu-bridge-helper-reduce-security-profi.patch +++ b/qemu-bridge-helper-reduce-security-profi.patch @@ -19,10 +19,10 @@ Signed-off-by: Andreas Färber 1 file changed, 25 insertions(+), 3 deletions(-) diff --git a/qemu-bridge-helper.c b/qemu-bridge-helper.c -index 88b26747fc866116637716264dea..9ed35df944fa6968045e675e023a 100644 +index a26e1663f02de3c99198df6e2080..f3483b0a344da4f82b6710551390 100644 --- a/qemu-bridge-helper.c +++ b/qemu-bridge-helper.c -@@ -123,7 +123,12 @@ static int parse_acl_file(const char *filename, ACLList *acl_list) +@@ -124,7 +124,12 @@ static int parse_acl_file(const char *filename, ACLList *acl_list) } if (strcmp(cmd, "deny") == 0) { @@ -36,7 +36,7 @@ index 88b26747fc866116637716264dea..9ed35df944fa6968045e675e023a 100644 if (strcmp(arg, "all") == 0) { acl_rule->type = ACL_DENY_ALL; } else { -@@ -132,7 +137,12 @@ static int parse_acl_file(const char *filename, ACLList *acl_list) +@@ -133,7 +138,12 @@ static int parse_acl_file(const char *filename, ACLList *acl_list) } QSIMPLEQ_INSERT_TAIL(acl_list, acl_rule, entry); } else if (strcmp(cmd, "allow") == 0) { @@ -50,7 +50,7 @@ index 88b26747fc866116637716264dea..9ed35df944fa6968045e675e023a 100644 if (strcmp(arg, "all") == 0) { acl_rule->type = ACL_ALLOW_ALL; } else { -@@ -433,6 +443,18 @@ int main(int argc, char **argv) +@@ -438,6 +448,18 @@ int main(int argc, char **argv) goto cleanup; } @@ -69,7 +69,7 @@ index 88b26747fc866116637716264dea..9ed35df944fa6968045e675e023a 100644 /* write fd to the domain socket */ if (send_fd(unixfd, fd) == -1) { fprintf(stderr, "failed to write fd to unix socket: %s\n", -@@ -454,7 +476,7 @@ cleanup: +@@ -459,7 +481,7 @@ cleanup: } while ((acl_rule = QSIMPLEQ_FIRST(&acl_list)) != NULL) { QSIMPLEQ_REMOVE_HEAD(&acl_list, entry); diff --git a/qemu-cvs-gettimeofday.patch b/qemu-cvs-gettimeofday.patch index a09d84ca..266bd082 100644 --- a/qemu-cvs-gettimeofday.patch +++ b/qemu-cvs-gettimeofday.patch @@ -11,10 +11,10 @@ Signed-off-by: Bruce Rogers 1 file changed, 3 insertions(+) diff --git a/linux-user/syscall.c b/linux-user/syscall.c -index 945fc252791ce79d968dba5f9545..b1e68b7b1b3d689af62cd271cf31 100644 +index 27adee908ebcf5151a2e0c9875bc..e0cfb6227803c30755841477b593 100644 --- a/linux-user/syscall.c +++ b/linux-user/syscall.c -@@ -8988,6 +8988,9 @@ static abi_long do_syscall1(void *cpu_env, int num, abi_long arg1, +@@ -9444,6 +9444,9 @@ static abi_long do_syscall1(void *cpu_env, int num, abi_long arg1, { struct timeval tv; struct timezone tz; diff --git a/qemu-cvs-ioctl_debug.patch b/qemu-cvs-ioctl_debug.patch index 770cd39c..187d990f 100644 --- a/qemu-cvs-ioctl_debug.patch +++ b/qemu-cvs-ioctl_debug.patch @@ -13,10 +13,10 @@ Signed-off-by: Bruce Rogers 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/linux-user/syscall.c b/linux-user/syscall.c -index b1e68b7b1b3d689af62cd271cf31..8a80cf418ab4299548a85b90e427 100644 +index e0cfb6227803c30755841477b593..1526c70a6ef9899fa160bae96efc 100644 --- a/linux-user/syscall.c +++ b/linux-user/syscall.c -@@ -5440,8 +5440,21 @@ static abi_long do_ioctl(int fd, int cmd, abi_long arg) +@@ -5728,8 +5728,21 @@ static abi_long do_ioctl(int fd, int cmd, abi_long arg) ie = ioctl_entries; for(;;) { if (ie->target_cmd == 0) { diff --git a/qemu-cvs-ioctl_nodirection.patch b/qemu-cvs-ioctl_nodirection.patch index 81c7a6a9..ea2d87ba 100644 --- a/qemu-cvs-ioctl_nodirection.patch +++ b/qemu-cvs-ioctl_nodirection.patch @@ -16,10 +16,10 @@ Signed-off-by: Bruce Rogers 1 file changed, 8 insertions(+) diff --git a/linux-user/syscall.c b/linux-user/syscall.c -index 8a80cf418ab4299548a85b90e427..1a835798d19cc77da8d7ec6bdc7b 100644 +index 1526c70a6ef9899fa160bae96efc..2839a2c5e906dde840f040c5f235 100644 --- a/linux-user/syscall.c +++ b/linux-user/syscall.c -@@ -5485,6 +5485,13 @@ static abi_long do_ioctl(int fd, int cmd, abi_long arg) +@@ -5773,6 +5773,13 @@ static abi_long do_ioctl(int fd, int cmd, abi_long arg) arg_type++; target_size = thunk_type_size(arg_type, 0); switch(ie->access) { @@ -33,7 +33,7 @@ index 8a80cf418ab4299548a85b90e427..1a835798d19cc77da8d7ec6bdc7b 100644 case IOC_R: ret = get_errno(safe_ioctl(fd, ie->host_cmd, buf_temp)); if (!is_error(ret)) { -@@ -5503,6 +5510,7 @@ static abi_long do_ioctl(int fd, int cmd, abi_long arg) +@@ -5791,6 +5798,7 @@ static abi_long do_ioctl(int fd, int cmd, abi_long arg) unlock_user(argptr, arg, 0); ret = get_errno(safe_ioctl(fd, ie->host_cmd, buf_temp)); break; diff --git a/qemu-ga-ref.html b/qemu-ga-ref.html deleted file mode 100644 index 030ac058..00000000 --- a/qemu-ga-ref.html +++ /dev/null @@ -1,31 +0,0 @@ - - - - - - - - - - -

    -If you are looking for the QEMU Guest Agent protocol reference, see:

    -

    /usr/share/doc/packages/qemu/interop/qemu-ga-ref.html

    -


    - -

    -

    The file you are -reading is now provided simply to support a packaging

    -

    "Split-Provides", -in order to maintain prior-release functionality. The

    -

    new package has -split that functionality into another package which may

    -

    be optional going -forward. If you find the package providing this file

    -

    is not needed, you -may uninstall it.

    - - diff --git a/qemu-ga-ref.txt b/qemu-ga-ref.txt deleted file mode 100644 index 0e2e17d9..00000000 --- a/qemu-ga-ref.txt +++ /dev/null @@ -1,8 +0,0 @@ -If you are looking for the QEMU Guest Agent protocol reference, see: -/usr/share/doc/packages/qemu/interop/qemu-ga-ref.txt - -The file you are reading is now provided simply to support a packaging -"Split-Provides", in order to maintain prior-release functionality. The -new package has split that functionality into another package which may -be optional going forward. If you find the package providing this file -is not needed, you may uninstall it. diff --git a/qemu-qmp-ref.html b/qemu-qmp-ref.html deleted file mode 100644 index 6ee43915..00000000 --- a/qemu-qmp-ref.html +++ /dev/null @@ -1,31 +0,0 @@ - - - - - - - - - - -

    -If you are looking for the QEMU QMP reference, see:

    -

    /usr/share/doc/packages/qemu/interop/qemu-qmp-ref.html

    -


    - -

    -

    The file you are -reading is now provided simply to support a packaging

    -

    "Split-Provides", -in order to maintain prior-release functionality. The

    -

    new package has -split that functionality into another package which may

    -

    be optional going -forward. If you find the package providing this file

    -

    is not needed, you -may uninstall it.

    - - diff --git a/qemu-qmp-ref.txt b/qemu-qmp-ref.txt deleted file mode 100644 index c1439981..00000000 --- a/qemu-qmp-ref.txt +++ /dev/null @@ -1,8 +0,0 @@ -If you are looking for the QEMU QMP reference, see: -/usr/share/doc/packages/qemu/interop/qemu-qmp-ref.txt - -The file you are reading is now provided simply to support a packaging -"Split-Provides", in order to maintain prior-release functionality. The -new package has split that functionality into another package which may -be optional going forward. If you find the package providing this file -is not needed, you may uninstall it. diff --git a/qemu.changes b/qemu.changes index f7d5b513..e33673cb 100644 --- a/qemu.changes +++ b/qemu.changes @@ -1,3 +1,110 @@ +------------------------------------------------------------------- +Tue Dec 8 18:10:54 UTC 2020 - Bruce Rogers + +- Update to v5.2.0: See http://wiki.qemu.org/ChangeLog/5.2 + Take note that ongoing feature deprecation is tracked at both + http://wiki.qemu-project.org/Features/LegacyRemoval and in + the deprecated.html file installed with the qemu package + Some noteworthy changes: +* Dropped system emulators: qemu-system-lm32, qemu-system-unicore32 +* Dropped linux user emulator: qemu-ppc64abi32 +* Added linux user emulator: qemu-extensaeb +* Unicore32 and lm32 guest support dropped +* New sub-packages (most due to ongoing modularization of QEMU): + qemu-audio-spice, qemu-hw-chardev-spice, qemu-hw-display-virtio-vga, + qemu-hw-display-virtio-gpu, qemu-hw-display-virtio-gpu-pci, + qemu-ui-spice-core, qemu-ui-opengl, qemu-ivshmem-tools +* x86: A new KVM feature which improves the handling of asynchronous page + faults is available with -cpu ...,kvm-async-pf-int (requires Linux 5.8) +* s390: More instructions emulated under TCG +* PowerPC: nvdimm= machine option now functions correctly; misc improvements +* ARM: new boards: mps2-an386 (Cortex-M4 based) and mps2-an500 + (Cortex-M7 based), raspi3ap (the Pi 3 model A+), raspi0 (the Pi Zero) + and raspi1ap (the Pi A+) +* RISC-V: OpenSBI v0.8 included by default; Generic OpenSBI platform used + when no -bios argument is supplied; Support for NUMA sockets on Virt + and Spike Machines; Support for migrating machines; misc improvements +* Misc NVMe improvements +* The 'vhost-user-blk' export type has been added, allowing + qemu-storage-daemon to act as a vhost-user-blk device backend +* The SMBIOS OEM strings can now come from a file +* 9pfs - misc performance related improvements +* virtiofs - misc improvements +* migration: The default migration bandwidth has been increased to 1Gbps + (users are still encouraged to tune it to their own hardware); The new + 'calc-dirty-rate' and 'query-dirty-rate' QMP commands can help determine + the likelihood of precopy migration success; TLS+multifd now supported + for higher bandwidth encrypted migration; misc minor features added +* Misc minor block features added +* Misc doc improvements +* qemu-microvm subpackage change: the bios-microvm.bin is now SeaBIOS based, + and the qboot based on is now qboot.rom +* elf2dmp is no longer part of qemu-tools (it was never intended to be + a packaged binary) +* Some subpackages which were 'Requires' are now 'Recommends', allowing for + a smaller qemu packaging footprint if needed +* Patches dropped (included in release tarball, unless otherwise noted): + docs-fix-trace-docs-build-with-sphinx-3..patch (fixed differently) + hw-hyperv-vmbus-Fix-32bit-compilation.patch + linux-user-properly-test-for-infinite-ti.patch + Switch-order-of-libraries-for-mpath-supp.patch (fixed differently) + Conditionalize-ui-bitmap-installation-be.patch (fixed differently) + hw-usb-hcd-xhci-Fix-GCC-9-build-warning.patch (no longer using gcc9) + hw-usb-dev-mtp-Fix-GCC-9-build-warning.patch (no longer using gcc9) + roms-Makefile-enable-cross-compile-for-b.patch (fixed with different patch) + libvhost-user-handle-endianness-as-manda.patch + virtio-add-vhost-user-fs-ccw-device.patch + Fix-s-directive-argument-is-null-error.patch + build-Workaround-compilation-error-with-.patch + build-Be-explicit-about-fcommon-compiler.patch + intel-Avoid-spurious-compiler-warning-on.patch + golan-Add-explicit-type-casts-for-nodnic.patch + Do-not-apply-WORKAROUND_CFLAGS-for-host-.patch + ensure-headers-included-are-compatible-w.patch + Enable-cross-compile-prefix-for-C-compil.patch (fixed differently) + hw-net-net_tx_pkt-fix-assertion-failure-.patch + hw-net-xgmac-Fix-buffer-overflow-in-xgma.patch + s390x-protvirt-allow-to-IPL-secure-guest.patch + usb-fix-setup_len-init-CVE-2020-14364.patch +* Patches added: + meson-install-ivshmem-client-and-ivshmem.patch + Revert-roms-efirom-tests-uefi-test-tools.patch + Makefile-Don-t-check-pc-bios-as-pre-requ.patch + roms-Makefile-add-cross-file-to-qboot-me.patch + qboot-add-cross.ini-file-to-handle-aarch.patch + usb-Help-compiler-out-to-avoid-a-warning.patch +- In spec file, where reasonable, switch BuildRequires: XXX-devel + to be pkgconfig(XXX') instead +- No longer disable link time optimization for qemu for x86. It looks like + either the build service, qemu code changes and/or the switch to meson + have resolved issues previously seen there. We still see problems for + other architectures however. +- For the record, the following issues reported for SUSE SLE15-SP2 + are either fixed in this current package, or are otherwise no longer + an issue: bsc#1172384 bsc#1174386 bsc#1174641 bsc#1174863 bsc#1175370 + bsc#1175441 bsc#1176494 CVE-2020-13361 CVE-2020-14364 CVE-2020-15863 + CVE-2020-16092 CVE-2020-24352 + and the following feature requests are satisfied by this package: + jsc#SLE-13689 jsc#SEL-13780 jsc#SLE-13840 +- To be more accurate, and to align with other qemu packaging + practices, rename the qemu-s390 package to qemu-s390x. The old + name (in the rpm namespace) is provided with a "Provides" + directive, and an "Obsoletes" done against that name for prior + qemu versions, as is standard practice (boo#1177764 jsc#SLE-17060) +- Take this opportunity to remove some ancient Split-Provides + mechanisms which can't conceivably be needed any more: + qemu-block-curl provided: qemu:%_libdir/%name/block-curl.so + qemu-guest-agent provided: qemu:%_bindir/qemu-ga + qemu-tools provided: qemu:%_libexecdir/qemu-bridge-helper + +------------------------------------------------------------------- +Mon Nov 30 19:23:18 UTC 2020 - Bruce Rogers + +- Disable linux-user 'ls' test on 32 bit arm. It's failing with + "Allocating guest commpage: Cannot allocate memory" error, which + we should hunt down, but for now we don't want it to prevent the + package from being built + ------------------------------------------------------------------- Tue Nov 24 21:24:59 UTC 2020 - Bruce Rogers diff --git a/qemu.spec b/qemu.spec index 107e5001..e544f246 100644 --- a/qemu.spec +++ b/qemu.spec @@ -20,7 +20,6 @@ %define _buildshell /bin/bash -%define build_in_tree 0 %define build_x86_firmware_from_source 0 %define build_skiboot_from_source 0 %define build_slof_from_source 0 @@ -28,7 +27,6 @@ %define kvm_available 0 %define legacy_qemu_kvm 0 %define force_fit_virtio_pxe_rom 1 -%define provide_edk2_firmware 0 %define build_rom_arch %ix86 x86_64 aarch64 @@ -94,9 +92,9 @@ %bcond_with system_membarrier -%define qemuver 5.1.0 -%define srcver 5.1.0 -%define sbver 1.13.0_48_gd9c812d +%define qemuver 5.2.0 +%define srcver 5.2.0 +%define sbver 1.14.0_0_g155821a %define srcname qemu Name: qemu%{name_suffix} URL: https://www.qemu.org/ @@ -125,10 +123,6 @@ Source14: 50-seabios-256k.json Source15: 60-seabios-128k.json Source200: qemu-rpmlintrc Source201: pkg-split.txt -Source202: qemu-ga-ref.html -Source203: qemu-ga-ref.txt -Source204: qemu-qmp-ref.html -Source205: qemu-qmp-ref.txt Source300: bundles.tar.xz Source301: update_git.sh Source302: config.sh @@ -137,91 +131,81 @@ Source303: README.PACKAGING # This patch queue is auto-generated - see README.PACKAGING for process # Patches applied in base project: -Patch00000: usb-fix-setup_len-init-CVE-2020-14364.patch -Patch00001: docs-fix-trace-docs-build-with-sphinx-3..patch -Patch00002: hw-hyperv-vmbus-Fix-32bit-compilation.patch -Patch00003: XXX-dont-dump-core-on-sigabort.patch -Patch00004: qemu-binfmt-conf-Modify-default-path.patch -Patch00005: qemu-cvs-gettimeofday.patch -Patch00006: qemu-cvs-ioctl_debug.patch -Patch00007: qemu-cvs-ioctl_nodirection.patch -Patch00008: linux-user-add-binfmt-wrapper-for-argv-0.patch -Patch00009: PPC-KVM-Disable-mmu-notifier-check.patch -Patch00010: linux-user-binfmt-support-host-binaries.patch -Patch00011: linux-user-Fake-proc-cpuinfo.patch -Patch00012: linux-user-use-target_ulong.patch -Patch00013: Make-char-muxer-more-robust-wrt-small-FI.patch -Patch00014: linux-user-lseek-explicitly-cast-non-set.patch -Patch00015: AIO-Reduce-number-of-threads-for-32bit-h.patch -Patch00016: xen_disk-Add-suse-specific-flush-disable.patch -Patch00017: qemu-bridge-helper-reduce-security-profi.patch -Patch00018: qemu-binfmt-conf-use-qemu-ARCH-binfmt.patch -Patch00019: linux-user-properly-test-for-infinite-ti.patch -Patch00020: roms-Makefile-pass-a-packaging-timestamp.patch -Patch00021: Raise-soft-address-space-limit-to-hard-l.patch -Patch00022: increase-x86_64-physical-bits-to-42.patch -Patch00023: i8254-Fix-migration-from-SLE11-SP2.patch -Patch00024: acpi_piix4-Fix-migration-from-SLE11-SP2.patch -Patch00025: Switch-order-of-libraries-for-mpath-supp.patch -Patch00026: Make-installed-scripts-explicitly-python.patch -Patch00027: hw-smbios-handle-both-file-formats-regar.patch -Patch00028: xen-add-block-resize-support-for-xen-dis.patch -Patch00029: tests-qemu-iotests-Triple-timeout-of-i-o.patch -Patch00030: tests-Fix-block-tests-to-be-compatible-w.patch -Patch00031: xen-ignore-live-parameter-from-xen-save-.patch -Patch00032: Conditionalize-ui-bitmap-installation-be.patch -Patch00033: tests-change-error-message-in-test-162.patch -Patch00034: hw-usb-hcd-xhci-Fix-GCC-9-build-warning.patch -Patch00035: hw-usb-dev-mtp-Fix-GCC-9-build-warning.patch -Patch00036: hw-intc-exynos4210_gic-provide-more-room.patch -Patch00037: configure-only-populate-roms-if-softmmu.patch -Patch00038: pc-bios-s390-ccw-net-avoid-warning-about.patch -Patch00039: roms-change-cross-compiler-naming-to-be-.patch -Patch00040: test-add-mapping-from-arch-of-i686-to-qe.patch -Patch00041: roms-Makefile-enable-cross-compile-for-b.patch -Patch00042: configure-remove-pkgversion-from-CONFIG_.patch -Patch00043: docs-add-SUSE-support-statements-to-html.patch -Patch00044: s390x-Fix-stringop-truncation-issue-repo.patch -Patch00045: Revert-qht-constify-qht_statistics_init.patch -Patch00046: qht-Revert-some-constification-in-qht.c.patch -Patch00047: libvhost-user-handle-endianness-as-manda.patch -Patch00048: virtio-add-vhost-user-fs-ccw-device.patch +Patch00000: XXX-dont-dump-core-on-sigabort.patch +Patch00001: qemu-binfmt-conf-Modify-default-path.patch +Patch00002: qemu-cvs-gettimeofday.patch +Patch00003: qemu-cvs-ioctl_debug.patch +Patch00004: qemu-cvs-ioctl_nodirection.patch +Patch00005: linux-user-add-binfmt-wrapper-for-argv-0.patch +Patch00006: PPC-KVM-Disable-mmu-notifier-check.patch +Patch00007: linux-user-binfmt-support-host-binaries.patch +Patch00008: linux-user-Fake-proc-cpuinfo.patch +Patch00009: linux-user-use-target_ulong.patch +Patch00010: Make-char-muxer-more-robust-wrt-small-FI.patch +Patch00011: linux-user-lseek-explicitly-cast-non-set.patch +Patch00012: AIO-Reduce-number-of-threads-for-32bit-h.patch +Patch00013: xen_disk-Add-suse-specific-flush-disable.patch +Patch00014: qemu-bridge-helper-reduce-security-profi.patch +Patch00015: qemu-binfmt-conf-use-qemu-ARCH-binfmt.patch +Patch00016: roms-Makefile-pass-a-packaging-timestamp.patch +Patch00017: Raise-soft-address-space-limit-to-hard-l.patch +Patch00018: increase-x86_64-physical-bits-to-42.patch +Patch00019: i8254-Fix-migration-from-SLE11-SP2.patch +Patch00020: acpi_piix4-Fix-migration-from-SLE11-SP2.patch +Patch00021: Make-installed-scripts-explicitly-python.patch +Patch00022: hw-smbios-handle-both-file-formats-regar.patch +Patch00023: xen-add-block-resize-support-for-xen-dis.patch +Patch00024: tests-qemu-iotests-Triple-timeout-of-i-o.patch +Patch00025: tests-Fix-block-tests-to-be-compatible-w.patch +Patch00026: xen-ignore-live-parameter-from-xen-save-.patch +Patch00027: tests-change-error-message-in-test-162.patch +Patch00028: hw-intc-exynos4210_gic-provide-more-room.patch +Patch00029: configure-only-populate-roms-if-softmmu.patch +Patch00030: pc-bios-s390-ccw-net-avoid-warning-about.patch +Patch00031: roms-change-cross-compiler-naming-to-be-.patch +Patch00032: test-add-mapping-from-arch-of-i686-to-qe.patch +Patch00033: configure-remove-pkgversion-from-CONFIG_.patch +Patch00034: docs-add-SUSE-support-statements-to-html.patch +Patch00035: s390x-Fix-stringop-truncation-issue-repo.patch +Patch00036: Revert-qht-constify-qht_statistics_init.patch +Patch00037: qht-Revert-some-constification-in-qht.c.patch +Patch00038: meson-install-ivshmem-client-and-ivshmem.patch +Patch00039: Revert-roms-efirom-tests-uefi-test-tools.patch +Patch00040: Makefile-Don-t-check-pc-bios-as-pre-requ.patch +Patch00041: roms-Makefile-add-cross-file-to-qboot-me.patch +Patch00042: usb-Help-compiler-out-to-avoid-a-warning.patch # Patches applied in roms/seabios/: Patch01000: seabios-use-python2-explicitly-as-needed.patch Patch01001: seabios-switch-to-python3-as-needed.patch Patch01002: enable-cross-compilation-on-ARM.patch # Patches applied in roms/ipxe/: -Patch02000: Fix-s-directive-argument-is-null-error.patch -Patch02001: build-Workaround-compilation-error-with-.patch -Patch02002: build-Be-explicit-about-fcommon-compiler.patch -Patch02003: intel-Avoid-spurious-compiler-warning-on.patch -Patch02004: golan-Add-explicit-type-casts-for-nodnic.patch -Patch02005: stub-out-the-SAN-req-s-in-int13.patch -Patch02006: ipxe-Makefile-fix-issues-of-build-reprod.patch -Patch02007: Do-not-apply-WORKAROUND_CFLAGS-for-host-.patch -Patch02008: help-compiler-out-by-initializing-array.patch +Patch02000: stub-out-the-SAN-req-s-in-int13.patch +Patch02001: ipxe-Makefile-fix-issues-of-build-reprod.patch +Patch02002: help-compiler-out-by-initializing-array.patch # Patches applied in roms/sgabios/: Patch03000: sgabios-Makefile-fix-issues-of-build-rep.patch Patch03001: roms-sgabios-Fix-csum8-to-be-built-by-ho.patch # Patches applied in ui/keycodemapdb/: Patch08000: Make-keycode-gen-output-reproducible-use.patch # Patches applied in roms/qboot/: -Patch11000: ensure-headers-included-are-compatible-w.patch -Patch11001: Enable-cross-compile-prefix-for-C-compil.patch +Patch11000: qboot-add-cross.ini-file-to-handle-aarch.patch # Please do not add patches manually here. BuildRoot: %{_tmppath}/%{name}-%{version}-build # ======================================================================== -%if "%{name}" == "qemu-linux-user" +# Common BuildRequires listed here: BuildRequires: fdupes BuildRequires: gcc-c++ +BuildRequires: meson +BuildRequires: ninja >= 1.7 +BuildRequires: python3-base >= 3.6 +BuildRequires: python3-setuptools +%if "%{name}" == "qemu-linux-user" BuildRequires: glib2-devel-static BuildRequires: glibc-devel-static -BuildRequires: makeinfo BuildRequires: pcre-devel-static -BuildRequires: python3-base >= 3.5 BuildRequires: zlib-devel-static # we must not install the qemu-linux-user package when under QEMU build %if 0%{?qemu_user_space_build:1} @@ -239,7 +223,7 @@ syscall layer occurs on the native hardware and operating system. %if %{build_x86_firmware_from_source} BuildRequires: acpica %endif -BuildRequires: alsa-devel +BuildRequires: pkgconfig(alsa) %if %{build_x86_firmware_from_source} BuildRequires: binutils-devel %endif @@ -262,94 +246,89 @@ BuildRequires: cross-x86_64-binutils BuildRequires: cross-x86_64-gcc%gcc_version %endif %endif -BuildRequires: curl-devel -BuildRequires: cyrus-sasl-devel +BuildRequires: pkgconfig(libcurl) +BuildRequires: pkgconfig(libsasl2) %if %{build_x86_firmware_from_source} BuildRequires: dos2unix %endif -BuildRequires: fdupes BuildRequires: flex -BuildRequires: gcc-c++ -BuildRequires: glib2-devel >= 2.48 +BuildRequires: pkgconfig(glib-2.0) >= 2.48 %if %{build_x86_firmware_from_source} BuildRequires: glibc-devel-32bit %endif -BuildRequires: glusterfs-devel >= 3 -BuildRequires: gtk3-devel >= 3.22 BuildRequires: libaio-devel BuildRequires: libattr-devel BuildRequires: libbz2-devel -BuildRequires: libcacard-devel >= 2.5.1 -BuildRequires: libcap-ng-devel -BuildRequires: libdrm-devel -BuildRequires: libepoxy-devel BuildRequires: libfdt-devel >= 1.4.2 -BuildRequires: libgbm-devel BuildRequires: libgcrypt-devel >= 1.5.0 -BuildRequires: libgnutls-devel >= 3.1.18 -BuildRequires: libiscsi-devel >= 1.9.0 -BuildRequires: libjpeg-devel +BuildRequires: pkgconfig(epoxy) +BuildRequires: pkgconfig(gbm) +BuildRequires: pkgconfig(glusterfs-api) >= 3 +BuildRequires: pkgconfig(gnutls) >= 3.1.18 +BuildRequires: pkgconfig(gtk+-3.0) >= 3.22 +BuildRequires: pkgconfig(libcacard) >= 2.5.1 +BuildRequires: pkgconfig(libcap-ng) +BuildRequires: pkgconfig(libdrm) +BuildRequires: pkgconfig(libiscsi) >= 1.9.0 +BuildRequires: pkgconfig(libjpeg) %if 0%{?with_daxctl} -BuildRequires: libndctl-devel +BuildRequires: pkgconfig(libndctl) %endif -BuildRequires: libnfs-devel >= 1.9.3 +BuildRequires: pkgconfig(libnfs) >= 1.9.3 %ifnarch %arm s390x BuildRequires: libnuma-devel %endif -BuildRequires: libpixman-1-0-devel >= 0.21.8 +BuildRequires: pkgconfig(pixman-1) >= 0.21.8 %ifarch x86_64 -BuildRequires: libpmem-devel +BuildRequires: pkgconfig(libpmem) %endif -BuildRequires: libpng-devel -BuildRequires: libpulse-devel +BuildRequires: pkgconfig(libpng) +BuildRequires: pkgconfig(libpulse) %if 0%{?with_rbd} BuildRequires: librbd-devel %endif BuildRequires: Mesa-devel -BuildRequires: libSDL2-devel -BuildRequires: libSDL2_image-devel -BuildRequires: libseccomp-devel >= 2.3.0 -BuildRequires: libslirp-devel >= 4.2.0 -BuildRequires: libspice-server-devel >= 0.12.5 -BuildRequires: libssh-devel >= 0.8 +BuildRequires: pkgconfig(libseccomp) >= 2.3.0 +BuildRequires: pkgconfig(libssh) >= 0.8 +BuildRequires: pkgconfig(slirp) >= 4.2.0 +BuildRequires: pkgconfig(spice-server) >= 0.12.5 %if 0%{?with_uring} -BuildRequires: liburing-devel >= %liburing_min_version +BuildRequires: pkgconfig(liburing) >= %liburing_min_version %endif -BuildRequires: libusb-1_0-devel >= 1.0.13 -BuildRequires: libvdeplug-devel -BuildRequires: libxkbcommon-devel BuildRequires: lzfse-devel -BuildRequires: lzo-devel -BuildRequires: makeinfo BuildRequires: multipath-tools-devel BuildRequires: pkgconfig(libudev) +BuildRequires: pkgconfig(libusb-1.0) >= 1.0.13 +BuildRequires: pkgconfig(lzo2) +BuildRequires: pkgconfig(vdeplug) +BuildRequires: pkgconfig(xkbcommon) %if %{build_x86_firmware_from_source} BuildRequires: nasm %endif -BuildRequires: ncurses-devel BuildRequires: pkgconfig BuildRequires: pwdutils BuildRequires: python3-Sphinx -BuildRequires: python3-base >= 3.5 BuildRequires: rdma-core-devel BuildRequires: snappy-devel -BuildRequires: spice-protocol-devel >= 0.12.3 +BuildRequires: pkgconfig(ncurses) +BuildRequires: pkgconfig(spice-protocol) >= 0.12.3 BuildRequires: pkgconfig(systemd) %{?systemd_ordering} %if %{kvm_available} BuildRequires: pkgconfig(udev) %endif +BuildRequires: update-desktop-files BuildRequires: usbredir-devel >= 0.6 -BuildRequires: virglrenderer-devel >= 0.4.1 -BuildRequires: vte-devel +BuildRequires: pkgconfig(virglrenderer) >= 0.4.1 +BuildRequires: pkgconfig(vte-2.91) %ifarch x86_64 BuildRequires: xen-devel >= 4.2 %endif BuildRequires: xfsprogs-devel %if %{build_x86_firmware_from_source} -BuildRequires: xz-devel +BuildRequires: pkgconfig(liblzma) %endif -BuildRequires: zlib-devel +BuildRequires: pkgconfig(zlib) %if "%{name}" == "qemu" Requires: group(kvm) Requires: group(qemu) @@ -364,12 +343,19 @@ Requires(post): procps Recommends: kvm_stat %endif Recommends: qemu-block-curl +Recommends: qemu-chardev-spice 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-redirect Recommends: qemu-hw-usb-smartcard +Recommends: qemu-ksm = %{qemuver} Recommends: qemu-tools +Recommends: qemu-ui-opengl Recommends: qemu-ui-curses Recommends: qemu-ui-gtk +Recommends: qemu-ui-spice-core Recommends: qemu-ui-spice-app Recommends: qemu-x86 %ifarch ppc ppc64 ppc64le @@ -378,9 +364,9 @@ Recommends: qemu-ppc Suggests: qemu-ppc %endif %ifarch s390x -Recommends: qemu-s390 +Recommends: qemu-s390x %else -Suggests: qemu-s390 +Suggests: qemu-s390x %endif %ifarch %arm aarch64 Recommends: qemu-arm @@ -399,7 +385,6 @@ Suggests: qemu-chardev-baum Suggests: qemu-extra Suggests: qemu-skiboot Suggests: qemu-lang -Recommends: qemu-ksm = %{qemuver} Suggests: qemu-microvm Suggests: qemu-vhost-user-gpu Obsoletes: qemu-audio-oss < %{qemuver} @@ -451,14 +436,16 @@ Recommends: qemu-vgabios This package provides ppc and ppc64 emulation. -%package s390 +%package s390x Summary: Machine emulator and virtualizer for S/390 architectures Group: System/Emulators/PC Version: %{qemuver} Release: 0 Requires: %name = %{qemuver} +Provides: qemu-s390 = %{qemuver} +Obsoletes: qemu-s390 < %{qemuver} -%description s390 +%description s390x %{generic_qemu_description} This package provides s390x emulation. @@ -506,7 +493,7 @@ Release: 0 Requires: qemu-x86 = %{qemuver} %endif %ifarch s390x -Requires: qemu-s390 = %{qemuver} +Requires: qemu-s390x = %{qemuver} %endif Provides: kvm = %{qemuver} Obsoletes: kvm < %{qemuver} @@ -562,12 +549,22 @@ Release: 0 %description audio-pa This package contains a module for Pulse Audio based audio support for QEMU. +%package audio-spice +Summary: Spice based audio support for QEMU +Group: System/Emulators/PC +Version: %{qemuver} +Release: 0 +Provides: %name:%_datadir/%name/forsplits/05 +%{qemu_module_conflicts} + +%description audio-spice +This package contains a module for Spice based audio support for QEMU. + %package block-curl Summary: cURL block support for QEMU Group: System/Emulators/PC Version: %{qemuver} Release: 0 -Provides: %name:%_libdir/%name/block-curl.so %{qemu_module_conflicts} %description block-curl @@ -646,31 +643,72 @@ Group: System/Emulators/PC Version: %{qemuver} Release: 0 Provides: %name:%_datadir/%name/forsplits/00 -Provides: %name:%_docdir/%name/qemu-ga-ref.html %{qemu_module_conflicts} %description chardev-baum This package contains a module for baum braille chardev support. +%package chardev-spice +Summary: Spice vmc and port chardev support for QEMU +Group: System/Emulators/PC +Version: %{qemuver} +Release: 0 +Provides: %name:%_datadir/%name/forsplits/08 +%{qemu_module_conflicts} + +%description chardev-spice +This package contains a module for Spice chardev support. + %package hw-display-qxl Summary: QXL display support for QEMU Group: System/Emulators/PC Version: %{qemuver} Release: 0 Provides: %name:%_datadir/%name/forsplits/01 -Provides: %name:%_docdir/%name/qemu-ga-ref.txt %{qemu_module_conflicts} %description hw-display-qxl This package contains a module for QXL display support. +%package hw-display-virtio-gpu +Summary: Virtio GPU display support for QEMU +Group: System/Emulators/PC +Version: %{qemuver} +Release: 0 +Provides: %name:%_datadir/%name/forsplits/04 +%{qemu_module_conflicts} + +%description hw-display-virtio-gpu +This package contains a module for Virtio GPU display support. + +%package hw-display-virtio-gpu-pci +Summary: Virtio-gpu driver for QEMU +Group: System/Emulators/PC +Version: %{qemuver} +Release: 0 +Provides: %name:%_datadir/%name/forsplits/11 +%{qemu_module_conflicts} + +%description hw-display-virtio-gpu-pci +This package contains a virtio gpu driver for QEMU + +%package hw-display-virtio-vga +Summary: Virtio vga driver for QEMU +Group: System/Emulators/PC +Version: %{qemuver} +Release: 0 +Provides: %name:%_datadir/%name/forsplits/12 +%{qemu_module_conflicts} + +%description hw-display-virtio-vga +This package contains a virtio vga driver for QEMU + %package hw-usb-redirect Summary: USB redirection support for QEMU Group: System/Emulators/PC Version: %{qemuver} Release: 0 Provides: %name:%_datadir/%name/forsplits/02 -Provides: %name:%_docdir/%name/qemu-qmp-ref.html %{qemu_module_conflicts} %description hw-usb-redirect @@ -682,7 +720,6 @@ Group: System/Emulators/PC Version: %{qemuver} Release: 0 Provides: %name:%_datadir/%name/forsplits/03 -Provides: %name:%_docdir/%name/qemu-qmp-ref.txt %{qemu_module_conflicts} %description hw-usb-smartcard @@ -708,6 +745,28 @@ Release: 0 %description ui-gtk This package contains a module for doing GTK based UI for QEMU. +%package ui-opengl +Summary: OpenGL based UI support for QEMU +Group: System/Emulators/PC +Version: %{qemuver} +Release: 0 +Provides: %name:%_datadir/%name/forsplits/10 +%{qemu_module_conflicts} + +%description ui-opengl +This package contains a module for doing OpenGL based UI for QEMU. + +%package ui-spice-core +Summary: Core Spice support for QEMU +Group: System/Emulators/PC +Version: %{qemuver} +Release: 0 +Provides: %name:%_datadir/%name/forsplits/09 +%{qemu_module_conflicts} + +%description ui-spice-core +This package contains a module with core Spice support for QEMU. + %package ui-spice-app Summary: Spice UI support for QEMU Group: System/Emulators/PC @@ -733,7 +792,6 @@ Summary: Tools for QEMU Group: System/Emulators/PC Version: %{qemuver} Release: 0 -Provides: %name:%_libexecdir/qemu-bridge-helper Requires(pre): permissions Requires: group(kvm) Recommends: multipath-tools @@ -746,12 +804,24 @@ Recommends: qemu-block-rbd This package contains various QEMU related tools, including a bridge helper, a virtfs helper, ivshmem, disk utilities and scripts for various purposes. +%package ivshmem-tools +Summary: Inter-VM Shared Memory Tools for QEMU +Group: System/Emulators/PC +Version: %{qemuver} +Release: 0 +Provides: %name:%_datadir/%name/forsplits/07 + +%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. + %package guest-agent Summary: Guest agent for QEMU Group: System/Emulators/PC Version: %{qemuver} Release: 0 -Provides: %name:%_bindir/qemu-ga Requires: group(kvm) Requires(post): udev Supplements: modalias(acpi*:QEMU0002%3A*) @@ -773,8 +843,9 @@ BuildArch: noarch %description microvm This package provides minimal x86 firmware for booting certain guests. -qboot based bios-microvm provides the minimum resources needed to boot PVH and -bzImages. +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. %package seabios Summary: x86 Legacy BIOS for QEMU @@ -827,18 +898,6 @@ Provides Preboot Execution Environment (PXE) ROM support for various emulated network adapters available with QEMU. %endif -%if %{provide_edk2_firmware} -%package edk2 -Summary: EDK II based firmware -Group: System/Emulators/PC -Version: %{qemuver} -Release: 0 -BuildArch: noarch - -%description edk2 -Provides EDK II based firmware. -%endif - %package skiboot Summary: OPAL firmware (aka skiboot), used in booting OpenPOWER systems Group: System/Emulators/PC @@ -867,11 +926,12 @@ merges anonymous (private) pages (not pagecache ones). This package provides a service file for starting and stopping KSM. -%else #qemu +%else # qemu BuildRequires: bc BuildRequires: qemu-arm = %{qemuver} BuildRequires: qemu-audio-alsa = %{qemuver} BuildRequires: qemu-audio-pa = %{qemuver} +BuildRequires: qemu-audio-spice = %{qemuver} BuildRequires: qemu-block-curl = %{qemuver} BuildRequires: qemu-block-dmg = %{qemuver} BuildRequires: qemu-block-gluster = %{qemuver} @@ -882,28 +942,30 @@ BuildRequires: qemu-block-rbd = %{qemuver} %endif BuildRequires: qemu-block-ssh = %{qemuver} BuildRequires: qemu-chardev-baum = %{qemuver} -%if %{provide_edk2_firmware} -BuildRequires: qemu-edk2 = %{qemuver} -%endif +BuildRequires: qemu-chardev-spice = %{qemuver} BuildRequires: qemu-extra = %{qemuver} BuildRequires: qemu-guest-agent = %{qemuver} BuildRequires: qemu-hw-display-qxl = %{qemuver} +BuildRequires: qemu-hw-display-virtio-gpu = %{qemuver} BuildRequires: qemu-hw-usb-redirect = %{qemuver} BuildRequires: qemu-hw-usb-smartcard = %{qemuver} BuildRequires: qemu-ipxe = 1.0.0+ +BuildRequires: qemu-ivshmem-tools = %{qemuver} BuildRequires: qemu-ksm = %{qemuver} BuildRequires: qemu-lang = %{qemuver} -BuildRequires: qemu-ppc = %{qemuver} -BuildRequires: qemu-s390 = %{qemuver} +BuildRequires: qemu-ppc = %{qemuver} +BuildRequires: qemu-s390x = %{qemuver} BuildRequires: qemu-seabios = %{sbver} BuildRequires: qemu-sgabios = 8 BuildRequires: qemu-skiboot = %{qemuver} BuildRequires: qemu-tools = %{qemuver} BuildRequires: qemu-ui-curses = %{qemuver} BuildRequires: qemu-ui-gtk = %{qemuver} +BuildRequires: qemu-ui-opengl = %{qemuver} BuildRequires: qemu-ui-spice-app = %{qemuver} +BuildRequires: qemu-ui-spice-core = %{qemuver} BuildRequires: qemu-vgabios = %{sbver} -BuildRequires: qemu-x86 = %{qemuver} +BuildRequires: qemu-x86 = %{qemuver} %description This package records qemu testsuite results and represents successful testing. @@ -915,9 +977,7 @@ This package records qemu testsuite results and represents successful testing. %prep %setup -q -n %{srcname}-%{expand:%%(SV=%{srcver};echo ${SV%%%%+git*})} %patch00000 -p1 -%if 0%{?suse_version} > 1500 %patch00001 -p1 -%endif %patch00002 -p1 %patch00003 -p1 %patch00004 -p1 @@ -950,75 +1010,63 @@ This package records qemu testsuite results and represents successful testing. %patch00031 -p1 %patch00032 -p1 %patch00033 -p1 +%if %{legacy_qemu_kvm} %patch00034 -p1 +%endif %patch00035 -p1 %patch00036 -p1 %patch00037 -p1 %patch00038 -p1 %patch00039 -p1 %patch00040 -p1 +%ifarch aarch64 %patch00041 -p1 -%patch00042 -p1 -%if %{legacy_qemu_kvm} -%patch00043 -p1 %endif -%patch00044 -p1 -%patch00045 -p1 -%patch00046 -p1 -%patch00047 -p1 -%patch00048 -p1 +%ifarch %arm %ix86 +%patch00042 -p1 +%endif %patch01000 -p1 %patch01001 -p1 %patch01002 -p1 +%if 0%{?patch-possibly-applied-elsewhere} %patch02000 -p1 +%endif %patch02001 -p1 %patch02002 -p1 -%patch02003 -p1 -%patch02004 -p1 -%if 0%{?patch-possibly-applied-elsewhere} -%patch02005 -p1 -%endif -%patch02006 -p1 -%ifarch aarch64 -%patch02007 -p1 -%endif -%patch02008 -p1 %patch03000 -p1 %patch03001 -p1 %patch08000 -p1 %patch11000 -p1 -%patch11001 -p1 %if "%{name}" != "qemu-linux-user" # 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-virt-fw_jump.bin +# u-boot.e500 u-boot-sam460-20100605.bin opensbi-riscv32-generic-fw_dynamic.bin +# opensbi-riscv32-generic-fw_dynamic.elf npcm7xx_bootrom.bin # This first list group isn't specific to what this instance builds %define ppc_default_firmware {%nil} %define ppc_extra_firmware {skiboot.lid slof.bin} %define ppc64_only_default_firmware {%nil} %define ppc64_only_extra_firmware {%nil} -%define riscv64_default_firmware {opensbi-riscv64-sifive_u-fw_jump.bin \ -opensbi-riscv64-virt-fw_jump.bin} +%define riscv64_default_firmware {opensbi-riscv64-generic-fw_dynamic.bin \ +opensbi-riscv64-generic-fw_dynamic.elf} %define riscv64_extra_firmware {%nil} %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 \ kvmvapic.bin pvh.bin} -%define x86_extra_firmware {bios.bin bios-256k.bin bios-microvm.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 sgabios.bin 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} %define x86_64_only_default_firmware {%nil} -%define x86_64_only_extra_firmware {edk2-aarch64-code.fd.bz2 \ -edk2-arm-code.fd.bz2 edk2-arm-vars.fd.bz2 edk2-i386-code.fd.bz2 \ -edk2-i386-secure-code.fd.bz2 edk2-i386-vars.fd.bz2 edk2-x86_64-code.fd.bz2 \ -edk2-x86_64-secure-code.fd.bz2 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} +%define x86_64_only_extra_firmware {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} %define firmware { \ %{?ppc_default_firmware} %{?ppc_extra_firmware} \ @@ -1078,49 +1126,28 @@ efi-ne2k_pci.rom efi-pcnet.rom efi-rtl8139.rom efi-virtio.rom efi-vmxnet3.rom} %{?x86_default_built_firmware} %{?x86_extra_built_firmware} \ %{?x86_64_only_default_built_firmware} %{?x86_64_only_extra_built_firmware} } -%if "%{name}" != "qemu-testsuite" - -# delete the firmware files that we intend to build -for i in %built_firmware -do - unlink pc-bios/$i -done - -# ------------------------------------------------------------------------ -%else # qemu-testsuite - -# delete the firmware files that we intend to link from built packages -for i in %firmware -do - if [[ $i =~ .*[.]bz2 ]]; then - echo "Skipping %i" - else - unlink pc-bios/$i - fi -done - -%endif # qemu-testsuite %endif # ! qemu-linux-user # ======================================================================== %build -%define _lto_cflags %{nil} -%if %build_in_tree -%define mybuilddir %{_builddir}/%buildsubdir -%else -%define mybuilddir %{_builddir}/mybuilddir -mkdir -p %mybuilddir -cd %mybuilddir +# non-x86 archs still seem to have some issues with Link Time Optimization +%ifnarch %ix86 x86_64 +%define _lto_cflags %{nil} %endif -../%buildsubdir/configure \ +%define srcdir %{_builddir}/%buildsubdir +%define blddir %srcdir/build +mkdir -p %blddir +cd %blddir + +%srcdir/configure \ --prefix=%_prefix \ --sysconfdir=%_sysconfdir \ --libdir=%_libdir \ --libexecdir=%_libexecdir \ --localstatedir=%_localstatedir \ - --docdir=%_docdir/%name \ + --docdir=%_docdir \ --firmwarepath=%_datadir/%name \ --python=%_bindir/python3 \ --extra-cflags="%{optflags}" \ @@ -1134,11 +1161,7 @@ cd %mybuilddir --enable-tools --enable-guest-agent \ --enable-modules \ --disable-module-upgrades \ -%if 1 --enable-slirp=system \ -%else - --enable-slirp=git \ -%endif --enable-pie \ --enable-docs \ --audio-drv-list="pa alsa" \ @@ -1186,7 +1209,9 @@ cd %mybuilddir --disable-libxml2 \ --enable-linux-aio \ %if 0%{?with_uring} - --enable-linux-io-uring \ + --enable-linux-io-uring \ +%else + --disable-linux-io-uring \ %endif --enable-lzfse \ --enable-lzo \ @@ -1236,6 +1261,7 @@ cd %mybuilddir --enable-vhost-net \ --enable-vhost-scsi \ --enable-vhost-user \ + --enable-vhost-user-blk-server \ --enable-vhost-user-fs \ --enable-vhost-vdpa \ --enable-vhost-vsock \ @@ -1277,6 +1303,7 @@ cd %mybuilddir --disable-iconv \ --disable-kvm \ --disable-libdaxctl \ + --disable-linux-io-uring \ --disable-malloc-trim \ %if %{with system_membarrier} --enable-membarrier \ @@ -1298,6 +1325,7 @@ cd %mybuilddir --disable-vhost-net \ --disable-vhost-scsi \ --disable-vhost-user \ + --disable-vhost-user-blk-server \ --disable-vhost-user-fs \ --disable-vhost-vsock \ --disable-vnc \ @@ -1307,6 +1335,12 @@ cd %mybuilddir %if "%{name}" == "qemu" +# delete the firmware files that we intend to build +for i in %built_firmware +do + unlink %srcdir/pc-bios/$i +done + make %{?_smp_mflags} V=1 # Firmware @@ -1314,26 +1348,26 @@ make %{?_smp_mflags} V=1 %ifarch s390x for i in %s390x_default_built_firmware do - cp pc-bios/s390-ccw/$i %{_builddir}/%buildsubdir/pc-bios/ + cp pc-bios/s390-ccw/$i %srcdir/pc-bios/ done %endif %ifarch ppc64 for i in %ppc64_only_default_built_firmware do - cp pc-bios/spapr-rtas/$i %{_builddir}/%buildsubdir/pc-bios/ + cp pc-bios/spapr-rtas/$i %srcdir/pc-bios/ done %endif %ifarch %ix86 x86_64 for i in %x86_default_built_firmware do - cp pc-bios/optionrom/$i %{_builddir}/%buildsubdir/pc-bios/ + cp pc-bios/optionrom/$i %srcdir/pc-bios/ done %ifarch x86_64 for i in %x86_64_only_default_built_firmware do - cp pc-bios/optionrom/$i %{_builddir}/%buildsubdir/pc-bios/ + cp pc-bios/optionrom/$i %srcdir/pc-bios/ done %endif %endif @@ -1344,46 +1378,39 @@ export CC=x86_64-suse-linux-gcc export LD=x86_64-suse-linux-ld %endif -make %{?_smp_mflags} -C %{_builddir}/%buildsubdir/roms bios \ +make %{?_smp_mflags} -C %srcdir/roms bios \ SEABIOS_EXTRAVERSION="-rebuilt.opensuse.org" \ %ifnarch %ix86 x86_64 HOSTCC=cc \ %endif -make %{?_smp_mflags} -C %{_builddir}/%buildsubdir/roms bios-microvm +make %{?_smp_mflags} -C %srcdir/roms qboot -%ifnarch %ix86 -%if %{provide_edk2_firmware} -make %{?_smp_mflags} -C %{_builddir}/%buildsubdir/roms efi \ - EDK2_BASETOOLS_OPTFLAGS='-fPIE' -%endif -%endif - -make %{?_smp_mflags} -C %{_builddir}/%buildsubdir/roms seavgabios \ +make %{?_smp_mflags} -C %srcdir/roms seavgabios \ %ifnarch %ix86 x86_64 HOSTCC=cc \ %endif -make %{?_smp_mflags} -C %{_builddir}/%buildsubdir/roms seavgabios-ati \ +make %{?_smp_mflags} -C %srcdir/roms seavgabios-ati \ %ifnarch %ix86 x86_64 HOSTCC=cc \ %endif -make %{?_smp_mflags} -C %{_builddir}/%buildsubdir/roms pxerom +make %{?_smp_mflags} -C %srcdir/roms pxerom %ifnarch %ix86 -make %{?_smp_mflags} -C %{_builddir}/%buildsubdir/roms efirom \ +make %{?_smp_mflags} -C %srcdir/roms efirom \ EDK2_BASETOOLS_OPTFLAGS='-fPIE' %endif -make -C %{_builddir}/%buildsubdir/roms sgabios \ +make -C %srcdir/roms sgabios \ HOSTCC=cc %if %{force_fit_virtio_pxe_rom} -pushd %{_builddir}/%buildsubdir +pushd %srcdir patch -p1 < %_sourcedir/stub-out-the-SAN-req-s-in-int13.patch popd -make %{?_smp_mflags} -C %{_builddir}/%buildsubdir/roms pxerom_variants=virtio pxerom_targets=1af41000 pxerom +make %{?_smp_mflags} -C %srcdir/roms pxerom_variants=virtio pxerom_targets=1af41000 pxerom %endif # enforce pxe rom sizes for migration compatability from SLE 11 SP3 forward @@ -1396,18 +1423,18 @@ make %{?_smp_mflags} -C %{_builddir}/%buildsubdir/roms pxerom_variants=virtio px for i in %supported_nics_large %unsupported_nics do - if test "`stat -c '%s' %{_builddir}/%buildsubdir/pc-bios/pxe-$i.rom`" -gt "131072" ; then + 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' %{_builddir}/%buildsubdir/pc-bios/pxe-$i.rom`" -le "65536" ; then - ./%{_builddir}/%buildsubdir/roms/ipxe/src/util/padimg.pl %{_builddir}/%buildsubdir/pc-bios/pxe-$i.rom -s 65536 -b 255 - echo -ne "SEGMENT OVERAGE\0" >> %{_builddir}/%buildsubdir/pc-bios/pxe-$i.rom + 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' %{_builddir}/%buildsubdir/pc-bios/pxe-$i.rom`" -gt "65536" ; then + if test "`stat -c '%s' %srcdir/pc-bios/pxe-$i.rom`" -gt "65536" ; then echo "pxe rom is too large" exit 1 fi @@ -1419,16 +1446,15 @@ unset LD %endif %if %{build_skiboot_from_source} -make %{?_smp_mflags} -C %{_builddir}/%buildsubdir/roms skiboot CROSS= +make %{?_smp_mflags} -C %srcdir/roms skiboot CROSS= %endif %if %{build_slof_from_source} -make %{?_smp_mflags} -C %{_builddir}/%buildsubdir/roms slof +make %{?_smp_mflags} -C %srcdir/roms slof %endif %if %{build_opensbi_from_source} -make %{?_smp_mflags} -C %{_builddir}/%buildsubdir/roms opensbi64-virt CROSS_COMPILE= -make %{?_smp_mflags} -C %{_builddir}/%buildsubdir/roms opensbi64-sifive_u CROSS_COMPILE= +make %{?_smp_mflags} -C %srcdir/roms opensbi64-generic CROSS_COMPILE= %endif %endif # qemu @@ -1445,25 +1471,23 @@ ln -s %_bindir/qemu-edid qemu-edid ln -s %_bindir/qemu-keymap qemu-keymap ln -s %_bindir/ivshmem-client ivshmem-client ln -s %_bindir/ivshmem-server ivshmem-server -ln -s %_bindir/qemu-pr-helper scsi/qemu-pr-helper -ln -s %_bindir/virtfs-proxy-helper fsdev/virtfs-proxy-helper +ln -s %_bindir/qemu-pr-helper qemu-pr-helper +ln -s %_libexecdir/virtfs-proxy-helper fsdev/virtfs-proxy-helper for i in %firmware do - if [[ $i =~ .*[.]bz2 ]]; then - echo "Skipping $i" - else - ln -s %_datadir/qemu/$i pc-bios/$i + unlink pc-bios/$i + ln -s %_datadir/qemu/$i pc-bios/$i +done + +for conf in %{_builddir}/%buildsubdir/default-configs/targets/*-softmmu.mak; do + arch=`echo "$conf" | sed -e 's|%{_builddir}/%buildsubdir/default-configs/targets/\(.*\)-softmmu.mak|\1|g'` + if $(unlink $arch-softmmu/qemu-system-$arch); then + ln -s %_bindir/qemu-system-$arch $arch-softmmu/qemu-system-$arch fi done -for conf in %{_builddir}/%buildsubdir/default-configs/*-softmmu.mak; do - arch=`echo "$conf" | sed -e 's|%{_builddir}/%buildsubdir/default-configs/\(.*\)-softmmu.mak|\1|g'` - ln -s %_bindir/qemu-system-$arch $arch-softmmu/qemu-system-$arch -done - # Compile the QOM test binary first, so that ... -touch -r config-host.mak pc-bios make %{?_smp_mflags} tests/qtest/qom-test V=1 # ... make comes in fresh and has lots of address space (needed for 32bit, bsc#957379) make %{?_smp_mflags} check-report.tap V=1 @@ -1503,7 +1527,7 @@ make %{?_smp_mflags} V=1 # ======================================================================== %check -cd %mybuilddir +cd %blddir %if "%{name}" == "qemu-testsuite" export QEMU_PROG=%_bindir/qemu-system-x86_64 @@ -1517,7 +1541,9 @@ make %{?_smp_mflags} check-block V=1 %if "%{name}" == "qemu-linux-user" %ifarch %ix86 x86_64 %arm aarch64 ppc ppc64 ppc64le s390x +%ifnarch %arm %{qemu_arch}-linux-user/qemu-%{qemu_arch} %_bindir/ls > /dev/null +%endif make %{?_smp_mflags} check-softfloat %endif @@ -1526,7 +1552,7 @@ make %{?_smp_mflags} check-softfloat # ======================================================================== %install -cd %mybuilddir +cd %blddir %if "%{name}" == "qemu-testsuite" @@ -1541,6 +1567,39 @@ 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 +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-hppa-binfmt +ln -s qemu-binfmt %{buildroot}%_bindir/qemu-i386-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-nios2-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 %fdupes -s %{buildroot} %endif # qemu-linux-user @@ -1548,35 +1607,14 @@ install -m 755 scripts/qemu-binfmt-conf.sh %{buildroot}%_sbindir %if "%{name}" == "qemu" make %{?_smp_mflags} install DESTDIR=%{buildroot} -%ifnarch %{build_rom_arch} -for f in %{x86_extra_firmware} \ - %{x86_64_only_extra_firmware}; do - unlink %{buildroot}%_datadir/%name/${f%.bz2} -done -%define do_more_edk2_unlinks 1 -%else -%ifarch %ix86 aarch64 -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-licenses.txt || true -unlink %{buildroot}%_datadir/%name/edk2-x86_64-code.fd -unlink %{buildroot}%_datadir/%name/edk2-x86_64-secure-code.fd -%endif +%ifarch %{build_rom_arch} 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 -%endif -%if 0%{?do_more_edk2_unlinks} || %{provide_edk2_firmware} == 0 -unlink %{buildroot}%_datadir/%name/edk2-licenses.txt || true -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 +%else +for f in %{x86_extra_firmware} \ + %{x86_64_only_extra_firmware}; do + unlink %{buildroot}%_datadir/%name/$f +done %endif %find_lang %name install -d -m 0755 %{buildroot}%_datadir/%name/firmware @@ -1591,7 +1629,7 @@ install -D -m 0755 %{SOURCE9} %{buildroot}%_libexecdir/supportconfig/plugins/%na 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-s390/supported.txt +install -D -m 0644 %{SOURCE13} %{buildroot}%_docdir/qemu-s390x/supported.txt %if %{legacy_qemu_kvm} cat > %{buildroot}%_bindir/qemu-kvm << 'EOF' #!/bin/sh @@ -1606,8 +1644,8 @@ chmod 755 %{buildroot}%_bindir/qemu-kvm install -D -m 0644 %{SOURCE5} %{buildroot}%_mandir/man1/qemu-kvm.1.gz install -d %{buildroot}%_docdir/qemu-kvm %ifarch s390x -ln -s ../qemu-s390/supported.txt %{buildroot}%_docdir/qemu-kvm/kvm-supported.txt -rst2html --exit-status=2 %{buildroot}%_docdir/qemu-s390/supported.txt %{buildroot}%_docdir/qemu-kvm/kvm-supported.html +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 @@ -1621,11 +1659,26 @@ 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 %endif -install -D -m 0644 %{SOURCE202} %{buildroot}%_docdir/%name/qemu-ga-ref.html -install -D -m 0644 %{SOURCE203} %{buildroot}%_docdir/%name/qemu-ga-ref.txt -install -D -m 0644 %{SOURCE204} %{buildroot}%_docdir/%name/qemu-qmp-ref.html -install -D -m 0644 %{SOURCE205} %{buildroot}%_docdir/%name/qemu-qmp-ref.txt -mv %{buildroot}%_libexecdir/qemu-pr-helper %{buildroot}%_bindir/qemu-pr-helper + +# 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 # in support of update-alternatives mv %{buildroot}%_datadir/%name/skiboot.lid %{buildroot}%_datadir/%name/skiboot.lid.qemu @@ -1638,6 +1691,7 @@ for X in 00 01 02 03 04 05 06 07 08 09 10 11 12 13 do ln -s pkg-split.txt %{buildroot}%_datadir/%name/forsplits/$X done +%suse_update_desktop_file qemu %fdupes -s %{buildroot} # ======================================================================== @@ -1710,7 +1764,7 @@ fi # ======================================================================== %files %defattr(-, root, root) -%doc Changelog README.rst VERSION +%doc README.rst VERSION %license COPYING COPYING.LIB LICENSE %if "%{name}" == "qemu" @@ -1731,16 +1785,8 @@ fi %dir %_datadir/%name %dir %_datadir/%name/firmware %dir %_datadir/%name/forsplits -%_datadir/%name/forsplits/pkg-split.txt -%_datadir/%name/forsplits/04 -%_datadir/%name/forsplits/05 -%_datadir/%name/forsplits/07 -%_datadir/%name/forsplits/08 -%_datadir/%name/forsplits/09 -%_datadir/%name/forsplits/10 -%_datadir/%name/forsplits/11 -%_datadir/%name/forsplits/12 %_datadir/%name/forsplits/13 +%_datadir/%name/forsplits/pkg-split.txt %_datadir/%name/keymaps %_datadir/%name/qemu-ifup %_datadir/%name/qemu-nsis.bmp @@ -1754,6 +1800,7 @@ fi %dir %_docdir/%name/system %dir %_docdir/%name/system/_static %dir %_docdir/%name/system/arm +%dir %_docdir/%name/system/i386 %dir %_docdir/%name/system/s390x %dir %_docdir/%name/tools %dir %_docdir/%name/tools/_static @@ -1771,9 +1818,7 @@ fi %_docdir/%name/interop/objects.inv %_docdir/%name/interop/pr-helper.html %_docdir/%name/interop/qemu-ga-ref.html -%_docdir/%name/interop/qemu-ga-ref.txt %_docdir/%name/interop/qemu-qmp-ref.html -%_docdir/%name/interop/qemu-qmp-ref.txt %_docdir/%name/interop/search.html %_docdir/%name/interop/searchindex.js %_docdir/%name/interop/vhost-user.html @@ -1786,6 +1831,7 @@ fi %_docdir/%name/specs/genindex.html %_docdir/%name/specs/index.html %_docdir/%name/specs/objects.inv +%_docdir/%name/specs/ppc-spapr-numa.html %_docdir/%name/specs/ppc-spapr-xive.html %_docdir/%name/specs/ppc-xive.html %_docdir/%name/specs/search.html @@ -1803,19 +1849,26 @@ fi %_docdir/%name/system/arm/musca.html %_docdir/%name/system/arm/musicpal.html %_docdir/%name/system/arm/nseries.html +%_docdir/%name/system/arm/nuvoton.html %_docdir/%name/system/arm/orangepi.html %_docdir/%name/system/arm/palm.html +%_docdir/%name/system/arm/raspi.html %_docdir/%name/system/arm/realview.html +%_docdir/%name/system/arm/sbsa.html %_docdir/%name/system/arm/stellaris.html %_docdir/%name/system/arm/sx1.html %_docdir/%name/system/arm/versatile.html %_docdir/%name/system/arm/vexpress.html %_docdir/%name/system/arm/virt.html +%_docdir/%name/system/arm/xlnx-versal-virt.html %_docdir/%name/system/arm/xscale.html %_docdir/%name/system/build-platforms.html +%_docdir/%name/system/cpu-hotplug.html %_docdir/%name/system/deprecated.html %_docdir/%name/system/gdb.html %_docdir/%name/system/genindex.html +%_docdir/%name/system/i386/microvm.html +%_docdir/%name/system/i386/pc.html %_docdir/%name/system/images.html %_docdir/%name/system/index.html %_docdir/%name/system/invocation.html @@ -1828,11 +1881,13 @@ fi %_docdir/%name/system/mux-chardev.html %_docdir/%name/system/net.html %_docdir/%name/system/objects.inv +%_docdir/%name/system/pr-manager.html %_docdir/%name/system/qemu-block-drivers.html %_docdir/%name/system/qemu-cpu-models.html %_docdir/%name/system/qemu-manpage.html %_docdir/%name/system/quickstart.html %_docdir/%name/system/s390x/3270.html +%_docdir/%name/system/s390x/bootdevices.html %_docdir/%name/system/s390x/css.html %_docdir/%name/system/s390x/protvirt.html %_docdir/%name/system/s390x/vfio-ap.html @@ -1854,6 +1909,8 @@ fi %_docdir/%name/system/targets.html %_docdir/%name/system/tls.html %_docdir/%name/system/usb.html +%_docdir/%name/system/virtio-net-failover.html +%_docdir/%name/system/virtio-pmem.html %_docdir/%name/system/vnc-security.html %_docdir/%name/tools/.buildinfo %_docdir/%name/tools/_static/* @@ -1862,6 +1919,7 @@ fi %_docdir/%name/tools/objects.inv %_docdir/%name/tools/qemu-img.html %_docdir/%name/tools/qemu-nbd.html +%_docdir/%name/tools/qemu-pr-helper.html %_docdir/%name/tools/qemu-trace-stap.html %_docdir/%name/tools/search.html %_docdir/%name/tools/searchindex.js @@ -1919,18 +1977,19 @@ fi %dir %_docdir/qemu-ppc %_docdir/qemu-ppc/supported.txt -%files s390 +%files s390x %defattr(-, root, root) %_bindir/qemu-system-s390x %_datadir/%name/s390-ccw.img %_datadir/%name/s390-netboot.img -%dir %_docdir/qemu-s390 -%_docdir/qemu-s390/supported.txt +%dir %_docdir/qemu-s390x +%_docdir/qemu-s390x/supported.txt %files arm %defattr(-, root, root) %_bindir/qemu-system-arm %_bindir/qemu-system-aarch64 +%_datadir/%name/npcm7xx_bootrom.bin %dir %_docdir/qemu-arm %_docdir/qemu-arm/supported.txt @@ -1940,7 +1999,6 @@ fi %_bindir/qemu-system-avr %_bindir/qemu-system-cris %_bindir/qemu-system-hppa -%_bindir/qemu-system-lm32 %_bindir/qemu-system-m68k %_bindir/qemu-system-microblaze %_bindir/qemu-system-microblazeel @@ -1959,16 +2017,15 @@ fi %_bindir/qemu-system-sparc %_bindir/qemu-system-sparc64 %_bindir/qemu-system-tricore -%_bindir/qemu-system-unicore32 %_bindir/qemu-system-xtensa %_bindir/qemu-system-xtensaeb %_datadir/%name/hppa-firmware.img -%_datadir/%name/opensbi-riscv32-sifive_u-fw_jump.bin -%_datadir/%name/opensbi-riscv32-virt-fw_jump.bin -%_datadir/%name/opensbi-riscv64-sifive_u-fw_jump.bin -%_datadir/%name/opensbi-riscv64-virt-fw_jump.bin %_datadir/%name/openbios-sparc32 %_datadir/%name/openbios-sparc64 +%_datadir/%name/opensbi-riscv32-generic-fw_dynamic.bin +%_datadir/%name/opensbi-riscv32-generic-fw_dynamic.elf +%_datadir/%name/opensbi-riscv64-generic-fw_dynamic.bin +%_datadir/%name/opensbi-riscv64-generic-fw_dynamic.elf %_datadir/%name/palcode-clipper %_datadir/%name/petalogix-ml605.dtb %_datadir/%name/petalogix-s3adsp1800.dtb @@ -1995,6 +2052,13 @@ fi %dir %_libdir/%name %_libdir/%name/audio-pa.so +%files audio-spice +%defattr(-, root, root) +%dir %_datadir/%name/forsplits +%_datadir/%name/forsplits/05 +%dir %_libdir/%name +%_libdir/%name/audio-spice.so + %files block-curl %defattr(-, root, root) %dir %_libdir/%name @@ -2038,28 +2102,53 @@ fi %dir %_datadir/%name %dir %_datadir/%name/forsplits %_datadir/%name/forsplits/00 -%dir %_docdir/%name -%_docdir/%name/qemu-ga-ref.html %dir %_libdir/%name %_libdir/%name/chardev-baum.so +%files chardev-spice +%defattr(-, root, root) +%dir %_datadir/%name +%dir %_datadir/%name/forsplits +%_datadir/%name/forsplits/08 +%dir %_libdir/%name +%_libdir/%name/chardev-spice.so + %files hw-display-qxl %defattr(-, root, root) %dir %_datadir/%name %dir %_datadir/%name/forsplits %_datadir/%name/forsplits/01 -%dir %_docdir/%name -%_docdir/%name/qemu-ga-ref.txt %dir %_libdir/%name %_libdir/%name/hw-display-qxl.so +%files hw-display-virtio-gpu +%defattr(-, root, root) +%dir %_datadir/%name +%dir %_datadir/%name/forsplits +%_datadir/%name/forsplits/04 +%_libdir/%name/hw-display-virtio-gpu.so + +%files hw-display-virtio-gpu-pci +%defattr(-, root, root) +%dir %_datadir/%name +%dir %_datadir/%name/forsplits +%_datadir/%name/forsplits/11 +%dir %_libdir/%name +%_libdir/%name/hw-display-virtio-gpu-pci.so + +%files hw-display-virtio-vga +%defattr(-, root, root) +%dir %_datadir/%name +%dir %_datadir/%name/forsplits +%_datadir/%name/forsplits/12 +%dir %_libdir/%name +%_libdir/%name/hw-display-virtio-vga.so + %files hw-usb-redirect %defattr(-, root, root) %dir %_datadir/%name %dir %_datadir/%name/forsplits %_datadir/%name/forsplits/02 -%dir %_docdir/%name -%_docdir/%name/qemu-qmp-ref.html %dir %_libdir/%name %_libdir/%name/hw-usb-redirect.so @@ -2068,8 +2157,6 @@ fi %dir %_datadir/%name %dir %_datadir/%name/forsplits %_datadir/%name/forsplits/03 -%dir %_docdir/%name -%_docdir/%name/qemu-qmp-ref.txt %dir %_libdir/%name %_libdir/%name/hw-usb-smartcard.so @@ -2083,12 +2170,29 @@ fi %dir %_libdir/%name %_libdir/%name/ui-gtk.so +%files ui-opengl +%defattr(-, root, root) +%dir %_datadir/%name +%dir %_datadir/%name/forsplits +%_datadir/%name/forsplits/10 +%dir %_libdir/%name +%_libdir/%name/ui-egl-headless.so +%_libdir/%name/ui-opengl.so + +%files ui-spice-core +%defattr(-, root, root) +%dir %_datadir/%name +%dir %_datadir/%name/forsplits +%_datadir/%name/forsplits/09 +%dir %_libdir/%name +%_libdir/%name/ui-spice-core.so + %files ui-spice-app %defattr(-, root, root) %dir %_libdir/%name %_libdir/%name/ui-spice-app.so -%files lang -f %mybuilddir/%name.lang +%files lang -f %blddir/%name.lang %defattr(-, root, root) %ifarch %{build_rom_arch} @@ -2104,6 +2208,7 @@ fi %defattr(-, root, root) %dir %_datadir/%name %_datadir/%name/bios-microvm.bin +%_datadir/%name/qboot.rom %files vgabios %defattr(-, root, root) @@ -2140,28 +2245,6 @@ fi %_datadir/%name/pxe-pcnet.rom %_datadir/%name/pxe-rtl8139.rom %_datadir/%name/pxe-virtio.rom - -%if %{provide_edk2_firmware} - -%files edk2 -%dir %_datadir/%name -%dir %_datadir/%name/firmware -%_datadir/%name/edk2-aarch64-code.fd -%_datadir/%name/edk2-arm-code.fd -%_datadir/%name/edk2-arm-vars.fd -%_datadir/%name/edk2-i386-code.fd -%_datadir/%name/edk2-i386-secure-code.fd -%_datadir/%name/edk2-i386-vars.fd -%_datadir/%name/edk2-licenses.txt -%_datadir/%name/edk2-x86_64-code.fd -%_datadir/%name/edk2-x86_64-secure-code.fd -%_datadir/%name/firmware/50-edk2-i386-secure.json -%_datadir/%name/firmware/50-edk2-x86_64-secure.json -%_datadir/%name/firmware/60-edk2-aarch64.json -%_datadir/%name/firmware/60-edk2-arm.json -%_datadir/%name/firmware/60-edk2-i386.json -%_datadir/%name/firmware/60-edk2-x86_64.json -%endif %endif %files skiboot @@ -2182,9 +2265,6 @@ fi %files tools %defattr(-, root, root) %_bindir/analyze-migration.py -%_bindir/elf2dmp -%_bindir/ivshmem-client -%_bindir/ivshmem-server %_bindir/qemu-edid %_bindir/qemu-img %_bindir/qemu-io @@ -2199,9 +2279,18 @@ fi %_mandir/man1/qemu-img.1.gz %_mandir/man1/virtfs-proxy-helper.1.gz %_mandir/man8/qemu-nbd.8.gz +%_mandir/man8/qemu-pr-helper.8.gz %dir %_sysconfdir/%name %config %_sysconfdir/%name/bridge.conf +%files ivshmem-tools +%defattr(-, root, root) +%dir %_datadir/%name +%dir %_datadir/%name/forsplits +%_datadir/%name/forsplits/07 +%_bindir/ivshmem-client +%_bindir/ivshmem-server + %files guest-agent %defattr(-, root, root) %attr(0755,root,kvm) %_bindir/qemu-ga @@ -2240,7 +2329,6 @@ fi %_bindir/qemu-or1k %_bindir/qemu-ppc %_bindir/qemu-ppc64 -%_bindir/qemu-ppc64abi32 %_bindir/qemu-ppc64le %_bindir/qemu-riscv32 %_bindir/qemu-riscv64 @@ -2250,10 +2338,10 @@ fi %_bindir/qemu-sparc %_bindir/qemu-sparc32plus %_bindir/qemu-sparc64 -%_bindir/qemu-tilegx %_bindir/qemu-x86_64 %_bindir/qemu-xtensa %_bindir/qemu-xtensaeb +%_bindir/qemu-binfmt %_bindir/qemu-*-binfmt %_sbindir/qemu-binfmt-conf.sh diff --git a/qemu.spec.in b/qemu.spec.in index 4fda6c05..e5c5c34a 100644 --- a/qemu.spec.in +++ b/qemu.spec.in @@ -20,7 +20,6 @@ %define _buildshell /bin/bash -%define build_in_tree 0 %define build_x86_firmware_from_source 0 %define build_skiboot_from_source 0 %define build_slof_from_source 0 @@ -28,7 +27,6 @@ %define kvm_available 0 %define legacy_qemu_kvm 0 %define force_fit_virtio_pxe_rom 1 -%define provide_edk2_firmware 0 %define build_rom_arch %ix86 x86_64 aarch64 @@ -122,10 +120,6 @@ Source14: 50-seabios-256k.json Source15: 60-seabios-128k.json Source200: qemu-rpmlintrc Source201: pkg-split.txt -Source202: qemu-ga-ref.html -Source203: qemu-ga-ref.txt -Source204: qemu-qmp-ref.html -Source205: qemu-qmp-ref.txt Source300: bundles.tar.xz Source301: update_git.sh Source302: config.sh @@ -140,14 +134,17 @@ PATCH_FILES BuildRoot: %{_tmppath}/%{name}-%{version}-build # ======================================================================== -%if "%{name}" == "qemu-linux-user" +# Common BuildRequires listed here: BuildRequires: fdupes BuildRequires: gcc-c++ +BuildRequires: meson +BuildRequires: ninja >= 1.7 +BuildRequires: python3-base >= 3.6 +BuildRequires: python3-setuptools +%if "%{name}" == "qemu-linux-user" BuildRequires: glib2-devel-static BuildRequires: glibc-devel-static -BuildRequires: makeinfo BuildRequires: pcre-devel-static -BuildRequires: python3-base >= 3.5 BuildRequires: zlib-devel-static # we must not install the qemu-linux-user package when under QEMU build %if 0%{?qemu_user_space_build:1} @@ -165,7 +162,7 @@ syscall layer occurs on the native hardware and operating system. %if %{build_x86_firmware_from_source} BuildRequires: acpica %endif -BuildRequires: alsa-devel +BuildRequires: pkgconfig(alsa) %if %{build_x86_firmware_from_source} BuildRequires: binutils-devel %endif @@ -188,94 +185,89 @@ BuildRequires: cross-x86_64-binutils BuildRequires: cross-x86_64-gcc%gcc_version %endif %endif -BuildRequires: curl-devel -BuildRequires: cyrus-sasl-devel +BuildRequires: pkgconfig(libcurl) +BuildRequires: pkgconfig(libsasl2) %if %{build_x86_firmware_from_source} BuildRequires: dos2unix %endif -BuildRequires: fdupes BuildRequires: flex -BuildRequires: gcc-c++ -BuildRequires: glib2-devel >= 2.48 +BuildRequires: pkgconfig(glib-2.0) >= 2.48 %if %{build_x86_firmware_from_source} BuildRequires: glibc-devel-32bit %endif -BuildRequires: glusterfs-devel >= 3 -BuildRequires: gtk3-devel >= 3.22 BuildRequires: libaio-devel BuildRequires: libattr-devel BuildRequires: libbz2-devel -BuildRequires: libcacard-devel >= 2.5.1 -BuildRequires: libcap-ng-devel -BuildRequires: libdrm-devel -BuildRequires: libepoxy-devel BuildRequires: libfdt-devel >= 1.4.2 -BuildRequires: libgbm-devel BuildRequires: libgcrypt-devel >= 1.5.0 -BuildRequires: libgnutls-devel >= 3.1.18 -BuildRequires: libiscsi-devel >= 1.9.0 -BuildRequires: libjpeg-devel +BuildRequires: pkgconfig(epoxy) +BuildRequires: pkgconfig(gbm) +BuildRequires: pkgconfig(glusterfs-api) >= 3 +BuildRequires: pkgconfig(gnutls) >= 3.1.18 +BuildRequires: pkgconfig(gtk+-3.0) >= 3.22 +BuildRequires: pkgconfig(libcacard) >= 2.5.1 +BuildRequires: pkgconfig(libcap-ng) +BuildRequires: pkgconfig(libdrm) +BuildRequires: pkgconfig(libiscsi) >= 1.9.0 +BuildRequires: pkgconfig(libjpeg) %if 0%{?with_daxctl} -BuildRequires: libndctl-devel +BuildRequires: pkgconfig(libndctl) %endif -BuildRequires: libnfs-devel >= 1.9.3 +BuildRequires: pkgconfig(libnfs) >= 1.9.3 %ifnarch %arm s390x BuildRequires: libnuma-devel %endif -BuildRequires: libpixman-1-0-devel >= 0.21.8 +BuildRequires: pkgconfig(pixman-1) >= 0.21.8 %ifarch x86_64 -BuildRequires: libpmem-devel +BuildRequires: pkgconfig(libpmem) %endif -BuildRequires: libpng-devel -BuildRequires: libpulse-devel +BuildRequires: pkgconfig(libpng) +BuildRequires: pkgconfig(libpulse) %if 0%{?with_rbd} BuildRequires: librbd-devel %endif BuildRequires: Mesa-devel -BuildRequires: libSDL2-devel -BuildRequires: libSDL2_image-devel -BuildRequires: libseccomp-devel >= 2.3.0 -BuildRequires: libslirp-devel >= 4.2.0 -BuildRequires: libspice-server-devel >= 0.12.5 -BuildRequires: libssh-devel >= 0.8 +BuildRequires: pkgconfig(libseccomp) >= 2.3.0 +BuildRequires: pkgconfig(libssh) >= 0.8 +BuildRequires: pkgconfig(slirp) >= 4.2.0 +BuildRequires: pkgconfig(spice-server) >= 0.12.5 %if 0%{?with_uring} -BuildRequires: liburing-devel >= %liburing_min_version +BuildRequires: pkgconfig(liburing) >= %liburing_min_version %endif -BuildRequires: libusb-1_0-devel >= 1.0.13 -BuildRequires: libvdeplug-devel -BuildRequires: libxkbcommon-devel BuildRequires: lzfse-devel -BuildRequires: lzo-devel -BuildRequires: makeinfo BuildRequires: multipath-tools-devel BuildRequires: pkgconfig(libudev) +BuildRequires: pkgconfig(libusb-1.0) >= 1.0.13 +BuildRequires: pkgconfig(lzo2) +BuildRequires: pkgconfig(vdeplug) +BuildRequires: pkgconfig(xkbcommon) %if %{build_x86_firmware_from_source} BuildRequires: nasm %endif -BuildRequires: ncurses-devel BuildRequires: pkgconfig BuildRequires: pwdutils BuildRequires: python3-Sphinx -BuildRequires: python3-base >= 3.5 BuildRequires: rdma-core-devel BuildRequires: snappy-devel -BuildRequires: spice-protocol-devel >= 0.12.3 +BuildRequires: pkgconfig(ncurses) +BuildRequires: pkgconfig(spice-protocol) >= 0.12.3 BuildRequires: pkgconfig(systemd) %{?systemd_ordering} %if %{kvm_available} BuildRequires: pkgconfig(udev) %endif +BuildRequires: update-desktop-files BuildRequires: usbredir-devel >= 0.6 -BuildRequires: virglrenderer-devel >= 0.4.1 -BuildRequires: vte-devel +BuildRequires: pkgconfig(virglrenderer) >= 0.4.1 +BuildRequires: pkgconfig(vte-2.91) %ifarch x86_64 BuildRequires: xen-devel >= 4.2 %endif BuildRequires: xfsprogs-devel %if %{build_x86_firmware_from_source} -BuildRequires: xz-devel +BuildRequires: pkgconfig(liblzma) %endif -BuildRequires: zlib-devel +BuildRequires: pkgconfig(zlib) %if "%{name}" == "qemu" Requires: group(kvm) Requires: group(qemu) @@ -290,12 +282,19 @@ Requires(post): procps Recommends: kvm_stat %endif Recommends: qemu-block-curl +Recommends: qemu-chardev-spice 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-redirect Recommends: qemu-hw-usb-smartcard +Recommends: qemu-ksm = %{qemuver} Recommends: qemu-tools +Recommends: qemu-ui-opengl Recommends: qemu-ui-curses Recommends: qemu-ui-gtk +Recommends: qemu-ui-spice-core Recommends: qemu-ui-spice-app Recommends: qemu-x86 %ifarch ppc ppc64 ppc64le @@ -304,9 +303,9 @@ Recommends: qemu-ppc Suggests: qemu-ppc %endif %ifarch s390x -Recommends: qemu-s390 +Recommends: qemu-s390x %else -Suggests: qemu-s390 +Suggests: qemu-s390x %endif %ifarch %arm aarch64 Recommends: qemu-arm @@ -325,7 +324,6 @@ Suggests: qemu-chardev-baum Suggests: qemu-extra Suggests: qemu-skiboot Suggests: qemu-lang -Recommends: qemu-ksm = %{qemuver} Suggests: qemu-microvm Suggests: qemu-vhost-user-gpu Obsoletes: qemu-audio-oss < %{qemuver} @@ -377,14 +375,16 @@ Recommends: qemu-vgabios This package provides ppc and ppc64 emulation. -%package s390 +%package s390x Summary: Machine emulator and virtualizer for S/390 architectures Group: System/Emulators/PC Version: %{qemuver} Release: 0 Requires: %name = %{qemuver} +Provides: qemu-s390 = %{qemuver} +Obsoletes: qemu-s390 < %{qemuver} -%description s390 +%description s390x %{generic_qemu_description} This package provides s390x emulation. @@ -432,7 +432,7 @@ Release: 0 Requires: qemu-x86 = %{qemuver} %endif %ifarch s390x -Requires: qemu-s390 = %{qemuver} +Requires: qemu-s390x = %{qemuver} %endif Provides: kvm = %{qemuver} Obsoletes: kvm < %{qemuver} @@ -488,12 +488,22 @@ Release: 0 %description audio-pa This package contains a module for Pulse Audio based audio support for QEMU. +%package audio-spice +Summary: Spice based audio support for QEMU +Group: System/Emulators/PC +Version: %{qemuver} +Release: 0 +Provides: %name:%_datadir/%name/forsplits/05 +%{qemu_module_conflicts} + +%description audio-spice +This package contains a module for Spice based audio support for QEMU. + %package block-curl Summary: cURL block support for QEMU Group: System/Emulators/PC Version: %{qemuver} Release: 0 -Provides: %name:%_libdir/%name/block-curl.so %{qemu_module_conflicts} %description block-curl @@ -572,31 +582,72 @@ Group: System/Emulators/PC Version: %{qemuver} Release: 0 Provides: %name:%_datadir/%name/forsplits/00 -Provides: %name:%_docdir/%name/qemu-ga-ref.html %{qemu_module_conflicts} %description chardev-baum This package contains a module for baum braille chardev support. +%package chardev-spice +Summary: Spice vmc and port chardev support for QEMU +Group: System/Emulators/PC +Version: %{qemuver} +Release: 0 +Provides: %name:%_datadir/%name/forsplits/08 +%{qemu_module_conflicts} + +%description chardev-spice +This package contains a module for Spice chardev support. + %package hw-display-qxl Summary: QXL display support for QEMU Group: System/Emulators/PC Version: %{qemuver} Release: 0 Provides: %name:%_datadir/%name/forsplits/01 -Provides: %name:%_docdir/%name/qemu-ga-ref.txt %{qemu_module_conflicts} %description hw-display-qxl This package contains a module for QXL display support. +%package hw-display-virtio-gpu +Summary: Virtio GPU display support for QEMU +Group: System/Emulators/PC +Version: %{qemuver} +Release: 0 +Provides: %name:%_datadir/%name/forsplits/04 +%{qemu_module_conflicts} + +%description hw-display-virtio-gpu +This package contains a module for Virtio GPU display support. + +%package hw-display-virtio-gpu-pci +Summary: Virtio-gpu driver for QEMU +Group: System/Emulators/PC +Version: %{qemuver} +Release: 0 +Provides: %name:%_datadir/%name/forsplits/11 +%{qemu_module_conflicts} + +%description hw-display-virtio-gpu-pci +This package contains a virtio gpu driver for QEMU + +%package hw-display-virtio-vga +Summary: Virtio vga driver for QEMU +Group: System/Emulators/PC +Version: %{qemuver} +Release: 0 +Provides: %name:%_datadir/%name/forsplits/12 +%{qemu_module_conflicts} + +%description hw-display-virtio-vga +This package contains a virtio vga driver for QEMU + %package hw-usb-redirect Summary: USB redirection support for QEMU Group: System/Emulators/PC Version: %{qemuver} Release: 0 Provides: %name:%_datadir/%name/forsplits/02 -Provides: %name:%_docdir/%name/qemu-qmp-ref.html %{qemu_module_conflicts} %description hw-usb-redirect @@ -608,7 +659,6 @@ Group: System/Emulators/PC Version: %{qemuver} Release: 0 Provides: %name:%_datadir/%name/forsplits/03 -Provides: %name:%_docdir/%name/qemu-qmp-ref.txt %{qemu_module_conflicts} %description hw-usb-smartcard @@ -634,6 +684,28 @@ Release: 0 %description ui-gtk This package contains a module for doing GTK based UI for QEMU. +%package ui-opengl +Summary: OpenGL based UI support for QEMU +Group: System/Emulators/PC +Version: %{qemuver} +Release: 0 +Provides: %name:%_datadir/%name/forsplits/10 +%{qemu_module_conflicts} + +%description ui-opengl +This package contains a module for doing OpenGL based UI for QEMU. + +%package ui-spice-core +Summary: Core Spice support for QEMU +Group: System/Emulators/PC +Version: %{qemuver} +Release: 0 +Provides: %name:%_datadir/%name/forsplits/09 +%{qemu_module_conflicts} + +%description ui-spice-core +This package contains a module with core Spice support for QEMU. + %package ui-spice-app Summary: Spice UI support for QEMU Group: System/Emulators/PC @@ -659,7 +731,6 @@ Summary: Tools for QEMU Group: System/Emulators/PC Version: %{qemuver} Release: 0 -Provides: %name:%_libexecdir/qemu-bridge-helper Requires(pre): permissions Requires: group(kvm) Recommends: multipath-tools @@ -672,12 +743,24 @@ Recommends: qemu-block-rbd This package contains various QEMU related tools, including a bridge helper, a virtfs helper, ivshmem, disk utilities and scripts for various purposes. +%package ivshmem-tools +Summary: Inter-VM Shared Memory Tools for QEMU +Group: System/Emulators/PC +Version: %{qemuver} +Release: 0 +Provides: %name:%_datadir/%name/forsplits/07 + +%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. + %package guest-agent Summary: Guest agent for QEMU Group: System/Emulators/PC Version: %{qemuver} Release: 0 -Provides: %name:%_bindir/qemu-ga Requires: group(kvm) Requires(post): udev Supplements: modalias(acpi*:QEMU0002%3A*) @@ -699,8 +782,9 @@ BuildArch: noarch %description microvm This package provides minimal x86 firmware for booting certain guests. -qboot based bios-microvm provides the minimum resources needed to boot PVH and -bzImages. +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. %package seabios Summary: x86 Legacy BIOS for QEMU @@ -753,18 +837,6 @@ Provides Preboot Execution Environment (PXE) ROM support for various emulated network adapters available with QEMU. %endif -%if %{provide_edk2_firmware} -%package edk2 -Summary: EDK II based firmware -Group: System/Emulators/PC -Version: %{qemuver} -Release: 0 -BuildArch: noarch - -%description edk2 -Provides EDK II based firmware. -%endif - %package skiboot Summary: OPAL firmware (aka skiboot), used in booting OpenPOWER systems Group: System/Emulators/PC @@ -798,6 +870,7 @@ BuildRequires: bc BuildRequires: qemu-arm = %{qemuver} BuildRequires: qemu-audio-alsa = %{qemuver} BuildRequires: qemu-audio-pa = %{qemuver} +BuildRequires: qemu-audio-spice = %{qemuver} BuildRequires: qemu-block-curl = %{qemuver} BuildRequires: qemu-block-dmg = %{qemuver} BuildRequires: qemu-block-gluster = %{qemuver} @@ -808,28 +881,30 @@ BuildRequires: qemu-block-rbd = %{qemuver} %endif BuildRequires: qemu-block-ssh = %{qemuver} BuildRequires: qemu-chardev-baum = %{qemuver} -%if %{provide_edk2_firmware} -BuildRequires: qemu-edk2 = %{qemuver} -%endif +BuildRequires: qemu-chardev-spice = %{qemuver} BuildRequires: qemu-extra = %{qemuver} BuildRequires: qemu-guest-agent = %{qemuver} BuildRequires: qemu-hw-display-qxl = %{qemuver} +BuildRequires: qemu-hw-display-virtio-gpu = %{qemuver} BuildRequires: qemu-hw-usb-redirect = %{qemuver} BuildRequires: qemu-hw-usb-smartcard = %{qemuver} BuildRequires: qemu-ipxe = 1.0.0+ +BuildRequires: qemu-ivshmem-tools = %{qemuver} BuildRequires: qemu-ksm = %{qemuver} BuildRequires: qemu-lang = %{qemuver} -BuildRequires: qemu-ppc = %{qemuver} -BuildRequires: qemu-s390 = %{qemuver} +BuildRequires: qemu-ppc = %{qemuver} +BuildRequires: qemu-s390x = %{qemuver} BuildRequires: qemu-seabios = %{sbver} BuildRequires: qemu-sgabios = 8 BuildRequires: qemu-skiboot = %{qemuver} BuildRequires: qemu-tools = %{qemuver} BuildRequires: qemu-ui-curses = %{qemuver} BuildRequires: qemu-ui-gtk = %{qemuver} +BuildRequires: qemu-ui-opengl = %{qemuver} BuildRequires: qemu-ui-spice-app = %{qemuver} +BuildRequires: qemu-ui-spice-core = %{qemuver} BuildRequires: qemu-vgabios = %{sbver} -BuildRequires: qemu-x86 = %{qemuver} +BuildRequires: qemu-x86 = %{qemuver} %description This package records qemu testsuite results and represents successful testing. @@ -847,31 +922,30 @@ PATCH_EXEC # 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-virt-fw_jump.bin +# u-boot.e500 u-boot-sam460-20100605.bin opensbi-riscv32-generic-fw_dynamic.bin +# opensbi-riscv32-generic-fw_dynamic.elf npcm7xx_bootrom.bin # This first list group isn't specific to what this instance builds %define ppc_default_firmware {%nil} %define ppc_extra_firmware {skiboot.lid slof.bin} %define ppc64_only_default_firmware {%nil} %define ppc64_only_extra_firmware {%nil} -%define riscv64_default_firmware {opensbi-riscv64-sifive_u-fw_jump.bin \ -opensbi-riscv64-virt-fw_jump.bin} +%define riscv64_default_firmware {opensbi-riscv64-generic-fw_dynamic.bin \ +opensbi-riscv64-generic-fw_dynamic.elf} %define riscv64_extra_firmware {%nil} %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 \ kvmvapic.bin pvh.bin} -%define x86_extra_firmware {bios.bin bios-256k.bin bios-microvm.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 sgabios.bin 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} %define x86_64_only_default_firmware {%nil} -%define x86_64_only_extra_firmware {edk2-aarch64-code.fd.bz2 \ -edk2-arm-code.fd.bz2 edk2-arm-vars.fd.bz2 edk2-i386-code.fd.bz2 \ -edk2-i386-secure-code.fd.bz2 edk2-i386-vars.fd.bz2 edk2-x86_64-code.fd.bz2 \ -edk2-x86_64-secure-code.fd.bz2 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} +%define x86_64_only_extra_firmware {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} %define firmware { \ %{?ppc_default_firmware} %{?ppc_extra_firmware} \ @@ -931,49 +1005,28 @@ efi-ne2k_pci.rom efi-pcnet.rom efi-rtl8139.rom efi-virtio.rom efi-vmxnet3.rom} %{?x86_default_built_firmware} %{?x86_extra_built_firmware} \ %{?x86_64_only_default_built_firmware} %{?x86_64_only_extra_built_firmware} } -%if "%{name}" != "qemu-testsuite" - -# delete the firmware files that we intend to build -for i in %built_firmware -do - unlink pc-bios/$i -done - -# ------------------------------------------------------------------------ -%else # qemu-testsuite - -# delete the firmware files that we intend to link from built packages -for i in %firmware -do - if [[ $i =~ .*[.]bz2 ]]; then - echo "Skipping %i" - else - unlink pc-bios/$i - fi -done - -%endif # qemu-testsuite %endif # ! qemu-linux-user # ======================================================================== %build -%define _lto_cflags %{nil} -%if %build_in_tree -%define mybuilddir %{_builddir}/%buildsubdir -%else -%define mybuilddir %{_builddir}/mybuilddir -mkdir -p %mybuilddir -cd %mybuilddir +# non-x86 archs still seem to have some issues with Link Time Optimization +%ifnarch %ix86 x86_64 +%define _lto_cflags %{nil} %endif -../%buildsubdir/configure \ +%define srcdir %{_builddir}/%buildsubdir +%define blddir %srcdir/build +mkdir -p %blddir +cd %blddir + +%srcdir/configure \ --prefix=%_prefix \ --sysconfdir=%_sysconfdir \ --libdir=%_libdir \ --libexecdir=%_libexecdir \ --localstatedir=%_localstatedir \ - --docdir=%_docdir/%name \ + --docdir=%_docdir \ --firmwarepath=%_datadir/%name \ --python=%_bindir/python3 \ --extra-cflags="%{optflags}" \ @@ -987,11 +1040,7 @@ cd %mybuilddir --enable-tools --enable-guest-agent \ --enable-modules \ --disable-module-upgrades \ -%if 1 --enable-slirp=system \ -%else - --enable-slirp=git \ -%endif --enable-pie \ --enable-docs \ --audio-drv-list="pa alsa" \ @@ -1039,7 +1088,9 @@ cd %mybuilddir --disable-libxml2 \ --enable-linux-aio \ %if 0%{?with_uring} - --enable-linux-io-uring \ + --enable-linux-io-uring \ +%else + --disable-linux-io-uring \ %endif --enable-lzfse \ --enable-lzo \ @@ -1089,6 +1140,7 @@ cd %mybuilddir --enable-vhost-net \ --enable-vhost-scsi \ --enable-vhost-user \ + --enable-vhost-user-blk-server \ --enable-vhost-user-fs \ --enable-vhost-vdpa \ --enable-vhost-vsock \ @@ -1130,6 +1182,7 @@ cd %mybuilddir --disable-iconv \ --disable-kvm \ --disable-libdaxctl \ + --disable-linux-io-uring \ --disable-malloc-trim \ %if %{with system_membarrier} --enable-membarrier \ @@ -1151,6 +1204,7 @@ cd %mybuilddir --disable-vhost-net \ --disable-vhost-scsi \ --disable-vhost-user \ + --disable-vhost-user-blk-server \ --disable-vhost-user-fs \ --disable-vhost-vsock \ --disable-vnc \ @@ -1160,6 +1214,12 @@ cd %mybuilddir %if "%{name}" == "qemu" +# delete the firmware files that we intend to build +for i in %built_firmware +do + unlink %srcdir/pc-bios/$i +done + make %{?_smp_mflags} V=1 # Firmware @@ -1167,26 +1227,26 @@ make %{?_smp_mflags} V=1 %ifarch s390x for i in %s390x_default_built_firmware do - cp pc-bios/s390-ccw/$i %{_builddir}/%buildsubdir/pc-bios/ + cp pc-bios/s390-ccw/$i %srcdir/pc-bios/ done %endif %ifarch ppc64 for i in %ppc64_only_default_built_firmware do - cp pc-bios/spapr-rtas/$i %{_builddir}/%buildsubdir/pc-bios/ + cp pc-bios/spapr-rtas/$i %srcdir/pc-bios/ done %endif %ifarch %ix86 x86_64 for i in %x86_default_built_firmware do - cp pc-bios/optionrom/$i %{_builddir}/%buildsubdir/pc-bios/ + cp pc-bios/optionrom/$i %srcdir/pc-bios/ done %ifarch x86_64 for i in %x86_64_only_default_built_firmware do - cp pc-bios/optionrom/$i %{_builddir}/%buildsubdir/pc-bios/ + cp pc-bios/optionrom/$i %srcdir/pc-bios/ done %endif %endif @@ -1197,46 +1257,39 @@ export CC=x86_64-suse-linux-gcc export LD=x86_64-suse-linux-ld %endif -make %{?_smp_mflags} -C %{_builddir}/%buildsubdir/roms bios \ +make %{?_smp_mflags} -C %srcdir/roms bios \ SEABIOS_EXTRAVERSION="-rebuilt.opensuse.org" \ %ifnarch %ix86 x86_64 HOSTCC=cc \ %endif -make %{?_smp_mflags} -C %{_builddir}/%buildsubdir/roms bios-microvm +make %{?_smp_mflags} -C %srcdir/roms qboot -%ifnarch %ix86 -%if %{provide_edk2_firmware} -make %{?_smp_mflags} -C %{_builddir}/%buildsubdir/roms efi \ - EDK2_BASETOOLS_OPTFLAGS='-fPIE' -%endif -%endif - -make %{?_smp_mflags} -C %{_builddir}/%buildsubdir/roms seavgabios \ +make %{?_smp_mflags} -C %srcdir/roms seavgabios \ %ifnarch %ix86 x86_64 HOSTCC=cc \ %endif -make %{?_smp_mflags} -C %{_builddir}/%buildsubdir/roms seavgabios-ati \ +make %{?_smp_mflags} -C %srcdir/roms seavgabios-ati \ %ifnarch %ix86 x86_64 HOSTCC=cc \ %endif -make %{?_smp_mflags} -C %{_builddir}/%buildsubdir/roms pxerom +make %{?_smp_mflags} -C %srcdir/roms pxerom %ifnarch %ix86 -make %{?_smp_mflags} -C %{_builddir}/%buildsubdir/roms efirom \ +make %{?_smp_mflags} -C %srcdir/roms efirom \ EDK2_BASETOOLS_OPTFLAGS='-fPIE' %endif -make -C %{_builddir}/%buildsubdir/roms sgabios \ +make -C %srcdir/roms sgabios \ HOSTCC=cc %if %{force_fit_virtio_pxe_rom} -pushd %{_builddir}/%buildsubdir +pushd %srcdir patch -p1 < %_sourcedir/stub-out-the-SAN-req-s-in-int13.patch popd -make %{?_smp_mflags} -C %{_builddir}/%buildsubdir/roms pxerom_variants=virtio pxerom_targets=1af41000 pxerom +make %{?_smp_mflags} -C %srcdir/roms pxerom_variants=virtio pxerom_targets=1af41000 pxerom %endif # enforce pxe rom sizes for migration compatability from SLE 11 SP3 forward @@ -1249,18 +1302,18 @@ make %{?_smp_mflags} -C %{_builddir}/%buildsubdir/roms pxerom_variants=virtio px for i in %supported_nics_large %unsupported_nics do - if test "`stat -c '%s' %{_builddir}/%buildsubdir/pc-bios/pxe-$i.rom`" -gt "131072" ; then + 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' %{_builddir}/%buildsubdir/pc-bios/pxe-$i.rom`" -le "65536" ; then - ./%{_builddir}/%buildsubdir/roms/ipxe/src/util/padimg.pl %{_builddir}/%buildsubdir/pc-bios/pxe-$i.rom -s 65536 -b 255 - echo -ne "SEGMENT OVERAGE\0" >> %{_builddir}/%buildsubdir/pc-bios/pxe-$i.rom + 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' %{_builddir}/%buildsubdir/pc-bios/pxe-$i.rom`" -gt "65536" ; then + if test "`stat -c '%s' %srcdir/pc-bios/pxe-$i.rom`" -gt "65536" ; then echo "pxe rom is too large" exit 1 fi @@ -1272,16 +1325,15 @@ unset LD %endif %if %{build_skiboot_from_source} -make %{?_smp_mflags} -C %{_builddir}/%buildsubdir/roms skiboot CROSS= +make %{?_smp_mflags} -C %srcdir/roms skiboot CROSS= %endif %if %{build_slof_from_source} -make %{?_smp_mflags} -C %{_builddir}/%buildsubdir/roms slof +make %{?_smp_mflags} -C %srcdir/roms slof %endif %if %{build_opensbi_from_source} -make %{?_smp_mflags} -C %{_builddir}/%buildsubdir/roms opensbi64-virt CROSS_COMPILE= -make %{?_smp_mflags} -C %{_builddir}/%buildsubdir/roms opensbi64-sifive_u CROSS_COMPILE= +make %{?_smp_mflags} -C %srcdir/roms opensbi64-generic CROSS_COMPILE= %endif %endif # qemu @@ -1298,25 +1350,23 @@ ln -s %_bindir/qemu-edid qemu-edid ln -s %_bindir/qemu-keymap qemu-keymap ln -s %_bindir/ivshmem-client ivshmem-client ln -s %_bindir/ivshmem-server ivshmem-server -ln -s %_bindir/qemu-pr-helper scsi/qemu-pr-helper -ln -s %_bindir/virtfs-proxy-helper fsdev/virtfs-proxy-helper +ln -s %_bindir/qemu-pr-helper qemu-pr-helper +ln -s %_libexecdir/virtfs-proxy-helper fsdev/virtfs-proxy-helper for i in %firmware do - if [[ $i =~ .*[.]bz2 ]]; then - echo "Skipping $i" - else - ln -s %_datadir/qemu/$i pc-bios/$i + unlink pc-bios/$i + ln -s %_datadir/qemu/$i pc-bios/$i +done + +for conf in %{_builddir}/%buildsubdir/default-configs/targets/*-softmmu.mak; do + arch=`echo "$conf" | sed -e 's|%{_builddir}/%buildsubdir/default-configs/targets/\(.*\)-softmmu.mak|\1|g'` + if $(unlink $arch-softmmu/qemu-system-$arch); then + ln -s %_bindir/qemu-system-$arch $arch-softmmu/qemu-system-$arch fi done -for conf in %{_builddir}/%buildsubdir/default-configs/*-softmmu.mak; do - arch=`echo "$conf" | sed -e 's|%{_builddir}/%buildsubdir/default-configs/\(.*\)-softmmu.mak|\1|g'` - ln -s %_bindir/qemu-system-$arch $arch-softmmu/qemu-system-$arch -done - # Compile the QOM test binary first, so that ... -touch -r config-host.mak pc-bios make %{?_smp_mflags} tests/qtest/qom-test V=1 # ... make comes in fresh and has lots of address space (needed for 32bit, bsc#957379) make %{?_smp_mflags} check-report.tap V=1 @@ -1356,7 +1406,7 @@ make %{?_smp_mflags} V=1 # ======================================================================== %check -cd %mybuilddir +cd %blddir %if "%{name}" == "qemu-testsuite" export QEMU_PROG=%_bindir/qemu-system-x86_64 @@ -1370,7 +1420,9 @@ make %{?_smp_mflags} check-block V=1 %if "%{name}" == "qemu-linux-user" %ifarch %ix86 x86_64 %arm aarch64 ppc ppc64 ppc64le s390x +%ifnarch %arm %{qemu_arch}-linux-user/qemu-%{qemu_arch} %_bindir/ls > /dev/null +%endif make %{?_smp_mflags} check-softfloat %endif @@ -1379,7 +1431,7 @@ make %{?_smp_mflags} check-softfloat # ======================================================================== %install -cd %mybuilddir +cd %blddir %if "%{name}" == "qemu-testsuite" @@ -1394,6 +1446,39 @@ 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 +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-hppa-binfmt +ln -s qemu-binfmt %{buildroot}%_bindir/qemu-i386-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-nios2-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 %fdupes -s %{buildroot} %endif # qemu-linux-user @@ -1401,35 +1486,14 @@ install -m 755 scripts/qemu-binfmt-conf.sh %{buildroot}%_sbindir %if "%{name}" == "qemu" make %{?_smp_mflags} install DESTDIR=%{buildroot} -%ifnarch %{build_rom_arch} -for f in %{x86_extra_firmware} \ - %{x86_64_only_extra_firmware}; do - unlink %{buildroot}%_datadir/%name/${f%.bz2} -done -%define do_more_edk2_unlinks 1 -%else -%ifarch %ix86 aarch64 -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-licenses.txt || true -unlink %{buildroot}%_datadir/%name/edk2-x86_64-code.fd -unlink %{buildroot}%_datadir/%name/edk2-x86_64-secure-code.fd -%endif +%ifarch %{build_rom_arch} 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 -%endif -%if 0%{?do_more_edk2_unlinks} || %{provide_edk2_firmware} == 0 -unlink %{buildroot}%_datadir/%name/edk2-licenses.txt || true -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 +%else +for f in %{x86_extra_firmware} \ + %{x86_64_only_extra_firmware}; do + unlink %{buildroot}%_datadir/%name/$f +done %endif %find_lang %name install -d -m 0755 %{buildroot}%_datadir/%name/firmware @@ -1444,7 +1508,7 @@ install -D -m 0755 %{SOURCE9} %{buildroot}%_libexecdir/supportconfig/plugins/%na 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-s390/supported.txt +install -D -m 0644 %{SOURCE13} %{buildroot}%_docdir/qemu-s390x/supported.txt %if %{legacy_qemu_kvm} cat > %{buildroot}%_bindir/qemu-kvm << 'EOF' #!/bin/sh @@ -1459,8 +1523,8 @@ chmod 755 %{buildroot}%_bindir/qemu-kvm install -D -m 0644 %{SOURCE5} %{buildroot}%_mandir/man1/qemu-kvm.1.gz install -d %{buildroot}%_docdir/qemu-kvm %ifarch s390x -ln -s ../qemu-s390/supported.txt %{buildroot}%_docdir/qemu-kvm/kvm-supported.txt -rst2html --exit-status=2 %{buildroot}%_docdir/qemu-s390/supported.txt %{buildroot}%_docdir/qemu-kvm/kvm-supported.html +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 @@ -1474,11 +1538,26 @@ 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 %endif -install -D -m 0644 %{SOURCE202} %{buildroot}%_docdir/%name/qemu-ga-ref.html -install -D -m 0644 %{SOURCE203} %{buildroot}%_docdir/%name/qemu-ga-ref.txt -install -D -m 0644 %{SOURCE204} %{buildroot}%_docdir/%name/qemu-qmp-ref.html -install -D -m 0644 %{SOURCE205} %{buildroot}%_docdir/%name/qemu-qmp-ref.txt -mv %{buildroot}%_libexecdir/qemu-pr-helper %{buildroot}%_bindir/qemu-pr-helper + +# 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 # in support of update-alternatives mv %{buildroot}%_datadir/%name/skiboot.lid %{buildroot}%_datadir/%name/skiboot.lid.qemu @@ -1491,6 +1570,7 @@ for X in 00 01 02 03 04 05 06 07 08 09 10 11 12 13 do ln -s pkg-split.txt %{buildroot}%_datadir/%name/forsplits/$X done +%suse_update_desktop_file qemu %fdupes -s %{buildroot} # ======================================================================== @@ -1563,7 +1643,7 @@ fi # ======================================================================== %files %defattr(-, root, root) -%doc Changelog README.rst VERSION +%doc README.rst VERSION %license COPYING COPYING.LIB LICENSE %if "%{name}" == "qemu" @@ -1584,16 +1664,8 @@ fi %dir %_datadir/%name %dir %_datadir/%name/firmware %dir %_datadir/%name/forsplits -%_datadir/%name/forsplits/pkg-split.txt -%_datadir/%name/forsplits/04 -%_datadir/%name/forsplits/05 -%_datadir/%name/forsplits/07 -%_datadir/%name/forsplits/08 -%_datadir/%name/forsplits/09 -%_datadir/%name/forsplits/10 -%_datadir/%name/forsplits/11 -%_datadir/%name/forsplits/12 %_datadir/%name/forsplits/13 +%_datadir/%name/forsplits/pkg-split.txt %_datadir/%name/keymaps %_datadir/%name/qemu-ifup %_datadir/%name/qemu-nsis.bmp @@ -1607,6 +1679,7 @@ fi %dir %_docdir/%name/system %dir %_docdir/%name/system/_static %dir %_docdir/%name/system/arm +%dir %_docdir/%name/system/i386 %dir %_docdir/%name/system/s390x %dir %_docdir/%name/tools %dir %_docdir/%name/tools/_static @@ -1624,9 +1697,7 @@ fi %_docdir/%name/interop/objects.inv %_docdir/%name/interop/pr-helper.html %_docdir/%name/interop/qemu-ga-ref.html -%_docdir/%name/interop/qemu-ga-ref.txt %_docdir/%name/interop/qemu-qmp-ref.html -%_docdir/%name/interop/qemu-qmp-ref.txt %_docdir/%name/interop/search.html %_docdir/%name/interop/searchindex.js %_docdir/%name/interop/vhost-user.html @@ -1639,6 +1710,7 @@ fi %_docdir/%name/specs/genindex.html %_docdir/%name/specs/index.html %_docdir/%name/specs/objects.inv +%_docdir/%name/specs/ppc-spapr-numa.html %_docdir/%name/specs/ppc-spapr-xive.html %_docdir/%name/specs/ppc-xive.html %_docdir/%name/specs/search.html @@ -1656,19 +1728,26 @@ fi %_docdir/%name/system/arm/musca.html %_docdir/%name/system/arm/musicpal.html %_docdir/%name/system/arm/nseries.html +%_docdir/%name/system/arm/nuvoton.html %_docdir/%name/system/arm/orangepi.html %_docdir/%name/system/arm/palm.html +%_docdir/%name/system/arm/raspi.html %_docdir/%name/system/arm/realview.html +%_docdir/%name/system/arm/sbsa.html %_docdir/%name/system/arm/stellaris.html %_docdir/%name/system/arm/sx1.html %_docdir/%name/system/arm/versatile.html %_docdir/%name/system/arm/vexpress.html %_docdir/%name/system/arm/virt.html +%_docdir/%name/system/arm/xlnx-versal-virt.html %_docdir/%name/system/arm/xscale.html %_docdir/%name/system/build-platforms.html +%_docdir/%name/system/cpu-hotplug.html %_docdir/%name/system/deprecated.html %_docdir/%name/system/gdb.html %_docdir/%name/system/genindex.html +%_docdir/%name/system/i386/microvm.html +%_docdir/%name/system/i386/pc.html %_docdir/%name/system/images.html %_docdir/%name/system/index.html %_docdir/%name/system/invocation.html @@ -1681,11 +1760,13 @@ fi %_docdir/%name/system/mux-chardev.html %_docdir/%name/system/net.html %_docdir/%name/system/objects.inv +%_docdir/%name/system/pr-manager.html %_docdir/%name/system/qemu-block-drivers.html %_docdir/%name/system/qemu-cpu-models.html %_docdir/%name/system/qemu-manpage.html %_docdir/%name/system/quickstart.html %_docdir/%name/system/s390x/3270.html +%_docdir/%name/system/s390x/bootdevices.html %_docdir/%name/system/s390x/css.html %_docdir/%name/system/s390x/protvirt.html %_docdir/%name/system/s390x/vfio-ap.html @@ -1707,6 +1788,8 @@ fi %_docdir/%name/system/targets.html %_docdir/%name/system/tls.html %_docdir/%name/system/usb.html +%_docdir/%name/system/virtio-net-failover.html +%_docdir/%name/system/virtio-pmem.html %_docdir/%name/system/vnc-security.html %_docdir/%name/tools/.buildinfo %_docdir/%name/tools/_static/* @@ -1715,6 +1798,7 @@ fi %_docdir/%name/tools/objects.inv %_docdir/%name/tools/qemu-img.html %_docdir/%name/tools/qemu-nbd.html +%_docdir/%name/tools/qemu-pr-helper.html %_docdir/%name/tools/qemu-trace-stap.html %_docdir/%name/tools/search.html %_docdir/%name/tools/searchindex.js @@ -1772,18 +1856,19 @@ fi %dir %_docdir/qemu-ppc %_docdir/qemu-ppc/supported.txt -%files s390 +%files s390x %defattr(-, root, root) %_bindir/qemu-system-s390x %_datadir/%name/s390-ccw.img %_datadir/%name/s390-netboot.img -%dir %_docdir/qemu-s390 -%_docdir/qemu-s390/supported.txt +%dir %_docdir/qemu-s390x +%_docdir/qemu-s390x/supported.txt %files arm %defattr(-, root, root) %_bindir/qemu-system-arm %_bindir/qemu-system-aarch64 +%_datadir/%name/npcm7xx_bootrom.bin %dir %_docdir/qemu-arm %_docdir/qemu-arm/supported.txt @@ -1793,7 +1878,6 @@ fi %_bindir/qemu-system-avr %_bindir/qemu-system-cris %_bindir/qemu-system-hppa -%_bindir/qemu-system-lm32 %_bindir/qemu-system-m68k %_bindir/qemu-system-microblaze %_bindir/qemu-system-microblazeel @@ -1812,16 +1896,15 @@ fi %_bindir/qemu-system-sparc %_bindir/qemu-system-sparc64 %_bindir/qemu-system-tricore -%_bindir/qemu-system-unicore32 %_bindir/qemu-system-xtensa %_bindir/qemu-system-xtensaeb %_datadir/%name/hppa-firmware.img -%_datadir/%name/opensbi-riscv32-sifive_u-fw_jump.bin -%_datadir/%name/opensbi-riscv32-virt-fw_jump.bin -%_datadir/%name/opensbi-riscv64-sifive_u-fw_jump.bin -%_datadir/%name/opensbi-riscv64-virt-fw_jump.bin %_datadir/%name/openbios-sparc32 %_datadir/%name/openbios-sparc64 +%_datadir/%name/opensbi-riscv32-generic-fw_dynamic.bin +%_datadir/%name/opensbi-riscv32-generic-fw_dynamic.elf +%_datadir/%name/opensbi-riscv64-generic-fw_dynamic.bin +%_datadir/%name/opensbi-riscv64-generic-fw_dynamic.elf %_datadir/%name/palcode-clipper %_datadir/%name/petalogix-ml605.dtb %_datadir/%name/petalogix-s3adsp1800.dtb @@ -1848,6 +1931,13 @@ fi %dir %_libdir/%name %_libdir/%name/audio-pa.so +%files audio-spice +%defattr(-, root, root) +%dir %_datadir/%name/forsplits +%_datadir/%name/forsplits/05 +%dir %_libdir/%name +%_libdir/%name/audio-spice.so + %files block-curl %defattr(-, root, root) %dir %_libdir/%name @@ -1891,28 +1981,53 @@ fi %dir %_datadir/%name %dir %_datadir/%name/forsplits %_datadir/%name/forsplits/00 -%dir %_docdir/%name -%_docdir/%name/qemu-ga-ref.html %dir %_libdir/%name %_libdir/%name/chardev-baum.so +%files chardev-spice +%defattr(-, root, root) +%dir %_datadir/%name +%dir %_datadir/%name/forsplits +%_datadir/%name/forsplits/08 +%dir %_libdir/%name +%_libdir/%name/chardev-spice.so + %files hw-display-qxl %defattr(-, root, root) %dir %_datadir/%name %dir %_datadir/%name/forsplits %_datadir/%name/forsplits/01 -%dir %_docdir/%name -%_docdir/%name/qemu-ga-ref.txt %dir %_libdir/%name %_libdir/%name/hw-display-qxl.so +%files hw-display-virtio-gpu +%defattr(-, root, root) +%dir %_datadir/%name +%dir %_datadir/%name/forsplits +%_datadir/%name/forsplits/04 +%_libdir/%name/hw-display-virtio-gpu.so + +%files hw-display-virtio-gpu-pci +%defattr(-, root, root) +%dir %_datadir/%name +%dir %_datadir/%name/forsplits +%_datadir/%name/forsplits/11 +%dir %_libdir/%name +%_libdir/%name/hw-display-virtio-gpu-pci.so + +%files hw-display-virtio-vga +%defattr(-, root, root) +%dir %_datadir/%name +%dir %_datadir/%name/forsplits +%_datadir/%name/forsplits/12 +%dir %_libdir/%name +%_libdir/%name/hw-display-virtio-vga.so + %files hw-usb-redirect %defattr(-, root, root) %dir %_datadir/%name %dir %_datadir/%name/forsplits %_datadir/%name/forsplits/02 -%dir %_docdir/%name -%_docdir/%name/qemu-qmp-ref.html %dir %_libdir/%name %_libdir/%name/hw-usb-redirect.so @@ -1921,8 +2036,6 @@ fi %dir %_datadir/%name %dir %_datadir/%name/forsplits %_datadir/%name/forsplits/03 -%dir %_docdir/%name -%_docdir/%name/qemu-qmp-ref.txt %dir %_libdir/%name %_libdir/%name/hw-usb-smartcard.so @@ -1936,12 +2049,29 @@ fi %dir %_libdir/%name %_libdir/%name/ui-gtk.so +%files ui-opengl +%defattr(-, root, root) +%dir %_datadir/%name +%dir %_datadir/%name/forsplits +%_datadir/%name/forsplits/10 +%dir %_libdir/%name +%_libdir/%name/ui-egl-headless.so +%_libdir/%name/ui-opengl.so + +%files ui-spice-core +%defattr(-, root, root) +%dir %_datadir/%name +%dir %_datadir/%name/forsplits +%_datadir/%name/forsplits/09 +%dir %_libdir/%name +%_libdir/%name/ui-spice-core.so + %files ui-spice-app %defattr(-, root, root) %dir %_libdir/%name %_libdir/%name/ui-spice-app.so -%files lang -f %mybuilddir/%name.lang +%files lang -f %blddir/%name.lang %defattr(-, root, root) %ifarch %{build_rom_arch} @@ -1957,6 +2087,7 @@ fi %defattr(-, root, root) %dir %_datadir/%name %_datadir/%name/bios-microvm.bin +%_datadir/%name/qboot.rom %files vgabios %defattr(-, root, root) @@ -1993,28 +2124,6 @@ fi %_datadir/%name/pxe-pcnet.rom %_datadir/%name/pxe-rtl8139.rom %_datadir/%name/pxe-virtio.rom - -%if %{provide_edk2_firmware} - -%files edk2 -%dir %_datadir/%name -%dir %_datadir/%name/firmware -%_datadir/%name/edk2-aarch64-code.fd -%_datadir/%name/edk2-arm-code.fd -%_datadir/%name/edk2-arm-vars.fd -%_datadir/%name/edk2-i386-code.fd -%_datadir/%name/edk2-i386-secure-code.fd -%_datadir/%name/edk2-i386-vars.fd -%_datadir/%name/edk2-licenses.txt -%_datadir/%name/edk2-x86_64-code.fd -%_datadir/%name/edk2-x86_64-secure-code.fd -%_datadir/%name/firmware/50-edk2-i386-secure.json -%_datadir/%name/firmware/50-edk2-x86_64-secure.json -%_datadir/%name/firmware/60-edk2-aarch64.json -%_datadir/%name/firmware/60-edk2-arm.json -%_datadir/%name/firmware/60-edk2-i386.json -%_datadir/%name/firmware/60-edk2-x86_64.json -%endif %endif %files skiboot @@ -2035,9 +2144,6 @@ fi %files tools %defattr(-, root, root) %_bindir/analyze-migration.py -%_bindir/elf2dmp -%_bindir/ivshmem-client -%_bindir/ivshmem-server %_bindir/qemu-edid %_bindir/qemu-img %_bindir/qemu-io @@ -2052,9 +2158,18 @@ fi %_mandir/man1/qemu-img.1.gz %_mandir/man1/virtfs-proxy-helper.1.gz %_mandir/man8/qemu-nbd.8.gz +%_mandir/man8/qemu-pr-helper.8.gz %dir %_sysconfdir/%name %config %_sysconfdir/%name/bridge.conf +%files ivshmem-tools +%defattr(-, root, root) +%dir %_datadir/%name +%dir %_datadir/%name/forsplits +%_datadir/%name/forsplits/07 +%_bindir/ivshmem-client +%_bindir/ivshmem-server + %files guest-agent %defattr(-, root, root) %attr(0755,root,kvm) %_bindir/qemu-ga @@ -2093,7 +2208,6 @@ fi %_bindir/qemu-or1k %_bindir/qemu-ppc %_bindir/qemu-ppc64 -%_bindir/qemu-ppc64abi32 %_bindir/qemu-ppc64le %_bindir/qemu-riscv32 %_bindir/qemu-riscv64 @@ -2103,10 +2217,10 @@ fi %_bindir/qemu-sparc %_bindir/qemu-sparc32plus %_bindir/qemu-sparc64 -%_bindir/qemu-tilegx %_bindir/qemu-x86_64 %_bindir/qemu-xtensa %_bindir/qemu-xtensaeb +%_bindir/qemu-binfmt %_bindir/qemu-*-binfmt %_sbindir/qemu-binfmt-conf.sh diff --git a/qht-Revert-some-constification-in-qht.c.patch b/qht-Revert-some-constification-in-qht.c.patch index 318353f6..b1a1ee6d 100644 --- a/qht-Revert-some-constification-in-qht.c.patch +++ b/qht-Revert-some-constification-in-qht.c.patch @@ -34,10 +34,10 @@ index 2e2d6bca932c83bea993850b60f8..6484837487b012cbfc63b6c6e39e 100644 /** * qht_remove - remove a pointer from the hash table diff --git a/util/qht.c b/util/qht.c -index a5a332d98998209875a47ebfdeee..9515bf7506d351230739e1bdb588 100644 +index cfc2c60639af8f7905aae51c53bb..152b8d74f0b12cf4ed75e543575f 100644 --- a/util/qht.c +++ b/util/qht.c -@@ -484,10 +484,10 @@ bool qht_reset_size(struct qht *ht, size_t n_elems) +@@ -485,10 +485,10 @@ bool qht_reset_size(struct qht *ht, size_t n_elems) } static inline @@ -50,7 +50,7 @@ index a5a332d98998209875a47ebfdeee..9515bf7506d351230739e1bdb588 100644 int i; do { -@@ -511,7 +511,7 @@ void *qht_do_lookup(const struct qht_bucket *head, qht_lookup_func_t func, +@@ -512,7 +512,7 @@ void *qht_do_lookup(const struct qht_bucket *head, qht_lookup_func_t func, } static __attribute__((noinline)) @@ -59,7 +59,7 @@ index a5a332d98998209875a47ebfdeee..9515bf7506d351230739e1bdb588 100644 const void *userp, uint32_t hash) { unsigned int version; -@@ -524,10 +524,10 @@ void *qht_lookup__slowpath(const struct qht_bucket *b, qht_lookup_func_t func, +@@ -525,10 +525,10 @@ void *qht_lookup__slowpath(const struct qht_bucket *b, qht_lookup_func_t func, return ret; } @@ -72,7 +72,7 @@ index a5a332d98998209875a47ebfdeee..9515bf7506d351230739e1bdb588 100644 const struct qht_map *map; unsigned int version; void *ret; -@@ -547,7 +547,7 @@ void *qht_lookup_custom(const struct qht *ht, const void *userp, uint32_t hash, +@@ -548,7 +548,7 @@ void *qht_lookup_custom(const struct qht *ht, const void *userp, uint32_t hash, return qht_lookup__slowpath(b, func, userp, hash); } diff --git a/roms-Makefile-add-cross-file-to-qboot-me.patch b/roms-Makefile-add-cross-file-to-qboot-me.patch new file mode 100644 index 00000000..15bdc6ee --- /dev/null +++ b/roms-Makefile-add-cross-file-to-qboot-me.patch @@ -0,0 +1,27 @@ +From: Bruce Rogers +Date: Mon, 23 Nov 2020 07:13:23 -0700 +Subject: roms/Makefile: add --cross-file to qboot meson setup for aarch64 + +Include-If: %ifarch aarch64 + +We conditionally add a --cross-file reference so that we can do +cross compilation of qboot from an aarch64 build. + +Signed-off-by: Bruce Rogers +--- + roms/Makefile | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/roms/Makefile b/roms/Makefile +index a91ffad548af3e95410ce6712fb3..2db995dab25f6d842def858ebbcc 100644 +--- a/roms/Makefile ++++ b/roms/Makefile +@@ -199,7 +199,7 @@ MESON = meson + NINJA = ninja + qboot: + mkdir -p qboot/build +- $(MESON) setup $(if $(wildcard qboot/build/meson-private),--wipe,) qboot qboot/build ++ $(MESON) setup --cross-file qboot/cross.ini $(if $(wildcard qboot/build/meson-private),--wipe,) qboot qboot/build + $(NINJA) -C qboot/build + cp qboot/build/bios.bin ../pc-bios/qboot.rom + diff --git a/roms-Makefile-enable-cross-compile-for-b.patch b/roms-Makefile-enable-cross-compile-for-b.patch deleted file mode 100644 index d8850720..00000000 --- a/roms-Makefile-enable-cross-compile-for-b.patch +++ /dev/null @@ -1,22 +0,0 @@ -From: Bruce Rogers -Date: Sun, 3 Nov 2019 07:21:40 -0700 -Subject: roms/Makefile: enable cross compile for building microvm bios - -Signed-off-by: Bruce Rogers ---- - roms/Makefile | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/roms/Makefile b/roms/Makefile -index 3aaf3835730023e9a941fc9cd2c2..1bfe34b404d2822bda71edf25ae4 100644 ---- a/roms/Makefile -+++ b/roms/Makefile -@@ -205,7 +205,7 @@ opensbi64-sifive_u: - cp opensbi/build/platform/sifive/fu540/firmware/fw_jump.bin ../pc-bios/opensbi-riscv64-sifive_u-fw_jump.bin - - bios-microvm: -- $(MAKE) -C qboot -+ $(MAKE) -C qboot CROSS_COMPILE=$(x86_64_cross_prefix) CC=gcc - cp qboot/bios.bin ../pc-bios/bios-microvm.bin - - clean: diff --git a/roms-Makefile-pass-a-packaging-timestamp.patch b/roms-Makefile-pass-a-packaging-timestamp.patch index 84c4497b..8642bcb9 100644 --- a/roms-Makefile-pass-a-packaging-timestamp.patch +++ b/roms-Makefile-pass-a-packaging-timestamp.patch @@ -20,10 +20,10 @@ Signed-off-by: Bruce Rogers 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/roms/Makefile b/roms/Makefile -index f9acf39954dcf96618fab21cafe7..3aaf3835730023e9a941fc9cd2c2 100644 +index 5ffe3317acd233586e1a2f87bddd..bbbe2eff895868b8a5781f6ca397 100644 --- a/roms/Makefile +++ b/roms/Makefile -@@ -51,6 +51,12 @@ SEABIOS_EXTRAVERSION="-prebuilt.qemu.org" +@@ -52,6 +52,12 @@ SEABIOS_EXTRAVERSION="-prebuilt.qemu.org" # EDK2_EFIROM = edk2/BaseTools/Source/C/bin/EfiRom @@ -36,16 +36,16 @@ index f9acf39954dcf96618fab21cafe7..3aaf3835730023e9a941fc9cd2c2 100644 default help: @echo "nothing is build by default" @echo "available build targets:" -@@ -101,7 +107,7 @@ build-seabios-config-%: config.% +@@ -104,7 +110,7 @@ build-seabios-config-%: config.% - .PHONY: sgabios skiboot + .PHONY: sgabios skiboot qboot sgabios: - $(MAKE) -C sgabios + $(MAKE) -C sgabios PACKAGING_TIMESTAMP=$(PACKAGING_TIMESTAMP) cp sgabios/sgabios.bin ../pc-bios -@@ -121,11 +127,13 @@ efi-rom-%: build-pxe-roms build-efi-roms edk2-basetools +@@ -123,11 +129,13 @@ efi-rom-%: build-pxe-roms build-efi-roms edk2-basetools build-pxe-roms: $(MAKE) -C ipxe/src CONFIG=qemu \ @@ -57,9 +57,9 @@ index f9acf39954dcf96618fab21cafe7..3aaf3835730023e9a941fc9cd2c2 100644 $(MAKE) -C ipxe/src CONFIG=qemu \ + PACKAGING_TIMESTAMP=$(PACKAGING_TIMESTAMP) \ CROSS_COMPILE=$(x86_64_cross_prefix) \ - $(patsubst %,bin-i386-efi/%.efidrv,$(pxerom_targets)) \ $(patsubst %,bin-x86_64-efi/%.efidrv,$(pxerom_targets)) -@@ -148,7 +156,9 @@ edk2-basetools: + +@@ -150,7 +158,9 @@ edk2-basetools: EXTRA_LDFLAGS='$(EDK2_BASETOOLS_LDFLAGS)' slof: diff --git a/supported.arm.txt b/supported.arm.txt index ad0064cc..3ac01eac 100644 --- a/supported.arm.txt +++ b/supported.arm.txt @@ -1,11 +1,11 @@ [qemu-arm package document] -POST SLES 15 SP2 QEMU/KVM RELATED SUPPORT STATEMENTS +SLES 15 SP3 QEMU/KVM RELATED SUPPORT STATEMENTS Overview -------- - The QEMU based packages included with SLES 15 SP2 provide a large variety of + The QEMU based packages included with SLES 15 SP3 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 @@ -57,7 +57,7 @@ Major QEMU/KVM Supported Features 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 SP2, +- QEMU is compatible with EDK II based UEFI firmware available with SLES 15 SP3, 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. @@ -73,7 +73,7 @@ Major QEMU/KVM Supported Features - 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 SP2 + take place either from certain prior SLES versioned hosts to a SLES 15 SP3 host or between hosts of the same version. Certain other restrictions also apply. @@ -113,7 +113,7 @@ Major QEMU/KVM Supported Features - Portions of the host file system may be shared with a guest by using virtFS. -- A guest "agent" is available for SLES 15 SP2 KVM guests via the +- A guest "agent" is available for SLES 15 SP3 KVM guests via the qemu-guest-agent package. This allows some introspection and control of the guest OS environment from the host. @@ -210,6 +210,9 @@ Deprecated, Superseded, Modified and Dropped Features -device at24c-eeprom -device mmio_interface -device ssi-sd + -device vhost-user-vsock-pci-transitional + -device vhost-vsock-pci-transitional + -device virtio-iommu-pci-transitional -enable-hax -tdf -xen-create @@ -224,6 +227,8 @@ Deprecated, Superseded, Modified and Dropped Features query-events query-migrate-cache-size (use query-migrate-parameters instead) +- This previously supported QMP command is no longer recognized: + - These previously supported monitor commands are now deprecated: change cpu-add @@ -231,6 +236,7 @@ Deprecated, Superseded, Modified and Dropped Features migrate_set_speed - These previously supported monitor commands are no longer recognized: + cpu-add pci_add (use device_add instead) pci_del (use device_del instead) usb_add (use device_add instead) @@ -281,8 +287,8 @@ QEMU Command-Line and Monitor Syntax and Support 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-4.2 - instead of virt-3.1) if possible. + This advice includes moving to the most recent machine type (eg virt-5.2 + instead of virt-4.2) if possible. - The following command line options are supported: -accel ... @@ -316,11 +322,10 @@ QEMU Command-Line and Monitor Syntax and Support 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|vhost-vsock-pci-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| + 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| @@ -357,8 +362,8 @@ QEMU Command-Line and Monitor Syntax and Support -kernel ... -loadvm ... -m ... - -M [help|?|none|virt|virt-2.6|virt-2.11|virtio-3.1|virt-4.2] - -machine [help|?|none|virt|virt-2.6|virt-2.11|virt-3.1|virt-4.2] + -M [help|?|none|virt|virt-2.6|virt-2.11|virtio-3.1|virt-4.2|virt-5.2] + -machine [help|?|none|virt|virt-2.6|virt-2.11|virt-3.1|virt-4.2|virt-5.2] -mem-path ... -mem-prealloc -mon ... @@ -428,7 +433,6 @@ QEMU Command-Line and Monitor Syntax and Support closefd ... cont cpu ... - cpu-add ... delvm ... device_add ... device_del ... @@ -516,12 +520,15 @@ QEMU Command-Line and Monitor Syntax and Support block-dirty-bitmap-enable block-dirty-bitmap-merge block-dirty-bitmap-remove + block-export-add + block-export-del block-latency-histogram-set block_passwd block_resize block_set_io_throttle block-set-write-threshold block_stream + calc-dirty-rate change change-vnc-password chardev-add @@ -573,6 +580,7 @@ QEMU Command-Line and Monitor Syntax and Support query-acpi-ospm-status query-balloon query-block + query-block-exports query-block-jobs query-blockstats query-chardev @@ -580,13 +588,12 @@ QEMU Command-Line and Monitor Syntax and Support query-command-line-options query-commands query-cpu-definitions - query-cpu-model-baseline - query-cpu-model-comparison query-cpu-model-expansion query-cpus query-cpus-fast query-current-machine query-display-options + query-dirty-rate query-dump query-dump-guest-memory-capability query-events @@ -630,7 +637,6 @@ QEMU Command-Line and Monitor Syntax and Support remove-fd ringbuf-read ringbuf-write - rtc-reset-reinjection screendump send-key set_link @@ -727,15 +733,18 @@ QEMU Command-Line and Monitor Syntax and Support 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|virtio-iommu-pci-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|tpm-tis-device|nvdimm|vhost-user-vsock-device|i - vhost-user-vsock-pci|vhost-user-vsock-pci-non-transitional| - vhost-user-vsock-pci-transitional] + 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|tpm-tis-device|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|u2f-passthru] (the following are aliases of these unsupported devices: lsi| piix3-usb-uhci) (note that some of these device names represent supported devices and @@ -759,29 +768,32 @@ QEMU Command-Line and Monitor Syntax and Support [akita|ast2500-evb|ast2600-evb|borzoi|canon-a1100|cheetah|collie|connex| cubieboard|highbank|imx25-pdk|integratorcp|kzm|lm3s6965evb|lm3s811evb| - mainstone|mcimx6ul-evk|mcimx7d-sabre|microbit|midway|mps2-an385|mps2-an505| - mps2-an511|mps2-an521|musca-a|musca-b1|musicpal|n800|n810|netduino2| - netduinoplus2|nuri|orangepi-pc|palmetto-bmc|raspi2|raspi3|realview-eb| - realview-eb-mpcore|realview-pb-a8|realview-pbx-a9|romulus-bmc|sabrelite| - sbsa-ref|smdkc210|sonorapass-bmc|spitz|swift-bmc|sx1|sx1-v1|tacoma-bmc| - terrier|tosa|verdex|versatileab|versatilepb|vexpress-a15|vexpress-a9| - virt-2.7|virt-2.8|virt-2.12|virt-3.0|virt-4.0|virt-4.1|virt-5.0|virt-5.1| - witherspoon-bmc|xilinx-zynq-a9|xlnx-versal-virt|xlnx-zcu102|z2] + mainstone|mcimx6ul-evk|mcimx7d-sabre|microbit|midway|mps2-an385|mps2-an386| + mps2-an500|mps2-an505|mps2-an511|mps2-an521|musca-a|musca-b1|musicpal|n800| + n810|netduino2|netduinoplus2|npcm750-evb|nuri|orangepi-pc|palmetto-bmc| + quanta-gsj|raspi0|raspi1ap|raspi2|raspi2b|raspi3|raspi3ap|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.7|virt-2.8|virt-2.12|virt-3.0| + virt-4.0|virt-4.1|virt-5.0|virt-5.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|highbank|imx25-pdk|integratorcp|kzm|lm3s6965evb| lm3s811evb|mainstone|mcimx6ul-evk|mcimx7d-sabre|microbit|midway| - mps2-an385|mps2-an521|mps2-an505|mps2-an511|musca-a|musca-b1| - musicpal|n800|n810|netduino2|netduinoplus2|nuri|orangepi-pc| - palmetto-bmc|raspi2|raspi3|realview-eb|realview-eb-mpcore| - realview-pb-a8|realview-pbx-a9|romulus-bmc|sabrelite|sbsa-ref| - smdkc210|sonorapass-bmc|spitz|swift-bmc|sx1|sx1-v1|tacoma-bmc| - terrier|tosa|verdex|versatileab|versatilepb|vexpress-a15|vexpress-a9| - virt-2.7|virt-2.8|virt-2.12|virt-3.0|virt-4.0|virt-4.1|virt-5.0| - virt-5.1|witherspoon-bmc|xilinx-zynq-a9|xlnx-versal-virt|xlnx-zcu102| - z2] + mps2-an385|mps2-an386|mps2-an500|mps2-an521|mps2-an505|mps2-an511| + musca-a|musca-b1|musicpal|n800|n810|netduino2|netduinoplus2| + npcm750-evb|nuri|orangepi-pc|palmetto-bmc|quanta-gsj|raspi0|raspi1ap| + raspi2|raspi2b|raspi3|raspi3ap|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.7|virt-2.8|virt-2.12| + virt-3.0|virt-4.0|virt-4.1|virt-5.0|virt-5.1|witherspoon-bmc| + xilinx-zynq-a9|xlnx-versal-virt|xlnx-zcu102|z2] -mtdblock file -net [dump|socket|vde] ... @@ -842,6 +854,9 @@ QEMU Command-Line and Monitor Syntax and Support netdev_add netdev_del ... pcie_aer_inject_error ... + replay_break ... + replay_delete_break + replay_seek ... set_link ... set_password ... singlestep ... @@ -860,15 +875,15 @@ QEMU Command-Line and Monitor Syntax and Support 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-sev - query-sev-launch-measure + replay_break + replay_delete_break + replay_seek x-blockdev-amend x-blockdev-change x-blockdev-insert-medium diff --git a/supported.ppc.txt b/supported.ppc.txt index f05f69a0..46e21c2e 100644 --- a/supported.ppc.txt +++ b/supported.ppc.txt @@ -1,5 +1,5 @@ [qemu-ppc package document] -POST SLES 15 SP2 QEMU/KVM RELATED SUPPORT STATEMENTS +SLES 15 SP3 QEMU/KVM RELATED SUPPORT STATEMENTS QEMU/KVM on ppc is not supported. diff --git a/supported.s390.txt b/supported.s390.txt index ced74151..0fe9b7ce 100644 --- a/supported.s390.txt +++ b/supported.s390.txt @@ -1,11 +1,11 @@ [qemu-s390 package document] -POST SLES 15 SP2 QEMU/KVM RELATED SUPPORT STATEMENTS +SLES 15 SP3 QEMU/KVM RELATED SUPPORT STATEMENTS Overview -------- - The QEMU based packages included with SLES 15 SP2 provide a large variety of + The QEMU based packages included with SLES 15 SP3 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 @@ -73,7 +73,7 @@ Major QEMU/KVM Supported Features - 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 SP2 + take place either from certain prior SLES versioned hosts to a SLES 15 SP3 host or between hosts of the same version. Certain other restrictions also apply. @@ -113,7 +113,7 @@ Major QEMU/KVM Supported Features - Portions of the host file system may be shared with a guest by using virtFS. -- A guest "agent" is available for SLES 15 SP2 KVM guests via the +- A guest "agent" is available for SLES 15 SP3 KVM guests via the qemu-guest-agent package. This allows some introspection and control of the guest OS environment from the host. @@ -203,6 +203,9 @@ Deprecated, Superseded, Modified and Dropped Features - These previously unsupported command line options are no longer recognized: -device mmio_interface -device ramfb + -device vhost-user-vsock-pci-transitional + -device vhost-vsock-pci-transitional + -device virtio-iommu-pci-transitional -enable-hax -tdf -xen-create @@ -219,11 +222,11 @@ Deprecated, Superseded, Modified and Dropped Features - These previously supported monitor commands are now deprecated: change - cpu-add migrate_set_downtime migrate_set_speed - These previously supported monitor commands are no longer recognized: + cpu-add pci_add (use device_add instead) pci_del (use device_del instead) @@ -275,7 +278,7 @@ QEMU Command-Line and Monitor Syntax and Support 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-4.2 instead of s390-ccw-virtio-3.1) if possible. + s390-ccw-virtio-5.2 instead of s390-ccw-virtio-4.2) if possible. - The following command line options are supported: -accel ... @@ -301,14 +304,14 @@ QEMU Command-Line and Monitor Syntax and Support scsi-generic|scsi-disk|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-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| - vhost-vsock-pci-transitional|virtio-9p-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| @@ -351,12 +354,14 @@ QEMU Command-Line and Monitor Syntax and Support -M [help|?|none|s390-ccw-virtio|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-2.11|s390-ccw-virtio-3.1|s390-ccw-virtio-4.2| + s390-ccw-virtio-5.2] -machine [help|?|none|s390-ccw-virtio|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-2.11|s390-ccw-virtio-3.1|s390-ccw-virtio-4.2| + s390-ccw-virtio-5.2] -mem-path ... -mem-prealloc @@ -421,7 +426,6 @@ QEMU Command-Line and Monitor Syntax and Support closefd ... cont cpu ... - cpu-add ... delvm ... device_add ... device_del ... @@ -509,12 +513,15 @@ QEMU Command-Line and Monitor Syntax and Support block-dirty-bitmap-enable block-dirty-bitmap-merge block-dirty-bitmap-remove + block-export-add + block-export-del block-latency-histogram-set block_passwd block_resize block_set_io_throttle block-set-write-threshold block_stream + calc-dirty-rate change change-vnc-password chardev-add @@ -566,6 +573,7 @@ QEMU Command-Line and Monitor Syntax and Support query-acpi-ospm-status query-balloon query-block + query-block-exports query-block-jobs query-blockstats query-chardev @@ -579,6 +587,7 @@ QEMU Command-Line and Monitor Syntax and Support query-cpus query-cpus-fast query-current-machine + query-dirty-rate query-display-options query-dump query-dump-guest-memory-capability @@ -620,7 +629,6 @@ QEMU Command-Line and Monitor Syntax and Support remove-fd ringbuf-read ringbuf-write - rtc-reset-reinjection screendump send-key set_link @@ -656,8 +664,8 @@ QEMU Command-Line and Monitor Syntax and Support 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| + 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| @@ -688,10 +696,9 @@ QEMU Command-Line and Monitor Syntax and Support 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|virtio-iommu-pci-transitional| - vhost-user-vsock-device|vhost-user-vsock-pci| - vhost-user-vsock-pci-non-transitional| - vhost-user-vsock-pci-transitional] + virtio-iommu-pci-non-transitional|vhost-user-vsock-device| + vhost-user-vsock-pci|vhost-user-vsock-pci-non-transitional| + vhost-user-fs-ccw] (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 @@ -791,6 +798,9 @@ QEMU Command-Line and Monitor Syntax and Support netdev_add netdev_del ... pcie_aer_inject_error ... + replay_break ... + replay_delete_break + replay_seek ... set_link ... set_password ... singlestep ... @@ -816,11 +826,12 @@ QEMU Command-Line and Monitor Syntax and Support nbd-server-start nbd-server-stop query-colo-status - query-sev - query-sev-launch-measure 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 diff --git a/supported.x86.txt b/supported.x86.txt index 675790be..6010d32d 100644 --- a/supported.x86.txt +++ b/supported.x86.txt @@ -1,11 +1,11 @@ [qemu-x86 package document] -POST SLES 15 SP2 QEMU/KVM RELATED SUPPORT STATEMENTS +SLES 15 SP3 QEMU/KVM RELATED SUPPORT STATEMENTS Overview -------- - The QEMU based packages included with SLES 15 SP2 provide a large variety of + The QEMU based packages included with SLES 15 SP3 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 @@ -81,7 +81,7 @@ Major QEMU/KVM Supported Features - 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 SP2 + take place either from certain prior SLES versioned hosts to a SLES 15 SP3 host or between hosts of the same version. Certain other restrictions also apply. @@ -132,7 +132,7 @@ Major QEMU/KVM Supported Features - Portions of the host file system may be shared with a guest by using virtFS. -- A guest "agent" is available for SLES 15 SP2 KVM guests via the +- A guest "agent" is available for SLES 15 SP3 KVM guests via the qemu-guest-agent package. This allows some introspection and control of the guest OS environment from the host. @@ -267,6 +267,9 @@ Deprecated, Superseded, Modified and Dropped Features -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) @@ -304,11 +307,11 @@ Deprecated, Superseded, Modified and Dropped Features - These previously supported monitor commands are now deprecated: change - cpu-add migrate_set_downtime migrate_set_speed - These previously supported monitor commands are no longer recognized: + cpu-add cpu_set pci_add (use device_add instead) pci_del (use device_del instead) @@ -372,8 +375,8 @@ QEMU Command-Line and Monitor Syntax and Support 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-4.2 - instead of pc-i440fx-3.1) if possible. + This advice includes moving to the most recent machine type (eg pc-i440fx-5.2 + instead of pc-i440fx-4.2) if possible. - The following command line options are supported: -accel ... @@ -409,8 +412,7 @@ QEMU Command-Line and Monitor Syntax and Support 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| - vhost-vsock-pci-transitional|virtio-balloon-pci| + 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| @@ -461,15 +463,16 @@ QEMU Command-Line and Monitor Syntax and Support -M [help|?|none|pc|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|q35| - pc-q35-2.6|pc-q35-2.9|pc-q35-2.11|pc-q35-3.1|pc-q35-4.2|xenfv|xenfv-4.2] + pc-i440fx-2.6|pc-i440fx-2.9|pc-i440fx-2.11|pc-i440fx-3.1|pc-i440fx-4.2| + pc-i440fx-5.2|q35|pc-q35-2.6|pc-q35-2.9|pc-q35-2.11|pc-q35-3.1|pc-q35-4.2| + pc-q35-5.2|xenfv|xenfv-4.2] -machine [help|?|none|pc|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|q35|pc-q35-2.6|pc-q35-2.9|pc-q35-2.11| - pc-q35-3.1|pc-q35-4.2|xenfv|xenifv-4.2] + pc-i440fx-3.1|pc-i440fx-4.2|pc-i440fx-5.2|q35|pc-q35-2.6|pc-q35-2.9| + pc-q35-2.11|pc-q35-3.1|pc-q35-4.2|pc-q35-5.2|xenfv|xenifv-4.2] -mem-path ... -mem-prealloc @@ -547,7 +550,6 @@ QEMU Command-Line and Monitor Syntax and Support closefd ... cont cpu ... - cpu-add ... delvm ... device_add ... device_del ... @@ -637,12 +639,15 @@ QEMU Command-Line and Monitor Syntax and Support block-dirty-bitmap-enable block-dirty-bitmap-merge block-dirty-bitmap-remove + block-export-add + block-export-del block-latency-histogram-set block_passwd block_resize block_set_io_throttle block-set-write-threshold block_stream + calc-dirty-rate change change-vnc-password chardev-add @@ -694,6 +699,7 @@ QEMU Command-Line and Monitor Syntax and Support query-acpi-ospm-status query-balloon query-block + query-block-exports query-block-jobs query-blockstats query-chardev @@ -701,12 +707,11 @@ QEMU Command-Line and Monitor Syntax and Support query-command-line-options query-commands query-cpu-definitions - query-cpu-model-baseline - query-cpu-model-comparison query-cpu-model-expansion query-cpus query-cpus-fast query-current-machine + query-dirty-rate query-display-options query-dump query-dump-guest-memory-capability @@ -736,6 +741,9 @@ QEMU Command-Line and Monitor Syntax and Support 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 @@ -751,7 +759,6 @@ QEMU Command-Line and Monitor Syntax and Support remove-fd ringbuf-read ringbuf-write - rtc-reset-reinjection screendump send-key set_link @@ -802,11 +809,10 @@ QEMU Command-Line and Monitor Syntax and Support 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| - virtio-iommu-pci-transitional|xen-sysdev|imx.usbphy|vmbus-bridge| - vhost-user-vsock-device|vhost-user-vsock-pci| - vhost-user-vsock-pci-non-transitional| - vhost-user-vsock-pci-transitional|virtio-mem|virtio-mem-pci] + 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 @@ -893,6 +899,9 @@ QEMU Command-Line and Monitor Syntax and Support netdev_add netdev_del ... pcie_aer_inject_error ... + replay_break ... + replay_delete_break + replay_seek ... set_link ... set_password ... singlestep ... @@ -911,15 +920,16 @@ QEMU Command-Line and Monitor Syntax and Support 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-sev - query-sev-launch-measure + query-replay + replay_break + replay_delete_break + replay_seek x-blockdev-amend x-blockdev-change x-blockdev-insert-medium diff --git a/tests-Fix-block-tests-to-be-compatible-w.patch b/tests-Fix-block-tests-to-be-compatible-w.patch index 03a4cc3b..106d1d87 100644 --- a/tests-Fix-block-tests-to-be-compatible-w.patch +++ b/tests-Fix-block-tests-to-be-compatible-w.patch @@ -84,7 +84,7 @@ index 34045ea3cfeb5e30acac17ae8a10..b5cec71dd9a718055d9264e51946 100755 echo echo "== Detecting -U and force-share conflicts ==" diff --git a/tests/qemu-iotests/153.out b/tests/qemu-iotests/153.out -index 8a79e1ee870d72c6d346898113b1..d1d6b673b22d5443700ae9c146c7 100644 +index fcaa71aeeebd855d684d8056410f..8fbc7413e716462a4f196c39db5e 100644 --- a/tests/qemu-iotests/153.out +++ b/tests/qemu-iotests/153.out @@ -424,6 +424,8 @@ Is another process using the image [TEST_DIR/t.qcow2]? diff --git a/tests-change-error-message-in-test-162.patch b/tests-change-error-message-in-test-162.patch index a7c779cd..ba985e83 100644 --- a/tests-change-error-message-in-test-162.patch +++ b/tests-change-error-message-in-test-162.patch @@ -13,7 +13,7 @@ Signed-off-by: Bruce Rogers 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/qemu-iotests/162.out b/tests/qemu-iotests/162.out -index 5a00d36d17878376380430dad705..390cca9027e918f1a0d252753ce5 100644 +index f8714cb0d27d2b15d3feaaaf729c..2793aed277903222ea4396157d31 100644 --- a/tests/qemu-iotests/162.out +++ b/tests/qemu-iotests/162.out @@ -1,7 +1,7 @@ diff --git a/update_git.sh b/update_git.sh index c8e31b3d..00d83b07 100644 --- a/update_git.sh +++ b/update_git.sh @@ -574,9 +574,9 @@ rm -rf $BUNDLE_DIR rm -f qemu.changes.added fi # Decide if there is a better way to handle the no change case: -# if [[ "0" = "$(expr $CHANGED_COUNT + $DELETED_COUNT + $ADDED_COUNT)" ]]; then -# osc revert bundles.tar.xz -# fi + if [[ "0" = "$(expr $CHANGED_COUNT + $DELETED_COUNT + $ADDED_COUNT)" ]]; then + osc revert bundles.tar.xz + fi echo "git patch summary" echo " unchanged: $UNCHANGED_COUNT" echo " changed: $CHANGED_COUNT" diff --git a/usb-Help-compiler-out-to-avoid-a-warning.patch b/usb-Help-compiler-out-to-avoid-a-warning.patch new file mode 100644 index 00000000..bb8a4bde --- /dev/null +++ b/usb-Help-compiler-out-to-avoid-a-warning.patch @@ -0,0 +1,41 @@ +From: Bruce Rogers +Date: Thu, 3 Dec 2020 16:48:13 -0700 +Subject: usb: Help compiler out to avoid a warning on x86 compilation + +Include-If: %ifarch %arm %ix86 + +There is an assert present which already should give the compiler +enough information about the value of i as used in the snprintf, +but if I remember right, for x86, because memory is tighter some of +the compiler smarts are turned off, so we get the uninformed warning +there and not on other archs. So on x86 only we'll add some code to +help the compiler out, so we can again compile qemu with +--enable-werror. + +Signed-off-by: Bruce Rogers +--- + hw/usb/hcd-xhci.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/hw/usb/hcd-xhci.c b/hw/usb/hcd-xhci.c +index 9ce7ca706e3beff96cde32ddded3..e0884d777093a39506ac01fdce3a 100644 +--- a/hw/usb/hcd-xhci.c ++++ b/hw/usb/hcd-xhci.c +@@ -3306,7 +3306,7 @@ static void usb_xhci_init(XHCIState *xhci) + USB_SPEED_MASK_FULL | + USB_SPEED_MASK_HIGH; + assert(i < XHCI_MAXPORTS); +- snprintf(port->name, sizeof(port->name), "usb2 port #%d", i+1); ++ snprintf(port->name, sizeof(port->name), "usb2 port #%d", i+1 < XHCI_MAXPORTS ? i+1 : 0); + speedmask |= port->speedmask; + } + if (i < xhci->numports_3) { +@@ -3320,7 +3320,7 @@ static void usb_xhci_init(XHCIState *xhci) + port->uport = &xhci->uports[i]; + port->speedmask = USB_SPEED_MASK_SUPER; + assert(i < XHCI_MAXPORTS); +- snprintf(port->name, sizeof(port->name), "usb3 port #%d", i+1); ++ snprintf(port->name, sizeof(port->name), "usb3 port #%d", i+1 < XHCI_MAXPORTS ? i+1 : 0); + speedmask |= port->speedmask; + } + usb_register_port(&xhci->bus, &xhci->uports[i], xhci, i, diff --git a/usb-fix-setup_len-init-CVE-2020-14364.patch b/usb-fix-setup_len-init-CVE-2020-14364.patch deleted file mode 100644 index 5aa5ac18..00000000 --- a/usb-fix-setup_len-init-CVE-2020-14364.patch +++ /dev/null @@ -1,86 +0,0 @@ -From: Gerd Hoffmann -Date: Tue, 25 Aug 2020 07:36:36 +0200 -Subject: usb: fix setup_len init (CVE-2020-14364) - -Git-commit: b946434f2659a182afc17e155be6791ebfb302eb -References: bsc#1175441, CVE-2020-14364 - -Store calculated setup_len in a local variable, verify it, and only -write it to the struct (USBDevice->setup_len) in case it passed the -sanity checks. - -This prevents other code (do_token_{in,out} functions specifically) -from working with invalid USBDevice->setup_len values and overrunning -the USBDevice->setup_buf[] buffer. - -Fixes: CVE-2020-14364 -Signed-off-by: Gerd Hoffmann -Tested-by: Gonglei -Signed-off-by: Bruce Rogers ---- - hw/usb/core.c | 16 ++++++++++------ - 1 file changed, 10 insertions(+), 6 deletions(-) - -diff --git a/hw/usb/core.c b/hw/usb/core.c -index 5abd128b6bc5f5440e18b143fe41..5234dcc73fea6012f7143f307640 100644 ---- a/hw/usb/core.c -+++ b/hw/usb/core.c -@@ -129,6 +129,7 @@ void usb_wakeup(USBEndpoint *ep, unsigned int stream) - static void do_token_setup(USBDevice *s, USBPacket *p) - { - int request, value, index; -+ unsigned int setup_len; - - if (p->iov.size != 8) { - p->status = USB_RET_STALL; -@@ -138,14 +139,15 @@ static void do_token_setup(USBDevice *s, USBPacket *p) - usb_packet_copy(p, s->setup_buf, p->iov.size); - s->setup_index = 0; - p->actual_length = 0; -- s->setup_len = (s->setup_buf[7] << 8) | s->setup_buf[6]; -- if (s->setup_len > sizeof(s->data_buf)) { -+ setup_len = (s->setup_buf[7] << 8) | s->setup_buf[6]; -+ if (setup_len > sizeof(s->data_buf)) { - fprintf(stderr, - "usb_generic_handle_packet: ctrl buffer too small (%d > %zu)\n", -- s->setup_len, sizeof(s->data_buf)); -+ setup_len, sizeof(s->data_buf)); - p->status = USB_RET_STALL; - return; - } -+ s->setup_len = setup_len; - - request = (s->setup_buf[0] << 8) | s->setup_buf[1]; - value = (s->setup_buf[3] << 8) | s->setup_buf[2]; -@@ -259,26 +261,28 @@ static void do_token_out(USBDevice *s, USBPacket *p) - static void do_parameter(USBDevice *s, USBPacket *p) - { - int i, request, value, index; -+ unsigned int setup_len; - - for (i = 0; i < 8; i++) { - s->setup_buf[i] = p->parameter >> (i*8); - } - - s->setup_state = SETUP_STATE_PARAM; -- s->setup_len = (s->setup_buf[7] << 8) | s->setup_buf[6]; - s->setup_index = 0; - - request = (s->setup_buf[0] << 8) | s->setup_buf[1]; - value = (s->setup_buf[3] << 8) | s->setup_buf[2]; - index = (s->setup_buf[5] << 8) | s->setup_buf[4]; - -- if (s->setup_len > sizeof(s->data_buf)) { -+ setup_len = (s->setup_buf[7] << 8) | s->setup_buf[6]; -+ if (setup_len > sizeof(s->data_buf)) { - fprintf(stderr, - "usb_generic_handle_packet: ctrl buffer too small (%d > %zu)\n", -- s->setup_len, sizeof(s->data_buf)); -+ setup_len, sizeof(s->data_buf)); - p->status = USB_RET_STALL; - return; - } -+ s->setup_len = setup_len; - - if (p->pid == USB_TOKEN_OUT) { - usb_packet_copy(p, s->data_buf, s->setup_len); diff --git a/virtio-add-vhost-user-fs-ccw-device.patch b/virtio-add-vhost-user-fs-ccw-device.patch deleted file mode 100644 index 25cfaa94..00000000 --- a/virtio-add-vhost-user-fs-ccw-device.patch +++ /dev/null @@ -1,99 +0,0 @@ -From: Halil Pasic -Date: Tue, 1 Sep 2020 17:00:18 +0200 -Subject: virtio: add vhost-user-fs-ccw device - -Git-commit: bd0bbb9aba2afbc2ea24b0475be04f795468b381 -References: jsc#sle-13822 - -Wire up the CCW device for vhost-user-fs. - -Reviewed-by: Cornelia Huck -Signed-off-by: Halil Pasic -Message-id: 20200901150019.29229-2-mhartmay@linux.ibm.com -Signed-off-by: Stefan Hajnoczi -Signed-off-by: Liang Yan ---- - hw/s390x/vhost-user-fs-ccw.c | 75 ++++++++++++++++++++++++++++++++++++ - 1 file changed, 75 insertions(+) - -diff --git a/hw/s390x/vhost-user-fs-ccw.c b/hw/s390x/vhost-user-fs-ccw.c -new file mode 100644 -index 0000000000000000000000000000000000000000..6c6f2692930110aebf8038061b259407238942bf ---- /dev/null -+++ b/hw/s390x/vhost-user-fs-ccw.c -@@ -0,0 +1,75 @@ -+/* -+ * virtio ccw vhost-user-fs implementation -+ * -+ * Copyright 2020 IBM Corp. -+ * -+ * This work is licensed under the terms of the GNU GPL, version 2 or (at -+ * your option) any later version. See the COPYING file in the top-level -+ * directory. -+ */ -+#include "qemu/osdep.h" -+#include "hw/qdev-properties.h" -+#include "qapi/error.h" -+#include "hw/virtio/vhost-user-fs.h" -+#include "virtio-ccw.h" -+ -+typedef struct VHostUserFSCcw { -+ VirtioCcwDevice parent_obj; -+ VHostUserFS vdev; -+} VHostUserFSCcw; -+ -+#define TYPE_VHOST_USER_FS_CCW "vhost-user-fs-ccw" -+#define VHOST_USER_FS_CCW(obj) \ -+ OBJECT_CHECK(VHostUserFSCcw, (obj), TYPE_VHOST_USER_FS_CCW) -+ -+ -+static Property vhost_user_fs_ccw_properties[] = { -+ DEFINE_PROP_BIT("ioeventfd", VirtioCcwDevice, flags, -+ VIRTIO_CCW_FLAG_USE_IOEVENTFD_BIT, true), -+ DEFINE_PROP_UINT32("max_revision", VirtioCcwDevice, max_rev, -+ VIRTIO_CCW_MAX_REV), -+ DEFINE_PROP_END_OF_LIST(), -+}; -+ -+static void vhost_user_fs_ccw_realize(VirtioCcwDevice *ccw_dev, Error **errp) -+{ -+ VHostUserFSCcw *dev = VHOST_USER_FS_CCW(ccw_dev); -+ DeviceState *vdev = DEVICE(&dev->vdev); -+ -+ qdev_realize(vdev, BUS(&ccw_dev->bus), errp); -+} -+ -+static void vhost_user_fs_ccw_instance_init(Object *obj) -+{ -+ VHostUserFSCcw *dev = VHOST_USER_FS_CCW(obj); -+ VirtioCcwDevice *ccw_dev = VIRTIO_CCW_DEVICE(obj); -+ -+ ccw_dev->force_revision_1 = true; -+ virtio_instance_init_common(obj, &dev->vdev, sizeof(dev->vdev), -+ TYPE_VHOST_USER_FS); -+} -+ -+static void vhost_user_fs_ccw_class_init(ObjectClass *klass, void *data) -+{ -+ DeviceClass *dc = DEVICE_CLASS(klass); -+ VirtIOCCWDeviceClass *k = VIRTIO_CCW_DEVICE_CLASS(klass); -+ -+ k->realize = vhost_user_fs_ccw_realize; -+ device_class_set_props(dc, vhost_user_fs_ccw_properties); -+ set_bit(DEVICE_CATEGORY_STORAGE, dc->categories); -+} -+ -+static const TypeInfo vhost_user_fs_ccw = { -+ .name = TYPE_VHOST_USER_FS_CCW, -+ .parent = TYPE_VIRTIO_CCW_DEVICE, -+ .instance_size = sizeof(VHostUserFSCcw), -+ .instance_init = vhost_user_fs_ccw_instance_init, -+ .class_init = vhost_user_fs_ccw_class_init, -+}; -+ -+static void vhost_user_fs_ccw_register(void) -+{ -+ type_register_static(&vhost_user_fs_ccw); -+} -+ -+type_init(vhost_user_fs_ccw_register) diff --git a/xen-ignore-live-parameter-from-xen-save-.patch b/xen-ignore-live-parameter-from-xen-save-.patch index 8000f93a..3647a4b1 100644 --- a/xen-ignore-live-parameter-from-xen-save-.patch +++ b/xen-ignore-live-parameter-from-xen-save-.patch @@ -27,12 +27,12 @@ Signed-off-by: Bruce Rogers 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/migration/savevm.c b/migration/savevm.c -index a843d202b5b4dd449e6982b59d80..d75642353e8276f5d3c391fe2c48 100644 +index 5f937a2762793f2cc48bcd40a423..c302ca3048d0c9684d5757149f76 100644 --- a/migration/savevm.c +++ b/migration/savevm.c -@@ -2820,7 +2820,7 @@ void qmp_xen_save_devices_state(const char *filename, bool has_live, bool live, +@@ -2893,7 +2893,7 @@ void qmp_xen_save_devices_state(const char *filename, bool has_live, bool live, * So call bdrv_inactivate_all (release locks) here to let the other - * side of the migration take controle of the images. + * side of the migration take control of the images. */ - if (live && !saved_vm_running) { + if (!saved_vm_running) {