From 6f31d1a8d5f1f1cccf64bc3708e5b741f8581b6e2348a95eae4effeccf6ae75f Mon Sep 17 00:00:00 2001 From: Dario Faggioli Date: Fri, 28 Jun 2024 14:56:57 +0000 Subject: [PATCH] - Update to latest stable release (9.0.1). Full list of backports here: https://lore.kernel.org/qemu-devel/1718081053.366429.1238758.nullmailer@tls.msk.ru/ A selection of them is reported here too: Update version for 9.0.1 release target/loongarch: fix a wrong print in cpu dump ui/sdl2: Allow host to power down screen virtio-gpu: fix v2 migration target/i386: fix SSE and SSE2 feature check target/i386: fix xsave.flat from kvm-unit-tests disas/riscv: Decode all of the pmpcfg and pmpaddr CSRs riscv, gdbstub.c: fix reg_width in ricsv_gen_dynamic_vector_feature() target/riscv/kvm.c: Fix the hart bit setting of AIA target/riscv: rvzicbo: Fixup CBO extension register calculation target/riscv: do not set mtval2 for non guest-page faults target/riscv: prioritize pmp errors in raise_mmu_exception() target/riscv: rvv: Remove redudant SEW checking for vector fp narrow/widen instructions target/riscv: rvv: Check single width operator for vfncvt.rod.f.f.w target/riscv: rvv: Check single width operator for vector fp widen instructions target/riscv: rvv: Fix Zvfhmin checking for vfwcvt.f.f.v and vfncvt.f.f.w instructions target/riscv/cpu.c: fix Zvkb extension config target/riscv: Fix the element agnostic function problem target/riscv/kvm: tolerate KVM disable ext errors target/riscv/kvm: Fix exposure of Zkr hw/intc/riscv_aplic: APLICs should add child earlier than realize iotests: test NBD+TLS+iothread qio: Inherit follow_coroutine_ctx across TLS ... OBS-URL: https://build.opensuse.org/package/show/Virtualization/qemu?expand=0&rev=848 --- 50-seabios-256k.json | 35 - 60-seabios-128k.json | 47 - 80-kvm.rules | 1 - 80-qemu-ga.rules | 1 - DSDT.pcie | Bin 3023 -> 0 bytes ...ble-some-tests-that-have-problems-in.patch | 43 - Ignore-spurious-GCC-12-warning.patch | 97 - ...-char-muxer-more-robust-wrt-small-FI.patch | 118 - ...-installed-scripts-explicitly-python.patch | 34 - ...file-define-endianess-for-cross-buil.patch | 28 - Makefile-fix-build-with-binutils-2.38.patch | 57 - PPC-KVM-Disable-mmu-notifier-check.patch | 33 - README.PACKAGING | 258 +- ...e-soft-address-space-limit-to-hard-l.patch | 47 - ...rt-roms-efirom-tests-uefi-test-tools.patch | 42 - ...rt-tests-qtest-enable-more-vhost-use.patch | 55 - Silence-GCC-12-spurious-warnings.patch | 62 - _constraints | 33 +- _multibuild | 2 +- _service | 22 + _servicedata | 4 + ...k-Add-missing-AR5K_EEPROM_READ-in-at.patch | 31 - ...k-io_uring-revert-Use-io_uring_regis.patch | 79 - bridge.conf | 11 - ...d-be-explicit-about-mx86-used-note-n.patch | 28 - bundles.tar.xz | 3 - common.inc | 102 + config.sh | 122 - enable-cross-compilation-on-ARM.patch | 22 - help-compiler-out-by-initializing-array.patch | 27 - ...csi-megasas-check-for-NULL-frame-in-.patch | 31 - ...mbios-handle-both-file-formats-regar.patch | 93 - increase-x86_64-physical-bits-to-42.patch | 73 - ...-Makefile-fix-issues-of-build-reprod.patch | 49 - ksm.service | 13 - kvm.conf | 3 - linux-user-Fake-proc-cpuinfo.patch | 75 - ...x-user-add-more-compat-ioctl-definit.patch | 66 - ...x-user-drop-conditionals-for-obsolet.patch | 134 - ...x-user-lseek-explicitly-cast-non-set.patch | 36 - ...x-user-remove-conditionals-for-many-.patch | 101 - ...x-user-use-max-as-default-CPU-model-.patch | 67 - linux-user-use-target_ulong.patch | 85 - ...n-enforce-a-minimum-Linux-kernel-hea.patch | 62 - ...n-install-ivshmem-client-and-ivshmem.patch | 32 - ...n-remove-pkgversion-from-CONFIG_STAM.patch | 35 - ...tulip-Restrict-DMA-engine-to-memorie.patch | 60 - ...t-add-cross.ini-file-to-handle-aarch.patch | 23 - qemu-7.1.0.tar.xz | 3 - qemu-7.1.0.tar.xz.sig | Bin 310 -> 0 bytes qemu-9.0.0.obscpio | 3 + qemu-binfmt-conf-Modify-default-path.patch | 27 - ...-bridge-helper-reduce-security-profi.patch | 80 - qemu-guest-agent.service | 14 - qemu-ifup | 23 - qemu-kvm.1.gz | 3 - qemu-linux-user.spec | 352 +++ qemu-supportconfig | 81 - qemu.changes | 994 +++++- qemu.keyring | 493 --- qemu.obsinfo | 4 + qemu.spec | 2750 ++++++++--------- qemu.spec.in | 2295 -------------- ...-Makefile-add-cross-file-to-qboot-me.patch | 26 - ...-Makefile-pass-a-packaging-timestamp.patch | 72 - ...-change-cross-compiler-naming-to-be-.patch | 30 - ...-sgabios-Fix-csum8-to-be-built-by-ho.patch | 22 - ...-generic-check-for-additional-SG_IO-.patch | 37 - ...-generic-replace-logical-block-count.patch | 103 - seabios-switch-to-python3-as-needed.patch | 149 - ...ios-Makefile-fix-issues-of-build-rep.patch | 36 - stub-out-the-SAN-req-s-in-int13.patch | 106 - supported.arm.txt | 926 ------ supported.ppc.txt | 6 - supported.s390.txt | 868 ------ supported.x86.txt | 963 ------ tests-change-error-message-in-test-162.patch | 29 - ...s-qemu-iotests-Triple-timeout-of-i-o.patch | 31 - update_git.sh | 1098 ------- ...add-block-resize-support-for-xen-dis.patch | 30 - ...ignore-live-parameter-from-xen-save-.patch | 41 - ...disk-Add-suse-specific-flush-disable.patch | 49 - 82 files changed, 2907 insertions(+), 11319 deletions(-) delete mode 100644 50-seabios-256k.json delete mode 100644 60-seabios-128k.json delete mode 100644 80-kvm.rules delete mode 100644 80-qemu-ga.rules delete mode 100644 DSDT.pcie delete mode 100644 Disable-some-tests-that-have-problems-in.patch delete mode 100644 Ignore-spurious-GCC-12-warning.patch delete mode 100644 Make-char-muxer-more-robust-wrt-small-FI.patch delete mode 100644 Make-installed-scripts-explicitly-python.patch delete mode 100644 Makefile-define-endianess-for-cross-buil.patch delete mode 100644 Makefile-fix-build-with-binutils-2.38.patch delete mode 100644 PPC-KVM-Disable-mmu-notifier-check.patch delete mode 100644 Raise-soft-address-space-limit-to-hard-l.patch delete mode 100644 Revert-roms-efirom-tests-uefi-test-tools.patch delete mode 100644 Revert-tests-qtest-enable-more-vhost-use.patch delete mode 100644 Silence-GCC-12-spurious-warnings.patch create mode 100644 _service create mode 100644 _servicedata delete mode 100644 ath5k-Add-missing-AR5K_EEPROM_READ-in-at.patch delete mode 100644 block-io_uring-revert-Use-io_uring_regis.patch delete mode 100644 bridge.conf delete mode 100644 build-be-explicit-about-mx86-used-note-n.patch delete mode 100644 bundles.tar.xz create mode 100644 common.inc delete mode 100644 config.sh delete mode 100644 enable-cross-compilation-on-ARM.patch delete mode 100644 help-compiler-out-by-initializing-array.patch delete mode 100644 hw-scsi-megasas-check-for-NULL-frame-in-.patch delete mode 100644 hw-smbios-handle-both-file-formats-regar.patch delete mode 100644 increase-x86_64-physical-bits-to-42.patch delete mode 100644 ipxe-Makefile-fix-issues-of-build-reprod.patch delete mode 100644 ksm.service delete mode 100644 kvm.conf delete mode 100644 linux-user-Fake-proc-cpuinfo.patch delete mode 100644 linux-user-add-more-compat-ioctl-definit.patch delete mode 100644 linux-user-drop-conditionals-for-obsolet.patch delete mode 100644 linux-user-lseek-explicitly-cast-non-set.patch delete mode 100644 linux-user-remove-conditionals-for-many-.patch delete mode 100644 linux-user-use-max-as-default-CPU-model-.patch delete mode 100644 linux-user-use-target_ulong.patch delete mode 100644 meson-enforce-a-minimum-Linux-kernel-hea.patch delete mode 100644 meson-install-ivshmem-client-and-ivshmem.patch delete mode 100644 meson-remove-pkgversion-from-CONFIG_STAM.patch delete mode 100644 net-tulip-Restrict-DMA-engine-to-memorie.patch delete mode 100644 qboot-add-cross.ini-file-to-handle-aarch.patch delete mode 100644 qemu-7.1.0.tar.xz delete mode 100644 qemu-7.1.0.tar.xz.sig create mode 100644 qemu-9.0.0.obscpio delete mode 100644 qemu-binfmt-conf-Modify-default-path.patch delete mode 100644 qemu-bridge-helper-reduce-security-profi.patch delete mode 100644 qemu-guest-agent.service delete mode 100644 qemu-ifup delete mode 100644 qemu-kvm.1.gz create mode 100644 qemu-linux-user.spec delete mode 100644 qemu-supportconfig delete mode 100644 qemu.keyring create mode 100644 qemu.obsinfo delete mode 100644 qemu.spec.in delete mode 100644 roms-Makefile-add-cross-file-to-qboot-me.patch delete mode 100644 roms-Makefile-pass-a-packaging-timestamp.patch delete mode 100644 roms-change-cross-compiler-naming-to-be-.patch delete mode 100644 roms-sgabios-Fix-csum8-to-be-built-by-ho.patch delete mode 100644 scsi-generic-check-for-additional-SG_IO-.patch delete mode 100644 scsi-generic-replace-logical-block-count.patch delete mode 100644 seabios-switch-to-python3-as-needed.patch delete mode 100644 sgabios-Makefile-fix-issues-of-build-rep.patch delete mode 100644 stub-out-the-SAN-req-s-in-int13.patch delete mode 100644 supported.arm.txt delete mode 100644 supported.ppc.txt delete mode 100644 supported.s390.txt delete mode 100644 supported.x86.txt delete mode 100644 tests-change-error-message-in-test-162.patch delete mode 100644 tests-qemu-iotests-Triple-timeout-of-i-o.patch delete mode 100644 update_git.sh delete mode 100644 xen-add-block-resize-support-for-xen-dis.patch delete mode 100644 xen-ignore-live-parameter-from-xen-save-.patch delete mode 100644 xen_disk-Add-suse-specific-flush-disable.patch diff --git a/50-seabios-256k.json b/50-seabios-256k.json deleted file mode 100644 index 5d86e42..0000000 --- a/50-seabios-256k.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "description": "SeaBIOS", - "interface-types": [ - "bios" - ], - "mapping": { - "device": "memory", - "filename": "/usr/share/qemu/bios-256k.bin" - }, - "targets": [ - { - "architecture": "i386", - "machines": [ - "pc-i440fx-*", - "pc-q35-*" - ] - }, - { - "architecture": "x86_64", - "machines": [ - "pc-i440fx-*", - "pc-q35-*" - ] - } - ], - "features": [ - "acpi-s3", - "acpi-s4" - ], - "tags": [ - "CONFIG_QEMU=y", - "CONFIG_ROM_SIZE=256", - "CONFIG_ATA_DMA=n" - ] -} diff --git a/60-seabios-128k.json b/60-seabios-128k.json deleted file mode 100644 index 77480e2..0000000 --- a/60-seabios-128k.json +++ /dev/null @@ -1,47 +0,0 @@ -{ - "description": "SeaBIOS", - "interface-types": [ - "bios" - ], - "mapping": { - "device": "memory", - "filename": "/usr/share/qemu/bios.bin" - }, - "targets": [ - { - "architecture": "i386", - "machines": [ - "pc-i440fx-*", - "pc-q35-*" - ] - }, - { - "architecture": "x86_64", - "machines": [ - "pc-i440fx-*", - "pc-q35-*" - ] - } - ], - "features": [ - "acpi-s3", - "acpi-s4" - ], - "tags": [ - "CONFIG_QEMU=y", - "CONFIG_ROM_SIZE=128", - "CONFIG_ATA_DMA=n", - "CONFIG_BOOTSPLASH=n", - "CONFIG_XEN=n", - "CONFIG_USB_OHCI=n", - "CONFIG_USB_XHCI=n", - "CONFIG_USB_UAS=n", - "CONFIG_SDCARD=n", - "CONFIG_TCGBIOS=n", - "CONFIG_MPT_SCSI=n", - "CONFIG_PVSCSI=n", - "CONFIG_NVME=n", - "CONFIG_USE_SMM=n", - "CONFIG_VGAHOOKS=n" - ] -} diff --git a/80-kvm.rules b/80-kvm.rules deleted file mode 100644 index e9afa34..0000000 --- a/80-kvm.rules +++ /dev/null @@ -1 +0,0 @@ -KERNEL=="kvm", MODE="0666", GROUP="kvm" diff --git a/80-qemu-ga.rules b/80-qemu-ga.rules deleted file mode 100644 index bd6a392..0000000 --- a/80-qemu-ga.rules +++ /dev/null @@ -1 +0,0 @@ -SUBSYSTEM=="virtio-ports", ATTR{name}=="org.qemu.guest_agent.0", TAG+="systemd", ENV{SYSTEMD_WANTS}+="qemu-guest-agent.service" diff --git a/DSDT.pcie b/DSDT.pcie deleted file mode 100644 index 21afcd4aec3cc99d7eb079d126f400dff0f4c99122991850a8a62efd6e6f0e67..0000000000000000000000000000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3023 zcmZveJ!~UY5XWcjb-aH5$l7t@d^mBSMWA)8=xC76UOS0VoGf1Ff-usagg_i=B7u;O z6H-WVKswG6wUHufTDp^{s5mML3a+7{q2#JF|Jj$#y;07Rci;cLnR)Y@wck!R?2dlR z6QzFd9Qu3VX6N0&-^9lvA|CVI?f)EwooIai#?G<7<3xM?ZtP{ZqRVh-bhr#i%qt3?XD?HGf1qXrWd%oTaiFE8cL+_Se+dmi{f_7Uk zsw}eb+aTdwR#oj`jw~wu^qf*e$jh>7IN;!u>Yw#tK{wcY(~3b-y=P?Fm6(% z!1F2vv6YB4M2jj#yD*#K@oKv(#a=Kh>9yDorio-v#E)%(s%@_ndnTq_Vr?3GLb4~a ziEY!dXOcmh*b`A>)3o-4X(HJZ8O5G$DWC)tv!?EAx+MV;LOCHiD^cACdosZ zoO6N`4;T3)rgM@L(&Wqv&aB|fN=`_V(-EAG;B+J>q{)dtgi&eyEOqtbV&)_#q{*oS zrxKh>azdJ%I6ZVt;%Af>oO#I!X>#Hp3(w?v76fNOazdJ%MZsAVoJGkAX>yhXXGw6D zBqyZFIWIWp1?Rlvgfux_!RZQ4S8_s{oMpjT7Mx|t32Aax1ZPEXRwO5+$+;jn7X;^m zoJ)dpNpLPnPDqmzhqUp#tqIPWf9{kz* zuTj7K{qbk*$8Y`d(Zz|fVX%d}gL~_g1;^n*i$gu&i)!$7>OPv>v%bViGq!F{mmW3HB|XoZG%ru8uSeZ*U{7Ds**v-R>)+w_7lZF={|r`s@dwk~GqueIL%@c2vpQ3Ox?}58cY6 A9{>OV diff --git a/Disable-some-tests-that-have-problems-in.patch b/Disable-some-tests-that-have-problems-in.patch deleted file mode 100644 index f261427..0000000 --- a/Disable-some-tests-that-have-problems-in.patch +++ /dev/null @@ -1,43 +0,0 @@ -From: Dario Faggioli -Date: Thu, 21 Jul 2022 04:06:21 +0200 -Subject: Disable some tests that have problems in OBS - -Git-commit: 0000000000000000000000000000000000000000 - -We are disabling the following tests: - -qemu-system-ppc64 / display-vga-test - -They are failing due to some memory corruption errors. We believe that -this might be due to the combination of the compiler version and of LTO, -and will take up the investigation within the upstream community. - -Signed-off-by: Dario Faggioli ---- - tests/qtest/meson.build | 6 +++++- - 1 file changed, 5 insertions(+), 1 deletion(-) - -diff --git a/tests/qtest/meson.build b/tests/qtest/meson.build -index be4b30dea248d75f477cc402ce8d..06a2015232fd920170a9f503be52 100644 ---- a/tests/qtest/meson.build -+++ b/tests/qtest/meson.build -@@ -39,6 +39,10 @@ qtests_pci = \ - qtests_cxl = \ - (config_all_devices.has_key('CONFIG_CXL') ? ['cxl-test'] : []) - -+# display-vga-test currently fails in OBS, for ppc64 -+qtests_pci_novga = \ -+ (config_all_devices.has_key('CONFIG_IVSHMEM_DEVICE') ? ['ivshmem-test'] : []) -+ - qtests_i386 = \ - (slirp.found() ? ['pxe-test', 'test-netfilter'] : []) + \ - (config_host.has_key('CONFIG_POSIX') ? ['test-filter-mirror'] : []) + \ -@@ -167,7 +171,7 @@ qtests_ppc64 = \ - (slirp.found() ? ['pxe-test'] : []) + \ - (config_all_devices.has_key('CONFIG_USB_UHCI') ? ['usb-hcd-uhci-test'] : []) + \ - (config_all_devices.has_key('CONFIG_USB_XHCI_NEC') ? ['usb-hcd-xhci-test'] : []) + \ -- qtests_pci + ['migration-test', 'numa-test', 'cpu-plug-test', 'drive_del-test'] -+ qtests_pci_novga + ['migration-test', 'numa-test', 'cpu-plug-test', 'drive_del-test'] - - qtests_sh4 = (config_all_devices.has_key('CONFIG_ISA_TESTDEV') ? ['endianness-test'] : []) - qtests_sh4eb = (config_all_devices.has_key('CONFIG_ISA_TESTDEV') ? ['endianness-test'] : []) diff --git a/Ignore-spurious-GCC-12-warning.patch b/Ignore-spurious-GCC-12-warning.patch deleted file mode 100644 index 918969c..0000000 --- a/Ignore-spurious-GCC-12-warning.patch +++ /dev/null @@ -1,97 +0,0 @@ -From: =?UTF-8?q?Martin=20Li=C5=A1ka?= -Date: Tue, 22 Mar 2022 11:40:17 +0100 -Subject: Ignore spurious GCC 12 warning -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Git-commit: 0000000000000000000000000000000000000000 -References: bsc#1197018 - -Building with GCC 12 fails producing errors. This is an example (but -there are others): - -[ 1051s] Sdk/C/LzmaEnc.c: In function 'LzmaEnc_CodeOneMemBlock': -[ 1051s] Sdk/C/LzmaEnc.c:2641:19: error: storing the address of local -variable 'outStream' in '*p.rc.outStream' [-Werror=dangling-pointer=] -[ 1051s] 2641 | p->rc.outStream = &outStream.vt; -[ 1051s] | ~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~ -[ 1051s] Sdk/C/LzmaEnc.c:2624:28: note: 'outStream' declared here -[ 1051s] 2624 | CLzmaEnc_SeqOutStreamBuf outStream; -[ 1051s] | ^~~~~~~~~ -[ 1051s] Sdk/C/LzmaEnc.c:2624:28: note: 'pp' declared here - -Which is a false positive reported by GCC compiler: -https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98503 - -Work it around by silencing the warning. - -Signed-off-by: Martin Liška -Signed-off-by: Dario Faggioli ---- - BaseTools/Source/C/DevicePath/DevicePathUtilities.c | 4 ++++ - BaseTools/Source/C/GenFfs/GenFfs.c | 4 ++++ - BaseTools/Source/C/GenSec/GenSec.c | 4 ++++ - BaseTools/Source/C/LzmaCompress/Sdk/C/LzmaEnc.c | 4 ++++ - 4 files changed, 16 insertions(+) - -diff --git a/roms/edk2/BaseTools/Source/C/DevicePath/DevicePathUtilities.c b/roms/edk2/BaseTools/Source/C/DevicePath/DevicePathUtilities.c -index 2ffefa8ceeeff9a1d0504ad71918..c9fb4329843a8fc34e596b506571 100644 ---- a/roms/edk2/BaseTools/Source/C/DevicePath/DevicePathUtilities.c -+++ b/roms/edk2/BaseTools/Source/C/DevicePath/DevicePathUtilities.c -@@ -16,6 +16,10 @@ - #include "UefiDevicePathLib.h" - #include - -+#if __GNUC__ >= 12 -+# pragma GCC diagnostic ignored "-Wstringop-overflow" -+#endif -+ - // - // Template for an end-of-device path node. - // -diff --git a/roms/edk2/BaseTools/Source/C/GenFfs/GenFfs.c b/roms/edk2/BaseTools/Source/C/GenFfs/GenFfs.c -index 949025c333251bc5776159a6c535..be55a529743494677f8515906c6c 100644 ---- a/roms/edk2/BaseTools/Source/C/GenFfs/GenFfs.c -+++ b/roms/edk2/BaseTools/Source/C/GenFfs/GenFfs.c -@@ -36,6 +36,10 @@ SPDX-License-Identifier: BSD-2-Clause-Patent - #define UTILITY_MAJOR_VERSION 0 - #define UTILITY_MINOR_VERSION 1 - -+#if __GNUC__ >= 12 -+# pragma GCC diagnostic ignored "-Wuse-after-free" -+#endif -+ - STATIC CHAR8 *mFfsFileType[] = { - NULL, // 0x00 - "EFI_FV_FILETYPE_RAW", // 0x01 -diff --git a/roms/edk2/BaseTools/Source/C/GenSec/GenSec.c b/roms/edk2/BaseTools/Source/C/GenSec/GenSec.c -index d54a4f9e0a7d67b7c8494ab37011..fb40ad36584c1cd53cc7ca4a9d4f 100644 ---- a/roms/edk2/BaseTools/Source/C/GenSec/GenSec.c -+++ b/roms/edk2/BaseTools/Source/C/GenSec/GenSec.c -@@ -37,6 +37,10 @@ SPDX-License-Identifier: BSD-2-Clause-Patent - #define UTILITY_MAJOR_VERSION 0 - #define UTILITY_MINOR_VERSION 1 - -+#if __GNUC__ >= 12 -+# pragma GCC diagnostic ignored "-Wuse-after-free" -+#endif -+ - STATIC CHAR8 *mSectionTypeName[] = { - NULL, // 0x00 - reserved - "EFI_SECTION_COMPRESSION", // 0x01 -diff --git a/roms/edk2/BaseTools/Source/C/LzmaCompress/Sdk/C/LzmaEnc.c b/roms/edk2/BaseTools/Source/C/LzmaCompress/Sdk/C/LzmaEnc.c -index 4e9b499f8d80dc4d6bc13515e794..ab9b7cc34f69bceb74c454ce5032 100644 ---- a/roms/edk2/BaseTools/Source/C/LzmaCompress/Sdk/C/LzmaEnc.c -+++ b/roms/edk2/BaseTools/Source/C/LzmaCompress/Sdk/C/LzmaEnc.c -@@ -40,6 +40,10 @@ static unsigned g_STAT_OFFSET = 0; - - #define REP_LEN_COUNT 64 - -+#if __GNUC__ >= 12 -+# pragma GCC diagnostic ignored "-Wdangling-pointer" -+#endif -+ - void LzmaEncProps_Init(CLzmaEncProps *p) - { - p->level = 5; diff --git a/Make-char-muxer-more-robust-wrt-small-FI.patch b/Make-char-muxer-more-robust-wrt-small-FI.patch deleted file mode 100644 index 6457f75..0000000 --- a/Make-char-muxer-more-robust-wrt-small-FI.patch +++ /dev/null @@ -1,118 +0,0 @@ -From: Alexander Graf -Date: Thu, 1 Apr 2010 17:36:23 +0200 -Subject: Make char muxer more robust wrt small FIFOs - -Virtio-Console can only process one character at a time. Using it on S390 -gave me strange "lags" where I got the character I pressed before when -pressing one. So I typed in "abc" and only received "a", then pressed "d" -but the guest received "b" and so on. - -While the stdio driver calls a poll function that just processes on its -queue in case virtio-console can't take multiple characters at once, the -muxer does not have such callbacks, so it can't empty its queue. - -To work around that limitation, I introduced a new timer that only gets -active when the guest can not receive any more characters. In that case -it polls again after a while to check if the guest is now receiving input. - -This patch fixes input when using -nographic on s390 for me. - -[AF: Rebased for v2.7.0-rc2] -[BR: minor edits to pass qemu's checkpatch script] -Signed-off-by: Bruce Rogers ---- - chardev/char-fe.c | 1 + - chardev/char-mux.c | 16 ++++++++++++++++ - chardev/char.c | 1 + - chardev/chardev-internal.h | 3 +++ - tests/unit/test-char.c | 1 + - 5 files changed, 22 insertions(+) - -diff --git a/chardev/char-fe.c b/chardev/char-fe.c -index 7789f7be9c873928be895d618e98..c7556602c77787357c802553ab91 100644 ---- a/chardev/char-fe.c -+++ b/chardev/char-fe.c -@@ -21,6 +21,7 @@ - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - * THE SOFTWARE. - */ -+#define HW_POISON_H /* avoid poison since we patch against rules it "enforces" */ - #include "qemu/osdep.h" - #include "qemu/error-report.h" - #include "qapi/error.h" -diff --git a/chardev/char-mux.c b/chardev/char-mux.c -index ee2d47b20d9bd0d2ceb132343bf3..5a7c66e7466cefdc96cb95e26b84 100644 ---- a/chardev/char-mux.c -+++ b/chardev/char-mux.c -@@ -22,6 +22,7 @@ - * THE SOFTWARE. - */ - -+#define HW_POISON_H /* avoid poison since we patch against rules it "enforces" */ - #include "qemu/osdep.h" - #include "qapi/error.h" - #include "qemu/module.h" -@@ -198,6 +199,17 @@ static void mux_chr_accept_input(Chardev *chr) - be->chr_read(be->opaque, - &d->buffer[m][d->cons[m]++ & MUX_BUFFER_MASK], 1); - } -+ -+#if defined(TARGET_S390X) -+ /* -+ * We're still not able to sync producer and consumer, so let's wait a bit -+ * and try again by then. -+ */ -+ if (d->prod[m] != d->cons[m]) { -+ qemu_mod_timer(d->accept_timer, qemu_get_clock_ns(vm_clock) -+ + (int64_t)100000); -+ } -+#endif - } - - static int mux_chr_can_read(void *opaque) -@@ -332,6 +344,10 @@ static void qemu_chr_open_mux(Chardev *chr, - } - - d->focus = -1; -+#if defined(TARGET_S390X) -+ d->accept_timer = qemu_new_timer_ns(vm_clock, -+ (QEMUTimerCB *)mux_chr_accept_input, chr); -+#endif - /* only default to opened state if we've realized the initial - * set of muxes - */ -diff --git a/chardev/char.c b/chardev/char.c -index 0169d8dde4b533c9cf851831b03c..3b1495c0a4fd6b9e81f6703eeb49 100644 ---- a/chardev/char.c -+++ b/chardev/char.c -@@ -22,6 +22,7 @@ - * THE SOFTWARE. - */ - -+#define HW_POISON_H /* avoid poison since we patch against rules it "enforces" */ - #include "qemu/osdep.h" - #include "qemu/cutils.h" - #include "monitor/monitor.h" -diff --git a/chardev/chardev-internal.h b/chardev/chardev-internal.h -index 4e03af31476cb88cbe699dfafb23..ae5738ae4e3bd90ae703740a68da 100644 ---- a/chardev/chardev-internal.h -+++ b/chardev/chardev-internal.h -@@ -37,6 +37,9 @@ struct MuxChardev { - Chardev parent; - CharBackend *backends[MAX_MUX]; - CharBackend chr; -+#if defined(TARGET_S390X) -+ QEMUTimer *accept_timer; -+#endif - int focus; - int mux_cnt; - int term_got_escape; -diff --git a/tests/unit/test-char.c b/tests/unit/test-char.c -index 5b3b48ebacd353d4525226e3aaf5..6ce130a663ec372d18f0a674af8e 100644 ---- a/tests/unit/test-char.c -+++ b/tests/unit/test-char.c -@@ -1,3 +1,4 @@ -+#define HW_POISON_H /* avoid poison since we patch against rules it "enforces" */ - #include "qemu/osdep.h" - #include - diff --git a/Make-installed-scripts-explicitly-python.patch b/Make-installed-scripts-explicitly-python.patch deleted file mode 100644 index 01b93ac..0000000 --- a/Make-installed-scripts-explicitly-python.patch +++ /dev/null @@ -1,34 +0,0 @@ -From: Bruce Rogers -Date: Thu, 25 Jan 2018 14:16:10 -0700 -Subject: Make installed scripts explicitly python3 - -References: bsc#1077564 - -We want to explicitly reference python3 in the scripts we install. - -Signed-off-by: Bruce Rogers ---- - scripts/analyze-migration.py | 2 +- - scripts/vmstate-static-checker.py | 2 +- - 2 files changed, 2 insertions(+), 2 deletions(-) - -diff --git a/scripts/analyze-migration.py b/scripts/analyze-migration.py -index b82a1b0c58c4490ffd0c7d083a44..26f9fb1382108787cc1b56546873 100755 ---- a/scripts/analyze-migration.py -+++ b/scripts/analyze-migration.py -@@ -1,4 +1,4 @@ --#!/usr/bin/env python3 -+#!/usr/bin/python3 - # - # Migration Stream Analyzer - # -diff --git a/scripts/vmstate-static-checker.py b/scripts/vmstate-static-checker.py -index b36938836026facea26c0e475579..cf08875c4a51dfe17902e802e76b 100755 ---- a/scripts/vmstate-static-checker.py -+++ b/scripts/vmstate-static-checker.py -@@ -1,4 +1,4 @@ --#!/usr/bin/env python3 -+#!/usr/bin/python3 - # - # Compares vmstate information stored in JSON format, obtained from - # the -dump-vmstate QEMU command. diff --git a/Makefile-define-endianess-for-cross-buil.patch b/Makefile-define-endianess-for-cross-buil.patch deleted file mode 100644 index 24c64bd..0000000 --- a/Makefile-define-endianess-for-cross-buil.patch +++ /dev/null @@ -1,28 +0,0 @@ -From: Dario Faggioli -Date: Wed, 16 Feb 2022 19:22:01 +0100 -Subject: Makefile: define endianess for cross-building on aarch64 - -Git-commit: 0000000000000000000000000000000000000000 -References: bsc#1193545 - -Include aarch64 in the endianess check, so we can cross-build from -there too. - -Signed-of-by: Dario Faggioli ---- - Makefile.main | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/roms/skiboot/Makefile.main b/roms/skiboot/Makefile.main -index c8a63e8b110f3c6bf115314da7bf..98790ec5c3b0f35272f032798353 100644 ---- a/roms/skiboot/Makefile.main -+++ b/roms/skiboot/Makefile.main -@@ -50,7 +50,7 @@ endif - - # Host tools and options - HOSTCC=gcc --HOSTEND=$(shell uname -m | sed -e 's/^i.*86$$/LITTLE/' -e 's/^x86.*/LITTLE/' -e 's/^ppc64le/LITTLE/' -e 's/^ppc.*/BIG/') -+HOSTEND=$(shell uname -m | sed -e 's/^i.*86$$/LITTLE/' -e 's/^x86.*/LITTLE/' -e 's/^ppc64le/LITTLE/' -e 's/^aarch64/LITTLE/' -e 's/^ppc.*/BIG/') - HOSTCFLAGS:=-O1 $(CWARNS) -DHAVE_$(HOSTEND)_ENDIAN -MMD - HOSTCFLAGS += $(call try-cflag,$(HOSTCC),-std=gnu11) - HOSTCFLAGS += $(call try-cflag,$(HOSTCC),-m64) diff --git a/Makefile-fix-build-with-binutils-2.38.patch b/Makefile-fix-build-with-binutils-2.38.patch deleted file mode 100644 index 18fd772..0000000 --- a/Makefile-fix-build-with-binutils-2.38.patch +++ /dev/null @@ -1,57 +0,0 @@ -From: Aurelien Jarno -Date: Fri, 28 Jan 2022 18:33:46 +0100 -Subject: Makefile: fix build with binutils 2.38 - -Git-commit: 5d53b55aa77ffeefd4012445dfa6ad3535e1ff2c - -From version 2.38, binutils default to ISA spec version 20191213. This -means that the csr read/write (csrr*/csrw*) instructions and fence.i -instruction has separated from the `I` extension, become two standalone -extensions: Zicsr and Zifencei. As the kernel uses those instruction, -this causes the following build failure: - - CC lib/sbi/sbi_tlb.o -<>/lib/sbi/sbi_tlb.c: Assembler messages: -<>/lib/sbi/sbi_tlb.c:190: Error: unrecognized opcode `fence.i' -make: *** [Makefile:431: <>/build/lib/sbi/sbi_tlb.o] Error 1 - -The fix is to specify those extensions explicitly in -march. However as -older binutils version do not support this, we first need to detect -that. - -Signed-off-by: Aurelien Jarno -Reviewed-by: Bin Meng -Tested-by: Alexandre Ghiti -Reviewed-by: Anup Patel -Signed-off-by: Dario Faggioli ---- - Makefile | 9 ++++++++- - 1 file changed, 8 insertions(+), 1 deletion(-) - -diff --git a/roms/opensbi/Makefile b/roms/opensbi/Makefile -index 062883e9695fb4447d2e61d7f282..fc1ea13e519a702e8b09d9006a2c 100644 ---- a/roms/opensbi/Makefile -+++ b/roms/opensbi/Makefile -@@ -153,6 +153,9 @@ OPENSBI_LD_PIE := $(shell $(CC) $(CLANG_TARGET) $(RELAX_FLAG) $(USE_LD_FLAG) -fP - # Check whether the compiler supports -m(no-)save-restore - CC_SUPPORT_SAVE_RESTORE := $(shell $(CC) $(CLANG_TARGET) $(RELAX_FLAG) -nostdlib -mno-save-restore -x c /dev/null -o /dev/null 2>&1 | grep "\-save\-restore" >/dev/null && echo n || echo y) - -+# Check whether the assembler and the compiler support the Zicsr and Zifencei extensions -+CC_SUPPORT_ZICSR_ZIFENCEI := $(shell $(CC) $(CLANG_TARGET) $(RELAX_FLAG) -nostdlib -march=rv$(OPENSBI_CC_XLEN)imafd_zicsr_zifencei -x c /dev/null -o /dev/null 2>&1 | grep "zicsr\|zifencei" > /dev/null && echo n || echo y) -+ - # Build Info: - # OPENSBI_BUILD_TIME_STAMP -- the compilation time stamp - # OPENSBI_BUILD_COMPILER_VERSION -- the compiler version info -@@ -223,7 +226,11 @@ ifndef PLATFORM_RISCV_ABI - endif - ifndef PLATFORM_RISCV_ISA - ifneq ($(PLATFORM_RISCV_TOOLCHAIN_DEFAULT), 1) -- PLATFORM_RISCV_ISA = rv$(PLATFORM_RISCV_XLEN)imafdc -+ ifeq ($(CC_SUPPORT_ZICSR_ZIFENCEI), y) -+ PLATFORM_RISCV_ISA = rv$(PLATFORM_RISCV_XLEN)imafdc_zicsr_zifencei -+ else -+ PLATFORM_RISCV_ISA = rv$(PLATFORM_RISCV_XLEN)imafdc -+ endif - else - PLATFORM_RISCV_ISA = $(OPENSBI_CC_ISA) - endif diff --git a/PPC-KVM-Disable-mmu-notifier-check.patch b/PPC-KVM-Disable-mmu-notifier-check.patch deleted file mode 100644 index 95919ca..0000000 --- a/PPC-KVM-Disable-mmu-notifier-check.patch +++ /dev/null @@ -1,33 +0,0 @@ -From: Alexander Graf -Date: Fri, 6 Jan 2012 01:05:55 +0100 -Subject: PPC: KVM: Disable mmu notifier check - -When using hugetlbfs (which is required for HV mode KVM on 970), we -check for MMU notifiers that on 970 can not be implemented properly. - -So disable the check for mmu notifiers on PowerPC guests, making -KVM guests work there, even if possibly racy in some odd circumstances. - -Signed-off-by: Bruce Rogers ---- - softmmu/physmem.c | 2 ++ - 1 file changed, 2 insertions(+) - -diff --git a/softmmu/physmem.c b/softmmu/physmem.c -index dc3c3e5f2e7071eb21e77f3d95c2..b89279889e13b9d1bc37440a67a8 100644 ---- a/softmmu/physmem.c -+++ b/softmmu/physmem.c -@@ -2077,11 +2077,13 @@ RAMBlock *qemu_ram_alloc_from_fd(ram_addr_t size, MemoryRegion *mr, - return NULL; - } - -+#ifndef TARGET_PPC - if (kvm_enabled() && !kvm_has_sync_mmu()) { - error_setg(errp, - "host lacks kvm mmu notifiers, -mem-path unsupported"); - return NULL; - } -+#endif - - size = HOST_PAGE_ALIGN(size); - file_size = get_file_size(fd); diff --git a/README.PACKAGING b/README.PACKAGING index ad7fe27..c76b96f 100644 --- a/README.PACKAGING +++ b/README.PACKAGING @@ -1,92 +1,202 @@ -The qemu package includes a special maintenance workflow in order to support git -based patching, including of submodules. Please use it in order to have changes -you make be acceptable to the package maintainers. A bash script (update_git.sh) -implements this workflow. +# PACKAGING WORKFLOW(S) -A local clone of the upstream repo(s) is required for the packaging workflow. -If none is found, the qemu superproject will be cloned as a shallow repo for the -workflow script's use. If you intend to do more than superficial work in the -qemu package, unshallow it. The submodule local repos aren't needed unless you -intend to do patch work there. See config.sh for the local repo paths. +The qemu package follows a special maintenance workflow in order to support +git based patching, including of submodules. Please use it in order to have +changes you make be acceptable to the package maintainers. -The qemu.spec file is generated from a template file (qemu.spec.in), so to make -spec file changes outside of the patch file references (handled by the script), -you need to edit the template file, and NOT the qemu.spec file. The spec file's -version and patch references are added when update_git.sh is passed certain -commands, as described below. +All the development happens at https://github.com/openSUSE/qemu. The relevant +branch is `factory`. -If you are not modifying any patches or their order, but just need to update the -spec file from a changed template, run 'bash ./update_git.sh refresh'. +Any change to the package should be submitted in the form of a Pull Request +against such repository and branch. -If the set of patches is being modified, including their order, you will want to -first run 'bash ./update_git.sh pkg2git', which makes the current package patch -set available in a local git branch named 'frombundle' (see config.sh for the -locations). This incarnation of the package patches comes from a "bundle of git -bundles", included as a package source file named bundles.tar.xz, which the -script extracts to the corresponding local frombundle branch. To add, remove or -modify the package patches, you will then do that work in a local branch whose -name corresponds to that qemu package's release version as follows: -The qemu major and minor release numbers are part of the name, prefixed by -'opensuse-', so, for example, for the v5.2.0 based SLE-15-SP3 qemu, the branch -would be named 'opensuse-5.2'. You want to start your work based on the current -patchqueue as contained in 'frombundle', so one approach is to do (depending on -your local repo's current state), 'git checkout -f --recurse-submodules -B - opensuse-5.2 frombundle', and then cherry-pick upstream patches into it, or -interactive rebase it to modify or delete patches, etc. Be careful to keep the -branch based on the upstream tag which represents the package tarball however! +The reminder of this document provides more details, explanations and examples +for both contributors and maintainers. -Once you have the patch queue ready to go, simply run 'bash ./update_git.sh -git2pkg' (in your local obs branch directory) to refresh the bundles.tar.xz -file, as well as the package spec and patch files. The package qemu.changes file -is modified to list added or removed patches as a starting point for documenting -the change. -When you are ready to check in the package, using 'bash update_git.sh ci' is -provided as a convenience (and to help preserve correct spec file formatting, -since a 'normal osc check-in' messes up the spec file a bit). +# FOR CONTRIBUTORS -Additional Notes: +## BACKPORTING AN UPSTREAM PATCH -The maintainer and automation use another workflow mode dealing with packaging -the latest upstream qemu. See 'LATEST' references in the scripts for details, -as this is an 'expert mode' and isn't documented here. +For submitting a backport of an upstream patch, proceed as follows (a local +copy of the repository is of course necessary). -Patches which are from an upstream git repo should have the commit id recorded -just below the Subject line (after a blank line) as follows: +Identify the hash of the commit that needs backporting and do: -Git-commit: <40-char-sha-id> + git cherry-pick -esx -If a patch is anticipated to be shortly included in upstream repo, mark that -fact by doing the above with 40 0's, which will flag it as needing to be updated -in the near future. +This way, the changelog will already contain the reference to the upstream +commit itself, and the appropriate "Signed-off-by:" tag. -We try to maintain, if possible, patch ordering as follows: (tarball as base), -patches which come from upstream commits in commit order, patches which will -soon be upstream (as mentioned above), followed by our private patches. +If the backport is related to Bugzilla (or Jira, and/or CVEs, etc) entry, add a +reference to that, such as: -Bug or feature tracking identifiers should also be added to the patch similarly, -using the abbreviations identified here: -http://en.opensuse.org/openSUSE:Packaging_Patches_guidelines#Current_set_of_abbreviations -using the "Reference:" tag, with multiple entries comma separated. + Resolves: bsc#123456 -The ability to provide a conditional inclusion of a patch (eg based on -architecture, is provided by this workflow by using the "Include-If:" tag, as -shown here: +Or: -Include-If: %ifarch aarch64 + References: jsc#PED-1234 + +Or: + + Resolves: bsc#7891011 (CVE-1234-5678) + +Add it between the "(cherry picked from commit ...)" line and the "Signed-off-by:" +line that follows it. + +An example of the end result, where Dario Faggioli () is +backporting upstream commit abe2c4bdb65e8dd in order to fix bug 1209546 from +bugzilla.opensuse.org is: + + test-vmstate: fix bad GTree usage, use-after-free + + According to g_tree_foreach() documentation: + "The tree may not be modified while iterating over it (you can't + add/remove items)." + + [...] + + Get rid of the node removal within the tree traversal. Also + check the trees have the same number of nodes before the actual + diff. + + Fixes: 9a85e4b8f6 ("migration: Support gtree migration") + Resolves: https://gitlab.com/qemu-project/qemu/-/issues/1518 + Signed-off-by: Marc-Andr303251 Lureau + Signed-off-by: Eric Auger + Reported-by: Richard W.M. Jones + Tested-by: Richard W.M. Jones + Reviewed-by: Richard W.M. Jones + Reviewed-by: Daniel P. Berrang303251 + Reviewed-by: Juan Quintela + Signed-off-by: Juan Quintela + (cherry picked from commit abe2c4bdb65e8dd9cb2f01c355baa394bf49a8af) + Resolves: bsc#1209546 + Signed-off-by: Dario Faggioli + +Of course, all conflicts and issues should be resolved, before committing the +result/completing the cherry-picking. + +At this point, the PR should be opened. As soon as that happens, some checks +will be run automatically and the maintainers of the QEMU package will review +and, eventually, merge or reject it. + +PRs containing multiple commits are allowed. They are actually encouraged, if +the patches being backported are related and/or dependant among each others. It +must, however, always be the case that each upstream commit is cherry-picked +individually. + +Note that there is no need to change any 'qemu.changes' file. That will, in +fact be handled by the package maintainers (and such RPM changelog entries will +be automatically generated out of the git commit messages). + +## ADDING A PATCH NOT COMING FROM UPSTREAM + +Downstream patches, i.e., patches that are not backports of upstream commits, +should be avoided as much as possible. The (largely!) recommended approach is +to submit the patch upstream and then, once it is accepted and committed, +backport it. + +If that is not possible (for whatever reason), a pull request with a downstream +only patch can be opened. The procedure is almost identical to the one described +above for upstream backports. The main differences are: + +1) Downstream only patch cannot be cherry-picked from upstream commits, of + course. Therefore, the PR will consist of the commit(s) that introduces the + patch. + +2) There will be no "(cherry picked from commit ...") line in the changelog + of a downstream only patch. On the other hand, the "Resolves:" or + "Reference:" tag, that link the patch to the issue it's trying to solve, + must be there, and the same is true for the "Signed-off-by:" tag + indicating who is proposing adding it. + +3) It is required that the subject of the commit starts with the [openSUSE] tag. + +An example of a downstream only commit is: + + [openSUSE] pc: q35: Bump max_cpus to 1024 + + And use the new limit for machine version 7.1 too. + Keep the old limit of 288 for machine versions 7.0 and earlier. + + Signed-off-by: Dario Faggioli + References: bsc#1202282, jsc#PED-2592 + Signed-off-by: Dario Faggioli + +## CHANGING THE PACKAGING FILES + +Files that are necessary for building the RPM (like the spec file) or that +are part of the RPM and will be copied in the appropriate places in the +filesystem when it is installed are also part of the git repository. In fact, +they can be found in the `rpm/` directory. + +Any addition, removal or change of and on any of those file should just be done +as a regular commit, and a pull request including such commit(s) should be +opened. + +Commits to packaging files should be prefixed with both the [openSUSE] tag and +an [RPM] tag. An example can be this one: + + [openSUSE][RPM] Add downstream packaging files + + Stash the "packaging files" in the QEMU repository, in the rpm/ + directory. During package build, they will be pulled out from there + and used as appropriate. + + Signed-off-by: Dario Faggioli + +## ADDING A PATCH IN A SUBMODULE + +For including a backport, or in general adding a patch, to a submodule, the +downstream git repository for the submodule must be checkedout at the location +where the submodule resides, in the main QEMU git repository. + +For example, for including a downstream patch in the ipxe submodule, a local +copy of the repository https://github.com/openSUSE/qemu-ipxe.git is necessary. +After checking out the `factory` branch, add the patch there (cherry-picking +it from upstream, if it is a backport, and respecting all the tagging rules +explained in the previous sections). + +At this point: +- the branch must be pushed; +- in the main (qemu) repository, a commit must be added and pushed, for making + sure that the new patch is picked up. + +Basically, the commit in the main repository is how the information that a +submodule as a new head is recorded. + +The changelog of such commit shall include a reference to the subjects of all +the new commits in the various submodules. Unfortinately, there is not yet a +good way of achieving this automatically. + +As last step, a pull request should be opened, as usual. + +## REMOVING PATCHES + +If a patch, or, in general, a commit, that is already part of the repository +must be removed, this must be done without rewriting the git history, i.e., with +a revert (and then a pull request with the revert should be opened). + + +# FOR MAINTAINERS + +## REVIEWING AND ACCEPTING PRs + +TODO + +## COMMITTING CHANGES INTO FACTORY + +TODO + +## UPDATING THE BASE QEMU VERSION + +TODO + + +# MANUAL AND AUTOMATED CHECKS + +TODO -This will cause the patch application in the spec file to be done as follows: -%ifarch aarch64 -%patch0013 -p1 -%endif -A trick worth noting is, if a given git tracked patch is to be applied in a way -that can't be done in the normal patching section of the spec file, you can -still include the patch, and use it by name with the patch program elsewhere in -the spec file by doing something such as: -Include-If: %if 0%{?patch-possibly-applied-elsewhere} -(this variable will remain undefined in the spec file) And then elsewhere in the -spec file, the actual patch (eg specially-handled-change.patch) is referenced as -eg: -patch -p1 < %_sourcedir/specially-handled-change.patch diff --git a/Raise-soft-address-space-limit-to-hard-l.patch b/Raise-soft-address-space-limit-to-hard-l.patch deleted file mode 100644 index 8176695..0000000 --- a/Raise-soft-address-space-limit-to-hard-l.patch +++ /dev/null @@ -1,47 +0,0 @@ -From: =?UTF-8?q?Andreas=20F=C3=A4rber?= -Date: Sun, 15 Jan 2012 19:53:49 +0100 -Subject: Raise soft address space limit to hard limit -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -For SLES we want users to be able to use large memory configurations -with KVM without fiddling with ulimit -Sv. - -Signed-off-by: Andreas Färber -[BR: add include for sys/resource.h] -Signed-off-by: Bruce Rogers ---- - softmmu/vl.c | 12 ++++++++++++ - 1 file changed, 12 insertions(+) - -diff --git a/softmmu/vl.c b/softmmu/vl.c -index 706bd7cff793dff6433c93dc6601..738736c50d90e7144743dfe0f61c 100644 ---- a/softmmu/vl.c -+++ b/softmmu/vl.c -@@ -42,6 +42,7 @@ - #include "sysemu/reset.h" - #include "sysemu/runstate.h" - #include "sysemu/runstate-action.h" -+#include - #include "sysemu/seccomp.h" - #include "sysemu/tcg.h" - #include "sysemu/xen.h" -@@ -2613,6 +2614,17 @@ void qemu_init(int argc, char **argv, char **envp) - MachineClass *machine_class; - bool userconfig = true; - FILE *vmstate_dump_file = NULL; -+ struct rlimit rlimit_as; -+ -+ /* -+ * Try to raise the soft address space limit. -+ * Default on SLES 11 SP2 is 80% of physical+swap memory. -+ */ -+ getrlimit(RLIMIT_AS, &rlimit_as); -+ if (rlimit_as.rlim_cur < rlimit_as.rlim_max) { -+ rlimit_as.rlim_cur = rlimit_as.rlim_max; -+ setrlimit(RLIMIT_AS, &rlimit_as); -+ } - - qemu_add_opts(&qemu_drive_opts); - qemu_add_drive_opts(&qemu_legacy_drive_opts); diff --git a/Revert-roms-efirom-tests-uefi-test-tools.patch b/Revert-roms-efirom-tests-uefi-test-tools.patch deleted file mode 100644 index 87d45de..0000000 --- a/Revert-roms-efirom-tests-uefi-test-tools.patch +++ /dev/null @@ -1,42 +0,0 @@ -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 -[DF: Rebased on top of 6.2.0] -Signed-off-by: Dario Faggioli ---- - roms/Makefile | 2 -- - tests/uefi-test-tools/Makefile | 1 - - 2 files changed, 3 deletions(-) - -diff --git a/roms/Makefile b/roms/Makefile -index 0e652aff895fe0680cf35e43b299..fd2c5824787e1c983f6e66170a60 100644 ---- a/roms/Makefile -+++ b/roms/Makefile -@@ -151,8 +151,6 @@ build-efi-roms: build-pxe-roms - # efirom - # - edk2-basetools: -- cd edk2/BaseTools && git submodule update --init --force \ -- Source/C/BrotliCompress/brotli - $(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/Revert-tests-qtest-enable-more-vhost-use.patch b/Revert-tests-qtest-enable-more-vhost-use.patch deleted file mode 100644 index 0051935..0000000 --- a/Revert-tests-qtest-enable-more-vhost-use.patch +++ /dev/null @@ -1,55 +0,0 @@ -From: Dario Faggioli -Date: Tue, 24 May 2022 20:52:17 +0200 -Subject: Revert "tests/qtest: enable more vhost-user tests by default" - -Git-commit: 0000000000000000000000000000000000000000 - -Revert commit "tests/qtest: enable more vhost-user tests by default" -(8dcb404bff6d9), as it causes prooblem when building with GCC 12 and LTO -enabled. - -This should be considered temporary, until the actual reason why the -code of the tests that are added in that commit breaks. - -It has been reported upstream, and will be (hopefully) solved there: -https://lore.kernel.org/qemu-devel/1d3bbff9e92e7c8a24db9e140dcf3f428c2df103.camel@suse.com/ - -Signed-off-by: Dario Faggioli ---- - tests/qtest/vhost-user-test.c | 21 ++++++++++++--------- - 1 file changed, 12 insertions(+), 9 deletions(-) - -diff --git a/tests/qtest/vhost-user-test.c b/tests/qtest/vhost-user-test.c -index 8bf390be207cd2c016662c78f4a4..a4f7cc4359fac1bc6f556ef28810 100644 ---- a/tests/qtest/vhost-user-test.c -+++ b/tests/qtest/vhost-user-test.c -@@ -996,17 +996,20 @@ static void register_vhost_user_test(void) - "virtio-net", - test_migrate, &opts); - -- opts.before = vhost_user_test_setup_reconnect; -- qos_add_test("vhost-user/reconnect", "virtio-net", -- test_reconnect, &opts); -+ /* keeps failing on build-system since Aug 15 2017 */ -+ if (getenv("QTEST_VHOST_USER_FIXME")) { -+ opts.before = vhost_user_test_setup_reconnect; -+ qos_add_test("vhost-user/reconnect", "virtio-net", -+ test_reconnect, &opts); - -- opts.before = vhost_user_test_setup_connect_fail; -- qos_add_test("vhost-user/connect-fail", "virtio-net", -- test_vhost_user_started, &opts); -+ opts.before = vhost_user_test_setup_connect_fail; -+ qos_add_test("vhost-user/connect-fail", "virtio-net", -+ test_vhost_user_started, &opts); - -- opts.before = vhost_user_test_setup_flags_mismatch; -- qos_add_test("vhost-user/flags-mismatch", "virtio-net", -- test_vhost_user_started, &opts); -+ opts.before = vhost_user_test_setup_flags_mismatch; -+ qos_add_test("vhost-user/flags-mismatch", "virtio-net", -+ test_vhost_user_started, &opts); -+ } - - opts.before = vhost_user_test_setup_multiqueue; - opts.edge.extra_device_opts = "mq=on"; diff --git a/Silence-GCC-12-spurious-warnings.patch b/Silence-GCC-12-spurious-warnings.patch deleted file mode 100644 index e79191d..0000000 --- a/Silence-GCC-12-spurious-warnings.patch +++ /dev/null @@ -1,62 +0,0 @@ -From: =?UTF-8?q?Martin=20Li=C5=A1ka?= -Date: Tue, 22 Mar 2022 10:52:19 +0100 -Subject: Silence GCC 12 spurious warnings -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Git-commit: 0000000000000000000000000000000000000000 -References: bsc#1197018 - -With GCC 12, build fails like this: - -[ 6245s] inlined from 'memcpy_user' at -arch/x86/include/librm.h:155:2, -[ 6245s] inlined from 'copy_from_user' at -include/ipxe/uaccess.h:338:2, -[ 6245s] inlined from 'acpi_sx_zsdt' at core/acpi.c:217:3: -[ 6245s] arch/x86/include/bits/string.h:79:32: error: array subscript -'union [0]' is partly outside array bounds of 'union -[1]' [-Werror=array-bounds] -[ 6245s] 79 | dest_u->u32[0] = src_u->u32[0]; -[ 6245s] | ~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~ -[ 6245s] core/acpi.c: In function 'acpi_sx_zsdt': -[ 6245s] core/acpi.c:191:11: note: object 'buf' of size 4 -[ 6245s] 191 | } buf; -[ 6245s] | ^~~ - -Which is a false positive reported by GCC compiler: -https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98503 - -Silence the watning. - -Signed-off-by: Martin Liška -Signed-off-by: Dario Faggioli ---- - src/Makefile.housekeeping | 13 +++++++++++++ - 1 file changed, 13 insertions(+) - -diff --git a/roms/ipxe/src/Makefile.housekeeping b/roms/ipxe/src/Makefile.housekeeping -index 36cfb950e014914232f254b7edbb..cad327d31dbe0bd69d956c32d28d 100644 ---- a/roms/ipxe/src/Makefile.housekeeping -+++ b/roms/ipxe/src/Makefile.housekeeping -@@ -183,6 +183,19 @@ WNAPM_TEST = $(CC) -Wno-address-of-packed-member -x c -c /dev/null \ - WNAPM_FLAGS := $(shell $(WNAPM_TEST) && \ - $(ECHO) '-Wno-address-of-packed-member') - WORKAROUND_CFLAGS += $(WNAPM_FLAGS) -+ -+# gcc 12.1 generates false positive warnings. Inhibit the warnings. -+WNAB_TEST = $(CC) -Wno-array-bounds -x c -c /dev/null \ -+ -o /dev/null >/dev/null 2>&1 -+WNAB_FLAGS := $(shell $(WNAB_TEST) && \ -+ $(ECHO) '-Wno-array-bounds') -+WORKAROUND_CFLAGS += $(WNAB_FLAGS) -+ -+WNDP_TEST = $(CC) -Wno-dangling-pointer-x c -c /dev/null \ -+ -o /dev/null >/dev/null 2>&1 -+WNDP_FLAGS := $(shell $(WNAB_TEST) && \ -+ $(ECHO) '-Wno-dangling-pointer') -+WORKAROUND_CFLAGS += $(WNDP_FLAGS) - endif - - # Some versions of gas choke on division operators, treating them as diff --git a/_constraints b/_constraints index 48bd22a..88419a9 100644 --- a/_constraints +++ b/_constraints @@ -3,8 +3,7 @@ qemu - qemu:linux-user - qemu:testsuite + qemu:qemu-linux-user @@ -12,18 +11,6 @@ - - - - armv7l - qemu:linux-user - - - - 8192 - - - @@ -36,13 +23,13 @@ - + i586 x86_64 ppc64le - qemu:testsuite + qemu @@ -54,7 +41,7 @@ ppc64 - qemu:testsuite + qemu @@ -73,4 +60,16 @@ 8 + + + + armv7l + qemu:qemu-linux-user + + + + 8192 + + + diff --git a/_multibuild b/_multibuild index ffbdb22..35b89e7 100644 --- a/_multibuild +++ b/_multibuild @@ -1,3 +1,3 @@ - linux-user + qemu-linux-user diff --git a/_service b/_service new file mode 100644 index 0000000..190a15c --- /dev/null +++ b/_service @@ -0,0 +1,22 @@ + + + git + https://github.com/opensuse/qemu.git + factory + @PARENT_TAG@ + [v]?([^-+a-z]+)(.*) + \1 + enable + rpm/common.inc + rpm/qemu.spec + rpm/qemu-linux-user.spec + rpm/README.PACKAGING + rpm/qemu-rpmlintrc + + + + + *.tar + xz + + diff --git a/_servicedata b/_servicedata new file mode 100644 index 0000000..3779ced --- /dev/null +++ b/_servicedata @@ -0,0 +1,4 @@ + + + https://github.com/opensuse/qemu.git + aaca3d0d6b11f122737d41bb934749ba718229da \ No newline at end of file diff --git a/ath5k-Add-missing-AR5K_EEPROM_READ-in-at.patch b/ath5k-Add-missing-AR5K_EEPROM_READ-in-at.patch deleted file mode 100644 index 805f7a2..0000000 --- a/ath5k-Add-missing-AR5K_EEPROM_READ-in-at.patch +++ /dev/null @@ -1,31 +0,0 @@ -From: Bruce Rogers -Date: Tue, 16 Feb 2021 11:29:41 -0700 -Subject: [ath5k] Add missing AR5K_EEPROM_READ in ath5k_eeprom_read_turbo_modes - -Git-commit: 19d0fab40f07eeea7fe6b9e0d4e8d4b0c2de215f -References: boo#1181922 - -The GCC11 compiler pointed out something that apparently no previous -compiler noticed: in ath5k_eeprom_pread_turbo_modes, local variable -val is used uninitialized. From what I can see, the code is just -missing an initial AR5K_EEPROM_READ. Add it right before the switch -statement. - -Signed-off-by: Bruce Rogers -Signed-off-by: Michael Brown ---- - src/drivers/net/ath/ath5k/ath5k_eeprom.c | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/roms/ipxe/src/drivers/net/ath/ath5k/ath5k_eeprom.c b/roms/ipxe/src/drivers/net/ath/ath5k/ath5k_eeprom.c -index 983d206b7e36cc4981ecbb760a41..12519bc599fb7d4757da43a6bcc2 100644 ---- a/roms/ipxe/src/drivers/net/ath/ath5k/ath5k_eeprom.c -+++ b/roms/ipxe/src/drivers/net/ath/ath5k/ath5k_eeprom.c -@@ -416,6 +416,7 @@ ath5k_eeprom_read_turbo_modes(struct ath5k_hw *ah, - if (ee->ee_version < AR5K_EEPROM_VERSION_5_0) - return 0; - -+ AR5K_EEPROM_READ(o++, val); - switch (mode){ - case AR5K_EEPROM_MODE_11A: - ee->ee_switch_settling_turbo[mode] = (val >> 6) & 0x7f; diff --git a/block-io_uring-revert-Use-io_uring_regis.patch b/block-io_uring-revert-Use-io_uring_regis.patch deleted file mode 100644 index 153c253..0000000 --- a/block-io_uring-revert-Use-io_uring_regis.patch +++ /dev/null @@ -1,79 +0,0 @@ -From: Sam Li -Date: Sat, 24 Sep 2022 22:48:15 +0800 -Subject: block/io_uring: revert "Use io_uring_register_ring_fd() to skip fd - operations" - -Git-commit: 0000000000000000000000000000000000000000 -References: bsc#1204082 - -Resolves: https://gitlab.com/qemu-project/qemu/-/issues/1193 - -The commit "Use io_uring_register_ring_fd() to skip fd operations" broke -when booting a guest with iothread and io_uring. That is because the -io_uring_register_ring_fd() call is made from the main thread instead of -IOThread where io_uring_submit() is called. It can not be guaranteed -to register the ring fd in the correct thread or unregister the same ring -fd if the IOThread is disabled. This optimization is not critical so we -will revert previous commit. - -This reverts commit e2848bc574fe2715c694bf8fe9a1ba7f78a1125a -and 77e3f038af1764983087e3551a0fde9951952c4d. - -Signed-off-by: Sam Li -Signed-off-by: Dario Faggioli ---- - block/io_uring.c | 13 +------------ - meson.build | 1 - - 2 files changed, 1 insertion(+), 13 deletions(-) - -diff --git a/block/io_uring.c b/block/io_uring.c -index a1760152e0581c279e22b1c3a8d0..973e15d87693370dd3388f511962 100644 ---- a/block/io_uring.c -+++ b/block/io_uring.c -@@ -11,7 +11,6 @@ - #include "qemu/osdep.h" - #include - #include "block/aio.h" --#include "qemu/error-report.h" - #include "qemu/queue.h" - #include "block/block.h" - #include "block/raw-aio.h" -@@ -19,7 +18,6 @@ - #include "qapi/error.h" - #include "trace.h" - -- - /* io_uring ring size */ - #define MAX_ENTRIES 128 - -@@ -432,17 +430,8 @@ LuringState *luring_init(Error **errp) - } - - ioq_init(&s->io_q); --#ifdef CONFIG_LIBURING_REGISTER_RING_FD -- if (io_uring_register_ring_fd(&s->ring) < 0) { -- /* -- * Only warn about this error: we will fallback to the non-optimized -- * io_uring operations. -- */ -- warn_report("failed to register linux io_uring ring file descriptor"); -- } --#endif -- - return s; -+ - } - - void luring_cleanup(LuringState *s) -diff --git a/meson.build b/meson.build -index 6641e86c0107906bb07d6b35d54a..265fea0648a8b651306deae60c0f 100644 ---- a/meson.build -+++ b/meson.build -@@ -1805,7 +1805,6 @@ config_host_data.set('CONFIG_LIBNFS', libnfs.found()) - config_host_data.set('CONFIG_LIBSSH', libssh.found()) - config_host_data.set('CONFIG_LINUX_AIO', libaio.found()) - config_host_data.set('CONFIG_LINUX_IO_URING', linux_io_uring.found()) --config_host_data.set('CONFIG_LIBURING_REGISTER_RING_FD', cc.has_function('io_uring_register_ring_fd', prefix: '#include ', dependencies:linux_io_uring)) - config_host_data.set('CONFIG_LIBPMEM', libpmem.found()) - config_host_data.set('CONFIG_NUMA', numa.found()) - config_host_data.set('CONFIG_OPENGL', opengl.found()) diff --git a/bridge.conf b/bridge.conf deleted file mode 100644 index 49caf5b..0000000 --- a/bridge.conf +++ /dev/null @@ -1,11 +0,0 @@ -# Access control file for qemu bridge helper -# Syntax consists of: -# # comment (ignored) -# allow all -# allow -# deny all -# deny -# include /path/to/additional/ACL/file -# Users are blacklisted by default and 'deny' takes precedence over 'allow'. -# Including additional ACL files allows file access permissions to be used as -# a component of the policy to allow access or deny access to specific bridges. diff --git a/build-be-explicit-about-mx86-used-note-n.patch b/build-be-explicit-about-mx86-used-note-n.patch deleted file mode 100644 index c7e786c..0000000 --- a/build-be-explicit-about-mx86-used-note-n.patch +++ /dev/null @@ -1,28 +0,0 @@ -From: Bruce Rogers -Date: Thu, 4 Feb 2021 11:06:47 -0700 -Subject: build: be explicit about -mx86-used-note=no - -binutils v2.36 switched the default for the assembler's -mx86-used-note, -which caused breakage building seavgabios as follows: -ld: section .note.gnu.property LMA [0000000000000000,0000000000000027] -overlaps section .text LMA [0000000000000000,0000000000006e87] -Fix by explicitly specifying -mx86-used-note=no to assembler in seabios' -Makefile (boo#1181775) - -Signed-off-by: Bruce Rogers ---- - Makefile | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/roms/seabios/Makefile b/roms/seabios/Makefile -index 5ced69cd8be94d36c8aaa887ce73..e0c51a4e455e9796437b7f59dd17 100644 ---- a/roms/seabios/Makefile -+++ b/roms/seabios/Makefile -@@ -73,6 +73,7 @@ COMMONCFLAGS += $(call cc-option,$(CC),-fstack-check=no,) - COMMONCFLAGS += $(call cc-option,$(CC),-Wno-address-of-packed-member,) - COMMONCFLAGS += $(call cc-option,$(CC),-fcf-protection=none,) - COMMA := , -+COMMONCFLAGS += $(call cc-option,$(CC),-Wa$(COMMA)-mx86-used-note=no,) - - CFLAGS32FLAT := $(COMMONCFLAGS) -DMODE16=0 -DMODESEGMENT=0 - CFLAGSSEG := $(COMMONCFLAGS) -DMODESEGMENT=1 -fno-defer-pop \ diff --git a/bundles.tar.xz b/bundles.tar.xz deleted file mode 100644 index 075f305..0000000 --- a/bundles.tar.xz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:9f317be581f7c79828e97405398736903b44f3f132fe075201fca2975142658b -size 43516 diff --git a/common.inc b/common.inc new file mode 100644 index 0000000..1005576 --- /dev/null +++ b/common.inc @@ -0,0 +1,102 @@ +%define _buildshell /bin/bash + +%define sbver 1.16.3_3_gc13ff2cd + +%define srcdir %{_builddir}/%buildsubdir +%define blddir %srcdir/build + +%define build_x86_firmware 0 +%define build_ppc_firmware 0 +%define build_opensbi_firmware 0 +%define kvm_available 0 +%define legacy_qemu_kvm 0 +%define force_fit_virtio_pxe_rom 1 + +%define with_xen 0%{!?_without_xen:1} + +%if "%{?distribution}" == "" +%define distro private-build +%else +%define distro %{distribution} +%endif + +# Items to exclude in ALP-based products +%if 0%{?suse_version} == 1600 +%define with_xen 0 +%endif + +%bcond_with system_membarrier +%bcond_with malloc_trim + +%bcond_with chkqtests + +%if 0%{?suse_version} > 1600 +# canokey is an openSUSE thing, not a SLE one +%ifarch x86_64 +%bcond_without canokey +%else +%bcond_with canokey +%endif +%endif + +%if 0%{?suse_version} > 1600 +# XDP seems not to be there in SLE... +%bcond_without xdp +%else +%bcond_with xdp +%endif + +# Make it possible to build without spice (for SLE/Leap Micro) +%bcond_without spice + +# We do not have the stuff needed to compile rutabaga support. +# If/when we want to do it, we can check how it's done here: +# https://src.fedoraproject.org/rpms/qemu/c/deeb9357cb751df21c566fd8408936cfb034d43b?branch=rawhide +%define has_rutabaga_gfx 0 + +%define has_virtiofsd 1 +# Upstream virtiofsd does not even build on 32 bit systems +%ifarch %ix86 %arm +%define has_virtiofsd 0 +%endif + +# non-x86 archs still seem to have some issues with Link Time Optimization +%ifnarch %ix86 x86_64 +%define _lto_cflags %{nil} +%endif + +%ifarch aarch64 +%define qemu_arch aarch64 +%endif +%ifarch %arm +%define qemu_arch arm +%endif +%ifarch %ix86 +%define qemu_arch i386 +%endif +%ifarch ppc64 +%define qemu_arch ppc64 +%endif +%ifarch ppc +%define qemu_arch ppc +%endif +%ifarch ppc64le +%define qemu_arch ppc64le +%endif +%ifarch riscv64 +%define qemu_arch riscv64 +%endif +%ifarch s390x +%define qemu_arch s390x +%endif +%ifarch x86_64 +%define qemu_arch x86_64 +%endif + +%define generic_qemu_description \ +QEMU provides full machine emulation and cross architecture usage. It closely\ +integrates with KVM and Xen virtualization, allowing for excellent performance.\ +Many options are available for defining the emulated environment, including\ +traditional devices, direct host device access, and interfaces specific to\ +virtualization. + diff --git a/config.sh b/config.sh deleted file mode 100644 index 2120c33..0000000 --- a/config.sh +++ /dev/null @@ -1,122 +0,0 @@ -#!/bin/bash - -# config.sh: - -# The next few VARIABLES are to be edited as required: - -# Package name. (In multibuild, it's the base package). Used to ref spec file. -PKG=qemu - -# Here is the git repo which tracks a separate upstream git based project -# We take this approach so we can have our own tags and branches, and store -# the patches in git for others to access outside of the bundle. -PACKAGE_MAIN_GIT_REPO=https://github.com/openSUSE/qemu.git - -# This is the upstream for the PACKAGE_MAIN_GIT_REPO -UPSTREAM_GIT_REPO=https://gitlab.com/qemu-project/qemu.git - -# The following specifies the upstream tag or commit upon which our patchqueue -# gets rebased. The special value LATEST may be used to "automatically" track -# the upstream development tree in the master branch -#GIT_UPSTREAM_COMMIT_ISH=v7.0.0 -GIT_UPSTREAM_COMMIT_ISH=v7.1.0 -# WARNING: If transitioning from using LATEST to not, MANUALLY re-set the -# tarball present. If transitioning TO LATEST, make sure that -# NEXT_RELEASE_IS_MAJOR is set correctly -# This is used to choose the version number when LATEST processing is active -NEXT_RELEASE_IS_MAJOR=1 - -# Unfortunately, SeaBIOS doesn't always follow an "always increasing" version -# model, so there may be times we should overide the automated version setting. -# We can do so by specifing the value here: -#SEABIOS_VERSION=1.13.0 - -# In following, use 1 or 0 as needed (representing true or false respectively) -NUMBERED_PATCHES=0 - -PATCH_RANGE=1000 - -# For compatibility with old packages, we include this option -OVERRIDE_FIVE_DIGIT_NUMBERING=0 - -# Path to be used for temporary files, directories, repositories, etc. -# Default is /dev/shm. An alternative could be /tmp (e.g., when building -# in containers, or whatever). -#TMPDIR=/dev/shm -TMPDIR=/tmp - -# This array tracks all git submodule paths within the superproject (1st entry) -PATCH_PATH_MAP=( - "" - "roms/seabios/" - "roms/ipxe/" - "roms/sgabios/" - "roms/edk2/" - "roms/skiboot/" - "roms/SLOF/" - "roms/openbios/" - "ui/keycodemapdb/" - "slirp/" - "roms/u-boot/" - "roms/qboot/" - "dtc/" - "roms/opensbi/" - "roms/edk2/CryptoPkg/Library/OpensslLib/openssl/" - "capstone/" - "roms/qemu-palcode/" - "roms/seabios-hppa/" - "roms/u-boot-sam460ex/" - "roms/QemuMacDrivers/" - "meson/" - "tests/fp/berkeley-softfloat-3/" - "tests/fp/berkeley-testfloat-3/" - "tests/lcitool/libvirt-ci" - "roms/edk2/ArmPkg/Library/ArmSoftFloatLib/berkeley-softfloat-3/" - "roms/edk2/CryptoPkg/Library/OpensslLib/openssl/boringssl/" - "roms/edk2/CryptoPkg/Library/OpensslLib/openssl/krb5/" - "roms/edk2/CryptoPkg/Library/OpensslLib/openssl/pyca-cryptography/" - "roms/edk2/BaseTools/Source/C/BrotliCompress/brotli/" - "roms/edk2/MdeModulePkg/Library/BrotliCustomDecompressLib/brotli/" - "roms/edk2/MdeModulePkg/Universal/RegularExpressionDxe/oniguruma/" - "roms/edk2/UnitTestFrameworkPkg/Library/CmockaLib/cmocka/" - "roms/vbootrom/" - "roms/edk2/RedfishPkg/Library/JsonLib/jansson" -) - -# (order and count must correspond to PATCH_PATH_MAP) -LOCAL_REPO_MAP=( - ~/git/qemu-opensuse - ~/git/qemu-seabios - ~/git/qemu-ipxe - ~/git/qemu-sgabios - ~/git/qemu-edk2 - ~/git/qemu-skiboot - ~/git/qemu-SLOF - ~/git/qemu-openbios - ~/git/qemu-keycodemapdb - ~/git/qemu-slirp - ~/git/qemu-u-boot - ~/git/qemu-qboot - ~/git/qemu-dtc - ~/git/qemu-opensbi - ~/git/qemu-edk2-openssl - ~/git/qemu-capstone - ~/git/qemu-qemu-palcode - ~/git/qemu-seabios-hppa - ~/git/qemu-u-boot-sam460ex - ~/git/qemu-QemuMacDrivers - ~/git/qemu-meson - ~/git/qemu-tests-berkeley-softfloat-3 - ~/git/qemu-tests-berkeley-testfloat-3 - ~/git/qemu-tests-lcitool-libvirt-ci - ~/git/qemu-edk2-berkeley-softfloat-3 - ~/git/qemu-edk2-openssl-boringssl - ~/git/qemu-edk2-openssl-krb5 - ~/git/qemu-edk2-openssl-pyca-cryptography - ~/git/qemu-edk2-BrotliCompress-brotli - ~/git/qemu-edk2-BrotliCustomDecompressLib-brotli - ~/git/qemu-edk2-oniguruma - ~/git/qemu-edk2-cmocka - ~/git/qemu-vbootrom - ~/git/qemu-edk2-jansson -) diff --git a/enable-cross-compilation-on-ARM.patch b/enable-cross-compilation-on-ARM.patch deleted file mode 100644 index 814e0ca..0000000 --- a/enable-cross-compilation-on-ARM.patch +++ /dev/null @@ -1,22 +0,0 @@ -From: Bruce Rogers -Date: Mon, 26 Aug 2019 13:28:57 -0600 -Subject: enable cross compilation on ARM - -Signed-off-by: Bruce Rogers ---- - Makefile | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/roms/seabios/Makefile b/roms/seabios/Makefile -index 408983026669e531dcb84230dd23..5ced69cd8be94d36c8aaa887ce73 100644 ---- a/roms/seabios/Makefile -+++ b/roms/seabios/Makefile -@@ -13,7 +13,7 @@ export CONFIG_SHELL := sh - export KCONFIG_AUTOHEADER := autoconf.h - export KCONFIG_CONFIG := $(CURDIR)/.config - export LC_ALL := C --CROSS_PREFIX= -+CROSS_PREFIX=$(CROSS_COMPILE) - ifneq ($(CROSS_PREFIX),) - CC=$(CROSS_PREFIX)gcc - endif diff --git a/help-compiler-out-by-initializing-array.patch b/help-compiler-out-by-initializing-array.patch deleted file mode 100644 index 6973aff..0000000 --- a/help-compiler-out-by-initializing-array.patch +++ /dev/null @@ -1,27 +0,0 @@ -From: Bruce Rogers -Date: Thu, 13 Aug 2020 18:23:35 -0600 -Subject: help compiler out by initializing array - -The pre-release gcc 11 compiler is complaining that result_raw in -bigint_test_exec is flagged as possibly being uninitialized when used -(-Werror=maybe-uninitialized). Help the compiler by initializing the -array. - -Signed-off-by: Bruce Rogers ---- - src/tests/bigint_test.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/roms/ipxe/src/tests/bigint_test.c b/roms/ipxe/src/tests/bigint_test.c -index 8d40c3188784a693e83a2a9d3217..dfcd393c413b1c66ab2e9988c472 100644 ---- a/roms/ipxe/src/tests/bigint_test.c -+++ b/roms/ipxe/src/tests/bigint_test.c -@@ -210,7 +210,7 @@ void bigint_mod_exp_sample ( const bigint_element_t *base0, - static const uint8_t addend_raw[] = addend; \ - static const uint8_t value_raw[] = value; \ - static const uint8_t expected_raw[] = expected; \ -- uint8_t result_raw[ sizeof ( expected_raw ) ]; \ -+ uint8_t result_raw[ sizeof ( expected_raw ) ] = {0}; \ - unsigned int size = \ - bigint_required_size ( sizeof ( value_raw ) ); \ - bigint_t ( size ) addend_temp; \ diff --git a/hw-scsi-megasas-check-for-NULL-frame-in-.patch b/hw-scsi-megasas-check-for-NULL-frame-in-.patch deleted file mode 100644 index 63cc33a..0000000 --- a/hw-scsi-megasas-check-for-NULL-frame-in-.patch +++ /dev/null @@ -1,31 +0,0 @@ -From: Mauro Matteo Cascella -Date: Mon, 7 Mar 2022 16:22:01 +0100 -Subject: hw/scsi/megasas: check for NULL frame in megasas_command_cancelled() - -Git-commit: 0000000000000000000000000000000000000000 -References: bsc#1180432, CVE-2020-35503 - -Ensure that 'cmd->frame' is not NULL before accessing the 'header' field. -This check prevents a potential NULL pointer dereference issue. - -RHBZ: https://bugzilla.redhat.com/show_bug.cgi?id=1910346 -Signed-off-by: Mauro Matteo Cascella -Reported-by: Cheolwoo Myung -Signed-off-by: Dario Faggioli ---- - hw/scsi/megasas.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/hw/scsi/megasas.c b/hw/scsi/megasas.c -index d5dfb412bac4251c9fa06eb416b4..cf97b4d2db5bf91a0e18908e900d 100644 ---- a/hw/scsi/megasas.c -+++ b/hw/scsi/megasas.c -@@ -1927,7 +1927,7 @@ static void megasas_command_cancelled(SCSIRequest *req) - { - MegasasCmd *cmd = req->hba_private; - -- if (!cmd) { -+ if (!cmd || !cmd->frame) { - return; - } - cmd->frame->header.cmd_status = MFI_STAT_SCSI_IO_FAILED; diff --git a/hw-smbios-handle-both-file-formats-regar.patch b/hw-smbios-handle-both-file-formats-regar.patch deleted file mode 100644 index d6dbb17..0000000 --- a/hw-smbios-handle-both-file-formats-regar.patch +++ /dev/null @@ -1,93 +0,0 @@ -From: Bruce Rogers -Date: Fri, 5 Apr 2019 21:10:30 -0600 -Subject: hw/smbios: handle both file formats regardless of machine type - -References: bsc#994082, bsc#1084316, boo#1131894 - -It's easy enough to handle either per-spec or legacy smbios structures -in the smbios file input without regard to the machine type used, by -simply applying the basic smbios formatting rules. then depending on -what is detected. terminal numm bytes are added or removed for machine -type specific processing. - -Signed-off-by: Bruce Rogers ---- - hw/smbios/smbios.c | 43 +++++++++++++++++++++++++++++++++++++++---- - 1 file changed, 39 insertions(+), 4 deletions(-) - -diff --git a/hw/smbios/smbios.c b/hw/smbios/smbios.c -index 60349ee402719d55896658bf203c..59091c8454bf6d8d05c4c8313753 100644 ---- a/hw/smbios/smbios.c -+++ b/hw/smbios/smbios.c -@@ -1180,6 +1180,7 @@ void smbios_entry_add(QemuOpts *opts, Error **errp) - struct smbios_structure_header *header; - int size; - struct smbios_table *table; /* legacy mode only */ -+ uint8_t *dbl_nulls, *orig_end; - - if (!qemu_opts_validate(opts, qemu_smbios_file_opts, errp)) { - return; -@@ -1192,11 +1193,21 @@ void smbios_entry_add(QemuOpts *opts, Error **errp) - } - - /* -- * NOTE: standard double '\0' terminator expected, per smbios spec. -- * (except in legacy mode, where the second '\0' is implicit and -- * will be inserted by the BIOS). -+ * NOTE: standard double '\0' terminator expected, per smbios spec, -+ * unless the data is formatted for legacy mode, which is used by -+ * pc-i440fx-2.0 and earlier machine types. Legacy mode structures -+ * without strings have no '\0' terminators, and those with strings -+ * also don't have an additional '\0' terminator at the end of the -+ * final string '\0' terminator. The BIOS will add the '\0' terminators -+ * to comply with the smbios spec. -+ * For greater compatibility, regardless of the machine type used, -+ * either format is accepted. - */ -- smbios_tables = g_realloc(smbios_tables, smbios_tables_len + size); -+ smbios_tables = g_realloc(smbios_tables, smbios_tables_len + size + 2); -+ orig_end = smbios_tables + smbios_tables_len + size; -+ /* add extra null bytes to end in case of legacy file data */ -+ *orig_end = '\0'; -+ *(orig_end + 1) = '\0'; - header = (struct smbios_structure_header *)(smbios_tables + - smbios_tables_len); - -@@ -1211,6 +1222,19 @@ void smbios_entry_add(QemuOpts *opts, Error **errp) - header->type); - return; - } -+ for (dbl_nulls = smbios_tables + smbios_tables_len + header->length; -+ dbl_nulls + 2 <= orig_end; dbl_nulls++) { -+ if (*dbl_nulls == '\0' && *(dbl_nulls + 1) == '\0') { -+ break; -+ } -+ } -+ if (dbl_nulls + 2 < orig_end) { -+ error_setg(errp, "SMBIOS file data malformed"); -+ return; -+ } -+ /* increase size by how many extra nulls were actually needed */ -+ size += dbl_nulls + 2 - orig_end; -+ smbios_tables = g_realloc(smbios_tables, smbios_tables_len + size); - set_bit(header->type, have_binfile_bitmap); - - if (header->type == 4) { -@@ -1231,6 +1255,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. - */ -+ if (dbl_nulls + 2 == orig_end) { -+ /* chop off nulls to get legacy format */ -+ if (header->length + 2 == size) { -+ size -= 2; -+ } else { -+ size -= 1; -+ } -+ } else { -+ /* undo conversion from legacy format to per-spec format */ -+ size -= dbl_nulls + 2 - orig_end; -+ } - if (!smbios_entries) { - smbios_entries_len = sizeof(uint16_t); - smbios_entries = g_malloc0(smbios_entries_len); diff --git a/increase-x86_64-physical-bits-to-42.patch b/increase-x86_64-physical-bits-to-42.patch deleted file mode 100644 index af53ee6..0000000 --- a/increase-x86_64-physical-bits-to-42.patch +++ /dev/null @@ -1,73 +0,0 @@ -From: Bruce Rogers -Date: Fri, 17 May 2013 16:49:58 -0600 -Subject: increase x86_64 physical bits to 42 -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Allow for guests with higher amounts of ram. The current thought -is that 2TB specified on qemu commandline would be an appropriate -limit. Note that this requires the next higher bit value since -the highest address is actually more than 2TB due to the pci -memory hole. - -Signed-off-by: Bruce Rogers -Signed-off-by: Andreas Färber - -The DSDT needs to be updated as well, or tests will fail. - -The necessary changes are the following ones: - -@@ -5,13 +5,13 @@ - * - * Disassembling to symbolic ASL+ operators - * -- * Disassembly of /tmp/aml-ML87L1, Thu May 19 16:20:30 2022 -+ * Disassembly of tests/data/acpi/microvm/DSDT.pcie, Thu May 19 16:20:30 2022 - * - * Original Table Header: - * Signature "DSDT" - * Length 0x00000BCF (3023) - * Revision 0x02 -- * Checksum 0xD1 -+ * Checksum 0xD8 - * OEM ID "BOCHS " - * OEM Table ID "BXPC " - * OEM Revision 0x00000001 (1) -@@ -1256,10 +1256,10 @@ - ,, , AddressRangeMemory, TypeStatic) - QWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, NonCacheable, ReadWrite, - 0x0000000000000000, // Granularity -- 0x0000030000000000, // Range Minimum -- 0x000003FFFFFFFFFF, // Range Maximum -+ 0x000000C000000000, // Range Minimum -+ 0x000000FFFFFFFFFF, // Range Maximum - 0x0000000000000000, // Translation Offset -- 0x0000010000000000, // Length -+ 0x0000004000000000, // Length - ,, , AddressRangeMemory, TypeStatic) - }) - Name (SUPP, Zero) - -We cannot, however, commit the modified binary as part of this patch, -will not apply it. The binary is instead put in the package, and copied -in place in the spec file, just before 'make check'. - -Signed-off-by: Dario Faggioli ---- - target/i386/tcg/helper-tcg.h | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/target/i386/tcg/helper-tcg.h b/target/i386/tcg/helper-tcg.h -index 34167e2e29cacee8dfb05e943fac..8ded299c8f4bf91ba2bea6b88211 100644 ---- a/target/i386/tcg/helper-tcg.h -+++ b/target/i386/tcg/helper-tcg.h -@@ -26,7 +26,7 @@ - #define TARGET_MAX_INSN_SIZE 16 - - #if defined(TARGET_X86_64) --# define TCG_PHYS_ADDR_BITS 40 -+# define TCG_PHYS_ADDR_BITS 42 - #else - # define TCG_PHYS_ADDR_BITS 36 - #endif diff --git a/ipxe-Makefile-fix-issues-of-build-reprod.patch b/ipxe-Makefile-fix-issues-of-build-reprod.patch deleted file mode 100644 index 6bce55e..0000000 --- a/ipxe-Makefile-fix-issues-of-build-reprod.patch +++ /dev/null @@ -1,49 +0,0 @@ -From: Bruce Rogers -Date: Thu, 27 Jun 2019 10:15:24 -0600 -Subject: ipxe:Makefile: fix issues of build reproducibility - -References: bsc#1011213 - -It is desirable to produce the same bits on subsequent -builds when the actual code of the package doesn't -change. (bsc#1011213) - -Signed-off-by: Bruce Rogers ---- - src/Makefile.housekeeping | 13 ++++++++++--- - 1 file changed, 10 insertions(+), 3 deletions(-) - -diff --git a/roms/ipxe/src/Makefile.housekeeping b/roms/ipxe/src/Makefile.housekeeping -index 134becd508c2f7f7c01c2f601d36..36cfb950e014914232f254b7edbb 100644 ---- a/roms/ipxe/src/Makefile.housekeeping -+++ b/roms/ipxe/src/Makefile.housekeeping -@@ -1163,11 +1163,18 @@ blib : $(BLIB) - # Command to generate build ID. Must be unique for each $(BIN)/%.tmp, - # even within the same build run. - # --BUILD_ID_CMD := perl -e 'printf "0x%08x", int ( rand ( 0xffffffff ) );' -+# NB: In the case of the SUSE qemu-ipxe package we want reproducible -+# builds, so we just use the TGT_ROM_NAME variable, which is already -+# a unique (in the context of the files we generate) hex value suitable -+# for specifying the build_id. We no longer define a BUILD_ID_CMD, as -+# we need to use the TGT_ROM_NAME variable directly in the link command - - # Build timestamp - # --BUILD_TIMESTAMP := $(shell date +%s) -+# NB: In the case of the SUSE qemu-ipxe package we want reproducible -+# builds, so we use a pre-determined timestamp, rather than the current -+# timestamp -+BUILD_TIMESTAMP := $(PACKAGING_TIMESTAMP) - - # Build version - # -@@ -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 $@ \ -- --defsym _build_id=`$(BUILD_ID_CMD)` \ -+ --defsym _build_id=`$(PRINTF) "0x%b" "$(TGT_ROM_NAME)"` \ - --defsym _build_timestamp=$(BUILD_TIMESTAMP) \ - -Map $(BIN)/$*.tmp.map - $(Q)$(OBJDUMP) -ht $@ | $(PERL) $(SORTOBJDUMP) >> $(BIN)/$*.tmp.map diff --git a/ksm.service b/ksm.service deleted file mode 100644 index 0028d33..0000000 --- a/ksm.service +++ /dev/null @@ -1,13 +0,0 @@ -[Unit] -Description=Kernel Samepage Merging -ConditionPathExists=/sys/kernel/mm/ksm -ConditionVirtualization=no - -[Service] -Type=oneshot -RemainAfterExit=yes -ExecStart=/bin/bash -c "/bin/echo 1 > /sys/kernel/mm/ksm/run" -ExecStop=/bin/bash -c "/bin/echo 0 > /sys/kernel/mm/ksm/run" - -[Install] -WantedBy=multi-user.target diff --git a/kvm.conf b/kvm.conf deleted file mode 100644 index 835d125..0000000 --- a/kvm.conf +++ /dev/null @@ -1,3 +0,0 @@ -# load kvm module at boot time -kvm - diff --git a/linux-user-Fake-proc-cpuinfo.patch b/linux-user-Fake-proc-cpuinfo.patch deleted file mode 100644 index 1ea6397..0000000 --- a/linux-user-Fake-proc-cpuinfo.patch +++ /dev/null @@ -1,75 +0,0 @@ -From: Alexander Graf -Date: Mon, 23 Jul 2012 10:24:14 +0200 -Subject: linux-user: Fake /proc/cpuinfo -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Fedora 17 for ARM reads /proc/cpuinfo and fails if it doesn't contain -ARM related contents. This patch implements a quick hack to expose real -/proc/cpuinfo data taken from a real world machine. - -The real fix would be to generate at least the flags automatically based -on the selected CPU. Please do not submit this patch upstream until this -has happened. - -Signed-off-by: Alexander Graf -[AF: Rebased for v1.6 and v1.7] -Signed-off-by: Andreas Färber -[DF: Restructured it a bit, to make ARM look like other arch-es] -Signed-off-by: Dario Faggioli ---- - linux-user/syscall.c | 26 ++++++++++++++++++++++++-- - 1 file changed, 24 insertions(+), 2 deletions(-) - -diff --git a/linux-user/syscall.c b/linux-user/syscall.c -index f4091212027c254a19dc871a675d..b746511fe5ba1c03cf44a14ed811 100644 ---- a/linux-user/syscall.c -+++ b/linux-user/syscall.c -@@ -8157,7 +8157,8 @@ static int is_proc_myself(const char *filename, const char *entry) - } - - #if HOST_BIG_ENDIAN != TARGET_BIG_ENDIAN || \ -- defined(TARGET_SPARC) || defined(TARGET_M68K) || defined(TARGET_HPPA) -+ defined(TARGET_SPARC) || defined(TARGET_M68K) || \ -+ defined(TARGET_HPPA) || defined(TARGET_ARM) - static int is_proc(const char *filename, const char *entry) - { - return strcmp(filename, entry) == 0; -@@ -8229,6 +8230,27 @@ static int open_cpuinfo(CPUArchState *cpu_env, int fd) - } - #endif - -+#if defined(TARGET_ARM) -+static int open_cpuinfo(CPUArchState *cpu_env, int fd) -+{ -+ dprintf(fd, -+"Processor : ARMv7 Processor rev 5 (v7l)\n" -+"BogoMIPS : 799.53\n" -+"Features : swp half thumb fastmult vfp edsp thumbee neon vfpv3\n" -+"CPU implementer : 0x41\n" -+"CPU architecture: 7\n" -+"CPU variant : 0x2\n" -+"CPU part : 0xc08\n" -+"CPU revision : 5\n" -+"\n" -+"Hardware : Genesi Efika MX (Smarttop)\n" -+"Revision : 51030\n" -+"Serial : 0000000000000000\n"); -+ return 0; -+} -+#endif -+ -+ - #if defined(TARGET_M68K) - static int open_hardware(CPUArchState *cpu_env, int fd) - { -@@ -8253,7 +8275,7 @@ static int do_openat(CPUArchState *cpu_env, int dirfd, const char *pathname, int - #if HOST_BIG_ENDIAN != TARGET_BIG_ENDIAN - { "/proc/net/route", open_net_route, is_proc }, - #endif --#if defined(TARGET_SPARC) || defined(TARGET_HPPA) -+#if defined(TARGET_SPARC) || defined(TARGET_HPPA) || defined(TARGET_ARM) - { "/proc/cpuinfo", open_cpuinfo, is_proc }, - #endif - #if defined(TARGET_M68K) diff --git a/linux-user-add-more-compat-ioctl-definit.patch b/linux-user-add-more-compat-ioctl-definit.patch deleted file mode 100644 index e67368e..0000000 --- a/linux-user-add-more-compat-ioctl-definit.patch +++ /dev/null @@ -1,66 +0,0 @@ -From: =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= -Date: Tue, 4 Oct 2022 10:32:03 +0100 -Subject: linux-user: add more compat ioctl definitions -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Git-commit: 0000000000000000000000000000000000000000 -Refereces: bsc#1204001 - -GLibc changes prevent us from including linux/fs.h anymore, -and we previously adjusted to this in - - commit 3cd3df2a9584e6f753bb62a0028bd67124ab5532 - Author: Daniel P. Berrangé - Date: Tue Aug 2 12:41:34 2022 -0400 - - linux-user: fix compat with glibc >= 2.36 sys/mount.h - -That change required adding compat ioctl definitions on the -QEMU side for any ioctls that we would otherwise obtain -from linux/fs.h. This commit adds more that were initially -missed, due to their usage being conditionalized in QEMU. - -Signed-off-by: Daniel P. Berrangé -Signed-off-by: Dario Faggioli ---- - linux-user/syscall.c | 25 +++++++++++++++++++++++++ - 1 file changed, 25 insertions(+) - -diff --git a/linux-user/syscall.c b/linux-user/syscall.c -index 9d92e56e3996dc2174a4af9d0491..5acb463d5e11311b2108358c7c01 100644 ---- a/linux-user/syscall.c -+++ b/linux-user/syscall.c -@@ -111,6 +111,31 @@ - #define FS_IOC32_SETFLAGS _IOW('f', 2, int) - #define FS_IOC32_GETVERSION _IOR('v', 1, int) - #define FS_IOC32_SETVERSION _IOW('v', 2, int) -+ -+#define BLKGETSIZE64 _IOR(0x12,114,size_t) -+#define BLKDISCARD _IO(0x12,119) -+#define BLKIOMIN _IO(0x12,120) -+#define BLKIOOPT _IO(0x12,121) -+#define BLKALIGNOFF _IO(0x12,122) -+#define BLKPBSZGET _IO(0x12,123) -+#define BLKDISCARDZEROES _IO(0x12,124) -+#define BLKSECDISCARD _IO(0x12,125) -+#define BLKROTATIONAL _IO(0x12,126) -+#define BLKZEROOUT _IO(0x12,127) -+ -+#define FIBMAP _IO(0x00,1) -+#define FIGETBSZ _IO(0x00,2) -+ -+struct file_clone_range { -+ __s64 src_fd; -+ __u64 src_offset; -+ __u64 src_length; -+ __u64 dest_offset; -+}; -+ -+#define FICLONE _IOW(0x94, 9, int) -+#define FICLONERANGE _IOW(0x94, 13, struct file_clone_range) -+ - #else - #include - #endif diff --git a/linux-user-drop-conditionals-for-obsolet.patch b/linux-user-drop-conditionals-for-obsolet.patch deleted file mode 100644 index 5142996..0000000 --- a/linux-user-drop-conditionals-for-obsolet.patch +++ /dev/null @@ -1,134 +0,0 @@ -From: =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= -Date: Tue, 4 Oct 2022 10:32:06 +0100 -Subject: linux-user: drop conditionals for obsolete kernel header versions -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Git-commit: 0000000000000000000000000000000000000000 -Refereces: bsc#1204001 - -Given our newly enforced 4.18 baseline for the kernel headers version, -we can drop any conditional checks for older versions. - -Signed-off-by: Daniel P. Berrangé -Signed-off-by: Dario Faggioli ---- - linux-user/linux_loop.h | 4 ---- - linux-user/syscall.c | 14 ++------------ - tests/tcg/i386/test-i386.c | 10 +++------- - 3 files changed, 5 insertions(+), 23 deletions(-) - -diff --git a/linux-user/linux_loop.h b/linux-user/linux_loop.h -index f80b96f1ff92c71bc1232b733d37..5a9e0edef2729642bfca8f146e6d 100644 ---- a/linux-user/linux_loop.h -+++ b/linux-user/linux_loop.h -@@ -31,10 +31,6 @@ enum { - #include /* for __kernel_old_dev_t */ - #include /* for __u64 */ - --#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,0) /* This is a guess. */ --#define __kernel_old_dev_t __kernel_dev_t --#endif -- - /* Backwards compatibility version */ - struct loop_info { - int lo_number; /* ioctl r/o */ -diff --git a/linux-user/syscall.c b/linux-user/syscall.c -index 5acb463d5e11311b2108358c7c01..d7c0d4a45d3907f1ef28fe93f9b6 100644 ---- a/linux-user/syscall.c -+++ b/linux-user/syscall.c -@@ -2525,16 +2525,12 @@ set_timeout: - case NETLINK_DROP_MEMBERSHIP: - case NETLINK_BROADCAST_ERROR: - case NETLINK_NO_ENOBUFS: --#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 2, 0) - case NETLINK_LISTEN_ALL_NSID: - case NETLINK_CAP_ACK: --#endif /* LINUX_VERSION_CODE >= KERNEL_VERSION(4, 2, 0) */ --#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 12, 0) - case NETLINK_EXT_ACK: --#endif /* LINUX_VERSION_CODE >= KERNEL_VERSION(4, 12, 0) */ - #if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 20, 0) - case NETLINK_GET_STRICT_CHK: --#endif /* LINUX_VERSION_CODE >= KERNEL_VERSION(4, 12, 0) */ -+#endif /* LINUX_VERSION_CODE >= KERNEL_VERSION(4, 20, 0) */ - break; - default: - goto unimplemented; -@@ -2903,16 +2899,12 @@ get_timeout: - case NETLINK_PKTINFO: - case NETLINK_BROADCAST_ERROR: - case NETLINK_NO_ENOBUFS: --#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 2, 0) - case NETLINK_LISTEN_ALL_NSID: - case NETLINK_CAP_ACK: --#endif /* LINUX_VERSION_CODE >= KERNEL_VERSION(4, 2, 0) */ --#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 12, 0) - case NETLINK_EXT_ACK: --#endif /* LINUX_VERSION_CODE >= KERNEL_VERSION(4, 12, 0) */ - #if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 20, 0) - case NETLINK_GET_STRICT_CHK: --#endif /* LINUX_VERSION_CODE >= KERNEL_VERSION(4, 12, 0) */ -+#endif /* LINUX_VERSION_CODE >= KERNEL_VERSION(4, 20, 0) */ - if (get_user_u32(len, optlen)) { - return -TARGET_EFAULT; - } -@@ -2929,7 +2921,6 @@ get_timeout: - return -TARGET_EFAULT; - } - break; --#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 2, 0) - case NETLINK_LIST_MEMBERSHIPS: - { - uint32_t *results; -@@ -2960,7 +2951,6 @@ get_timeout: - unlock_user(results, optval_addr, 0); - break; - } --#endif /* LINUX_VERSION_CODE >= KERNEL_VERSION(4, 2, 0) */ - default: - goto unimplemented; - } -diff --git a/tests/tcg/i386/test-i386.c b/tests/tcg/i386/test-i386.c -index ac8d5a3c1f8b6eacf32649155c98..bd7ebb9d68b9e90673ed16a6f4cd 100644 ---- a/tests/tcg/i386/test-i386.c -+++ b/tests/tcg/i386/test-i386.c -@@ -1231,10 +1231,6 @@ static inline int modify_ldt(int func, void * ptr, unsigned long bytecount) - return syscall(__NR_modify_ldt, func, ptr, bytecount); - } - --#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 5, 66) --#define modify_ldt_ldt_s user_desc --#endif -- - #define MK_SEL(n) (((n) << 3) | 7) - - uint8_t seg_data1[4096]; -@@ -1272,7 +1268,7 @@ uint8_t seg_data2[4096]; - /* NOTE: we use Linux modify_ldt syscall */ - void test_segs(void) - { -- struct modify_ldt_ldt_s ldt; -+ struct user_desc ldt; - long long ldt_table[3]; - int res, res2; - char tmp; -@@ -1374,7 +1370,7 @@ extern char code16_func3; - - void test_code16(void) - { -- struct modify_ldt_ldt_s ldt; -+ struct user_desc ldt; - int res, res2; - - /* build a code segment */ -@@ -1781,7 +1777,7 @@ void test_exceptions(void) - } - - { -- struct modify_ldt_ldt_s ldt; -+ struct user_desc ldt; - ldt.entry_number = 1; - ldt.base_addr = (unsigned long)&seg_data1; - ldt.limit = (sizeof(seg_data1) + 0xfff) >> 12; diff --git a/linux-user-lseek-explicitly-cast-non-set.patch b/linux-user-lseek-explicitly-cast-non-set.patch deleted file mode 100644 index ff2b4eb..0000000 --- a/linux-user-lseek-explicitly-cast-non-set.patch +++ /dev/null @@ -1,36 +0,0 @@ -From: Alexander Graf -Date: Thu, 13 Dec 2012 14:29:22 +0100 -Subject: linux-user: lseek: explicitly cast non-set offsets to signed - -When doing lseek, SEEK_SET indicates that the offset is an unsigned variable. -Other seek types have parameters that can be negative. - -When converting from 32bit to 64bit parameters, we need to take this into -account and enable SEEK_END and SEEK_CUR to be negative, while SEEK_SET stays -absolute positioned which we need to maintain as unsigned. - -Signed-off-by: Alexander Graf ---- - linux-user/syscall.c | 9 +++++++-- - 1 file changed, 7 insertions(+), 2 deletions(-) - -diff --git a/linux-user/syscall.c b/linux-user/syscall.c -index de782620fe3c9169a58e442a6f05..9d92e56e3996dc2174a4af9d0491 100644 ---- a/linux-user/syscall.c -+++ b/linux-user/syscall.c -@@ -8936,8 +8936,13 @@ static abi_long do_syscall1(CPUArchState *cpu_env, int num, abi_ulong arg1, - return ret; - #endif - #ifdef TARGET_NR_lseek -- case TARGET_NR_lseek: -- return get_errno(lseek(arg1, arg2, arg3)); -+ case TARGET_NR_lseek: { -+ off_t off = arg2; -+ if (arg3 != SEEK_SET) { -+ off = (abi_long)arg2; -+ } -+ return get_errno(lseek(arg1, off, arg3)); -+ } - #endif - #if defined(TARGET_NR_getxpid) && defined(TARGET_ALPHA) - /* Alpha specific */ diff --git a/linux-user-remove-conditionals-for-many-.patch b/linux-user-remove-conditionals-for-many-.patch deleted file mode 100644 index e794eee..0000000 --- a/linux-user-remove-conditionals-for-many-.patch +++ /dev/null @@ -1,101 +0,0 @@ -From: =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= -Date: Tue, 4 Oct 2022 10:32:04 +0100 -Subject: linux-user: remove conditionals for many fs.h ioctls -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Git-commit: 0000000000000000000000000000000000000000 -Refereces: bsc#1204001 - -These ioctls have been defined in linux/fs.h for a long time - - * BLKGETSIZE64 - <2.6.12 (linux.git epoch) - * BLKDISCARD - 2.6.28 (d30a2605be9d5132d95944916e8f578fcfe4f976) - * BLKIOMIN - 2.6.32 (ac481c20ef8f6c6f2be75d581863f40c43874ef7) - * BLKIOOPT - 2.6.32 (ac481c20ef8f6c6f2be75d581863f40c43874ef7) - * BLKALIGNOFF - 2.6.32 (ac481c20ef8f6c6f2be75d581863f40c43874ef7) - * BLKPBSZGET - 2.6.32 (ac481c20ef8f6c6f2be75d581863f40c43874ef7) - * BLKDISCARDZEROES - 2.6.32 (98262f2762f0067375f83824d81ea929e37e6bfe) - * BLKSECDISCARD - 2.6.36 (8d57a98ccd0b4489003473979da8f5a1363ba7a3) - * BLKROTATIONAL - 3.2 (ef00f59c95fe6e002e7c6e3663cdea65e253f4cc) - * BLKZEROOUT - 3.6 (66ba32dc167202c3cf8c86806581a9393ec7f488) - * FIBMAP - <2.6.12 (linux.git epoch) - * FIGETBSZ - <2.6.12 (linux.git epoch) - -and when building with latest glibc, we'll see compat definitions -in syscall.c anyway thanks to the previous patch. Thus we can -assume they always exist and remove the conditional checks. - -Signed-off-by: Daniel P. Berrangé -Signed-off-by: Dario Faggioli ---- - linux-user/ioctls.h | 24 ------------------------ - 1 file changed, 24 deletions(-) - -diff --git a/linux-user/ioctls.h b/linux-user/ioctls.h -index f182d40190ed43ffa1bbc4fd09cb..071f7ca2537560e3c923c9a18abb 100644 ---- a/linux-user/ioctls.h -+++ b/linux-user/ioctls.h -@@ -96,9 +96,7 @@ - IOCTL(BLKROGET, IOC_R, MK_PTR(TYPE_INT)) - IOCTL(BLKRRPART, 0, TYPE_NULL) - IOCTL(BLKGETSIZE, IOC_R, MK_PTR(TYPE_ULONG)) --#ifdef BLKGETSIZE64 - IOCTL(BLKGETSIZE64, IOC_R, MK_PTR(TYPE_ULONGLONG)) --#endif - IOCTL(BLKFLSBUF, 0, TYPE_NULL) - IOCTL(BLKRASET, 0, TYPE_INT) - IOCTL(BLKRAGET, IOC_R, MK_PTR(TYPE_LONG)) -@@ -107,33 +105,15 @@ - IOCTL_SPECIAL(BLKPG, IOC_W, do_ioctl_blkpg, - MK_PTR(MK_STRUCT(STRUCT_blkpg_ioctl_arg))) - --#ifdef BLKDISCARD - IOCTL(BLKDISCARD, IOC_W, MK_PTR(MK_ARRAY(TYPE_ULONGLONG, 2))) --#endif --#ifdef BLKIOMIN - IOCTL(BLKIOMIN, IOC_R, MK_PTR(TYPE_INT)) --#endif --#ifdef BLKIOOPT - IOCTL(BLKIOOPT, IOC_R, MK_PTR(TYPE_INT)) --#endif --#ifdef BLKALIGNOFF - IOCTL(BLKALIGNOFF, IOC_R, MK_PTR(TYPE_INT)) --#endif --#ifdef BLKPBSZGET - IOCTL(BLKPBSZGET, IOC_R, MK_PTR(TYPE_INT)) --#endif --#ifdef BLKDISCARDZEROES - IOCTL(BLKDISCARDZEROES, IOC_R, MK_PTR(TYPE_INT)) --#endif --#ifdef BLKSECDISCARD - IOCTL(BLKSECDISCARD, IOC_W, MK_PTR(MK_ARRAY(TYPE_ULONGLONG, 2))) --#endif --#ifdef BLKROTATIONAL - IOCTL(BLKROTATIONAL, IOC_R, MK_PTR(TYPE_SHORT)) --#endif --#ifdef BLKZEROOUT - IOCTL(BLKZEROOUT, IOC_W, MK_PTR(MK_ARRAY(TYPE_ULONGLONG, 2))) --#endif - - IOCTL(FDMSGON, 0, TYPE_NULL) - IOCTL(FDMSGOFF, 0, TYPE_NULL) -@@ -149,17 +129,13 @@ - IOCTL(FDTWADDLE, 0, TYPE_NULL) - IOCTL(FDEJECT, 0, TYPE_NULL) - --#ifdef FIBMAP - IOCTL(FIBMAP, IOC_W | IOC_R, MK_PTR(TYPE_LONG)) --#endif - #ifdef FICLONE - IOCTL(FICLONE, IOC_W, TYPE_INT) - IOCTL(FICLONERANGE, IOC_W, MK_PTR(MK_STRUCT(STRUCT_file_clone_range))) - #endif - --#ifdef FIGETBSZ - IOCTL(FIGETBSZ, IOC_R, MK_PTR(TYPE_LONG)) --#endif - #ifdef CONFIG_FIEMAP - IOCTL_SPECIAL(FS_IOC_FIEMAP, IOC_W | IOC_R, do_ioctl_fs_ioc_fiemap, - MK_PTR(MK_STRUCT(STRUCT_fiemap))) diff --git a/linux-user-use-max-as-default-CPU-model-.patch b/linux-user-use-max-as-default-CPU-model-.patch deleted file mode 100644 index 6eefe1c..0000000 --- a/linux-user-use-max-as-default-CPU-model-.patch +++ /dev/null @@ -1,67 +0,0 @@ -From: Dario Faggioli -Date: Wed, 28 Sep 2022 13:13:08 +0200 -Subject: linux-user: use "max" as default CPU model, to deal with x86_64-v2 - binaries - -Git-commit: 0000000000000000000000000000000000000000 -References: bsc#1203684 - -The old "qemu64" model cannot run binaries compiled for, e.g., -x86_64-v2. This could be a problem because a couple of major -distribution are switching to that as their baseline. In fact, errors -like this one can be observed (if 'ls' is such a binary): - - x86_64-linux-user/qemu-x86_64 /usr/bin/ls - qemu: uncaught target signal 4 (Illegal instruction) - core dumped - -Instead, using "max" as the CPU model, everything (of course) works: - - export QEMU_CPU=max - x86_64-linux-user/qemu-x86_64 /usr/bin/ls - -This has been and is being discussed in several places, e.g.: -https://lore.kernel.org/qemu-devel/20210607135843.196595-1-berrange@redhat.com/ -https://bugzilla.redhat.com/show_bug.cgi?id=2079915 -https://bugzilla.redhat.com/show_bug.cgi?id=2080133 -http:s//github.com/containers/podman/issues/14314 - -However, these are all about system-emulation/virtualization, which is -indeed quite tricky. In fact, what would be a good alternative default -CPU model to pick, in that case? At the same time, however, it's also -less problematic. In fact, people using QEMU for that purpose are likely -in one of the following two situations already: -1) they're starting QEMU manually, with a long and complex command line, - for whatever specific reason. In that case, adding '-cpu host' (or - whatever) to such long and complex command line, isn't a big deal; -2) they're using QEMU via libvirt, which has its own fancy and - convenient ways of determining the best CPU model, and the default - "qemu64" one is pretty much never being used. - -The case of Linux user emulation, however, it's a bit more tricky, as -it's less convenient to actually pass any parameter to QEMU at all, in -this scenario, so having to add one might be complicated. The same goes -for having to define the QEMU_CPU environment variable. When doing Linux -userspace emulation, though, a lot of the downsides of just using '-cpu -host' as the default are non-issue (e.g., we do not need to think about -migration!). - -Therefore, while the topic remain complex and unsolved for system -emulation, for Linux user, let's just switch and be happy. - -Signed-off-by: Dario Faggioli ---- - linux-user/x86_64/target_elf.h | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/linux-user/x86_64/target_elf.h b/linux-user/x86_64/target_elf.h -index 7b76a90de8805a84b4983f3b2bb9..3f628f8d66197faae698cbec4e24 100644 ---- a/linux-user/x86_64/target_elf.h -+++ b/linux-user/x86_64/target_elf.h -@@ -9,6 +9,6 @@ - #define X86_64_TARGET_ELF_H - static inline const char *cpu_get_model(uint32_t eflags) - { -- return "qemu64"; -+ return "max"; - } - #endif diff --git a/linux-user-use-target_ulong.patch b/linux-user-use-target_ulong.patch deleted file mode 100644 index 02f6872..0000000 --- a/linux-user-use-target_ulong.patch +++ /dev/null @@ -1,85 +0,0 @@ -From: Alexander Graf -Date: Tue, 9 Oct 2012 09:06:49 +0200 -Subject: linux-user: use target_ulong - -Linux syscalls pass pointers or data length or other information of that sort -to the kernel. This is all stuff you don't want to have sign extended. -Otherwise a host 64bit variable parameter with a size parameter will extend -it to a negative number, breaking lseek for example. - -Pass syscall arguments as ulong always. - -Signed-off-by: Alexander Graf -[JRZ: changes from linux-user/qemu.h wass moved to linux-user/user-internals.h] -Signed-off-by: Jose R Ziviani -[DF: Forward port, i.e., use ulong for do_prctl too] -Signed-off-by: Dario Faggioli ---- - linux-user/syscall.c | 20 ++++++++++---------- - linux-user/user-internals.h | 8 ++++---- - 2 files changed, 14 insertions(+), 14 deletions(-) - -diff --git a/linux-user/syscall.c b/linux-user/syscall.c -index b746511fe5ba1c03cf44a14ed811..de782620fe3c9169a58e442a6f05 100644 ---- a/linux-user/syscall.c -+++ b/linux-user/syscall.c -@@ -6405,8 +6405,8 @@ static abi_long do_prctl_inval1(CPUArchState *env, abi_long arg2) - #define do_prctl_sme_set_vl do_prctl_inval1 - #endif - --static abi_long do_prctl(CPUArchState *env, abi_long option, abi_long arg2, -- abi_long arg3, abi_long arg4, abi_long arg5) -+static abi_long do_prctl(CPUArchState *env, abi_ulong option, abi_ulong arg2, -+ abi_ulong arg3, abi_ulong arg4, abi_ulong arg5) - { - abi_long ret; - -@@ -8581,10 +8581,10 @@ _syscall2(int, pivot_root, const char *, new_root, const char *, put_old) - * of syscall results, can be performed. - * All errnos that do_syscall() returns must be -TARGET_. - */ --static abi_long do_syscall1(CPUArchState *cpu_env, int num, abi_long arg1, -- abi_long arg2, abi_long arg3, abi_long arg4, -- abi_long arg5, abi_long arg6, abi_long arg7, -- abi_long arg8) -+static abi_long do_syscall1(CPUArchState *cpu_env, int num, abi_ulong arg1, -+ abi_ulong arg2, abi_ulong arg3, abi_ulong arg4, -+ abi_ulong arg5, abi_ulong arg6, abi_ulong arg7, -+ abi_ulong arg8) - { - CPUState *cpu = env_cpu(cpu_env); - abi_long ret; -@@ -13203,10 +13203,10 @@ static abi_long do_syscall1(CPUArchState *cpu_env, int num, abi_long arg1, - return ret; - } - --abi_long do_syscall(CPUArchState *cpu_env, int num, abi_long arg1, -- abi_long arg2, abi_long arg3, abi_long arg4, -- abi_long arg5, abi_long arg6, abi_long arg7, -- abi_long arg8) -+abi_long do_syscall(CPUArchState *cpu_env, int num, abi_ulong arg1, -+ abi_ulong arg2, abi_ulong arg3, abi_ulong arg4, -+ abi_ulong arg5, abi_ulong arg6, abi_ulong arg7, -+ abi_ulong arg8) - { - CPUState *cpu = env_cpu(cpu_env); - abi_long ret; -diff --git a/linux-user/user-internals.h b/linux-user/user-internals.h -index 0280e76addda504ea9745a17324b..1026e09da8caecf3e74159ea319e 100644 ---- a/linux-user/user-internals.h -+++ b/linux-user/user-internals.h -@@ -59,10 +59,10 @@ int info_is_fdpic(struct image_info *info); - - void target_set_brk(abi_ulong new_brk); - void syscall_init(void); --abi_long do_syscall(CPUArchState *cpu_env, int num, abi_long arg1, -- abi_long arg2, abi_long arg3, abi_long arg4, -- abi_long arg5, abi_long arg6, abi_long arg7, -- abi_long arg8); -+abi_long do_syscall(CPUArchState *cpu_env, int num, abi_ulong arg1, -+ abi_ulong arg2, abi_ulong arg3, abi_ulong arg4, -+ abi_ulong arg5, abi_ulong arg6, abi_ulong arg7, -+ abi_ulong arg8); - extern __thread CPUState *thread_cpu; - G_NORETURN void cpu_loop(CPUArchState *env); - abi_long get_errno(abi_long ret); diff --git a/meson-enforce-a-minimum-Linux-kernel-hea.patch b/meson-enforce-a-minimum-Linux-kernel-hea.patch deleted file mode 100644 index 4b83032..0000000 --- a/meson-enforce-a-minimum-Linux-kernel-hea.patch +++ /dev/null @@ -1,62 +0,0 @@ -From: =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= -Date: Tue, 4 Oct 2022 10:32:05 +0100 -Subject: meson: enforce a minimum Linux kernel headers version >= 4.18 -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Git-commit: 0000000000000000000000000000000000000000 -Refereces: bsc#1204001 - -Various areas of QEMU have a dependency on Linux kernel header -definitions. This falls under the scope of our supported platforms -matrix, but historically we've not checked for a minimum kernel -headers version. This has made it unclear when we can drop support -for older kernel headers. - - * Alpine 3.14: 5.10 - * CentOS 8: 4.18 - * CentOS 9: 5.14 - * Debian 10: 4.19 - * Debian 11: 5.10 - * Fedora 35: 5.19 - * Fedora 36: 5.19 - * OpenSUSE 15.3: 5.3.0 - * Ubuntu 20.04: 5.4 - * Ubuntu 22.04: 5.15 - -The above ignores the 3rd version digit since distros update their -packages periodically and such updates don't generally affect public -APIs to the extent that it matters for our build time check. - -Overall, we can set the baseline to 4.18 currently. - -Signed-off-by: Daniel P. Berrangé -Signed-off-by: Dario Faggioli ---- - meson.build | 12 ++++++++++++ - 1 file changed, 12 insertions(+) - -diff --git a/meson.build b/meson.build -index 41f693a822a7ec58085bb53a8518..6641e86c0107906bb07d6b35d54a 100644 ---- a/meson.build -+++ b/meson.build -@@ -248,6 +248,18 @@ if targetos == 'linux' - add_project_arguments('-isystem', meson.current_source_dir() / 'linux-headers', - '-isystem', 'linux-headers', - language: ['c', 'cpp']) -+ -+ if not cc.compiles(''' -+ #include -+ int main(void) { -+#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 18, 0) -+#error "QEMU requires Linux kernel headers version >= 4.18.0" -+#endif -+ return 0; -+ }''') -+ error('QEMU requires Linux kernel headers version >= 4.18.0') -+endif -+ - endif - - add_project_arguments('-iquote', '.', diff --git a/meson-install-ivshmem-client-and-ivshmem.patch b/meson-install-ivshmem-client-and-ivshmem.patch deleted file mode 100644 index 52ddbb7..0000000 --- a/meson-install-ivshmem-client-and-ivshmem.patch +++ /dev/null @@ -1,32 +0,0 @@ -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 ce8dcca84ddb23de1d8eaa813f5a..bc77336258302e0f7a962ef47ed6 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'), genh, - 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 c6c3c82e89f363e1929bfa08e318..185879a0c6ce71b1272a7ef6ce4d 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'), genh, - dependencies: [qemuutil, rt], - build_by_default: targetos == 'linux', -- install: false) -+ install: true) diff --git a/meson-remove-pkgversion-from-CONFIG_STAM.patch b/meson-remove-pkgversion-from-CONFIG_STAM.patch deleted file mode 100644 index e90604f..0000000 --- a/meson-remove-pkgversion-from-CONFIG_STAM.patch +++ /dev/null @@ -1,35 +0,0 @@ -From: Dario Faggioli -Date: Tue, 20 Sep 2022 09:10:59 +0200 -Subject: meson: remove $pkgversion from CONFIG_STAMP input to broaden - compatibility - -Git-commit: 0000000000000000000000000000000000000000 - -As part of the effort to close the gap with Leap I think we are fine -removing the $pkgversion component to creating a unique CONFIG_STAMP. -This stamp is only used in creating a unique symbol used in ensuring the -dynamically loaded modules correspond correctly to the loading qemu. -The default inputs to producing this unique symbol are somewhat reasonable -as a generic mechanism, but specific packaging and maintenance practices -might require the default to be modified for best use. This is an example -of that. - -Signed-off-by: Bruce Rogers -Signed-off-by: Dario Faggioli ---- - meson.build | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/meson.build b/meson.build -index 20fddbd707c91c1baee604202fb1..41f693a822a7ec58085bb53a8518 100644 ---- a/meson.build -+++ b/meson.build -@@ -1736,7 +1736,7 @@ config_host_data.set_quoted('CONFIG_SYSCONFDIR', get_option('prefix') / get_opti - if config_host.has_key('CONFIG_MODULES') - config_host_data.set('CONFIG_STAMP', run_command( - meson.current_source_dir() / 'scripts/qemu-stamp.py', -- meson.project_version(), get_option('pkgversion'), '--', -+ meson.project_version(), '--', - meson.current_source_dir() / 'configure', - capture: true, check: true).stdout().strip()) - endif diff --git a/net-tulip-Restrict-DMA-engine-to-memorie.patch b/net-tulip-Restrict-DMA-engine-to-memorie.patch deleted file mode 100644 index f521bad..0000000 --- a/net-tulip-Restrict-DMA-engine-to-memorie.patch +++ /dev/null @@ -1,60 +0,0 @@ -From: Zheyu Ma -Date: Sun, 21 Aug 2022 20:43:43 +0800 -Subject: net: tulip: Restrict DMA engine to memories - -Git-commit: 36a894aeb64a2e02871016da1c37d4a4ca109182 -References: bsc#1202665, CVE-2022-2962 - -The DMA engine is started by I/O access and then itself accesses the -I/O registers, triggering a reentrancy bug. - -The following log can reveal it: -==5637==ERROR: AddressSanitizer: stack-overflow - #0 0x5595435f6078 in tulip_xmit_list_update qemu/hw/net/tulip.c:673 - #1 0x5595435f204a in tulip_write qemu/hw/net/tulip.c:805:13 - #2 0x559544637f86 in memory_region_write_accessor qemu/softmmu/memory.c:492:5 - #3 0x5595446379fa in access_with_adjusted_size qemu/softmmu/memory.c:554:18 - #4 0x5595446372fa in memory_region_dispatch_write qemu/softmmu/memory.c - #5 0x55954468b74c in flatview_write_continue qemu/softmmu/physmem.c:2825:23 - #6 0x559544683662 in flatview_write qemu/softmmu/physmem.c:2867:12 - #7 0x5595446833f3 in address_space_write qemu/softmmu/physmem.c:2963:18 - #8 0x5595435fb082 in dma_memory_rw_relaxed qemu/include/sysemu/dma.h:87:12 - #9 0x5595435fb082 in dma_memory_rw qemu/include/sysemu/dma.h:130:12 - #10 0x5595435fb082 in dma_memory_write qemu/include/sysemu/dma.h:171:12 - #11 0x5595435fb082 in stl_le_dma qemu/include/sysemu/dma.h:272:1 - #12 0x5595435fb082 in stl_le_pci_dma qemu/include/hw/pci/pci.h:910:1 - #13 0x5595435fb082 in tulip_desc_write qemu/hw/net/tulip.c:101:9 - #14 0x5595435f7e3d in tulip_xmit_list_update qemu/hw/net/tulip.c:706:9 - #15 0x5595435f204a in tulip_write qemu/hw/net/tulip.c:805:13 - -Fix this bug by restricting the DMA engine to memories regions. - -Signed-off-by: Zheyu Ma -Signed-off-by: Jason Wang -Signed-off-by: Dario Faggioli ---- - hw/net/tulip.c | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/hw/net/tulip.c b/hw/net/tulip.c -index 097e905bec296dd1c5e96771ef63..b9e42c322ab1fb92416adfc5fda9 100644 ---- a/hw/net/tulip.c -+++ b/hw/net/tulip.c -@@ -70,7 +70,7 @@ static const VMStateDescription vmstate_pci_tulip = { - static void tulip_desc_read(TULIPState *s, hwaddr p, - struct tulip_descriptor *desc) - { -- const MemTxAttrs attrs = MEMTXATTRS_UNSPECIFIED; -+ const MemTxAttrs attrs = { .memory = true }; - - if (s->csr[0] & CSR0_DBO) { - ldl_be_pci_dma(&s->dev, p, &desc->status, attrs); -@@ -88,7 +88,7 @@ static void tulip_desc_read(TULIPState *s, hwaddr p, - static void tulip_desc_write(TULIPState *s, hwaddr p, - struct tulip_descriptor *desc) - { -- const MemTxAttrs attrs = MEMTXATTRS_UNSPECIFIED; -+ const MemTxAttrs attrs = { .memory = true }; - - if (s->csr[0] & CSR0_DBO) { - stl_be_pci_dma(&s->dev, p, desc->status, attrs); diff --git a/qboot-add-cross.ini-file-to-handle-aarch.patch b/qboot-add-cross.ini-file-to-handle-aarch.patch deleted file mode 100644 index 078b4e1..0000000 --- a/qboot-add-cross.ini-file-to-handle-aarch.patch +++ /dev/null @@ -1,23 +0,0 @@ -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-7.1.0.tar.xz b/qemu-7.1.0.tar.xz deleted file mode 100644 index b827170..0000000 --- a/qemu-7.1.0.tar.xz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:a0634e536bded57cf38ec8a751adb124b89c776fe0846f21ab6c6728f1cbbbe6 -size 121833004 diff --git a/qemu-7.1.0.tar.xz.sig b/qemu-7.1.0.tar.xz.sig deleted file mode 100644 index 17238fddcd732836234d3a0dc182fcaf1c1f06d7370aad66c05c736be35b7c49..0000000000000000000000000000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 310 zcmV-60m=S}0W$;u0SW*e79j-AtjXb3H0!IlEkB?$Q_0Tp2(^R-0%HzMsQ?NI5HnNB z&hZGfgmFs;{wd`^KXC$?fNOoWo%wEPbtom6p#UL1@c`d3?5ugQPjXKK| zcmc|nhN&qGu|S%^EClUB65i_T%{*M5j9meGj1}YnMx9P#PP{fxr`Q<%K2c1XGW0S6 z8J_W^7<~qMBuA3Y4HfCnntFX4C^|m5YNsJq44yvS!$+VJfzU*2r*gZa3AibL4#H9? zWgdNAX(raqe|0Y(qeaSFQ^<^V~c5z~wJ0)qn0ZldpOPVoFsdSyn!vOm}h_FGx2gyi&CWF_Pgx@~sp> Iu{3#`_7XSbN diff --git a/qemu-9.0.0.obscpio b/qemu-9.0.0.obscpio new file mode 100644 index 0000000..85f1894 --- /dev/null +++ b/qemu-9.0.0.obscpio @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c8a73ea50fffa698bd1e6ac4e6dc6dd0c397d03b519754974b739887f18b1a6c +size 849561615 diff --git a/qemu-binfmt-conf-Modify-default-path.patch b/qemu-binfmt-conf-Modify-default-path.patch deleted file mode 100644 index ec2bf26..0000000 --- a/qemu-binfmt-conf-Modify-default-path.patch +++ /dev/null @@ -1,27 +0,0 @@ -From: =?UTF-8?q?Andreas=20F=C3=A4rber?= -Date: Wed, 10 Aug 2016 19:00:24 +0200 -Subject: qemu-binfmt-conf: Modify default path -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Change QEMU_PATH from /usr/local/bin to /usr/bin prefix. - -Signed-off-by: Andreas Färber ---- - scripts/qemu-binfmt-conf.sh | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/scripts/qemu-binfmt-conf.sh b/scripts/qemu-binfmt-conf.sh -index 6ef9f118d9ffe39cfadcdf54168e..4115eaa121aabc17a417f5ef4955 100755 ---- a/scripts/qemu-binfmt-conf.sh -+++ b/scripts/qemu-binfmt-conf.sh -@@ -341,7 +341,7 @@ BINFMT_SET=qemu_register_interpreter - SYSTEMDDIR="/etc/binfmt.d" - DEBIANDIR="/usr/share/binfmts" - --QEMU_PATH=/usr/local/bin -+QEMU_PATH=/usr/bin - CREDENTIAL=no - PERSISTENT=no - PRESERVE_ARG0=no diff --git a/qemu-bridge-helper-reduce-security-profi.patch b/qemu-bridge-helper-reduce-security-profi.patch deleted file mode 100644 index 5526c2b..0000000 --- a/qemu-bridge-helper-reduce-security-profi.patch +++ /dev/null @@ -1,80 +0,0 @@ -From: Bruce Rogers -Date: Tue, 2 Aug 2016 11:36:02 -0600 -Subject: qemu-bridge-helper: reduce security profile -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -References: boo#988279 - -Change from using glib alloc and free routines to those -from libc. Also perform safety measure of dropping privs -to user if configured no-caps. - -Signed-off-by: Bruce Rogers -[AF: Rebased for v2.7.0-rc2] -Signed-off-by: Andreas Färber ---- - qemu-bridge-helper.c | 28 +++++++++++++++++++++++++--- - 1 file changed, 25 insertions(+), 3 deletions(-) - -diff --git a/qemu-bridge-helper.c b/qemu-bridge-helper.c -index a26e1663f02de3c99198df6e2080..f3483b0a344da4f82b6710551390 100644 ---- a/qemu-bridge-helper.c -+++ b/qemu-bridge-helper.c -@@ -124,7 +124,12 @@ static int parse_acl_file(const char *filename, ACLList *acl_list) - } - - if (strcmp(cmd, "deny") == 0) { -- acl_rule = g_malloc(sizeof(*acl_rule)); -+ acl_rule = calloc(1, sizeof(*acl_rule)); -+ if (!acl_rule) { -+ fclose(f); -+ errno = ENOMEM; -+ return -1; -+ } - if (strcmp(arg, "all") == 0) { - acl_rule->type = ACL_DENY_ALL; - } else { -@@ -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) { -- acl_rule = g_malloc(sizeof(*acl_rule)); -+ acl_rule = calloc(1, sizeof(*acl_rule)); -+ if (!acl_rule) { -+ fclose(f); -+ errno = ENOMEM; -+ return -1; -+ } - if (strcmp(arg, "all") == 0) { - acl_rule->type = ACL_ALLOW_ALL; - } else { -@@ -438,6 +448,18 @@ int main(int argc, char **argv) - goto cleanup; - } - -+#ifndef CONFIG_LIBCAP -+ /* -+ * avoid sending the fd as root user if running suid to not fool -+ * peer credentials to daemons that dont expect that -+ */ -+ if (setuid(getuid()) < 0) { -+ fprintf(stderr, "Failed to drop privileges.\n"); -+ ret = EXIT_FAILURE; -+ goto cleanup; -+ } -+#endif -+ - /* write fd to the domain socket */ - if (send_fd(unixfd, fd) == -1) { - fprintf(stderr, "failed to write fd to unix socket: %s\n", -@@ -459,7 +481,7 @@ cleanup: - } - while ((acl_rule = QSIMPLEQ_FIRST(&acl_list)) != NULL) { - QSIMPLEQ_REMOVE_HEAD(&acl_list, entry); -- g_free(acl_rule); -+ free(acl_rule); - } - - return ret; diff --git a/qemu-guest-agent.service b/qemu-guest-agent.service deleted file mode 100644 index 6aa10c4..0000000 --- a/qemu-guest-agent.service +++ /dev/null @@ -1,14 +0,0 @@ -[Unit] -Description=QEMU Guest Agent -Documentation=http://wiki.qemu.org/Features/GuestAgent -BindsTo=dev-virtio\x2dports-org.qemu.guest_agent.0.device -After=dev-virtio\x2dports-org.qemu.guest_agent.0.device - -[Service] -Type=simple -ExecStart=-/usr/bin/qemu-ga -p /dev/virtio-ports/org.qemu.guest_agent.0 -Restart=always -RestartSec=0 - -[Install] -WantedBy=dev-virtio\x2dports-org.qemu.guest_agent.0.device diff --git a/qemu-ifup b/qemu-ifup deleted file mode 100644 index 293133a..0000000 --- a/qemu-ifup +++ /dev/null @@ -1,23 +0,0 @@ -#!/bin/sh - -# sample bridge qemu-ifup script - -echo 'configuring qemu network with bridge for' $* - -# If bridge is not specified, try device with default route. -bridge=$2 -if [ -z "$bridge" ]; then - bridge=$(/usr/sbin/ip route list | /usr/bin/awk '/^default / { print $5 }') -fi - -# Exit if $bridge is not a bridge. Exit with 0 status -# so qemu process is not terminated and provide message -# about failure to setup network. -if [ ! -e "/sys/class/net/${bridge}/bridge" ] -then - echo "WARNING! ${bridge} is not a bridge. qemu-ifup exiting. VM may not have a functioning networking stack." - exit 0 -fi - -/usr/sbin/ip link set $1 up -/usr/sbin/ip link set $1 master $bridge || true diff --git a/qemu-kvm.1.gz b/qemu-kvm.1.gz deleted file mode 100644 index 3bb1739..0000000 --- a/qemu-kvm.1.gz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:b1b92b2e22f846e4f7c692d8466f3865fbb95c2523aee7fc0a06524a39061e94 -size 47 diff --git a/qemu-linux-user.spec b/qemu-linux-user.spec new file mode 100644 index 0000000..8161708 --- /dev/null +++ b/qemu-linux-user.spec @@ -0,0 +1,352 @@ +# +# spec file for package qemu-linux-user +# +# Copyright (c) 2024 SUSE LLC +# +# All modifications and additions to the file contributed by third parties +# remain the property of their copyright owners, unless otherwise agreed +# upon. The license for this file, and modifications and additions to the +# file, is the same license as for the pristine package itself (unless the +# license for the pristine package is not an Open Source License, in which +# case the license is the MIT License). An "Open Source License" is a +# license that conforms to the Open Source Definition (Version 1.9) +# published by the Open Source Initiative. + +# Please submit bugfixes or comments via https://bugs.opensuse.org/ +# + + +%include %{_sourcedir}/common.inc + +%ifarch %ix86 x86_64 s390x +%define legacy_qemu_kvm 1 +%endif + +Name: qemu-linux-user +URL: https://www.qemu.org/ +Summary: CPU emulator for user space +License: BSD-2-Clause AND BSD-3-Clause AND GPL-2.0-only AND GPL-2.0-or-later AND LGPL-2.1-or-later AND MIT +Group: System/Emulators/PC +Version: 9.0.1 +Release: 0 +Source0: qemu-%{version}.tar.xz +Source1: common.inc +Source200: qemu-rpmlintrc +Source303: README.PACKAGING +Source1000: qemu-rpmlintrc +BuildRoot: %{_tmppath}/%{name}-%{version}-build +BuildRequires: bison +BuildRequires: glib2-devel-static >= 2.56 +BuildRequires: glibc-devel-static +BuildRequires: (pcre-devel-static if glib2-devel-static < 2.73 else pcre2-devel-static) +# passing filelist check for /usr/lib/binfmt.d +BuildRequires: systemd +BuildRequires: zlib-devel-static +# we must not install the qemu-linux-user package when under QEMU build +%if 0%{?qemu_user_space_build:1} +#!BuildIgnore: post-build-checks +%endif +BuildRequires: discount +BuildRequires: fdupes +BuildRequires: flex +BuildRequires: gcc-c++ +BuildRequires: meson +BuildRequires: ninja >= 1.7 +%if 0%{?suse_version} >= 1600 +BuildRequires: python3-Sphinx +BuildRequires: python3-base >= 3.8 +%else +BuildRequires: python311-Sphinx +BuildRequires: python311-base +%endif + +%description +QEMU provides CPU emulation along with other related capabilities. This package +provides programs to run user space binaries and libraries meant for another +architecture. The syscall interface is intercepted and execution below the +syscall layer occurs on the native hardware and operating system. + +%files +%doc README.rst VERSION +%license COPYING COPYING.LIB LICENSE +%_bindir/qemu-aarch64 +%_bindir/qemu-aarch64_be +%_bindir/qemu-alpha +%_bindir/qemu-arm +%_bindir/qemu-armeb +%_bindir/qemu-cris +%_bindir/qemu-hexagon +%_bindir/qemu-hppa +%_bindir/qemu-i386 +%_bindir/qemu-loongarch64 +%_bindir/qemu-m68k +%_bindir/qemu-microblaze +%_bindir/qemu-microblazeel +%_bindir/qemu-mips +%_bindir/qemu-mips64 +%_bindir/qemu-mips64el +%_bindir/qemu-mipsel +%_bindir/qemu-mipsn32 +%_bindir/qemu-mipsn32el +%_bindir/qemu-nios2 +%_bindir/qemu-or1k +%_bindir/qemu-ppc +%_bindir/qemu-ppc64 +%_bindir/qemu-ppc64le +%_bindir/qemu-riscv32 +%_bindir/qemu-riscv64 +%_bindir/qemu-s390x +%_bindir/qemu-sh4 +%_bindir/qemu-sh4eb +%_bindir/qemu-sparc +%_bindir/qemu-sparc32plus +%_bindir/qemu-sparc64 +%_bindir/qemu-x86_64 +%_bindir/qemu-xtensa +%_bindir/qemu-xtensaeb +%_sbindir/qemu-binfmt-conf.sh +%_prefix/lib/binfmt.d/qemu-*.conf + +%prep +%autosetup -n qemu-%{version} -p1 + +# We have the meson subprojects there, but as submodules (because OBS +# SCM bridge can handle the latter, but not the former) so we need to +# apply the layering of the packagefiles manually +meson subprojects packagefiles --apply berkeley-testfloat-3 +meson subprojects packagefiles --apply berkeley-softfloat-3 + +%build + +%define rpmfilesdir %{_builddir}/qemu-%{version}/rpm + +%if %{legacy_qemu_kvm} +# FIXME: Why are we copying the s390 specific one? +cp %{rpmfilesdir}/supported.s390.txt docs/supported.rst +sed -i '/^\ \ \ about\/index.*/i \ \ \ supported.rst' docs/index.rst +%endif + +find . -iname ".git" -exec rm -rf {} + + +mkdir -p %blddir +cd %blddir + +# We define a few general and common options and then we disable +# pretty much everything. Afterwards, there is a section for each +# of the flavors where we explicitly enable all the feature we want +# for them. + +# TODO: Check whether we want to enable the followings: +# * avx512f +# * debug-info +# * fuse +# * malloc-trim +# * multiprocess +# * qom-cast-debug +# * trace-backends=dtrace +# +# Fedora has avx2 enabled for ix86, while we can't (I tried). Guess it's +# because, for them, ix86 == i686 (while for us it's i586). + +# Let's try to stick to _FORTIFY_SOURCE=2 for now +EXTRA_CFLAGS="$(echo %{optflags} | sed -E 's/-[A-Z]?_FORTIFY_SOURCE[=]?[0-9]*//g') -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -Wno-error" + +%srcdir/configure \ +%if 0%{?suse_version} >= 1600 + --python=%_bindir/python3 \ +%else + --python=%_bindir/python3.11 \ +%endif + --docdir=%_docdir \ + --datadir=%_datadir \ + --extra-cflags="${EXTRA_CFLAGS}" \ + --firmwarepath=%_datadir/%name \ + --libdir=%_libdir \ + --libexecdir=%_libexecdir \ + --localstatedir=%_localstatedir \ + --prefix=%_prefix \ + --sysconfdir=%_sysconfdir \ + --with-pkgversion="%(echo '%{distro}' | sed 's/ (.*)//')" \ + --disable-af-xdp \ + --disable-alsa \ + --disable-attr \ + --disable-auth-pam \ + --disable-avx2 \ + --disable-avx512f \ + --disable-block-drv-whitelist-in-tools \ + --disable-bochs \ + --disable-bpf \ + --disable-brlapi \ + --disable-bsd-user \ + --disable-bzip2 \ + --disable-cap-ng \ + --disable-capstone \ + --disable-cfi \ + --disable-cfi-debug \ + --disable-cloop \ + --disable-cocoa \ + --disable-coreaudio \ + --disable-coroutine-pool \ + --disable-crypto-afalg \ + --disable-curl \ + --disable-curses \ + --disable-dbus-display \ + --disable-debug-info \ + --disable-debug-mutex \ + --disable-debug-tcg \ + --disable-dmg \ + --disable-docs \ + --disable-download \ + --disable-dsound \ + --disable-fdt \ + --disable-fuse \ + --disable-fuse-lseek \ + --disable-gcrypt \ + --disable-gettext \ + --disable-gio \ + --disable-glusterfs \ + --disable-gnutls \ + --disable-gtk \ + --disable-guest-agent \ + --disable-guest-agent-msi \ + --disable-hv-balloon \ + --disable-hvf \ + --disable-iconv \ + --disable-jack \ + --disable-kvm \ + --disable-l2tpv3 \ + --disable-libdaxctl \ + --disable-libiscsi \ + --disable-libkeyutils \ + --disable-libnfs \ + --disable-libpmem \ + --disable-libssh \ + --disable-libudev \ + --disable-libusb \ + --disable-linux-aio \ + --disable-linux-io-uring \ + --disable-linux-user \ + --disable-live-block-migration \ + --disable-lto \ + --disable-lzfse \ + --disable-lzo \ + --disable-malloc-trim \ + --disable-membarrier \ + --disable-module-upgrades \ + --disable-modules \ + --disable-mpath \ + --disable-multiprocess \ + --disable-netmap \ + --disable-nettle \ + --disable-numa \ + --disable-nvmm \ + --disable-opengl \ + --disable-oss \ + --disable-pa \ + --disable-parallels \ + --disable-pie \ + --disable-pipewire \ + --disable-pixman \ + --disable-plugins \ + --disable-png \ + --disable-pvrdma \ + --disable-qcow1 \ + --disable-qed \ + --disable-qom-cast-debug \ + --disable-rbd \ + --disable-rdma \ + --disable-relocatable \ + --disable-replication \ + --disable-rng-none \ + --disable-rutabaga-gfx \ + --disable-safe-stack \ + --disable-sanitizers \ + --disable-sdl \ + --disable-sdl-image \ + --disable-seccomp \ + --disable-selinux \ + --disable-slirp \ + --disable-slirp-smbd \ + --disable-smartcard \ + --disable-snappy \ + --disable-sparse \ + --disable-spice \ + --disable-spice-protocol \ + --disable-strip \ + --disable-system \ + --disable-tcg \ + --disable-tcg-interpreter \ + --disable-tools \ + --disable-tpm \ + --disable-u2f \ + --disable-usb-redir \ + --disable-user \ + --disable-vde \ + --disable-vdi \ + --disable-vhost-crypto \ + --disable-vhost-kernel \ + --disable-vhost-net \ + --disable-vhost-user \ + --disable-vhost-user-blk-server \ + --disable-vhost-vdpa \ + --disable-virglrenderer \ + --disable-virtfs \ + --disable-vnc \ + --disable-vnc-jpeg \ + --disable-vnc-sasl \ + --disable-vte \ + --disable-vvfat \ + --disable-werror \ + --disable-whpx \ + --disable-xen \ + --disable-xen-pci-passthrough \ + --disable-xkbcommon \ + --disable-zstd \ + --without-default-devices \ +%if %{with system_membarrier} + --enable-membarrier \ +%endif +%if %{with malloc_trim} + --enable-malloc-trim \ +%endif +%if "%{_lto_cflags}" != "%{nil}" + --enable-lto \ +%endif + --disable-install-blobs \ + --enable-attr \ + --enable-coroutine-pool \ + --enable-linux-user \ + --enable-selinux \ + --enable-tcg \ + --static + +echo "=== Content of config-host.mak: ===" +cat config-host.mak +echo "=== ===" + +%make_build + +%install +cd %blddir + +%make_build install DESTDIR=%{buildroot} + +rm -rf %{buildroot}%_datadir/qemu/keymaps +unlink %{buildroot}%_datadir/qemu/trace-events-all +install -d -m 755 %{buildroot}%_sbindir +install -m 755 scripts/qemu-binfmt-conf.sh %{buildroot}%_sbindir +install -d -m 755 %{buildroot}%{_prefix}/lib/binfmt.d/ +scripts/qemu-binfmt-conf.sh --systemd ALL --persistent yes --preserve-argv0 yes --exportdir %{buildroot}%{_prefix}/lib/binfmt.d/ + +%fdupes -s %{buildroot} + +%check +cd %blddir + +%ifarch aarch64 %ix86 ppc ppc64 ppc64le riscv64 s390x x86_64 +./qemu-%{qemu_arch} %_bindir/ls > /dev/null +%endif + +%make_build check-softfloat + +%changelog diff --git a/qemu-supportconfig b/qemu-supportconfig deleted file mode 100644 index 97e7044..0000000 --- a/qemu-supportconfig +++ /dev/null @@ -1,81 +0,0 @@ -#!/bin/bash -############################################################# -# Name: Supportconfig Plugin for QEMU/KVM -# Description: Gathers important troubleshooting information -# about QEMU -# Author: Jim Fehlig -############################################################# - -RCFILE="/usr/lib/supportconfig/resources/scplugin.rc" - -if [ -s $RCFILE ]; then - if ! source $RCFILE; then - echo "ERROR: Initializing resource file: $RCFILE" >&2 - exit 1 - fi -fi - -rpm_verify() { - thisrpm="$1" - local ret=0 - - echo - echo "#==[ Validating RPM ]=================================#" - if rpm -q "$thisrpm" >/dev/null 2>&1; then - echo "# rpm -V $thisrpm" - - if rpm -V "$thisrpm"; then - echo "Status: Passed" - else - echo "Status: WARNING" - fi - else - echo "package $thisrpm is not installed" - ret=1 - fi - echo - return $ret -} - -if ! rpm_verify qemu; then - echo "Skipped" - exit 0 -fi - -# skip if the host is xen -echo "#==[ Checking if booted Xen ]=================================#" -if [ -d /proc/xen ] && [ -e /proc/xen/capabilities ] && [ `cat /proc/xen/capabilities` = "control_d" ]; then - echo "Yes" - echo "Skipped" - exit 0 -else - echo "No" - echo -fi - -# basic system information -plugin_command "uname -r" -plugin_command "lscpu" -plugin_command "lspci -v" -plugin_command "lsscsi" -plugin_command "kvm_stat -1" -plugin_command "lsmod | grep ^kvm" -for MODULE in `lsmod | grep ^kvm | cut -d ' ' -f 1`; do - plugin_command "modinfo $MODULE" -done -plugin_command "ps -ef | grep qemu" - -# list contents of common config and image directories -plugin_command "ls -alR /var/lib/libvirt/images/" - -# network-related info often useful for debugging -nm_enabled=$(systemctl is-enabled NetworkManager.service > /dev/null 2>&1; echo $?) -if [ $nm_enabled -eq 0 ]; then - echo "NOTE: NetworkManager should not be enabled on a KVM host" -fi -plugin_command "ip route list" -plugin_command "ip neigh list" -plugin_command "ip link show type bridge" -plugin_command "bridge link show" - -echo "Done" diff --git a/qemu.changes b/qemu.changes index 8e65305..af81dd4 100644 --- a/qemu.changes +++ b/qemu.changes @@ -1,3 +1,994 @@ +------------------------------------------------------------------- +Fri Jun 28 14:39:13 UTC 2024 - dfaggioli@suse.com + + - Update to latest stable release (9.0.1). + Full list of backports here: + https://lore.kernel.org/qemu-devel/1718081053.366429.1238758.nullmailer@tls.msk.ru/ + + A selection of them is reported here too: + Update version for 9.0.1 release + target/loongarch: fix a wrong print in cpu dump + ui/sdl2: Allow host to power down screen + virtio-gpu: fix v2 migration + target/i386: fix SSE and SSE2 feature check + target/i386: fix xsave.flat from kvm-unit-tests + disas/riscv: Decode all of the pmpcfg and pmpaddr CSRs + riscv, gdbstub.c: fix reg_width in ricsv_gen_dynamic_vector_feature() + target/riscv/kvm.c: Fix the hart bit setting of AIA + target/riscv: rvzicbo: Fixup CBO extension register calculation + target/riscv: do not set mtval2 for non guest-page faults + target/riscv: prioritize pmp errors in raise_mmu_exception() + target/riscv: rvv: Remove redudant SEW checking for vector fp narrow/widen instructions + target/riscv: rvv: Check single width operator for vfncvt.rod.f.f.w + target/riscv: rvv: Check single width operator for vector fp widen instructions + target/riscv: rvv: Fix Zvfhmin checking for vfwcvt.f.f.v and vfncvt.f.f.w instructions + target/riscv/cpu.c: fix Zvkb extension config + target/riscv: Fix the element agnostic function problem + target/riscv/kvm: tolerate KVM disable ext errors + target/riscv/kvm: Fix exposure of Zkr + hw/intc/riscv_aplic: APLICs should add child earlier than realize + iotests: test NBD+TLS+iothread + qio: Inherit follow_coroutine_ctx across TLS + ... + +------------------------------------------------------------------- +Fri May 17 11:44:56 UTC 2024 - dfaggioli@suse.com + +- Update to version 9.0.0: + Full changelog here: + https://wiki.qemu.org/ChangeLog/9.0 + Highlights include: + * block: virtio-blk now supports multiqueue where different queues of a + single disk can be processed by different I/O threads + * gdbstub: various improvements such as catching syscalls in user-mode, + support for fork-follow modes, and support for siginfo:read + * memory: preallocation of memory backends can now be handled + concurrently using multiple threads in some cases + * migration: support for "mapped-ram" capability allowing for more + efficient VM snapshots, improved support for zero-page detection, and + checkpoint-restart support for VFIO + * ARM: architectural feature support for ECV (Enhanced Counter Virtualization), + NV (Nested Virtualization), and NV2 (Enhanced Nested + Virtualization) + * ARM: board support for B-L475E-IOT01A IoT node, mp3-an536 (MPS3 dev board + + AN536 firmware), and raspi4b (Raspberry Pi 4 Model B) + * ARM: additional IO/disk/USB/SPI/ethernet controller and timer support for + Freescale i.MX6, Allwinner R40, Banana Pi, npcm7xxx, and virt boards + * HPPA: numerous bug fixes and SeaBIOS-hppa firmware updated to version 16 + * LoongArch: KVM acceleration support, including LSX/LASX vector + extensions + * RISC-V: ISA/extension support for Zacas, amocas, RVA22 profiles, + Zaamo, Zalrsc, Ztso, and more + * RISC-V: SMBIOS support for RISC-V virt machine, ACPI support for + SRAT, SLIT, AIA, PLIC and updated RHCT table support, and numerous fixes + * s390x: Emulation support for CVDG, CVB, CVBY and CVBG instructions, + and fixes for LAE (Load Address Extended) emulation + * and lots more... + +------------------------------------------------------------------- +Thu May 16 14:43:38 UTC 2024 - dfaggioli@suse.com + +- Update to version 8.2.4. Full changelog/backports here: + https://lore.kernel.org/qemu-devel/1715632914.382233.1013785.nullmailer@tls.msk.ru/ + Some of the upstream backports are: + target/sh4: Fix SUBV opcode + target/sh4: Fix ADDV opcode + hw/arm/npcm7xx: Store derivative OTP fuse key in little endian + hw/dmax/xlnx_dpdma: fix handling of address_extension descriptor fields + hw/ufs: Fix buffer overflow bug + tests/avocado: update sunxi kernel from armbian to 6.6.16 + target/loongarch/cpu.c: typo fix: expection + backends/cryptodev-builtin: Fix local_error leaks + nbd/server: Mark negotiation functions as coroutine_fn + nbd/server: do not poll within a coroutine context + linux-user: do_setsockopt: fix SOL_ALG.ALG_SET_KEY + target/riscv/kvm: change timer regs size to u64 + target/riscv/kvm: change KVM_REG_RISCV_FP_D to u64 + target/riscv/kvm: change KVM_REG_RISCV_FP_F to u32 + ... + +------------------------------------------------------------------- +Wed May 08 13:27:40 UTC 2024 - dfaggioli@suse.com + +- Fixes: + * [openSUSE][RPM] Prioritize PA over PipeWire in SLE (bsc#1222218) + * [openSUSE][RPM] Hostname normalization (for repr. build ) done properly (boo#1084909) + +------------------------------------------------------------------- +Tue Apr 30 10:05:32 UTC 2024 - dfaggioli@suse.com + +- Fix a build issue on riscv: + * target/riscv/kvm: rename riscv_reg_id() to riscv_reg_id_ulong() + * target/riscv/kvm: add RISCV_CONFIG_REG() + * target/riscv/kvm: change timer regs size to u64 + * target/riscv/kvm: change KVM_REG_RISCV_FP_D to u64 + * target/riscv/kvm: change KVM_REG_RISCV_FP_F to u32 +- Update to version 8.2.3. Full changelog/backports here: + https://lore.kernel.org/qemu-devel/1713980341.971368.1218343.nullmailer@tls.msk.ru/ + Some of the upstream backports are: + * Update version for 8.2.3 release + * ppc/spapr: Initialize max_cpus limit to SPAPR_IRQ_NR_IPIS. + * ppc/spapr: Introduce SPAPR_IRQ_NR_IPIS to refer IRQ range for CPU IPIs. + * hw/pci-host/ppc440_pcix: Do not expose a bridge device on PCI bus + * hw/isa/vt82c686: Keep track of PIRQ/PINT pins separately + * virtio-pci: fix use of a released vector + * linux-user/x86_64: Handle the vsyscall page in open_self_maps_{2,4} + * hw/audio/virtio-snd: Remove unused assignment + * hw/net/net_tx_pkt: Fix overrun in update_sctp_checksum() + * hw/sd/sdhci: Do not update TRNMOD when Command Inhibit (DAT) is set + * hw/net/lan9118: Fix overflow in MIL TX FIFO + * hw/net/lan9118: Replace magic '2048' value by MIL_TXFIFO_SIZE definition + * backends/cryptodev: Do not abort for invalid session ID + * hw/misc/applesmc: Fix memory leak in reset() handler + * hw/block/nand: Fix out-of-bound access in NAND block buffer + * hw/block/nand: Have blk_load() take unsigned offset and return boolean + * hw/block/nand: Factor nand_load_iolen() method out + * qemu-options: Fix CXL Fixed Memory Window interleave-granularity typo + * hw/virtio/virtio-crypto: Protect from DMA re-entrancy bugs + * hw/char/virtio-serial-bus: Protect from DMA re-entrancy bugs + * hw/display/virtio-gpu: Protect from DMA re-entrancy bugs + * mirror: Don't call job_pause_point() under graph lock (bsc#1224179) + * ...and many more... + +------------------------------------------------------------------- +Thu Apr 18 09:08:17 UTC 2024 - dfaggioli@suse.com + +- Backports and bugfixes: + * hw/net/net_tx_pkt: Fix overrun in update_sctp_checksum() (bsc#1222841, CVE-2024-3567) + * hw/virtio/virtio-crypto: Protect from DMA re-entrancy bugs (bsc#1222843, CVE-2024-3446) + * hw/char/virtio-serial-bus: Protect from DMA re-entrancy bugs (bsc#1222843, CVE-2024-3446) + * hw/display/virtio-gpu: Protect from DMA re-entrancy bugs (bsc#1222843, CVE-2024-3446) + * hw/virtio: Introduce virtio_bh_new_guarded() helper (bsc#1222843, CVE-2024-3446) + * hw/sd/sdhci: Do not update TRNMOD when Command Inhibit (DAT) is set (bsc#1222845, CVE-2024-3447) + * hw/nvme: Use pcie_sriov_num_vfs() (bsc#1220065, CVE-2024-26328) + +------------------------------------------------------------------- +Fri Mar 15 12:51:27 UTC 2024 - dfaggioli@suse.com + +- Update to version 8.2.2. Full changelog here: + https://lore.kernel.org/qemu-devel/1709577077.783602.1474596.nullmailer@tls.msk.ru/ + Some upstream backports: + * chardev/char-socket: Fix TLS io channels sending too much data to the backend + * tests/unit/test-util-sockets: Remove temporary file after test + * hw/usb/bus.c: PCAP adding 0xA in Windows version + * hw/intc/Kconfig: Fix GIC settings when using "--without-default-devices" + * gitlab: force allow use of pip in Cirrus jobs + * tests/vm: avoid re-building the VM images all the time + * tests/vm: update openbsd image to 7.4 + * target/i386: leave the A20 bit set in the final NPT walk + * target/i386: remove unnecessary/wrong application of the A20 mask + * target/i386: Fix physical address truncation + * target/i386: check validity of VMCB addresses + * target/i386: mask high bits of CR3 in 32-bit mode + * pl031: Update last RTCLR value on write in case it's read back + * hw/nvme: fix invalid endian conversion + * update edk2 binaries to edk2-stable202402 + * update edk2 submodule to edk2-stable202402 + * target/ppc: Fix crash on machine check caused by ifetch + * target/ppc: Fix lxv/stxv MSR facility check + * .gitlab-ci.d/windows.yml: Drop msys2-32bit job + * system/vl: Update description for input grab key + * docs/system: Update description for input grab key + * hw/hppa/Kconfig: Fix building with "configure --without-default-devices" + * tests/qtest: Depend on dbus_display1_dep + * meson: Explicitly specify dbus-display1.h dependency + * audio: Depend on dbus_display1_dep + * ui/console: Fix console resize with placeholder surface + * ui/clipboard: add asserts for update and request + * ui/clipboard: mark type as not available when there is no data + * ui: reject extended clipboard message if not activated + * target/i386: Generate an illegal opcode exception on cmp instructions with lock prefix + * i386/cpuid: Move leaf 7 to correct group + * i386/cpuid: Decrease cpuid_i when skipping CPUID leaf 1F + * i386/cpu: Mask with XCR0/XSS mask for FEAT_XSAVE_XCR0_HI and FEAT_XSAVE_XSS_HI leafs + * i386/cpu: Clear FEAT_XSAVE_XSS_LO/HI leafs when CPUID_EXT_XSAVE is not available + * .gitlab-ci/windows.yml: Don't install libusb or spice packages on 32-bit + * iotests: Make 144 deterministic again + * target/arm: Don't get MDCR_EL2 in pmu_counter_enabled() before checking ARM_FEATURE_PMU + * target/arm: Fix SVE/SME gross MTE suppression checks + * target/arm: Handle mte in do_ldrq, do_ldro +- Address bsc#1220310. Backported upstream commits: + * ppc/spapr: Initialize max_cpus limit to SPAPR_IRQ_NR_IPIS + * ppc/spapr: Introduce SPAPR_IRQ_NR_IPIS to refer IRQ range for CPU IPIs. + +------------------------------------------------------------------- +Mon Mar 04 14:10:36 UTC 2024 - dfaggioli@suse.com + +- Fix bsc#1220799. Amended commit: + * [openSUSE]: Increase default phys bits to 42, if host supports that + (bsc#1205978, bsc#1219977, bsc#1220799) + +------------------------------------------------------------------- +Thu Feb 29 17:49:03 UTC 2024 - dfaggioli@suse.com + +- Backports and bugfixes: + * [openSUSE]: Increase default phys bits to 42, if host supports that + (bsc#1205978, bsc#1219977) + * vfio/pci: Clear MSI-X IRQ index always (bsc#1220275) + +------------------------------------------------------------------- +Wed Feb 21 15:52:39 UTC 2024 - dfaggioli@suse.com + +- Just "prettify" the spec files a little: + * [openSUSE][RPM] Cosmetic fixes to spec files (copyright, sorting, etc) + +------------------------------------------------------------------- +Wed Feb 21 14:57:14 UTC 2024 - dfaggioli@suse.com + +- Patchqueue shrinking and bugfixing (actually, more of a temporary + workaround, until a proper solution is found upstream): + * [openSUSE] roms/seabios: revert some upstream commits that + break a lot of use-cases + * [openSUSE] roms/seabios: Drop an old (and no longer necessary) + downstream patch (bsc#1219977) + +------------------------------------------------------------------- +Mon Feb 19 17:11:41 UTC 2024 - dfaggioli@suse.com + +Update to latest stable version (8.2.1) +- Downstream changes: + * [openSUSE][RPM]: Install the VGA module "more often" (bsc#1219164) + * [openSUSE][RPM] Fix handling of qemu-kvm legacy package for RISCV + * [openSUSE][RPM] factor common definitions between qemu and qemu-linux-user spec files +- Upstream backports: + * target/arm: Fix incorrect aa64_tidcp1 feature check + * target/arm: Fix A64 scalar SQSHRN and SQRSHRN + * target/xtensa: fix OOB TLB entry access + * qtest: bump aspeed_smc-test timeout to 6 minutes + * monitor: only run coroutine commands in qemu_aio_context + * iotests: port 141 to Python for reliable QMP testing + * iotests: add filter_qmp_generated_node_ids() + * block/blklogwrites: Fix a bug when logging "write zeroes" operations. + * virtio-net: correctly copy vnet header when flushing TX (bsc#1218484, CVE-2023-6693) + * tcg/arm: Fix SIGILL in tcg_out_qemu_st_direct + * linux-user/riscv: Adjust vdso signal frame cfa offsets + * linux-user: Fixed cpu restore with pc 0 on SIGBUS + * block/io: clear BDRV_BLOCK_RECURSE flag after recursing in bdrv_co_block_status + * coroutine-ucontext: Save fake stack for pooled coroutine + * tcg/s390x: Fix encoding of VRIc, VRSa, VRSc insns + * accel/tcg: Revert mapping of PCREL translation block to multiple virtual addresses + * acpi/tests/avocado/bits: wait for 200 seconds for SHUTDOWN event from bits VM + * s390x/pci: drive ISM reset from subsystem reset + * s390x/pci: refresh fh before disabling aif + * s390x/pci: avoid double enable/disable of aif + * hw/scsi/esp-pci: set DMA_STAT_BCMBLT when BLAST command issued + * hw/scsi/esp-pci: synchronise setting of DMA_STAT_DONE with ESP completion interrupt + * hw/scsi/esp-pci: generate PCI interrupt from separate ESP and PCI sources + * hw/scsi/esp-pci: use correct address register for PCI DMA transfers + * migration/rdma: define htonll/ntohll only if not predefined + * hw/pflash: implement update buffer for block writes + * hw/pflash: use ldn_{be,le}_p and stn_{be,le}_p + * hw/pflash: refactor pflash_data_write() + * backends/cryptodev: Do not ignore throttle/backends Errors + * target/i386: pcrel: store low bits of physical address in data[0] + * target/i386: fix incorrect EIP in PC-relative translation blocks + * target/i386: Do not re-compute new pc with CF_PCREL + * load_elf: fix iterator's type for elf file processing + * target/hppa: Update SeaBIOS-hppa to version 15 + * target/hppa: Fix IOR and ISR on error in probe + * target/hppa: Fix IOR and ISR on unaligned access trap + * target/hppa: Export function hppa_set_ior_and_isr() + * target/hppa: Avoid accessing %gr0 when raising exception + * hw/hppa: Move software power button address back into PDC + * target/hppa: Fix PDC address translation on PA2.0 with PSW.W=0 + * hw/pci-host/astro: Add missing astro & elroy registers for NetBSD + * hw/hppa/machine: Disable default devices with --nodefaults option + * hw/hppa/machine: Allow up to 3840 MB total memory + * readthodocs: fully specify a build environment + * .gitlab-ci.d/buildtest.yml: Work around htags bug when environment is large + * target/s390x: Fix LAE setting a wrong access register + * tests/qtest/virtio-ccw: Fix device presence checking + * tests/acpi: disallow tests/data/acpi/virt/SSDT.memhp changes + * tests/acpi: update expected data files + * edk2: update binaries to git snapshot + * edk2: update build config, set PcdUninstallMemAttrProtocol = TRUE. + * edk2: update to git snapshot + * tests/acpi: allow tests/data/acpi/virt/SSDT.memhp changes + * util: fix build with musl libc on ppc64le + * tcg/ppc: Use new registers for LQ destination + * hw/intc/arm_gicv3_cpuif: handle LPIs in in the list registers + * hw/vfio: fix iteration over global VFIODevice list + * vfio/container: Replace basename with g_path_get_basename + * edu: fix DMA range upper bound check + * hw/net: cadence_gem: Fix MDIO_OP_xxx values + * audio/audio.c: remove trailing newline in error_setg + * chardev/char.c: fix "abstract device type" error message + * target/riscv: Fix mcycle/minstret increment behavior + * hw/net/can/sja1000: fix bug for single acceptance filter and standard frame + * target/i386: the sgx_epc_get_section stub is reachable + * configure: use a native non-cross compiler for linux-user + * include/ui/rect.h: fix qemu_rect_init() mis-assignment + * target/riscv/kvm: do not use non-portable strerrorname_np() + * iotests: Basic tests for internal snapshots + * vl: Improve error message for conflicting -incoming and -loadvm + * block: Fix crash when loading snapshot on inactive node +- Fixes: + * bsc#1218484 (CVE-2023-6693) + +------------------------------------------------------------------- +Sat Feb 17 02:12:55 UTC 2024 - dfaggioli@suse.com + +- Try to solve the qemu-kvm dependency issues on all arches + (see, e.g., bsc#1218684) + * [openSUSE][RPM] Create the legacy qemu-kvm symlink for all arches + +------------------------------------------------------------------- +Fri Feb 16 15:10:53 UTC 2024 - dfaggioli@suse.com + +- Update the service file to use OBS-scm (by fvogt) +- Various fixes: + * [openSUSE][RPM] Fix enabling features on non-x86_64 (bsc#1220011, bsc#1219818) + * [openSUSE][RPM] Disable test-crypto-secret in linux-user build + * [openSUSE] Update ipxe submodule reference (bsc#1219733, bsc#1219722) + * [openSUSE][RPM] spec: allow building without spice + +------------------------------------------------------------------- +Tue Feb 06 00:58:05 UTC 2024 - dfaggioli@suse.com + +- Fix a build issue of OVMF caused by + https://gitlab.com/qemu-project/qemu/-/issues/2064: + * target/i386: fix incorrect EIP in PC-relative translation blocks + * target/i386: Do not re-compute new pc with CF_PCREL + +------------------------------------------------------------------- +Fri Jan 12 13:37:01 UTC 2024 - dfaggioli@suse.com + +- Update to latest upstream release, 8.2.0: + The full list of changes are available at: https://wiki.qemu.org/ChangeLog/8.2 + Highlights include: + * New virtio-sound device emulation + * New virtio-gpu rutabaga device emulation used by Android emulator + * New hv-balloon for dynamic memory protocol device for Hyper-V guests + * New Universal Flash Storage device emulation + * Network Block Device (NBD) 64-bit offsets for improved performance + * dump-guest-memory now supports the standard kdump format + * ARM: Xilinx Versal board now models the CFU/CFI, and the TRNG device + * ARM: CPU emulation support for cortex-a710 and neoverse-n2 + * ARM: architectural feature support for PACQARMA3, EPAC, Pauth2, FPAC, + FPACCOMBINE, TIDCP1, MOPS, HBC, and HPMN0 + * HPPA: CPU emulation support for 64-bit PA-RISC 2.0 + * HPPA: machine emulation support for C3700, including Astro memory + controller and four Elroy PCI bridges + * LoongArch: ISA support for LASX extension and PRELDX instruction + * LoongArch: CPU emulation support for la132 + * RISC-V: ISA/extension support for AIA virtualization support via KVM, + and vector cryptographic instructions + * RISC-V: Numerous extension/instruction cleanups, fixes, and reworks + * s390x: support for vfio-ap passthrough of crypto adapter for + protected + virtualization guests + * Tricore: support for TC37x CPU which implements ISA v1.6.2 + * Tricore: support for CRCN, FTOU, FTOHP, and HPTOF instructions + * x86: Zen support for PV console and network devices +- Patch added (from upstream stable tree): + * include/ui/rect.h: fix qemu_rect_init() mis-assignment + +------------------------------------------------------------------- +Wed Jan 10 13:30:37 UTC 2024 - dfaggioli@suse.com + +- Some packaging and dependencies fixes: + * [openSUSE] rpm: restrict canokey to openSUSE only + * [openSUSE] rpm: fix virtiofsd dependency on 32 bit systems + * [openSUSE] rpm: add support for canokeys (boo#1217520) + +------------------------------------------------------------------- +Fri Dec 15 13:59:54 UTC 2023 - dfaggioli@suse.com + +- Rearrange dependencies and subpackages and filter features for ALP + * [openSUSE] rpm: disable Xen support in ALP-based distros + * [openSUSE] rpm: some more refinements of inter-subpackage dependencies + +------------------------------------------------------------------- +Fri Dec 15 11:47:26 UTC 2023 - dfaggioli@suse.com + +- Fix boo#1084909 and create a new qemu-spice metapackage: + * [openSUSE] rpm: normalize hostname, for reproducible builds (#44) + * [openSUSE] rpm: new subpackage, for SPICE + +------------------------------------------------------------------- +Wed Nov 29 10:50:56 UTC 2023 - dfaggioli@suse.com + +- Align to upstream stable release. It includes many of the patches we had + backported ourself, to fix bugs and issues, plus more. See here for details: + * https://lore.kernel.org/qemu-devel/1700589639.257680.3420728.nullmailer@tls.msk.ru/ + * https://gitlab.com/qemu-project/qemu/-/commits/stable-8.1?ref_type=heads + An (incomplete!) list of such backports is: + * Update version for 8.1.3 release + * hw/mips: LOONGSON3V depends on UNIMP device + * target/arm: HVC at EL3 should go to EL3, not EL2 + * s390x/pci: only limit DMA aperture if vfio DMA limit reported + * target/riscv/kvm: support KVM_GET_REG_LIST + * target/riscv/kvm: improve 'init_multiext_cfg' error msg + * tracetool: avoid invalid escape in Python string + * tests/tcg/s390x: Test LAALG with negative cc_src + * target/s390x: Fix LAALG not updating cc_src + * tests/tcg/s390x: Test CLC with inaccessible second operand + * target/s390x: Fix CLC corrupting cc_src + * tests/qtest: ahci-test: add test exposing reset issue with pending callback + * hw/ide: reset: cancel async DMA operation before resetting state + * target/mips: Fix TX79 LQ/SQ opcodes + * target/mips: Fix MSA BZ/BNZ opcodes displacement + * ui/gtk-egl: apply scale factor when calculating window's dimension + * ui/gtk: force realization of drawing area + * ati-vga: Implement fallback for pixman routines + * ... + +------------------------------------------------------------------- +Wed Nov 22 15:21:23 UTC 2023 - dfaggioli@suse.com + +- Backports and bugfixes: + * [openSUSE] Make Sphinx build reproducible (boo#1102408) + * target/s390x/arch_dump: Add arch cleanup function for PV dumps (bsc#1217227) + * dump: Add arch cleanup function (bsc#1217227) + * target/s390x/dump: Remove unneeded dump info function pointer init (bsc#1217227) + +------------------------------------------------------------------- +Wed Nov 15 17:39:42 UTC 2023 - dfaggioli@suse.com + +- Fix bsc#1216638: + * target/s390x: Fix LAALG not updating cc_src + * target/s390x: Fix CLC corrupting cc_src + +------------------------------------------------------------------- +Tue Oct 24 11:05:13 UTC 2023 - dfaggioli@suse.com + +- [openSUSE] supportconfig: Adapt plugin to modern supportconfig + +------------------------------------------------------------------- +Wed Oct 18 16:28:01 UTC 2023 - dfaggioli@suse.com + +- [openSUSE] Add -p1 to autosetup in spec files + * So patches can be applied easily (might be useful for development) + +------------------------------------------------------------------- +Wed Oct 18 13:34:20 UTC 2023 - dfaggioli@suse.com + +- Update to version 8.1.2: + + This fixes the following upstream issues: + * https://gitlab.com/qemu-project/qemu/-/issues/1826 + * https://gitlab.com/qemu-project/qemu/-/issues/1834 + * https://gitlab.com/qemu-project/qemu/-/issues/1846 + + It also contains a fix for: + * CVE-2023-42467 (bsc#1215192) + + As well as several upstream backports (list available at: + https://lore.kernel.org/qemu-devel/24dfb1c2-dc40-4841-893d-5d530638b684@tls.msk.ru/) + +------------------------------------------------------------------- +Wed Oct 11 11:57:28 UTC 2023 - dfaggioli@suse.com + +- Update to version 8.1.1: + + Upstream backports and bugfixes, among which: + * tpm: fix crash when FD >= 1024 and unnecessary errors due to EINTR (Marc-Andr303251 Lureau) + * meson: Fix targetos match for illumos and Solaris. (Jonathan Perkin) + * s390x/ap: fix missing subsystem reset registration (Janosch Frank) + * ui: fix crash when there are no active_console (Marc-Andr303251 Lureau) + * virtio-gpu/win32: set the destroy function on load (Marc-Andr303251 Lureau) + * target/riscv: Allocate itrigger timers only once (Akihiko Odaki) + * target/riscv/pmp.c: respect mseccfg.RLB for pmpaddrX changes (Leon Schuermann) + * target/riscv: fix satp_mode_finalize() when satp_mode.supported = 0 (Daniel Henrique Barboza) + * hw/riscv: virt: Fix riscv,pmu DT node path (Conor Dooley) + * [...] + * target/arm: Fix 64-bit SSRA (Richard Henderson) + * target/arm: Fix SME ST1Q (Richard Henderson) + * accel/kvm: Specify default IPA size for arm64 (Akihiko Odaki) + * kvm: Introduce kvm_arch_get_default_type hook (Akihiko Odaki) + * include/hw/virtio/virtio-gpu: Fix virtio-gpu with blob on big endian hosts (Thomas Huth) + * target/s390x: Check reserved bits of VFMIN/VFMAX's M5 (Ilya Leoshkevich) + * target/s390x: Fix VSTL with a large length (Ilya Leoshkevich) + * target/s390x: Use a 16-bit immediate in VREP (Ilya Leoshkevich) + * target/s390x: Fix the "ignored match" case in VSTRS (Ilya Leoshkevich) + + Full list available at: + * https://lore.kernel.org/qemu-devel/d0d2ac8f-313a-c937-dc3a-88e45fce933c@tls.msk.ru/ + +------------------------------------------------------------------- +Fri Oct 06 11:14:31 UTC 2023 - dfaggioli@suse.com + +- Fix (bsc#1215486): + * [openSUSE][RPM] spec: enable the Pipewire audio backend (bsc#1215486) + +------------------------------------------------------------------- +Thu Oct 05 15:27:03 UTC 2023 - dfaggioli@suse.com + +- (Properly) fix: bsc#1213210 + * linux-user/elfload: Enable vxe2 on s390x +- Fix: bsc#1215677 + * optionrom: Remove build-id section + +------------------------------------------------------------------- +Thu Sep 14 15:58:54 UTC 2023 - dfaggioli@suse.com + +- Fix bsc#1215311: + * roms/ipxe: Backport 0aa2e4ec9635, in preparation of binutils 2.41 (bsc#1215311) + +------------------------------------------------------------------- +Thu Sep 14 13:21:22 UTC 2023 - dfaggioli@suse.com + +- Fix the build for SLE/Leap: + * [openSUSE][RPM] Make the package buildable on SLE/Leap 15.x + +------------------------------------------------------------------- +Tue Sep 12 12:10:39 UTC 2023 - dfaggioli@suse.com + +- Fix bsc#1211000: + * [openSUSE] block: Add a thread-pool version of fstat (bsc#1211000) + * [openSUSE] block: Convert qmp_query_block() to coroutine_fn (bsc#1211000) + * [openSUSE] block: Don't query all block devices at hmp_nbd_server_start (bsc#1211000) + * [openSUSE] block: Convert qmp_query_named_block_nodes to coroutine (bsc#1211000) + * [openSUSE] block: Convert bdrv_block_device_info into co_wrapper (bsc#1211000) + * [openSUSE] block: Convert bdrv_query_block_graph_info to coroutine (bsc#1211000) + * [openSUSE] block: Temporarily mark bdrv_co_get_allocated_file_size as mixed (bsc#1211000) + * [openSUSE] block: Allow the wrapper script to see functions declared in qapi.h (bsc#1211000) + * [openSUSE] block: Remove unnecessary variable in bdrv_block_device_info (bsc#1211000) + * [openSUSE] block: Remove bdrv_query_block_node_info (bsc#1211000) +- Fix bsc#1213210: + * target/s390x: Fix the "ignored match" case in VSTRS (bsc#1213210) + +------------------------------------------------------------------- +Tue Sep 12 11:41:07 UTC 2023 - dfaggioli@suse.com + +- Update to version 8.1.0. Full list of changes are available at: + + https://wiki.qemu.org/ChangeLog/8.1 + + Highlights: + * VFIO: improved live migration support, no longer an experimental feature + * GTK GUI now supports multi-touch events + * ARM, PowerPC, and RISC-V can now use AES acceleration on host processor + * PCIe: new QMP commands to inject CXL General Media events, DRAM + events and Memory Module events + * ARM: KVM VMs on a host which supports MTE (the Memory Tagging Extension) + can now use MTE in the guest + * ARM: emulation support for bpim2u (Banana Pi BPI-M2 Ultra) board and + neoverse-v1 (Cortex Neoverse-V1) CPU + * ARM: new architectural feature support for: FEAT_PAN3 (SCTLR_ELx.EPAN), + FEAT_LSE2 (Large System Extensions v2), and experimental support for + FEAT_RME (Realm Management Extensions) + * Hexagon: new instruction support for v68/v73 scalar, and v68/v69 HVX + * Hexagon: gdbstub support for HVX + * MIPS: emulation support for Ingenic XBurstR1/XBurstR2 CPUs, and MXU + instructions + * PowerPC: TCG SMT support, allowing pseries and powernv to run with up + to 8 threads per core + * PowerPC: emulation support for Power9 DD2.2 CPU model, and perf + sampling support for POWER CPUs + * RISC-V: ISA extension support for BF16/Zfa, and disassembly support + for Zcm*/Z*inx/XVentanaCondOps/Xthead + * RISC-V: CPU emulation support for Veyron V1 + * RISC-V: numerous KVM/emulation fixes and enhancements + * s390: instruction emulation fixes for LDER, LCBB, LOCFHR, MXDB, MXDBR, + EPSW, MDEB, MDEBR, MVCRL, LRA, CKSM, CLM, ICM, MC, STIDP, EXECUTE, and + CLGEBR(A) + * SPARC: updated target/sparc to use tcg_gen_lookup_and_goto_ptr() for + improved performance + * Tricore: emulation support for TC37x CPU that supports ISA v1.6.2 + instructions + * Tricore: instruction emulation of POPCNT.W, LHA, CRC32L.W, CRC32.B, + SHUFFLE, SYSCALL, and DISABLE + * x86: CPU model support for GraniteRapids + * and lots more... + +- This also (automatically) fixes: + * bsc#1212850 (CVE-2023-3354) + * bsc#1213001 (CVE-2023-3255) + * bsc#1213925 (CVE-2023-3180) + * bsc#1213414 (CVE-2023-3301) + * bsc#1207205 (CVE-2023-0330) + * bsc#1212968 (CVE-2023-2861) + * bsc#1179993, bsc#1181740, bsc#1211697 + +------------------------------------------------------------------- +Mon Aug 07 23:01:35 UTC 2023 - dfaggioli@suse.com + +- perl-Text-Markdown is not available in all distros and for all + arch-es. Use discount instead +- Patches added: + * [openSUSE][spec] Use discount instead of perl-Text-Markdown + +------------------------------------------------------------------- +Mon Aug 07 16:49:01 UTC 2023 - dfaggioli@suse.com + +- Update to version 8.0.4: + * Official changelog not released on the mailing list yet + * Security issues fixed: + - bsc#1212850 (CVE-2023-3354) + - bsc#1213001 (CVE-2023-3255) + - bsc#1213925 (CVE-2023-3180) + - bsc#1207205 (CVE-2023-0330) + +------------------------------------------------------------------- +Thu Jul 27 08:14:49 UTC 2023 - dfaggioli@suse.com + +- Fix bsc#1179993, bsc#1181740, bsc#1213001 +- Patches added: + * hw/ide/piix: properly initialize the BMIBA register + * ui/vnc-clipboard: fix infinite loop in inflate_buffer (CVE-2023-3255) + +------------------------------------------------------------------- +Wed Jul 12 10:58:05 UTC 2023 - dfaggioli@suse.com + +- Update to version 8.0.3: + * See full log: https://lists.nongnu.org/archive/html/qemu-stable/2023-07/msg00086.html + * Security issues fixed: + - 9pfs: prevent opening special files (CVE-2023-2861) + - vhost-vdpa (CVE-2023-3301) + * Use the official xkb name for Arabic layout, not the + legacy synonym (bsc#1212966) + * [openSUSE][RPM] Update to version 8.0.3 + +------------------------------------------------------------------- +Fri Jun 30 15:03:37 UTC 2023 - dfaggioli@suse.com + +- Patches added (first one is relevant for boo#1197298 and bsc#1212768): + * [openSUSE][RPM] Use --preserve-argv0 in qemu-linux-user (#32) + * [openSUSE][RPM] Split qemu-tools package (#31) + +------------------------------------------------------------------- +Thu Jun 01 23:16:19 UTC 2023 - dfaggioli@suse.com + +- Update to version 8.0.2: + * Stability, security and bug fixes +- Patch added: + * [openSUSE][RPM] Update to version 8.0.2 + +------------------------------------------------------------------- +Mon May 29 14:39:04 UTC 2023 - dfaggioli@suse.com + +- Patch added: + [openSUSE][RPM] Fix deps for virtiofsd and improve spec files + +------------------------------------------------------------------- +Tue May 23 08:22:15 UTC 2023 - Dario Faggioli + +- Update the _constraints file: + * the qemu-testsuite package does not exist any longer, but some + of the tests are done in the qemu package (so "transfer" some of + the constraints to that one) + - some of the builds are failing with OOM, happening while the RPM + is actually put together, at the end of the process. Try to give + them more RAM + +------------------------------------------------------------------- +Mon May 22 16:13:49 UTC 2023 - dfaggioli@suse.com + +- Patch added: + [openSUSE][RPM] spec: require virtiofsd, now that it is a sep package (#27) + +------------------------------------------------------------------- +Mon May 22 13:07:59 UTC 2023 - dfaggioli@suse.com + +- Update to version 8.0.0 (https://wiki.qemu.org/ChangeLog/8.0) +* Removed features: https://qemu-project.gitlab.io/qemu/about/removed-features.html +* Deprecated features: https://qemu-project.gitlab.io/qemu/about/deprecated.html +* Some notable changes: + - ARM: + - New emulated CPU types: + - Cortex-A55 CPU + - Cortex-R52 CPU + - x86 + - Add support for Xen guests under KVM with Linux v5.12+ + - New CPU model "SapphireRapids" + - VFIO + - Experimental migration support has been updated to the v2 VFIO migration protocol + - virtio + - virtio-mem now fully supports combining preallocation with migration + - vDPA + - Support live migration of vhost-vdpa net devices without CVQ, with no need of x-svq + - virtiofs + - The old C virtiofsd has been removed, use the new Rust implementation instead. +* Patches added: + [openSUSE][RPM] Try to avoid recommending too many packages (bsc#1205680) + [openSUSE][RPM] Move documentation to a subpackage and fix qemu-headless (bsc#1209629) + roms: add back edk2-basetools target + async: Suppress GCC13 false positive in aio_bh_poll() + [openSUSE][OBS] Limit the workflow runs to the factory branch (#25) + [openSUSE][RPM] Spec file adjustments for 8.0.0 + +------------------------------------------------------------------- +Wed May 10 12:19:52 UTC 2023 - dfaggioli@suse.com + +- (Radical!) Change of packaging workflow. Now pretty much everything + happens via git, and interacting with https://github.com/openSUSE/qemu.git. + See README.PACKAGING for details +* Patches added: + linux-user: Add pidfd_open(), pidfd_send_signal() and pidfd_getfd() syscalls + linux-user: fill out task state in /proc/self/stat + linux-user: Emulate CLONE_PIDFD flag in clone() +* Patches transformed in git commits: + Disable-some-tests-that-have-problems-in.patch + Make-char-muxer-more-robust-wrt-small-FI.patch + Make-installed-scripts-explicitly-python.patch + Makefile-fix-build-with-binutils-2.38.patch + PPC-KVM-Disable-mmu-notifier-check.patch + Raise-soft-address-space-limit-to-hard-l.patch + Revert-linux-user-fix-compat-with-glibc-.patch + Revert-roms-efirom-tests-uefi-test-tools.patch + Revert-tests-qtest-enable-more-vhost-use.patch + Update-linux-headers-to-v6.0-rc4.patch + accel-abort-if-we-fail-to-load-the-accel.patch + acpi-cpuhp-fix-guest-visible-maximum-acc.patch + ath5k-Add-missing-AR5K_EEPROM_READ-in-at.patch + bios-tables-test-add-test-for-number-of-.patch + bios-tables-test-teach-test-to-use-smbio.patch + block-Handle-curl-7.55.0-7.85.0-version-.patch + block-io_uring-revert-Use-io_uring_regis.patch + configure-Add-Wno-gnu-variable-sized-typ.patch + dmg-warn-when-opening-dmg-images-contain.patch + dump-Add-architecture-section-and-sectio.patch + dump-Refactor-dump_iterate-and-introduce.patch + dump-Reintroduce-memory_offset-and-secti.patch + dump-Rename-write_elf-_phdr_note-to-prep.patch + dump-Rename-write_elf_loads-to-write_elf.patch + dump-Reorder-struct-DumpState.patch + dump-Replace-opaque-DumpState-pointer-wi.patch + dump-Rework-dump_calculate_size-function.patch + dump-Rework-filter-area-variables.patch + dump-Rework-get_start_block.patch + dump-Split-elf-header-functions-into-pre.patch + dump-Use-a-buffer-for-ELF-section-data-a.patch + dump-Write-ELF-section-headers-right-aft.patch + hw-acpi-erst.c-Fix-memory-handling-issue.patch + hw-display-qxl-Avoid-buffer-overrun-in-q.patch + hw-display-qxl-Document-qxl_phys2virt.patch + hw-display-qxl-Have-qxl_log_command-Retu.patch + hw-display-qxl-Pass-requested-buffer-siz.patch + hw-pvrdma-Protect-against-buggy-or-malic.patch + hw-scsi-megasas-check-for-NULL-frame-in-.patch + hw-smbios-add-core_count2-to-smbios-tabl.patch + hw-smbios-handle-both-file-formats-regar.patch + hw-smbios-support-for-type-8-port-connec.patch + include-elf.h-add-s390x-note-types.patch + increase-x86_64-physical-bits-to-42.patch + linux-user-Fake-proc-cpuinfo.patch + linux-user-lseek-explicitly-cast-non-set.patch + linux-user-remove-conditionals-for-many-.patch + linux-user-use-max-as-default-CPU-model-.patch + linux-user-use-target_ulong.patch + meson-install-ivshmem-client-and-ivshmem.patch + meson-remove-pkgversion-from-CONFIG_STAM.patch + module-add-Error-arguments-to-module_loa.patch + module-removed-unused-function-argument-.patch + module-rename-module_load_one-to-module_.patch + net-tulip-Restrict-DMA-engine-to-memorie.patch + openSUSE-Basetools-Ignore-spurious-GCC-1.patch + openSUSE-Makefile-Fix-csum8-to-be-built-.patch + openSUSE-Makefile-define-endianess-for-c.patch + openSUSE-Makefile-fix-issues-of-build-re.patch + openSUSE-add-cross.ini-file-to-handle-aa.patch + openSUSE-build-Makefile-fix-issues-of-bu.patch + openSUSE-build-Silence-GCC-12-spurious-w.patch + openSUSE-build-be-explicit-about-mx86-us.patch + openSUSE-build-enable-cross-compilation-.patch + openSUSE-pc-q35-Bump-max_cpus-to-1024.patch + openSUSE-pcbios-stub-out-the-SAN-req-s-i.patch + openSUSE-switch-to-python3-as-needed.patch + openSUSE-test-help-compiler-out-by-initi.patch + qemu-binfmt-conf-Modify-default-path.patch + qemu-bridge-helper-reduce-security-profi.patch + qemu-osdep-Switch-position-of-extern-and.patch + roms-Makefile-add-cross-file-to-qboot-me.patch + roms-Makefile-pass-a-packaging-timestamp.patch + roms-change-cross-compiler-naming-to-be-.patch + s390x-Add-KVM-PV-dump-interface.patch + s390x-Add-protected-dump-cap.patch + s390x-Introduce-PV-query-interface.patch + s390x-pci-add-routine-to-get-host-functi.patch + s390x-pci-don-t-fence-interpreted-device.patch + s390x-pci-enable-adapter-event-notificat.patch + s390x-pci-enable-for-load-store-interpre.patch + s390x-pci-let-intercept-devices-have-sep.patch + s390x-pci-reflect-proper-maxstbl-for-gro.patch + s390x-pci-reset-ISM-passthrough-devices-.patch + s390x-pci-shrink-DMA-aperture-to-be-boun.patch + s390x-pv-Add-dump-support.patch + s390x-tod-kvm-don-t-save-restore-the-TOD.patch + scsi-generic-check-for-additional-SG_IO-.patch + scsi-generic-replace-logical-block-count.patch + test-vmstate-fix-bad-GTree-usage-use-aft.patch + tests-acpi-allow-changes-for-core_count2.patch + tests-acpi-update-tables-for-new-core-co.patch + tests-change-error-message-in-test-162.patch + tests-qemu-iotests-Triple-timeout-of-i-o.patch + ui-vnc-clipboard-fix-integer-underflow-i.patch + xen-add-block-resize-support-for-xen-dis.patch + xen-ignore-live-parameter-from-xen-save-.patch + xen_disk-Add-suse-specific-flush-disable.patch + +------------------------------------------------------------------- +Sat Mar 25 13:53:58 UTC 2023 - Martin Li_ka + +- Enable again LTO for x86_64 target (boo#1133281). + +------------------------------------------------------------------- +Wed Mar 22 09:29:52 UTC 2023 - Dario Faggioli + +- Further fixes for bsc#1209546 +* Patches added: + test-vmstate-fix-bad-GTree-usage-use-aft.patch + +------------------------------------------------------------------- +Tue Mar 21 22:02:50 UTC 2023 - Dario Faggioli + +- Fix bsc#1209546 +* Patches added: + qemu-osdep-Switch-position-of-extern-and.patch + +------------------------------------------------------------------- +Thu Mar 16 16:27:19 UTC 2023 - Dario Faggioli + +- Fix bsc#1209064 +- Backport the "acpi: cpuhp: fix guest-visible maximum access size + to the legacy reg block" patch, as it makes developing and + testing OVMF/EDK2 easier +* Patches added: + acpi-cpuhp-fix-guest-visible-maximum-acc.patch + s390x-pci-reset-ISM-passthrough-devices-.patch + s390x-pci-shrink-DMA-aperture-to-be-boun.patch + +------------------------------------------------------------------- +Thu Mar 9 15:21:18 UTC 2023 - Martin Liška + +- Disable -Werror as it is very sensitive when one + updates a new compiler. -Werror is fine for upstream development, + but not when it comes to stability of a package build. + +------------------------------------------------------------------- +Fri Feb 24 12:12:42 UTC 2023 - Dario Faggioli + +- Fix build issue with Linux 6.2's headers (bsc#1208657) by dropping + linux-user-add-more-compat-ioctl-definit.patch and adding + Revert-linux-user-fix-compat-with-glibc-.patch +- Patches meson-enforce-a-minimum-Linux-kernel-hea.patch and + linux-user-drop-conditionals-for-obsolet.patch were added + as downstream patches as they were part of a series, but + they never made it upstream, so we don't want them here + either +* Patches dropped: + linux-user-add-more-compat-ioctl-definit.patch + linux-user-drop-conditionals-for-obsolet.patch + meson-enforce-a-minimum-Linux-kernel-hea.patch +* Patches added: + Revert-linux-user-fix-compat-with-glibc-.patch + +------------------------------------------------------------------- +Thu Feb 23 11:09:14 UTC 2023 - Dario Faggioli + +- Fixes bsc#1197653, CVE-2022-1050 +* Patches added: + block-Handle-curl-7.55.0-7.85.0-version-.patch + hw-pvrdma-Protect-against-buggy-or-malic.patch + +------------------------------------------------------------------- +Mon Feb 13 10:28:53 UTC 2023 - Li Zhang + +- Fixes: jsc#PED-1716 Add S390 features from IBM requirements +* Patches added: + dump-Add-architecture-section-and-sectio.patch + dump-Refactor-dump_iterate-and-introduce.patch + dump-Reintroduce-memory_offset-and-secti.patch + dump-Rename-write_elf_loads-to-write_elf.patch + dump-Rename-write_elf-_phdr_note-to-prep.patch + dump-Reorder-struct-DumpState.patch + dump-Replace-opaque-DumpState-pointer-wi.patch + dump-Rework-dump_calculate_size-function.patch + dump-Rework-filter-area-variables.patch + dump-Rework-get_start_block.patch + dump-Split-elf-header-functions-into-pre.patch + dump-Use-a-buffer-for-ELF-section-data-a.patch + dump-Write-ELF-section-headers-right-aft.patch + include-elf.h-add-s390x-note-types.patch + s390x-Add-KVM-PV-dump-interface.patch + s390x-Add-protected-dump-cap.patch + s390x-Introduce-PV-query-interface.patch + s390x-pv-Add-dump-support.patch + +------------------------------------------------------------------- +Fri Feb 10 12:12:28 UTC 2023 - Dario Faggioli + +- Fixed: bsc#1205847 (CVE-2022-4172), bsc#1203788 (CVE-2022-3165), + bsc#1205808 (CVE-2022-4144), bsc#1206527, bsc#1208139 +- Improved handling of: bsc#1202282 (jsc#PED-2592) +* Patches dropped: + pc-q35-Bump-max_cpus-to-1024.patch +* Patches added: + accel-abort-if-we-fail-to-load-the-accel.patch + bios-tables-test-add-test-for-number-of-.patch + bios-tables-test-teach-test-to-use-smbio.patch + dmg-warn-when-opening-dmg-images-contain.patch + hw-acpi-erst.c-Fix-memory-handling-issue.patch + hw-display-qxl-Avoid-buffer-overrun-in-q.patch + hw-display-qxl-Document-qxl_phys2virt.patch + hw-display-qxl-Have-qxl_log_command-Retu.patch + hw-display-qxl-Pass-requested-buffer-siz.patch + hw-smbios-add-core_count2-to-smbios-tabl.patch + hw-smbios-support-for-type-8-port-connec.patch + module-add-Error-arguments-to-module_loa.patch + module-removed-unused-function-argument-.patch + module-rename-module_load_one-to-module_.patch + openSUSE-pc-q35-Bump-max_cpus-to-1024.patch + s390x-tod-kvm-don-t-save-restore-the-TOD.patch + tests-acpi-allow-changes-for-core_count2.patch + tests-acpi-update-tables-for-new-core-co.patch + ui-vnc-clipboard-fix-integer-underflow-i.patch + +------------------------------------------------------------------- +Fri Jan 27 12:14:01 UTC 2023 - Dario Faggioli + +- Refactor building and installing SeaBIOS docs + +------------------------------------------------------------------- +Fri Jan 27 11:30:25 UTC 2023 - Dario Faggioli + +- Rename submodule patches so that it's clear which ones + are backports and which ones are downstream only fixes; +- No functional change intended. +* Patches dropped: + Ignore-spurious-GCC-12-warning.patch + roms-sgabios-Fix-csum8-to-be-built-by-ho.patch + Makefile-define-endianess-for-cross-buil.patch + ipxe-Makefile-fix-issues-of-build-reprod.patch + qboot-add-cross.ini-file-to-handle-aarch.patch + sgabios-Makefile-fix-issues-of-build-rep.patch + Silence-GCC-12-spurious-warnings.patch + build-be-explicit-about-mx86-used-note-n.patch + enable-cross-compilation-on-ARM.patch + stub-out-the-SAN-req-s-in-int13.patch + help-compiler-out-by-initializing-array.patch + seabios-switch-to-python3-as-needed.patch +* Patches added: + openSUSE-Basetools-Ignore-spurious-GCC-1.patch + openSUSE-Makefile-Fix-csum8-to-be-built-.patch + openSUSE-Makefile-define-endianess-for-c.patch + openSUSE-Makefile-fix-issues-of-build-re.patch + openSUSE-add-cross.ini-file-to-handle-aa.patch + openSUSE-build-Makefile-fix-issues-of-bu.patch + openSUSE-build-Silence-GCC-12-spurious-w.patch + openSUSE-build-be-explicit-about-mx86-us.patch + openSUSE-build-enable-cross-compilation-.patch + openSUSE-pcbios-stub-out-the-SAN-req-s-i.patch + openSUSE-switch-to-python3-as-needed.patch + openSUSE-test-help-compiler-out-by-initi.patch + +------------------------------------------------------------------- +Wed Jan 11 18:41:30 UTC 2023 - Li Zhang + +- Fixes jsc#PED-1716 +* Patches added: + configure-Add-Wno-gnu-variable-sized-typ.patch + s390x-pci-add-routine-to-get-host-functi.patch + s390x-pci-don-t-fence-interpreted-device.patch + s390x-pci-enable-adapter-event-notificat.patch + s390x-pci-enable-for-load-store-interpre.patch + s390x-pci-let-intercept-devices-have-sep.patch + s390x-pci-reflect-proper-maxstbl-for-gro.patch + Update-linux-headers-to-v6.0-rc4.patch + +------------------------------------------------------------------- +Thu Jan 5 19:31:18 UTC 2023 - Dirk Müller + +- install binfmt-misc handlers for systemd (bsc#1206838) + +------------------------------------------------------------------- +Wed Nov 16 12:29:15 UTC 2022 - Dario Faggioli + +- Raise the maximum number of vCPUs a VM can have to 1024 (jsc#PED-2592) +* Patches added: + pc-q35-Bump-max_cpus-to-1024.patch + +------------------------------------------------------------------- +Wed Nov 9 10:36:58 UTC 2022 - Christopher Yeleighton + +- install SeaBIOS documentation + +------------------------------------------------------------------- +Thu Nov 3 08:30:57 UTC 2022 - Andreas Schwab + +- Enable KVM support on riscv64 + ------------------------------------------------------------------- Wed Oct 26 11:17:37 UTC 2022 - Dario Faggioli @@ -29,6 +1020,7 @@ Fri Oct 7 12:35:50 UTC 2022 - Dario Faggioli * Patches added: block-io_uring-revert-Use-io_uring_regis.patch +------------------------------------------------------------------- Wed Oct 5 15:57:27 UTC 2022 - Dario Faggioli - Due to change in where some documentation files are, if @@ -339,7 +1331,7 @@ Thu Jul 21 06:14:03 UTC 2022 - Dario Faggioli intc-exynos4210_gic-replace-snprintf-wit.patch Revert-8dcb404bff6d9147765d7dd3e9c849337.patch ------------------------------------------------------------------- +------------------------------------------------------------------- Wed Jul 20 02:07:53 UTC 2022 - Dario Faggioli - Fix bsc#1197084 diff --git a/qemu.keyring b/qemu.keyring deleted file mode 100644 index 9986850..0000000 --- a/qemu.keyring +++ /dev/null @@ -1,493 +0,0 @@ ------BEGIN PGP PUBLIC KEY BLOCK----- - -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 -=YraJ ------END PGP PUBLIC KEY BLOCK----- diff --git a/qemu.obsinfo b/qemu.obsinfo new file mode 100644 index 0000000..f86f2f9 --- /dev/null +++ b/qemu.obsinfo @@ -0,0 +1,4 @@ +name: qemu +version: 9.0.1 +mtime: 1719581360 +commit: aaca3d0d6b11f122737d41bb934749ba718229da diff --git a/qemu.spec b/qemu.spec index 89880a2..05e0fe3 100644 --- a/qemu.spec +++ b/qemu.spec @@ -1,7 +1,7 @@ # -# spec file +# spec file for package qemu # -# Copyright (c) 2022 SUSE LLC +# Copyright (c) 2024 SUSE LLC # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -16,33 +16,7 @@ # -%global flavor @BUILD_FLAVOR@%{nil} -%define name_suffix %{nil} - -%if "%{flavor}" == "linux-user" -%define name_suffix -linux-user -%define summary_string CPU emulator for user space -%else -%define summary_string Machine emulator and virtualizer -%endif - -%define _buildshell /bin/bash - -%define srcdir %{_builddir}/%buildsubdir -%define blddir %srcdir/build - -%define build_x86_firmware 0 -%define build_ppc_firmware 0 -%define build_opensbi_firmware 0 -%define kvm_available 0 -%define legacy_qemu_kvm 0 -%define force_fit_virtio_pxe_rom 1 - -%if "%{?distribution}" == "" -%define distro private-build -%else -%define distro %{distribution} -%endif +%include %{_sourcedir}/common.inc # So, we have openSUSE:Factory, and we have "ports". In openSUSE:Factory, we # have i586 and x86_64. In the :ARM port, we have aarch64, armv6l and armv7l. @@ -77,7 +51,7 @@ %define build_opensbi_firmware 1 %endif -%ifarch %ix86 x86_64 ppc ppc64 ppc64le s390x armv7hl aarch64 +%ifarch %ix86 x86_64 ppc ppc64 ppc64le s390x armv7hl aarch64 riscv64 %define kvm_available 1 %define with_uring 1 %define liburing_min_version 1.0 @@ -95,8 +69,6 @@ %define with_daxctl 1 %endif -%bcond_with chkqtests - # enforce pxe rom sizes for migration compatability from SLE 11 SP3 forward # the following need to be > 64K %define supported_nics_large {e1000 rtl8139} @@ -105,137 +77,19 @@ # Though not required, make unsupported pxe roms migration compatable as well %define unsupported_nics {eepro100 ne2k_pci pcnet} -# non-x86 archs still seem to have some issues with Link Time Optimization -%ifnarch %ix86 x86_64 -%define _lto_cflags %{nil} -%endif -%define _lto_cflags %{nil} - -%define generic_qemu_description \ -QEMU provides full machine emulation and cross architecture usage. It closely\ -integrates with KVM and Xen virtualization, allowing for excellent performance.\ -Many options are available for defining the emulated environment, including\ -traditional devices, direct host device access, and interfaces specific to\ -virtualization. - -%bcond_with system_membarrier -%bcond_with malloc_trim - -%define qemuver 7.1.0 -%define srcver 7.1.0 -%define sbver 1.16.0_0_gd239552 -%define srcname qemu -Name: qemu%{name_suffix} +Name: qemu URL: https://www.qemu.org/ -Summary: %{summary_string} +Summary: Machine emulator and virtualizer License: BSD-2-Clause AND BSD-3-Clause AND GPL-2.0-only AND GPL-2.0-or-later AND LGPL-2.1-or-later AND MIT Group: System/Emulators/PC -Version: %qemuver +Version: 9.0.1 Release: 0 -Source: https://wiki.qemu.org/download/%{srcname}-%{srcver}.tar.xz -Source99: https://wiki.qemu.org/download/%{srcname}-%{srcver}.tar.xz.sig -Source100: %{srcname}.keyring -Source1: 80-kvm.rules -Source2: kvm.conf -Source3: qemu-ifup -Source4: bridge.conf -Source5: qemu-kvm.1.gz -Source6: ksm.service -Source7: qemu-guest-agent.service -Source8: 80-qemu-ga.rules -Source9: qemu-supportconfig -Source10: supported.arm.txt -Source11: supported.ppc.txt -Source12: supported.x86.txt -Source13: supported.s390.txt -Source14: 50-seabios-256k.json -Source15: 60-seabios-128k.json -Source200: qemu-rpmlintrc -Source201: DSDT.pcie -Source300: bundles.tar.xz -Source301: update_git.sh -Source302: config.sh +Source0: qemu-%{version}.tar.xz +Source1: common.inc Source303: README.PACKAGING -# Upstream First -- https://wiki.qemu.org/Contribute/SubmitAPatch -# This patch queue is auto-generated - see README.PACKAGING for process - -# Patches applied in base project: -Patch00000: roms-Makefile-pass-a-packaging-timestamp.patch -Patch00001: roms-change-cross-compiler-naming-to-be-.patch -Patch00002: roms-Makefile-add-cross-file-to-qboot-me.patch -Patch00003: hw-smbios-handle-both-file-formats-regar.patch -Patch00004: Revert-roms-efirom-tests-uefi-test-tools.patch -Patch00005: qemu-binfmt-conf-Modify-default-path.patch -Patch00006: linux-user-Fake-proc-cpuinfo.patch -Patch00007: linux-user-use-target_ulong.patch -Patch00008: linux-user-lseek-explicitly-cast-non-set.patch -Patch00009: PPC-KVM-Disable-mmu-notifier-check.patch -Patch00010: Make-char-muxer-more-robust-wrt-small-FI.patch -Patch00011: qemu-bridge-helper-reduce-security-profi.patch -Patch00012: Raise-soft-address-space-limit-to-hard-l.patch -Patch00013: increase-x86_64-physical-bits-to-42.patch -Patch00014: xen_disk-Add-suse-specific-flush-disable.patch -Patch00015: xen-add-block-resize-support-for-xen-dis.patch -Patch00016: xen-ignore-live-parameter-from-xen-save-.patch -Patch00017: scsi-generic-replace-logical-block-count.patch -Patch00018: hw-scsi-megasas-check-for-NULL-frame-in-.patch -Patch00019: scsi-generic-check-for-additional-SG_IO-.patch -Patch00020: Revert-tests-qtest-enable-more-vhost-use.patch -Patch00021: tests-change-error-message-in-test-162.patch -Patch00022: tests-qemu-iotests-Triple-timeout-of-i-o.patch -Patch00023: Disable-some-tests-that-have-problems-in.patch -Patch00024: Make-installed-scripts-explicitly-python.patch -Patch00025: meson-install-ivshmem-client-and-ivshmem.patch -Patch00026: meson-remove-pkgversion-from-CONFIG_STAM.patch -Patch00027: linux-user-use-max-as-default-CPU-model-.patch -Patch00028: net-tulip-Restrict-DMA-engine-to-memorie.patch -Patch00029: linux-user-add-more-compat-ioctl-definit.patch -Patch00030: linux-user-remove-conditionals-for-many-.patch -Patch00031: meson-enforce-a-minimum-Linux-kernel-hea.patch -Patch00032: linux-user-drop-conditionals-for-obsolet.patch -Patch00033: block-io_uring-revert-Use-io_uring_regis.patch -# Patches applied in roms/seabios/: -Patch01000: seabios-switch-to-python3-as-needed.patch -Patch01001: enable-cross-compilation-on-ARM.patch -Patch01002: build-be-explicit-about-mx86-used-note-n.patch -# Patches applied in roms/ipxe/: -Patch02000: ath5k-Add-missing-AR5K_EEPROM_READ-in-at.patch -#Patch02001: stub-out-the-SAN-req-s-in-int13.patch -Patch02002: ipxe-Makefile-fix-issues-of-build-reprod.patch -Patch02003: help-compiler-out-by-initializing-array.patch -Patch02004: Silence-GCC-12-spurious-warnings.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 roms/edk2/: -Patch04000: Ignore-spurious-GCC-12-warning.patch -# Patches applied in roms/skiboot/: -Patch05000: Makefile-define-endianess-for-cross-buil.patch -# Patches applied in roms/qboot/: -Patch11000: qboot-add-cross.ini-file-to-handle-aarch.patch -# Patches applied in roms/opensbi/: -Patch13000: Makefile-fix-build-with-binutils-2.38.patch - -# Patches that will be applied directly across the spec file -Source1000: stub-out-the-SAN-req-s-in-int13.patch - -# Please do not add patches manually here. - +Source1000: qemu-rpmlintrc BuildRoot: %{_tmppath}/%{name}-%{version}-build - -%if "%{name}" == "qemu-linux-user" -# Build dependencies exclusive to qemu-linux-user -BuildRequires: glib2-devel-static >= 2.56 -BuildRequires: glibc-devel-static -BuildRequires: zlib-devel-static -BuildRequires: (pcre-devel-static if glib2-devel-static < 2.73 else pcre2-devel-static) -# we must not install the qemu-linux-user package when under QEMU build -%if 0%{?qemu_user_space_build:1} -#!BuildIgnore: post-build-checks -%endif -# End of build dependencies for qemu-linux-user -%else -# Build dependencies exclusive to qemu +## Packages we REQUIRE during build %if %{build_x86_firmware} %ifnarch %ix86 x86_64 # We must cross-compile on non-x86* @@ -262,28 +116,51 @@ BuildRequires: cross-ppc64-gcc%gcc_version %endif %ifarch x86_64 BuildRequires: gcc-32bit +%if %{with_xen} BuildRequires: xen-devel >= 4.2 +%endif BuildRequires: pkgconfig(libpmem) %endif %ifnarch %arm s390x BuildRequires: libnuma-devel %endif +%if 0%{with canokey} +BuildRequires: canokey-qemu-devel +%endif %if 0%{?with_daxctl} BuildRequires: pkgconfig(libndctl) %endif -%if 0%{?with_rbd} -BuildRequires: librbd-devel -%endif -%if 0%{?with_uring} -BuildRequires: pkgconfig(liburing) >= %liburing_min_version -%endif %if %{kvm_available} BuildRequires: pkgconfig(udev) %endif +%if 0%{?with_rbd} +BuildRequires: librbd-devel +%endif +%if 0%{with spice} +BuildRequires: pkgconfig(spice-protocol) >= 0.12.3 +BuildRequires: pkgconfig(spice-server) >= 0.12.5 +%endif +%if 0%{?with_uring} +BuildRequires: pkgconfig(liburing) >= %liburing_min_version +%endif +%if 0%{with xdp} +BuildRequires: libxdp-devel +%endif +%if 0%{?suse_version} >= 1600 +BuildRequires: python3-Sphinx +BuildRequires: python3-base >= 3.8 +%else +BuildRequires: python311-Sphinx +BuildRequires: python311-base +%endif BuildRequires: Mesa-devel BuildRequires: bison BuildRequires: brlapi-devel +BuildRequires: discount +BuildRequires: fdupes BuildRequires: flex +BuildRequires: gcc-c++ +BuildRequires: keyutils-devel BuildRequires: libaio-devel BuildRequires: libattr-devel BuildRequires: libbpf-devel @@ -292,10 +169,11 @@ BuildRequires: libcapstone-devel BuildRequires: libfdt-devel >= 1.4.2 BuildRequires: libgcrypt-devel >= 1.8.0 BuildRequires: lzfse-devel +BuildRequires: meson BuildRequires: multipath-tools-devel +BuildRequires: ninja >= 1.7 BuildRequires: pam-devel BuildRequires: pkgconfig -BuildRequires: python3-Sphinx BuildRequires: rdma-core-devel BuildRequires: snappy-devel BuildRequires: update-desktop-files @@ -316,6 +194,7 @@ BuildRequires: pkgconfig(libdrm) BuildRequires: pkgconfig(libiscsi) >= 1.9.0 BuildRequires: pkgconfig(libjpeg) BuildRequires: pkgconfig(libnfs) >= 1.9.3 +BuildRequires: pkgconfig(libpipewire-0.3) BuildRequires: pkgconfig(libpng) BuildRequires: pkgconfig(libpulse) BuildRequires: pkgconfig(libsasl2) @@ -326,10 +205,9 @@ BuildRequires: pkgconfig(libusb-1.0) >= 1.0.13 BuildRequires: pkgconfig(libzstd) BuildRequires: pkgconfig(lzo2) BuildRequires: pkgconfig(ncurses) +BuildRequires: pkgconfig(openssl) >= 1.0.0 BuildRequires: pkgconfig(pixman-1) >= 0.21.8 BuildRequires: pkgconfig(slirp) >= 4.2.0 -BuildRequires: pkgconfig(spice-protocol) >= 0.12.3 -BuildRequires: pkgconfig(spice-server) >= 0.12.5 BuildRequires: pkgconfig(systemd) BuildRequires: pkgconfig(vdeplug) BuildRequires: pkgconfig(virglrenderer) >= 0.4.1 @@ -337,17 +215,70 @@ BuildRequires: pkgconfig(vte-2.91) BuildRequires: pkgconfig(xkbcommon) BuildRequires: pkgconfig(zlib) %{?systemd_ordering} -# End of build dependencies for qemu +## Packages we will REQUIRE +%if %{kvm_available} +Requires(post): acl +Requires(post): udev %endif -# Common build dependencies between qemu and qemu-linux-user -BuildRequires: fdupes -BuildRequires: gcc-c++ -BuildRequires: meson -BuildRequires: ninja >= 1.7 -BuildRequires: python3-base >= 3.6 -BuildRequires: python3-setuptools -%if "%{name}" == "qemu" -# Requires, Recommends, etc exclusive to qemu +Requires(post): coreutils +Requires: group(kvm) +Requires: group(qemu) +Requires: user(qemu) +# Due to change in where some documentation files are, if qemu-guest-agent +# is installed, we need to make sure we update it to our version. +Requires: (qemu-guest-agent = %{version} if qemu-guest-agent) +## Packages we will RECOMMEND +%ifarch s390x +Recommends: qemu-hw-s390x-virtio-gpu-ccw +%else +Recommends: qemu-hw-display-qxl +Recommends: qemu-hw-display-virtio-gpu +Recommends: qemu-hw-display-virtio-gpu-pci +Recommends: qemu-hw-display-virtio-vga +Recommends: qemu-hw-usb-host +Recommends: qemu-hw-usb-redirect +Recommends: qemu-hw-usb-smartcard +%if 0%{with spice} +Recommends: qemu-ui-spice-app +%endif +# End of "ifarch s390x" +%endif +%if %{kvm_available} +Recommends: kvm_stat +%endif +Recommends: qemu-block-curl +Recommends: qemu-block-nfs +Recommends: qemu-ksm = %{version} +Recommends: qemu-tools +Recommends: qemu-ui-curses +## Packages we will SUGGEST +%if 0%{?with_rbd} +Suggests: qemu-block-rbd +%endif +Suggests: qemu-accel-qtest +Suggests: qemu-block-dmg +Suggests: qemu-block-gluster +Suggests: qemu-block-iscsi +Suggests: qemu-block-ssh +Suggests: qemu-chardev-baum +Suggests: qemu-extra +Suggests: qemu-lang +Suggests: qemu-microvm +Suggests: qemu-skiboot +Suggests: qemu-vhost-user-gpu +Suggests: qemu-ui-gtk +Suggests: qemu-doc +## Packages we PROVIDE +Provides: kvm = %{version} +Provides: qemu-kvm = %{version} +## Pacakges we OBSOLETE (and CONFLICT) +Obsoletes: kvm <= %{version} +Obsoletes: qemu-audio-oss < %{version} +Obsoletes: qemu-audio-sdl < %{version} +Obsoletes: qemu-kvm <= %{version} +Obsoletes: qemu-sgabios <= 8 +Obsoletes: qemu-ui-sdl < %{version} +## What we do with the main emulator depends on the architecture we're on %if %{kvm_available} %ifarch %ix86 x86_64 Requires: qemu-x86 @@ -370,132 +301,13 @@ Requires: qemu-arm %else Suggests: qemu-arm %endif -Requires(post): acl -Requires(post): udev -Recommends: kvm_stat +%ifarch riscv64 +Requires: qemu-extra +%else +Suggests: qemu-extra +%endif # End of "if kvm_available" %endif -Requires: group(kvm) -Requires: group(qemu) -Requires: user(qemu) -Requires(post): coreutils -%ifarch s390x -Recommends: qemu-hw-s390x-virtio-gpu-ccw -%else -# Due to change in where some documentation files are, if qemu-guest-agent -# is installed, we need to make sure we update it to our version. -Requires: (qemu-guest-agent = %{qemuver} if qemu-guest-agent) -Recommends: qemu-hw-display-qxl -Recommends: qemu-hw-display-virtio-gpu -Recommends: qemu-hw-display-virtio-gpu-pci -Recommends: qemu-hw-display-virtio-vga -Recommends: qemu-hw-usb-host -Recommends: qemu-hw-usb-redirect -Recommends: qemu-hw-usb-smartcard -Recommends: qemu-ui-gtk -Recommends: qemu-ui-spice-app -# End of "ifarch s390x" -%endif -Recommends: qemu-block-curl -Recommends: qemu-block-nfs -Recommends: qemu-ksm = %{qemuver} -Recommends: qemu-tools -Recommends: qemu-ui-curses -%if 0%{?with_rbd} -Suggests: qemu-block-rbd -%endif -Suggests: qemu-accel-qtest -Suggests: qemu-block-dmg -Suggests: qemu-block-gluster -Suggests: qemu-block-iscsi -Suggests: qemu-block-ssh -Suggests: qemu-chardev-baum -Suggests: qemu-extra -Suggests: qemu-lang -Suggests: qemu-microvm -Suggests: qemu-skiboot -Suggests: qemu-vhost-user-gpu -Obsoletes: qemu-audio-oss < %{qemuver} -Obsoletes: qemu-audio-sdl < %{qemuver} -Obsoletes: qemu-ui-sdl < %{qemuver} -# End of Requires, Recommends, etc for qemu. -# There isn't any for qemu-linux-user. -%endif - -%package headless -Summary: Minimum set of packages for having a functional QEMU -Group: System/Emulators/PC -Version: %{qemuver} -Release: 0 -Requires: qemu -Requires: qemu-tools -%if %{legacy_qemu_kvm} -Requires: qemu-kvm -%endif -Requires: qemu-hw-usb-redirect -# qemu-ui-spice-core will bring in qemu-audio-spice qemu-ui-opengl too -Requires: qemu-ui-spice-core -Requires: qemu-chardev-spice - -%description headless -%{generic_qemu_description} - -This meta-package brings in, as dependencies, the minimum set of packages -currently necessary for having a functional (headless) QEMU/KVM stack. - -%if "%{name}" == "qemu-linux-user" -# Description and files for the qemu-linux-user package - -%description -QEMU provides CPU emulation along with other related capabilities. This package -provides programs to run user space binaries and libraries meant for another -architecture. The syscall interface is intercepted and execution below the -syscall layer occurs on the native hardware and operating system. - -%files -%defattr(-, root, root) -%doc README.rst VERSION -%license COPYING COPYING.LIB LICENSE -%_bindir/qemu-aarch64 -%_bindir/qemu-aarch64_be -%_bindir/qemu-alpha -%_bindir/qemu-arm -%_bindir/qemu-armeb -%_bindir/qemu-cris -%_bindir/qemu-hexagon -%_bindir/qemu-hppa -%_bindir/qemu-i386 -%_bindir/qemu-loongarch64 -%_bindir/qemu-m68k -%_bindir/qemu-microblaze -%_bindir/qemu-microblazeel -%_bindir/qemu-mips -%_bindir/qemu-mips64 -%_bindir/qemu-mips64el -%_bindir/qemu-mipsel -%_bindir/qemu-mipsn32 -%_bindir/qemu-mipsn32el -%_bindir/qemu-nios2 -%_bindir/qemu-or1k -%_bindir/qemu-ppc -%_bindir/qemu-ppc64 -%_bindir/qemu-ppc64le -%_bindir/qemu-riscv32 -%_bindir/qemu-riscv64 -%_bindir/qemu-s390x -%_bindir/qemu-sh4 -%_bindir/qemu-sh4eb -%_bindir/qemu-sparc -%_bindir/qemu-sparc32plus -%_bindir/qemu-sparc64 -%_bindir/qemu-x86_64 -%_bindir/qemu-xtensa -%_bindir/qemu-xtensaeb -%_sbindir/qemu-binfmt-conf.sh - -# End of description and files for qemu-linux-user -%else -# Description and files for qemu and all its subpackages %description %{generic_qemu_description} @@ -503,7 +315,18 @@ syscall layer occurs on the native hardware and operating system. This package acts as an umbrella package to the other QEMU sub-packages. %files -%defattr(-, root, root) +%if %{kvm_available} +%ifarch s390x +%{_prefix}/lib/modules-load.d/kvm.conf +%endif +/usr/lib/udev/rules.d/80-kvm.rules +# End of "if kvm_available" +%endif +%if %{legacy_qemu_kvm} +%doc %_docdir/qemu-kvm +%_mandir/man1/qemu-kvm.1.gz +%endif +%_bindir/qemu-kvm %dir %_datadir/icons/hicolor %dir %_datadir/icons/hicolor/*/ %dir %_datadir/icons/hicolor/*/apps @@ -514,13 +337,6 @@ This package acts as an umbrella package to the other QEMU sub-packages. %dir %_sysconfdir/%name/firmware %dir /usr/lib/supportconfig %dir /usr/lib/supportconfig/plugins -%doc %_docdir/%name -%if %{kvm_available} -%ifarch s390x -%{_prefix}/lib/modules-load.d/kvm.conf -%endif -/usr/lib/udev/rules.d/80-kvm.rules -%endif %_datadir/applications/qemu.desktop %_datadir/icons/hicolor/16x16/apps/qemu.png %_datadir/icons/hicolor/24x24/apps/qemu.png @@ -536,15 +352,11 @@ This package acts as an umbrella package to the other QEMU sub-packages. %_datadir/%name/qemu-ifup %_datadir/%name/qemu-nsis.bmp %_datadir/%name/trace-events-all -%_datadir/%name/vhost-user/50-qemu-virtiofsd.json %_mandir/man1/%name.1.gz -%_mandir/man1/qemu-storage-daemon.1.gz -%_mandir/man1/virtiofsd.1.gz %_mandir/man7/qemu-block-drivers.7.gz %_mandir/man7/qemu-cpu-models.7.gz %_mandir/man7/qemu-qmp-ref.7.gz %_mandir/man7/qemu-ga-ref.7.gz -%_mandir/man7/qemu-storage-daemon-qmp-ref.7.gz /usr/lib/supportconfig/plugins/%name %license COPYING COPYING.LIB LICENSE @@ -574,1101 +386,23 @@ fi # Nor can we have modules require the right version of qemu and qemu-tools # as Xen reuses our qemu-tools but does not want our qemu and qemu-x86. %define qemu_module_conflicts \ -Conflicts: %name < %{qemuver}-%{release} \ -Conflicts: %name > %{qemuver}-%{release} \ -Conflicts: qemu-tools < %{qemuver}-%{release} \ -Conflicts: qemu-tools > %{qemuver}-%{release} - -%package x86 -Summary: Machine emulator and virtualizer for x86 architectures -Group: System/Emulators/PC -Version: %{qemuver} -Release: 0 -Requires: %name = %{qemuver} -Requires: qemu-accel-tcg-x86 -Requires: qemu-ipxe -Requires: qemu-seabios -Requires: qemu-sgabios -Requires: qemu-vgabios -%ifarch x86_64 -Requires: qemu-ovmf-x86_64 -%else -Recommends: qemu-ovmf-ia32 -Recommends: qemu-ovmf-x86_64 -%endif -Recommends: ovmf -Recommends: qemu-microvm - -%description x86 -%{generic_qemu_description} - -This package provides i386 and x86_64 emulation. - -%files x86 -%defattr(-, root, root) -%_bindir/qemu-system-i386 -%_bindir/qemu-system-x86_64 -%_datadir/%name/kvmvapic.bin -%_datadir/%name/linuxboot.bin -%_datadir/%name/linuxboot_dma.bin -%_datadir/%name/multiboot.bin -%_datadir/%name/multiboot_dma.bin -%_datadir/%name/pvh.bin -%doc %_docdir/qemu-x86 - -%package ppc -Summary: Machine emulator and virtualizer for Power architectures -Group: System/Emulators/PC -Version: %{qemuver} -Release: 0 -Requires: %name = %{qemuver} -Requires: qemu-SLOF -Recommends: qemu-ipxe -Recommends: qemu-vgabios - -%description ppc -%{generic_qemu_description} - -This package provides ppc and ppc64 emulation. - -%files ppc -%defattr(-, root, root) -%_bindir/qemu-system-ppc -%_bindir/qemu-system-ppc64 -%_datadir/%name/bamboo.dtb -%_datadir/%name/canyonlands.dtb -%_datadir/%name/openbios-ppc -%_datadir/%name/qemu_vga.ndrv -%_datadir/%name/u-boot.e500 -%_datadir/%name/u-boot-sam460-20100605.bin -%_datadir/%name/vof*.bin -%doc %_docdir/qemu-ppc - -%package s390x -Summary: Machine emulator and virtualizer for S/390 architectures -Group: System/Emulators/PC -Version: %{qemuver} -Release: 0 -Requires: %name = %{qemuver} -Provides: qemu-s390 = %{qemuver} -Obsoletes: qemu-s390 < %{qemuver} - -%description s390x -%{generic_qemu_description} - -This package provides s390x emulation. - -%files s390x -%defattr(-, root, root) -%_bindir/qemu-system-s390x -%_datadir/%name/s390-ccw.img -%_datadir/%name/s390-netboot.img -%doc %_docdir/qemu-s390x - -%package arm -Summary: Machine emulator and virtualizer for ARM architectures -Group: System/Emulators/PC -Version: %{qemuver} -Release: 0 -Requires: %name = %{qemuver} -Recommends: ovmf -Recommends: qemu-ipxe -Recommends: qemu-uefi-aarch64 -Recommends: qemu-vgabios - -%description arm -%{generic_qemu_description} - -This package provides arm emulation. - -%files arm -%defattr(-, root, root) -%_bindir/qemu-system-arm -%_bindir/qemu-system-aarch64 -%_datadir/%name/npcm7xx_bootrom.bin -%doc %_docdir/qemu-arm - -%package extra -Summary: Machine emulator and virtualizer for "extra" architectures -Group: System/Emulators/PC -Version: %{qemuver} -Release: 0 -Requires: %name = %{qemuver} -Recommends: qemu-ipxe -Recommends: qemu-skiboot -Recommends: qemu-vgabios - -%description extra -%{generic_qemu_description} - -This package provides some lesser used emulations, including alpha, m68k, -mips, sparc, and xtensa. (The term "extra" is juxtapositioned against more -popular QEMU packages which are dedicated to a single architecture.) - -%files extra -%defattr(-, root, root) -%_bindir/qemu-system-alpha -%_bindir/qemu-system-avr -%_bindir/qemu-system-cris -%_bindir/qemu-system-hppa -%_bindir/qemu-system-loongarch64 -%_bindir/qemu-system-m68k -%_bindir/qemu-system-microblaze -%_bindir/qemu-system-microblazeel -%_bindir/qemu-system-mips -%_bindir/qemu-system-mipsel -%_bindir/qemu-system-mips64 -%_bindir/qemu-system-mips64el -%_bindir/qemu-system-nios2 -%_bindir/qemu-system-or1k -%_bindir/qemu-system-riscv32 -%_bindir/qemu-system-riscv64 -%_bindir/qemu-system-rx -%_bindir/qemu-system-sh4 -%_bindir/qemu-system-sh4eb -%_bindir/qemu-system-sparc -%_bindir/qemu-system-sparc64 -%_bindir/qemu-system-tricore -%_bindir/qemu-system-xtensa -%_bindir/qemu-system-xtensaeb -%_datadir/%name/hppa-firmware.img -%_datadir/%name/openbios-sparc32 -%_datadir/%name/openbios-sparc64 -%_datadir/%name/opensbi-riscv32-generic-fw_dynamic.bin -%_datadir/%name/opensbi-riscv64-generic-fw_dynamic.bin -%_datadir/%name/palcode-clipper -%_datadir/%name/petalogix-ml605.dtb -%_datadir/%name/petalogix-s3adsp1800.dtb -%_datadir/%name/QEMU,cgthree.bin -%_datadir/%name/QEMU,tcx.bin - -%package lang -Summary: Translations for QEMU -Group: System/Emulators/PC -Version: %{qemuver} -Release: 0 - -%description lang -This package contains a few language translations, particularly for the -graphical user interface components that come with QEMU. The bulk of strings -in QEMU are not localized. - -%files lang -f %blddir/%name.lang -%defattr(-, root, root) - -%package audio-alsa -Summary: ALSA based audio support for QEMU -Group: System/Emulators/PC -Version: %{qemuver} -Release: 0 -%{qemu_module_conflicts} - -%description audio-alsa -This package contains a module for ALSA based audio support for QEMU. - -%files audio-alsa -%defattr(-, root, root) -%dir %_libdir/%name -%_libdir/%name/audio-alsa.so - -%package audio-dbus -Summary: D-Bus based audio support for QEMU -Group: System/Emulators/PC -Version: %{qemuver} -Release: 0 -%{qemu_module_conflicts} - -%description audio-dbus -This package provides a module for D-Bus based audio support for QEMU. - -%files audio-dbus -%defattr(-, root, root) -%dir %_libdir/%name -%_libdir/%name/audio-dbus.so - -%package audio-pa -Summary: Pulse Audio based audio support for QEMU -Group: System/Emulators/PC -Version: %{qemuver} -Release: 0 -%{qemu_module_conflicts} - -%description audio-pa -This package contains a module for Pulse Audio based audio support for QEMU. - -%files audio-pa -%defattr(-, root, root) -%dir %_libdir/%name -%_libdir/%name/audio-pa.so - -%package audio-jack -Summary: JACK based audio support for QEMU -Group: System/Emulators/PC -Version: %{qemuver} -Release: 0 -%{qemu_module_conflicts} - -%description audio-jack -This package contains a module for JACK based audio support for QEMU. - -%files audio-jack -%defattr(-, root, root) -%dir %_libdir/%name -%_libdir/%name/audio-jack.so - -%package audio-spice -Summary: Spice based audio support for QEMU -Group: System/Emulators/PC -Version: %{qemuver} -Release: 0 -Requires: qemu-ui-spice-core -%{qemu_module_conflicts} - -%description audio-spice -This package contains a module for Spice based audio support for QEMU. - -%files audio-spice -%defattr(-, root, root) -%dir %_libdir/%name -%_libdir/%name/audio-spice.so - -%package audio-oss -Summary: OSS based audio support for QEMU -Group: System/Emulators/PC -Version: %{qemuver} -Release: 0 -%{qemu_module_conflicts} - -%description audio-oss -This package contains a module for OSS based audio support for QEMU. - -%files audio-oss -%defattr(-, root, root) -%dir %_libdir/%name -%_libdir/%name/audio-oss.so - -%package block-curl -Summary: cURL block support for QEMU -Group: System/Emulators/PC -Version: %{qemuver} -Release: 0 -%{qemu_module_conflicts} - -%description block-curl -This package contains a module for accessing network-based image files over -a network connection from qemu-img tool and QEMU system emulation. - -%files block-curl -%defattr(-, root, root) -%dir %_libdir/%name -%_libdir/%name/block-curl.so - -%package block-dmg -Summary: DMG block support for QEMU -Group: System/Emulators/PC -Version: %{qemuver} -Release: 0 -%{qemu_module_conflicts} - -%description block-dmg -This package contains a module for accessing Mac OS X image files from -qemu-img tool and QEMU system emulation. - -%files block-dmg -%defattr(-, root, root) -%dir %_libdir/%name -%_libdir/%name/block-dmg-bz2.so -%_libdir/%name/block-dmg-lzfse.so - -%package block-gluster -Summary: GlusterFS block support for QEMU -Group: System/Emulators/PC -Version: %{qemuver} -Release: 0 -%{qemu_module_conflicts} - -%description block-gluster -This package contains a module for accessing network-based image files over a -GlusterFS network connection from qemu-img tool and QEMU system emulation. - -%files block-gluster -%defattr(-, root, root) -%dir %_libdir/%name -%_libdir/%name/block-gluster.so - -%package block-iscsi -Summary: iSCSI block support for QEMU -Group: System/Emulators/PC -Version: %{qemuver} -Release: 0 -%{qemu_module_conflicts} - -%description block-iscsi -This package contains a module for accessing network-based image files over an -iSCSI network connection from qemu-img tool and QEMU system emulation. - -%files block-iscsi -%defattr(-, root, root) -%dir %_libdir/%name -%_libdir/%name/block-iscsi.so - -%package block-nfs -Summary: direct Network File System support for QEMU -Group: System/Emulators/PC -Version: %{qemuver} -Release: 0 -%{qemu_module_conflicts} - -%description block-nfs -This package contains a module for directly accessing nfs based image files -for QEMU. - -%files block-nfs -%defattr(-, root, root) -%dir %_libdir/%name -%_libdir/%name/block-nfs.so - -%package block-ssh -Summary: SSH (SFTP) block support for QEMU -Group: System/Emulators/PC -Version: %{qemuver} -Release: 0 -%{qemu_module_conflicts} - -%description block-ssh -This package contains a module for accessing network-based image files over an -SSH network connection from qemu-img tool and QEMU system emulation. - -%files block-ssh -%defattr(-, root, root) -%dir %_libdir/%name -%_libdir/%name/block-ssh.so - -%package chardev-baum -Summary: Baum braille chardev support for QEMU -Group: System/Emulators/PC -Version: %{qemuver} -Release: 0 -%{qemu_module_conflicts} - -%description chardev-baum -This package contains a module for baum braille chardev support for QEMU. - -%files chardev-baum -%defattr(-, root, root) -%dir %_datadir/%name -%dir %_libdir/%name -%_libdir/%name/chardev-baum.so - -%package chardev-spice -Summary: Spice vmc and port chardev support for QEMU -Group: System/Emulators/PC -Version: %{qemuver} -Release: 0 -Requires: qemu-ui-spice-core -%{qemu_module_conflicts} - -%description chardev-spice -This package contains a module for Spice chardev support for QEMU. - -%files chardev-spice -%defattr(-, root, root) -%dir %_datadir/%name -%dir %_libdir/%name -%_libdir/%name/chardev-spice.so - -%package hw-display-qxl -Summary: QXL display support for QEMU -Group: System/Emulators/PC -Version: %{qemuver} -Release: 0 -Requires: qemu-ui-spice-core -%{qemu_module_conflicts} - -%description hw-display-qxl -This package contains a module for QXL display support for QEMU. - -%files hw-display-qxl -%defattr(-, root, root) -%dir %_datadir/%name -%dir %_libdir/%name -%_libdir/%name/hw-display-qxl.so - -%package hw-display-virtio-gpu -Summary: Virtio GPU display support for QEMU -Group: System/Emulators/PC -Version: %{qemuver} -Release: 0 -%{qemu_module_conflicts} - -%description hw-display-virtio-gpu -This package contains a module for Virtio GPU display support for QEMU. - -%files hw-display-virtio-gpu -%defattr(-, root, root) -%dir %_datadir/%name -%_libdir/%name/hw-display-virtio-gpu.so -%_libdir/%name/hw-display-virtio-gpu-gl.so - -%package hw-display-virtio-gpu-pci -Summary: Virtio-gpu pci device for QEMU -Group: System/Emulators/PC -Version: %{qemuver} -Release: 0 -Requires: qemu-hw-display-virtio-gpu -%{qemu_module_conflicts} - -%description hw-display-virtio-gpu-pci -This package contains a module providing the virtio gpu pci device for QEMU. - -%files hw-display-virtio-gpu-pci -%defattr(-, root, root) -%dir %_datadir/%name -%dir %_libdir/%name -%_libdir/%name/hw-display-virtio-gpu-pci.so -%_libdir/%name/hw-display-virtio-gpu-pci-gl.so - -%package hw-display-virtio-vga -Summary: Virtio vga device for QEMU -Group: System/Emulators/PC -Version: %{qemuver} -Release: 0 -%{qemu_module_conflicts} - -%description hw-display-virtio-vga -This package contains a module providing the virtio vga device for QEMU. - -%files hw-display-virtio-vga -%defattr(-, root, root) -%dir %_datadir/%name -%dir %_libdir/%name -%_libdir/%name/hw-display-virtio-vga.so -%_libdir/%name/hw-display-virtio-vga-gl.so - -%package hw-s390x-virtio-gpu-ccw -Summary: S390x virtio-gpu ccw device for QEMU -Group: System/Emulators/PC -Version: %{qemuver} -Release: 0 -Requires: qemu-hw-display-virtio-gpu -%{qemu_module_conflicts} - -%description hw-s390x-virtio-gpu-ccw -This package contains a module providing the s390x virtio gpu ccw device for -QEMU. - -%files hw-s390x-virtio-gpu-ccw -%defattr(-, root, root) -%dir %_datadir/%name -%dir %_libdir/%name -%_libdir/%name/hw-s390x-virtio-gpu-ccw.so - -%package hw-usb-redirect -Summary: USB redirection support for QEMU -Group: System/Emulators/PC -Version: %{qemuver} -Release: 0 -%{qemu_module_conflicts} - -%description hw-usb-redirect -This package contains a module for USB redirection support for QEMU. - -%files hw-usb-redirect -%defattr(-, root, root) -%dir %_datadir/%name -%dir %_libdir/%name -%_libdir/%name/hw-usb-redirect.so - -%package hw-usb-smartcard -Summary: USB smartcard support for QEMU -Group: System/Emulators/PC -Version: %{qemuver} -Release: 0 -%{qemu_module_conflicts} - -%description hw-usb-smartcard -This package contains a modules for USB smartcard support for QEMU. - -%files hw-usb-smartcard -%defattr(-, root, root) -%dir %_datadir/%name -%dir %_libdir/%name -%_libdir/%name/hw-usb-smartcard.so - -%package hw-usb-host -Summary: USB passthrough driver support for QEMU -Group: System/Emulators/PC -Version: %{qemuver} -Release: 0 -%{qemu_module_conflicts} - -%description hw-usb-host -This package contains a modules for USB passthrough driver for QEMU. - -%files hw-usb-host -%defattr(-, root, root) -%dir %_datadir/%name -%dir %_libdir/%name -%_libdir/%name/hw-usb-host.so - -%package ui-dbus -Summary: D-Bus based UI support for QEMU -Group: System/Emulators/PC -Version: %{qemuver} -Release: 0 -%{qemu_module_conflicts} - -%description ui-dbus -This package contains a module for doing D-Bus based UI for QEMU. - -%files ui-dbus -%defattr(-, root, root) -%dir %_libdir/%name -%_libdir/%name/ui-dbus.so - -%package ui-curses -Summary: Curses based UI support for QEMU -Group: System/Emulators/PC -Version: %{qemuver} -Release: 0 -%{qemu_module_conflicts} - -%description ui-curses -This package contains a module for doing curses based UI for QEMU. - -%files ui-curses -%defattr(-, root, root) -%dir %_libdir/%name -%_libdir/%name/ui-curses.so - -%package ui-gtk -Summary: GTK based UI support for QEMU -Group: System/Emulators/PC -Version: %{qemuver} -Release: 0 -Requires: qemu-ui-opengl -%{qemu_module_conflicts} - -%description ui-gtk -This package contains a module for doing GTK based UI for QEMU. - -%files ui-gtk -%defattr(-, root, root) -%dir %_libdir/%name -%_libdir/%name/ui-gtk.so - -%package ui-opengl -Summary: OpenGL based UI support for QEMU -Group: System/Emulators/PC -Version: %{qemuver} -Release: 0 -%{qemu_module_conflicts} - -%description ui-opengl -This package contains a module for doing OpenGL based UI for QEMU. - -%files ui-opengl -%defattr(-, root, root) -%dir %_datadir/%name -%dir %_libdir/%name -%_libdir/%name/ui-egl-headless.so -%_libdir/%name/ui-opengl.so - -%package ui-spice-app -Summary: Spice UI support for QEMU -Group: System/Emulators/PC -Version: %{qemuver} -Release: 0 -Requires: qemu-chardev-spice -Requires: qemu-ui-spice-core -%{qemu_module_conflicts} - -%description ui-spice-app -This package contains a module for doing Spice based UI for QEMU. - -%files ui-spice-app -%defattr(-, root, root) -%dir %_libdir/%name -%_libdir/%name/ui-spice-app.so - -%package ui-spice-core -Summary: Core Spice support for QEMU -Group: System/Emulators/PC -Version: %{qemuver} -Release: 0 -Requires: qemu-ui-opengl -# This next Requires is only since virt-manager expects audio support -Requires: qemu-audio-spice -%{qemu_module_conflicts} - -%description ui-spice-core -This package contains a module with core Spice support for QEMU. - -%files ui-spice-core -%defattr(-, root, root) -%dir %_datadir/%name -%dir %_libdir/%name -%_libdir/%name/ui-spice-core.so - -%package vhost-user-gpu -Summary: Vhost user mode virtio-gpu 2D/3D rendering backend for QEMU -Group: System/Emulators/PC -Version: %{qemuver} -Release: 0 -%{qemu_module_conflicts} - -%description vhost-user-gpu -This package contains a vhost user mode virtio-gpu 2D/3D rendering backend for -QEMU. - -%files vhost-user-gpu -%defattr(-, root, root) -%dir %_datadir/%name/vhost-user -%_datadir/%name/vhost-user/50-qemu-gpu.json -%_libexecdir/vhost-user-gpu - -%package tools -Summary: Tools for QEMU -Group: System/Emulators/PC -Version: %{qemuver} -Release: 0 -Requires(pre): permissions -Requires: group(kvm) -Recommends: multipath-tools -Recommends: qemu-block-curl -%if 0%{?with_rbd} -Recommends: qemu-block-rbd -%endif - -%description tools -This package contains various QEMU related tools, including a bridge helper, -a virtfs helper, ivshmem, disk utilities and scripts for various purposes. - -%files tools -%defattr(-, root, root) -%_bindir/analyze-migration.py -%_bindir/qemu-edid -%_bindir/qemu-img -%_bindir/qemu-io -%_bindir/qemu-keymap -%_bindir/qemu-nbd -%_bindir/qemu-pr-helper -%_bindir/qemu-storage-daemon -%_bindir/vmstate-static-checker.py -%_bindir/vmxcap -%verify(not mode) %attr(4750,root,kvm) %_libexecdir/qemu-bridge-helper -%_libexecdir/virtfs-proxy-helper -%_libexecdir/virtiofsd -%_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(noreplace) %_sysconfdir/%name/bridge.conf - -%post tools -%set_permissions %_libexecdir/qemu-bridge-helper - -%verifyscript tools -%verify_permissions %_libexecdir/qemu-bridge-helper - -%package ivshmem-tools -Summary: Inter-VM Shared Memory Tools for QEMU -Group: System/Emulators/PC -Version: %{qemuver} -Release: 0 - -%description ivshmem-tools -This package contains a sample shared memory client and server which utilize -QEMU's Inter-VM shared memory device as specified by the ivshmem client-server -protocol specification documented in docs/specs/ivshmem-spec.txt in QEMU source -code. - -%files ivshmem-tools -%defattr(-, root, root) -%dir %_datadir/%name -%_bindir/ivshmem-client -%_bindir/ivshmem-server - -%package guest-agent -Summary: Guest agent for QEMU -Group: System/Emulators/PC -Version: %{qemuver} -Release: 0 -Requires: group(kvm) -Requires(post): udev -Supplements: modalias(acpi*:QEMU0002%3A*) -Supplements: modalias(pci:v00005853d00000001sv*sd*bc*sc*i*) -Supplements: modalias(pci:v0000FFFDd00000101sv*sd*bc*sc*i*) -%{?systemd_ordering} - -%description guest-agent -This package contains the QEMU guest agent. It is installed in the linux guest -to provide information and control at the guest OS level. - -%files guest-agent -%defattr(-, root, root) -%attr(0755,root,kvm) %_bindir/qemu-ga -%_mandir/man8/qemu-ga.8.gz -%{_unitdir}/qemu-guest-agent.service -/usr/lib/udev/rules.d/80-qemu-ga.rules - -%pre guest-agent -%service_add_pre qemu-guest-agent.service - -%post guest-agent -%service_add_post qemu-guest-agent.service -if [ -e /dev/virtio-ports/org.qemu.guest_agent.0 ]; then - /usr/bin/systemctl start qemu-guest-agent.service || : -fi - -%preun guest-agent -if [ -e /dev/virtio-ports/org.qemu.guest_agent.0 ]; then - /usr/bin/systemctl stop qemu-guest-agent.service || : -fi - -%postun guest-agent -%service_del_postun_without_restart qemu-guest-agent.service -if [ "$1" = "1" ] ; then - if [ -e /dev/virtio-ports/org.qemu.guest_agent.0 ]; then - /usr/bin/systemctl restart qemu-guest-agent.service || : - fi -fi - -%package ksm -Summary: Kernel Samepage Merging services -Group: System/Emulators/PC -Version: %{qemuver} -Release: 0 -Requires(pre): coreutils -Requires(post): coreutils - -%description ksm -Kernel Samepage Merging (KSM) is a memory-saving de-duplication feature, that -merges anonymous (private) pages (not pagecache ones). - -This package provides a service file for starting and stopping KSM. - -%files ksm -%defattr(-, root, root) -%{_unitdir}/ksm.service - -%pre ksm -%service_add_pre ksm.service - -%post ksm -%service_add_post ksm.service - -%preun ksm -%service_del_preun ksm.service - -%postun ksm -%service_del_postun ksm.service - -%package accel-tcg-x86 -Summary: TCG accelerator for QEMU -Group: System/Emulators/PC -Version: %{qemuver} -Release: 0 -%{qemu_module_conflicts} - -%description accel-tcg-x86 -TCG is the QEMU binary translator, responsible for converting from target to -host instruction set. - -This package provides the TCG accelerator for QEMU. - -%files accel-tcg-x86 -%defattr(-, root, root) -%dir %_datadir/%name -%dir %_libdir/%name -%_libdir/%name/accel-tcg-i386.so -%_libdir/%name/accel-tcg-x86_64.so - -%package accel-qtest -Summary: QTest accelerator for QEMU -Group: System/Emulators/PC -Version: %{qemuver} -Release: 0 -%{qemu_module_conflicts} - -%description accel-qtest -QTest is a device emulation testing framework. It is useful to test device -models. - -This package provides QTest accelerator for testing QEMU. - -%files accel-qtest -%defattr(-, root, root) -%dir %_datadir/%name -%dir %_libdir/%name -%_libdir/%name/accel-qtest-aarch64.so -%_libdir/%name/accel-qtest-alpha.so -%_libdir/%name/accel-qtest-arm.so -%_libdir/%name/accel-qtest-avr.so -%_libdir/%name/accel-qtest-cris.so -%_libdir/%name/accel-qtest-hppa.so -%_libdir/%name/accel-qtest-i386.so -%_libdir/%name/accel-qtest-loongarch64.so -%_libdir/%name/accel-qtest-m68k.so -%_libdir/%name/accel-qtest-microblaze.so -%_libdir/%name/accel-qtest-microblazeel.so -%_libdir/%name/accel-qtest-mips.so -%_libdir/%name/accel-qtest-mips64.so -%_libdir/%name/accel-qtest-mips64el.so -%_libdir/%name/accel-qtest-mipsel.so -%_libdir/%name/accel-qtest-nios2.so -%_libdir/%name/accel-qtest-or1k.so -%_libdir/%name/accel-qtest-ppc.so -%_libdir/%name/accel-qtest-ppc64.so -%_libdir/%name/accel-qtest-riscv32.so -%_libdir/%name/accel-qtest-riscv64.so -%_libdir/%name/accel-qtest-rx.so -%_libdir/%name/accel-qtest-s390x.so -%_libdir/%name/accel-qtest-sh4.so -%_libdir/%name/accel-qtest-sh4eb.so -%_libdir/%name/accel-qtest-sparc.so -%_libdir/%name/accel-qtest-sparc64.so -%_libdir/%name/accel-qtest-tricore.so -%_libdir/%name/accel-qtest-x86_64.so -%_libdir/%name/accel-qtest-xtensa.so -%_libdir/%name/accel-qtest-xtensaeb.so - -%if 0%{?with_rbd} -%package block-rbd -Summary: Rados Block Device (Ceph) support for QEMU -Group: System/Emulators/PC -Version: %{qemuver} -Release: 0 -%{qemu_module_conflicts} - -%description block-rbd -This package contains a module for accessing ceph (rbd,rados) image files -for QEMU. - -%files block-rbd -%defattr(-, root, root) -%dir %_libdir/%name -%_libdir/%name/block-rbd.so -# End of "if with_rbd" -%endif - -%if %{legacy_qemu_kvm} -%package kvm -Summary: Wrapper to enable KVM acceleration under QEMU -Group: System/Emulators/PC -Version: %{qemuver} -Release: 0 -%ifarch %ix86 x86_64 -Requires: qemu-x86 = %{qemuver} -%endif -%ifarch s390x -Requires: qemu-s390x = %{qemuver} -%endif -Provides: kvm = %{qemuver} -Obsoletes: kvm < %{qemuver} - -%description kvm -%{generic_qemu_description} - -This package provides a symlink to the main QEMU emulator used for KVM -virtualization. The symlink is named qemu-kvm, which causes the QEMU program -to enable the KVM accelerator, due to the name reference ending with 'kvm'. -This package is an artifact of the early origins of QEMU, and is deprecated. - -%files kvm -%defattr(-,root,root) -%_bindir/qemu-kvm -%doc %_docdir/qemu-kvm -%_mandir/man1/qemu-kvm.1.gz -# End of "if legacy_qemu_kvm" -%endif - -%if %{build_ppc_firmware} -%package SLOF -Summary: Slimline Open Firmware - SLOF -Group: System/Emulators/PC -Version: %{qemuver} -Release: 0 -BuildArch: noarch - -%description SLOF -Slimline Open Firmware (SLOF) is an implementation of the IEEE 1275 standard. -It can be used as partition firmware for pSeries machines running on QEMU or KVM. - -%files SLOF -%defattr(-, root, root) -%dir %_datadir/%name -%_datadir/%name/slof.bin - -%package skiboot -Summary: OPAL firmware (aka skiboot), used in booting OpenPOWER systems -Group: System/Emulators/PC -Version: %{qemuver} -Release: 0 -BuildArch: noarch -Requires(post): update-alternatives -Requires(postun):update-alternatives - -%description skiboot -Provides OPAL (OpenPower Abstraction Layer) firmware, aka skiboot, as -traditionally packaged with QEMU. - -%files skiboot -%defattr(-, root, root) -%dir %_datadir/%name -%_datadir/%name/skiboot.lid -%_datadir/%name/skiboot.lid.qemu -%ghost %_sysconfdir/alternatives/skiboot.lid - -%post skiboot -update-alternatives --install \ - %{_datadir}/%name/skiboot.lid skiboot.lid %{_datadir}/%name/skiboot.lid.qemu 15 - -%preun skiboot -if [ ! -f %{_datadir}/%name/skiboot.lid.qemu ] ; then - update-alternatives --remove skiboot.lid %{_datadir}/%name/skiboot.lid.qemu -fi -# End of "if build_ppc_firmware" -%endif - -%if %{build_x86_firmware} -%package microvm -Summary: x86 MicroVM firmware for QEMU -Group: System/Emulators/PC -Version: %{qemuver} -Release: 0 -BuildArch: noarch - -%description microvm -This package provides minimal x86 firmware for booting certain guests under -QEMU. qboot provides the minimum resources needed to boot PVH and bzImages. -bios-microvm, created from a minimal seabios configuration, provides slightly -wider support than qboot, but still focuses on quick boot up. - -%files microvm -%defattr(-, root, root) -%dir %_datadir/%name -%_datadir/%name/bios-microvm.bin -%_datadir/%name/qboot.rom - -%package seabios -Summary: x86 Legacy BIOS for QEMU -Group: System/Emulators/PC -Version: %{sbver} -Release: 0 -BuildArch: noarch -Conflicts: %name < 1.6.0 - -%description seabios -SeaBIOS is an open source implementation of a 16bit x86 BIOS. SeaBIOS -is the default and legacy BIOS for QEMU. - -%files seabios -%defattr(-, root, root) -%dir %_datadir/%name -%_datadir/%name/bios.bin -%_datadir/%name/bios-256k.bin -%_datadir/%name/firmware/50-seabios-256k.json -%_datadir/%name/firmware/60-seabios-128k.json - -%package vgabios -Summary: VGA BIOSes for QEMU -Group: System/Emulators/PC -Version: %{sbver} -Release: 0 -BuildArch: noarch -Conflicts: %name < 1.6.0 - -%description vgabios -VGABIOS provides the video ROM BIOSes for the following variants of VGA -emulated devices: Std VGA, QXL, Cirrus CLGD 5446 and VMware emulated -video card. For use with QEMU. - -%files vgabios -%defattr(-, root, root) -%dir %_datadir/%name -%_datadir/%name/vgabios.bin -%_datadir/%name/vgabios-ati.bin -%_datadir/%name/vgabios-bochs-display.bin -%_datadir/%name/vgabios-cirrus.bin -%_datadir/%name/vgabios-qxl.bin -%_datadir/%name/vgabios-ramfb.bin -%_datadir/%name/vgabios-stdvga.bin -%_datadir/%name/vgabios-virtio.bin -%_datadir/%name/vgabios-vmware.bin - -%package sgabios -Summary: Serial Graphics Adapter BIOS for QEMU -Group: System/Emulators/PC -Version: 8 -Release: 0 -BuildArch: noarch -Conflicts: %name < 1.6.0 - -%description sgabios -The Google Serial Graphics Adapter BIOS or SGABIOS provides a means for legacy -x86 software to communicate with an attached serial console as if a video card -were attached. For use with QEMU. - -%files sgabios -%defattr(-, root, root) -%dir %_datadir/%name -%_datadir/%name/sgabios.bin - -%package ipxe -Summary: PXE ROMs for QEMU NICs -Group: System/Emulators/PC -Version: 1.0.0+ -Release: 0 -BuildArch: noarch -Conflicts: %name < 1.6.0 - -%description ipxe -Provides Preboot Execution Environment (PXE) ROM support for various emulated -network adapters available with QEMU. - -%files ipxe -%defattr(-, root, root) -%dir %_datadir/%name -%_datadir/%name/efi-e1000.rom -%_datadir/%name/efi-e1000e.rom -%_datadir/%name/efi-eepro100.rom -%_datadir/%name/efi-ne2k_pci.rom -%_datadir/%name/efi-pcnet.rom -%_datadir/%name/efi-rtl8139.rom -%_datadir/%name/efi-virtio.rom -%_datadir/%name/efi-vmxnet3.rom -%_datadir/%name/pxe-e1000.rom -%_datadir/%name/pxe-eepro100.rom -%_datadir/%name/pxe-ne2k_pci.rom -%_datadir/%name/pxe-pcnet.rom -%_datadir/%name/pxe-rtl8139.rom -%_datadir/%name/pxe-virtio.rom -# End of "if build_x86_firmware" -%endif - -# End of description and files for qemu and all its subpackages -%endif +Conflicts: %name < %{version}-%{release} \ +Conflicts: %name > %{version}-%{release} \ +Conflicts: qemu-tools < %{version}-%{release} \ +Conflicts: qemu-tools > %{version}-%{release} %prep -#if 0%{?sle_version} <= 150400 -# Apparently, autosetup does not work, not even in 15.4. So, -# keep 'setup' plus the generated list of patches here for a -# while. Hopefully we'll be able to get rid of this soon enough. -#setup -q -n %{srcname}-%{expand:%%(SV=%{srcver};echo ${SV%%%%+git*})} -#PATCH_EXEC -#else -#autosetup -p1 -n %{srcname}-%{expand:%%(SV=%{srcver};echo ${SV%%%%+git*})} -%autosetup -p1 -n %{srcname}-%{srcver} -#endif +%autosetup -n qemu-%{version} -p1 -%if "%{name}" == "qemu" -# Specific preparation steps for building qemu +# We have the meson subprojects there, but as submodules (because OBS +# SCM bridge can handle the latter, but not the former) so we need to +# apply the layering of the packagefiles manually +meson subprojects packagefiles --apply berkeley-testfloat-3 +meson subprojects packagefiles --apply berkeley-softfloat-3 # for the record, this set of firmware files is installed, but we don't -# build (yet): bamboo.dtb canyonlands.dtb hppa-firmware.img openbios-ppc -# openbios-sparc32 openbios-sparc64 palcode-clipper petalogix-ml605.dtb +# build (yet): bamboo.dtb canyonlands.dtb hppa-firmware.img hppa-firmware.img 64 +# openbios-ppc openbios-sparc32 openbios-sparc64 palcode-clipper petalogix-ml605.dtb # petalogix-s3adsp1800.dtb QEMU,cgthree.bin QEMU,tcx.bin qemu_vga.ndrv # u-boot.e500 u-boot-sam460-20100605.bin opensbi-riscv32-generic-fw_dynamic.bin # opensbi-riscv32-generic-fw_dynamic.elfnpcm7xx_bootrom.bin vof.bin @@ -1690,7 +424,7 @@ network adapters available with QEMU. multiboot_dma.bin kvmvapic.bin pvh.bin} %define x86_extra_firmware {bios.bin bios-256k.bin bios-microvm.bin qboot.rom \ pxe-e1000.rom pxe-eepro100.rom pxe-ne2k_pci.rom pxe-pcnet.rom pxe-rtl8139.rom \ -pxe-virtio.rom sgabios.bin vgabios-ati.bin vgabios-bochs-display.bin \ +pxe-virtio.rom vgabios-ati.bin vgabios-bochs-display.bin \ vgabios.bin vgabios-cirrus.bin vgabios-qxl.bin vgabios-ramfb.bin \ vgabios-stdvga.bin vgabios-virtio.bin vgabios-vmware.bin \ efi-e1000.rom efi-e1000e.rom efi-eepro100.rom efi-ne2k_pci.rom efi-pcnet.rom \ @@ -1738,19 +472,34 @@ efi-rtl8139.rom efi-virtio.rom efi-vmxnet3.rom} %{?s390x_default_built_firmware} %{?s390x_extra_built_firmware} \ %{?x86_default_built_firmware} %{?x86_extra_built_firmware} } -# End of source preparation for qemu -%endif - %build +%define rpmfilesdir %{_builddir}/qemu-%{version}/rpm + %if %{legacy_qemu_kvm} -# FIXME: Why are we copying the s390 specific one (SOURCE13)? -cp %{SOURCE13} docs/supported.rst +# FIXME: Why are we copying the s390 specific one? +cp %{rpmfilesdir}/supported.s390.txt docs/supported.rst sed -i '/^\ \ \ about\/index.*/i \ \ \ supported.rst' docs/index.rst %endif +# When generating an upstream release tarball, the following commands +# are run (see scripts/make-release): +# (cd roms/seabios && git describe --tags --long --dirty > .version) +# (cd roms/skiboot && ./make_version.sh > .version) +# This has not happened for the archive we're using, since it's cloned +# from a git branch. We, therefore, assumed that the following commands +# have been run, and the result committed to the repository (with seabios +# and skiboot at the proper commit/tag/...): +# git -C roms/seabios describe --tags --long --dirty > rpm/seabios_version +# (cd roms/skiboot && ./make_version.sh > ../../rpm/skiboot_version) +cp %{rpmfilesdir}/seabios_version roms/seabios/.version +cp %{rpmfilesdir}/skiboot_version roms/skiboot/.version +find . -iname ".git" -exec rm -rf {} + + mkdir -p %blddir cd %blddir +export USER=abuild +export HOSTNAME=OBS # is used in roms/SLOF/Makefile.gen (boo#1084909) # We define a few general and common options and then we disable # pretty much everything. Afterwards, there is a section for each @@ -1770,9 +519,14 @@ cd %blddir # because, for them, ix86 == i686 (while for us it's i586). # Let's try to stick to _FORTIFY_SOURCE=2 for now -EXTRA_CFLAGS="$(echo %{optflags} | sed -E 's/-[A-Z]?_FORTIFY_SOURCE[=]?[0-9]*//g') -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2" +EXTRA_CFLAGS="$(echo %{optflags} | sed -E 's/-[A-Z]?_FORTIFY_SOURCE[=]?[0-9]*//g') -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -Wno-error" %srcdir/configure \ +%if 0%{?suse_version} >= 1600 + --python=%_bindir/python3 \ +%else + --python=%_bindir/python3.11 \ +%endif --docdir=%_docdir \ --datadir=%_datadir \ --extra-cflags="${EXTRA_CFLAGS}" \ @@ -1781,10 +535,9 @@ EXTRA_CFLAGS="$(echo %{optflags} | sed -E 's/-[A-Z]?_FORTIFY_SOURCE[=]?[0-9]*//g --libexecdir=%_libexecdir \ --localstatedir=%_localstatedir \ --prefix=%_prefix \ - --python=%_bindir/python3 \ --sysconfdir=%_sysconfdir \ - --with-git-submodules=ignore \ --with-pkgversion="%(echo '%{distro}' | sed 's/ (.*)//')" \ + --disable-af-xdp \ --disable-alsa \ --disable-attr \ --disable-auth-pam \ @@ -1813,6 +566,7 @@ EXTRA_CFLAGS="$(echo %{optflags} | sed -E 's/-[A-Z]?_FORTIFY_SOURCE[=]?[0-9]*//g --disable-debug-tcg \ --disable-dmg \ --disable-docs \ + --disable-download \ --disable-dsound \ --disable-fdt \ --disable-fuse \ @@ -1825,7 +579,7 @@ EXTRA_CFLAGS="$(echo %{optflags} | sed -E 's/-[A-Z]?_FORTIFY_SOURCE[=]?[0-9]*//g --disable-gtk \ --disable-guest-agent \ --disable-guest-agent-msi \ - --disable-hax \ + --disable-hv-balloon \ --disable-hvf \ --disable-iconv \ --disable-jack \ @@ -1833,6 +587,7 @@ EXTRA_CFLAGS="$(echo %{optflags} | sed -E 's/-[A-Z]?_FORTIFY_SOURCE[=]?[0-9]*//g --disable-l2tpv3 \ --disable-libdaxctl \ --disable-libiscsi \ + --disable-libkeyutils \ --disable-libnfs \ --disable-libpmem \ --disable-libssh \ @@ -1860,6 +615,8 @@ EXTRA_CFLAGS="$(echo %{optflags} | sed -E 's/-[A-Z]?_FORTIFY_SOURCE[=]?[0-9]*//g --disable-pa \ --disable-parallels \ --disable-pie \ + --disable-pipewire \ + --disable-pixman \ --disable-plugins \ --disable-png \ --disable-pvrdma \ @@ -1868,8 +625,10 @@ EXTRA_CFLAGS="$(echo %{optflags} | sed -E 's/-[A-Z]?_FORTIFY_SOURCE[=]?[0-9]*//g --disable-qom-cast-debug \ --disable-rbd \ --disable-rdma \ + --disable-relocatable \ --disable-replication \ --disable-rng-none \ + --disable-rutabaga-gfx \ --disable-safe-stack \ --disable-sanitizers \ --disable-sdl \ @@ -1902,7 +661,6 @@ EXTRA_CFLAGS="$(echo %{optflags} | sed -E 's/-[A-Z]?_FORTIFY_SOURCE[=]?[0-9]*//g --disable-vhost-vdpa \ --disable-virglrenderer \ --disable-virtfs \ - --disable-virtiofsd \ --disable-vnc \ --disable-vnc-jpeg \ --disable-vnc-sasl \ @@ -1915,34 +673,24 @@ EXTRA_CFLAGS="$(echo %{optflags} | sed -E 's/-[A-Z]?_FORTIFY_SOURCE[=]?[0-9]*//g --disable-xkbcommon \ --disable-zstd \ --without-default-devices \ -%if %{with system_membarrier} - --enable-membarrier \ -%endif -%if %{with malloc_trim} - --enable-malloc-trim \ -%endif -%if "%{_lto_cflags}" != "%{nil}" - --enable-lto \ -%endif -%if "%{name}" == "qemu-linux-user" - --disable-install-blobs \ - --enable-attr \ - --enable-coroutine-pool \ - --enable-linux-user \ - --enable-selinux \ - --enable-tcg \ - --static \ +%if 0%{?suse_version} >= 1600 + --audio-drv-list=pipewire,pa,alsa,jack,oss \ %else - --audio-drv-list=pa,alsa,jack,oss \ - --enable-auth-pam \ + --audio-drv-list=pa,pipewire,alsa,jack,oss \ +%endif %ifarch x86_64 --enable-avx2 \ --enable-libpmem \ +%if %{with_xen} --enable-xen \ --enable-xen-pci-passthrough \ %endif -%ifnarch %arm s390x - --enable-numa \ +%endif +%if 0%{with xdp} + --enable-af-xdp \ +%endif +%if 0%{with canokey} + --enable-canokey \ %endif %if %{kvm_available} --enable-kvm \ @@ -1953,14 +701,30 @@ EXTRA_CFLAGS="$(echo %{optflags} | sed -E 's/-[A-Z]?_FORTIFY_SOURCE[=]?[0-9]*//g %if 0%{?with_uring} --enable-linux-io-uring \ %endif +%if "%{_lto_cflags}" != "%{nil}" + --enable-lto \ +%endif +%if %{with malloc_trim} + --enable-malloc-trim \ +%endif +%if %{with system_membarrier} + --enable-membarrier \ +%endif +%ifnarch %arm s390x + --enable-numa \ +%endif %if 0%{?with_rbd} --enable-rbd \ +%endif +%if %{has_rutabaga_gfx} + --enable-rutabaga-gfx \ %endif --enable-alsa \ --enable-attr \ + --enable-auth-pam \ --enable-bochs \ - --enable-brlapi \ --enable-bpf \ + --enable-brlapi \ --enable-bzip2 \ --enable-cap-ng \ --enable-capstone \ @@ -1979,10 +743,12 @@ EXTRA_CFLAGS="$(echo %{optflags} | sed -E 's/-[A-Z]?_FORTIFY_SOURCE[=]?[0-9]*//g --enable-gnutls \ --enable-gtk \ --enable-guest-agent \ + --enable-hv-balloon \ --enable-iconv \ --enable-jack \ --enable-l2tpv3 \ --enable-libiscsi \ + --enable-libkeyutils \ --enable-libnfs \ --enable-libssh \ --enable-libudev \ @@ -1998,20 +764,25 @@ EXTRA_CFLAGS="$(echo %{optflags} | sed -E 's/-[A-Z]?_FORTIFY_SOURCE[=]?[0-9]*//g --enable-pa \ --enable-parallels \ --enable-pie \ + --enable-pipewire \ + --enable-pixman \ --enable-png \ --enable-pvrdma \ --enable-qcow1 \ --enable-qed \ --enable-rdma \ + --enable-relocatable \ --enable-replication \ --enable-seccomp \ --enable-selinux \ + --enable-slirp \ --enable-slirp-smbd \ - --enable-slirp=system \ --enable-smartcard \ --enable-snappy \ +%if 0%{with spice} --enable-spice \ --enable-spice-protocol \ +%endif --enable-system \ --enable-tcg \ --enable-tools \ @@ -2027,7 +798,6 @@ EXTRA_CFLAGS="$(echo %{optflags} | sed -E 's/-[A-Z]?_FORTIFY_SOURCE[=]?[0-9]*//g --enable-vhost-vdpa \ --enable-virglrenderer \ --enable-virtfs \ - --enable-virtiofsd \ --enable-vnc \ --enable-vnc-jpeg \ --enable-vnc-sasl \ @@ -2038,14 +808,11 @@ EXTRA_CFLAGS="$(echo %{optflags} | sed -E 's/-[A-Z]?_FORTIFY_SOURCE[=]?[0-9]*//g --enable-zstd \ --with-coroutine=ucontext \ --with-default-devices -# End of configure option ("name == qemu-linux-user" above) -%endif echo "=== Content of config-host.mak: ===" cat config-host.mak echo "=== ===" -%if "%{name}" == "qemu" # For building QEMU and all the "default" firmwares, for each arch, # for the package qemu, we first need to delete the firmware files that # we intend to build... @@ -2055,13 +822,9 @@ for i in %built_firmware do unlink %srcdir/pc-bios/$i done -# End of unlinking pre-built firmwares for qemu -%endif -# Common build steps for qemu and qemu-linux-user %make_build -%if "%{name}" == "qemu" # ... Then, we need to reinstate the firmwares that have been built already for i in %{?s390x_default_built_firmware} do @@ -2093,6 +856,17 @@ done %make_build %{?_smp_mflags} -C %srcdir/roms bios \ SEABIOS_EXTRAVERSION="-rebuilt.opensuse.org" \ +pushd %srcdir/roms/seabios/docs +for f in *.md +do + b="${f%.md}" + # Ensure the correct media type + markdown "${f}" >"${b}.html" + # Links to b.md will be rendered as to b + ln -Ts "${b}.html" "${b}" +done +popd + # FIXME: check if we can upstream: roms-Makefile-add-cross-file-to-qboot-me.patch # and qboot-add-cross.ini-file-to-handle-aarch.patch %make_build -C %srcdir/roms qboot @@ -2103,20 +877,12 @@ done %make_build -C %srcdir/roms pxerom -%make_build -C %srcdir/roms efirom \ - EDK2_BASETOOLS_OPTFLAGS='-fPIE' - -# We're currently not building firmware on ix86, but let's make sure this works -# fine if one enables it, e.g., locally (for debugging or something). -# FIXME: check if we can get rid or upstream: roms-sgabios-Fix-csum8-to-be-built-by-ho.patch -make -C %srcdir/roms sgabios HOSTCC=cc \ -%ifnarch %ix86 x86_64 - CC=x86_64-suse-linux-gcc LD=x86_64-suse-linux-ld \ -%endif +%make_build -C %srcdir/roms edk2-basetools EXTRA_OPTFLAGS='-fPIE' +%make_build -C %srcdir/roms efirom %if %{force_fit_virtio_pxe_rom} pushd %srcdir -patch -p1 < %_sourcedir/stub-out-the-SAN-req-s-in-int13.patch +patch -p1 < %{rpmfilesdir}/openSUSE-pcbios-stub-out-the-SAN-req-s-i.patch popd %make_build -C %srcdir/roms pxerom_variants=virtio pxerom_targets=1af41000 pxerom %endif @@ -2128,7 +894,7 @@ for i in %supported_nics_large %unsupported_nics exit 1 fi if test "`stat -c '%s' %srcdir/pc-bios/pxe-$i.rom`" -le "65536" ; then - ./%srcdir/roms/ipxe/src/util/padimg.pl %srcdir/pc-bios/pxe-$i.rom -s 65536 -b 255 + %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 @@ -2142,52 +908,35 @@ done # End of "if build_x86_firmware" %endif -# End of the build for qemu -%endif - %install cd %blddir %make_build install DESTDIR=%{buildroot} -%if "%{name}" == "qemu-linux-user" -# Additional installation steps specific to qemu-linux-user - -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 - -# End of additional installation steps for qemu-linux-user -%else -# Additional installation steps specific to qemu - %find_lang %name install -d -m 0755 %{buildroot}%_datadir/%name/firmware install -d -m 0755 %{buildroot}/usr/lib/supportconfig/plugins install -d -m 0755 %{buildroot}%_sysconfdir/%name/firmware -install -D -m 0644 %{SOURCE4} %{buildroot}%_sysconfdir/%name/bridge.conf -install -D -m 0755 %{SOURCE3} %{buildroot}%_datadir/%name/qemu-ifup -install -D -p -m 0644 %{SOURCE8} %{buildroot}/usr/lib/udev/rules.d/80-qemu-ga.rules +install -D -m 0644 %{rpmfilesdir}/bridge.conf %{buildroot}%_sysconfdir/%name/bridge.conf +install -D -m 0755 %{rpmfilesdir}/qemu-ifup %{buildroot}%_datadir/%name/qemu-ifup +install -D -p -m 0644 %{rpmfilesdir}/80-qemu-ga.rules %{buildroot}/usr/lib/udev/rules.d/80-qemu-ga.rules install -D -m 0755 scripts/analyze-migration.py %{buildroot}%_bindir/analyze-migration.py install -D -m 0755 scripts/vmstate-static-checker.py %{buildroot}%_bindir/vmstate-static-checker.py install -D -m 0755 scripts/kvm/vmxcap %{buildroot}%_bindir/vmxcap -install -D -m 0755 %{SOURCE9} %{buildroot}/usr/lib/supportconfig/plugins/%name -install -D -m 0644 %{SOURCE10} %{buildroot}%_docdir/qemu-arm/supported.txt -install -D -m 0644 %{SOURCE11} %{buildroot}%_docdir/qemu-ppc/supported.txt -install -D -m 0644 %{SOURCE12} %{buildroot}%_docdir/qemu-x86/supported.txt -install -D -m 0644 %{SOURCE13} %{buildroot}%_docdir/qemu-s390x/supported.txt +install -D -m 0755 %{rpmfilesdir}/qemu-supportconfig %{buildroot}/usr/lib/supportconfig/plugins/%name +install -D -m 0644 %{rpmfilesdir}/supported.arm.txt %{buildroot}%_docdir/qemu-arm/supported.txt +install -D -m 0644 %{rpmfilesdir}/supported.ppc.txt %{buildroot}%_docdir/qemu-ppc/supported.txt +install -D -m 0644 %{rpmfilesdir}/supported.x86.txt %{buildroot}%_docdir/qemu-x86/supported.txt +install -D -m 0644 %{rpmfilesdir}/supported.s390.txt %{buildroot}%_docdir/qemu-s390x/supported.txt %if %{legacy_qemu_kvm} -install -D -m 0644 %{SOURCE5} %{buildroot}%_mandir/man1/qemu-kvm.1.gz +install -D -m 0644 %{rpmfilesdir}/qemu-kvm.1.gz %{buildroot}%_mandir/man1/qemu-kvm.1.gz install -d %{buildroot}%_docdir/qemu-kvm # FIXME: Why do we onlly generate the HTML for the legacy package documentation? %ifarch s390x -ln -s qemu-system-s390x %{buildroot}%_bindir/qemu-kvm 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-system-x86_64 %{buildroot}%_bindir/qemu-kvm ln -s ../qemu-x86/supported.txt %{buildroot}%_docdir/qemu-kvm/kvm-supported.txt rst2html --exit-status=2 %{buildroot}%_docdir/qemu-x86/supported.txt %{buildroot}%_docdir/qemu-kvm/kvm-supported.html # End of "ifarch s390x" @@ -2195,13 +944,20 @@ rst2html --exit-status=2 %{buildroot}%_docdir/qemu-x86/supported.txt %{buildroot # End of "if legacy_qemu_kvm" %endif -%if %{kvm_available} -install -D -m 0644 %{SOURCE1} %{buildroot}/usr/lib/udev/rules.d/80-kvm.rules +%ifarch aarch64 %arm %ix86 ppc ppc64 ppc64le riscv64 s390x x86_64 +%ifarch ppc64le +%define qemu_arch ppc64 %endif -install -D -p -m 0644 %{SOURCE7} %{buildroot}%{_unitdir}/qemu-guest-agent.service -install -D -p -m 0644 %{SOURCE6} %{buildroot}%{_unitdir}/ksm.service +ln -s qemu-system-%{qemu_arch} %{buildroot}%_bindir/qemu-kvm +%endif + +%if %{kvm_available} +install -D -m 0644 %{rpmfilesdir}/80-kvm.rules %{buildroot}/usr/lib/udev/rules.d/80-kvm.rules +%endif +install -D -p -m 0644 %{rpmfilesdir}/qemu-guest-agent.service %{buildroot}%{_unitdir}/qemu-guest-agent.service +install -D -p -m 0644 %{rpmfilesdir}/ksm.service %{buildroot}%{_unitdir}/ksm.service %ifarch s390x -install -D -m 0644 %{SOURCE2} %{buildroot}%{_prefix}/lib/modules-load.d/kvm.conf +install -D -m 0644 %{rpmfilesdir}/kvm.conf %{buildroot}%{_prefix}/lib/modules-load.d/kvm.conf # End of "if kvm_available" %endif @@ -2253,8 +1009,9 @@ done # a bit special in many ways already. %if %{build_x86_firmware} -install -D -m 0644 %{SOURCE14} %{buildroot}%_datadir/%name/firmware/50-seabios-256k.json -install -D -m 0644 %{SOURCE15} %{buildroot}%_datadir/%name/firmware/60-seabios-128k.json +install -D -m 0644 %{rpmfilesdir}/50-seabios-256k.json %{buildroot}%_datadir/%name/firmware/50-seabios-256k.json +install -D -m 0644 %{rpmfilesdir}/60-seabios-128k.json %{buildroot}%_datadir/%name/firmware/60-seabios-128k.json +install -d -m 0755 %{buildroot}%_docdir/qemu-seabios %else for f in %{x86_extra_firmware} ; do unlink %{buildroot}%_datadir/%name/$f @@ -2264,28 +1021,28 @@ done %suse_update_desktop_file qemu -# End of additional installation steps for qemu -%endif - # Common install steps for qemu and qemu-linux-user %fdupes -s %{buildroot} %check cd %blddir -%if "%{name}" == "qemu" -# Let's try to run 'make check' for the qemu package - # Patch 'increase x86_64 physical bits to 42' requires that the DSDT used for # acpi [q]tests is modified too. But it's binary, and that means we cannot # do that in the patch itself. Instead, we keep a copy of the binary in the # package sources, and put it in place now, before the tests themselves. # If that patch is removed, the following line needs to go as well. -cp %{SOURCE201} %{srcdir}/tests/data/acpi/microvm/ +cp %{rpmfilesdir}/DSDT.pcie %{srcdir}/tests/data/acpi/microvm/ + +# Patch 'tests/acpi: update tables for new core count test' requires some new +# binaries to be introcuded too. Let's copy them in place as well +cp %{rpmfilesdir}/APIC.core-count2 %{rpmfilesdir}/DSDT.core-count2 %{rpmfilesdir}/FACP.core-count2 %{srcdir}/tests/data/acpi/q35/ %if 0%{?qemu_user_space_build} # Seccomp is not supported by linux-user emulation echo 'int main (void) { return 0; }' > %{srcdir}/tests/unit/test-seccomp.c +# keyctl is not yet supported by linux-user emulation +echo 'int main (void) { return 0; }' > %{srcdir}/tests/unit/test-crypto-secret.c %endif # Compile the QOM test binary first, so that ... @@ -2311,43 +1068,988 @@ make -O V=1 VERBOSE=1 -j1 check-qtest # enable this at a later point #make -O V=1 VERBOSE=1 -j1 check-report.junit.xml -# End of checks for qemu -%else -# Let's run the relevant check for the qemu-linux-user package +%if 0%{with spice} +%package spice +Summary: Modules and packages for SPICE +Group: System/Emulators/PC +Requires: qemu-audio-spice +Requires: qemu-chardev-spice +Requires: qemu-headless +Requires: qemu-hw-display-qxl +Requires: qemu-hw-usb-redirect +Requires: qemu-ui-spice-core -%ifarch %ix86 -%define qemu_arch i386 +%description spice +%{generic_qemu_description} + +This meta-package brings in, as dependencies, the modules and packages +necessary for having SPICE working for your VMs. + +%files spice + +%package audio-spice +Summary: Spice based audio support for QEMU +Group: System/Emulators/PC +Requires: qemu-ui-spice-core = %{version}-%{release} +%{qemu_module_conflicts} + +%description audio-spice +This package contains a module for Spice based audio support for QEMU. + +%files audio-spice +%dir %_libdir/%name +%_libdir/%name/audio-spice.so + +%package chardev-spice +Summary: Spice vmc and port chardev support for QEMU +Group: System/Emulators/PC +Requires: qemu-ui-spice-core = %{version}-%{release} +%{qemu_module_conflicts} + +%description chardev-spice +This package contains a module for Spice chardev support for QEMU. + +%files chardev-spice +%dir %_datadir/%name +%dir %_libdir/%name +%_libdir/%name/chardev-spice.so + +%package ui-spice-app +Summary: Spice UI support for QEMU +Group: System/Emulators/PC +Requires: qemu-chardev-spice = %{version}-%{release} +Requires: qemu-ui-spice-core = %{version}-%{release} +%{qemu_module_conflicts} + +%description ui-spice-app +This package contains a module for doing Spice based UI for QEMU. + +%files ui-spice-app +%dir %_libdir/%name +%_libdir/%name/ui-spice-app.so + +%package ui-spice-core +Summary: Core Spice support for QEMU +Group: System/Emulators/PC +Requires: qemu-ui-opengl +# This next Requires is only since virt-manager expects audio support +Requires: qemu-audio-spice = %{version}-%{release} +%{qemu_module_conflicts} + +%description ui-spice-core +This package contains a module with core Spice support for QEMU. + +%files ui-spice-core +%dir %_datadir/%name +%dir %_libdir/%name +%_libdir/%name/ui-spice-core.so + +%package hw-display-qxl +Summary: QXL display support for QEMU +Group: System/Emulators/PC +Requires: qemu-ui-spice-core = %{version}-%{release} +%{qemu_module_conflicts} + +%description hw-display-qxl +This package contains a module for QXL display support for QEMU. + +%files hw-display-qxl +%dir %_datadir/%name +%dir %_libdir/%name +%_libdir/%name/hw-display-qxl.so + +# End of "with spice" %endif + +%package headless +Summary: Minimum set of packages for having a functional QEMU +Group: System/Emulators/PC +Requires: qemu +Requires: qemu-block-curl +Requires: qemu-block-nfs +Requires: qemu-img +%if %{has_virtiofsd} +Requires: virtiofsd +%endif +Recommends: qemu-tools + +%description headless +%{generic_qemu_description} + +This meta-package brings in, as dependencies, the minimum set of packages +currently necessary for having a functional (headless) QEMU/KVM stack. + +%files headless + +%package x86 +Summary: Machine emulator and virtualizer for x86 architectures +Group: System/Emulators/PC +Requires: %name = %{version} +Requires: qemu-accel-tcg-x86 +Requires: qemu-ipxe +Requires: qemu-seabios +Requires: qemu-vgabios %ifarch x86_64 -%define qemu_arch x86_64 +Requires: qemu-ovmf-x86_64 +%else +Recommends: qemu-ovmf-ia32 +Recommends: qemu-ovmf-x86_64 %endif -%ifarch %arm -%define qemu_arch arm +Recommends: ovmf +Recommends: qemu-microvm + +%description x86 +%{generic_qemu_description} + +This package provides i386 and x86_64 emulation. + +%files x86 +%_bindir/qemu-system-i386 +%_bindir/qemu-system-x86_64 +%_datadir/%name/kvmvapic.bin +%_datadir/%name/linuxboot.bin +%_datadir/%name/linuxboot_dma.bin +%_datadir/%name/multiboot.bin +%_datadir/%name/multiboot_dma.bin +%_datadir/%name/pvh.bin +%doc %_docdir/qemu-x86 + +%package ppc +Summary: Machine emulator and virtualizer for Power architectures +Group: System/Emulators/PC +Requires: %name = %{version} +Requires: qemu-SLOF +Recommends: qemu-ipxe +Recommends: qemu-vgabios + +%description ppc +%{generic_qemu_description} + +This package provides ppc and ppc64 emulation. + +%files ppc +%_bindir/qemu-system-ppc +%_bindir/qemu-system-ppc64 +%_datadir/%name/bamboo.dtb +%_datadir/%name/canyonlands.dtb +%_datadir/%name/openbios-ppc +%_datadir/%name/qemu_vga.ndrv +%_datadir/%name/u-boot.e500 +%_datadir/%name/u-boot-sam460-20100605.bin +%_datadir/%name/vof*.bin +%doc %_docdir/qemu-ppc + +%package s390x +Summary: Machine emulator and virtualizer for S/390 architectures +Group: System/Emulators/PC +Requires: %name = %{version} +Provides: qemu-s390 = %{version} +Obsoletes: qemu-s390 < %{version} + +%description s390x +%{generic_qemu_description} + +This package provides s390x emulation. + +%files s390x +%_bindir/qemu-system-s390x +%_datadir/%name/s390-ccw.img +%_datadir/%name/s390-netboot.img +%doc %_docdir/qemu-s390x + +%package arm +Summary: Machine emulator and virtualizer for ARM architectures +Group: System/Emulators/PC +Requires: %name = %{version} +Recommends: ovmf +Recommends: qemu-ipxe +Recommends: qemu-uefi-aarch64 +Recommends: qemu-vgabios + +%description arm +%{generic_qemu_description} + +This package provides arm emulation. + +%files arm +%_bindir/qemu-system-arm +%_bindir/qemu-system-aarch64 +%_datadir/%name/npcm7xx_bootrom.bin +%doc %_docdir/qemu-arm + +%package extra +Summary: Machine emulator and virtualizer for "extra" architectures +Group: System/Emulators/PC +Requires: %name = %{version} +Recommends: qemu-ipxe +Recommends: qemu-skiboot +Recommends: qemu-vgabios + +%description extra +%{generic_qemu_description} + +This package provides some lesser used emulations, including alpha, m68k, +mips, sparc, and xtensa. (The term "extra" is juxtapositioned against more +popular QEMU packages which are dedicated to a single architecture.) + +%files extra +%_bindir/qemu-system-alpha +%_bindir/qemu-system-avr +%_bindir/qemu-system-cris +%_bindir/qemu-system-hppa +%_bindir/qemu-system-loongarch64 +%_bindir/qemu-system-m68k +%_bindir/qemu-system-microblaze +%_bindir/qemu-system-microblazeel +%_bindir/qemu-system-mips +%_bindir/qemu-system-mipsel +%_bindir/qemu-system-mips64 +%_bindir/qemu-system-mips64el +%_bindir/qemu-system-nios2 +%_bindir/qemu-system-or1k +%_bindir/qemu-system-riscv32 +%_bindir/qemu-system-riscv64 +%_bindir/qemu-system-rx +%_bindir/qemu-system-sh4 +%_bindir/qemu-system-sh4eb +%_bindir/qemu-system-sparc +%_bindir/qemu-system-sparc64 +%_bindir/qemu-system-tricore +%_bindir/qemu-system-xtensa +%_bindir/qemu-system-xtensaeb +%_datadir/%name/hppa-firmware.img +%_datadir/%name/hppa-firmware64.img +%_datadir/%name/openbios-sparc32 +%_datadir/%name/openbios-sparc64 +%_datadir/%name/opensbi-riscv32-generic-fw_dynamic.bin +%_datadir/%name/opensbi-riscv64-generic-fw_dynamic.bin +%_datadir/%name/palcode-clipper +%_datadir/%name/petalogix-ml605.dtb +%_datadir/%name/petalogix-s3adsp1800.dtb +%_datadir/%name/QEMU,cgthree.bin +%_datadir/%name/QEMU,tcx.bin + +%package lang +Summary: Translations for QEMU +Group: System/Emulators/PC + +%description lang +This package contains a few language translations, particularly for the +graphical user interface components that come with QEMU. The bulk of strings +in QEMU are not localized. + +%files lang -f %blddir/%name.lang + +%package audio-alsa +Summary: ALSA based audio support for QEMU +Group: System/Emulators/PC +%{qemu_module_conflicts} + +%description audio-alsa +This package contains a module for ALSA based audio support for QEMU. + +%files audio-alsa +%dir %_libdir/%name +%_libdir/%name/audio-alsa.so + +%package audio-dbus +Summary: D-Bus based audio support for QEMU +Group: System/Emulators/PC +%{qemu_module_conflicts} + +%description audio-dbus +This package provides a module for D-Bus based audio support for QEMU. + +%files audio-dbus +%dir %_libdir/%name +%_libdir/%name/audio-dbus.so + +%package audio-pa +Summary: Pulse Audio based audio support for QEMU +Group: System/Emulators/PC +%{qemu_module_conflicts} + +%description audio-pa +This package contains a module for Pulse Audio based audio support for QEMU. + +%files audio-pa +%dir %_libdir/%name +%_libdir/%name/audio-pa.so + +%package audio-jack +Summary: JACK based audio support for QEMU +Group: System/Emulators/PC +%{qemu_module_conflicts} + +%description audio-jack +This package contains a module for JACK based audio support for QEMU. + +%files audio-jack +%dir %_libdir/%name +%_libdir/%name/audio-jack.so + +%package audio-oss +Summary: OSS based audio support for QEMU +Group: System/Emulators/PC +%{qemu_module_conflicts} + +%description audio-oss +This package contains a module for OSS based audio support for QEMU. + +%files audio-oss +%dir %_libdir/%name +%_libdir/%name/audio-oss.so + +%package audio-pipewire +Summary: Pipewire based audio support for QEMU +Group: System/Emulators/PC +%{qemu_module_conflicts} + +%description audio-pipewire +This package contains a module for Pipewire based audio support for QEMU. + +%files audio-pipewire +%dir %_libdir/%name +%_libdir/%name/audio-pipewire.so + +%package block-curl +Summary: cURL block support for QEMU +Group: System/Emulators/PC +%{qemu_module_conflicts} + +%description block-curl +This package contains a module for accessing network-based image files over +a network connection from qemu-img tool and QEMU system emulation. + +%files block-curl +%dir %_libdir/%name +%_libdir/%name/block-curl.so + +%package block-dmg +Summary: DMG block support for QEMU +Group: System/Emulators/PC +%{qemu_module_conflicts} + +%description block-dmg +This package contains a module for accessing Mac OS X image files from +qemu-img tool and QEMU system emulation. + +%files block-dmg +%dir %_libdir/%name +%_libdir/%name/block-dmg-bz2.so +%_libdir/%name/block-dmg-lzfse.so + +%package block-gluster +Summary: GlusterFS block support for QEMU +Group: System/Emulators/PC +%{qemu_module_conflicts} + +%description block-gluster +This package contains a module for accessing network-based image files over a +GlusterFS network connection from qemu-img tool and QEMU system emulation. + +%files block-gluster +%dir %_libdir/%name +%_libdir/%name/block-gluster.so + +%package block-iscsi +Summary: iSCSI block support for QEMU +Group: System/Emulators/PC +%{qemu_module_conflicts} + +%description block-iscsi +This package contains a module for accessing network-based image files over an +iSCSI network connection from qemu-img tool and QEMU system emulation. + +%files block-iscsi +%dir %_libdir/%name +%_libdir/%name/block-iscsi.so + +%package block-nfs +Summary: direct Network File System support for QEMU +Group: System/Emulators/PC +%{qemu_module_conflicts} + +%description block-nfs +This package contains a module for directly accessing nfs based image files +for QEMU. + +%files block-nfs +%dir %_libdir/%name +%_libdir/%name/block-nfs.so + +%package block-ssh +Summary: SSH (SFTP) block support for QEMU +Group: System/Emulators/PC +%{qemu_module_conflicts} + +%description block-ssh +This package contains a module for accessing network-based image files over an +SSH network connection from qemu-img tool and QEMU system emulation. + +%files block-ssh +%dir %_libdir/%name +%_libdir/%name/block-ssh.so + +%package chardev-baum +Summary: Baum braille chardev support for QEMU +Group: System/Emulators/PC +%{qemu_module_conflicts} + +%description chardev-baum +This package contains a module for baum braille chardev support for QEMU. + +%files chardev-baum +%dir %_datadir/%name +%dir %_libdir/%name +%_libdir/%name/chardev-baum.so + +%package hw-display-virtio-gpu +Summary: Virtio GPU display support for QEMU +Group: System/Emulators/PC +# Make sure that VGA is pretty much always there. Technically, this isn't +# really necessary (and/or, should be dealt with in other places) but it +# makes it easier to deal with strange situation where, e.g., GRUB is +# configured to work only with a graphical terminal (see bsc#1219164), +# and the hw-display-virtio-vga package is small enough, anyway. +Requires: qemu-hw-display-virtio-vga = %{version}-%{release} +%{qemu_module_conflicts} + +%description hw-display-virtio-gpu +This package contains a module for Virtio GPU display support for QEMU. + +%files hw-display-virtio-gpu +%dir %_datadir/%name +%_libdir/%name/hw-display-virtio-gpu.so +%_libdir/%name/hw-display-virtio-gpu-gl.so + +%package hw-display-virtio-gpu-pci +Summary: Virtio-gpu pci device for QEMU +Group: System/Emulators/PC +Requires: qemu-hw-display-virtio-gpu = %{version}-%{release} +%{qemu_module_conflicts} + +%description hw-display-virtio-gpu-pci +This package contains a module providing the virtio gpu pci device for QEMU. + +%files hw-display-virtio-gpu-pci +%dir %_datadir/%name +%dir %_libdir/%name +%_libdir/%name/hw-display-virtio-gpu-pci.so +%_libdir/%name/hw-display-virtio-gpu-pci-gl.so + +%package hw-display-virtio-vga +Summary: Virtio vga device for QEMU +Group: System/Emulators/PC +%{qemu_module_conflicts} + +%description hw-display-virtio-vga +This package contains a module providing the virtio vga device for QEMU. + +%files hw-display-virtio-vga +%dir %_datadir/%name +%dir %_libdir/%name +%_libdir/%name/hw-display-virtio-vga.so +%_libdir/%name/hw-display-virtio-vga-gl.so + +%package hw-s390x-virtio-gpu-ccw +Summary: S390x virtio-gpu ccw device for QEMU +Group: System/Emulators/PC +Requires: qemu-hw-display-virtio-gpu = %{version}-%{release} +%{qemu_module_conflicts} + +%description hw-s390x-virtio-gpu-ccw +This package contains a module providing the s390x virtio gpu ccw device for +QEMU. + +%files hw-s390x-virtio-gpu-ccw +%dir %_datadir/%name +%dir %_libdir/%name +%_libdir/%name/hw-s390x-virtio-gpu-ccw.so + +%package hw-usb-redirect +Summary: USB redirection support for QEMU +Group: System/Emulators/PC +%{qemu_module_conflicts} + +%description hw-usb-redirect +This package contains a module for USB redirection support for QEMU. + +%files hw-usb-redirect +%dir %_datadir/%name +%dir %_libdir/%name +%_libdir/%name/hw-usb-redirect.so + +%package hw-usb-smartcard +Summary: USB smartcard support for QEMU +Group: System/Emulators/PC +%{qemu_module_conflicts} + +%description hw-usb-smartcard +This package contains a modules for USB smartcard support for QEMU. + +%files hw-usb-smartcard +%dir %_datadir/%name +%dir %_libdir/%name +%_libdir/%name/hw-usb-smartcard.so + +%package hw-usb-host +Summary: USB passthrough driver support for QEMU +Group: System/Emulators/PC +%{qemu_module_conflicts} + +%description hw-usb-host +This package contains a modules for USB passthrough driver for QEMU. + +%files hw-usb-host +%dir %_datadir/%name +%dir %_libdir/%name +%_libdir/%name/hw-usb-host.so + +%package ui-dbus +Summary: D-Bus based UI support for QEMU +Group: System/Emulators/PC +%{qemu_module_conflicts} + +%description ui-dbus +This package contains a module for doing D-Bus based UI for QEMU. + +%files ui-dbus +%dir %_libdir/%name +%_libdir/%name/ui-dbus.so + +%package ui-curses +Summary: Curses based UI support for QEMU +Group: System/Emulators/PC +%{qemu_module_conflicts} + +%description ui-curses +This package contains a module for doing curses based UI for QEMU. + +%files ui-curses +%dir %_libdir/%name +%_libdir/%name/ui-curses.so + +%package ui-gtk +Summary: GTK based UI support for QEMU +Group: System/Emulators/PC +Requires: qemu-ui-opengl +Supplements: (qemu and libgtk-3-0) +%{qemu_module_conflicts} + +%description ui-gtk +This package contains a module for doing GTK based UI for QEMU. + +%files ui-gtk +%dir %_libdir/%name +%_libdir/%name/ui-gtk.so + +%package ui-opengl +Summary: OpenGL based UI support for QEMU +Group: System/Emulators/PC +%{qemu_module_conflicts} + +%description ui-opengl +This package contains a module for doing OpenGL based UI for QEMU. + +%files ui-opengl +%dir %_datadir/%name +%dir %_libdir/%name +%_libdir/%name/ui-egl-headless.so +%_libdir/%name/ui-opengl.so + +%package vhost-user-gpu +Summary: Vhost user mode virtio-gpu 2D/3D rendering backend for QEMU +Group: System/Emulators/PC +%{qemu_module_conflicts} + +%description vhost-user-gpu +This package contains a vhost user mode virtio-gpu 2D/3D rendering backend for +QEMU. + +%files vhost-user-gpu +%dir %_datadir/%name/vhost-user +%_datadir/%name/vhost-user/50-qemu-gpu.json +%_libexecdir/vhost-user-gpu + +%package img +Summary: QEMU disk image utility +Group: System/Emulators/PC + +%description img +This package provides command line tools for manipulating disk images. + +%files img +%_bindir/qemu-img +%_bindir/qemu-io +%_bindir/qemu-nbd +%_bindir/qemu-storage-daemon +%_mandir/man1/qemu-img.1.gz +%_mandir/man8/qemu-nbd.8.gz +%_mandir/man1/qemu-storage-daemon.1.gz +%_mandir/man7/qemu-storage-daemon-qmp-ref.7.gz + +%package pr-helper +Summary: QEMU persistent reservation helper +Group: System/Emulators/PC + +%description pr-helper +This package provides a helper utility for SCSI persistent reservations. + +%files pr-helper +%_bindir/qemu-pr-helper +%_mandir/man8/qemu-pr-helper.8.gz + +%package tools +Summary: Tools for QEMU +Group: System/Emulators/PC +Requires(pre): permissions +Requires: qemu-img +Requires: qemu-pr-helper +Requires: group(kvm) +%if %{has_virtiofsd} +Requires: virtiofsd %endif -%ifarch aarch64 -%define qemu_arch aarch64 -%endif -%ifarch ppc -%define qemu_arch ppc -%endif -%ifarch ppc64 -%define qemu_arch ppc64 -%endif -%ifarch ppc64le -%define qemu_arch ppc64le -%endif -%ifarch s390x -%define qemu_arch s390x +Recommends: multipath-tools +Recommends: qemu-block-curl +%if 0%{?with_rbd} +Recommends: qemu-block-rbd %endif -%ifarch %ix86 x86_64 %arm aarch64 ppc ppc64 ppc64le s390x -%ifnarch %arm -%{qemu_arch}-linux-user/qemu-%{qemu_arch} %_bindir/ls > /dev/null -%endif +%description tools +This package contains various QEMU related tools, including a bridge helper, +a virtfs helper, ivshmem, disk utilities and scripts for various purposes. + +%files tools +%_bindir/analyze-migration.py +%_bindir/qemu-edid +%_bindir/qemu-keymap +%_bindir/vmstate-static-checker.py +%_bindir/vmxcap +%verify(not mode) %attr(4750,root,kvm) %_libexecdir/qemu-bridge-helper +%_libexecdir/virtfs-proxy-helper +%_mandir/man1/virtfs-proxy-helper.1.gz +%dir %_sysconfdir/%name +%config(noreplace) %_sysconfdir/%name/bridge.conf + +%post tools +%set_permissions %_libexecdir/qemu-bridge-helper + +%verifyscript tools +%verify_permissions %_libexecdir/qemu-bridge-helper + +%package ivshmem-tools +Summary: Inter-VM Shared Memory Tools for QEMU +Group: System/Emulators/PC + +%description ivshmem-tools +This package contains a sample shared memory client and server which utilize +QEMU's Inter-VM shared memory device as specified by the ivshmem client-server +protocol specification documented in docs/specs/ivshmem-spec.txt in QEMU source +code. + +%files ivshmem-tools +%dir %_datadir/%name +%_bindir/ivshmem-client +%_bindir/ivshmem-server + +%package guest-agent +Summary: Guest agent for QEMU +Group: System/Emulators/PC +Requires: group(kvm) +Requires(post): udev +Supplements: modalias(acpi*:QEMU0002%3A*) +Supplements: modalias(pci:v00005853d00000001sv*sd*bc*sc*i*) +Supplements: modalias(pci:v0000FFFDd00000101sv*sd*bc*sc*i*) +%{?systemd_ordering} + +%description guest-agent +This package contains the QEMU guest agent. It is installed in the linux guest +to provide information and control at the guest OS level. + +%files guest-agent +%attr(0755,root,kvm) %_bindir/qemu-ga +%_mandir/man8/qemu-ga.8.gz +%{_unitdir}/qemu-guest-agent.service +/usr/lib/udev/rules.d/80-qemu-ga.rules + +%pre guest-agent +%service_add_pre qemu-guest-agent.service + +%post guest-agent +%service_add_post qemu-guest-agent.service +if [ -e /dev/virtio-ports/org.qemu.guest_agent.0 ]; then + /usr/bin/systemctl start qemu-guest-agent.service || : +fi + +%preun guest-agent +if [ -e /dev/virtio-ports/org.qemu.guest_agent.0 ]; then + /usr/bin/systemctl stop qemu-guest-agent.service || : +fi + +%postun guest-agent +%service_del_postun_without_restart qemu-guest-agent.service +if [ "$1" = "1" ] ; then + if [ -e /dev/virtio-ports/org.qemu.guest_agent.0 ]; then + /usr/bin/systemctl restart qemu-guest-agent.service || : + fi +fi + +%package ksm +Summary: Kernel Samepage Merging services +Group: System/Emulators/PC +Requires(pre): coreutils +Requires(post): coreutils + +%description ksm +Kernel Samepage Merging (KSM) is a memory-saving de-duplication feature, that +merges anonymous (private) pages (not pagecache ones). + +This package provides a service file for starting and stopping KSM. + +%files ksm +%{_unitdir}/ksm.service + +%pre ksm +%service_add_pre ksm.service + +%post ksm +%service_add_post ksm.service + +%preun ksm +%service_del_preun ksm.service + +%postun ksm +%service_del_postun ksm.service + +%package accel-tcg-x86 +Summary: TCG accelerator for QEMU +Group: System/Emulators/PC +%{qemu_module_conflicts} + +%description accel-tcg-x86 +TCG is the QEMU binary translator, responsible for converting from target to +host instruction set. + +This package provides the TCG accelerator for QEMU. + +%files accel-tcg-x86 +%dir %_datadir/%name +%dir %_libdir/%name +%_libdir/%name/accel-tcg-i386.so +%_libdir/%name/accel-tcg-x86_64.so + +%package accel-qtest +Summary: QTest accelerator for QEMU +Group: System/Emulators/PC +%{qemu_module_conflicts} + +%description accel-qtest +QTest is a device emulation testing framework. It is useful to test device +models. + +This package provides QTest accelerator for testing QEMU. + +%files accel-qtest +%dir %_datadir/%name +%dir %_libdir/%name +%_libdir/%name/accel-qtest-aarch64.so +%_libdir/%name/accel-qtest-alpha.so +%_libdir/%name/accel-qtest-arm.so +%_libdir/%name/accel-qtest-avr.so +%_libdir/%name/accel-qtest-cris.so +%_libdir/%name/accel-qtest-hppa.so +%_libdir/%name/accel-qtest-i386.so +%_libdir/%name/accel-qtest-loongarch64.so +%_libdir/%name/accel-qtest-m68k.so +%_libdir/%name/accel-qtest-microblaze.so +%_libdir/%name/accel-qtest-microblazeel.so +%_libdir/%name/accel-qtest-mips.so +%_libdir/%name/accel-qtest-mips64.so +%_libdir/%name/accel-qtest-mips64el.so +%_libdir/%name/accel-qtest-mipsel.so +%_libdir/%name/accel-qtest-nios2.so +%_libdir/%name/accel-qtest-or1k.so +%_libdir/%name/accel-qtest-ppc.so +%_libdir/%name/accel-qtest-ppc64.so +%_libdir/%name/accel-qtest-riscv32.so +%_libdir/%name/accel-qtest-riscv64.so +%_libdir/%name/accel-qtest-rx.so +%_libdir/%name/accel-qtest-s390x.so +%_libdir/%name/accel-qtest-sh4.so +%_libdir/%name/accel-qtest-sh4eb.so +%_libdir/%name/accel-qtest-sparc.so +%_libdir/%name/accel-qtest-sparc64.so +%_libdir/%name/accel-qtest-tricore.so +%_libdir/%name/accel-qtest-x86_64.so +%_libdir/%name/accel-qtest-xtensa.so +%_libdir/%name/accel-qtest-xtensaeb.so + +%if 0%{?with_rbd} +%package block-rbd +Summary: Rados Block Device (Ceph) support for QEMU +Group: System/Emulators/PC +%{qemu_module_conflicts} + +%description block-rbd +This package contains a module for accessing ceph (rbd,rados) image files +for QEMU. + +%files block-rbd +%dir %_libdir/%name +%_libdir/%name/block-rbd.so +# End of "if with_rbd" %endif -%make_build check-softfloat -# End of the checks for qemu-linux-user +%if %{build_ppc_firmware} +%package SLOF +Summary: Slimline Open Firmware - SLOF +Group: System/Emulators/PC +BuildArch: noarch + +%description SLOF +Slimline Open Firmware (SLOF) is an implementation of the IEEE 1275 standard. +It can be used as partition firmware for pSeries machines running on QEMU or KVM. + +%files SLOF +%dir %_datadir/%name +%_datadir/%name/slof.bin + +%package skiboot +Summary: OPAL firmware (aka skiboot), used in booting OpenPOWER systems +Group: System/Emulators/PC +BuildArch: noarch +Requires(post): update-alternatives +Requires(postun): update-alternatives + +%description skiboot +Provides OPAL (OpenPower Abstraction Layer) firmware, aka skiboot, as +traditionally packaged with QEMU. + +%files skiboot +%dir %_datadir/%name +%_datadir/%name/skiboot.lid +%_datadir/%name/skiboot.lid.qemu +%ghost %_sysconfdir/alternatives/skiboot.lid + +%post skiboot +update-alternatives --install \ + %{_datadir}/%name/skiboot.lid skiboot.lid %{_datadir}/%name/skiboot.lid.qemu 15 + +%preun skiboot +if [ ! -f %{_datadir}/%name/skiboot.lid.qemu ] ; then + update-alternatives --remove skiboot.lid %{_datadir}/%name/skiboot.lid.qemu +fi +# End of "if build_ppc_firmware" %endif +%if %{build_x86_firmware} +%package microvm +Summary: x86 MicroVM firmware for QEMU +Group: System/Emulators/PC +BuildArch: noarch + +%description microvm +This package provides minimal x86 firmware for booting certain guests under +QEMU. qboot provides the minimum resources needed to boot PVH and bzImages. +bios-microvm, created from a minimal seabios configuration, provides slightly +wider support than qboot, but still focuses on quick boot up. + +%files microvm +%dir %_datadir/%name +%_datadir/%name/bios-microvm.bin +%_datadir/%name/qboot.rom + +%package seabios +Summary: x86 Legacy BIOS for QEMU +Group: System/Emulators/PC +Version: 9.0.1%{sbver} +Release: 0 +BuildArch: noarch +Conflicts: %name < 1.6.0 + +%description seabios +SeaBIOS is an open source implementation of a 16bit x86 BIOS. SeaBIOS +is the default and legacy BIOS for QEMU. + +%files seabios +%dir %_datadir/%name +%_datadir/%name/bios.bin +%_datadir/%name/bios-256k.bin +%_datadir/%name/firmware/50-seabios-256k.json +%_datadir/%name/firmware/60-seabios-128k.json +%license roms/seabios/COPYING +%doc %_docdir/qemu-seabios + +%package vgabios +Summary: VGA BIOSes for QEMU +Group: System/Emulators/PC +Version: 9.0.1%{sbver} +Release: 0 +BuildArch: noarch +Conflicts: %name < 1.6.0 + +%description vgabios +VGABIOS provides the video ROM BIOSes for the following variants of VGA +emulated devices: Std VGA, QXL, Cirrus CLGD 5446 and VMware emulated +video card. For use with QEMU. + +%files vgabios +%dir %_datadir/%name +%_datadir/%name/vgabios.bin +%_datadir/%name/vgabios-ati.bin +%_datadir/%name/vgabios-bochs-display.bin +%_datadir/%name/vgabios-cirrus.bin +%_datadir/%name/vgabios-qxl.bin +%_datadir/%name/vgabios-ramfb.bin +%_datadir/%name/vgabios-stdvga.bin +%_datadir/%name/vgabios-virtio.bin +%_datadir/%name/vgabios-vmware.bin +%license roms/seabios/COPYING + +%package ipxe +Summary: PXE ROMs for QEMU NICs +Group: System/Emulators/PC +Version: 9.0.1 +Release: 0 +BuildArch: noarch +Conflicts: %name < 1.6.0 + +%description ipxe +Provides Preboot Execution Environment (PXE) ROM support for various emulated +network adapters available with QEMU. + +%files ipxe +%dir %_datadir/%name +%_datadir/%name/efi-e1000.rom +%_datadir/%name/efi-e1000e.rom +%_datadir/%name/efi-eepro100.rom +%_datadir/%name/efi-ne2k_pci.rom +%_datadir/%name/efi-pcnet.rom +%_datadir/%name/efi-rtl8139.rom +%_datadir/%name/efi-virtio.rom +%_datadir/%name/efi-vmxnet3.rom +%_datadir/%name/pxe-e1000.rom +%_datadir/%name/pxe-eepro100.rom +%_datadir/%name/pxe-ne2k_pci.rom +%_datadir/%name/pxe-pcnet.rom +%_datadir/%name/pxe-rtl8139.rom +%_datadir/%name/pxe-virtio.rom +# End of "if build_x86_firmware" +%endif + +%package doc +Summary: Documentation for QEMU +Group: System/Emulators/PC +BuildArch: noarch +Suggests: qemu + +%files doc +%doc %_docdir/%name + +%description doc +%{generic_qemu_description} + +This package contains user and developer documentation for QEMU. + %changelog diff --git a/qemu.spec.in b/qemu.spec.in deleted file mode 100644 index 1ddd4a6..0000000 --- a/qemu.spec.in +++ /dev/null @@ -1,2295 +0,0 @@ -# spec file for package qemu -# -# Copyright (c) 2022 SUSE LLC -# -# All modifications and additions to the file contributed by third parties -# remain the property of their copyright owners, unless otherwise agreed -# upon. The license for this file, and modifications and additions to the -# file, is the same license as for the pristine package itself (unless the -# license for the pristine package is not an Open Source License, in which -# case the license is the MIT License). An "Open Source License" is a -# license that conforms to the Open Source Definition (Version 1.9) -# published by the Open Source Initiative. - -# Please submit bugfixes or comments via https://bugs.opensuse.org/ -# - -# !! IMPORTANT !! See README.PACKAGING before modifying package in any way - -#!ForceMultiversion - -# qemu and qemu-linux-user "flavors" are enabled via OBS Multibuild -%global flavor @BUILD_FLAVOR@%{nil} -%define name_suffix %{nil} - -%if "%{flavor}" == "linux-user" -%define name_suffix -linux-user -%define summary_string CPU emulator for user space -%else -%define summary_string Machine emulator and virtualizer -%endif - -%define _buildshell /bin/bash - -%define srcdir %{_builddir}/%buildsubdir -%define blddir %srcdir/build - -%define build_x86_firmware 0 -%define build_ppc_firmware 0 -%define build_opensbi_firmware 0 -%define kvm_available 0 -%define legacy_qemu_kvm 0 -%define force_fit_virtio_pxe_rom 1 - -%if "%{?distribution}" == "" -%define distro private-build -%else -%define distro %{distribution} -%endif - -# So, we have openSUSE:Factory, and we have "ports". In openSUSE:Factory, we -# have i586 and x86_64. In the :ARM port, we have aarch64, armv6l and armv7l. -# In the :PowerPC port, we have ppc64, ppc and ppc64le. In the :zSystems port -# we have s390x. And in the :RISCV we have riscv. -# -# Ideally, we'd want to build the firmwares at least once per port, and then -# share the resulting packages among the arch-es within each port (check the -# `ExportFilter` directives in the project config). -# -# Of course, we always build the "native fimrwares" (e.g., x86 firmwares on -# x86_64, PPC firmwares on ppc64le, etc). But we also cross compile as much -# firmwares as we can (e.g., both x86 and PPC firmwares on aarch64) so they'll -# be available in as many ports as possible (as noarch packages). - -%ifarch x86_64 aarch64 -%define build_ppc_firmware 1 -# Currently, opensbi does not cross build cleanly on 15.3 and 15.4 -%if ! 0%{?sle_version} -%define build_opensbi_firmware 1 -%endif -%define build_x86_firmware 1 -%endif -%ifarch ppc64 ppc64le -%define build_ppc_firmware 1 -%if ! 0%{?sle_version} -%define build_opensbi_firmware 1 -%endif -# FIXME: Try to enable cross building of x86 firmwares here on PPC -%endif -%ifarch riscv64 -%define build_opensbi_firmware 1 -%endif - -%ifarch %ix86 x86_64 ppc ppc64 ppc64le s390x armv7hl aarch64 -%define kvm_available 1 -%define with_uring 1 -%define liburing_min_version 1.0 -%endif - -%ifarch %ix86 x86_64 s390x -%define legacy_qemu_kvm 1 -%endif - -%ifarch x86_64 aarch64 ppc64le s390x -%define with_rbd 1 -%endif - -%ifarch x86_64 ppc64le -%define with_daxctl 1 -%endif - -%bcond_with chkqtests - -# enforce pxe rom sizes for migration compatability from SLE 11 SP3 forward -# the following need to be > 64K -%define supported_nics_large {e1000 rtl8139} -# the following need to be <= 64K -%define supported_nics_small {virtio} -# Though not required, make unsupported pxe roms migration compatable as well -%define unsupported_nics {eepro100 ne2k_pci pcnet} - -# non-x86 archs still seem to have some issues with Link Time Optimization -%ifnarch %ix86 x86_64 -%define _lto_cflags %{nil} -%endif -%define _lto_cflags %{nil} - -%define generic_qemu_description \ -QEMU provides full machine emulation and cross architecture usage. It closely\ -integrates with KVM and Xen virtualization, allowing for excellent performance.\ -Many options are available for defining the emulated environment, including\ -traditional devices, direct host device access, and interfaces specific to\ -virtualization. - -%bcond_with system_membarrier -%bcond_with malloc_trim - -INSERT_VERSIONING -%define srcname qemu -Name: qemu%{name_suffix} -URL: https://www.qemu.org/ -Summary: %{summary_string} -License: BSD-2-Clause AND BSD-3-Clause AND GPL-2.0-only AND GPL-2.0-or-later AND LGPL-2.1-or-later AND MIT -Group: System/Emulators/PC -Version: %qemuver -Release: 0 -Source: https://wiki.qemu.org/download/%{srcname}-%{srcver}.tar.xz -Source100: %{srcname}.keyring -Source1: 80-kvm.rules -Source2: kvm.conf -Source3: qemu-ifup -Source4: bridge.conf -Source5: qemu-kvm.1.gz -Source6: ksm.service -Source7: qemu-guest-agent.service -Source8: 80-qemu-ga.rules -Source9: qemu-supportconfig -Source10: supported.arm.txt -Source11: supported.ppc.txt -Source12: supported.x86.txt -Source13: supported.s390.txt -Source14: 50-seabios-256k.json -Source15: 60-seabios-128k.json -Source200: qemu-rpmlintrc -Source201: DSDT.pcie -Source300: bundles.tar.xz -Source301: update_git.sh -Source302: config.sh -Source303: README.PACKAGING -# Upstream First -- https://wiki.qemu.org/Contribute/SubmitAPatch -# This patch queue is auto-generated - see README.PACKAGING for process - -PATCH_FILES - -# Please do not add patches manually here. - -BuildRoot: %{_tmppath}/%{name}-%{version}-build - -%if "%{name}" == "qemu-linux-user" -# Build dependencies exclusive to qemu-linux-user -BuildRequires: glib2-devel-static >= 2.56 -BuildRequires: glibc-devel-static -BuildRequires: (pcre-devel-static if glib2-devel-static < 2.73 else pcre2-devel-static) -BuildRequires: zlib-devel-static -# we must not install the qemu-linux-user package when under QEMU build -%if 0%{?qemu_user_space_build:1} -#!BuildIgnore: post-build-checks -%endif -# End of build dependencies for qemu-linux-user -%else -# Build dependencies exclusive to qemu -%if %{build_x86_firmware} -%ifnarch %ix86 x86_64 -# We must cross-compile on non-x86* -BuildRequires: cross-x86_64-binutils -BuildRequires: cross-x86_64-gcc%gcc_version -%endif -BuildRequires: acpica -BuildRequires: binutils-devel -BuildRequires: dos2unix -BuildRequires: glibc-devel-32bit -BuildRequires: pkgconfig(liblzma) -%endif -%if %{build_opensbi_firmware} -%ifnarch riscv64 -BuildRequires: cross-riscv64-binutils -BuildRequires: cross-riscv64-gcc%gcc_version -%endif -%endif -%if %{build_ppc_firmware} -%ifnarch ppc64 ppc64le -BuildRequires: cross-ppc64-binutils -BuildRequires: cross-ppc64-gcc%gcc_version -%endif -%endif -%ifarch x86_64 -BuildRequires: gcc-32bit -BuildRequires: pkgconfig(libpmem) -BuildRequires: xen-devel >= 4.2 -%endif -%ifnarch %arm s390x -BuildRequires: libnuma-devel -%endif -%if 0%{?with_daxctl} -BuildRequires: pkgconfig(libndctl) -%endif -%if 0%{?with_rbd} -BuildRequires: librbd-devel -%endif -%if 0%{?with_uring} -BuildRequires: pkgconfig(liburing) >= %liburing_min_version -%endif -%if %{kvm_available} -BuildRequires: pkgconfig(udev) -%endif -BuildRequires: bison -BuildRequires: brlapi-devel -BuildRequires: flex -BuildRequires: libaio-devel -BuildRequires: libattr-devel -BuildRequires: libbpf-devel -BuildRequires: libbz2-devel -BuildRequires: libcapstone-devel -BuildRequires: libfdt-devel >= 1.4.2 -BuildRequires: libgcrypt-devel >= 1.8.0 -BuildRequires: lzfse-devel -BuildRequires: Mesa-devel -BuildRequires: multipath-tools-devel -BuildRequires: pam-devel -BuildRequires: pkgconfig -BuildRequires: pkgconfig(alsa) -BuildRequires: pkgconfig(epoxy) -BuildRequires: pkgconfig(gbm) -BuildRequires: pkgconfig(glib-2.0) >= 2.56 -BuildRequires: pkgconfig(glusterfs-api) >= 3 -BuildRequires: pkgconfig(gnutls) >= 3.5.18 -BuildRequires: pkgconfig(gtk+-3.0) >= 3.22 -BuildRequires: pkgconfig(jack) -BuildRequires: pkgconfig(libcacard) >= 2.5.1 -BuildRequires: pkgconfig(libcap-ng) -BuildRequires: pkgconfig(libcurl) >= 7.29 -BuildRequires: pkgconfig(libdrm) -BuildRequires: pkgconfig(libiscsi) >= 1.9.0 -BuildRequires: pkgconfig(libjpeg) -BuildRequires: pkgconfig(libnfs) >= 1.9.3 -BuildRequires: pkgconfig(libpng) -BuildRequires: pkgconfig(libpulse) -BuildRequires: pkgconfig(libsasl2) -BuildRequires: pkgconfig(libseccomp) >= 2.3.0 -BuildRequires: pkgconfig(libssh) >= 0.8.7 -BuildRequires: pkgconfig(libudev) -BuildRequires: pkgconfig(libusb-1.0) >= 1.0.13 -BuildRequires: pkgconfig(libzstd) -BuildRequires: pkgconfig(lzo2) -BuildRequires: pkgconfig(ncurses) -BuildRequires: pkgconfig(pixman-1) >= 0.21.8 -BuildRequires: pkgconfig(slirp) >= 4.2.0 -BuildRequires: pkgconfig(spice-protocol) >= 0.12.3 -BuildRequires: pkgconfig(spice-server) >= 0.12.5 -BuildRequires: pkgconfig(systemd) -BuildRequires: pkgconfig(vdeplug) -BuildRequires: pkgconfig(virglrenderer) >= 0.4.1 -BuildRequires: pkgconfig(vte-2.91) -BuildRequires: pkgconfig(xkbcommon) -BuildRequires: pkgconfig(zlib) -BuildRequires: python3-Sphinx -BuildRequires: rdma-core-devel -BuildRequires: snappy-devel -BuildRequires: update-desktop-files -BuildRequires: usbredir-devel >= 0.6 -BuildRequires: xfsprogs-devel -%{?systemd_ordering} -# End of build dependencies for qemu -%endif -# Common build dependencies between qemu and qemu-linux-user -BuildRequires: fdupes -BuildRequires: gcc-c++ -BuildRequires: meson -BuildRequires: ninja >= 1.7 -BuildRequires: python3-base >= 3.6 -BuildRequires: python3-setuptools -%if "%{name}" == "qemu" -# Requires, Recommends, etc exclusive to qemu -%if %{kvm_available} -%ifarch %ix86 x86_64 -Requires: qemu-x86 -%else -Suggests: qemu-x86 -%endif -%ifarch ppc ppc64 ppc64le -Requires: qemu-ppc -%else -Suggests: qemu-ppc -%endif -%ifarch s390x -Requires: qemu-s390x -Requires(post): procps -%else -Suggests: qemu-s390x -%endif -%ifarch %arm aarch64 -Requires: qemu-arm -%else -Suggests: qemu-arm -%endif -Requires(post): acl -Requires(post): udev -Recommends: kvm_stat -# End of "if kvm_available" -%endif -Requires: group(kvm) -Requires: group(qemu) -Requires: user(qemu) -Requires(post): coreutils -%ifarch s390x -Recommends: qemu-hw-s390x-virtio-gpu-ccw -%else -# Due to change in where some documentation files are, if qemu-guest-agent -# is installed, we need to make sure we update it to our version. -Requires: (qemu-guest-agent = %{qemuver} if qemu-guest-agent) -Recommends: qemu-hw-display-qxl -Recommends: qemu-hw-display-virtio-gpu -Recommends: qemu-hw-display-virtio-gpu-pci -Recommends: qemu-hw-display-virtio-vga -Recommends: qemu-hw-usb-host -Recommends: qemu-hw-usb-redirect -Recommends: qemu-hw-usb-smartcard -Recommends: qemu-ui-gtk -Recommends: qemu-ui-spice-app -# End of "ifarch s390x" -%endif -Recommends: qemu-block-curl -Recommends: qemu-block-nfs -Recommends: qemu-ksm = %{qemuver} -Recommends: qemu-tools -Recommends: qemu-ui-curses -%if 0%{?with_rbd} -Suggests: qemu-block-rbd -%endif -Suggests: qemu-accel-qtest -Suggests: qemu-block-dmg -Suggests: qemu-block-gluster -Suggests: qemu-block-iscsi -Suggests: qemu-block-ssh -Suggests: qemu-chardev-baum -Suggests: qemu-extra -Suggests: qemu-lang -Suggests: qemu-microvm -Suggests: qemu-skiboot -Suggests: qemu-vhost-user-gpu -Obsoletes: qemu-audio-oss < %{qemuver} -Obsoletes: qemu-audio-sdl < %{qemuver} -Obsoletes: qemu-ui-sdl < %{qemuver} -# End of Requires, Recommends, etc for qemu. -# There isn't any for qemu-linux-user. -%endif - -%package headless -Summary: Minimum set of packages for having a functional QEMU -Group: System/Emulators/PC -Version: %{qemuver} -Release: 0 -Requires: qemu -Requires: qemu-tools -%if %{legacy_qemu_kvm} -Requires: qemu-kvm -%endif -Requires: qemu-hw-usb-redirect -# qemu-ui-spice-core will bring in qemu-audio-spice qemu-ui-opengl too -Requires: qemu-ui-spice-core -Requires: qemu-chardev-spice - -%description headless -%{generic_qemu_description} - -This meta-package brings in, as dependencies, the minimum set of packages -currently necessary for having a functional (headless) QEMU/KVM stack. - -%if "%{name}" == "qemu-linux-user" -# Description and files for the qemu-linux-user package - -%description -QEMU provides CPU emulation along with other related capabilities. This package -provides programs to run user space binaries and libraries meant for another -architecture. The syscall interface is intercepted and execution below the -syscall layer occurs on the native hardware and operating system. - -%files -%defattr(-, root, root) -%doc README.rst VERSION -%license COPYING COPYING.LIB LICENSE -%_bindir/qemu-aarch64 -%_bindir/qemu-aarch64_be -%_bindir/qemu-alpha -%_bindir/qemu-arm -%_bindir/qemu-armeb -%_bindir/qemu-cris -%_bindir/qemu-hexagon -%_bindir/qemu-hppa -%_bindir/qemu-i386 -%_bindir/qemu-loongarch64 -%_bindir/qemu-m68k -%_bindir/qemu-microblaze -%_bindir/qemu-microblazeel -%_bindir/qemu-mips -%_bindir/qemu-mips64 -%_bindir/qemu-mips64el -%_bindir/qemu-mipsel -%_bindir/qemu-mipsn32 -%_bindir/qemu-mipsn32el -%_bindir/qemu-nios2 -%_bindir/qemu-or1k -%_bindir/qemu-ppc -%_bindir/qemu-ppc64 -%_bindir/qemu-ppc64le -%_bindir/qemu-riscv32 -%_bindir/qemu-riscv64 -%_bindir/qemu-s390x -%_bindir/qemu-sh4 -%_bindir/qemu-sh4eb -%_bindir/qemu-sparc -%_bindir/qemu-sparc32plus -%_bindir/qemu-sparc64 -%_bindir/qemu-x86_64 -%_bindir/qemu-xtensa -%_bindir/qemu-xtensaeb -%_sbindir/qemu-binfmt-conf.sh - -# End of description and files for qemu-linux-user -%else -# Description and files for qemu and all its subpackages - -%description -%{generic_qemu_description} - -This package acts as an umbrella package to the other QEMU sub-packages. - -%files -%defattr(-, root, root) -%dir %_datadir/icons/hicolor -%dir %_datadir/icons/hicolor/*/ -%dir %_datadir/icons/hicolor/*/apps -%dir %_datadir/%name -%dir %_datadir/%name/firmware -%dir %_datadir/%name/vhost-user -%dir %_sysconfdir/%name -%dir %_sysconfdir/%name/firmware -%dir /usr/lib/supportconfig -%dir /usr/lib/supportconfig/plugins -%doc %_docdir/%name -%if %{kvm_available} -%ifarch s390x -%{_prefix}/lib/modules-load.d/kvm.conf -%endif -/usr/lib/udev/rules.d/80-kvm.rules -%endif -%_datadir/applications/qemu.desktop -%_datadir/icons/hicolor/16x16/apps/qemu.png -%_datadir/icons/hicolor/24x24/apps/qemu.png -%_datadir/icons/hicolor/32x32/apps/qemu.bmp -%_datadir/icons/hicolor/32x32/apps/qemu.png -%_datadir/icons/hicolor/48x48/apps/qemu.png -%_datadir/icons/hicolor/64x64/apps/qemu.png -%_datadir/icons/hicolor/128x128/apps/qemu.png -%_datadir/icons/hicolor/256x256/apps/qemu.png -%_datadir/icons/hicolor/512x512/apps/qemu.png -%_datadir/icons/hicolor/scalable/apps/qemu.svg -%_datadir/%name/keymaps -%_datadir/%name/qemu-ifup -%_datadir/%name/qemu-nsis.bmp -%_datadir/%name/trace-events-all -%_datadir/%name/vhost-user/50-qemu-virtiofsd.json -%_mandir/man1/%name.1.gz -%_mandir/man1/qemu-storage-daemon.1.gz -%_mandir/man1/virtiofsd.1.gz -%_mandir/man7/qemu-block-drivers.7.gz -%_mandir/man7/qemu-cpu-models.7.gz -%_mandir/man7/qemu-qmp-ref.7.gz -%_mandir/man7/qemu-ga-ref.7.gz -%_mandir/man7/qemu-storage-daemon-qmp-ref.7.gz -/usr/lib/supportconfig/plugins/%name -%license COPYING COPYING.LIB LICENSE - -%if %{kvm_available} -%post -# Do not execute operations affecting host devices while running in a chroot -if [ $(stat -L -c "%i" /proc/1/root/) = $(stat -L -c "%i" /) ]; then - setfacl --remove-all /dev/kvm &> /dev/null || : -%ifarch s390x - if [ -c /dev/kvm ]; then - %_bindir/chmod 0666 /dev/kvm - %_bindir/chgrp kvm /dev/kvm - fi -%endif - %udev_rules_update - %_bindir/udevadm trigger -y kvm || : -%ifarch s390x - sysctl vm.allocate_pgste=1 || : -%endif -fi -# End of "if {kvm_available}" -%endif - -# Modules need to match {qemu-system-*,qemu-img} version. -# We cannot have qemu and qemu-tools require them in the right version, -# as that would drag in the dependencies the modules are supposed to avoid. -# Nor can we have modules require the right version of qemu and qemu-tools -# as Xen reuses our qemu-tools but does not want our qemu and qemu-x86. -%define qemu_module_conflicts \ -Conflicts: %name < %{qemuver}-%{release} \ -Conflicts: %name > %{qemuver}-%{release} \ -Conflicts: qemu-tools < %{qemuver}-%{release} \ -Conflicts: qemu-tools > %{qemuver}-%{release} - -%package x86 -Summary: Machine emulator and virtualizer for x86 architectures -Group: System/Emulators/PC -Version: %{qemuver} -Release: 0 -Requires: %name = %{qemuver} -Requires: qemu-accel-tcg-x86 -Requires: qemu-ipxe -Requires: qemu-seabios -Requires: qemu-sgabios -Requires: qemu-vgabios -%ifarch x86_64 -Requires: qemu-ovmf-x86_64 -%else -Recommends: qemu-ovmf-ia32 -Recommends: qemu-ovmf-x86_64 -%endif -Recommends: ovmf -Recommends: qemu-microvm - -%description x86 -%{generic_qemu_description} - -This package provides i386 and x86_64 emulation. - -%files x86 -%defattr(-, root, root) -%_bindir/qemu-system-i386 -%_bindir/qemu-system-x86_64 -%_datadir/%name/kvmvapic.bin -%_datadir/%name/linuxboot.bin -%_datadir/%name/linuxboot_dma.bin -%_datadir/%name/multiboot.bin -%_datadir/%name/multiboot_dma.bin -%_datadir/%name/pvh.bin -%doc %_docdir/qemu-x86 - -%package ppc -Summary: Machine emulator and virtualizer for Power architectures -Group: System/Emulators/PC -Version: %{qemuver} -Release: 0 -Requires: %name = %{qemuver} -Requires: qemu-SLOF -Recommends: qemu-ipxe -Recommends: qemu-vgabios - -%description ppc -%{generic_qemu_description} - -This package provides ppc and ppc64 emulation. - -%files ppc -%defattr(-, root, root) -%_bindir/qemu-system-ppc -%_bindir/qemu-system-ppc64 -%_datadir/%name/bamboo.dtb -%_datadir/%name/canyonlands.dtb -%_datadir/%name/openbios-ppc -%_datadir/%name/qemu_vga.ndrv -%_datadir/%name/u-boot.e500 -%_datadir/%name/u-boot-sam460-20100605.bin -%_datadir/%name/vof*.bin -%doc %_docdir/qemu-ppc - -%package s390x -Summary: Machine emulator and virtualizer for S/390 architectures -Group: System/Emulators/PC -Version: %{qemuver} -Release: 0 -Requires: %name = %{qemuver} -Provides: qemu-s390 = %{qemuver} -Obsoletes: qemu-s390 < %{qemuver} - -%description s390x -%{generic_qemu_description} - -This package provides s390x emulation. - -%files s390x -%defattr(-, root, root) -%_bindir/qemu-system-s390x -%_datadir/%name/s390-ccw.img -%_datadir/%name/s390-netboot.img -%doc %_docdir/qemu-s390x - -%package arm -Summary: Machine emulator and virtualizer for ARM architectures -Group: System/Emulators/PC -Version: %{qemuver} -Release: 0 -Requires: %name = %{qemuver} -Recommends: ovmf -Recommends: qemu-ipxe -Recommends: qemu-uefi-aarch64 -Recommends: qemu-vgabios - -%description arm -%{generic_qemu_description} - -This package provides arm emulation. - -%files arm -%defattr(-, root, root) -%_bindir/qemu-system-arm -%_bindir/qemu-system-aarch64 -%_datadir/%name/npcm7xx_bootrom.bin -%doc %_docdir/qemu-arm - -%package extra -Summary: Machine emulator and virtualizer for "extra" architectures -Group: System/Emulators/PC -Version: %{qemuver} -Release: 0 -Requires: %name = %{qemuver} -Recommends: qemu-ipxe -Recommends: qemu-skiboot -Recommends: qemu-vgabios - -%description extra -%{generic_qemu_description} - -This package provides some lesser used emulations, including alpha, m68k, -mips, sparc, and xtensa. (The term "extra" is juxtapositioned against more -popular QEMU packages which are dedicated to a single architecture.) - -%files extra -%defattr(-, root, root) -%_bindir/qemu-system-alpha -%_bindir/qemu-system-avr -%_bindir/qemu-system-cris -%_bindir/qemu-system-hppa -%_bindir/qemu-system-loongarch64 -%_bindir/qemu-system-m68k -%_bindir/qemu-system-microblaze -%_bindir/qemu-system-microblazeel -%_bindir/qemu-system-mips -%_bindir/qemu-system-mipsel -%_bindir/qemu-system-mips64 -%_bindir/qemu-system-mips64el -%_bindir/qemu-system-nios2 -%_bindir/qemu-system-or1k -%_bindir/qemu-system-riscv32 -%_bindir/qemu-system-riscv64 -%_bindir/qemu-system-rx -%_bindir/qemu-system-sh4 -%_bindir/qemu-system-sh4eb -%_bindir/qemu-system-sparc -%_bindir/qemu-system-sparc64 -%_bindir/qemu-system-tricore -%_bindir/qemu-system-xtensa -%_bindir/qemu-system-xtensaeb -%_datadir/%name/hppa-firmware.img -%_datadir/%name/openbios-sparc32 -%_datadir/%name/openbios-sparc64 -%_datadir/%name/opensbi-riscv32-generic-fw_dynamic.bin -%_datadir/%name/opensbi-riscv64-generic-fw_dynamic.bin -%_datadir/%name/palcode-clipper -%_datadir/%name/petalogix-ml605.dtb -%_datadir/%name/petalogix-s3adsp1800.dtb -%_datadir/%name/QEMU,cgthree.bin -%_datadir/%name/QEMU,tcx.bin - -%package lang -Summary: Translations for QEMU -Group: System/Emulators/PC -Version: %{qemuver} -Release: 0 - -%description lang -This package contains a few language translations, particularly for the -graphical user interface components that come with QEMU. The bulk of strings -in QEMU are not localized. - -%files lang -f %blddir/%name.lang -%defattr(-, root, root) - -%package audio-alsa -Summary: ALSA based audio support for QEMU -Group: System/Emulators/PC -Version: %{qemuver} -Release: 0 -%{qemu_module_conflicts} - -%description audio-alsa -This package contains a module for ALSA based audio support for QEMU. - -%files audio-alsa -%defattr(-, root, root) -%dir %_libdir/%name -%_libdir/%name/audio-alsa.so - -%package audio-dbus -Summary: D-Bus based audio support for QEMU -Group: System/Emulators/PC -Version: %{qemuver} -Release: 0 -%{qemu_module_conflicts} - -%description audio-dbus -This package provides a module for D-Bus based audio support for QEMU. - -%files audio-dbus -%defattr(-, root, root) -%dir %_libdir/%name -%_libdir/%name/audio-dbus.so - -%package audio-pa -Summary: Pulse Audio based audio support for QEMU -Group: System/Emulators/PC -Version: %{qemuver} -Release: 0 -%{qemu_module_conflicts} - -%description audio-pa -This package contains a module for Pulse Audio based audio support for QEMU. - -%files audio-pa -%defattr(-, root, root) -%dir %_libdir/%name -%_libdir/%name/audio-pa.so - -%package audio-jack -Summary: JACK based audio support for QEMU -Group: System/Emulators/PC -Version: %{qemuver} -Release: 0 -%{qemu_module_conflicts} - -%description audio-jack -This package contains a module for JACK based audio support for QEMU. - -%files audio-jack -%defattr(-, root, root) -%dir %_libdir/%name -%_libdir/%name/audio-jack.so - -%package audio-spice -Summary: Spice based audio support for QEMU -Group: System/Emulators/PC -Version: %{qemuver} -Release: 0 -Requires: qemu-ui-spice-core -%{qemu_module_conflicts} - -%description audio-spice -This package contains a module for Spice based audio support for QEMU. - -%files audio-spice -%defattr(-, root, root) -%dir %_libdir/%name -%_libdir/%name/audio-spice.so - -%package audio-oss -Summary: OSS based audio support for QEMU -Group: System/Emulators/PC -Version: %{qemuver} -Release: 0 -%{qemu_module_conflicts} - -%description audio-oss -This package contains a module for OSS based audio support for QEMU. - -%files audio-oss -%defattr(-, root, root) -%dir %_libdir/%name -%_libdir/%name/audio-oss.so - -%package block-curl -Summary: cURL block support for QEMU -Group: System/Emulators/PC -Version: %{qemuver} -Release: 0 -%{qemu_module_conflicts} - -%description block-curl -This package contains a module for accessing network-based image files over -a network connection from qemu-img tool and QEMU system emulation. - -%files block-curl -%defattr(-, root, root) -%dir %_libdir/%name -%_libdir/%name/block-curl.so - -%package block-dmg -Summary: DMG block support for QEMU -Group: System/Emulators/PC -Version: %{qemuver} -Release: 0 -%{qemu_module_conflicts} - -%description block-dmg -This package contains a module for accessing Mac OS X image files from -qemu-img tool and QEMU system emulation. - -%files block-dmg -%defattr(-, root, root) -%dir %_libdir/%name -%_libdir/%name/block-dmg-bz2.so -%_libdir/%name/block-dmg-lzfse.so - -%package block-gluster -Summary: GlusterFS block support for QEMU -Group: System/Emulators/PC -Version: %{qemuver} -Release: 0 -%{qemu_module_conflicts} - -%description block-gluster -This package contains a module for accessing network-based image files over a -GlusterFS network connection from qemu-img tool and QEMU system emulation. - -%files block-gluster -%defattr(-, root, root) -%dir %_libdir/%name -%_libdir/%name/block-gluster.so - -%package block-iscsi -Summary: iSCSI block support for QEMU -Group: System/Emulators/PC -Version: %{qemuver} -Release: 0 -%{qemu_module_conflicts} - -%description block-iscsi -This package contains a module for accessing network-based image files over an -iSCSI network connection from qemu-img tool and QEMU system emulation. - -%files block-iscsi -%defattr(-, root, root) -%dir %_libdir/%name -%_libdir/%name/block-iscsi.so - -%package block-nfs -Summary: direct Network File System support for QEMU -Group: System/Emulators/PC -Version: %{qemuver} -Release: 0 -%{qemu_module_conflicts} - -%description block-nfs -This package contains a module for directly accessing nfs based image files -for QEMU. - -%files block-nfs -%defattr(-, root, root) -%dir %_libdir/%name -%_libdir/%name/block-nfs.so - -%package block-ssh -Summary: SSH (SFTP) block support for QEMU -Group: System/Emulators/PC -Version: %{qemuver} -Release: 0 -%{qemu_module_conflicts} - -%description block-ssh -This package contains a module for accessing network-based image files over an -SSH network connection from qemu-img tool and QEMU system emulation. - -%files block-ssh -%defattr(-, root, root) -%dir %_libdir/%name -%_libdir/%name/block-ssh.so - -%package chardev-baum -Summary: Baum braille chardev support for QEMU -Group: System/Emulators/PC -Version: %{qemuver} -Release: 0 -%{qemu_module_conflicts} - -%description chardev-baum -This package contains a module for baum braille chardev support for QEMU. - -%files chardev-baum -%defattr(-, root, root) -%dir %_datadir/%name -%dir %_libdir/%name -%_libdir/%name/chardev-baum.so - -%package chardev-spice -Summary: Spice vmc and port chardev support for QEMU -Group: System/Emulators/PC -Version: %{qemuver} -Release: 0 -Requires: qemu-ui-spice-core -%{qemu_module_conflicts} - -%description chardev-spice -This package contains a module for Spice chardev support for QEMU. - -%files chardev-spice -%defattr(-, root, root) -%dir %_datadir/%name -%dir %_libdir/%name -%_libdir/%name/chardev-spice.so - -%package hw-display-qxl -Summary: QXL display support for QEMU -Group: System/Emulators/PC -Version: %{qemuver} -Release: 0 -Requires: qemu-ui-spice-core -%{qemu_module_conflicts} - -%description hw-display-qxl -This package contains a module for QXL display support for QEMU. - -%files hw-display-qxl -%defattr(-, root, root) -%dir %_datadir/%name -%dir %_libdir/%name -%_libdir/%name/hw-display-qxl.so - -%package hw-display-virtio-gpu -Summary: Virtio GPU display support for QEMU -Group: System/Emulators/PC -Version: %{qemuver} -Release: 0 -%{qemu_module_conflicts} - -%description hw-display-virtio-gpu -This package contains a module for Virtio GPU display support for QEMU. - -%files hw-display-virtio-gpu -%defattr(-, root, root) -%dir %_datadir/%name -%_libdir/%name/hw-display-virtio-gpu.so -%_libdir/%name/hw-display-virtio-gpu-gl.so - -%package hw-display-virtio-gpu-pci -Summary: Virtio-gpu pci device for QEMU -Group: System/Emulators/PC -Version: %{qemuver} -Release: 0 -Requires: qemu-hw-display-virtio-gpu -%{qemu_module_conflicts} - -%description hw-display-virtio-gpu-pci -This package contains a module providing the virtio gpu pci device for QEMU. - -%files hw-display-virtio-gpu-pci -%defattr(-, root, root) -%dir %_datadir/%name -%dir %_libdir/%name -%_libdir/%name/hw-display-virtio-gpu-pci.so -%_libdir/%name/hw-display-virtio-gpu-pci-gl.so - -%package hw-display-virtio-vga -Summary: Virtio vga device for QEMU -Group: System/Emulators/PC -Version: %{qemuver} -Release: 0 -%{qemu_module_conflicts} - -%description hw-display-virtio-vga -This package contains a module providing the virtio vga device for QEMU. - -%files hw-display-virtio-vga -%defattr(-, root, root) -%dir %_datadir/%name -%dir %_libdir/%name -%_libdir/%name/hw-display-virtio-vga.so -%_libdir/%name/hw-display-virtio-vga-gl.so - -%package hw-s390x-virtio-gpu-ccw -Summary: S390x virtio-gpu ccw device for QEMU -Group: System/Emulators/PC -Version: %{qemuver} -Release: 0 -Requires: qemu-hw-display-virtio-gpu -%{qemu_module_conflicts} - -%description hw-s390x-virtio-gpu-ccw -This package contains a module providing the s390x virtio gpu ccw device for -QEMU. - -%files hw-s390x-virtio-gpu-ccw -%defattr(-, root, root) -%dir %_datadir/%name -%dir %_libdir/%name -%_libdir/%name/hw-s390x-virtio-gpu-ccw.so - -%package hw-usb-redirect -Summary: USB redirection support for QEMU -Group: System/Emulators/PC -Version: %{qemuver} -Release: 0 -%{qemu_module_conflicts} - -%description hw-usb-redirect -This package contains a module for USB redirection support for QEMU. - -%files hw-usb-redirect -%defattr(-, root, root) -%dir %_datadir/%name -%dir %_libdir/%name -%_libdir/%name/hw-usb-redirect.so - -%package hw-usb-smartcard -Summary: USB smartcard support for QEMU -Group: System/Emulators/PC -Version: %{qemuver} -Release: 0 -%{qemu_module_conflicts} - -%description hw-usb-smartcard -This package contains a modules for USB smartcard support for QEMU. - -%files hw-usb-smartcard -%defattr(-, root, root) -%dir %_datadir/%name -%dir %_libdir/%name -%_libdir/%name/hw-usb-smartcard.so - -%package hw-usb-host -Summary: USB passthrough driver support for QEMU -Group: System/Emulators/PC -Version: %{qemuver} -Release: 0 -%{qemu_module_conflicts} - -%description hw-usb-host -This package contains a modules for USB passthrough driver for QEMU. - -%files hw-usb-host -%defattr(-, root, root) -%dir %_datadir/%name -%dir %_libdir/%name -%_libdir/%name/hw-usb-host.so - -%package ui-dbus -Summary: D-Bus based UI support for QEMU -Group: System/Emulators/PC -Version: %{qemuver} -Release: 0 -%{qemu_module_conflicts} - -%description ui-dbus -This package contains a module for doing D-Bus based UI for QEMU. - -%files ui-dbus -%defattr(-, root, root) -%dir %_libdir/%name -%_libdir/%name/ui-dbus.so - -%package ui-curses -Summary: Curses based UI support for QEMU -Group: System/Emulators/PC -Version: %{qemuver} -Release: 0 -%{qemu_module_conflicts} - -%description ui-curses -This package contains a module for doing curses based UI for QEMU. - -%files ui-curses -%defattr(-, root, root) -%dir %_libdir/%name -%_libdir/%name/ui-curses.so - -%package ui-gtk -Summary: GTK based UI support for QEMU -Group: System/Emulators/PC -Version: %{qemuver} -Release: 0 -Requires: qemu-ui-opengl -%{qemu_module_conflicts} - -%description ui-gtk -This package contains a module for doing GTK based UI for QEMU. - -%files ui-gtk -%defattr(-, root, root) -%dir %_libdir/%name -%_libdir/%name/ui-gtk.so - -%package ui-opengl -Summary: OpenGL based UI support for QEMU -Group: System/Emulators/PC -Version: %{qemuver} -Release: 0 -%{qemu_module_conflicts} - -%description ui-opengl -This package contains a module for doing OpenGL based UI for QEMU. - -%files ui-opengl -%defattr(-, root, root) -%dir %_datadir/%name -%dir %_libdir/%name -%_libdir/%name/ui-egl-headless.so -%_libdir/%name/ui-opengl.so - -%package ui-spice-app -Summary: Spice UI support for QEMU -Group: System/Emulators/PC -Version: %{qemuver} -Release: 0 -Requires: qemu-chardev-spice -Requires: qemu-ui-spice-core -%{qemu_module_conflicts} - -%description ui-spice-app -This package contains a module for doing Spice based UI for QEMU. - -%files ui-spice-app -%defattr(-, root, root) -%dir %_libdir/%name -%_libdir/%name/ui-spice-app.so - -%package ui-spice-core -Summary: Core Spice support for QEMU -Group: System/Emulators/PC -Version: %{qemuver} -Release: 0 -Requires: qemu-ui-opengl -# This next Requires is only since virt-manager expects audio support -Requires: qemu-audio-spice -%{qemu_module_conflicts} - -%description ui-spice-core -This package contains a module with core Spice support for QEMU. - -%files ui-spice-core -%defattr(-, root, root) -%dir %_datadir/%name -%dir %_libdir/%name -%_libdir/%name/ui-spice-core.so - -%package vhost-user-gpu -Summary: Vhost user mode virtio-gpu 2D/3D rendering backend for QEMU -Group: System/Emulators/PC -Version: %{qemuver} -Release: 0 -%{qemu_module_conflicts} - -%description vhost-user-gpu -This package contains a vhost user mode virtio-gpu 2D/3D rendering backend for -QEMU. - -%files vhost-user-gpu -%defattr(-, root, root) -%dir %_datadir/%name/vhost-user -%_datadir/%name/vhost-user/50-qemu-gpu.json -%_libexecdir/vhost-user-gpu - -%package tools -Summary: Tools for QEMU -Group: System/Emulators/PC -Version: %{qemuver} -Release: 0 -Requires(pre): permissions -Requires: group(kvm) -Recommends: multipath-tools -Recommends: qemu-block-curl -%if 0%{?with_rbd} -Recommends: qemu-block-rbd -%endif - -%description tools -This package contains various QEMU related tools, including a bridge helper, -a virtfs helper, ivshmem, disk utilities and scripts for various purposes. - -%files tools -%defattr(-, root, root) -%_bindir/analyze-migration.py -%_bindir/qemu-edid -%_bindir/qemu-img -%_bindir/qemu-io -%_bindir/qemu-keymap -%_bindir/qemu-nbd -%_bindir/qemu-pr-helper -%_bindir/qemu-storage-daemon -%_bindir/vmstate-static-checker.py -%_bindir/vmxcap -%verify(not mode) %attr(4750,root,kvm) %_libexecdir/qemu-bridge-helper -%_libexecdir/virtfs-proxy-helper -%_libexecdir/virtiofsd -%_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(noreplace) %_sysconfdir/%name/bridge.conf - -%post tools -%set_permissions %_libexecdir/qemu-bridge-helper - -%verifyscript tools -%verify_permissions %_libexecdir/qemu-bridge-helper - -%package ivshmem-tools -Summary: Inter-VM Shared Memory Tools for QEMU -Group: System/Emulators/PC -Version: %{qemuver} -Release: 0 - -%description ivshmem-tools -This package contains a sample shared memory client and server which utilize -QEMU's Inter-VM shared memory device as specified by the ivshmem client-server -protocol specification documented in docs/specs/ivshmem-spec.txt in QEMU source -code. - -%files ivshmem-tools -%defattr(-, root, root) -%dir %_datadir/%name -%_bindir/ivshmem-client -%_bindir/ivshmem-server - -%package guest-agent -Summary: Guest agent for QEMU -Group: System/Emulators/PC -Version: %{qemuver} -Release: 0 -Requires: group(kvm) -Requires(post): udev -Supplements: modalias(acpi*:QEMU0002%3A*) -Supplements: modalias(pci:v00005853d00000001sv*sd*bc*sc*i*) -Supplements: modalias(pci:v0000FFFDd00000101sv*sd*bc*sc*i*) -%{?systemd_ordering} - -%description guest-agent -This package contains the QEMU guest agent. It is installed in the linux guest -to provide information and control at the guest OS level. - -%files guest-agent -%defattr(-, root, root) -%attr(0755,root,kvm) %_bindir/qemu-ga -%_mandir/man8/qemu-ga.8.gz -%{_unitdir}/qemu-guest-agent.service -/usr/lib/udev/rules.d/80-qemu-ga.rules - -%pre guest-agent -%service_add_pre qemu-guest-agent.service - -%post guest-agent -%service_add_post qemu-guest-agent.service -if [ -e /dev/virtio-ports/org.qemu.guest_agent.0 ]; then - /usr/bin/systemctl start qemu-guest-agent.service || : -fi - -%preun guest-agent -if [ -e /dev/virtio-ports/org.qemu.guest_agent.0 ]; then - /usr/bin/systemctl stop qemu-guest-agent.service || : -fi - -%postun guest-agent -%service_del_postun_without_restart qemu-guest-agent.service -if [ "$1" = "1" ] ; then - if [ -e /dev/virtio-ports/org.qemu.guest_agent.0 ]; then - /usr/bin/systemctl restart qemu-guest-agent.service || : - fi -fi - -%package ksm -Summary: Kernel Samepage Merging services -Group: System/Emulators/PC -Version: %{qemuver} -Release: 0 -Requires(pre): coreutils -Requires(post): coreutils - -%description ksm -Kernel Samepage Merging (KSM) is a memory-saving de-duplication feature, that -merges anonymous (private) pages (not pagecache ones). - -This package provides a service file for starting and stopping KSM. - -%files ksm -%defattr(-, root, root) -%{_unitdir}/ksm.service - -%pre ksm -%service_add_pre ksm.service - -%post ksm -%service_add_post ksm.service - -%preun ksm -%service_del_preun ksm.service - -%postun ksm -%service_del_postun ksm.service - -%package accel-tcg-x86 -Summary: TCG accelerator for QEMU -Group: System/Emulators/PC -Version: %{qemuver} -Release: 0 -%{qemu_module_conflicts} - -%description accel-tcg-x86 -TCG is the QEMU binary translator, responsible for converting from target to -host instruction set. - -This package provides the TCG accelerator for QEMU. - -%files accel-tcg-x86 -%defattr(-, root, root) -%dir %_datadir/%name -%dir %_libdir/%name -%_libdir/%name/accel-tcg-i386.so -%_libdir/%name/accel-tcg-x86_64.so - -%package accel-qtest -Summary: QTest accelerator for QEMU -Group: System/Emulators/PC -Version: %{qemuver} -Release: 0 -%{qemu_module_conflicts} - -%description accel-qtest -QTest is a device emulation testing framework. It is useful to test device -models. - -This package provides QTest accelerator for testing QEMU. - -%files accel-qtest -%defattr(-, root, root) -%dir %_datadir/%name -%dir %_libdir/%name -%_libdir/%name/accel-qtest-aarch64.so -%_libdir/%name/accel-qtest-alpha.so -%_libdir/%name/accel-qtest-arm.so -%_libdir/%name/accel-qtest-avr.so -%_libdir/%name/accel-qtest-cris.so -%_libdir/%name/accel-qtest-hppa.so -%_libdir/%name/accel-qtest-i386.so -%_libdir/%name/accel-qtest-loongarch64.so -%_libdir/%name/accel-qtest-m68k.so -%_libdir/%name/accel-qtest-microblaze.so -%_libdir/%name/accel-qtest-microblazeel.so -%_libdir/%name/accel-qtest-mips.so -%_libdir/%name/accel-qtest-mips64.so -%_libdir/%name/accel-qtest-mips64el.so -%_libdir/%name/accel-qtest-mipsel.so -%_libdir/%name/accel-qtest-nios2.so -%_libdir/%name/accel-qtest-or1k.so -%_libdir/%name/accel-qtest-ppc.so -%_libdir/%name/accel-qtest-ppc64.so -%_libdir/%name/accel-qtest-riscv32.so -%_libdir/%name/accel-qtest-riscv64.so -%_libdir/%name/accel-qtest-rx.so -%_libdir/%name/accel-qtest-s390x.so -%_libdir/%name/accel-qtest-sh4.so -%_libdir/%name/accel-qtest-sh4eb.so -%_libdir/%name/accel-qtest-sparc.so -%_libdir/%name/accel-qtest-sparc64.so -%_libdir/%name/accel-qtest-tricore.so -%_libdir/%name/accel-qtest-x86_64.so -%_libdir/%name/accel-qtest-xtensa.so -%_libdir/%name/accel-qtest-xtensaeb.so - -%if 0%{?with_rbd} -%package block-rbd -Summary: Rados Block Device (Ceph) support for QEMU -Group: System/Emulators/PC -Version: %{qemuver} -Release: 0 -%{qemu_module_conflicts} - -%description block-rbd -This package contains a module for accessing ceph (rbd,rados) image files -for QEMU. - -%files block-rbd -%defattr(-, root, root) -%dir %_libdir/%name -%_libdir/%name/block-rbd.so -# End of "if with_rbd" -%endif - -%if %{legacy_qemu_kvm} -%package kvm -Summary: Wrapper to enable KVM acceleration under QEMU -Group: System/Emulators/PC -Version: %{qemuver} -Release: 0 -%ifarch %ix86 x86_64 -Requires: qemu-x86 = %{qemuver} -%endif -%ifarch s390x -Requires: qemu-s390x = %{qemuver} -%endif -Provides: kvm = %{qemuver} -Obsoletes: kvm < %{qemuver} - -%description kvm -%{generic_qemu_description} - -This package provides a symlink to the main QEMU emulator used for KVM -virtualization. The symlink is named qemu-kvm, which causes the QEMU program -to enable the KVM accelerator, due to the name reference ending with 'kvm'. -This package is an artifact of the early origins of QEMU, and is deprecated. - -%files kvm -%defattr(-,root,root) -%_bindir/qemu-kvm -%doc %_docdir/qemu-kvm -%_mandir/man1/qemu-kvm.1.gz -# End of "if legacy_qemu_kvm" -%endif - -%if %{build_ppc_firmware} -%package SLOF -Summary: Slimline Open Firmware - SLOF -Group: System/Emulators/PC -Version: %{qemuver} -Release: 0 -BuildArch: noarch - -%description SLOF -Slimline Open Firmware (SLOF) is an implementation of the IEEE 1275 standard. -It can be used as partition firmware for pSeries machines running on QEMU or KVM. - -%files SLOF -%defattr(-, root, root) -%dir %_datadir/%name -%_datadir/%name/slof.bin - -%package skiboot -Summary: OPAL firmware (aka skiboot), used in booting OpenPOWER systems -Group: System/Emulators/PC -Version: %{qemuver} -Release: 0 -BuildArch: noarch -Requires(post): update-alternatives -Requires(postun):update-alternatives - -%description skiboot -Provides OPAL (OpenPower Abstraction Layer) firmware, aka skiboot, as -traditionally packaged with QEMU. - -%files skiboot -%defattr(-, root, root) -%dir %_datadir/%name -%_datadir/%name/skiboot.lid -%_datadir/%name/skiboot.lid.qemu -%ghost %_sysconfdir/alternatives/skiboot.lid - -%post skiboot -update-alternatives --install \ - %{_datadir}/%name/skiboot.lid skiboot.lid %{_datadir}/%name/skiboot.lid.qemu 15 - -%preun skiboot -if [ ! -f %{_datadir}/%name/skiboot.lid.qemu ] ; then - update-alternatives --remove skiboot.lid %{_datadir}/%name/skiboot.lid.qemu -fi -# End of "if build_ppc_firmware" -%endif - -%if %{build_x86_firmware} -%package microvm -Summary: x86 MicroVM firmware for QEMU -Group: System/Emulators/PC -Version: %{qemuver} -Release: 0 -BuildArch: noarch - -%description microvm -This package provides minimal x86 firmware for booting certain guests under -QEMU. qboot provides the minimum resources needed to boot PVH and bzImages. -bios-microvm, created from a minimal seabios configuration, provides slightly -wider support than qboot, but still focuses on quick boot up. - -%files microvm -%defattr(-, root, root) -%dir %_datadir/%name -%_datadir/%name/bios-microvm.bin -%_datadir/%name/qboot.rom - -%package seabios -Summary: x86 Legacy BIOS for QEMU -Group: System/Emulators/PC -Version: %{sbver} -Release: 0 -BuildArch: noarch -Conflicts: %name < 1.6.0 - -%description seabios -SeaBIOS is an open source implementation of a 16bit x86 BIOS. SeaBIOS -is the default and legacy BIOS for QEMU. - -%files seabios -%defattr(-, root, root) -%dir %_datadir/%name -%_datadir/%name/bios.bin -%_datadir/%name/bios-256k.bin -%_datadir/%name/firmware/50-seabios-256k.json -%_datadir/%name/firmware/60-seabios-128k.json - -%package vgabios -Summary: VGA BIOSes for QEMU -Group: System/Emulators/PC -Version: %{sbver} -Release: 0 -BuildArch: noarch -Conflicts: %name < 1.6.0 - -%description vgabios -VGABIOS provides the video ROM BIOSes for the following variants of VGA -emulated devices: Std VGA, QXL, Cirrus CLGD 5446 and VMware emulated -video card. For use with QEMU. - -%files vgabios -%defattr(-, root, root) -%dir %_datadir/%name -%_datadir/%name/vgabios.bin -%_datadir/%name/vgabios-ati.bin -%_datadir/%name/vgabios-bochs-display.bin -%_datadir/%name/vgabios-cirrus.bin -%_datadir/%name/vgabios-qxl.bin -%_datadir/%name/vgabios-ramfb.bin -%_datadir/%name/vgabios-stdvga.bin -%_datadir/%name/vgabios-virtio.bin -%_datadir/%name/vgabios-vmware.bin - -%package sgabios -Summary: Serial Graphics Adapter BIOS for QEMU -Group: System/Emulators/PC -Version: 8 -Release: 0 -BuildArch: noarch -Conflicts: %name < 1.6.0 - -%description sgabios -The Google Serial Graphics Adapter BIOS or SGABIOS provides a means for legacy -x86 software to communicate with an attached serial console as if a video card -were attached. For use with QEMU. - -%files sgabios -%defattr(-, root, root) -%dir %_datadir/%name -%_datadir/%name/sgabios.bin - -%package ipxe -Summary: PXE ROMs for QEMU NICs -Group: System/Emulators/PC -Version: 1.0.0+ -Release: 0 -BuildArch: noarch -Conflicts: %name < 1.6.0 - -%description ipxe -Provides Preboot Execution Environment (PXE) ROM support for various emulated -network adapters available with QEMU. - -%files ipxe -%defattr(-, root, root) -%dir %_datadir/%name -%_datadir/%name/efi-e1000.rom -%_datadir/%name/efi-e1000e.rom -%_datadir/%name/efi-eepro100.rom -%_datadir/%name/efi-ne2k_pci.rom -%_datadir/%name/efi-pcnet.rom -%_datadir/%name/efi-rtl8139.rom -%_datadir/%name/efi-virtio.rom -%_datadir/%name/efi-vmxnet3.rom -%_datadir/%name/pxe-e1000.rom -%_datadir/%name/pxe-eepro100.rom -%_datadir/%name/pxe-ne2k_pci.rom -%_datadir/%name/pxe-pcnet.rom -%_datadir/%name/pxe-rtl8139.rom -%_datadir/%name/pxe-virtio.rom -# End of "if build_x86_firmware" -%endif - -# End of description and files for qemu and all its subpackages -%endif - -%prep -#if 0%{?sle_version} <= 150400 -# Apparently, autosetup does not work, not even in 15.4. So, -# keep 'setup' plus the generated list of patches here for a -# while. Hopefully we'll be able to get rid of this soon enough. -#setup -q -n %{srcname}-%{expand:%%(SV=%{srcver};echo ${SV%%%%+git*})} -#PATCH_EXEC -#else -#autosetup -p1 -n %{srcname}-%{expand:%%(SV=%{srcver};echo ${SV%%%%+git*})} -%autosetup -p1 -n %{srcname}-%{srcver} -#endif - -%if "%{name}" == "qemu" -# Specific preparation steps for building qemu - -# for the record, this set of firmware files is installed, but we don't -# build (yet): bamboo.dtb canyonlands.dtb hppa-firmware.img openbios-ppc -# openbios-sparc32 openbios-sparc64 palcode-clipper petalogix-ml605.dtb -# petalogix-s3adsp1800.dtb QEMU,cgthree.bin QEMU,tcx.bin qemu_vga.ndrv -# u-boot.e500 u-boot-sam460-20100605.bin opensbi-riscv32-generic-fw_dynamic.bin -# opensbi-riscv32-generic-fw_dynamic.elfnpcm7xx_bootrom.bin vof.bin -# vof-nvram.bin - -# Note that: -# - default firmwares are built "by default", i.e., they're built automatically -# during the process of building QEMU (on each specific arch) -# - extra firmwares are built "manually" (see below) from their own sources -# (which, typically, are submodules checked out in the {srcdi}r/roms directory) -%define ppc_default_firmware %{nil} -#{vof.bin vof-nvram.bin} -%define ppc_extra_firmware {skiboot.lid slof.bin} -%define riscv64_default_firmware %{nil} -%define riscv64_extra_firmware {opensbi-riscv64-generic-fw_dynamic.bin} -%define s390x_default_firmware {s390-ccw.img s390-netboot.img} -%define s390x_extra_firmware %{nil} -%define x86_default_firmware {linuxboot.bin linuxboot_dma.bin multiboot.bin \ -multiboot_dma.bin kvmvapic.bin pvh.bin} -%define x86_extra_firmware {bios.bin bios-256k.bin bios-microvm.bin qboot.rom \ -pxe-e1000.rom pxe-eepro100.rom pxe-ne2k_pci.rom pxe-pcnet.rom pxe-rtl8139.rom \ -pxe-virtio.rom 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 \ -efi-e1000.rom efi-e1000e.rom efi-eepro100.rom efi-ne2k_pci.rom efi-pcnet.rom \ -efi-rtl8139.rom efi-virtio.rom efi-vmxnet3.rom} - -# Complete list of all the firmwares that we build, if we consider -# all the builds, on all the arches. -%define firmware { \ -%{ppc_default_firmware} %{ppc_extra_firmware} \ -%{riscv64_default_firmware} %{riscv64_extra_firmware} \ -%{s390x_default_firmware} %{s390x_extra_firmware} \ -%{x86_default_firmware} %{x86_extra_firmware} } - -# Note that: -# - {arch}_default_built_firmware are the firmwares that we will be built by -# default in this particular build, on the arch where we currently are on -# - {arch}_extra_built_fimrware, likewise, but for extra firmwares, built manually -%ifarch ppc64 ppc64le -%define ppc_default_built_firmware %{ppc_default_firmware} -%endif -%ifarch riscv64 -%define riscv64_default_built_firmware %{riscv64_default_firmware} -%endif -%ifarch s390x -%define s390x_default_built_firmware %{s390x_default_firmware} -%endif -%ifarch %ix86 x86_64 -%define x86_default_built_firmware %{x86_default_firmware} -%endif - -%if %{build_opensbi_firmware} -%define riscv64_extra_built_firmware %{riscv64_extra_firmware} -%endif -%if %{build_ppc_firmware} -%define ppc_extra_built_firmware %{ppc_extra_firmware} -%endif -%if %{build_x86_firmware} -%define x86_extra_built_firmware %{x86_extra_firmware} -%endif - -# List of only firmwares that will actually be built, in this instance -%define built_firmware { \ -%{?ppc_default_built_firmware} %{?ppc_extra_built_firmware} \ -%{?riscv64_default_built_firmware} %{?riscv64_extra_built_firmware} \ -%{?s390x_default_built_firmware} %{?s390x_extra_built_firmware} \ -%{?x86_default_built_firmware} %{?x86_extra_built_firmware} } - -# End of source preparation for qemu -%endif - -%build - -%if %{legacy_qemu_kvm} -# FIXME: Why are we copying the s390 specific one (SOURCE13)? -cp %{SOURCE13} docs/supported.rst -sed -i '/^\ \ \ about\/index.*/i \ \ \ supported.rst' docs/index.rst -%endif - -mkdir -p %blddir -cd %blddir - -# We define a few general and common options and then we disable -# pretty much everything. Afterwards, there is a section for each -# of the flavors where we explicitly enable all the feature we want -# for them. - -# TODO: Check whether we want to enable the followings: -# * avx512f -# * debug-info -# * fuse -# * malloc-trim -# * multiprocess -# * qom-cast-debug -# * trace-backends=dtrace -# -# Fedora has avx2 enabled for ix86, while we can't (I tried). Guess it's -# because, for them, ix86 == i686 (while for us it's i586). - -# Let's try to stick to _FORTIFY_SOURCE=2 for now -EXTRA_CFLAGS="$(echo %{optflags} | sed -E 's/-[A-Z]?_FORTIFY_SOURCE[=]?[0-9]*//g') -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2" - -%srcdir/configure \ - --docdir=%_docdir \ - --datadir=%_datadir \ - --extra-cflags="${EXTRA_CFLAGS}" \ - --firmwarepath=%_datadir/%name \ - --libdir=%_libdir \ - --libexecdir=%_libexecdir \ - --localstatedir=%_localstatedir \ - --prefix=%_prefix \ - --python=%_bindir/python3 \ - --sysconfdir=%_sysconfdir \ - --with-git-submodules=ignore \ - --with-pkgversion="%(echo '%{distro}' | sed 's/ (.*)//')" \ - --disable-alsa \ - --disable-attr \ - --disable-auth-pam \ - --disable-avx2 \ - --disable-avx512f \ - --disable-block-drv-whitelist-in-tools \ - --disable-bochs \ - --disable-bpf \ - --disable-brlapi \ - --disable-bsd-user \ - --disable-bzip2 \ - --disable-cap-ng \ - --disable-capstone \ - --disable-cfi \ - --disable-cfi-debug \ - --disable-cloop \ - --disable-cocoa \ - --disable-coreaudio \ - --disable-coroutine-pool \ - --disable-crypto-afalg \ - --disable-curl \ - --disable-curses \ - --disable-dbus-display \ - --disable-debug-info \ - --disable-debug-mutex \ - --disable-debug-tcg \ - --disable-dmg \ - --disable-docs \ - --disable-dsound \ - --disable-fdt \ - --disable-fuse \ - --disable-fuse-lseek \ - --disable-gcrypt \ - --disable-gettext \ - --disable-gio \ - --disable-glusterfs \ - --disable-gnutls \ - --disable-gtk \ - --disable-guest-agent \ - --disable-guest-agent-msi \ - --disable-hax \ - --disable-hvf \ - --disable-iconv \ - --disable-jack \ - --disable-kvm \ - --disable-l2tpv3 \ - --disable-libdaxctl \ - --disable-libiscsi \ - --disable-libnfs \ - --disable-libpmem \ - --disable-libssh \ - --disable-libudev \ - --disable-libusb \ - --disable-linux-aio \ - --disable-linux-io-uring \ - --disable-linux-user \ - --disable-live-block-migration \ - --disable-lto \ - --disable-lzfse \ - --disable-lzo \ - --disable-malloc-trim \ - --disable-membarrier \ - --disable-module-upgrades \ - --disable-modules \ - --disable-mpath \ - --disable-multiprocess \ - --disable-netmap \ - --disable-nettle \ - --disable-numa \ - --disable-nvmm \ - --disable-opengl \ - --disable-oss \ - --disable-pa \ - --disable-parallels \ - --disable-pie \ - --disable-plugins \ - --disable-png \ - --disable-pvrdma \ - --disable-qcow1 \ - --disable-qed \ - --disable-qom-cast-debug \ - --disable-rbd \ - --disable-rdma \ - --disable-replication \ - --disable-rng-none \ - --disable-safe-stack \ - --disable-sanitizers \ - --disable-sdl \ - --disable-sdl-image \ - --disable-seccomp \ - --disable-selinux \ - --disable-slirp \ - --disable-slirp-smbd \ - --disable-smartcard \ - --disable-snappy \ - --disable-sparse \ - --disable-spice \ - --disable-spice-protocol \ - --disable-strip \ - --disable-system \ - --disable-tcg \ - --disable-tcg-interpreter \ - --disable-tools \ - --disable-tpm \ - --disable-u2f \ - --disable-usb-redir \ - --disable-user \ - --disable-vde \ - --disable-vdi \ - --disable-vhost-crypto \ - --disable-vhost-kernel \ - --disable-vhost-net \ - --disable-vhost-user \ - --disable-vhost-user-blk-server \ - --disable-vhost-vdpa \ - --disable-virglrenderer \ - --disable-virtfs \ - --disable-virtiofsd \ - --disable-vnc \ - --disable-vnc-jpeg \ - --disable-vnc-sasl \ - --disable-vte \ - --disable-vvfat \ - --disable-werror \ - --disable-whpx \ - --disable-xen \ - --disable-xen-pci-passthrough \ - --disable-xkbcommon \ - --disable-zstd \ - --without-default-devices \ -%if %{with system_membarrier} - --enable-membarrier \ -%endif -%if %{with malloc_trim} - --enable-malloc-trim \ -%endif -%if "%{_lto_cflags}" != "%{nil}" - --enable-lto \ -%endif -%if "%{name}" == "qemu-linux-user" - --disable-install-blobs \ - --enable-attr \ - --enable-coroutine-pool \ - --enable-linux-user \ - --enable-selinux \ - --enable-tcg \ - --static \ -%else - --audio-drv-list=pa,alsa,jack,oss \ - --enable-auth-pam \ -%ifarch x86_64 - --enable-avx2 \ - --enable-libpmem \ - --enable-xen \ - --enable-xen-pci-passthrough \ -%endif -%ifnarch %arm s390x - --enable-numa \ -%endif -%if %{kvm_available} - --enable-kvm \ -%endif -%if 0%{?with_daxctl} - --enable-libdaxctl \ -%endif -%if 0%{?with_uring} - --enable-linux-io-uring \ -%endif -%if 0%{?with_rbd} - --enable-rbd \ -%endif - --enable-alsa \ - --enable-attr \ - --enable-bochs \ - --enable-brlapi \ - --enable-bpf \ - --enable-bzip2 \ - --enable-cap-ng \ - --enable-capstone \ - --enable-cloop \ - --enable-coroutine-pool \ - --enable-curl \ - --enable-curses \ - --enable-dbus-display \ - --enable-dmg \ - --enable-docs \ - --enable-fdt=system \ - --enable-gcrypt \ - --enable-gettext \ - --enable-gio \ - --enable-glusterfs \ - --enable-gnutls \ - --enable-gtk \ - --enable-guest-agent \ - --enable-iconv \ - --enable-jack \ - --enable-l2tpv3 \ - --enable-libiscsi \ - --enable-libnfs \ - --enable-libssh \ - --enable-libudev \ - --enable-libusb \ - --enable-linux-aio \ - --enable-live-block-migration \ - --enable-lzfse \ - --enable-lzo \ - --enable-modules \ - --enable-mpath \ - --enable-opengl \ - --enable-oss \ - --enable-pa \ - --enable-parallels \ - --enable-pie \ - --enable-png \ - --enable-pvrdma \ - --enable-qcow1 \ - --enable-qed \ - --enable-rdma \ - --enable-replication \ - --enable-seccomp \ - --enable-selinux \ - --enable-slirp-smbd \ - --enable-slirp=system \ - --enable-smartcard \ - --enable-snappy \ - --enable-spice \ - --enable-spice-protocol \ - --enable-system \ - --enable-tcg \ - --enable-tools \ - --enable-tpm \ - --enable-usb-redir \ - --enable-vde \ - --enable-vdi \ - --enable-vhost-crypto \ - --enable-vhost-kernel \ - --enable-vhost-net \ - --enable-vhost-user \ - --enable-vhost-user-blk-server \ - --enable-vhost-vdpa \ - --enable-virglrenderer \ - --enable-virtfs \ - --enable-virtiofsd \ - --enable-vnc \ - --enable-vnc-jpeg \ - --enable-vnc-sasl \ - --enable-vte \ - --enable-vvfat \ - --enable-werror \ - --enable-xkbcommon \ - --enable-zstd \ - --with-coroutine=ucontext \ - --with-default-devices -# End of configure option ("name == qemu-linux-user" above) -%endif - -echo "=== Content of config-host.mak: ===" -cat config-host.mak -echo "=== ===" - -%if "%{name}" == "qemu" -# For building QEMU and all the "default" firmwares, for each arch, -# for the package qemu, we first need to delete the firmware files that -# we intend to build... -# -# TODO: check if this can be common to qemu and qemu-linux-user -for i in %built_firmware -do - unlink %srcdir/pc-bios/$i -done -# End of unlinking pre-built firmwares for qemu -%endif - -# Common build steps for qemu and qemu-linux-user -%make_build - -%if "%{name}" == "qemu" -# ... Then, we need to reinstate the firmwares that have been built already -for i in %{?s390x_default_built_firmware} -do - cp pc-bios/s390-ccw/$i %srcdir/pc-bios/ -done - -for i in %{?x86_default_built_firmware} -do - cp pc-bios/optionrom/$i %srcdir/pc-bios/ -done - -# Build the "extra" firmwares. Note that the QEMU Makefile in {srcdir}/roms -# does some cross-compiler auto detection. So we often don't need to define -# or pass CROSS= and CROSS_COMPILE ourselves. - -%if %{build_ppc_firmware} -# FIXME: check if we can upstream: Makefile-define-endianess-for-cross-buil.patch -%make_build -C %srcdir/roms skiboot - -%make_build -C %srcdir/roms slof -%endif - -%if %{build_opensbi_firmware} -%make_build -C %srcdir/roms opensbi64-generic -# End of "if build_ppc_firmware" -%endif - -%if %{build_x86_firmware} -%make_build %{?_smp_mflags} -C %srcdir/roms bios \ - SEABIOS_EXTRAVERSION="-rebuilt.opensuse.org" \ - -# FIXME: check if we can upstream: roms-Makefile-add-cross-file-to-qboot-me.patch -# and qboot-add-cross.ini-file-to-handle-aarch.patch -%make_build -C %srcdir/roms qboot - -%make_build -C %srcdir/roms seavgabios \ - -%make_build -C %srcdir/roms seavgabios-ati \ - -%make_build -C %srcdir/roms pxerom - -%make_build -C %srcdir/roms efirom \ - EDK2_BASETOOLS_OPTFLAGS='-fPIE' - -# We're currently not building firmware on ix86, but let's make sure this works -# fine if one enables it, e.g., locally (for debugging or something). -# FIXME: check if we can get rid or upstream: roms-sgabios-Fix-csum8-to-be-built-by-ho.patch -make -C %srcdir/roms sgabios HOSTCC=cc \ -%ifnarch %ix86 x86_64 - CC=x86_64-suse-linux-gcc LD=x86_64-suse-linux-ld \ -%endif - -%if %{force_fit_virtio_pxe_rom} -pushd %srcdir -patch -p1 < %_sourcedir/stub-out-the-SAN-req-s-in-int13.patch -popd -%make_build -C %srcdir/roms pxerom_variants=virtio pxerom_targets=1af41000 pxerom -%endif - -for i in %supported_nics_large %unsupported_nics - do - if test "`stat -c '%s' %srcdir/pc-bios/pxe-$i.rom`" -gt "131072" ; then - echo "pxe rom is too large" - exit 1 - fi - if test "`stat -c '%s' %srcdir/pc-bios/pxe-$i.rom`" -le "65536" ; then - ./%srcdir/roms/ipxe/src/util/padimg.pl %srcdir/pc-bios/pxe-$i.rom -s 65536 -b 255 - echo -ne "SEGMENT OVERAGE\0" >> %srcdir/pc-bios/pxe-$i.rom - fi -done -for i in %supported_nics_small - do - if test "`stat -c '%s' %srcdir/pc-bios/pxe-$i.rom`" -gt "65536" ; then - echo "pxe rom is too large" - exit 1 - fi -done -# End of "if build_x86_firmware" -%endif - -# End of the build for qemu -%endif - -%install -cd %blddir - -%make_build install DESTDIR=%{buildroot} - -%if "%{name}" == "qemu-linux-user" -# Additional installation steps specific to qemu-linux-user - -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 - -# End of additional installation steps for qemu-linux-user -%else -# Additional installation steps specific to qemu - -%find_lang %name -install -d -m 0755 %{buildroot}%_datadir/%name/firmware -install -d -m 0755 %{buildroot}/usr/lib/supportconfig/plugins -install -d -m 0755 %{buildroot}%_sysconfdir/%name/firmware -install -D -m 0644 %{SOURCE4} %{buildroot}%_sysconfdir/%name/bridge.conf -install -D -m 0755 %{SOURCE3} %{buildroot}%_datadir/%name/qemu-ifup -install -D -p -m 0644 %{SOURCE8} %{buildroot}/usr/lib/udev/rules.d/80-qemu-ga.rules -install -D -m 0755 scripts/analyze-migration.py %{buildroot}%_bindir/analyze-migration.py -install -D -m 0755 scripts/vmstate-static-checker.py %{buildroot}%_bindir/vmstate-static-checker.py -install -D -m 0755 scripts/kvm/vmxcap %{buildroot}%_bindir/vmxcap -install -D -m 0755 %{SOURCE9} %{buildroot}/usr/lib/supportconfig/plugins/%name -install -D -m 0644 %{SOURCE10} %{buildroot}%_docdir/qemu-arm/supported.txt -install -D -m 0644 %{SOURCE11} %{buildroot}%_docdir/qemu-ppc/supported.txt -install -D -m 0644 %{SOURCE12} %{buildroot}%_docdir/qemu-x86/supported.txt -install -D -m 0644 %{SOURCE13} %{buildroot}%_docdir/qemu-s390x/supported.txt - -%if %{legacy_qemu_kvm} -install -D -m 0644 %{SOURCE5} %{buildroot}%_mandir/man1/qemu-kvm.1.gz -install -d %{buildroot}%_docdir/qemu-kvm -# FIXME: Why do we onlly generate the HTML for the legacy package documentation? -%ifarch s390x -ln -s qemu-system-s390x %{buildroot}%_bindir/qemu-kvm -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-system-x86_64 %{buildroot}%_bindir/qemu-kvm -ln -s ../qemu-x86/supported.txt %{buildroot}%_docdir/qemu-kvm/kvm-supported.txt -rst2html --exit-status=2 %{buildroot}%_docdir/qemu-x86/supported.txt %{buildroot}%_docdir/qemu-kvm/kvm-supported.html -# End of "ifarch s390x" -%endif -# End of "if legacy_qemu_kvm" -%endif - -%if %{kvm_available} -install -D -m 0644 %{SOURCE1} %{buildroot}/usr/lib/udev/rules.d/80-kvm.rules -%endif -install -D -p -m 0644 %{SOURCE7} %{buildroot}%{_unitdir}/qemu-guest-agent.service -install -D -p -m 0644 %{SOURCE6} %{buildroot}%{_unitdir}/ksm.service -%ifarch s390x -install -D -m 0644 %{SOURCE2} %{buildroot}%{_prefix}/lib/modules-load.d/kvm.conf -# End of "if kvm_available" -%endif - -# We rely on a separate project / package to provide edk2 firmware -unlink %{buildroot}%_datadir/%name/edk2-licenses.txt -unlink %{buildroot}%_datadir/%name/firmware/50-edk2-i386-secure.json -unlink %{buildroot}%_datadir/%name/firmware/50-edk2-x86_64-secure.json -unlink %{buildroot}%_datadir/%name/firmware/60-edk2-aarch64.json -unlink %{buildroot}%_datadir/%name/firmware/60-edk2-arm.json -unlink %{buildroot}%_datadir/%name/firmware/60-edk2-i386.json -unlink %{buildroot}%_datadir/%name/firmware/60-edk2-x86_64.json -unlink %{buildroot}%_datadir/%name/edk2-aarch64-code.fd -unlink %{buildroot}%_datadir/%name/edk2-arm-code.fd -unlink %{buildroot}%_datadir/%name/edk2-arm-vars.fd -unlink %{buildroot}%_datadir/%name/edk2-i386-code.fd -unlink %{buildroot}%_datadir/%name/edk2-i386-secure-code.fd -unlink %{buildroot}%_datadir/%name/edk2-i386-vars.fd -unlink %{buildroot}%_datadir/%name/edk2-x86_64-code.fd -unlink %{buildroot}%_datadir/%name/edk2-x86_64-secure-code.fd - -# this was never meant for customer consumption - delete even though installed -unlink %{buildroot}%_bindir/elf2dmp - -# For PPC and x86 firmwares, there are a few extra install steps necessary. -# In general, if we know that we have not built a firmware, remove it from the -# install base, as the one that we have there is the upstream binary, that got -# copied there during `make install`. - -%if %{build_ppc_firmware} -# In support of update-alternatives -# -# The reason why we do this, is because we have (only for PPC) an skiboot -# package, shipping an alternative version of skiboot.lid. That is, in fact, -# what's "on the other end" of us supporting update-alternatives for this -# particular firmware. -mv %{buildroot}%_datadir/%name/skiboot.lid %{buildroot}%_datadir/%name/skiboot.lid.qemu -# create a dummy target for /etc/alternatives/skiboot.lid -mkdir -p %{buildroot}%{_sysconfdir}/alternatives -ln -s -f %{_sysconfdir}/alternatives/skiboot.lid %{buildroot}%{_datadir}/%name/skiboot.lid -%else -for f in %{ppc_extra_firmware} ; do - unlink %{buildroot}%_datadir/%name/$f -done -# End of "if build_ppc_fimrware" -%endif - -# For riscv64 firmwares (currently, only opensbi), we leave them there in -# any case, because they're part of the qemu-extra package, and riscv is -# a bit special in many ways already. - -%if %{build_x86_firmware} -install -D -m 0644 %{SOURCE14} %{buildroot}%_datadir/%name/firmware/50-seabios-256k.json -install -D -m 0644 %{SOURCE15} %{buildroot}%_datadir/%name/firmware/60-seabios-128k.json -%else -for f in %{x86_extra_firmware} ; do - unlink %{buildroot}%_datadir/%name/$f -done -# End of "if build_x86_firmware" -%endif - -%suse_update_desktop_file qemu - -# End of additional installation steps for qemu -%endif - -# Common install steps for qemu and qemu-linux-user -%fdupes -s %{buildroot} - -%check -cd %blddir - -%if "%{name}" == "qemu" -# Let's try to run 'make check' for the qemu package - -# Patch 'increase x86_64 physical bits to 42' requires that the DSDT used for -# acpi [q]tests is modified too. But it's binary, and that means we cannot -# do that in the patch itself. Instead, we keep a copy of the binary in the -# package sources, and put it in place now, before the tests themselves. -# If that patch is removed, the following line needs to go as well. -cp %{SOURCE201} %{srcdir}/tests/data/acpi/microvm/ - -%if 0%{?qemu_user_space_build} -# Seccomp is not supported by linux-user emulation -echo 'int main (void) { return 0; }' > %{srcdir}/tests/unit/test-seccomp.c -%endif - -# Compile the QOM test binary first, so that ... -%make_build tests/qtest/qom-test -# ... make comes in fresh and has lots of address space (needed for 32bit, bsc#957379) -# FIXME: is this still a problem? - -# Let's build everything first -%make_build check-build -# Let's now run the 'make check' component individually, so we have -# more control on the options (like -j, etc) -%make_build check-unit -%make_build check-qapi-schema -%make_build check-softfloat -# This would be `make_build check-block`. But iotests are not reliable -# if ran in parallel in OBS, so let's be slow for now. -make -O V=1 VERBOSE=1 -j1 check-block -%if %{with chkqtests} && !0%{?qemu_user_space_build} -# Run qtests sequentially, as it's too unreliable, when run in OBS, if parallelized -make -O V=1 VERBOSE=1 -j1 check-qtest -%endif -# Last step will be to run a full check-report, but we will -# enable this at a later point -#make -O V=1 VERBOSE=1 -j1 check-report.junit.xml - -# End of checks for qemu -%else -# Let's run the relevant check for the qemu-linux-user package - -%ifarch %ix86 -%define qemu_arch i386 -%endif -%ifarch x86_64 -%define qemu_arch x86_64 -%endif -%ifarch %arm -%define qemu_arch arm -%endif -%ifarch aarch64 -%define qemu_arch aarch64 -%endif -%ifarch ppc -%define qemu_arch ppc -%endif -%ifarch ppc64 -%define qemu_arch ppc64 -%endif -%ifarch ppc64le -%define qemu_arch ppc64le -%endif -%ifarch s390x -%define qemu_arch s390x -%endif - -%ifarch %ix86 x86_64 %arm aarch64 ppc ppc64 ppc64le s390x -%ifnarch %arm -%{qemu_arch}-linux-user/qemu-%{qemu_arch} %_bindir/ls > /dev/null -%endif -%endif - -%make_build check-softfloat -# End of the checks for qemu-linux-user -%endif - -%changelog diff --git a/roms-Makefile-add-cross-file-to-qboot-me.patch b/roms-Makefile-add-cross-file-to-qboot-me.patch deleted file mode 100644 index 0b237bb..0000000 --- a/roms-Makefile-add-cross-file-to-qboot-me.patch +++ /dev/null @@ -1,26 +0,0 @@ -From: Bruce Rogers -Date: Mon, 23 Nov 2020 07:13:23 -0700 -Subject: roms/Makefile: add --cross-file to qboot meson setup for aarch64 - -We add a --cross-file reference so that we can do cross compilation -of qboot from an aarch64 build. - -Signed-off-by: Bruce Rogers -Signed-off-by: Dario Faggioli ---- - roms/Makefile | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/roms/Makefile b/roms/Makefile -index 3d53bd528666b594ab3d6b631450..0e652aff895fe0680cf35e43b299 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 $(if $(x86_64_cross_prefix),--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-pass-a-packaging-timestamp.patch b/roms-Makefile-pass-a-packaging-timestamp.patch deleted file mode 100644 index 49be9f7..0000000 --- a/roms-Makefile-pass-a-packaging-timestamp.patch +++ /dev/null @@ -1,72 +0,0 @@ -From: Bruce Rogers -Date: Sat, 19 Nov 2016 08:06:30 -0700 -Subject: roms/Makefile: pass a packaging timestamp to subpackages with date - info - -References: bsc#1011213 - -Certain rom subpackages build from qemu git-submodules call the date -program to include date information in the packaged binaries. This -causes repeated builds of the package to be different, wkere the only -real difference is due to the fact that time build timestamp has -changed. To promote reproducible builds and avoid customers being -prompted to update packages needlessly, we'll use the timestamp of the -VERSION file as the packaging timestamp for all packages that build in a -timestamp for whatever reason. - -Signed-off-by: Bruce Rogers ---- - roms/Makefile | 14 ++++++++++++-- - 1 file changed, 12 insertions(+), 2 deletions(-) - -diff --git a/roms/Makefile b/roms/Makefile -index 5e44d9789001979a0e9ef3183f90..3d53bd528666b594ab3d6b631450 100644 ---- a/roms/Makefile -+++ b/roms/Makefile -@@ -52,6 +52,12 @@ SEABIOS_EXTRAVERSION="-prebuilt.qemu.org" - # - EDK2_EFIROM = edk2/BaseTools/Source/C/bin/EfiRom - -+# NB: Certain SUSE qemu subpackages use date information, but we want -+# reproducible builds, so we use a pre-determined timestamp, rather -+# than the current timestamp to acheive consistent results build to -+# build. -+PACKAGING_TIMESTAMP = $(shell date -r ../VERSION +%s) -+ - default help: - @echo "nothing is build by default" - @echo "available build targets:" -@@ -104,7 +110,7 @@ build-seabios-config-%: config.% - - .PHONY: sgabios skiboot qboot - sgabios: -- $(MAKE) -C sgabios -+ $(MAKE) -C sgabios PACKAGING_TIMESTAMP=$(PACKAGING_TIMESTAMP) - cp sgabios/sgabios.bin ../pc-bios - - -@@ -123,11 +129,13 @@ efi-rom-%: build-pxe-roms build-efi-roms edk2-basetools - - build-pxe-roms: - $(MAKE) -C ipxe/src CONFIG=qemu \ -+ PACKAGING_TIMESTAMP=$(PACKAGING_TIMESTAMP) \ - CROSS_COMPILE=$(x86_64_cross_prefix) \ - $(patsubst %,bin/%.rom,$(pxerom_targets)) - - build-efi-roms: build-pxe-roms - $(MAKE) -C ipxe/src CONFIG=qemu \ -+ PACKAGING_TIMESTAMP=$(PACKAGING_TIMESTAMP) \ - CROSS_COMPILE=$(x86_64_cross_prefix) \ - $(patsubst %,bin-x86_64-efi/%.efidrv,$(pxerom_targets)) - -@@ -151,7 +159,9 @@ edk2-basetools: - EXTRA_LDFLAGS='$(EDK2_BASETOOLS_LDFLAGS)' - - slof: -- $(MAKE) -C SLOF CROSS=$(powerpc64_cross_prefix) qemu -+ $(MAKE) -C SLOF CROSS=$(powerpc64_cross_prefix) \ -+ PACKAGING_TIMESTAMP=$(PACKAGING_TIMESTAMP) \ -+ qemu - cp SLOF/boot_rom.bin ../pc-bios/slof.bin - - u-boot.e500: diff --git a/roms-change-cross-compiler-naming-to-be-.patch b/roms-change-cross-compiler-naming-to-be-.patch deleted file mode 100644 index f402fff..0000000 --- a/roms-change-cross-compiler-naming-to-be-.patch +++ /dev/null @@ -1,30 +0,0 @@ -From: Bruce Rogers -Date: Thu, 20 Jun 2019 17:58:37 -0600 -Subject: roms: change cross compiler naming to be suse specific - -Signed-off-by: Bruce Rogers ---- - roms/edk2-funcs.sh | 10 +++++++++- - 1 file changed, 9 insertions(+), 1 deletion(-) - -diff --git a/roms/edk2-funcs.sh b/roms/edk2-funcs.sh -index cd6e4f2c82d2b346cdb7b3199bca..529e335121fcb60e419bfc656b6d 100644 ---- a/roms/edk2-funcs.sh -+++ b/roms/edk2-funcs.sh -@@ -116,7 +116,15 @@ qemu_edk2_get_cross_prefix() - # force soft-float cross-compiler on Debian - printf 'arm-linux-gnueabi-' - else -- printf '%s-linux-gnu-\n' "$gcc_arch" -+ if [ "$emulation_target" == arm ]; then -+ printf '%s-suse-linux-gnueabi-\n' "$gcc_arch" -+ else -+ if [ "$gcc_arch" == i686 ]; then -+ printf '%s-suse-linux-\n' "i586" -+ else -+ printf '%s-suse-linux-\n' "$gcc_arch" -+ fi -+ fi - fi - } - diff --git a/roms-sgabios-Fix-csum8-to-be-built-by-ho.patch b/roms-sgabios-Fix-csum8-to-be-built-by-ho.patch deleted file mode 100644 index 4a22897..0000000 --- a/roms-sgabios-Fix-csum8-to-be-built-by-ho.patch +++ /dev/null @@ -1,22 +0,0 @@ -From: Bruce Rogers -Date: Thu, 27 Jun 2019 09:38:43 -0600 -Subject: roms/sgabios: Fix csum8 to be built by host compiler - -Signed-off-by: Bruce Rogers -Date: Fri, 25 Mar 2022 18:41:52 +0100 -Subject: scsi-generic: check for additional SG_IO status on completion - -Git-commit: 0000000000000000000000000000000000000000 -References: bsc#1178049 - -SG_IO may return additional status in the 'status', 'driver_status', -and 'host_status' fields. When either of these fields are set the -command has not been executed normally, so we should not continue -processing this command but rather return an error. -scsi_read_complete() already checks for these errors, -scsi_write_complete() does not. - -Signed-off-by: Hannes Reinecke -Signed-off-by: Lin Ma -Signed-off-by: Dario Faggioli ---- - hw/scsi/scsi-generic.c | 5 ++++- - 1 file changed, 4 insertions(+), 1 deletion(-) - -diff --git a/hw/scsi/scsi-generic.c b/hw/scsi/scsi-generic.c -index aa3ae417ac726e9decf7e678e25f..8eb65f5f81bd4e998966571a3741 100644 ---- a/hw/scsi/scsi-generic.c -+++ b/hw/scsi/scsi-generic.c -@@ -397,7 +397,10 @@ static void scsi_write_complete(void * opaque, int ret) - - aio_context_acquire(blk_get_aio_context(s->conf.blk)); - -- if (ret || r->req.io_canceled) { -+ if (ret || r->req.io_canceled || -+ r->io_header.status != SCSI_HOST_OK || -+ (r->io_header.driver_status & SG_ERR_DRIVER_TIMEOUT) || -+ r->io_header.status != GOOD) { - scsi_command_complete_noio(r, ret); - goto done; - } diff --git a/scsi-generic-replace-logical-block-count.patch b/scsi-generic-replace-logical-block-count.patch deleted file mode 100644 index 59a1fbc..0000000 --- a/scsi-generic-replace-logical-block-count.patch +++ /dev/null @@ -1,103 +0,0 @@ -From: Lin Ma -Date: Sat, 20 Nov 2021 18:05:57 +0800 -Subject: scsi-generic: replace logical block count of response of READ - CAPACITY -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Git-commit: 0000000000000000000000000000000000000000 -References: [SUSE-JIRA] (SLE-20965) - -While using SCSI passthrough, Following scenario makes qemu doesn't -realized the capacity change of remote scsi target: -1. online resize the scsi target. -2. issue 'rescan-scsi-bus.sh -s ...' in host. -3. issue 'rescan-scsi-bus.sh -s ...' in vm. - -In above scenario I used to experienced errors while accessing the -additional disk space in vm. I think the reasonable operations should -be: -1. online resize the scsi target. -2. issue 'rescan-scsi-bus.sh -s ...' in host. -3. issue 'block_resize' via qmp to notify qemu. -4. issue 'rescan-scsi-bus.sh -s ...' in vm. - -The errors disappear once I notify qemu by block_resize via qmp. - -So this patch replaces the number of logical blocks of READ CAPACITY -response from scsi target by qemu's bs->total_sectors. If the user in -vm wants to access the additional disk space, The administrator of -host must notify qemu once resizeing the scsi target. - -Bonus is that domblkinfo of libvirt can reflect the consistent capacity -information between host and vm in case of missing block_resize in qemu. -E.g: -... - - - - - - -
- -... - -Before: -1. online resize the scsi target. -2. host:~ # rescan-scsi-bus.sh -s /dev/sdc -3. guest:~ # rescan-scsi-bus.sh -s /dev/sda -4 host:~ # virsh domblkinfo --domain $DOMAIN --human --device sda -Capacity: 4.000 GiB -Allocation: 0.000 B -Physical: 8.000 GiB - -5. guest:~ # lsblk /dev/sda -NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT -sda 8:0 0 8G 0 disk -└─sda1 8:1 0 2G 0 part - -After: -1. online resize the scsi target. -2. host:~ # rescan-scsi-bus.sh -s /dev/sdc -3. guest:~ # rescan-scsi-bus.sh -s /dev/sda -4 host:~ # virsh domblkinfo --domain $DOMAIN --human --device sda -Capacity: 4.000 GiB -Allocation: 0.000 B -Physical: 8.000 GiB - -5. guest:~ # lsblk /dev/sda -NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT -sda 8:0 0 4G 0 disk -└─sda1 8:1 0 2G 0 part - -Signed-off-by: Lin Ma ---- - hw/scsi/scsi-generic.c | 10 ++++++++-- - 1 file changed, 8 insertions(+), 2 deletions(-) - -diff --git a/hw/scsi/scsi-generic.c b/hw/scsi/scsi-generic.c -index 3d35d307e1a2dcb1390b7c319b85..aa3ae417ac726e9decf7e678e25f 100644 ---- a/hw/scsi/scsi-generic.c -+++ b/hw/scsi/scsi-generic.c -@@ -322,11 +322,17 @@ static void scsi_read_complete(void * opaque, int ret) - if (r->req.cmd.buf[0] == READ_CAPACITY_10 && - (ldl_be_p(&r->buf[0]) != 0xffffffffU || s->max_lba == 0)) { - s->blocksize = ldl_be_p(&r->buf[4]); -- s->max_lba = ldl_be_p(&r->buf[0]) & 0xffffffffULL; -+ BlockBackend *blk = s->conf.blk; -+ BlockDriverState *bs = blk_bs(blk); -+ s->max_lba = bs->total_sectors - 1; -+ stl_be_p(&r->buf[0], s->max_lba); - } else if (r->req.cmd.buf[0] == SERVICE_ACTION_IN_16 && - (r->req.cmd.buf[1] & 31) == SAI_READ_CAPACITY_16) { - s->blocksize = ldl_be_p(&r->buf[8]); -- s->max_lba = ldq_be_p(&r->buf[0]); -+ BlockBackend *blk = s->conf.blk; -+ BlockDriverState *bs = blk_bs(blk); -+ s->max_lba = bs->total_sectors - 1; -+ stq_be_p(&r->buf[0], s->max_lba); - } - - /* diff --git a/seabios-switch-to-python3-as-needed.patch b/seabios-switch-to-python3-as-needed.patch deleted file mode 100644 index 43046b6..0000000 --- a/seabios-switch-to-python3-as-needed.patch +++ /dev/null @@ -1,149 +0,0 @@ -From: Bruce Rogers -Date: Thu, 27 Jun 2019 10:15:24 -0600 -Subject: seabios: switch to python3 as needed - -Switch to python3 the places where "python2" is explicitly referenced. -(Ignore the uses of #!/usr/bin/env python, since that usage does the -right thing in our build environment). -Include changes proposed by the python3 2to3 tool. - -Signed-off-by: Bruce Rogers ---- - Makefile | 2 +- - scripts/acpi_extract.py | 4 ++-- - scripts/acpi_extract_preprocess.py | 2 +- - scripts/layoutrom.py | 28 ++++++++++++++-------------- - scripts/vgafixup.py | 2 +- - 5 files changed, 19 insertions(+), 19 deletions(-) - -diff --git a/roms/seabios/Makefile b/roms/seabios/Makefile -index c108f87de7683667d1a0cad6b9e5..408983026669e531dcb84230dd23 100644 ---- a/roms/seabios/Makefile -+++ b/roms/seabios/Makefile -@@ -22,7 +22,7 @@ LD=$(CROSS_PREFIX)ld - OBJCOPY=$(CROSS_PREFIX)objcopy - OBJDUMP=$(CROSS_PREFIX)objdump - STRIP=$(CROSS_PREFIX)strip --PYTHON=python -+PYTHON=python3 - CPP=cpp - IASL:=iasl - LD32BIT_FLAG:=-melf_i386 -diff --git a/roms/seabios/scripts/acpi_extract.py b/roms/seabios/scripts/acpi_extract.py -index 3ed863b6a79412a1276bb905d08f..7ac054e626780253fcec78414b17 100755 ---- a/roms/seabios/scripts/acpi_extract.py -+++ b/roms/seabios/scripts/acpi_extract.py -@@ -1,4 +1,4 @@ --#!/usr/bin/python -+#!/usr/bin/python3 - # Copyright (C) 2011 Red Hat, Inc., Michael S. Tsirkin - # - # This file may be distributed under the terms of the GNU GPLv3 license. -@@ -348,7 +348,7 @@ def main(): - # Pretty print output - outstrs = ["/* DO NOT EDIT! This is an autogenerated file." - " See scripts/acpi_extract.py. */"] -- for array in output.keys(): -+ for array in list(output.keys()): - otype = get_value_type(max(output[array])) - outstrs.append("static unsigned %s %s[] = {" % (otype, array)) - odata = [] -diff --git a/roms/seabios/scripts/acpi_extract_preprocess.py b/roms/seabios/scripts/acpi_extract_preprocess.py -index 2698118406d97c164783335c7fb6..6963847a8b5d3e4bf9340a67afe2 100755 ---- a/roms/seabios/scripts/acpi_extract_preprocess.py -+++ b/roms/seabios/scripts/acpi_extract_preprocess.py -@@ -1,4 +1,4 @@ --#!/usr/bin/python -+#!/usr/bin/python3 - # Copyright (C) 2011 Red Hat, Inc., Michael S. Tsirkin - # - # This file may be distributed under the terms of the GNU GPLv3 license. -diff --git a/roms/seabios/scripts/layoutrom.py b/roms/seabios/scripts/layoutrom.py -index abebf0211fa9627cec31cce76b8d..34b3e68f556af124346755e87c58 100755 ---- a/roms/seabios/scripts/layoutrom.py -+++ b/roms/seabios/scripts/layoutrom.py -@@ -81,8 +81,8 @@ def fitSections(sections, fillsections): - section.finalsegloc = addr - fixedsections.append((addr, section)) - if section.align != 1: -- print("Error: Fixed section %s has non-zero alignment (%d)" % ( -- section.name, section.align)) -+ print(("Error: Fixed section %s has non-zero alignment (%d)" % ( -+ section.name, section.align))) - sys.exit(1) - fixedsections.sort(key=operator.itemgetter(0)) - firstfixed = fixedsections[0][0] -@@ -142,10 +142,10 @@ def fitSections(sections, fillsections): - # Report stats - total = BUILD_BIOS_SIZE-firstfixed - slack = total - totalused -- print ("Fixed space: 0x%x-0x%x total: %d slack: %d" -+ print(("Fixed space: 0x%x-0x%x total: %d slack: %d" - " Percent slack: %.1f%%" % ( - firstfixed, BUILD_BIOS_SIZE, total, slack, -- (float(slack) / total) * 100.0)) -+ (float(slack) / total) * 100.0))) - - return firstfixed + BUILD_BIOS_ADDR - -@@ -288,12 +288,12 @@ def doLayout(sections, config, genreloc): - size32flat = sec32fseg_start - sec32flat_start - size32init = sec32flat_start - sec32init_start - sizelow = li.sec32low_end - li.sec32low_start -- print("16bit size: %d" % size16) -- print("32bit segmented size: %d" % size32seg) -- print("32bit flat size: %d" % (size32flat + size32textfseg)) -- print("32bit flat init size: %d" % size32init) -- print("Lowmem size: %d" % sizelow) -- print("f-segment var size: %d" % size32fseg) -+ print(("16bit size: %d" % size16)) -+ print(("32bit segmented size: %d" % size32seg)) -+ print(("32bit flat size: %d" % (size32flat + size32textfseg))) -+ print(("32bit flat init size: %d" % size32init)) -+ print(("Lowmem size: %d" % sizelow)) -+ print(("f-segment var size: %d" % size32fseg)) - return li - - -@@ -312,7 +312,7 @@ def outXRefs(sections, useseg=0, exportsyms=[], forcedelta=0): - and (symbol.section.fileid != section.fileid - or symbol.name != reloc.symbolname)): - xrefs[reloc.symbolname] = symbol -- for symbolname, symbol in xrefs.items(): -+ for symbolname, symbol in list(xrefs.items()): - loc = symbol.section.finalloc - if useseg: - loc = symbol.section.finalsegloc -@@ -482,8 +482,8 @@ def checkRuntime(reloc, rsection, data, chain): - if section is None or '.init.' in section.name: - return 0 - if '.data.varinit.' in section.name: -- print("ERROR: %s is VARVERIFY32INIT but used from %s" % ( -- section.name, chain)) -+ print(("ERROR: %s is VARVERIFY32INIT but used from %s" % ( -+ section.name, chain))) - sys.exit(1) - return 1 - -@@ -695,7 +695,7 @@ def main(): - li = doLayout(sections, config, genreloc) - - # Exported symbols -- li.varlowsyms = [symbol for symbol in symbols['32flat'].values() -+ li.varlowsyms = [symbol for symbol in list(symbols['32flat'].values()) - if (symbol.section is not None - and symbol.section.finalloc is not None - and '.data.varlow.' in symbol.section.name -diff --git a/roms/seabios/scripts/vgafixup.py b/roms/seabios/scripts/vgafixup.py -index 2053cd5d78e5935658e1fecec074..dc662480f909e27958fa906d73b1 100644 ---- a/roms/seabios/scripts/vgafixup.py -+++ b/roms/seabios/scripts/vgafixup.py -@@ -29,7 +29,7 @@ re_leal = re.compile( - def handle_leal(sline): - m = re_leal.match(sline[5:]) - if m is None or m.group('index') == '%esp': -- print("Unable to fixup leal instruction: %s" % (sline,)) -+ print(("Unable to fixup leal instruction: %s" % (sline,))) - sys.exit(-1) - offset, base, index, scale, dest = m.group( - 'offset', 'base', 'index', 'scale', 'dest') diff --git a/sgabios-Makefile-fix-issues-of-build-rep.patch b/sgabios-Makefile-fix-issues-of-build-rep.patch deleted file mode 100644 index e9168fe..0000000 --- a/sgabios-Makefile-fix-issues-of-build-rep.patch +++ /dev/null @@ -1,36 +0,0 @@ -From: Bruce Rogers -Date: Thu, 27 Jun 2019 10:15:24 -0600 -Subject: sgabios:Makefile: fix issues of build reproducibility -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -It is desirable to produce the same bits on subsequent -builds when the actual code of the package doesn't -change. (bsc#1011213) - -Signed-off-by: Bruce Rogers -Signed-off-by: Andreas Färber ---- - Makefile | 8 ++++---- - 1 file changed, 4 insertions(+), 4 deletions(-) - -diff --git a/roms/sgabios/Makefile b/roms/sgabios/Makefile -index 970b0ff37a1ae58e98d0527da215..d2934c9f678dadfae5201b8507e9 100644 ---- a/roms/sgabios/Makefile -+++ b/roms/sgabios/Makefile -@@ -14,10 +14,10 @@ - # - # $Id$ - --BUILD_DATE = \"$(shell date -u)\" --BUILD_SHORT_DATE = \"$(shell date -u +%D)\" --BUILD_HOST = \"$(shell hostname)\" --BUILD_USER = \"$(shell whoami)\" -+BUILD_DATE = \"$(shell date --date='@$(PACKAGING_TIMESTAMP)' -u)\" -+BUILD_SHORT_DATE = \"$(shell date --date='@$(PACKAGING_TIMESTAMP)' -u +%D)\" -+BUILD_HOST = \"buildhost\" -+BUILD_USER = \"geeko\" - - CFLAGS := -Wall -Os -m32 -nostdlib - diff --git a/stub-out-the-SAN-req-s-in-int13.patch b/stub-out-the-SAN-req-s-in-int13.patch deleted file mode 100644 index a1dd6d4..0000000 --- a/stub-out-the-SAN-req-s-in-int13.patch +++ /dev/null @@ -1,106 +0,0 @@ -From: Bruce Rogers -Date: Mon, 24 Jul 2017 10:44:24 -0600 -Subject: stub out the SAN req's in int13 - -Include-If: %if 0%{?patch-possibly-applied-elsewhere} - -We need to find some code or data to change so we can make the rom fit -into the legacy size requirements. Comment out SAN support, and -hopefully nobody will be impacted. - -Signed-off-by: Bruce Rogers ---- - src/arch/x86/interface/pcbios/int13.c | 21 +++++++++++++++++++++ - 1 file changed, 21 insertions(+) - -diff --git a/roms/ipxe/src/arch/x86/interface/pcbios/int13.c b/roms/ipxe/src/arch/x86/interface/pcbios/int13.c -index ca789a0d154e1fe3c2508a3aefea..40c61419c0c134120d1ce7c81a1e 100644 ---- a/roms/ipxe/src/arch/x86/interface/pcbios/int13.c -+++ b/roms/ipxe/src/arch/x86/interface/pcbios/int13.c -@@ -23,6 +23,12 @@ - - FILE_LICENCE ( GPL2_OR_LATER_OR_UBDL ); - -+#define INCLUDE_SAN_HOOKS 0 -+#pragma GCC diagnostic push -+#pragma GCC diagnostic ignored "-Wunused-parameter" -+#pragma GCC diagnostic ignored "-Wunused-function" -+#pragma GCC diagnostic ignored "-Wunused-variable" -+ - #include - #include - #include -@@ -1243,6 +1249,7 @@ static void int13_unhook_vector ( void ) { - */ - static int int13_hook ( unsigned int drive, struct uri **uris, - unsigned int count, unsigned int flags ) { -+#if INCLUDE_SAN_HOOKS - struct san_device *sandev; - struct int13_data *int13; - unsigned int natural_drive; -@@ -1315,6 +1322,9 @@ static int int13_hook ( unsigned int drive, struct uri **uris, - sandev_put ( sandev ); - err_alloc: - return rc; -+#else -+ return -1; -+#endif - } - - /** -@@ -1328,6 +1338,7 @@ static int int13_hook ( unsigned int drive, struct uri **uris, - */ - static void int13_unhook ( unsigned int drive ) { - struct san_device *sandev; -+#if INCLUDE_SAN_HOOKS - - /* Find drive */ - sandev = sandev_find ( drive ); -@@ -1353,6 +1364,7 @@ static void int13_unhook ( unsigned int drive ) { - - /* Drop reference to drive */ - sandev_put ( sandev ); -+#endif - } - - /** -@@ -1514,6 +1526,7 @@ static int int13_load_eltorito ( unsigned int drive, struct segoff *address ) { - * Note that this function can never return success, by definition. - */ - static int int13_boot ( unsigned int drive, const char *filename __unused ) { -+#if INCLUDE_SAN_HOOKS - struct memory_map memmap; - struct segoff address; - int rc; -@@ -1539,6 +1552,9 @@ static int int13_boot ( unsigned int drive, const char *filename __unused ) { - } - - return -ECANCELED; /* -EIMPOSSIBLE */ -+#else -+ return -1; -+#endif - } - - /** Maximum size of boot firmware table(s) */ -@@ -1605,6 +1621,7 @@ static int int13_install ( struct acpi_header *acpi ) { - * @ret rc Return status code - */ - static int int13_describe ( void ) { -+#if INCLUDE_SAN_HOOKS - int rc; - - /* Clear tables */ -@@ -1619,9 +1636,13 @@ static int int13_describe ( void ) { - } - - return 0; -+#else -+ return -1; -+#endif - } - - PROVIDE_SANBOOT ( pcbios, san_hook, int13_hook ); - PROVIDE_SANBOOT ( pcbios, san_unhook, int13_unhook ); - PROVIDE_SANBOOT ( pcbios, san_boot, int13_boot ); - PROVIDE_SANBOOT ( pcbios, san_describe, int13_describe ); -+#pragma GCC diagnostic pop diff --git a/supported.arm.txt b/supported.arm.txt deleted file mode 100644 index 4d6781e..0000000 --- a/supported.arm.txt +++ /dev/null @@ -1,926 +0,0 @@ -[qemu-arm package document] - -SLES 15 SP4 QEMU/KVM RELATED SUPPORT STATEMENTS -=============================================== - -Overview --------- - - The QEMU based packages included with SLES 15 SP4 provide a large variety of - features, from the very latest customer requests to features of questionable - quality or value. The linux kernel includes components which contribute KVM - virtualization features as well. This document was created to assist the user - in deciding which features can be relied upon to build enterprise class - virtualization solutions. KVM based virtualization for x86 (Intel 64/AMD64), - for IBM System z (s390x), and for the ARM64 architecture (AArch64) are offered - at the L3 (full support) level. The bulk of this document deals with L3 - supported features and is primarily ARM64 centric. This document should be - considered a companion to the standard virtualization documentation delivered - with the product. - - KVM is implemented in linux kernel modules which enable the linux kernel to - function as an integral part of the KVM hypervisor. The hypervisor-guest - interaction is managed by QEMU through the /dev/kvm ioctl interface. The linux - host assists in the virtualization of storage, networking and display - resources as well as allowing direct hardware passthrough of PCI and USB - devices. Linux memory and cpu management features are used by QEMU/KVM to - enable guests to share those host resources as efficiently as possible. - - QEMU is a primary component of KVM based virtualization. The QEMU emulator - binary qemu-system-aarch64 is the program to use to access KVM virtualization. - When using this program, the -machine option accel=kvm (or its alias - -enable-kvm) or --accel kvm option must be specified for KVM acceleration to - be used by the guest. - - Libvirt is the preferred means of accessing QEMU/KVM functionality and is - documented elsewhere. This document focuses on the features and direct usage - of QEMU/KVM as provided by the QEMU based packages. - -Major QEMU/KVM Supported Features ---------------------------------- - -- KVM virtualization is accomplished by using the QEMU program in KVM - acceleration mode. KVM acceleration requires that both guest and host have - the same fundamental architecture. - -- Guest images created under previous QEMU versions are supported by machine - version compatibilities built into more recent QEMU versions. - -- For ease of use, the QEMU program has defaults which represent traditional - usage patterns. - -- Guest virtual machine characteristics are specified by a combination of - internal defaults, options provided on the QEMU program command-line, runtime - configurations set via the monitor interfaces and optional config files. The - runtime control of a VM is effected either through the Human Monitor - "Protocol" (HMP), or the JSON based programmatical QEMU Monitor Protocol (QMP) - interface. For QMP details, see qemu-qmp-ref man page. - Since a KVM guest runs in the context of a normal linux process, some types - of execution controls are managed with linux tools. - -- QEMU is compatible with EDK II based UEFI firmware available with SLES 15 SP4, - which allow boot options common to physical systems, along with other features - tailored to virtualization. Various VGABIOS ROMs, from the SEABIOS project, - are also available. - -- Some QEMU messages have been localized to various languages. This is provided - by the optional qemu-lang package. Keyboard mappings for various nationalities - is also provided. - -- Virtual machine lifecycle controls include startup through the UEFI BIOS or - kernel boot, ACPI based shutdown, execution pausing, the saving and restoring - of machine state or disk state, VM migration to another host, and - miscellaneous controls available through the "monitors" mentioned above. - -- Guest execution state may be "moved" in both time (save/restore) and space - (static and live migration). These migrations or save/restore operations can - take place either from certain prior SLES versioned hosts to a SLES 15 SP4 - host or between hosts of the same version. Certain other restrictions also - apply. - -- Security considerations include privileged helpers and a security model which - allows running guests as a non-root user. - -- QEMU provides best effort reuse of existing disk images, including those with - systems installed, through geometry probing. Also disk images produced by - other popular virtualization technologies may be imported into QEMU supported - storage formats. These QEMU formats include features which exploit the - benefits of virtualization. - -- Memory, cpu and disk space overcommit are possible and can be beneficial when - done responsibly. Additional management of these resources comes in the form - of memory ballooning or hotplug, host KSM, vcpu hot-add, online disk resizing, - trim, discard and hole punching. - -- Guest performance is enhanced through the use of virtio devices, various disk - caching modes, network acceleration via the vhost-net kernel module, multi- - queue network transmit capabilities, host transparent huge pages (THP) and - direct hugetlb usage. Physical PCI and USB devices may also be passed through - to the guest, including SR-IOV VF's. - -- The guest UI is accessable via GTK, VNC, Spice, and serial (including curses - TUI) interfaces. - -- Guest timekeeping is supported in a variety of ways, including a paravirtual - clocksource, and options for the various guest clocks for how to handle the - timeslicing of the guest's execution on the host. - -- In addition to the para-virtualized devices already mentioned, other devices - and infrastructure designed to avoid virtualization "problem areas" are - available such as SPICE graphics, vmmouse emulation, tablet style pointer - interfaces and virtio based UI interfaces. - -- A built-in user-mode network (SLIRP) stack is available. - -- Portions of the host file system may be shared with a guest by using virtFS. - -- A guest "agent" is available for SLES 15 SP4 KVM guests via the - qemu-guest-agent package. This allows some introspection and control of the - guest OS environment from the host. - -QEMU/KVM Technology Previews ----------------------------- - -- All features indicated as not being supported in this document fall under the - Technology Preview definition contained in the main product's release notes. - -Noteworthy QEMU/KVM Unsupported Features ----------------------------------------- - -- Note that some features are unsupported simply due to lack of validation. If - an existing feature is desired, but not marked supported, let SUSE know about - your requirements. - -- The TCG "acceleration" mode may be helpful for problem isolation, but - otherwise presents insufficient benefit and stability. - -- GlusterFS integration is not enabled. - -- 32 bit ARM KVM has never been supported by SUSE, but it's worth noting that - this capability will cease to even be possible in a near-future QEMU/KVM - (kernel) combination. - -Deprecated, Superseded, Modified and Dropped Features ------------------------------------------------------ - -- https://qemu-project.gitlab.io/qemu/about/deprecated.html and - https://qemu-project.gitlab.io/qemu/about/removed-features.html - These websites track features deprecation and removal at the upstream - development level. Our qemu package inherits this community direction, but be - aware that we can and will deviate as needed. Those deviations and additional - information can be found in this section. Feature deprecation as well as - removed features are also tracked in the "System Emulation" section of the - documentation installed with the qemu package. - -- qemu-img: Deprecate use of -b without -F. Creating an image that requires - format probing of the backing image is potentially unsafe and is now - deprecated. - -- Aspeed swift-bmc machine is deprecated. It can be easily replaced by the - witherspoon-bmc or the romulus-bmc machines. - -- The previously non-persistent backing file with pmem=on is deprecated. Modify - VM configuration to set pmem=off to continue using fake NVDIMM with backing - file or move backing file to NVDIMM storage and keep pmem=on. - -- The use of "?" as a parameter to "-cpu", "-soundhw", "-device", "-M", - "-machine" and "-d" is now considered deprecated. Use "help" - instead. - -- The use of "if=scsi" as a parameter to "-drive" does not work anymore with PC - machine types, as it created an obsolete SCSI controller model. - -- Use of aio=native without direct cache mode also being specified (cache=none, - cache=directsync, or cache.direct=on) is no longer allowed. - -- The use of image encryption in qcow and qcow2 formats is now considered - deprecated. - Analysis has shown it to be weak encryption, in addition to suffering from - poor design. Images can easily be converted to a non-encrypted format. - -- Use of acpi, boot-opts, and smp-opts in a -readconfig config file are now - considered deprecated. In the future those names will be standardized to - acpitable, boot, and smp respectively. - -- These previously supported command line options are now considered deprecated: - -display sdl,window_close= (use -display sdl,window-close) - -no-quit (use -display ...,window-close=off) - -chardev tty (use serial name instead) - -chardev paraport (use parallel name instead) - -device virtio-blk,scsi= (use virtio-scsi instead) - -device virtio-blk-pci,scsi= (use virtio-scsi instead) - -enable-fips (not really helpful - see https://git.qemu.org/?p=qemu.git;a=commit;h=166310299a1e7824bbff17e1f016659d18b4a559 for details) - -realtime mlock= (use -overcommit mem-lock= instead) - -spice password=string (use password-string option instead) - -writeconfig (no replacement - never really worked right) - -share and noshare must be replaced by share=on/share=off - -nodelay must be replaced by nodelay=on rather than delay=off - -object-add options opened=on and loaded=on (both had no effect) - -- These previously supported command line options are no longer supported: - -device ide-drive (use ide-hd or ide-cd instead) - -device scsi-disk (use scsi-hd or scsi-cd instead) - -- These previously supported command line options are no longer recognized: - -balloon (use -device virtio-balloon instead) - -clock - -device ivshmem (use ivshmem-doorbell or ivshmem-plain instead) - -device pc-sysfw (no longer needed) - -device pci-assign, -device kvm-pci-assign (use -device vfio-pci instead) - -display sdl - -no-frame - -nodefconfig (use -no-user-config instead) - -realtime ... - -sdl - -show-cursor - -virtioconsole (use -device virtconsole instead) - -- The previously unsupported machine type xlnx-ep108 is no longer recognized - (used xlnx-zcu102 unstead) - -- Specifying a cpu feature with both "+feature/-feature" and "feature=on/off" - will now cause a warning. The current behavior for this combination where - "+feature/-feature" wins over "feature=on/off", will be changed going forward - so that "+feature" and "-feature" will be synonyms for "feature=on" and - "feature=off" respectively. - -- The previously supported blkdev-add QMP command has been flagged as lacking - and could possibly change syntax in the future. - -- This previously unsupported command line option is now deprecated: - -soundhw (use -device ... instead) - -- These previously unsupported command line options are no longer recognized: - -bt - -device at24c-eeprom - -device mmio_interface - -device ssi-sd - -device tpm-tis-device - -device u2f-passthru - -device vhost-user-vsock-pci-transitional - -device vhost-vsock-pci-transitional - -device virtio-iommu-pci-transitional - -enable-hax - -tb-size - -tdf - -xen-create - -- These previously supported QMP commands are now deprecated: - - -- These previously supported QMP commands are no longer recognized: - info cpustats - block_passwd - change (use blockdev-change-medium or change-vnc-password instead) - cpu-add (use device_add instead) - migrate-set-cache-size (use migrate-set-parameters instead) - migrate_set_downtime (use migrate-set-parameters instead) - migrate_set_speed (use migrate-set-parameters instead) - query-cpus (use query-cpus-fast instead) - query-events - query-migrate-cache-size (use query-migrate-parameters instead) - -- These previously supported monitor commands are now deprecated: - change - -- These previously supported monitor commands are no longer recognized: - info cpustats - block_passwd ... - cpu-add (use device_add instead) - migrate_set_cache_size - migrate_set_downtime - migrate_set_speed - pci_add (use device_add instead) - pci_del (use device_del instead) - usb_add (use device_add instead) - usb_del (use device_del instead) - -- These previously unsupported monitor command are now deprecated: - - -- These previously unsupported monitor commands are no longer recognized: - acl_add ... - acl_policy ... - acl_remove ... - acl_reset ... - acl_show ... - host_net_add - host_net_remove - -- These previously unsupported QMP commands are now supported under a new name: - x-block-dirty-bitmap-disable (use block-dirty-bitmap-disable instead) - x-block-dirty-bitmap-enable (use block-dirty-bitmap-enable instead) - x-block-dirty-bitmap-merge (use block-dirty-bitmap-merge instead) - x-block-latency-histogram-set (use block-latency-histogram-set instead) - x-blockdev-create (use blockdev-create instead) - -- This previously unsupported QMP commands is no longer recognized: - x-nbd-server-add-bitmap - -- Due to upstream's decision to no longer fully support the qed storage format - going forward (since it really provides no benefit over qcow2 and is now no - longer actively maintained upstream), creating qed storage images is no longer - supported and it is highly discouraged to continue using existing qed images. - They should instead be converted to another supported format. - -QEMU Command-Line and Monitor Syntax and Support ------------------------------------------------- - -- The QEMU program command-line syntax is as follows: - qemu-system-aarch64 [options] - - Where 'options' are taken from the options listed below. - The images used with -drive or -cdrom, may be in the raw (no format) or qcow2 - storage formats, and may be located in files within the host filesystem, - logical volumes, host physical disks, or network based storage. Read only - media may also be accessed via URL style protocol specifiers. - - Note that as a general rule, as new command line options are added which serve - to replace an older option or interface, you are strongly encouraged to adapt - your usage to the new option. The new option is being introduced to provide - better functionality and usability going forward. In some cases existing - problems or even bugs in older interfaces cannot be fixed due to functional - expectations, but are resolved in the newer interface or option. - This advice includes moving to the most recent machine type (eg virt-6.1 - instead of virt-6.0) if possible. - -- The following command line options are supported: - -accel ... - -action ... - -add-fd ... - -alt-grab - -append ... - -audio-help - -audiodev - -bios ... - -blockdev ... - -boot ... - -cdrom ... - -chardev ... - -compat ... - -cpu host - -ctrl-grab - -d ... - -daemonize - -debugcon ... - -device - - [VGA|rtl8139|virtio-net-pci|virtio-blk-pci|virtio-balloon-pci| - virtio-9p-pci|usb-hub|usb-ehci|usb-tablet|usb-storage|usb-mouse| - usb-kbd|virtserialport|virtconsole|virtio-serial-pci|i82559er| - virtio-scsi-pci|scsi-cd|scsi-hd|scsi-generic|scsi-disk|scsi-block| - pci-serial|pci-serial-2x|pci-serial-4x|ich9-ahci|usb-host|usb-serial| - usb-wacom-tablet|usb-braille|usb-net|pci-ohci|virtio-rng-pci|i6300esb| - qxl|qxl-vga|pvpanic|vfio-pci|ivshmem-doorbell|ivshmem-plain| - pci-bridge|megasas-gen2|e1000e|e1000|vmcoreinfo|pcie-pci-bridge| - vhost-user-blk|vhost-user-blk-pci|vhost-user-scsi|vhost-user-scsi-pci| - vhost-vsock-pci|virtio-crypto-pci|virtio-vga| - vhost-scsi-pci-non-transitional|vhost-scsi-pci-transitional| - vhost-user-blk-pci-non-transitional|vhost-user-blk-pci-transitional| - vhost-user-scsi-pci-non-transitional|vhost-user-scsi-pci-transitional| - vhost-vsock-pci-non-transitional|virtio-9p-pci-non-transitional| - virtio-9p-pci-transitional|virtio-balloon-pci-non-transitional| - virtio-balloon-pci-transitional|virtio-blk-pci-non-transitional| - virtio-blk-pci-transitional|virtio-input-host-pci-non-transitional| - virtio-input-host-pci-transitional|virtio-net-pci-non-transitional| - virtio-net-pci-transitional|virtio-rng-pci-non-transitional| - virtio-rng-pci-transitional|virtio-scsi-pci-non-transitional| - virtio-scsi-pci-transitional|virtio-serial-pci-non-transitional| - virtio-serial-pci-transitional|vhost-user-fs-pci|vhost-user-gpu| - vhost-user-pci-pci|vhost-user-input|vhost-user-input-pci| - vhost-user-vga|virtio-mmio|guest-loader|nvme-subsys|pvpanic-pci] - (the following are aliases of these supported devices: ahci| - virtio-blk|virtio-net|virtio-serial|virtio-balloon| virtio-9p| - virtio-input-host|virtio-keyboard|virtio-mouse|virtio-tablet| - virtio-gpu|virtio-scsi|virtio-rng|e1000-82540em) - - -dfilter range, ... - -display ... - -drive - - ... (if specified if=[virtio] and format=[qcow2|raw] and - snapshot=off only) - - -echr ... - -enable-fips - -enable-kvm - -fsdev ... - -full-screen - -fw_cfg ... - -gdb ... - -global ... - -h - -help - -incoming ... - -initrd ... - -iscsi ... - -k ... - -kernel ... - -loadvm ... - -m ... - -M [help|none|virt-2.6|virt-2.11|virtio-3.1|virt-4.2|virt-5.2|virt-6.0|virt-6.1] - -machine [help|none|virt-2.6|virt-2.11|virt-3.1|virt-4.2|virt-5.2|virt-6.0|virt-6.1] - -mem-path ... - -mem-prealloc - -mon ... - -monitor ... - -msg ... - -name ... - -net - - [bridge|l2tpv3|nic|none|tap|user] ... (for model= only e1000, rtl8139, - and virtio are supported) - - -netdev [bridge|tap|user] ... - -nic ... - -no-acpi - -nodefaults - -nographic - -no-quit - -no-reboot - -no-shutdown - -no-user-config - -object ... - -only-migratable - -parallel ... - -pidfile ... - -plugin ... - -qmp ... - -qmp-pretty ... - -readconfig ... - -rtc ... - -runas ... - -s - -S - -sandbox ... - -seed ... - -serial ... - -smbios ... - -smp ... - -spice - -tpmdev passthrough ... - -trace ... - -usb - -usbdevice [braile|disk|host|mouse|net|serial|tablet] - -uuid ... - -version - -vga [none|qxl|std|virtio] - -virtfs ... - -vnc ... - -watchdog ... - -watchdog-action ... - -writeconfig ... - -- The following monitor commands are supported: - ? - announce_self ... - balloon ... - block_resize ... - boot_set ... - c - change ... - chardev-add ... - chardev-change ... - chardev-remove ... - chardev-send-break ... - client_migrate_info ... - closefd ... - cont - cpu ... - delvm ... - device_add ... - device_del ... - drive_add ... - drive_backup ... - drive_del ... - dump_guest_memory ... - eject ... - gdbserver ... - gpa2hpa ... - gpa2hva ... - gva2gpa ... - help - i ... - info ... - loadvm ... - logfile ... - logitem ... - mce ... - memsave ... - migrate ... - migrate_cancel - migrate_continue ... - migrate_incoming - migrate_pause - migrate_recover ... - migrate_set_capability ... - migrate_set_parameter ... - migrate_start_post_copy - mouse_button ... - mouse_move ... - mouse_set ... - nmi ... - o ... - object_add ... - object_del ... - p ... - pmemsave ... - print ... - q - qemu-io ... - qom-list - qom-set - ringbuf_read ... - ringbuf_write ... - savevm ... - screendump ... - sendkey ... - snapshot_blkdev_internal ... - snapshot_delete_blkdev_internal ... - stop - sum ... - system_powerdown - system_reset - system_wakeup - trace-event ... - watchdog_action ... - x ... - xp ... - -- The following QMP commands are supported: - add_client - add-fd - announce-self - balloon - blockdev-add - blockdev-backup - blockdev-change-medium - blockdev-close-tray - blockdev-create - blockdev-del - blockdev-mirror - blockdev-open-tray - blockdev-snapshot - blockdev-snapshot-delete-internal-sync - blockdev-snapshot-internal-sync - blockdev-snapshot-sync - block-commit - block-dirty-bitmap-add - block-dirty-bitmap-clear - block-dirty-bitmap-disable - block-dirty-bitmap-enable - block-dirty-bitmap-merge - block-dirty-bitmap-remove - block-export-add - block-export-del - block-latency-histogram-set - block_resize - block_set_io_throttle - block-set-write-threshold - block_stream - calc-dirty-rate - change-vnc-password - chardev-add - chardev-change - chardev-remove - chardev-send-break - client_migrate_info - closefd - cont - cpu - device_add - device_del - device-list-properties - display-reload - dump-guest-memory - eject - expire_password - getfd - human-monitor-command - inject-nmi - input-send-event - job-cancel - job-complete - job-dismiss - job-finalize - job-pause - job-resume - memsave - migrate - migrate_cancel - migrate-continue - migrate-incoming - migrate-pause - migrate-resume - migrate-set-capabilities - migrate-set-parameters - migrate-start-postcopy - object-add - object-del - pmemsave - qmp_capabilities - qom-get - qom-list - qom-list-types - qom-set - query-acpi-ospm-status - query-balloon - query-block - query-block-exports - query-block-jobs - query-blockstats - query-chardev - query-chardev-backends - query-command-line-options - query-commands - query-cpu-definitions - query-cpu-model-expansion - query-cpus-fast - query-current-machine - query-display-options - query-dirty-rate - query-dump - query-dump-guest-memory-capability - query-fdsets - query-gic-capabilities - query-hotpluggable-cpus - query-iothreads - query-jobs - query-kvm - query-machines - query-memdev - query-memory-devices - query-memory-size-summary - query-mice - query-migrate - query-migrate-capabilities - query-migrate-parameters - query-name - query-named-block-nodes - query-pci - query-pr-managers - query-qmp-schema - query-rocker - query-rocker-of-dpa-flows - query-rocker-of-dpa-groups - query-rocker-ports - query-rx-filter - query-spice - query-status - query-target - query-tpm - query-tpm-models - query-tpm-types - query-uuid - query-version - query-vnc - query-vnc-servers - query-yank - query-xen-replication-status - quit - remove-fd - ringbuf-read - ringbuf-write - screendump - send-key - set-action - set_link - set_password - snapshot-delete - snapshot-load - snapshot-save - stop - system_powerdown - system_reset - system_wakeup - trace-event-get-state - trace-event-set-state - transaction - watchdog-set-action - yank - -- The following command line options are unsupported: - - -acpitable ... - -chroot ... - -cpu ... (all except host) - -curses - -device - - [160s33b|320s33b|640s33b|a15mpcore_priv|a9mpcore_priv|a9-scu|adlib| - ads7846|allwinner-a10|allwinner-a10-pic|allwinner-A10-timer| - allwinner-emac|amd-iommu|AMDVI-PCI|arm1026-arm-cpu|arm1136-arm-cpu| - arm1136-r2-arm-cpu|arm1176-arm-cpu|arm11mpcore-arm-cpu| - arm11mpcore_priv|arm11-scu|arm926-arm-cpu|arm946-arm-cpu| - arm.cortex-a9-global-timer|arm_gic|arm-gicv2m| - arm_mptimer|armv7m_nvic|aspeed.timer|aspeed.vic|ast2400| - at25128a-nonjedec|at25256a-nonjedec|at25df041a|at25df321a|at25df641| - at25fs010|at25fs040|at26df081a|at26df161a|at26df321|at26f004| - at45db081d|bcm2835-aux|bcm2835-dma|bcm2835-fb|bcm2835-ic|bcm2835-mbox| - bcm2835-peripherals|bcm2835-property|bcm2836|bcm2836-control| - bochs-display|cadence_gem|cadence_ttc|cadence_uart|ccid-card-emulated| - ccid-card-passthru|cfi.pflash02|cirrus-vga|cmsdk-apb-dualtimer| - cmsdk-apb-watchdog|corgi-ssp|cortex-a15-arm-cpu|cortex-a53-arm-cpu| - cortex-a57-arm-cpu|cortex-a72-arm-cpu|cortex-a8-arm-cpu| - cortex-a9-arm-cpu|cortex-m0-arm-cpu|cortex-m3-arm-cpu| - cortex-m4-arm-cpu|cortex-r5-arm-cpu|cs4231a|digic|digic-timer| - digic-uart|ds1338|dscm1xxxx|e1000|en25f32|en25p32|en25p64|en25q32b| - en25q64|exynos4210.combiner|exynos4210-ehci-usb|exynos4210.fimd| - exynos4210.gic|exynos4210.i2c|exynos4210.irq_gate|exynos4210.mct| - exynos4210.pmu|exynos4210.pwm|exynos4210.rtc|exynos4210.uart|floppy| - fslimx25|fslimx31|fusbh200-ehci-usb|fw_cfg|gd25q32|gd25q64| - gpex-pcihost|gpex-root|gpio_i2c|gpio-key|gus|hyperv-testdev| - highbank-regs|host-arm-cpu|*-i386-cpu|i8042|ib700|icp-ctrl-regs| - igd-passthrough-isa-bridge|imx25.ccm|imx31.ccm|imx6.ccm|imx.avic| - imx.epit|imx.fec|imx.gpio|imx.gpt|imx.i2c|imx.serial|imx6ul.ccm| - integrator_core|integrator_debug|integrator_pic|integrator_pit| - intel_iommu|iotkit-sysctl|iotkit-sysinfo|ipmi-bmc-extern|ipmi-bmc-sim| - isa-applesmc|isa-cirrus-vga|isa-debugcon|isa-debug-exit|isa-fdc| - isa-ide|isa-ipmi-bt|isa-ipmi-kcs|isa-parallel|isa-vga|kvaser_pci| - kvm-arm-gic|kvm-arm-gicv3|l2x0|lan9118|lm8323|loader|lsi53c810a| - lsi53c895a|m25p05|m25p10|m25p128|m25p16|m25p20|m25p32|m25p40|m25p64| - m25p80|m25pe16|m25pe20|m25pe80|m25px32|m25px32-s0|m25px32-s1|m25px64| - m45pe10|m45pe16|m45pe80|mainstone-fpga|max1110|max1111|max7310| - mioe3680_pci|msf2-soc|msf2-sysreg|mss-sp1|mss-timer|musicpal_gpio| - musicpal_key|musicpal_lcd|musicpal-misc|mv88w8618_audio|mv88w8618_eth| - mv88w8618_flashcfg|mv88w8618_pic|mv88w8618_pit|mv88w8618_wlan| - mx25l12805d|mx25l12855e|mx25l1606e|mx25l2005a|mx25l25635e|mx25l25655e| - mx25l3205d|mx25l4005a|mx25l6405d|mx25l8005|n25q032|n25q032a11| - n25q032a13|n25q064|n25q064a11|n25q064a13|n25q128|n25q128a11| - n25q128a13|n25q256a|n25q256a11|n25q256a13|n25q512a|n25q512a11| - n25q512a13|nand|ne2k_isa|nrf51-soc|nrf51_soc.uart|nvdimm|omap2-gpio| - omap2-intc|omap-gpio|omap_i2c|omap-intc|onenand|pc-dimm|pc-testdev| - piix3-ide|piix3-ide|piix3-ide-xen|piix3-usb-uhci|pl011|pl011_luminary| - pl022|pl031|pl041|pl050_keyboard|pl050_mouse|pl061|pl061_luminary| - pl080|pl081|pl110|pl110_versatile|pl111|pl181|pl190|pl330| - platform-bus-device|pvrdma|pxa250-arm-cpu|pxa255-arm-cpu|pxa25x-timer| - pxa260-arm-cpu|pxa261-arm-cpu|pxa262-arm-cpu|pxa270-a0-arm-cpu| - pxa270-a1-arm-cpu|pxa270-arm-cpu|pxa270-b0-arm-cpu|pxa270-b1-arm-cpu| - pxa270-c0-arm-cpu|pxa270-c5-arm-cpu|pxa27x-timer|pxa2xx-dma| - pxa2xx-fir|pxa2xx-gpio|pxa2xx_i2c|pxa2xx-i2c-slave|pxa2xx-mmci| - pxa2xx-pcmcia|pxa2xx_pic|pxa2xx_rtc|pxa2xx-ssp|ramfb|realview_gic| - realview_mpcore|realview_pci|realview_sysctl|s25fl016k|s25fl064k| - s25fl129p0|s25fl129p1|s25fl256s0|s25fl256s1|s25fl512s|s25sl004a| - s25sl008a|s25sl016a|s25sl032a|s25sl032p|s25sl064a|s25sl064p| - s25sl12800|s25sl12801|s70fl01gs|sa1100-arm-cpu|sa1110-arm-cpu|sb16| - scoop|sdhci-pci|sga|sii9022|sl-nand|smbus-eeprom|smc91c111|sp804| - spitz-keyboard|spitz-lcdtg|ssd0303|ssd0323|sst25vf016b|sst25vf032b| - sst25vf040b|sst25vf080b|sst25wf010|sst25wf020|sst25wf040| sst25wf080| - sst25wf512|stellaris-adc|stellaris_enet|stellaris-gptm|stellaris-i2c| - stm32f205-soc|stm32f2xx-syscfg|stm32f2xx-timer|stm32f2xx-usart| - strongarm-gpio|strongarm_pic|strongarm-ppc|strongarm-rtc| - strongarm-ssp|strongarm-uart|tegra2-ehci-usb|ti925t-arm-cpu|tmp105| - tosa_dac|tosa-ssp|tusb6010|twl92230|tz-msc|usb-redir|versatile_i2c| - versatilepb_sic|versatile_pci|versatile_pci_host|vfio-pci-nohotplug| - vfio-platform|vhost-vsock-device|virtconsole|virtio-crypto-device| - vmgenid|vmware-svga|w25q256|w25q32|w25q32dw|w25q64|w25q80|w25q80bl| - w25x10|w25x16|w25x20|w25x32|w25x40|w25x64|w25x80|wm8750|*-x86_64-cpu| - xen-backend|xen-pci-passthrough|xen-platform|xen-pvdevice|xgmac| - xilinxzynq_slcr|xlnx-versal|xlnx.ps7-qspi|xlnx.ps7-spi|xlnxzynqmp| - xlnxzynq-xadc|armsse-cpuid|armsse-mhu|cpu-cluster|luminary-watchdog| - microbit.i2c|nrf51_soc.gpio|nrf51_soc.nvm|nrf51_soc.rng| - nrf51_soc.timer|platform-ehci-usb|sse-200|vmware-svga|vmxnet3|ati-vga| - cirrus-vga|vhost-user-fs-device|tulip|ati-vga|aw-hc-ehci-usb| - virtio-iommu-device|virtio-iommu-pci| - virtio-iommu-pci-non-transitional|cortex-m7-arm-cpu|allwinner-cpucfg| - allwinner-h3|allwinner-h3-ccu|allwinner-h3-dramc|allwinner-h3-sysctrl| - allwinner-rtc-sun4i|allwinner-rtc-sun6i|allwinner-rtc-sun7i| - allwinner-sdhost-sun4i|allwinner-sdhost-sun5i|allwinner-sid| - allwinner-sun8i-emac|imx.rngc|imx.usbphy|serial|serial-io| - stm32f405-soc|stm32f4xx-exti|stm32f4xx-syscfg|nvdimm| - vhost-user-vsock-device|vhost-user-vsock-pci| - vhost-user-vsock-pci-non-transitional|nvme-ns|ads7846|led|ssd0323| - vhost-user-vga|ctucan_pci|bcm2835-cprman-clock-mux| - bcm2835-cprman-cprman-dsi0hsck-mux|bcm2835-cprman-cprman-pll| - bcm2835-cprman-cprman-pll-channel|mt25ql512ab|mx66l5123f|n25q512ax3| - ssd0323|at24c-eeprom|emc1413|emc1414|is25lp016d|is25lp032|is25lp064| - is25lp080d|is25lp128|is25lp256|is25lq040b|is25wp032|is25wp064| - is25wp128|is25wp256|npcm7xx-clock-divider|npcm7xx-clock-pll| - npcm7xx-clock-sel] - (the following are aliases of these unsupported devices: lsi| - piix3-usb-uhci) - (note that some of these device names represent supported devices and - are used internally, but are not specifyable via -device even though - they appear in the list of devices) - - -drive - - ,if=[scsi|mtd|pflash], snapshot=on, format=[anything besides qcow2 or - raw] - - -dtb file - -enable-sync-profile - -fda/-fdb ... - -g ... - -hda/-hdb/-hdc/-hdd ... - -icount ... - -L ... - -M - - [akita|ast2500-evb|ast2600-evb|borzoi|canon-a1100|cheetah|collie|connex| - cubieboard|emcraft-sf2|g220a-bmc|highbank|imx25-pdk|integratorcp|kzm| - lm3s6965evb|lm3s811evb|mainstone|mcimx6ul-evk|mcimx7d-sabre|microbit| - midway|mps2-an385|mps2-an386|mps2-an500|mps2-an505|mps2-an511|mps2-an521| - mps3-an524|mps3-an547|musca-a|musca-b1|musicpal|n800|n810|netduino2| - netduinoplus2|npcm750-evb|nuri|orangepi-pc|palmetto-bmc|quanta-gsj|raspi0| - raspi1ap|raspi2|raspi2b|raspi3ap|raspi3|raspi3b|realview-eb| - realview-eb-mpcore|realview-pb-a8|realview-pbx-a9|romulus-bmc|sabrelite| - sbsa-ref|smdkc210|sonorapass-bmc|spitz|supermicrox11-bmc|swift-bmc|sx1| - sx1-v1|tacoma-bmc|terrier|tosa|verdex|versatileab|versatilepb| - vexpress-a15|vexpress-a9|virt-2.12|virt-2.7|virt-2.8|virt-3.0|virt-4.0| - virt-4.1|virt-5.0|virt-5.1|virt-6.0|virt|virt-6.1|witherspoon-bmc| - xilinx-zynq-a9|xlnx-versal-virt|xlnx-zcu102|z2] - - -machine - - [akita|ast2500-evb|ast2600-evb|borzoi|canon-a1100|cheetah|collie| - connex|cubieboard|emcraft-sf2|g220a-bmc|highbank|imx25-pdk| - integratorcp|kzm|lm3s6965evb|lm3s811evb|mainstone|mcimx6ul-evk| - mcimx7d-sabre|microbit|midway|mps2-an385|mps2-an386|mps2-an500| - mps2-an505|mps2-an511|mps2-an521|mps3-an524|mps3-an547|musca-a| - musca-b1|musicpal|n800|n810|netduino2|netduinoplus2|npcm750-evb| - nuri|orangepi-pc|palmetto-bmc|quanta-gsj|raspi0|raspi1ap|raspi2| - raspi2b|raspi3ap|raspi3|raspi3b|realview-eb|realview-eb-mpcore| - realview-pb-a8|realview-pbx-a9|romulus-bmc|sabrelite|sbsa-ref| - smdkc210|sonorapass-bmc|spitz|supermicrox11-bmc|swift-bmc|sx1| - sx1-v1|tacoma-bmc|terrier|tosa|verdex|versatileab|versatilepb| - vexpress-a15|vexpress-a9|virt-2.12|virt-2.7|virt-2.8|virt-3.0| - virt-4.0|virt-4.1|virt-5.0|virt-5.1|virt-6.0|virt|virt-6.1| - witherspoon-bmc|xilinx-zynq-a9|xlnx-versal-virt|xlnx-zcu102|z2] - - -mtdblock file - -net [socket|vde] ... - -netdev [hubport|l2tpv3|socket|vde] ... - -no-fd-bootchk - -no-hpet - -no-kvm - -no-kvm-irqchip - -no-kvm-pit - -no-kvm-pit-reinjection - -numa cpu ... - -numa dist ... - -numa node ... - -option-rom ... - -overcommit ... - -pflash file - -portrait - -preconfig - -prom-env ... - -qtest ... - -qtest-log ... - -rotate - -sd file - -sdl - -set ... - -singlestep - -snapshot - -soundhw ... - -tpmdev emulator ... - -vga [cg3|tcx|virtio|cirrus|xenfb] - -win2k-hack - -xen-attach ... - -xen-domid ... - -xen-domid-restrict ... - -- The following monitor commands are unsupported: - block_job_cancel ... - block_job_complete ... - block_job_pause ... - block_job_resume ... - block_job_set_speed ... - commit ... - drive_mirror ... - exit_preconfig - expire_password ... - hostfwd_add ... - hostfwd_remove ... - nbd_server_add ... - nbd server_start ... - nbd_server_stop ... - netdev_add - netdev_del ... - pcie_aer_inject_error ... - replay_break ... - replay_delete_break - replay_seek ... - set_link ... - set_password ... - singlestep ... - snapshot_blkdev ... - stopcapture ... - sync-profile ... - wavcapture ... - x_colo_lost_heartbeat - -- The following QMP commands are unsupported: - block-job-cancel - block-job-complete - block-job-pause - block-job-resume - block-job-set-speed - change-backing-file - drive-backup - drive-mirror - netdev_add - netdev_del - nbd-server-add - nbd-server-start - nbd-server-stop - query-colo-status - replay_break - replay_delete_break - replay_seek - x-blockdev-amend - x-blockdev-change - x-blockdev-insert-medium - x-blockdev-remove-medium - x-blockdev-reopen - x-colo-lost-heartbeat - x-debug-block-dirty-bitmap-sha256 - x-debug-query-block-graph - x-exit-preconfig - xen-colo-do-checkpoint - xen-load-devices-state - xen-save-devices-state - xen-set-global-dirty-log - xen-set-replication diff --git a/supported.ppc.txt b/supported.ppc.txt deleted file mode 100644 index c867e97..0000000 --- a/supported.ppc.txt +++ /dev/null @@ -1,6 +0,0 @@ -[qemu-ppc package document] - -SLES 15 SP4 QEMU/KVM RELATED SUPPORT STATEMENTS -=============================================== - -QEMU/KVM on ppc is not supported. diff --git a/supported.s390.txt b/supported.s390.txt deleted file mode 100644 index f7023ba..0000000 --- a/supported.s390.txt +++ /dev/null @@ -1,868 +0,0 @@ -[qemu-s390 package document] - -SLES 15 SP4 QEMU/KVM RELATED SUPPORT STATEMENTS -=============================================== - -Overview --------- - - The QEMU based packages included with SLES 15 SP4 provide a large variety of - features, from the very latest customer requests to features of questionable - quality or value. The linux kernel includes components which contribute KVM - virtualization features as well. This document was created to assist the user - in deciding which features can be relied upon to build enterprise class - virtualization solutions. KVM based virtualization for x86 (Intel 64/AMD64), - for IBM System z (s390x), and for the ARM64 architecture (AArch64) are offered - at the L3 (full support) level. The bulk of this document deals with L3 - supported features and is primarily s390x centric. This document should be - considered a companion to the standard virtualization documentation delivered - with the product. - - KVM is implemented in linux kernel modules which enable the linux kernel to - function as an integral part of the KVM hypervisor. The hypervisor-guest - interaction is managed by QEMU through the /dev/kvm ioctl interface. The linux - host assists in the virtualization of storage, networking and display - resources as well as allowing direct hardware passthrough of PCI devices. - Linux memory and cpu management features are used by QEMU/KVM to enable guests - to share those host resources as efficiently as possible. - - QEMU is a primary component of KVM based virtualization. The legacy qemu-kvm - program is available for continuity with pre SLES 12 usage, including in - libvirt domain xml references. The QEMU emulator binary qemu-system-s390x is - now the primary program to use to access KVM virtualization. When using this - program, the -machine option accel=kvm (or its alias -enable-kvm) or --accel - kvm option must be specified for KVM acceleration to be used by the guest. - - Libvirt is the preferred means of accessing QEMU/KVM functionality and is - documented elsewhere. This document focuses on the features and direct usage - of QEMU/KVM as provided by the QEMU based packages. - -Major QEMU/KVM Supported Features ---------------------------------- - -- KVM virtualization is accomplished by using the QEMU program in KVM - acceleration mode. KVM acceleration requires that both guest and host have - the same fundamental architecture. - -- Guest images created under previous QEMU versions are supported by machine - version compatibilities built into more recent QEMU versions. - -- For ease of use, the QEMU program has defaults which represent traditional - usage patterns. - -- Guest virtual machine characteristics are specified by a combination of - internal defaults, options provided on the QEMU program command-line, runtime - configurations set via the monitor interfaces and optional config files. The - runtime control of a VM is effected either through the Human Monitor - "Protocol" (HMP), or the JSON based programmatical QEMU Monitor Protocol (QMP) - interface. For QMP details, see qemu-qmp-ref man page. - Since a KVM guest runs in the context of a normal linux process, some types - of execution controls are managed with linux tools. - -- QEMU incorporates virtualized, s390 specific, ccw bus based firmware for - booting s390 guests. This firmware is automatically incorporated and - doesn't need to be explicitly referenced. - -- Some QEMU messages have been localized to various languages. This is provided - by the optional qemu-lang package. Keyboard mappings for various nationalities - is also provided. - -- Virtual machine lifecycle controls include startup through the ccw firmware or - kernel boot, firmware based shutdown, execution pausing, the saving and - restoring of machine state or disk state, VM migration to another host, and - miscellaneous controls available through the "monitors" mentioned above. - -- Guest execution state may be "moved" in both time (save/restore) and space - (static and live migration). These migrations or save/restore operations can - take place either from certain prior SLES versioned hosts to a SLES 15 SP4 - host or between hosts of the same version. Certain other restrictions also - apply. - -- Security considerations include privileged helpers and a security model which - allows running guests as a non-root user. - -- QEMU provides best effort reuse of existing disk images, including those with - systems installed, through geometry probing. Also disk images produced by - other popular virtualization technologies may be imported into QEMU supported - storage formats. These QEMU formats include features which exploit the - benefits of virtualization. - -- Memory, cpu and disk space overcommit are possible and can be beneficial when - done responsibly. Additional management of these resources comes in the form - of memory ballooning or hotplug, host KSM, vcpu hot-add, online disk resizing, - trim, discard and hole punching. - -- Guest performance is enhanced through the use of virtio devices, various disk - caching modes, network acceleration via the vhost-net kernel module, multi- - queue network transmit capabilities, host transparent huge pages (THP) and - direct hugetlb usage. Physical PCI devices may also be passed through to the - guest, including SR-IOV VF's. - -- The guest UI is accessable via GTK, VNC, and serial (including curses TUI) - interfaces. - -- Guest timekeeping is supported in a variety of ways, including a paravirtual - clocksource, and options for the various guest clocks for how to handle the - timeslicing of the guest's execution on the host. - -- In addition to the para-virtualized devices already mentioned, other devices - and infrastructure designed to avoid virtualization "problem areas" are - available such as SPICE graphics, vmmouse emulation, tablet style pointer - interfaces and virtio based UI interfaces. - -- A built-in user-mode network (SLIRP) stack is available. - -- Portions of the host file system may be shared with a guest by using virtFS. - -- A guest "agent" is available for SLES 15 SP4 KVM guests via the - qemu-guest-agent package. This allows some introspection and control of the - guest OS environment from the host. - -QEMU/KVM Technology Previews ----------------------------- - -- All features indicated as not being supported in this document fall under the - Technology Preview definition contained in the main product's release notes. - -Noteworthy QEMU/KVM Unsupported Features ----------------------------------------- - -- Note that some features are unsupported simply due to lack of validation. If - an existing feature is desired, but not marked supported, let SUSE know about - your requirements. - -- The TCG "acceleration" mode may be helpful for problem isolation, but - otherwise presents insufficient benefit and stability. - -- GlusterFS integration is not enabled. - -Deprecated, Superseded, Modified and Dropped Features ------------------------------------------------------ - -- https://qemu-project.gitlab.io/qemu/about/deprecated.html and - https://qemu-project.gitlab.io/qemu/about/removed-features.html - These websites track features deprecation and removal at the upstream - development level. Our qemu package inherits this community direction, but be - aware that we can and will deviate as needed. Those deviations and additional - information can be found in this section. Feature deprecation as well as - removed features are also tracked in the "System Emulation" section of the - documentation installed with the qemu package. - -- qemu-img: Deprecate use of -b without -F. Creating an image that requires - format probing of the backing image is potentially unsafe and is now - deprecated. - -- The previously non-persistent backing file with pmem=on is deprecated. Modify - VM configuration to set pmem=off to continue using fake NVDIMM with backing - file or move backing file to NVDIMM storage and keep pmem=on. - -- The use of "?" as a parameter to "-cpu", "-soundhw", "-device", "-M", - "-machine" and "-d" is now considered deprecated. Use "help" - instead. - -- The use of "if=scsi" as a parameter to "-drive" does not work anymore with PC - machine types, as it created an obsolete SCSI controller model. - -- Use of aio=native without direct cache mode also being specified (cache=none, - cache=directsync, or cache.direct=on) is no longer allowed. - -- The use of image encryption in qcow and qcow2 formats is now considered - deprecated. - Analysis has shown it to be weak encryption, in addition to suffering from - poor design. Images can easily be converted to a non-encrypted format. - -- Use of acpi, boot-opts, and smp-opts in a -readconfig config file are now - considered deprecated. In the future those names will be standardized to - acpitable, boot, and smp respectively. - -- These previously supported command line options are now considered deprecated: - -display sdl,window_close= (use -display sdl,window-close) - -no-quit (use -display ...,window-close=off) - -chardev tty (use serial name instead) - -chardev paraport (use parallel name instead) - -device virtio-blk,scsi= (use virtio-scsi instead) - -device virtio-blk-pci,scsi= (use virtio-scsi instead) - -enable-fips (not really helpful - see https://git.qemu.org/?p=qemu.git;a=commit;h=166310299a1e7824bbff17e1f016659d18b4a559 for details) - -realtime mlock= (use -overcommit mem-lock= instead) - -spice password=string (use password-string option instead) - -writeconfig (no replacement - never really worked right) - -share and noshare must be replaced by share=on/share=off - -nodelay must be replaced by nodelay=on rather than delay=off - -object-add options opened=on and loaded=on (both had no effect) - -- These previously supported command line options are no longer supported: - - -- These previously supported command line options are no longer recognized: - -balloon (use -device virtio-balloon instead) - -clock - -device ivshmem (use ivshmem-doorbell or ivshmem-plain instead) - -device pc-sysfw (no longer needed) - -device pci-assign, -device kvm-pci-assign (use -device vfio-pci instead) - -display sdl - -no-frame - -nodefconfig (use -no-user-config instead) - -realtime ... - -sdl - -show-cursor - -virtioconsole (use -device virtconsole instead) - -- Specifying a cpu feature with both "+feature/-feature" and "feature=on/off" - will now cause a warning. The current behavior for this combination where - "+feature/-feature" wins over "feature=on/off", will be changed going forward - so that "+feature" and "-feature" will be synonyms for "feature=on" and - "feature=off" respectively. - -- The previously supported blkdev-add QMP command has been flagged as lacking - and could possibly change syntax in the future. - -- These previously unsupported command line options are now deprecated: - -bt - -soundhw (use -device ... instead) - -- These previously unsupported command line options are no longer recognized: - -device ide-drive (use ide-hd or ide-cd) - -device mmio_interface - -device ramfb - -device scsi-disk (use scsi-hd or scsi-cd) - -device vhost-user-vsock-pci-transitional - -device vhost-vsock-pci-transitional - -device virtio-iommu-pci-transitional - -enable-hax - -tb-size - -tdf - -xen-create - -- These previously supported QMP commands are now deprecated: - - -- These previously supported QMP commands are no longer recognized: - info cpustats - block_passwd - change (use blockdev-change-medium or change-vnc-password instead) - cpu-add (use device_add instead) - migrate-set-cache-size (use migrate-set-parameters instead) - migrate_set_downtime (use migrate-set-parameters instead) - migrate_set_speed (use migrate-set-parameters instead) - query-cpus (use query-cpus-fast instead) - query-events - query-migrate-cache-size (use query-migrate-parameters instead) - -- These previously supported monitor commands are now deprecated: - change - -- These previously supported monitor commands are no longer recognized: - info cpustats - block_passwd ... - cpu-add (use device_add instead) - migrate_set_cache_size - migrate_set_downtime - migrate_set_speed - pci_add (use device_add instead) - pci_del (use device_del instead) - -- These previously unsupported monitor command are now deprecated: - - -- These previously unsupported monitor commands are no longer recognized: - acl_add ... - acl_policy ... - acl_remove ... - acl_reset ... - acl_show ... - host_net_add - host_net_remove - usb_add - usb_del - -- These previously unsupported QMP commands are now supported under a new name: - x-block-dirty-bitmap-disable (use block-dirty-bitmap-disable instead) - x-block-dirty-bitmap-enable (use block-dirty-bitmap-enable instead) - x-block-dirty-bitmap-merge (use block-dirty-bitmap-merge instead) - x-block-latency-histogram-set (use block-latency-histogram-set instead) - x-blockdev-create (use blockdev-create instead) - -- This previously unsupported QMP commands is no longer recognized: - x-nbd-server-add-bitmap - -- Due to upstream's decision to no longer fully support the qed storage format - going forward (since it really provides no benefit over qcow2 and is now no - longer actively maintained upstream), creating qed storage images is no longer - supported and it is highly discouraged to continue using existing qed images. - They should instead be converted to another supported format. - -QEMU Command-Line and Monitor Syntax and Support ------------------------------------------------- - -- The QEMU program command-line syntax is as follows: - qemu-system-s390x [options] - - Where 'options' are taken from the options listed below. - The images used with -drive or -cdrom, may be in the raw (no format) or qcow2 - storage formats, and may be located in files within the host filesystem, - logical volumes, host physical disks, or network based storage. Read only - media may also be accessed via URL style protocol specifiers. - - Note that as a general rule, as new command line options are added which serve - to replace an older option or interface, you are strongly encouraged to adapt - your usage to the new option. The new option is being introduced to provide - better functionality and usability going forward. In some cases existing - problems or even bugs in older interfaces cannot be fixed due to functional - expectations, but are resolved in the newer interface or option. - This advice includes moving to the most recent machine type (eg - s390-ccw-virtio-6.1 instead of s390-ccw-virtio-6.0) if possible. - -- The following command line options are supported: - -accel ... - -action ... - -add-fd ... - -alt-grab - -append ... - -audio-help - -audiodev - -bios ... - -blockdev ... - -boot ... - -cdrom ... - -chardev ... - -compat ... - -cpu host - -ctrl-grab - -d ... - -daemonize - -debugcon ... - -device - - [virtio-net-pci|virtio-blk-pci|virtio-balloon-pci|virtserialport| - virtconsole|virtio-serial-pci|virtio-scsi-pci|scsi-cd|scsi-hd| - scsi-generic|scsi-block|virtio-rng-pci|pci-bridge|megasas-gen2|e1000e| - e1000|zpci|virtio-gpu-ccw|virtio-keyboard-ccw|vhost-user-blk-pci| - vhost-user-scsi|vhost-user-scsi-pci|vhost-vsock-ccw| - virtio-balloon-ccw|virtio-blk-ccw|vhost-scsi-ccw|vhost-user-blk| - virtio-crypto-ccw|virtio-net-ccw|virtio-rng-ccw|virtio-scsi-ccw| - virtio-serial-ccw|virtio-mouse-ccw|virtio-tablet-ccw|vfio-pci| - virtio-vga|vhost-scsi-pci-non-transitional| - vhost-scsi-pci-transitional|vhost-user-blk-pci-non-transitional| - vhost-user-blk-pci-transitional|vhost-user-scsi-pci-non-transitional| - vhost-user-scsi-pci-transitional|vhost-vsock-pci-non-transitional| - virtio-9p-ccw|virtio-9p-pci-non-transitional| - virtio-9p-pci-transitional|virtio-balloon-pci-non-transitional| - virtio-balloon-pci-transitional|virtio-blk-pci-non-transitional| - virtio-blk-pci-transitional|virtio-input-host-pci-non-transitional| - virtio-input-host-pci-transitional|virtio-net-pci-non-transitional| - virtio-net-pci-transitional|virtio-rng-pci-non-transitional| - virtio-rng-pci-transitional|virtio-scsi-pci-non-transitional| - virtio-scsi-pci-transitional|virtio-serial-pci-non-transitional| - virtio-serial-pci-transitional|vhost-user-fs-pci|vhost-user-gpu| - vhost-user-pci-pci|vhost-user-input|vhost-user-input-pci| - vhost-user-vga] - (the following are aliases of these supported devices: virtio-blk| - virtio-input-host|virtio-keyboard|virtio-mouse|virtio-tablet| - virtio-gpu|virtio-9p|virtio-net|virtio-serial|virtio-balloon| - virtio-scsi|virtio-rng) - - -dfilter range, ... - -display ... - -drive - - ... (if specified if=[virtio] and format=[qcow2|raw] and - snapshot=off only) - - -echr ... - -enable-fips - -enable-kvm - -fsdev ... - -full-screen - -fw_cfg ... - -gdb ... - -global ... - -h - -help - -incoming ... - -initrd ... - -iscsi ... - -k ... - -kernel ... - -loadvm ... - -m ... - -M - - [help|?|none|s390-ccw-virtio-2.6|s390-ccw-virtio-2.9|s390-ccw-virtio-2.11| - s390-ccw-virtio-3.1|s390-ccw-virtio-4.2|s390-ccw-virtio-5.2] - - -machine - - [help|?|none|s390-ccw-virtio-2.6|s390-ccw-virtio-2.9| - s390-ccw-virtio-2.11|s390-ccw-virtio-3.1|s390-ccw-virtio-4.2| - s390-ccw-virtio-5.2] - - -mem-path ... - -mem-prealloc - -mon ... - -monitor ... - -msg ... - -name ... - -net - - [bridge|l2tpv3|nic|none|tap|user] ... (for model= only e1000, rtl8139, - and virtio are supported) - - -netdev [bridge|tap|user] ... - -nic ... - -nodefaults - -nographic - -no-quit - -no-reboot - -no-shutdown - -no-user-config - -object ... - -only-migratable - -parallel ... - -pidfile ... - -plugin ... - -qmp ... - -qmp-pretty ... - -readconfig ... - -rtc ... - -runas ... - -s - -S - -sandbox ... - -seed ... - -serial ... - -smp ... - -trace ... - -uuid ... - -version - -vga [none|qxl|std] - -virtfs ... - -vnc ... - -watchdog ... - -watchdog-action ... - -writeconfig ... - -- The following monitor commands are supported: - ? - announce_self ... - balloon ... - block_resize ... - boot_set ... - c - change ... - chardev-add ... - chardev-change ... - chardev-remove ... - chardev-send-break ... - client_migrate_info ... - closefd ... - cont - cpu ... - delvm ... - device_add ... - device_del ... - drive_add ... - drive_backup ... - drive_del ... - dump_guest_memory ... - eject ... - gdbserver ... - gpa2hpa ... - gpa2hva ... - gva2gpa ... - help - i ... - info ... - loadvm ... - logfile ... - logitem ... - mce ... - memsave ... - migrate ... - migrate_cancel - migrate_continue ... - migrate_incoming - migrate_pause - migrate_recover ... - migrate_set_capability ... - migrate_set_parameter ... - migrate_start_post_copy - mouse_button ... - mouse_move ... - mouse_set ... - nmi ... - o ... - object_add ... - object_del ... - p ... - pmemsave ... - print ... - q - qemu-io ... - qom-list - qom-set - ringbuf_read ... - ringbuf_write ... - savevm ... - screendump ... - sendkey ... - snapshot_blkdev_internal ... - snapshot_delete_blkdev_internal ... - stop - sum ... - system_powerdown - system_reset - system_wakeup - trace-event ... - watchdog_action ... - x ... - xp ... - -- The following QMP commands are supported: - add_client - add-fd - announce-self - balloon - blockdev-add - blockdev-backup - blockdev-change-medium - blockdev-close-tray - blockdev-create - blockdev-del - blockdev-mirror - blockdev-open-tray - blockdev-snapshot - blockdev-snapshot-delete-internal-sync - blockdev-snapshot-internal-sync - blockdev-snapshot-sync - block-commit - block-dirty-bitmap-add - block-dirty-bitmap-clear - block-dirty-bitmap-disable - block-dirty-bitmap-enable - block-dirty-bitmap-merge - block-dirty-bitmap-remove - block-export-add - block-export-del - block-latency-histogram-set - block_resize - block_set_io_throttle - block-set-write-threshold - block_stream - calc-dirty-rate - change-vnc-password - chardev-add - chardev-change - chardev-remove - chardev-send-break - client_migrate_info - closefd - cont - cpu - device_add - device_del - device-list-properties - display-reload - dump-guest-memory - eject - expire_password - getfd - human-monitor-command - inject-nmi - input-send-event - job-cancel - job-complete - job-dismiss - job-finalize - job-pause - job-resume - memsave - migrate - migrate_cancel - migrate-continue - migrate-incoming - migrate-pause - migrate-resume - migrate-set-capabilities - migrate-set-parameters - migrate-start-postcopy - object-add - object-del - pmemsave - qmp_capabilities - qom-get - qom-list - qom-list-types - qom-set - query-acpi-ospm-status - query-balloon - query-block - query-block-exports - query-block-jobs - query-blockstats - query-chardev - query-chardev-backends - query-command-line-options - query-commands - query-cpu-definitions - query-cpu-model-baseline - query-cpu-model-comparison - query-cpu-model-expansion - query-cpus-fast - query-current-machine - query-dirty-rate - query-display-options - query-dump - query-dump-guest-memory-capability - query-fdsets - query-gic-capabilities - query-hotpluggable-cpus - query-iothreads - query-jobs - query-kvm - query-machines - query-memdev - query-memory-devices - query-memory-size-summary - query-mice - query-migrate - query-migrate-capabilities - query-migrate-parameters - query-name - query-named-block-nodes - query-pci - query-pr-managers - query-qmp-schema - query-rocker - query-rocker-of-dpa-flows - query-rocker-of-dpa-groups - query-rocker-ports - query-rx-filter - query-spice - query-status - query-target - query-uuid - query-version - query-vnc - query-vnc-servers - query-yank - query-xen-replication-status - quit - remove-fd - ringbuf-read - ringbuf-write - screendump - send-key - set-action - set_link - set_password - snapshot-delete - snapshot-load - snapshot-save - stop - system_powerdown - system_reset - system_wakeup - trace-event-get-state - trace-event-set-state - transaction - watchdog-set-action - yank - -- The following command line options are unsupported: - - -acpitable ... - -chroot ... - -cpu ... (all except host) - -curses - -device - - [AC97|adlib|am53c974|amd-iommu|AMDVI-PCI|ccid-card-emulated| - ccid-card-passthrough|cirrus-vga|cs4231a|dc390|diag288|e1000-82544gc| - e1000-82545em|edu|ES1370|floppy|generic-sdhci|gus|hda-duplex| - hda-micro|hda-output|hyperv-testdev|*-i386-cpu|i8042|i82550|i82551| - i82557a|i82557b|i82557c|i82558a|i82558b|i82559a|i82559b|i82559c| - i82562|i82801|i82801b11-bridge|ib700|ich9-intel-hda|ich9-usb-ehci1| - ich9-usb-ehci2|ich9-usb-uhci1|ich9-usb-uhci2|ich9-usb-uhci3| - ich9-usb-uhci4|ich9-usb-uhci5|ich9-usb-uhci6|ide-cd|ide-drive|ide-hd| - igd-passthrough-isa-bridge|intel-hda|intel_iommu|ioh3420| - ipmi-bmc-extern|ipmi-bmc-sim|ipoctal232|isa-applesmc|isa-cirrus-vga| - isa-debugcon|isa-debug-exit|isa-fdc|isa-ide|isa-ipmi-bt|isa-ipmi-kcs| - isa-parallel|isa-serial|isa-vga|lsi53c810|lsi53c810a|max-s390x-cpu| - megasas|mptsas1068|ne2k_isa|ne2k_pci|nec-usb-xhci|nvdimm|nvme|pc-dimm| - pci-testdev|pcnet|pc-testdev|piix3-ide|piix3-ide|piix3-ide-xen| - piix4-usb-uhci|pvscsi|pxb|pxb-host|pxb-pcie|qemu-s390-cpu|rocker| - s390-flic|s390-flic-qemu|s390-ipl|s390-pcihost| - s390-sclp-event-facility|s390-skeys-qemu|sb16|sclp|sclpconsole| - sclp-cpu-hotplug|sclplmconsole|sclp-memory-hotplug-dev|sclpquiesce| - sd-card|sdhci-pci|secondary-vga|sga|smbus-eeprom|tpci200|usb-audio| - usb-bot|usb-ccid|usb-mtp|usb-uas|vfio-ap|vfio-pci-nohotplug| - virtio-9p-device|virtual-css-bridge|vmcoreinfo|vmgenid|vmware-svga| - vmxnet3|vt82c686b-usb-uhci|x3130-upstream|*-x86_64-cpu|xen-backend| - xen-pci-passthrough|xen-platform|xen-pvdevice|xio3130-downstream| - z10BC.2-base-s390x-cpu|z10BC.2-s390x-cpu|z10BC-base-s390x-cpu| - z10BC-s390x-cpu|z10EC.2-base-s390x-cpu|z10EC.2-s390x-cpu| - z10EC.3-base-s390x-cpu|z10EC.3-s390x-cpu|z10EC-base-s390x-cpu| - z10EC-s390x-cpu|z114-base-s390x-cpu|z114-s390x-cpu| - z13.2-base-s390x-cpu|z13.2-s390x-cpu|z13-base-s390x-cpu|z13-s390x-cpu| - z13s-base-s390x-cpu|z13s-s390x-cpu|z196.2-base-s390x-cpu| - z196.2-s390x-cpu|z196-base-s390x-cpu|z196-s390x-cpu| - z800-base-s390x-cpu|z800-s390x-cpu|z890.2-base-s390x-cpu| - z890.2-s390x-cpu|z890.3-base-s390x-cpu|z890.3-s390x-cpu| - z890-base-s390x-cpu|z890-s390x-cpu|z900.2-base-s390x-cpu| - z900.2-s390x-cpu|z900.3-base-s390x-cpu|z900.3-s390x-cpu| - z900-base-s390x-cpu|z900-s390x-cpu|z990.2-base-s390x-cpu| - z990.2-s390x-cpu|z990.3-base-s390x-cpu|z990.3-s390x-cpu| - z990.4-base-s390x-cpu|z990.4-s390x-cpu|z990.5-base-s390x-cpu| - z990.5-s390x-cpu|z990-base-s390x-cpu|z990-s390x-cpu| - z9BC.2-base-s390x-cpu|z9BC.2-s390x-cpu|z9BC-base-s390x-cpu| - z9BC-s390x-cpu|z9EC.2-base-s390x-cpu|z9EC.2-s390x-cpu| - z9EC.3-base-s390x-cpu|z9EC.3-s390x-cpu|z9EC-base-s390x-cpu| - z9EC-s390x-cpu|z14ZR1-base-s390x-cpu|z14ZR1-s390x-cpu| - zBC12-base-s390x-cpu|zBC12-s390x-cpu|zEC12.2-base-s390x-cpu| - zEC12.2-s390x-cpu|zEC12-base-s390x-cpu|zEC12-s390x-cpu|cpu-cluster| - z14.2-base-s390x-cpu|z14.2-s390x-cpu|vhost-user-fs-device| - virtio-iommu-device|virtio-iommu-pci| - virtio-iommu-pci-non-transitional|vhost-user-vsock-device| - vhost-user-vsock-pci|vhost-user-vsock-pci-non-transitional| - vhost-user-fs-ccw|guest-loader] - (the following are aliases of these unsupported devices: lsi| - ahci|e1000-82540em|vfio-ccw) - (note that some of these device names represent supported devices and - are used internally, but are not specifyable via -device even though - they appear in the list of devices) - - -drive - - ,if=[scsi|mtd|pflash], snapshot=on, format=[anything besides qcow2 or - raw] - - -dtb file - -enable-sync-profile - -fda/-fdb ... - -g ... - -hda/-hdb/-hdc/-hdd ... - -icount ... - -L ... - -M - - [s390-ccw-virtio|s390-ccw-virtio-2.4|s390-ccw-virtio-2.5| - s390-ccw-virtio-2.7|s390-ccw-virtio-2.8|s390-ccw-virtio-2.10| - s390-ccw-virtio-2.12|s390-ccw-virtio-3.0|s390-ccw-virtio-4.0| - s390-ccw-virtio-4.1|s390-ccw-virtio-5.0|s390-ccw-virtio-5.1| - s390-ccw-virtio-6.0|s390-ccw-virtio-6.1] - - -machine - - [s390-ccw-virtio|s390-ccw-virtio-2.4|s390-ccw-virtio-2.5| - s390-ccw-virtio-2.7|s390-ccw-virtio-2.8|s390-ccw-virtio-2.10| - s390-ccw-virtio-2.12|s390-ccw-virtio-3.0|s390-ccw-virtio-4.0| - s390-ccw-virtio-4.1|s390-ccw-virtio-5.0|s390-ccw-virtio-5.1| - s390-ccw-virtio-6.0|s390-ccw-virtio-6.1] - - -mtdblock file - -net [socket|vde] ... - -netdev [hubport|l2tpv3|socket|vde] ... - -no-acpi - -no-fd-bootchk - -no-hpet - -no-kvm - -no-kvm-irqchip - -no-kvm-pit - -no-kvm-pit-reinjection - -numa cpu ... - -numa dist ... - -numa node ... - -option-rom ... - -overcommit ... - -pflash file - -portrait - -preconfig - -prom-env ... - -qtest ... - -qtest-log ... - -rotate - -sd file - -sdl - -set ... - -singlestep - -smbios ... - -snapshot - -soundhw ... - -spice - -tdf - -tpmdev emulator ... - -tpmdev passthrough ... - -usb - -usbdevice [braile|disk|host|mouse|net|serial|tablet] - -vga [cg3|tcx|virtio|cirrus|xenfb|vmware] - -win2k-hack - -xen-attach ... - -xen-domid ... - -xen-domid-restrict ... - -- The following monitor commands are unsupported: - block_job_cancel ... - block_job_complete ... - block_job_pause ... - block_job_resume ... - block_job_set_speed ... - commit ... - drive_mirror ... - exit_preconfig - expire_password ... - hostfwd_add ... - hostfwd_remove ... - nbd_server_add ... - nbd server_start ... - nbd_server_stop ... - netdev_add - netdev_del ... - pcie_aer_inject_error ... - replay_break ... - replay_delete_break - replay_seek ... - set_link ... - set_password ... - singlestep ... - snapshot_blkdev ... - stopcapture ... - sync-profile ... - wavcapture ... - x_colo_lost_heartbeat - -- The following QMP commands are unsupported: - block-job-cancel - block-job-complete - block-job-pause - block-job-resume - block-job-set-speed - change-backing-file - drive-backup - drive-mirror - dump-skeys - netdev_add - netdev_del - nbd-server-add - nbd-server-start - nbd-server-stop - query-colo-status - query-tpm - query-tpm-models - query-tpm-types - replay_break - replay_delete_break - replay_seek - x-blockdev-amend - x-blockdev-change - x-blockdev-insert-medium - x-blockdev-remove-medium - x-blockdev-reopen - x-colo-lost-heartbeat - x-debug-block-dirty-bitmap-sha256 - x-debug-query-block-graph - x-exit-preconfig - xen-colo-do-checkpoint - xen-load-devices-state - xen-save-devices-state - xen-set-global-dirty-log - xen-set-replication diff --git a/supported.x86.txt b/supported.x86.txt deleted file mode 100644 index 8caa316..0000000 --- a/supported.x86.txt +++ /dev/null @@ -1,963 +0,0 @@ -[qemu-x86 package document] - -SLES 15 SP4 QEMU/KVM RELATED SUPPORT STATEMENTS -=============================================== - -Overview --------- - - The QEMU based packages included with SLES 15 SP4 provide a large variety of - features, from the very latest customer requests to features of questionable - quality or value. The linux kernel includes components which contribute KVM - virtualization features as well. This document was created to assist the user - in deciding which features can be relied upon to build enterprise class - virtualization solutions. KVM based virtualization for x86 (Intel 64/AMD64), - for IBM System z (s390x), and for the ARM64 architecture (AArch64) are offered - at the L3 (full support) level. The bulk of this document deals with L3 - supported features and is primarily x86 centric. This document should be - considered a companion to the standard virtualization documentation delivered - with the product. - - KVM is implemented in linux kernel modules which enable the linux kernel to - function as an integral part of the KVM hypervisor. The hypervisor-guest - interaction is managed by QEMU through the /dev/kvm ioctl interface. The linux - host assists in the virtualization of storage, networking and display - resources as well as allowing direct hardware passthrough of PCI and USB - devices. Linux memory and cpu management features are used by QEMU/KVM to - enable guests to share those host resources as efficiently as possible. - - QEMU is a primary component of KVM based virtualization. The legacy qemu-kvm - program is available for continuity with pre SLES 12 usage, including in - libvirt domain xml references. The QEMU emulator binaries qemu-system-x86_64 - and qemu-system-i386 (x86 host) are now the primary programs to use to access - KVM virtualization. When using these programs, the -machine option accel=kvm - (or its alias -enable-kvm), or --accel kvm option must be specified for KVM - acceleration to be used by the guest. Although Xen uses QEMU for - virtualization as well, this document does not identify Xen supported - features. - - Libvirt is the preferred means of accessing QEMU/KVM functionality and is - documented elsewhere. This document focuses on the features and direct usage - of QEMU/KVM as provided by the QEMU based packages. - -Major QEMU/KVM Supported Features ---------------------------------- - -- KVM virtualization is accomplished by using the QEMU program in KVM - acceleration mode. KVM acceleration requires that both guest and host have - the same fundamental architecture. - -- Guest images created under previous QEMU versions are supported by machine - version compatibilities built into more recent QEMU versions. - -- For ease of use, the QEMU program has defaults which represent traditional - usage patterns. - -- Guest virtual machine characteristics are specified by a combination of - internal defaults, options provided on the QEMU program command-line, runtime - configurations set via the monitor interfaces and optional config files. The - runtime control of a VM is effected either through the Human Monitor - "Protocol" (HMP), or the JSON based programmatical QEMU Monitor Protocol (QMP) - interface. For QMP details, see qemu-qmp-ref man page. - Since a KVM guest runs in the context of a normal linux process, some types - of execution controls are managed with linux tools. - -- Various standard vCPU types are available, along with the ability to specify - individual CPU features visible to the guest. - -- QEMU incorporates a SEABIOS based system BIOS and iPXE based PXE ROMs, which - allow boot options common to physical systems, along with other features - tailored to virtualization. Various VGABIOS ROMs, also from the SEABIOS - project, are also included. A UEFI based guest boot environment is also - available by using the firmware provided by the qemu-ovmf-x86_64 package. - -- Some QEMU messages have been localized to various languages. This is provided - by the optional qemu-lang package. Keyboard mappings for various nationalities - is also provided. - -- Virtual machine lifecycle controls include startup through the system BIOS or - kernel boot, ACPI or legacy based shutdown, execution pausing, the saving and - restoring of machine state or disk state, VM migration to another host, and - miscellaneous controls available through the "monitors" mentioned above. - -- Guest execution state may be "moved" in both time (save/restore) and space - (static and live migration). These migrations or save/restore operations can - take place either from certain prior SLES versioned hosts to a SLES 15 SP4 - host or between hosts of the same version. Certain other restrictions also - apply. - -- Security considerations include seccomp2 based sandboxing, vTPM, privileged - helpers and a security model which allows running guests as a non-root user. - -- QEMU/KVM supports a wide range of operating systems within the VMs. See the - online SUSE documentation for supported OS's. Windows guests can optionally be - accelerated with QEMU/KVM provided Hyper-V hypercalls, or with paravirtual - drivers from the SUSE Virtual Machine Driver Pack. Linux includes a number of - paravirtual drivers as well. - -- QEMU provides best effort reuse of existing disk images, including those with - systems installed, through geometry probing. Also disk images produced by - other popular virtualization technologies may be imported into QEMU supported - storage formats. These QEMU formats include features which exploit the - benefits of virtualization. - -- Memory, cpu and disk space overcommit are possible and can be beneficial when - done responsibly. Additional management of these resources comes in the form - of memory ballooning or hotplug, host KSM, vcpu hot-add, online disk resizing, - trim, discard and hole punching. - -- Guest performance is enhanced through the use of virtio devices, various disk - caching modes, network acceleration via the vhost-net kernel module, multi- - queue network transmit capabilities, host transparent huge pages (THP) and - direct hugetlb usage. Physical PCI and USB devices may also be passed through - to the guest, including SR-IOV VF's. - -- The guest UI is accessable via GTK, VNC, Spice, and serial (including curses - TUI) interfaces. - -- Guest timekeeping is supported in a variety of ways, including a paravirtual - clocksource, and options for the various guest clocks for how to handle the - timeslicing of the guest's execution on the host. - -- Guest OS's interact with virtualized hardware including a choice of either - older or more recent x86 system chipsets, system devices and buses, and a - variety of common storage and networking emulated devices. SMBIOS and ACPI - table details can be customized. - -- In addition to the para-virtualized devices already mentioned, other devices - and infrastructure designed to avoid virtualization "problem areas" are - available such as SPICE graphics, vmmouse emulation, tablet style pointer - interfaces and virtio based UI interfaces. - -- A built-in user-mode network (SLIRP) stack is available. - -- Portions of the host file system may be shared with a guest by using virtFS. - -- A guest "agent" is available for SLES 15 SP4 KVM guests via the - qemu-guest-agent package. This allows some introspection and control of the - guest OS environment from the host. - -QEMU/KVM Technology Previews ----------------------------- - -- Nested VMX and SVM virtualization is possible. - -- All features indicated as not being supported in this document fall under the - Technology Preview definition contained in the main product's release notes. - -Noteworthy QEMU/KVM Unsupported Features ----------------------------------------- - -- Note that some features are unsupported simply due to lack of validation. If - an existing feature is desired, but not marked supported, let SUSE know about - your requirements. - -- The TCG "acceleration" mode may be helpful for problem isolation, but - otherwise presents insufficient benefit and stability. - -- Use of -cpu host is not supported in all host/guest configurations. - -- GlusterFS integration is not enabled. - -Deprecated, Superseded, Modified and Dropped Features ------------------------------------------------------ - -- https://qemu-project.gitlab.io/qemu/about/deprecated.html and - https://qemu-project.gitlab.io/qemu/about/removed-features.html - These websites track features deprecation and removal at the upstream - development level. Our qemu package inherits this community direction, but be - aware that we can and will deviate as needed. Those deviations and additional - information can be found in this section. Feature deprecation as well as - removed features are also tracked in the "System Emulation" section of the - documentation installed with the qemu package. - -- qemu-img: Deprecate use of -b without -F. Creating an image that requires - format probing of the backing image is potentially unsafe and is now - deprecated. - -- When no video adapter is specified, the default used is stdvga. This differs - from the default of prior releases which was cirrus. The cirrus adapter was - considered too outdated to continue to use as the default. - -- The deprecated windows drivers (win-virtio-drivers.iso) are no longer provided. - The Virtual Machine Driver Pack is the supported way to get virtio drivers for - Windows guests. - -- The use of ",boot=on" for virtio disks is no longer needed since the bios used - supports the virtio block interface directly. In fact, its usage may cause - problems, and is now considered deprecated. - -- The previously non-persistent backing file with pmem=on is deprecated. Modify - VM configuration to set pmem=off to continue using fake NVDIMM with backing - file or move backing file to NVDIMM storage and keep pmem=on. - -- The use of "?" as a parameter to "-cpu", "-soundhw", "-device", "-M", - "-machine" and "-d" is now considered deprecated. Use "help" - instead. - -- The use of "if=scsi" as a parameter to "-drive" does not work anymore with PC - machine types, as it created an obsolete SCSI controller model. - -- Passthrough of a host floppy device is now considered deprecated. - -- Use of aio=native without direct cache mode also being specified (cache=none, - cache=directsync, or cache.direct=on) is no longer allowed. - -- The use of image encryption in qcow and qcow2 formats is now considered - deprecated. - Analysis has shown it to be weak encryption, in addition to suffering from - poor design. Images can easily be converted to a non-encrypted format. - -- Use of acpi, boot-opts, and smp-opts in a -readconfig config file are now - considered deprecated. In the future those names will be standardized to - acpitable, boot, and smp respectively. - -- When only a partial SMP topology is provided (ie only some of sockets, cores, - threads) the derived guest ABI is not guaranteed to be equivalent in future - versions. - -- These previously supported command line options are now considered deprecated: - -display sdl,window_close= (use -display sdl,window-close) - -no-quit (use -display ...,window-close=off) - -M option kernel-irqchip=off - -chardev tty (use serial name instead) - -chardev paraport (use parallel name instead) - -device virtio-blk,scsi= (use virtio-scsi instead) - -device virtio-blk-pci,scsi= (use virtio-scsi instead) - -enable-fips (not really helpful - see https://git.qemu.org/?p=qemu.git;a=commit;h=166310299a1e7824bbff17e1f016659d18b4a559 for details) - -realtime mlock= (use -overcommit mem-lock= instead) - -spice password=string (use password-string option instead) - -writeconfig (no replacement - never really worked right) - -share and noshare must be replaced by share=on/share=off - -nodelay must be replaced by nodelay=on rather than delay=off - -object-add options opened=on and loaded=on (both had no effect) - -- These previously supported command line options are no longer supported: - -device ide-drive (use ide-hd or ide-cd instead) - -device scsi-disk (use scsi-hd or scsi-cd instead) - -- The previously supported machine types pc-0.12, pc-0.14 and pc-0.15 are no - longer recognized. Switch to a newer machine type. - -- These previously supported command line options are no longer recognized: - -balloon (use -device virtio-balloon instead) - -clock - -device ivshmem (use ivshmem-doorbell or ivshmem-plain instead) - -device pc-sysfw (no longer needed) - -device pci-assign, -device kvm-pci-assign (use -device vfio-pci instead) - -display sdl - -no-frame - -nodefconfig (use -no-user-config instead) - -realtime ... - -sdl - -show-cursor - -virtioconsole (use -device virtconsole instead) - -- Specifying a cpu feature with both "+feature/-feature" and "feature=on/off" - will now cause a warning. The current behavior for this combination where - "+feature/-feature" wins over "feature=on/off", will be changed going forward - so that "+feature" and "-feature" will be synonyms for "feature=on" and - "feature=off" respectively. - -- The case of specified sockets, cores, and threads not matching the vcpu count - is no longer silently ignored. QEMU now requires that the topology match the - vcpu count. - -- The previously supported blkdev-add QMP command has been flagged as lacking - and could possibly change syntax in the future. - -- These previously unsupported command line options are now deprecated: - -no-kvm-pit - -soundhw (use -device ... instead) - -- These previously unsupported command line options are no longer recognized: - -bt - -device at24c-eeprom - -device ccid-card-passthru - -device cfi.pflash01 - -device esp - -device exynos4210-ehci-usb - -device fusbh200-ehci-usb - -device icc-bridge - -device q35-pcihost - -device mch - -device mmio_interface - -device smbus-eeprom - -device SUNW,fdtwo - -device sysbus-ahci - -device sysbus-fdc - -device sysbus-ohci - -device tegra2-ehci-usb - -device testdev (use -device pc-testdev instead) - -device vhost-user-vsock-pci-transitional - -device vhost-vsock-pci-transitional - -device virtio-iommu-pci-transitional - -device virtio-mmio - -device xln,ps7-usb - -enable-hax (use -accel hax instead) - -enable-nesting - -kvm-shadow-memory (use -machine kvm_shadow_mem= instead) - -M mac - -machine mac - -no-kvm-irqchip (use -machine kernel_irqchip=off instead) - -no-kvm-pit - -no-kvm-pit-reinjection (use -global kvm-pit.lost_tick_policy=discard instead) - -nvram - -old-param - -osk - -pcidevice (use -device vfio-pci instead) - -qtest - -semihosting - -tb-size - -tdf (note: mistakenly listed previously as supported) - -xen-create - -- The previously unsupported machine types pc-0.10, pc-0.11, pc-0.13, - pc-1.0, pc-1.1, pc-1.2 and pc-1.3 are are no longer recognized. - -- These previously supported QMP commands are now deprecated: - - -- These previously supported QMP commands are no longer recognized: - info cpustats - block_passwd - change (use blockdev-change-medium or change-vnc-password instead) - cpu-add (use device_add instead) - migrate-set-cache-size (use migrate-set-parameters instead) - migrate_set_downtime (use migrate-set-parameters instead) - migrate_set_speed (use migrate-set-parameters instead) - query-cpus (use query-cpus-fast instead) - query-events - query-migrate-cache-size (use query-migrate-parameters instead) - -- These previously supported monitor commands are now deprecated: - change - -- These previously supported monitor commands are no longer recognized: - info cpustats - block_passwd ... - block_passwd - cpu-add - cpu_set - migrate_set_cache_size - migrate_set_downtime - migrate_set_speed - pci_add (use device_add instead) - pci_del (use device_del instead) - usb_add (use device_add instead) - usb_del (use device_del instead) - -- These previously unsupported monitor command are now deprecated: - - -- These previously unsupported monitor commands are no longer recognized: - acl_add ... - acl_policy ... - acl_remove ... - acl_reset ... - acl_show ... - host_net_add - host_net_remove - -- These previously unsupported QMP commands are now supported under a new name: - x-block-dirty-bitmap-disable (use block-dirty-bitmap-disable instead) - x-block-dirty-bitmap-enable (use block-dirty-bitmap-enable instead) - x-block-dirty-bitmap-merge (use block-dirty-bitmap-merge instead) - x-block-latency-histogram-set (use block-latency-histogram-set instead) - x-blockdev-create (use blockdev-create instead) - x-input-send-event (use input-send-event instead) - -- This previously unsupported QMP commands is no longer recognized: - x-nbd-server-add-bitmap - -- Due to the lack of migration support (mainly due to ahci interface issues) - and other unstable interface issues, earlier versions of the q35 machine type - are not supported in this release. The current q35 machine type is however now - fully supported. - -- Due to upstream's decision to no longer fully support the qed storage format - going forward (since it really provides no benefit over qcow2 and is now no - longer actively maintained upstream), creating qed storage images is no longer - supported and it is highly discouraged to continue using existing qed images. - They should instead be converted to another supported format. - -- If KVM Intel nested virtualization is enabled, and the guest is passed the vmx - feature, then live migration or save/restore is prohibited. - -QEMU Command-Line and Monitor Syntax and Support ------------------------------------------------- - -- The QEMU program command-line syntax is as follows: - qemu-system-i386 [options] [disk_image] - qemu-system-x86_64 [options] [disk_image] - - Where 'options' are taken from the options listed below, and 'disk_image' is - the file system reference to the x86 guest's primary IDE based hard disk - image. This image as well as those used with -drive or -cdrom, may be in the - raw (no format) or qcow2 storage formats, and may be located in files within - the host filesystem, logical volumes, host physical disks, or network based - storage. Read only media may also be accessed via URL style protocol - specifiers. - - Note that as a general rule, as new command line options are added which serve - to replace an older option or interface, you are strongly encouraged to adapt - your usage to the new option. The new option is being introduced to provide - better functionality and usability going forward. In some cases existing - problems or even bugs in older interfaces cannot be fixed due to functional - expectations, but are resolved in the newer interface or option. - This advice includes moving to the most recent machine type (eg pc-i440fx-6.1 - instead of pc-i440fx-6.0) if possible. - -- The following command line options are supported: - -accel ... - -action ... - -add-fd ... - -alt-grab - -append ... - -audio-help - -audiodev - -bios ... - -blockdev ... - -boot ... - -cdrom ... - -chardev ... - -compat ... - -cpu ... (all except host) - -ctrl-grab - -d ... - -daemonize - -debugcon ... - -device - - [isa-serial|isa-parallel|isa-fdc|ide-hd|ide-cd|VGA|cirrus-vga|rtl8139| - usb-hub|usb-ehci|usb-tablet|usb-storage|usb-mouse|usb-kbd| - virtserialport|virtconsole|sga|i82559er|scsi-cd|scsi-hd|scsi-generic| - scsi-block|pci-serial|pci-serial-2x|pci-serial-4x|ich9-ahci| - piix3-usb-uhci|usb-host|usb-serial|usb-wacom-tablet|usb-braille| - usb-net|pci-ohci|piix4-usb-uhci|i6300esb|ib700|qxl|qxl-vga|pvpanic| - vfio-pci|ivshmem-doorbell|ivshmem-plain|pci-bridge|megasas-gen2| - pc-dimm|floppy|e1000e|ccid-card-emulated|ccid-card-passthrough| - xen-backend|loader|e1000-82540em|vmgenid|vmcoreinfo|pcie-pci-bridge| - ich9-usb-ehci1|ich9-usb-ehci2|ich9-usb-uhci1|ich9-usb-uhci2| - ich9-usb-uhci3|ich9-usb-uhci4|ich9-usb-uhci5|ich9-usb-uhci6| - usb-redir|vhost-scsi|vhost-scsi-pci|vhost-user-blk| - vhost-user-blk-pci|vhost-user-blk-pci-non-transitional| - vhost-user-blk-pci-transitional|vhost-user-scsi|vhost-user-scsi-pci| - vhost-user-scsi-pci-non-transitional|vhost-user-pci-transitional| - vhost-vsock-pci|vhost-vsock-pci-non-transitional|virtio-balloon-pci| - virtio-balloon-pci-non-transitional|virtio-balloon-pci-transitional| - virtio-blk-pci|virtio-blk-pci-non-transitional| - virtio-blk-pci-transitional|virtio-net-pci| - virtio-net-pci-non-transitional|virtio-net-pci-transitional| - virtio-9p-pci|virtio-9p-pci-non-transitional| - virtio-9p-pci-transitional|virtio-serial-pci| - virtio-serial-pci-non-transitional|virtio-serial-pci-transitional| - virtio-scsi-pci|virtio-scsi-pci-non-transitional| - virtio-scsi-pci-transitional|virtio-rng-pci| - virtio-rng-pci-non-transitional|virtio-rng-pci-transitional| - virtio-input-host-pci|virtio-input-host-pci-non-transitional| - virtio-input-host-pci-transitional|virtio-keyboard-pci| - virtio-mouse-pci|virtio-tablet-pci|virtio-gpu-pci|virtio-crypto-pci| - virtio-vga|vhost-user-fs-pci|vhost-user-gpu|vhost-user-pci-pci| - vhost-user-input|vhost-user-input-pci|vhost-user-vga|virtio-mmio| - virtio-pmem|virtio-pmem-pci|mc146818rtci|nvme-subsys|guest-loader| - pvpanic-pci] - (the following are aliases of these supported devices: ahci| - e1000|virtio-blk|virtio-net|virtio-serial|virtio-balloon|virtio-9p| - virtio-scsi|virtio-rng|virtio-input-host|virtio-keyboard|virtio-mouse|virtio-tablet|virtio-gpu) - - -dfilter range, ... - -display ... - -drive - - ... (if specified if=[floppy|ide|virtio] and format=[qcow2|raw] and - snapshot=off only) - - -echr ... - -enable-fips - -enable-kvm - -fda/-fdb ... - -fsdev ... - -full-screen - -fw_cfg ... - -gdb ... - -global ... - -h - -hda/-hdb/-hdc/-hdd ... - -help - -incoming ... - -initrd ... - -iscsi ... - -k ... - -kernel ... - -loadvm ... - -m ... - -M - - [help|none|pc-i440fx-1.4|pc-i440fx-1.7|pc-i440fx-2.0|pc-i440fx-2.3| - pc-i440fx-2.6|pc-i440fx-2.9|pc-i440fx-2.11|pc-i440fx-3.1|pc-i440fx-4.2| - pc-i440fx-5.2|pc-i440fx-6.0|pc-i440fx-6.1|pc-q35-2.6|pc-q35-2.9| - pc-q35-2.11|pc-q35-3.1|pc-q35-4.2|pc-q35-5.2|pc-q35-6.0|pc-q35-6.1| - xenfv|xenfv-4.2] - - -machine - - [help|none|pc-i440fx-1.4|pc-i440fx-1.7|pc-i440fx-2.0| - pc-i440fx-2.3|pc-440fx-2.6|pc-i440fx-2.9|pc-i440fx-2.11| - pc-i440fx-3.1|pc-i440fx-4.2|pc-i440fx-5.2|pc-i440fx-6.0| - pc-i440fx-6.1|pc-q35-2.6|pc-q35-2.9|pc-q35-2.11|pc-q35-3.1| - pc-q35-4.2|pc-q35-5.2|pc-q35-6.0|pc-q35-6.1|xenfv|xenifv-4.2] - - -mem-path ... - -mem-prealloc - -mon ... - -monitor ... - -msg ... - -name ... - -net - - [bridge|l2tpv3|nic|none|tap|user] ... (for model= only e1000, rtl8139, - and virtio are supported) - - -netdev [bridge|tap|user] ... - -nic ... - -no-acpi - -nodefaults - -no-fd-bootchk - -nographic - -no-hpet - -no-quit - -no-reboot - -no-shutdown - -no-user-config - -numa cpu ... - -numa dist ... - -object ... - -only-migratable - -parallel ... - -pidfile ... - -plugin ... - -qmp ... - -qmp-pretty ... - -readconfig ... - -rtc ... - -runas ... - -s - -S - -sandbox ... - -seed ... - -serial ... - -smbios ... - -smp ... - -spice - -tpmdev passthrough ... - -trace ... - -usb - -usbdevice [braile|disk|host|mouse|net|serial|tablet] - -uuid ... - -version - -vga [cirrus|none|qxl|std|xenfb] - -virtfs ... - -vnc ... - -watchdog ... - -watchdog-action ... - -writeconfig ... - -xen-attach ... - -xen-domid ... - -xen-domid-restrict ... - -- The following monitor commands are supported: - ? - announce_self ... - balloon ... - block_resize ... - boot_set ... - c - change ... - chardev-add ... - chardev-change ... - chardev-remove ... - chardev-send-break ... - client_migrate_info ... - closefd ... - cont - cpu ... - delvm ... - device_add ... - device_del ... - drive_add ... - drive_backup ... - drive_del ... - dump_guest_memory ... - eject ... - gdbserver ... - gpa2hpa ... - gpa2hva ... - gva2gpa ... - help - i ... - info ... - loadvm ... - logfile ... - logitem ... - mce ... - memsave ... - migrate ... - migrate_cancel - migrate_continue ... - migrate_incoming - migrate_pause - migrate_recover ... - migrate_set_capability ... - migrate_set_parameter ... - migrate_start_post_copy - mouse_button ... - mouse_move ... - mouse_set ... - nmi ... - o ... - object_add ... - object_del ... - p ... - pci_add ... - pci_del... - pmemsave ... - print ... - q - qemu-io ... - qom-list - qom-set - ringbuf_read ... - ringbuf_write ... - savevm ... - screendump ... - sendkey ... - snapshot_blkdev_internal ... - snapshot_delete_blkdev_internal ... - stop - sum ... - system_powerdown - system_reset - system_wakeup - trace-event ... - watchdog_action ... - x ... - xp ... - -- The following QMP commands are supported: - add_client - add-fd - announce-self - balloon - blockdev-add - blockdev-backup - blockdev-change-medium - blockdev-close-tray - blockdev-create - blockdev-del - blockdev-mirror - blockdev-open-tray - blockdev-snapshot - blockdev-snapshot-delete-internal-sync - blockdev-snapshot-internal-sync - blockdev-snapshot-sync - block-commit - block-dirty-bitmap-add - block-dirty-bitmap-clear - block-dirty-bitmap-disable - block-dirty-bitmap-enable - block-dirty-bitmap-merge - block-dirty-bitmap-remove - block-export-add - block-export-del - block-latency-histogram-set - block_resize - block_set_io_throttle - block-set-write-threshold - block_stream - calc-dirty-rate - change-vnc-password - chardev-add - chardev-change - chardev-remove - chardev-send-break - client_migrate_info - closefd - cont - cpu - device_add - device_del - device-list-properties - display-reload - dump-guest-memory - eject - expire_password - getfd - human-monitor-command - inject-nmi - input-send-event - job-cancel - job-complete - job-dismiss - job-finalize - job-pause - job-resume - memsave - migrate - migrate_cancel - migrate-continue - migrate-incoming - migrate-pause - migrate-resume - migrate-set-capabilities - migrate-set-parameters - migrate-start-postcopy - object-add - object-del - pmemsave - qmp_capabilities - qom-get - qom-list - qom-list-types - qom-set - query-acpi-ospm-status - query-balloon - query-block - query-block-exports - query-block-jobs - query-blockstats - query-chardev - query-chardev-backends - query-command-line-options - query-commands - query-cpu-definitions - query-cpu-model-expansion - query-cpus-fast - query-current-machine - query-dirty-rate - query-display-options - query-dump - query-dump-guest-memory-capability - query-fdsets - query-gic-capabilities - query-hotpluggable-cpus - query-iothreads - query-jobs - query-kvm - query-machines - query-memdev - query-memory-devices - query-memory-size-summary - query-mice - query-migrate - query-migrate-capabilities - query-migrate-parameters - query-name - query-named-block-nodes - query-pci - query-pr-managers - query-qmp-schema - query-rocker - query-rocker-of-dpa-flows - query-rocker-of-dpa-groups - query-rocker-ports - query-rx-filter - query-sev - query-sev-capabilities - query-sev-launch-measure - query-spice - query-status - query-target - query-tpm - query-tpm-models - query-tpm-types - query-uuid - query-version - query-vnc - query-vnc-servers - query-yank - query-xen-replication-status - quit - remove-fd - ringbuf-read - ringbuf-write - screendump - send-key - set-action - set_link - set_password - set-numa-node - sev-inject-launch-secret - snapshot-delete - snapshot-load - snapshot-save - stop - system_powerdown - system_reset - system_wakeup - trace-event-get-state - trace-event-set-state - transaction - watchdog-set-action - xen-load-devices-state - xen-save-devices-state - xen-set-global-dirty-log - yank - -- The following command line options are unsupported: - - -acpitable ... - -chroot ... - -cpu host - -curses - -device - - [ipoctal232|i82562|nec-usb-xhci|hda-duplex|hda-output|usb-bot| - lsi53c810a|isa-debug-exit|ne2k_pci|usb-uas|ioh3420|isa-ide|usb-ccid| - pcnet|ich9-intel-hda|dc390|hda-micro|x3130-upstream|isa-cirrus-vga| - pc-testdev|ne2k_isa|isa-vga|cs4231a|gus|vmware-svga|i82801b11-bridge| - i82557a|i82557c|i82557b|i82801|AC97|am53c974|intel-hda|i82558a| - i82558b|usb-audio|i82550|isa-debugcon|sb16|megasas|i82551| - xio3130-downstream|vt82c686b-usb-uhci|tpci200|i82559a|i82559b|i82559c| - isa-applesmc|adlib|ES1370|lsi53c810|nvme|pci-testdev|pvscsi| - virtio-9p-device|virtio-balloon-device|virtio-blk-device| - virtio-net-device|virtio-rng-device|virtio-scsi-device| - virtio-serial-device|vmxnet3|xen-pci-passthrough|xen-platform| - xen-pvdevice|piix3-ide|piix3-ide-xen|piix3-ide|i8042|sdhci-pci| - secondary-vga|edu|intel_iommu|usb-mtp|e1000-82544gc|e1000-82545em| - pci-bridge-seat|pxb|pxb-pcie|rocker|virtio-input-host-device| - virtio-keyboard-device|virtio-mouse-device|virtio-tablet-device| - hyperv-testdev|generic-sdhci|igd-passthrough-isa-bridge| - ipmi-bmc-extern|ipmi-bmc-sim|isa-ipmi-bt|isa-ipmi-kcs|mptsas1068| - nvdimm|pxb-host|sd-card|virtio-gpu-device|amd-iommu|AMDVI-PCI| - vhost-vsock-device|virtio-crypto-device|vfio-pci-igd-lpc-bridge| - pcie-root-port|qemu-xhci|*-i386-cpu|*-x86_64-cpu|pvrdma|bochs-display| - ramfb|ccid-card-emulated|ccid-card-passthru|kvaser_pci|tpm-crb| - mioe3680_pci|pcm3680_pci|hyperv-synic|vfio-pci-nohotplug| - vfio-platform|xen-bridge|xen-cdrom|xen-disk|ati-vga|cpu-cluster| - intel-iommu|vhost-user-fs-device|tulip|ati-vga|i2c-ddc|pci-ipmi-bt| - pci-ipmi-kcs|serial|serial-io|serial-mm|virtio-iommu-device| - virtio-iommu-pci|virtio-iommu-pci-nontransitional|xen-sysdev| - imx.usbphy|vmbus-bridge|vhost-user-vsock-device|vhost-user-vsock-pci| - vhost-user-vsock-pci-non-transitional|virtio-mem|virtio-mem-pci| - nvme-ns|ctucan_pci|u2f-passthru] - (the following are aliases of these unsupported devices: lsi) - (note that some of these device names represent supported devices and - are used internally, but are not specifyable via -device even though - they appear in the list of devices) - - -drive - - ,if=[scsi|mtd|pflash], snapshot=on, format=[anything besides qcow2 or - raw] - - -dtb file - -enable-sync-profile - -g ... - -icount ... - -L ... - -M - - [pc|isapc|microvm|x-remote|pc-i440fx-1.5|pc-i440fx-1.6|pc-i440fx-2.1| - pc-i440fx-2.2|pc-i440fx-2.4|pc-i440fx-2.5|pc-i440fx-2.7|pc-i440fx-2.8| - pc-i440fx-2.10|pc-i440fx-2.12|pc-i440fx-3.0|pc-i440fx-4.0|pc-i440fx-4.1| - pc-i440fx-5.0|pc-i440fx-5.1|pc-i440fx-6.0|q35|pc-q35-1.4|pc-q35-1.5| - pc-q35-1.6|pc-q35-1.7|pc-q35-2.0|pc-q35-2.1|pc-q35-2.2|pc-q35-2.3| - pc-q35-2.4|pc-q35-2.5|pc-q35-2.7|pc-q35-2.8|pc-q35-2.10|pc-q35-2.12| - pc-q35-3.0|pc-q35-4.0|pc-q35-4.1|pc-q35-5.0|pc-q35-5.1|pc-q35-6.0] - - -machine - - [pc|isapc|microvm|x-remote|pc-i440fx-1.5|pc-i440fx-1.6|pc-i440fx-2.1| - pc-i440fx-2.2|pc-i440fx-2.4|pc-i440fx-2.5|pc-i440fx-2.7| - pc-i440fx-2.8|pc-i440fx-2.10|pc-i440fx-2.12|pc-i440fx-3.0| - pc-i440fx-4.0|pc-i440fx-4.1|pc-i440fx-5.0|pc-i440fx-5.1| - pc-i440fx-6.0|q35|pc-q35-1.4|pc-q35-1.5|pc-q35-1.6|pc-q35-1.7| - pc-q35-2.0|pc-q35-2.1|pc-q35-2.2|pc-q35-2.3|pc-q35-2.4|pc-q35-2.5| - pc-q35-2.7|pc-q35-2.8|pc-q35-2.10|pc-q35-2.12|pc-q35-3.0|pc-q35-4.0| - pc-q35-4.1|pc-q35-5.0|pc-q35-5.1|pc-q35-6.0] - - -mtdblock file - -net [socket|vde] ... - -netdev [hubport|l2tpv3|socket|vde] ... - -no-kvm - -numa node ... - -option-rom ... - -overcommit ... - -pflash file - -portrait - -preconfig - -prom-env ... - -qtest ... - -qtest-log ... - -rotate - -sd file - -sdl - -set ... - -singlestep - -snapshot - -soundhw ... - -tpmdev emulator ... - -vga [cg3|tcx|virtio|vmware] - -win2k-hack - -- The following monitor commands are unsupported: - block_job_cancel ... - block_job_complete ... - block_job_pause ... - block_job_resume ... - block_job_set_speed ... - commit ... - drive_mirror ... - exit_preconfig - expire_password ... - hostfwd_add ... - hostfwd_remove ... - nbd_server_add ... - nbd server_start ... - nbd_server_stop ... - netdev_add - netdev_del ... - pcie_aer_inject_error ... - replay_break ... - replay_delete_break - replay_seek ... - set_link ... - set_password ... - singlestep ... - snapshot_blkdev ... - stopcapture ... - sync-profile ... - wavcapture ... - x_colo_lost_heartbeat - -- The following QMP commands are unsupported: - block-job-cancel - block-job-complete - block-job-pause - block-job-resume - block-job-set-speed - change-backing-file - drive-backup - drive-mirror - netdev_add - netdev_del - nbd-server-add - nbd-server-start - nbd-server-stop - query-colo-status - query-replay - replay_break - replay_delete_break - replay_seek - x-blockdev-amend - x-blockdev-change - x-blockdev-insert-medium - x-blockdev-remove-medium - x-blockdev-reopen - x-colo-lost-heartbeat - x-debug-block-dirty-bitmap-sha256 - x-debug-query-block-graph - x-exit-preconfig - xen-colo-do-checkpoint - xen-set-replication diff --git a/tests-change-error-message-in-test-162.patch b/tests-change-error-message-in-test-162.patch deleted file mode 100644 index 8e8343f..0000000 --- a/tests-change-error-message-in-test-162.patch +++ /dev/null @@ -1,29 +0,0 @@ -From: Bruce Rogers -Date: Mon, 11 Mar 2019 22:02:37 -0600 -Subject: tests: change error message in test 162 - -Git-commit: 0000000000000000000000000000000000000000 - -Since we have a quite restricted execution environment, as far as -networking is concerned, we need to change the error message we expect -in test 162. There is actually no routing set up so the error we get is -"Network is unreachable". Change the expected output accordingly. - -Signed-off-by: Bruce Rogers ---- - tests/qemu-iotests/162.out | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/tests/qemu-iotests/162.out b/tests/qemu-iotests/162.out -index f8714cb0d27d2b15d3feaaaf729c..2793aed277903222ea4396157d31 100644 ---- a/tests/qemu-iotests/162.out -+++ b/tests/qemu-iotests/162.out -@@ -1,7 +1,7 @@ - QA output created by 162 - - === NBD === --qemu-img: Could not open 'json:{"driver": "nbd", "host": -1}': address resolution failed for -1:10809: Name or service not known -+qemu-img: Could not open 'json:{"driver": "nbd", "host": 42}': Failed to connect socket: Network is unreachable - image: nbd://localhost:PORT - image: nbd+unix://?socket=42 - diff --git a/tests-qemu-iotests-Triple-timeout-of-i-o.patch b/tests-qemu-iotests-Triple-timeout-of-i-o.patch deleted file mode 100644 index a5f8ed8..0000000 --- a/tests-qemu-iotests-Triple-timeout-of-i-o.patch +++ /dev/null @@ -1,31 +0,0 @@ -From: Bruce Rogers -Date: Tue, 20 Nov 2018 15:46:41 -0700 -Subject: tests/qemu-iotests: Triple timeout of i/o tests due to obs - environment - -Git-commit: 0000000000000000000000000000000000000000 - -Executing tests in obs is very fickle, since you aren't guaranteed -reliable cpu time. Triple the timeout for each test to help ensure -we don't fail a test because the stars align against us. - -Signed-off-by: Bruce Rogers -[DF: Small tweaks necessary for rebasing on top of 6.2.0] -Signed-off-by: Dario Faggioli ---- - tests/qemu-iotests/common.qemu | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/tests/qemu-iotests/common.qemu b/tests/qemu-iotests/common.qemu -index 0f1fecc68edfb07633589b0f3c75..b23c4798aa112efee49cf5c9469e 100644 ---- a/tests/qemu-iotests/common.qemu -+++ b/tests/qemu-iotests/common.qemu -@@ -85,7 +85,7 @@ _timed_wait_for() - timeout=yes - - QEMU_STATUS[$h]=0 -- read_timeout="-t ${QEMU_COMM_TIMEOUT}" -+ read_timeout="-t $((${QEMU_COMM_TIMEOUT}*3))" - if [ -n "${GDB_OPTIONS}" ]; then - read_timeout= - fi diff --git a/update_git.sh b/update_git.sh deleted file mode 100644 index 6b09959..0000000 --- a/update_git.sh +++ /dev/null @@ -1,1098 +0,0 @@ -#!/bin/bash - -set -e - -# update_git.sh: script to manage package maintenance using a git-based -# workflow. Commands are as follows: -# git2pkg (update package spec file and patches from git) -# pkg2git (update git (frombundle branch) from the package "bundleofbundles") -# refresh (refresh spec file from spec file template and "bundlofbundles") -# ci (check-in to obs, avoiding some spec file formatting issues) -# initbundle (Update/Create bundle only) -# -# (default is git2pkg) - -#============================================================================== - -clean_up_temp_dirs() -{ -echo "Cleaning temporary files before exit" -exit -rm -rf $GIT_DIR -rm -rf $CMP_DIR -rm -rf $BUN_DIR -exit -} - -# handle signals gracefully by cleaning the temporary data used before exit -trap clean_up_temp_dirs EXIT - -#============================================================================== - -check_requirements() { - RC=0 - if [[ ! -e ./config.sh ]]; then - echo "ERROR: Missing config.sh configuration script" - RC=1 - fi - if [[ ! $(rpm -q git-core) ]]; then - echo "ERROR: Missing dependency: git-core" - RC=1 - fi - if [[ ! $(rpm -q osc) ]]; then - echo "ERROR: Missing dependency: osc package" - RC=1 - fi - if [[ ! $(rpm -q obs-service-format_spec_file) ]]; then - echo "ERROR: Missing dependency: obs-service-format_spec_file package" - RC=1 - fi - ONE_GIG_IN_1K_BLOCKS=1048576 - AVAIL=$(df --output=avail $TMPDIR | tail -1) - if [[ $AVAIL -lt $ONE_GIG_IN_1K_BLOCKS ]]; then - echo "ERROR: Please provide at least 1GB available space in $TMPDIR" - RC=1 - fi - if [[ "$RC" = "1" ]]; then - echo "Script requires the above resources. Please resolve to use this workflow" - exit - fi -} - -#============================================================================== - -usage() { -echo "Usage:" -echo "bash ./git_update.sh " -echo "description: package maintenance using a git-based workflow. Commands:" -echo " git2pkg (update package spec file and patches from git. Is default)" -echo " pkg2git (update git (frombundle branch) from the package "bundleofbundles")" -echo " refresh (refresh spec file from spec file template and "bundlofbundles")" -echo " ci (check-in to build service, avoiding some spec file formatting issues)" -echo " initbundle (Update/Create bundle only)" -echo "(See script for details on doing 'LATEST' workflow)" -check_requirements -} - -#============================================================================== - -source ./config.sh - -# If you're using LATEST, we assume you are an expert so no basic help provided -if [ "$GIT_UPSTREAM_COMMIT_ISH" != "LATEST" ]; then - if [ "$1" = "" ]; then - set -- git2pkg - else - case $1 in - help | -H | -h ) - usage - exit - ;; - initbundle | git2pkg | pkg2git | refresh | ci) - ;; - * ) - echo "Unknown command" - usage - exit - ;; - esac - fi -fi - -check_requirements - -# As an aid to bypassing issues with our multibuild package and obs (see code -# below following the osc localrun of osc service localrun format_spec_file), -# provide an automated way to checkin without needing to type so much -if [ "$1" = "ci" ]; then - osc ci -f -n --noservice - exit -fi - - -# TODO: Here we should validate the variables that should be set in config.sh - -REPO_COUNT=${#PATCH_PATH_MAP[@]} -if [[ "$REPO_COUNT" != "${#LOCAL_REPO_MAP[@]}" ]]; then - echo "PATCH_PATH_MAP and LOCAL_REPO_MAP array sizes do not agree - please fix" - exit -fi - -check_requirements - -# Zero based numbering, so we subtract 1 here: -if (( (REPO_COUNT * PATCH_RANGE) - 1 > 9999 )); then - if [[ "$OVERRIDE_FIVE_DIGIT_NUMBERING" = "1" ]]; then - FIVE_DIGIT_POTENTIAL=0 - else - FIVE_DIGIT_POTENTIAL=1 - fi -else - FIVE_DIGIT_POTENTIAL=0 -fi - -declare -A COMMIT_IDS_BY_SUBMODULE_PATH - -# Get version info from the packages' tarball - decode and do some checks -BASE_RE="qemu-[[:digit:]]+(\.[[:digit:]]+){2,3}(-rc[[:digit:]])?" -EXTRA_RE="\+git\.[[:digit:]]+\.([[:xdigit:]]+)" -SUFFIX_RE="\.tar\.xz" -SIG_SUFFIX_RE="\.tar\.xz\.sig" -QEMU_TARBALL=($(find -maxdepth 1 -type f -regextype posix-extended -regex \ - "\./$BASE_RE($EXTRA_RE)?$SUFFIX_RE" -printf "%f ")) -QEMU_TARBALL_SIG=($(find -maxdepth 1 -type f -regextype posix-extended -regex \ - "\./$BASE_RE($EXTRA_RE)?$SIG_SUFFIX_RE" -printf "%f ")) - -if [ ${#QEMU_TARBALL[@]} -gt 1 ]; then - echo "Multiple qemu tarballs detected. Please clean up" - exit -fi -if [ ${#QEMU_TARBALL_SIG[@]} -gt 1 ]; then - echo "Multiple qemu tarballs signature files detected. Please clean up" - exit -fi -OLD_SOURCE_VERSION_AND_EXTRA=$(echo $QEMU_TARBALL 2>/dev/null | head --bytes=-8\ - | cut --bytes=6-) -VERSION_EXTRA=$(echo $OLD_SOURCE_VERSION_AND_EXTRA|awk -F+ '{if ($2) print \ - "+"$2}') -if [ "$OLD_SOURCE_VERSION_AND_EXTRA" = "" ]; then - echo "ERROR: No tarball found!" - exit -fi - -#============================================================================== - -initbundle() { -# The bundle tarball has git bundles stored in a directory structure which mimics the -# submodule locations in the containing git repo. Also at that same dir level -# is a file named repo which contains the one line git repo url (with git:// or -# http(s) prefix). The bundles are named as follows: -# "{path/}{git_sha}.{bundle}", where {path/} isn't present for -# the top (qemu) bundle (ie it's for submodules). - -find $GIT_DIR -mindepth 1 -delete -find $BUN_DIR -mindepth 1 -delete -if [[ -e ${LOCAL_REPO_MAP[$i]}/.git/shallow ]]; then - if [[ -e bundles.tar.xz ]]; then - tar --extract --xz -f bundles.tar.xz -C $BUN_DIR . - else - echo "ERROR: Superproject at ${LOCAL_REPO_MAP[$i]} is shallow (so we assume submodules aren't" - echo "recursively checked out), and there is not an existing bundle-of-bundles file, so we cannot" - echo "correctly initialize the packages bundle-of-bundles. Please fully initilize git superproject" - echo "before doing initbundle" - exit - fi -else -#TODO: Is there a better way to do this (we don't want the old bundle commit id's relied on HERE for LATEST) - if [[ "$GIT_UPSTREAM_COMMIT_ISH" = "LATEST" ]]; then - rm bundles.tar.xz - fi - if [[ -e bundles.tar.xz ]]; then - tar --extract --xz -f bundles.tar.xz -C $BUN_DIR . - else - SUBMODULE_COMMIT_IDS=($(git -C ${LOCAL_REPO_MAP[0]} submodule status --recursive| cut -c 2- | awk '{print $1}')) - SUBMODULE_DIRS=($(git -C ${LOCAL_REPO_MAP[0]} submodule status --recursive| cut -c 2- |awk '{print $2}')) - SUBMODULE_COUNT=${#SUBMODULE_COMMIT_IDS[@]} - # TODO: do this with simply math - ie: use (( ... )) - if [[ "$REPO_COUNT" != "$(expr $SUBMODULE_COUNT + 1)" ]]; then - echo "ERROR: submodule count doesn't match what's in config.sh" - exit - fi - for (( i=0; i <$SUBMODULE_COUNT; i++ )); do - mkdir -p $BUN_DIR/${SUBMODULE_DIRS[$i]} - touch $BUN_DIR/${SUBMODULE_DIRS[$i]}/${SUBMODULE_COMMIT_IDS[$i]}.id - done - if [ "$GIT_UPSTREAM_COMMIT_ISH" = "LATEST" ]; then - GIT_UPSTREAM_COMMIT=$NEW_COMMIT_ISH_FULL - else - # TODO: make this smarter, or change something - works for tag, but not normal commit? - GIT_UPSTREAM_COMMIT=$(git -C ${LOCAL_REPO_MAP[0]} show-ref -d $GIT_UPSTREAM_COMMIT_ISH|grep -F "^{}"|awk '{print $1}') - if [[ "$GIT_UPSTREAM_COMMIT" = "" ]]; then - GIT_UPSTREAM_COMMIT=$(git -C ${LOCAL_REPO_MAP[0]} show-ref -d $GIT_UPSTREAM_COMMIT_ISH||awk '{print $1}') - fi - if [[ "$GIT_UPSTREAM_COMMIT" = "" ]]; then - echo "ERROR: Failed to get commit id for $GIT_UPSTREAM_COMMIT_ISH" - exit - fi - fi - touch $BUN_DIR/$GIT_UPSTREAM_COMMIT.id - fi -fi - -# Now go through all the submodule local repos that are present with a $GIT_BRANCH and create a bundle file for the patches found -for (( i=0; i <$REPO_COUNT; i++ )); do - if [[ -e $(readlink -f ${LOCAL_REPO_MAP[$i]}) ]]; then - SUBDIR=${PATCH_PATH_MAP[$i]} - GITREPO_COMMIT_ISH=($BUN_DIR/$SUBDIR*.id) - if [[ $GITREPO_COMMIT_ISH =~ .*(.{40})[.]id ]]; then - GITREPO_COMMIT_ISH=${BASH_REMATCH[1]} - echo "Using $GITREPO_COMMIT_ISH" - PATCH_RANGE_INDEX=$i - mkdir -p $GIT_DIR/$SUBDIR - git -C $GIT_DIR/$SUBDIR -c init.defaultBranch=$GIT_BRANCH init - git -C $GIT_DIR/$SUBDIR remote add origin file://$(readlink -f \ - ${LOCAL_REPO_MAP[$PATCH_RANGE_INDEX]}) - if [[ $(git -C $GIT_DIR/$SUBDIR ls-remote --heads origin $GIT_BRANCH) ]]; then - git -C $GIT_DIR/$SUBDIR fetch --update-shallow origin $GIT_BRANCH - if [[ $(git -C $GIT_DIR/$SUBDIR rev-list $GITREPO_COMMIT_ISH..FETCH_HEAD) ]]; then - git -C $GIT_DIR/$SUBDIR bundle create $BUN_DIR/$SUBDIR$GITREPO_COMMIT_ISH.bundle $GITREPO_COMMIT_ISH..FETCH_HEAD -#TODO: post-process repo info to avoid un-needed diffs (eg git vs https) - git -C $(readlink -f ${LOCAL_REPO_MAP[$PATCH_RANGE_INDEX]}) remote get-url origin >$BUN_DIR/$SUBDIR/repo - else - local localbundle="$BUN_DIR/$SUBDIR$GITREPO_COMMIT_ISH.bundle" - if [[ -f "$localbundle" ]]; then - echo "Removing existing $localbundle" - rm "$localbundle" - fi - fi - fi - fi - fi -done -# parameters chosen to allow bundle tarball exact reproducibility -tar --format gnu --xz \ - --sort=name \ - --numeric-owner \ - --owner=0 \ - --group=0 \ - --mtime="@$(date -r qemu-$SOURCE_VERSION$VERSION_EXTRA.tar.xz +%s)" \ - --create \ - -f bundles.tar.xz -C $BUN_DIR . - find $BUN_DIR -mindepth 1 -delete - find $GIT_DIR -mindepth 1 -delete -} - -#============================================================================== - -bundle2local() { - find $BUN_DIR -mindepth 1 -delete -tar xJf bundles.tar.xz -C $BUN_DIR -ID_FILES=$(find $BUN_DIR -printf "%P\n"|grep "id$") - -for entry in ${ID_FILES[@]}; do - if [[ $entry =~ ^(.*)[/]*([a-f0-9]{40})[.]id$ ]]; then - SUBDIR=${BASH_REMATCH[1]} - GITREPO_COMMIT_ISH=${BASH_REMATCH[2]} - else - echo "ERROR! BAD BUNDLE CONTENT!" - exit - fi - for (( i=0; i <$REPO_COUNT; i++ )); do - if [[ "$SUBDIR" = "${PATCH_PATH_MAP[$i]}" ]]; then - PATCH_RANGE_INDEX=$i - break - fi - done - if [[ "$i" = "REPO_COUNT" ]]; then - echo "ERROR! BUNDLE SUBPROJECT $SUBDIR NOT MENTIONED IN config.sh! Fix!" - exit - fi - - LOCAL_REPO=$(readlink -f ${LOCAL_REPO_MAP[$PATCH_RANGE_INDEX]}) - if [ -e $LOCAL_REPO ]; then - git -C $LOCAL_REPO remote remove bundlerepo || true - if [ -e $BUN_DIR/$SUBDIR/$GITREPO_COMMIT_ISH.bundle ]; then - git -C $LOCAL_REPO remote add bundlerepo $BUN_DIR/$SUBDIR/$GITREPO_COMMIT_ISH.bundle - git -C $LOCAL_REPO fetch bundlerepo FETCH_HEAD - git -C $LOCAL_REPO branch -f frombundle FETCH_HEAD - git -C $LOCAL_REPO remote remove bundlerepo - else - # It's problematic to leave "stale" frombundle branches around - git -C $LOCAL_REPO branch -D frombundle || true - fi - else - if [ -e $BUN_DIR/$SUBDIR/$GITREPO_COMMIT_ISH.bundle ]; then - # TODO: We should be able to handle this case with some more coding, but for now... - echo "No local repo $LOCAL_REPO available to process git bundle!" - if [ "$GIT_UPSTREAM_COMMIT_ISH" = "LATEST" ]; then - echo "The above is FATAL when doing LATEST processing - please fix" - exit - else - echo "Moving on..." - fi - fi - fi -done -find $BUN_DIR -mindepth 1 -delete -} - -#============================================================================== - -redo_tarball_and_rebase_patches() { - find $GIT_DIR -mindepth 1 -delete - -#!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -# CREATE TARBALL, USING FRESH REPO - WE COULD RELY MORE ON LOCAL IF WE WERE MORE CAREFUL -#!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - -# TODO: WHAT IS THIS NEXT LINE EVEN DOING FOR US?? (OK, it's initing a repo, what do we rely on there?) -# Here, the branch doesn't really matter, and we're not relying on a master branch - we're just making sure we are grabbing latest from upstream -# (while using a clone of "something close" as a way to quickly get most objects available as quickly as possible) -git clone -ls ${LOCAL_REPO_MAP[0]} -b $GIT_BRANCH --single-branch $GIT_DIR #&>/dev/null -echo "Please wait..." -(cd $GIT_DIR && git remote add upstream \ -$UPSTREAM_GIT_REPO &>/dev/null) -(cd $GIT_DIR && git remote update upstream &>/dev/null) -(cd $GIT_DIR && git reset --hard --recurse-submodules $NEW_COMMIT_ISH &>/dev/null) -# As an alternative, we could add a --recurse-submodules to the checkout instead here as well, right? -#UPSTREAM DOESNT DO THIS (time takes 17 minutes!): -# (cd $GIT_DIR && git submodule update --init --recursive &>/dev/null) -#INSTEAD THESE NEXT TWO LINES ARE WHAT IS DONE (these take 9 minutes and 3 minutes respectively): -(cd $GIT_DIR && git submodule update --init &>/dev/null) -(cd $GIT_DIR/roms/edk2 && git submodule update --init &>/dev/null) -VERSION_EXTRA=+git.$NOW_SECONDS.$NEW_COMMIT_ISH -if (cd ${LOCAL_REPO_MAP[0]} && git describe --exact-match $NEW_COMMIT_ISH \ - &>/dev/null); then - if [ "$X" = "50" ]; then - echo "Ignoring non-standard tag" - else -# there is no VERSION_EXTRA - VERSION_EXTRA= - fi -fi -(cd $GIT_DIR/roms/seabios && git describe --tags --long --dirty > \ - .version) -(cd $GIT_DIR/roms/skiboot && ./make_version.sh > .version) -echo "Almost there..." -tar --exclude=.git --transform "s,$GIT_DIR,qemu-$SOURCE_VERSION," \ - -Pcf qemu-$SOURCE_VERSION$VERSION_EXTRA.tar $GIT_DIR -osc rm --force qemu-$OLD_SOURCE_VERSION_AND_EXTRA.tar.xz &>/dev/null ||\ - true -osc rm --force qemu-$OLD_SOURCE_VERSION_AND_EXTRA.tar.xz.sig \ - &>/dev/null || true -unset QEMU_TARBALL_SIG -xz -T 0 qemu-$SOURCE_VERSION$VERSION_EXTRA.tar -osc add qemu-$SOURCE_VERSION$VERSION_EXTRA.tar.xz - -#!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -# GET THE SUBMODULE COMMIT ID'S FROM THIS NEWLY MINTED QEMU CHECKOUT. WE'LL USE THAT WHEN WE REBASE OUR PATCHES -#!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - -# !! We (perhaps temporarily) do MORE recursive submodules, since we are tracking ALL in these scripts, while upstream doesn't include all in tarball currently -# !!! THIS IS AT LEAST PARTLY REDUNDANT WITH THE update --init DONE ABOUT 30 LINES AGO -(cd $GIT_DIR && git submodule update --init --recursive &>/dev/null) -SUBMODULE_COMMIT_IDS=($(git -C $GIT_DIR submodule status --recursive|awk '{print $1}')) -SUBMODULE_DIRS=($(git -C $GIT_DIR submodule status --recursive|awk '{print $2}')) -SUBMODULE_COUNT=${#SUBMODULE_COMMIT_IDS[@]} -# TODO: do this with simply math - ie: use (( ... )) -if [[ "$REPO_COUNT" != "$(expr $SUBMODULE_COUNT + 1)" ]]; then - echo "ERROR: submodule count doesn't match the REPO_COUNT variable in config.sh file!" - exit -fi -# We have the submodule commits, but not in the PATCH ORDER which our config.sh has (see $PATCH_PATH_MAP) -for (( i=0; i <$REPO_COUNT-1; i++ )); do - COMMIT_IDS_BY_SUBMODULE_PATH[${SUBMODULE_DIRS[$i]}/]=${SUBMODULE_COMMIT_IDS[$i]} -done -COMMIT_IDS_BY_SUBMODULE_PATH[SUPERPROJECT]=$NEW_COMMIT_ISH_FULL - -#!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -# MOVE BUNDLE COMMITS OVER TO LOCAL frombundle BRANCH -#!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - -bundle2local - -#!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -# REBASE $GIT_BRANCH's on latest COMMIT_IDS_FROM_SUBMODULE_PATH, after reseting branch to frombundle branch -#!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - -for (( i=0; i <$REPO_COUNT; i++ )); do - if [[ -e $(readlink -f ${LOCAL_REPO_MAP[$i]}) ]]; then - if $(git -C ${LOCAL_REPO_MAP[$i]} branch | grep -F "frombundle" >/dev/null); then - SUBDIR=${PATCH_PATH_MAP[$i]} - git -C ${LOCAL_REPO_MAP[$i]} checkout -B $GIT_BRANCH frombundle - if [[ "$SUBDIR" = "" ]]; then - SUBDIR=SUPERPROJECT - fi - if ! $(git -C ${LOCAL_REPO_MAP[$i]} rebase ${COMMIT_IDS_BY_SUBMODULE_PATH[$SUBDIR]} >/dev/null); then - echo "Rebase of ${LOCAL_REPO_MAP[$i]}, branch $GIT_BRANCH needs manual help" - REBASE_FAILS="${LOCAL_REPO_MAP[$i]} $REBASE_FAILS" - fi - fi - fi -done -} - -#============================================================================== - -bundle2spec() { -rm -f checkpatch.log -rm -f checkthese -rm -rf checkdir -rm -rf savedir -find $GIT_DIR -mindepth 1 -delete -find $CMP_DIR -mindepth 1 -delete -find $BUN_DIR -mindepth 1 -delete -mkdir savedir - -#!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -# Handle case of casual user missing local repos. -# To support this, we must grok the spec file's -# list of patches for "reuse" in case we don't -# have local repo to use for extracting bundle -# contents. (here we assume the existing bundle -# would then still correspond to the patches -# listed in spec file for that repo) -# WARNING: -# The following groking expects the patch section -# to be as this script lays it out, not modified! -#!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -declare -a PATCHES_BY_SUBMODULE_PATH -IN_PATCH_SECTION=0 -INDEX=$REPO_COUNT # "invalid" since zero based index of objects < one based count of objects -while IFS= read -r line; do - if [[ "$line" = "# Patches applied in base project:" ]]; then - IN_PATCH_SECTION=1 - INDEX=0 # base project is 0 by definition - continue - fi - if [[ "$line" =~ ^..Patches.applied.in.(.*)/:$ ]]; then - REPO="${BASH_REMATCH[1]}/" - IN_PATCH_SECTION=1 - for (( i=0; i <$REPO_COUNT; i++ )); do - if [[ "$REPO" = "${PATCH_PATH_MAP[$i]}" ]]; then - if [[ "$INDEX" != "$REPO_COUNT" ]]; then - PATCHES_BY_SUBMODULE_PATH[$INDEX]=$ACCUMULATED_PATCHES - unset ACCUMULATED_PATCHES - fi - INDEX=$i - break - fi - done - if [[ "$INDEX" = "$REPO_COUNT" ]]; then - echo "ERROR: Failure groking spec file for patches!" - exit - fi - continue - fi - if [[ "$IN_PATCH_SECTION" = "0" ]]; then - continue - fi - if [[ "$line" =~ ^$ ]]; then - PATCHES_BY_SUBMODULE_PATH[$INDEX]=$ACCUMULATED_PATCHES - break; - fi - if [[ "$line" =~ ^#?Patch[0-9]*:[\ ]*(.*)$ ]]; then - PATCH="${BASH_REMATCH[1]}" - #echo "Patch is $PATCH" - ACCUMULATED_PATCHES="$ACCUMULATED_PATCHES $PATCH" - continue - fi - echo "ERROR: Failure groking spec file for patches!" - exit -done < $PKG.spec - -#!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -# CONVERT BUNDLES INTO COMMITS AND FILL SPEC FILE -#!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - -tar xJf bundles.tar.xz -C $BUN_DIR -BUNDLE_FILES=$(find $BUN_DIR -printf "%P\n"|grep "bundle$") - -for entry in ${BUNDLE_FILES[@]}; do - if [[ $entry =~ ^(.*)[/]*([a-f0-9]{40})[.]bundle$ ]]; then - SUBDIR=${BASH_REMATCH[1]} - GITREPO_COMMIT_ISH=${BASH_REMATCH[2]} - else - echo "ERROR! BAD BUNDLE CONTENT!" - exit - fi - for (( i=0; i <$REPO_COUNT; i++ )); do - if [[ "$SUBDIR" = "${PATCH_PATH_MAP[$i]}" ]]; then - PATCH_RANGE_INDEX=$i - break - fi - done - - if [[ -e $(readlink -f ${LOCAL_REPO_MAP[$PATCH_RANGE_INDEX]}) ]]; then - mkdir -p $GIT_DIR/$SUBDIR - git -C $GIT_DIR/$SUBDIR -c init.defaultBranch=$GIT_BRANCH init - git -C $GIT_DIR/$SUBDIR remote add origin file://$(readlink -f \ - ${LOCAL_REPO_MAP[$PATCH_RANGE_INDEX]}) - # This tag reference, was added to resolve $GITREPO_COMMIT_ISH, which is tag as commit-id - # Since origin may be shallow, we need to use the --update-shallow option - git -C $GIT_DIR/$SUBDIR fetch --update-shallow origin $GIT_BRANCH - git -C $GIT_DIR/$SUBDIR remote add bundle $BUN_DIR/$entry - git -C $GIT_DIR/$SUBDIR fetch bundle FETCH_HEAD - git -C $GIT_DIR/$SUBDIR format-patch -N --suffix= --no-renames -o $CMP_DIR -k --stat=72 \ - --indent-heuristic --zero-commit --no-signature --full-index \ - --src-prefix=a/$SUBDIR --dst-prefix=b/$SUBDIR \ - --start-number=$(expr $PATCH_RANGE_INDEX \* $PATCH_RANGE) \ - $GITREPO_COMMIT_ISH..FETCH_HEAD > /dev/null - PATCHES_BY_SUBMODULE_PATH[$PATCH_RANGE_INDEX]="" - else -# TODO: This doesn't handle numbered patches yet - COUNTER=$(expr $PATCH_RANGE_INDEX \* $PATCH_RANGE) - for patchname in ${PATCHES_BY_SUBMODULE_PATH[$PATCH_RANGE_INDEX]}; do - VALUE="0000"$COUNTER - if [ "$FIVE_DIGIT_POTENTIAL" = "1" ]; then - PREFIX=$(echo $VALUE|tail -c 6) - else - PREFIX=$(echo $VALUE|tail -c 5) - fi - if [[ "$NUMBERED_PATCHES" = "0" ]]; then - cp $patchname savedir/$PREFIX-$patchname - else - cp $patchname savedir/$patchname - fi - let COUNTER+=1 - done - fi -done - -find $GIT_DIR -mindepth 1 -delete -find $BUN_DIR -mindepth 1 -delete - -( - CHANGED_COUNT=0 - UNCHANGED_COUNT=0 - DELETED_COUNT=0 - ADDED_COUNT=0 - TOTAL_COUNT=0 - - shopt -s nullglob - - for i in $CMP_DIR/*; do -# index line isn't consistent, so cut full index to normal line length - sed -E -i 's/(^index [a-f0-9]{28})[a-f0-9]{12}([.][.][a-f0-9]{28})[a-f0-9]{12}( [0-9]{6}$)/\1\2\3/' $i - BASENAME=$(basename $i) - if [ "$FIVE_DIGIT_POTENTIAL" = "1" ]; then - if [[ "$BASENAME" =~ ^[[:digit:]]{5}.* ]]; then - : - else - BASENAME=0"$BASENAME" - fi - fi - if [[ "$NUMBERED_PATCHES" = "0" ]]; then - KEEP_COUNT=40+4+$FIVE_DIGIT_POTENTIAL+1 - else - KEEP_COUNT=40 - fi - tail -n +2 $i > $CMP_DIR/"${BASENAME:0:$KEEP_COUNT}".patch - rm $i - done - cp savedir/* $CMP_DIR/ || true - rm -rf savedir -# 4 digit xxxx-name used in the dest (remember that if 5 digit potential, then if not now 5 digit, add a 0 in front) - - if [[ "$NUMBERED_PATCHES" = "0" ]]; then - for i in [0-9][0-9][0-9][0-9]*-*.patch; do - osc rm --force "$i" - done -# make sure that w/out the numbered prefixes, the patchnames are all unique - mkdir checkdir - for i in $CMP_DIR/*; do - BASENAME=$(basename $i) - FINALNAME="${BASENAME:4+$FIVE_DIGIT_POTENTIAL+1:40+1+5}" - if [[ -e checkdir/"$FINALNAME" ]]; then - echo "ERROR! Patch name $FINALNAME is not unique! Please modify patch subject to achieve uniqueness" - exit 1 - fi - cp $i checkdir/"$FINALNAME" - done - CHECK_DIR=checkdir - cp $CMP_DIR/*.patch . - else - CHECK_DIR=$CMP_DIR - fi - if [ "$FIVE_DIGIT_POTENTIAL" = "0" ]; then - CHECK_PREFIX="0" - NUMBERED_PATCH_RE="^[[:digit:]]{4}-.*[.]patch$" - else - CHECK_PREFIX="00" - NUMBERED_PATCH_RE="^[[:digit:]]{5}-.*[.]patch$" - fi - for i in $CHECK_DIR/*; do - BASENAME=$(basename $i) - if [ -e "$BASENAME" ]; then - if cmp -s "$i" "$BASENAME"; then - touch --reference="$BASENAME" "$i" - rm "$BASENAME" - let UNCHANGED_COUNT+=1 - else - if [ "${BASENAME:0:1+$FIVE_DIGIT_POTENTIAL}" = "$CHECK_PREFIX" ]; then - echo "$BASENAME" >> checkthese - fi - rm $BASENAME - let CHANGED_COUNT+=1 - let TOTAL_COUNT+=1 - fi - else - echo " $BASENAME" >> qemu.changes.added - if [ "${BASENAME:0:1+$FIVE_DIGIT_POTENTIAL}" = "$CHECK_PREFIX" ]; then - echo "$BASENAME" >> checkthese - fi - let ADDED_COUNT+=1 - let TOTAL_COUNT+=1 - fi - done - for i in *.patch; do - if [[ "$i" =~ $NUMBERED_PATCH_RE ]]; then - if [[ "$NUMBERED_PATCHES" = "1" ]]; then - osc rm --force $i - echo " $i" >> qemu.changes.deleted - let DELETED_COUNT+=1 - let TOTAL_COUNT+=1 - fi - else - osc rm --force $i - echo " $i" >> qemu.changes.deleted - let DELETED_COUNT+=1 - let TOTAL_COUNT+=1 - fi - done - mv $CHECK_DIR/* . - if [ -e qemu.changes.added ]; then - xargs osc add < qemu.changes.added - fi - - if [[ -e checkthese ]]; then - tar Jxf qemu-$SOURCE_VERSION$VERSION_EXTRA.tar.xz \ - qemu-$SOURCE_VERSION/scripts/checkpatch.pl --strip-components=2 - for i in $(cat checkthese); do - ./checkpatch.pl --no-tree --terse --no-summary --summary-file \ - --patch $i >> checkpatch.log || true - done - fi - rm -f checkthese - rm -f checkpatch.pl - if [ -s checkpatch.log ]; then - echo "WARNING: Issues reported by qemu patch checker. Please handle" \ - "ERROR items now:" - cat checkpatch.log - fi - rm -f checkpatch.log - if [ "$TOTAL_COUNT" != "0" -a "$VERSION_EXTRA" != "" -a "$OLD_COMMIT_ISH" =\ - "$NEW_COMMIT_ISH" ]; then -# Only patches changed: update the version using current timestamp - VERSION_EXTRA=+git.$NOW_SECONDS.$OLD_COMMIT_ISH - osc mv qemu-$OLD_SOURCE_VERSION_AND_EXTRA.tar.xz \ - qemu-$SOURCE_VERSION$VERSION_EXTRA.tar.xz - osc add qemu-$SOURCE_VERSION$VERSION_EXTRA.tar.xz - fi - - echo "QEMU version file: $QEMU_VERSION" - echo "QEMU source version: $SOURCE_VERSION" - echo "QEMU version extra: $VERSION_EXTRA" - -# get rid of "rel-" prefix to the seabios version - keep any trailing git info, such as: "-44-g88ab0c1" - SEABIOS_VERSION=${SEABIOS_VERSION:-$(tar JxfO qemu-$SOURCE_VERSION$VERSION_EXTRA.tar.xz \ - qemu-$SOURCE_VERSION/roms/seabios/.version | cut -c5- | tr '-' '_')} - - for package in $PKG; do - while IFS= read -r line; do - if [ "$line" = "PATCH_FILES" ]; then - SPNUM=1000 - SP_PATCHES=$(mktemp /tmp/sp-patches-XXXX) -# Here (and other places below) we try to get ONLY the numbered patches, but it's possible some ACTUAL patch name actually starts with multiple digits, but EXTREMELY unlikely -# TODO: do this better! - for i in [0-9][0-9][0-9][0-9]*-*.patch; do - COMMENT="" - if grep "^Include-If: " $i &> /dev/null ; then - COMMENT="#" - if [[ "$NUMBERED_PATCHES" = "0" ]]; then - PATCH_NUMBER=${i%%-*} - echo -e "Source$SPNUM: ${i:${#PATCH_NUMBER}+1:40+1+5}" >> $SP_PATCHES - else - echo -e "Source$SPNUM: $i" >> $SP_PATCHES - fi - SPNUM=$((SPNUM+1)) - fi - NUM=${i%%-*} - DIV=$((10#$NUM/$PATCH_RANGE)) - REM=$((10#$NUM%$PATCH_RANGE)) - if [[ "$REM" = "0" ]]; then - if [[ "$DIV" = "0" ]]; then - echo "# Patches applied in base project:" - else - echo "# Patches applied in ${PATCH_PATH_MAP[$DIV]}:" - fi - fi - if [[ "$FIVE_DIGIT_POTENTIAL" != "0" ]]; then - if [[ "$NUMBERED_PATCHES" = "0" ]]; then - PATCH_NUMBER=${i%%-*} - echo -e "${COMMENT}Patch$NUM: ${i:${#PATCH_NUMBER}+1:40+1+5}" - else - echo -e "${COMMENT}Patch$NUM: $i" - fi - else - if [[ "$NUMBERED_PATCHES" = "0" ]]; then - PATCH_NUMBER=${i%%-*} - echo -e "${COMMENT}Patch$NUM: ${i:${#PATCH_NUMBER}+1:40+1+5}" - else - echo -e "${COMMENT}Patch$NUM: $i" - fi - fi - done - - echo - echo "# Patches that will be applied directly across the spec file" - cat $SP_PATCHES - elif [ "$line" = "PATCH_EXEC" ]; then - unset PREV_S - for i in [0-9][0-9][0-9][0-9]*-*.patch; do - S=$(grep "^Include-If: " $i) || true - NUM=${i%%-*} - if [ "$PREV_S" != "" -a "$PREV_S" != "$S" ]; then - echo "%endif" - fi - if [ "$S" != "" -a "$S" != "$PREV_S" ]; then - echo "${S:12}" - fi - echo "%patch$NUM -p1" - PREV_S=$S - done - if [ "$PREV_S" != "" ]; then - echo "%endif" - fi - elif [ "$line" = "INSERT_VERSIONING" ]; then - echo "%define qemuver $QEMU_VERSION$VERSION_EXTRA" - echo "%define srcver $SOURCE_VERSION$VERSION_EXTRA" - # For SLE11, where seabios isn't in the qemu tarball: - if [[ "$SEABIOS_VERSION" != "" ]]; then - echo "%define sbver $SEABIOS_VERSION" - fi - elif [[ "$line" =~ ^Source: ]]; then - echo "$line" - if [ ${#QEMU_TARBALL_SIG[@]} -eq 1 ]; then -# We assume the signature file corresponds - just add .sig - echo "$line.sig"|sed 's/^Source: /Source99:/' - fi - else - echo "$line" - fi - done < $package.spec.in > $CMP_DIR/$package.spec - if cmp -s $package.spec $CMP_DIR/$package.spec; then - echo "$package.spec unchanged" - else - mv $CMP_DIR/$package.spec $package.spec - echo "$package.spec regenerated" - let PACKAGE_CHANGED_COUNT+=1 - fi - - if [ "$WRITE_LOG" = "1" ]; then -# Factory requires all deleted and added patches to be mentioned - if [ -e qemu.changes.deleted ]; then - echo "* Patches dropped:" >> $package.changes.proposed - cat qemu.changes.deleted >> $package.changes.proposed - fi - if [ -e qemu.changes.added ]; then - echo "* Patches added:" >> $package.changes.proposed - cat qemu.changes.added >> $package.changes.proposed - fi - if [ -e $package.changes.proposed ]; then - osc vc --file=$package.changes.proposed $package - rm -f $package.changes.proposed - fi - fi - done - if [[ "$NUMBERED_PATCHES" = "0" ]]; then - rm -f [0-9][0-9][0-9][0-9]*-*.patch - fi - if [ -e qemu.changes.deleted ]; then - rm -f qemu.changes.deleted - fi - if [ -e qemu.changes.added ]; then - rm -f qemu.changes.added - fi - echo "git patch summary" - echo " unchanged: $UNCHANGED_COUNT" - echo " changed: $CHANGED_COUNT" - echo " deleted: $DELETED_COUNT" - echo " added: $ADDED_COUNT" -) - -find $CMP_DIR -mindepth 1 -delete -rm -rf checkdir - -osc service localrun format_spec_file || true -# Repair what I feel is incorrect modification of the package name in the header. -# Be aware that when checking into build service you should use --noservice, since we've -# already run this and --noservice will prevent the modification from happening at checkin -# time. -sed -i 's/^# spec file for package '$PKG'%{name_suffix}$/# spec file for package '$PKG'/g' $PKG.spec -sed -i 's/^# spec file for package '$PKG'-linux-user$/# spec file for package '$PKG'/g' $PKG.spec -} - -#============================================================================== - -setup_common_vars() { -if [ "$GIT_UPSTREAM_COMMIT_ISH" = "LATEST" ]; then - QEMU_VERSION=$(git -C ${LOCAL_REPO_MAP[0]} show upstream/master:VERSION) - MAJOR_VERSION=$(echo $QEMU_VERSION|awk -F. '{print $1}') - MINOR_VERSION=$(echo $QEMU_VERSION|awk -F. '{print $2}') - X=$(echo $QEMU_VERSION|awk -F. '{print $3}') -# 0 = release, 50 = development cycle, 90..99 equate to release candidates - if [ "$X" != "0" -a "$X" != "50" ]; then - if [ "$NEXT_RELEASE_IS_MAJOR" = "0" ]; then - SOURCE_VERSION=$MAJOR_VERSION.$[$MINOR_VERSION+1].0-rc$[X-90] - GIT_BRANCH=opensuse-$MAJOR_VERSION.$[$MINOR_VERSION+1] - else - SOURCE_VERSION=$[$MAJOR_VERSION+1].0.0-rc$[X-90] - GIT_BRANCH=opensuse-$[$MAJOR_VERSION+1].0 - fi - else - SOURCE_VERSION=$MAJOR_VERSION.$MINOR_VERSION.$X - if [ "$X" = "0" ]; then - GIT_BRANCH=opensuse-$MAJOR_VERSION.$[$MINOR_VERSION] - else - if [ "$NEXT_RELEASE_IS_MAJOR" = "0" ]; then - GIT_BRANCH=opensuse-$MAJOR_VERSION.$[$MINOR_VERSION+1] - else - GIT_BRANCH=opensuse-$[MAJOR_VERSION+1].0 - fi - fi - fi -else - SOURCE_VERSION=$OLD_SOURCE_VERSION_AND_EXTRA - QEMU_VERSION=$(tar JxfO qemu-$SOURCE_VERSION$VERSION_EXTRA.tar.xz qemu-$SOURCE_VERSION/VERSION) - if [ ! "$QEMU_VERSION" = "$OLD_SOURCE_VERSION_AND_EXTRA" ]; then - echo "Tarball name (which we decode) doesn't correspond to the VERSION file contained therein" - exit - fi - MAJOR_VERSION=$(echo $QEMU_VERSION|awk -F. '{print $1}') - MINOR_VERSION=$(echo $QEMU_VERSION|awk -F. '{print $2}') - GIT_BRANCH=opensuse-$MAJOR_VERSION.$MINOR_VERSION -fi -} - -#============================================================================== - -# cleanup directories from any previous failed run: -rm -rf ${TMPDIR}/qemu-???????-git-dir -rm -rf ${TMPDIR}/qemu-???????-cmp-dir -rm -rf ${TMPDIR}/qemu-???????-bun-dir -# Temporary directories used in this script -GIT_DIR=$(mktemp -d ${TMPDIR}/qemu-XXXXXXX-git-dir) -CMP_DIR=$(mktemp -d ${TMPDIR}/qemu-XXXXXXX-cmp-dir) -BUN_DIR=$(mktemp -d ${TMPDIR}/qemu-XXXXXXX-bun-dir) - -if [[ ! -e $(readlink -f ${LOCAL_REPO_MAP[0]}) ]]; then - echo "No local repo found at ${LOCAL_REPO_MAP[0]}" - if [ "$GIT_UPSTREAM_COMMIT_ISH" = "LATEST" ]; then - echo "Using LATEST config.sh setting is an expert mode. Set up local repos accordingly" - exit - fi - read -p "Would you like me to set that up for you? (Y/N)" -n 1 -r - echo - if [[ $REPLY =~ ^[Yy]$ ]]; then - echo "Got an affirmative answer, proceeding..." - setup_common_vars - git -c init.defaultBranch=$GIT_BRANCH init ${LOCAL_REPO_MAP[0]} - git -C ${LOCAL_REPO_MAP[0]} remote add origin $PACKAGE_MAIN_GIT_REPO &>/dev/null - git -C ${LOCAL_REPO_MAP[0]} fetch origin +refs/tags/initial:refs/tags/initial --no-tags - git -C ${LOCAL_REPO_MAP[0]} reset --hard --recurse-submodules initial -#TODO: The next is not actually used - get rid of when we decide for sure it won't get used - GIT_UPSTREAM_COMMIT=$(git -C ${LOCAL_REPO_MAP[0]} ls-remote origin |grep -F "$GIT_UPSTREAM_COMMIT_ISH^{}"|awk '{print $1}') -# Here we've changed to use *COMMIT_ISH, not *_COMMIT - is that an issue? - git -C ${LOCAL_REPO_MAP[0]} fetch --depth=1 origin +refs/tags/$GIT_UPSTREAM_COMMIT_ISH:refs/tags/$GIT_UPSTREAM_COMMIT_ISH --no-tags - git -C ${LOCAL_REPO_MAP[0]} remote add upstream $UPSTREAM_GIT_REPO &>/dev/null - bundle2local - git -C ${LOCAL_REPO_MAP[0]} checkout -B $GIT_BRANCH frombundle - echo "We set up a shallow local repo of the package's git superproject at" - echo "${LOCAL_REPO_MAP[0]}, and initialized it from the bundle." - echo "(no options processed)" - echo "If you wish to make the repo complete for all qemu packaging work," - echo "unshallow it first with git fetch --unshallow origin --all, then get" - echo "the submodules updated with git submodule update --init --recursive" - echo "Be aware that this downloads a LOT of data (that's why we didn't just" - echo "do that automatically. Then you may also fetch other branches from the" - echo "origin remote, and get the latest upstream patches from the upstream" - echo "remote. Refer to config.sh for submodule repos locations you can set" - echo "up to also work on patches for the superproject's submodules." - exit - else - echo "Script requires qemu superproject local git repo. Please provide in" - echo "order to use this script." - fi - exit -fi -# TODO: Perhaps useful: get the current state of the git superproject -# The following sends output to stdout which we don't want to see -#git -C ${LOCAL_REPO_MAP[0]} status --untracked-files=no --branch --porcelain=2 \ -# | awk '{print "var"NR"="$3}' -# $var1 is the current commit -# $var2 is the current branch or 'detached', if not on a branch -# $var3 is the current upstream branch (if set), as in eg 'origin/opensuse-5.0' -# $var4 is not of use to us - -if [ "$GIT_UPSTREAM_COMMIT_ISH" != "LATEST" ]; then - if [ ! "$GIT_UPSTREAM_COMMIT_ISH" = "v$OLD_SOURCE_VERSION_AND_EXTRA" ]; then - echo "Tarball name (which we decode) doesn't correspond to the \$GIT_UPSTREAM_COMMIT_ISH in config.sh" - exit - fi - setup_common_vars -fi -# TODO: What checks should be different between LATEST and non-LATEST? -echo "ALERT: Script using local git repos. Some operations may be time consuming..." -# TODO: Some of these checks are perhaps not necessary -for (( i=0; i <$REPO_COUNT; i++ )); do - if [[ -e $(readlink -f ${LOCAL_REPO_MAP[$i]}) ]]; then - if [[ -e ${LOCAL_REPO_MAP[$i]}/.git/shallow ]]; then - echo "${LOCAL_REPO_MAP[$i]} is shallow, skipping checks" - continue - fi - if [[ -d ${LOCAL_REPO_MAP[$i]}/.git/rebase-merge || \ - -d ${LOCAL_REPO_MAP[$i]}/.git/rebase-apply ]]; then - echo "ERROR! Rebase appears to be in progress in ${LOCAL_REPO_MAP[$i]}. Please resolve" - exit - fi - # TODO: We've not even verified what branch we're on here - so this is a bit misguided! - if ! git -C ${LOCAL_REPO_MAP[$i]} submodule update --init --recursive &> /dev/null; then - echo "Please clean up state of local repo ${LOCAL_REPO_MAP[$i]} before using script" - echo "(ensure git submodule update --init --recursive is successful)" - exit - fi - if [ "$(git -C ${LOCAL_REPO_MAP[$i]} status --porcelain)" ]; then - echo "Please clean up state of local repo ${LOCAL_REPO_MAP[$i]} before using script" - echo "(ensure git status --porcelain produces no output)" - exit - fi - # TODO: See about doing the following better (also see what needs to happen for LATEST) - if [ "$GIT_UPSTREAM_COMMIT_ISH" != "LATEST" ]; then - if $(git -C ${LOCAL_REPO_MAP[$i]} branch --remote | grep -F "origin/$GIT_BRANCH" >/dev/null); then - if ! $(git -C ${LOCAL_REPO_MAP[$i]} branch | grep -F "$GIT_BRANCH" >/dev/null); then - echo "Please clean up state of local repo ${LOCAL_REPO_MAP[$i]} before using script" - echo "(cannot find branch $GIT_BRANCH, please create a tracking branch of remote origin/$GIT_BRANCH)" - exit - fi - if ! git -C ${LOCAL_REPO_MAP[$i]} checkout $GIT_BRANCH --recurse-submodules -f &> /dev/null; then - echo "Please clean up state of local repo ${LOCAL_REPO_MAP[$i]} before using script" - echo "(cannot check out $GIT_BRANCH, incl. it's submodules)" - exit - fi - fi - fi - # This does additional setup now that we've possibly grabbed additional submodules - if ! git -C ${LOCAL_REPO_MAP[$i]} submodule update --init --recursive &> /dev/null; then - echo "Please clean up state of local repo ${LOCAL_REPO_MAP[$i]} before using script" - echo "(cannot init and update current branch submodules)" - exit - fi - if [ "$(git -C ${LOCAL_REPO_MAP[$i]} status --porcelain)" ]; then - echo "Please clean up state of local repo ${LOCAL_REPO_MAP[$i]} before using script" - echo "(ensure git status --porcelain produces no output)" - exit - fi - fi -done - -if [ "$GIT_UPSTREAM_COMMIT_ISH" = "LATEST" ]; then - if [ "$1" = "continue" ]; then - CONTINUE_AFTER_REBASE=1 - else - if [ "$1" = "pause" ]; then - PAUSE_BEFORE_BUNDLE_CREATION=1 - else - if [ "$1" ]; then - echo "ERROR: unrecognized option '$1'. Script in LATEST mode only recognizes 'pause' and 'continue' options" - exit - fi - fi - fi - for (( i=0; i <$REPO_COUNT; i++ )); do - if [[ -e $(readlink -f ${LOCAL_REPO_MAP[$i]}) ]]; then - git -C ${LOCAL_REPO_MAP[$i]} remote update upstream &> /dev/null - fi - done - NEW_COMMIT_ISH_FULL=$(cd ${LOCAL_REPO_MAP[0]} && git rev-parse upstream/master) - NEW_COMMIT_ISH=${NEW_COMMIT_ISH_FULL:0:8} - setup_common_vars - WRITE_LOG=0 - echo "Processing LATEST upstream changes" - echo "(If SUCCESS is not printed upon completion, see ~/latest.log for issues)" - if [[ $QEMU_TARBALL =~ $BASE_RE$EXTRA_RE$SUFFIX_RE ]]; then - OLD_COMMIT_ISH=${BASH_REMATCH[3]} - else - #Assume release (or release candidate) tarball with equivalent tag: - OLD_COMMIT_ISH=$(cd ${LOCAL_REPO_MAP[0]} && git rev-list --abbrev-commit \ - --abbrev=8 -1 v$OLD_SOURCE_VERSION_AND_EXTRA) - fi - if [ ${#QEMU_TARBALL_SIG[@]} -ne 0 ]; then - echo "INFO: Ignoring signature file: $QEMU_TARBALL_SIG" - QEMU_TARBALL_SIG= - fi - NOW_SECONDS=$(date +%s) - if [ "$OLD_COMMIT_ISH" != "$NEW_COMMIT_ISH" ]; then - if [ "$CONTINUE_AFTER_REBASE" = "1" ]; then - echo "continue after rebase selected but tarball is out of date. Continuing not possible." - echo "If desired, save your rebase work (eg, branch $GIT_BRANCH), because otherwise it will" - echo "be lost. Then run script again without the continue option" - exit - fi - redo_tarball_and_rebase_patches &> ~/latest.log # This includes a bundle2local - if [[ "$REBASE_FAILS" ]]; then - echo "ERROR! Rebase of the $GIT_BRANCH branch failed in the following local git repos:" - echo $REBASE_FAILS - echo "Manually resolve all these rebases, then finish the workflow by passing 'continue' to script" - if [[ "$PAUSE_BEFORE_BUNDLE_CREATION" = "1" ]]; then - echo "Feel free to also do the work now occasioned by the selected 'pause' option" - fi - exit - fi - CONTINUE_AFTER_REBASE=1 - fi - if [[ "$PAUSE_BEFORE_BUNDLE_CREATION" = "1" ]]; then - echo "As requested, pausing before re-creating bundle of bundles for additional patch or specfile work" - echo "(using current 'ready to go' $GIT_BRANCH branch of local repos to produce patches.)" - echo "When changes are complete, finish the workflow by passing 'continue' to script" - exit - fi - if [ "$CONTINUE_AFTER_REBASE" = "1" ]; then - initbundle &>> ~/latest.log - fi - bundle2spec &>> ~/latest.log - echo "SUCCESS" - tail -9 ~/latest.log -else # not LATEST - NEW_COMMIT_ISH= - WRITE_LOG=1 - case $1 in - initbundle ) - echo "Updating/creating the bundle using the $GIT_BRANCH branch of the local repos." - echo "(If SUCCESS is not printed upon completion, see ~/initbundle.log for issues)" - initbundle &> ~/initbundle.log - echo "SUCCESS" - ;; - git2pkg ) - echo "Updating the package using the $GIT_BRANCH branch of the local repos." - echo "(If SUCCESS is not printed upon completion, see ~/git2pkg.log for issues)" - initbundle &> ~/git2pkg.log - bundle2spec &>> ~/git2pkg.log - echo "SUCCESS" - tail -9 ~/git2pkg.log - ;; - pkg2git ) - echo "Exporting the package's git bundles to the local repo's frombundle branches..." - echo "(If SUCCESS is not printed upon completion, see ~/pkg2git.log for issues)" - bundle2local &> ~/pkg2git.log - echo "SUCCESS" - echo "To modify package patches, use the frombundle branch as the basis for updating" - echo "the $GIT_BRANCH branch with the new patch queue, e.g., like this:" - echo " git checkout -f --recurse-submodules -B $GIT_BRANCH frombundle" - echo "in the following repositories:" - for R in $(grep "Patches applied" $PKG.spec | awk '{print $(NF)}'|sed 's/:$//'); do - for (( i=0; i <$REPO_COUNT; i++ )); do - if [ "${R}" = "project" ]; then - echo " * ${LOCAL_REPO_MAP[0]}" - continue 2 - fi - if [ "${R}" = "${PATCH_PATH_MAP[$i]}" ]; then - echo " * ${LOCAL_REPO_MAP[$i]}" - continue 2 - fi - done - done - echo "Then make your changes and, when done, export them back to the package with:" - echo " bash ./update_git.sh git2pkg" - ;; - refresh ) - echo "Updating the spec file and patches from the spec file template and the bundle" - echo "of bundles (bundles.tar.xz)" - echo "(If SUCCESS is not printed upon completion, see ~/refresh.log for issues)" - bundle2spec &> ~/refresh.log - echo "SUCCESS" - tail -9 ~/refresh.log - ;; - esac -fi -exit diff --git a/xen-add-block-resize-support-for-xen-dis.patch b/xen-add-block-resize-support-for-xen-dis.patch deleted file mode 100644 index fcf20b7..0000000 --- a/xen-add-block-resize-support-for-xen-dis.patch +++ /dev/null @@ -1,30 +0,0 @@ -From: Bruce Rogers -Date: Wed, 16 Jan 2019 16:29:36 -0700 -Subject: xen: add block resize support for xen disks - -Provide monitor naming of xen disks, and plumb guest driver -notification through xenstore of resizing instigated via the -monitor. - -[BR: minor edits to pass qemu's checkpatch script] -[BR: significant rework needed due to upstream xen disk qdevification] -[BR: At this point, monitor_add_blk call is all we need to add!] -Signed-off-by: Bruce Rogers ---- - hw/block/xen-block.c | 3 +++ - 1 file changed, 3 insertions(+) - -diff --git a/hw/block/xen-block.c b/hw/block/xen-block.c -index 4c7f17c253e97bd747347aca3063..46168753f3dcc0d1795d5f567145 100644 ---- a/hw/block/xen-block.c -+++ b/hw/block/xen-block.c -@@ -270,6 +270,9 @@ static void xen_block_realize(XenDevice *xendev, Error **errp) - - xen_block_set_size(blockdev); - -+ if (!monitor_add_blk(conf->blk, blockdev->drive->id, errp)) { -+ return; -+ } - blockdev->dataplane = - xen_block_dataplane_create(xendev, blk, conf->logical_block_size, - blockdev->props.iothread); diff --git a/xen-ignore-live-parameter-from-xen-save-.patch b/xen-ignore-live-parameter-from-xen-save-.patch deleted file mode 100644 index 5c469ff..0000000 --- a/xen-ignore-live-parameter-from-xen-save-.patch +++ /dev/null @@ -1,41 +0,0 @@ -From: Olaf Hering -Date: Tue, 8 Jan 2019 14:20:08 +0100 -Subject: xen: ignore live parameter from xen-save-devices-state - -References: bsc#1079730, bsc#1101982, bsc#1063993 - -The final step of xl migrate|save for an HVM domU is saving the state of -qemu. This also involves releasing all block devices. While releasing -backends ought to be a separate step, such functionality is not -implemented. - -Unfortunately, releasing the block devices depends on the optional -'live' option. This breaks offline migration with 'virsh migrate domU -dom0' because the sending side does not release the disks, as a result -the receiving side can not properly claim write access to the disks. - -As a minimal fix, remove the dependency on the 'live' option. Upstream -may fix this in a different way, like removing the newly added 'live' -parameter entirely. - -Fixes: 5d6c599fe1 ("migration, xen: Fix block image lock issue on live migration") - -Signed-off-by: Olaf Hering -Signed-off-by: Bruce Rogers ---- - migration/savevm.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/migration/savevm.c b/migration/savevm.c -index 48e85c052c2c0197405803b9ef83..58eea0775eaa78d5d0250cdcbcaf 100644 ---- a/migration/savevm.c -+++ b/migration/savevm.c -@@ -2950,7 +2950,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 control of the images. - */ -- if (live && !saved_vm_running) { -+ if (!saved_vm_running) { - ret = bdrv_inactivate_all(); - if (ret) { - error_setg(errp, "%s: bdrv_inactivate_all() failed (%d)", diff --git a/xen_disk-Add-suse-specific-flush-disable.patch b/xen_disk-Add-suse-specific-flush-disable.patch deleted file mode 100644 index d54a11b..0000000 --- a/xen_disk-Add-suse-specific-flush-disable.patch +++ /dev/null @@ -1,49 +0,0 @@ -From: Bruce Rogers -Date: Wed, 9 Mar 2016 15:18:11 -0700 -Subject: xen_disk: Add suse specific flush disable handling and map to QEMU - equiv - -Add code to read the suse specific suse-diskcache-disable-flush flag out -of xenstore, and set the equivalent flag within QEMU. - -Patch taken from Xen's patch queue, Olaf Hering being the original author. -[bsc#879425] - -[BR: minor edits to pass qemu's checkpatch script] -[BR: With qdevification of xen-block, code has changed significantly] -Signed-off-by: Bruce Rogers -Signed-off-by: Olaf Hering ---- - hw/block/xen-block.c | 12 ++++++++++++ - 1 file changed, 12 insertions(+) - -diff --git a/hw/block/xen-block.c b/hw/block/xen-block.c -index 345b284d70181727f17a64d51bf2..4c7f17c253e97bd747347aca3063 100644 ---- a/hw/block/xen-block.c -+++ b/hw/block/xen-block.c -@@ -722,6 +722,8 @@ static XenBlockDrive *xen_block_drive_create(const char *id, - const char *mode = qdict_get_try_str(opts, "mode"); - const char *direct_io_safe = qdict_get_try_str(opts, "direct-io-safe"); - const char *discard_enable = qdict_get_try_str(opts, "discard-enable"); -+ const char *suse_diskcache_disable_flush = qdict_get_try_str(opts, -+ "suse-diskcache-disable-flush"); - char *driver = NULL; - char *filename = NULL; - XenBlockDrive *drive = NULL; -@@ -802,6 +804,16 @@ static XenBlockDrive *xen_block_drive_create(const char *id, - } - } - -+ if (suse_diskcache_disable_flush) { -+ unsigned long value; -+ if (!qemu_strtoul(suse_diskcache_disable_flush, NULL, 2, &value) && !!value) { -+ QDict *cache_qdict = qdict_new(); -+ -+ qdict_put_bool(cache_qdict, "no-flush", true); -+ qdict_put_obj(file_layer, "cache", QOBJECT(cache_qdict)); -+ } -+ } -+ - /* - * It is necessary to turn file locking off as an emulated device - * may have already opened the same image file.