diff --git a/0001-target-i386-the-sgx_epc_get_section-stub-is-reachabl.patch b/0001-target-i386-the-sgx_epc_get_section-stub-is-reachabl.patch index cc5ada9..5245b0f 100644 --- a/0001-target-i386-the-sgx_epc_get_section-stub-is-reachabl.patch +++ b/0001-target-i386-the-sgx_epc_get_section-stub-is-reachabl.patch @@ -1,10 +1,10 @@ +From e54512fe75f85640c0c73e53e6f8bd0b9d193529 Mon Sep 17 00:00:00 2001 From: Paolo Bonzini Date: Tue, 1 Feb 2022 20:09:37 +0100 -Subject: [PATCH] target/i386: the sgx_epc_get_section stub is reachable +Subject: [PATCH 1/7] target/i386: the sgx_epc_get_section stub is reachable MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit -Content-type: text/plain The sgx_epc_get_section stub is reachable from cpu_x86_cpuid. It should not assert, instead it should just return true just like @@ -28,3 +28,6 @@ index 26833eb233..16b1dfd90b 100644 - g_assert_not_reached(); + return true; } +-- +2.37.3 + diff --git a/0001-tests-Disable-pci_virtio_vga-for-ppc64.patch b/0001-tests-Disable-pci_virtio_vga-for-ppc64.patch deleted file mode 100644 index 26d8ed7..0000000 --- a/0001-tests-Disable-pci_virtio_vga-for-ppc64.patch +++ /dev/null @@ -1,32 +0,0 @@ -From f6d5fd60f54fb9dcdc3733154637a3a214f5d5af Mon Sep 17 00:00:00 2001 -From: "Eduardo Lima (Etrunko)" -Date: Thu, 1 Sep 2022 12:43:49 -0300 -Subject: [PATCH] tests: Disable pci_virtio_vga for ppc64 - -starting QEMU: exec ./qemu-system-ppc64 -qtest unix:/tmp/qtest-2378197.sock -qtest-log /dev/null -chardev socket,path=/tmp/qtest-2378197.qmp,id=char0 -mon chardev=char0,mode=control -display none -vga none -device virtio-vga -accel qtest -stderr: -qemu-system-ppc64: -device virtio-vga: 'virtio-vga' is not a valid device model name -Broken pipe -../tests/qtest/libqtest.c:156: kill_qemu() tried to terminate QEMU process but encountered exit status 1 (expected 0) - -Signed-off-by: Eduardo Lima (Etrunko) ---- - tests/qtest/display-vga-test.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/tests/qtest/display-vga-test.c b/tests/qtest/display-vga-test.c -index ace3bb28e0..628dad4cf2 100644 ---- a/tests/qtest/display-vga-test.c -+++ b/tests/qtest/display-vga-test.c -@@ -61,7 +61,7 @@ int main(int argc, char **argv) - qtest_add_func("/display/pci/multihead", pci_multihead); - qtest_add_func("/display/pci/virtio-gpu", pci_virtio_gpu); - if (g_str_equal(arch, "i386") || g_str_equal(arch, "x86_64") || -- g_str_equal(arch, "hppa") || g_str_equal(arch, "ppc64")) { -+ g_str_equal(arch, "hppa")) { - qtest_add_func("/display/pci/virtio-vga", pci_virtio_vga); - } - --- -2.37.2 - diff --git a/0002-hw-pci-bridge-Make-PCIe-and-CXL-PXB-Devices-inherit-.patch b/0002-hw-pci-bridge-Make-PCIe-and-CXL-PXB-Devices-inherit-.patch new file mode 100644 index 0000000..514bc75 --- /dev/null +++ b/0002-hw-pci-bridge-Make-PCIe-and-CXL-PXB-Devices-inherit-.patch @@ -0,0 +1,325 @@ +From 736ef0dcc04348bd478cc69d772a6b44fe660831 Mon Sep 17 00:00:00 2001 +From: Jonathan Cameron via +Date: Thu, 20 Apr 2023 15:27:50 +0100 +Subject: [PATCH 2/2] hw/pci-bridge: Make PCIe and CXL PXB Devices inherit from + TYPE_PXB_DEV + +Previously, PXB_CXL_DEVICE, PXB_PCIE_DEVICE and PXB_DEVICE all +have PCI_DEVICE as their direct parent but share a common state +struct PXBDev. convert_to_pxb() is used to get the PXBDev +instance from which ever of these types it is called on. + +This patch switches to an explicit heirarchy based on shared +functionality. To allow use of OBJECT_DECLARE_SIMPLE_TYPE() +whilst minimizing code changes, all types are renamed to have +the postfix _DEV rather than _DEVICE. The new heirarchy +has PXB_CXL_DEV with parent PXB_PCIE_DEV which in turn +has parent PXB_DEV which continues to have parent PCI_DEVICE. + +This allows simple use of PXB_DEV() etc rather than a custom function ++ removal of duplicated properties and moving the CXL specific +elements out of struct PXBDev. + +Signed-off-by: Jonathan Cameron +--- + hw/acpi/cxl.c | 11 +++--- + hw/cxl/cxl-host.c | 4 +- + hw/pci-bridge/pci_expander_bridge.c | 59 ++++++++++------------------- + include/hw/cxl/cxl.h | 4 +- + include/hw/pci/pci_bridge.h | 28 ++++++++++---- + 5 files changed, 49 insertions(+), 57 deletions(-) + +diff --git a/hw/acpi/cxl.c b/hw/acpi/cxl.c +index 2bf8c07993..92b46bc932 100644 +--- a/hw/acpi/cxl.c ++++ b/hw/acpi/cxl.c +@@ -30,9 +30,10 @@ + #include "qapi/error.h" + #include "qemu/uuid.h" + +-static void cedt_build_chbs(GArray *table_data, PXBDev *cxl) ++static void cedt_build_chbs(GArray *table_data, PXBCXLDev *cxl) + { +- SysBusDevice *sbd = SYS_BUS_DEVICE(cxl->cxl.cxl_host_bridge); ++ PXBDev *pxb = PXB_DEV(cxl); ++ SysBusDevice *sbd = SYS_BUS_DEVICE(cxl->cxl_host_bridge); + struct MemoryRegion *mr = sbd->mmio[0].memory; + + /* Type */ +@@ -45,7 +46,7 @@ static void cedt_build_chbs(GArray *table_data, PXBDev *cxl) + build_append_int_noprefix(table_data, 32, 2); + + /* UID - currently equal to bus number */ +- build_append_int_noprefix(table_data, cxl->bus_nr, 4); ++ build_append_int_noprefix(table_data, pxb->bus_nr, 4); + + /* Version */ + build_append_int_noprefix(table_data, 1, 4); +@@ -112,7 +113,7 @@ static void cedt_build_cfmws(GArray *table_data, CXLState *cxls) + /* Host Bridge List (list of UIDs - currently bus_nr) */ + for (i = 0; i < fw->num_targets; i++) { + g_assert(fw->target_hbs[i]); +- build_append_int_noprefix(table_data, fw->target_hbs[i]->bus_nr, 4); ++ build_append_int_noprefix(table_data, PXB_DEV(fw->target_hbs[i])->bus_nr, 4); + } + } + } +@@ -121,7 +122,7 @@ static int cxl_foreach_pxb_hb(Object *obj, void *opaque) + { + Aml *cedt = opaque; + +- if (object_dynamic_cast(obj, TYPE_PXB_CXL_DEVICE)) { ++ if (object_dynamic_cast(obj, TYPE_PXB_CXL_DEV)) { + cedt_build_chbs(cedt->buf, PXB_CXL_DEV(obj)); + } + +diff --git a/hw/cxl/cxl-host.c b/hw/cxl/cxl-host.c +index 6e923ceeaf..034c7805b3 100644 +--- a/hw/cxl/cxl-host.c ++++ b/hw/cxl/cxl-host.c +@@ -84,7 +84,7 @@ void cxl_fmws_link_targets(CXLState *cxl_state, Error **errp) + bool ambig; + + o = object_resolve_path_type(fw->targets[i], +- TYPE_PXB_CXL_DEVICE, ++ TYPE_PXB_CXL_DEV, + &ambig); + if (!o) { + error_setg(errp, "Could not resolve CXLFM target %s", +@@ -141,7 +141,7 @@ static PCIDevice *cxl_cfmws_find_device(CXLFixedWindow *fw, hwaddr addr) + addr += fw->base; + + rb_index = (addr / cxl_decode_ig(fw->enc_int_gran)) % fw->num_targets; +- hb = PCI_HOST_BRIDGE(fw->target_hbs[rb_index]->cxl.cxl_host_bridge); ++ hb = PCI_HOST_BRIDGE(fw->target_hbs[rb_index]->cxl_host_bridge); + if (!hb || !hb->bus || !pci_bus_is_cxl(hb->bus)) { + return NULL; + } +diff --git a/hw/pci-bridge/pci_expander_bridge.c b/hw/pci-bridge/pci_expander_bridge.c +index a78327b5f2..613857b601 100644 +--- a/hw/pci-bridge/pci_expander_bridge.c ++++ b/hw/pci-bridge/pci_expander_bridge.c +@@ -50,24 +50,8 @@ struct PXBBus { + char bus_path[8]; + }; + +-#define TYPE_PXB_DEVICE "pxb" +-DECLARE_INSTANCE_CHECKER(PXBDev, PXB_DEV, +- TYPE_PXB_DEVICE) +- +-#define TYPE_PXB_PCIE_DEVICE "pxb-pcie" +-DECLARE_INSTANCE_CHECKER(PXBDev, PXB_PCIE_DEV, +- TYPE_PXB_PCIE_DEVICE) +- +-static PXBDev *convert_to_pxb(PCIDevice *dev) +-{ +- /* A CXL PXB's parent bus is PCIe, so the normal check won't work */ +- if (object_dynamic_cast(OBJECT(dev), TYPE_PXB_CXL_DEVICE)) { +- return PXB_CXL_DEV(dev); +- } +- +- return pci_bus_is_express(pci_get_bus(dev)) +- ? PXB_PCIE_DEV(dev) : PXB_DEV(dev); +-} ++#define TYPE_PXB_PCIE_DEV "pxb-pcie" ++OBJECT_DECLARE_SIMPLE_TYPE(PXBPCIEDev, PXB_PCIE_DEV) + + static GList *pxb_dev_list; + +@@ -89,14 +73,14 @@ bool cxl_get_hb_passthrough(PCIHostState *hb) + + static int pxb_bus_num(PCIBus *bus) + { +- PXBDev *pxb = convert_to_pxb(bus->parent_dev); ++ PXBDev *pxb = PXB_DEV(bus->parent_dev); + + return pxb->bus_nr; + } + + static uint16_t pxb_bus_numa_node(PCIBus *bus) + { +- PXBDev *pxb = convert_to_pxb(bus->parent_dev); ++ PXBDev *pxb = PXB_DEV(bus->parent_dev); + + return pxb->numa_node; + } +@@ -154,7 +138,7 @@ static char *pxb_host_ofw_unit_address(const SysBusDevice *dev) + + pxb_host = PCI_HOST_BRIDGE(dev); + pxb_bus = pxb_host->bus; +- pxb_dev = convert_to_pxb(pxb_bus->parent_dev); ++ pxb_dev = PXB_DEV(pxb_bus->parent_dev); + position = g_list_index(pxb_dev_list, pxb_dev); + assert(position >= 0); + +@@ -212,8 +196,8 @@ static void pxb_cxl_realize(DeviceState *dev, Error **errp) + */ + void pxb_cxl_hook_up_registers(CXLState *cxl_state, PCIBus *bus, Error **errp) + { +- PXBDev *pxb = PXB_CXL_DEV(pci_bridge_get_device(bus)); +- CXLHost *cxl = pxb->cxl.cxl_host_bridge; ++ PXBCXLDev *pxb = PXB_CXL_DEV(pci_bridge_get_device(bus)); ++ CXLHost *cxl = pxb->cxl_host_bridge; + CXLComponentState *cxl_cstate = &cxl->cxl_cstate; + struct MemoryRegion *mr = &cxl_cstate->crb.component_registers; + hwaddr offset; +@@ -299,7 +283,7 @@ static int pxb_map_irq_fn(PCIDevice *pci_dev, int pin) + + static void pxb_cxl_dev_reset(DeviceState *dev) + { +- CXLHost *cxl = PXB_CXL_DEV(dev)->cxl.cxl_host_bridge; ++ CXLHost *cxl = PXB_CXL_DEV(dev)->cxl_host_bridge; + CXLComponentState *cxl_cstate = &cxl->cxl_cstate; + PCIHostState *hb = PCI_HOST_BRIDGE(cxl); + uint32_t *reg_state = cxl_cstate->crb.cache_mem_registers; +@@ -337,7 +321,7 @@ static gint pxb_compare(gconstpointer a, gconstpointer b) + static void pxb_dev_realize_common(PCIDevice *dev, enum BusType type, + Error **errp) + { +- PXBDev *pxb = convert_to_pxb(dev); ++ PXBDev *pxb = PXB_DEV(dev); + DeviceState *ds, *bds = NULL; + PCIBus *bus; + const char *dev_name = NULL; +@@ -365,7 +349,7 @@ static void pxb_dev_realize_common(PCIDevice *dev, enum BusType type, + } else if (type == CXL) { + bus = pci_root_bus_new(ds, dev_name, NULL, NULL, 0, TYPE_PXB_CXL_BUS); + bus->flags |= PCI_BUS_CXL; +- PXB_CXL_DEV(dev)->cxl.cxl_host_bridge = PXB_CXL_HOST(ds); ++ PXB_CXL_DEV(dev)->cxl_host_bridge = PXB_CXL_HOST(ds); + } else { + bus = pci_root_bus_new(ds, "pxb-internal", NULL, NULL, 0, TYPE_PXB_BUS); + bds = qdev_new("pci-bridge"); +@@ -418,7 +402,7 @@ static void pxb_dev_realize(PCIDevice *dev, Error **errp) + + static void pxb_dev_exitfn(PCIDevice *pci_dev) + { +- PXBDev *pxb = convert_to_pxb(pci_dev); ++ PXBDev *pxb = PXB_DEV(pci_dev); + + pxb_dev_list = g_list_remove(pxb_dev_list, pxb); + } +@@ -449,7 +433,7 @@ static void pxb_dev_class_init(ObjectClass *klass, void *data) + } + + static const TypeInfo pxb_dev_info = { +- .name = TYPE_PXB_DEVICE, ++ .name = TYPE_PXB_DEV, + .parent = TYPE_PCI_DEVICE, + .instance_size = sizeof(PXBDev), + .class_init = pxb_dev_class_init, +@@ -481,15 +465,14 @@ static void pxb_pcie_dev_class_init(ObjectClass *klass, void *data) + k->class_id = PCI_CLASS_BRIDGE_HOST; + + dc->desc = "PCI Express Expander Bridge"; +- device_class_set_props(dc, pxb_dev_properties); + dc->hotpluggable = false; + set_bit(DEVICE_CATEGORY_BRIDGE, dc->categories); + } + + static const TypeInfo pxb_pcie_dev_info = { +- .name = TYPE_PXB_PCIE_DEVICE, +- .parent = TYPE_PCI_DEVICE, +- .instance_size = sizeof(PXBDev), ++ .name = TYPE_PXB_PCIE_DEV, ++ .parent = TYPE_PXB_DEV, ++ .instance_size = sizeof(PXBPCIEDev), + .class_init = pxb_pcie_dev_class_init, + .interfaces = (InterfaceInfo[]) { + { INTERFACE_CONVENTIONAL_PCI_DEVICE }, +@@ -510,11 +493,7 @@ static void pxb_cxl_dev_realize(PCIDevice *dev, Error **errp) + } + + static Property pxb_cxl_dev_properties[] = { +- /* Note: 0 is not a legal PXB bus number. */ +- DEFINE_PROP_UINT8("bus_nr", PXBDev, bus_nr, 0), +- DEFINE_PROP_UINT16("numa_node", PXBDev, numa_node, NUMA_NODE_UNASSIGNED), +- DEFINE_PROP_BOOL("bypass_iommu", PXBDev, bypass_iommu, false), +- DEFINE_PROP_BOOL("hdm_for_passthrough", PXBDev, hdm_for_passthrough, false), ++ DEFINE_PROP_BOOL("hdm_for_passthrough", PXBCXLDev, hdm_for_passthrough, false), + DEFINE_PROP_END_OF_LIST(), + }; + +@@ -540,9 +519,9 @@ static void pxb_cxl_dev_class_init(ObjectClass *klass, void *data) + } + + static const TypeInfo pxb_cxl_dev_info = { +- .name = TYPE_PXB_CXL_DEVICE, +- .parent = TYPE_PCI_DEVICE, +- .instance_size = sizeof(PXBDev), ++ .name = TYPE_PXB_CXL_DEV, ++ .parent = TYPE_PXB_PCIE_DEV, ++ .instance_size = sizeof(PXBCXLDev), + .class_init = pxb_cxl_dev_class_init, + .interfaces = + (InterfaceInfo[]){ +diff --git a/include/hw/cxl/cxl.h b/include/hw/cxl/cxl.h +index b2cffbb364..c453983e83 100644 +--- a/include/hw/cxl/cxl.h ++++ b/include/hw/cxl/cxl.h +@@ -23,12 +23,12 @@ + + #define CXL_WINDOW_MAX 10 + +-typedef struct PXBDev PXBDev; ++typedef struct PXBCXLDev PXBCXLDev; + + typedef struct CXLFixedWindow { + uint64_t size; + char **targets; +- PXBDev *target_hbs[8]; ++ PXBCXLDev *target_hbs[8]; + uint8_t num_targets; + uint8_t enc_int_ways; + uint8_t enc_int_gran; +diff --git a/include/hw/pci/pci_bridge.h b/include/hw/pci/pci_bridge.h +index 1677176b2a..01670e9e65 100644 +--- a/include/hw/pci/pci_bridge.h ++++ b/include/hw/pci/pci_bridge.h +@@ -84,7 +84,7 @@ struct PCIBridge { + #define PCI_BRIDGE_DEV_PROP_SHPC "shpc" + typedef struct CXLHost CXLHost; + +-struct PXBDev { ++typedef struct PXBDev { + /*< private >*/ + PCIDevice parent_obj; + /*< public >*/ +@@ -92,15 +92,27 @@ struct PXBDev { + uint8_t bus_nr; + uint16_t numa_node; + bool bypass_iommu; ++} PXBDev; ++ ++typedef struct PXBPCIEDev { ++ /*< private >*/ ++ PXBDev parent_obj; ++} PXBPCIEDev; ++ ++#define TYPE_PXB_DEV "pxb" ++OBJECT_DECLARE_SIMPLE_TYPE(PXBDev, PXB_DEV) ++ ++typedef struct PXBCXLDev { ++ /*< private >*/ ++ PXBPCIEDev parent_obj; ++ /*< public >*/ ++ + bool hdm_for_passthrough; +- struct cxl_dev { +- CXLHost *cxl_host_bridge; /* Pointer to a CXLHost */ +- } cxl; +-}; ++ CXLHost *cxl_host_bridge; /* Pointer to a CXLHost */ ++} PXBCXLDev; + +-#define TYPE_PXB_CXL_DEVICE "pxb-cxl" +-DECLARE_INSTANCE_CHECKER(PXBDev, PXB_CXL_DEV, +- TYPE_PXB_CXL_DEVICE) ++#define TYPE_PXB_CXL_DEV "pxb-cxl" ++OBJECT_DECLARE_SIMPLE_TYPE(PXBCXLDev, PXB_CXL_DEV) + + int pci_bridge_ssvid_init(PCIDevice *dev, uint8_t offset, + uint16_t svid, uint16_t ssid, +-- +2.40.0 + diff --git a/0010-Skip-iotests-entirely.patch b/0010-Skip-iotests-entirely.patch deleted file mode 100644 index 8586d6f..0000000 --- a/0010-Skip-iotests-entirely.patch +++ /dev/null @@ -1,26 +0,0 @@ -From: Cole Robinson -Date: Sun, 5 Jun 2022 12:48:29 -0400 -Subject: [PATCH] Skip iotests entirely -Content-type: text/plain - -Getting sporadic failures like described here: -https://www.mail-archive.com/qemu-devel@nongnu.org/msg887683.html - -Signed-off-by: Cole Robinson ---- - tests/check-block.sh | 2 ++ - 1 file changed, 2 insertions(+) - -diff --git a/tests/check-block.sh b/tests/check-block.sh -index f59496396c..09cc735da4 100755 ---- a/tests/check-block.sh -+++ b/tests/check-block.sh -@@ -50,6 +50,8 @@ fi - - cd tests/qemu-iotests - -+exit 0 -+ - # QEMU_CHECK_BLOCK_AUTO is used to disable some unstable sub-tests - export QEMU_CHECK_BLOCK_AUTO=1 - export PYTHONUTF8=1 diff --git a/99-qemu-guest-agent.rules b/99-qemu-guest-agent.rules index 8a290ab..4709705 100644 --- a/99-qemu-guest-agent.rules +++ b/99-qemu-guest-agent.rules @@ -1,2 +1,2 @@ SUBSYSTEM=="virtio-ports", ATTR{name}=="org.qemu.guest_agent.0", \ - TAG+="systemd" ENV{SYSTEMD_WANTS}="qemu-guest-agent.service" + TAG+="systemd", ENV{SYSTEMD_WANTS}="qemu-guest-agent.service" diff --git a/qemu.spec b/qemu.spec index c9872bf..38a799c 100644 --- a/qemu.spec +++ b/qemu.spec @@ -6,7 +6,7 @@ %global libfdt_version 1.6.0 %global libseccomp_version 2.4.0 %global libusbx_version 1.0.23 -%global meson_version 0.59.3 +%global meson_version 0.61.3 %global usbredir_version 0.7.1 %global ipxe_version 20200823-5.git4bd064de @@ -75,6 +75,7 @@ %global have_spice 0 %endif %if 0%{?rhel} >= 9 +# TODO(Hyperscale): enable when RHBZ#2233161 is resolved %global have_spice 0 %endif @@ -94,7 +95,7 @@ %endif %global have_virgl 0 -%if 0%{?fedora} || 0%{?centos_hs} +%if 0%{?fedora} %global have_virgl 1 %endif @@ -105,7 +106,7 @@ %global have_jack 1 %if 0%{?rhel} -%global have_jack 0 +%global have_jack %{defined centos_hs} %endif %global have_dbus_display 1 @@ -114,6 +115,13 @@ %global have_dbus_display 0 %endif +%global have_libblkio 0 +# TODO(Hyperscale): enable when RHBZ#2232766 is resolved +%if 0%{?fedora} >= 37 +%global have_libblkio 1 +%endif + +%global have_gvnc_devel %{defined fedora} %global have_sdl_image %{defined fedora} %global have_fdt 1 %global have_opengl 1 @@ -151,6 +159,7 @@ %define have_libcacard 1 %if 0%{?rhel} >= 9 +# TODO(Hyperscale): enable when RHBZ#2233160 is resolved %define have_libcacard 0 %endif @@ -158,11 +167,16 @@ # https://bugzilla.redhat.com/show_bug.cgi?id=1952483 %global _lto_cflags %{nil} -%global firmwaredirs "%{_datadir}/qemu-firmware:%{_datadir}/ipxe/qemu:%{_datadir}/seavgabios:%{_datadir}/seabios:%{_datadir}/sgabios" +%global firmwaredirs "%{_datadir}/qemu-firmware:%{_datadir}/ipxe/qemu:%{_datadir}/seavgabios:%{_datadir}/seabios" %global qemudocdir %{_docdir}/%{name} %define evr %{epoch}:%{version}-%{release} +%if %{have_libblkio} +%define requires_block_blkio Requires: %{name}-block-blkio = %{evr} +%else +%define requires_block_blkio %{nil} +%endif %define requires_block_curl Requires: %{name}-block-curl = %{evr} %define requires_block_dmg Requires: %{name}-block-dmg = %{evr} %if %{have_block_gluster} @@ -201,19 +215,31 @@ %define requires_ui_egl_headless Requires: %{name}-ui-egl-headless = %{evr} %define requires_ui_opengl Requires: %{name}-ui-opengl = %{evr} %define requires_device_display_virtio_gpu Requires: %{name}-device-display-virtio-gpu = %{evr} -%define requires_device_display_virtio_gpu_gl Requires: %{name}-device-display-virtio-gpu-gl = %{evr} %define requires_device_display_virtio_gpu_pci Requires: %{name}-device-display-virtio-gpu-pci = %{evr} -%define requires_device_display_virtio_gpu_pci_gl Requires: %{name}-device-display-virtio-gpu-pci-gl = %{evr} %define requires_device_display_virtio_gpu_ccw Requires: %{name}-device-display-virtio-gpu-ccw = %{evr} %define requires_device_display_virtio_vga Requires: %{name}-device-display-virtio-vga = %{evr} %define requires_device_display_virtio_vga_gl Requires: %{name}-device-display-virtio-vga-gl = %{evr} %define requires_package_qemu_pr_helper Requires: qemu-pr-helper +%ifnarch %{ix86} +%if 0%{?fedora} || 0%{?rhel} > 9 %define requires_package_virtiofsd Requires: vhostuser-backend(fs) +%else +%define requires_package_virtiofsd Requires: virtiofsd +%endif +%define obsoletes_package_virtiofsd %{nil} +%else +%define requires_package_virtiofsd %{nil} +%define obsoletes_package_virtiofsd Obsoletes: %{name}-virtiofsd < %{evr} +%endif %if %{have_virgl} %define requires_device_display_vhost_user_gpu Requires: %{name}-device-display-vhost-user-gpu = %{evr} +%define requires_device_display_virtio_gpu_gl Requires: %{name}-device-display-virtio-gpu-gl = %{evr} +%define requires_device_display_virtio_gpu_pci_gl Requires: %{name}-device-display-virtio-gpu-pci-gl = %{evr} %else %define requires_device_display_vhost_user_gpu %{nil} +%define requires_device_display_virtio_gpu_gl %{nil} +%define requires_device_display_virtio_gpu_pci_gl %{nil} %endif %if %{have_jack} @@ -252,6 +278,7 @@ %endif %global requires_all_modules \ +%{requires_block_blkio} \ %{requires_block_curl} \ %{requires_block_dmg} \ %{requires_block_gluster} \ @@ -294,13 +321,14 @@ %global obsoletes_some_modules \ %{obsoletes_block_gluster} \ %{obsoletes_block_rbd} \ -%{obsoletes_block_rbd} \ +%{obsoletes_package_virtiofsd} \ Obsoletes: %{name}-system-lm32 <= %{epoch}:%{version}-%{release} \ Obsoletes: %{name}-system-lm32-core <= %{epoch}:%{version}-%{release} \ Obsoletes: %{name}-system-moxie <= %{epoch}:%{version}-%{release} \ Obsoletes: %{name}-system-moxie-core <= %{epoch}:%{version}-%{release} \ Obsoletes: %{name}-system-unicore32 <= %{epoch}:%{version}-%{release} \ -Obsoletes: %{name}-system-unicore32-core <= %{epoch}:%{version}-%{release} +Obsoletes: %{name}-system-unicore32-core <= %{epoch}:%{version}-%{release} \ +Obsoletes: sgabios-bin <= 1:0.20180715git-10.fc38 # Release candidate version tracking # global rcver rc4 @@ -310,17 +338,17 @@ Obsoletes: %{name}-system-unicore32-core <= %{epoch}:%{version}-%{release} %endif # To prevent rpmdev-bumpspec breakage -%global baserelease 3 +%global baserelease 4 # Hyperscale release %global hsrel .1 Summary: QEMU is a FAST! processor emulator Name: qemu -Version: 7.1.0 +Version: 8.0.3 Release: %{baserelease}%{?rcrel}%{?hsrel}%{?dist} Epoch: 2 -License: GPLv2 and BSD and MIT and CC-BY +License: Apache-2.0 AND BSD-2-Clause AND BSD-3-Clause AND FSFAP AND GPL-1.0-or-later AND GPL-2.0-only AND GPL-2.0-or-later AND GPL-2.0-or-later with GCC-exception-2.0 exception AND LGPL-2.0-only AND LGPL-2.0-or-later AND LGPL-2.1-only and LGPL-2.1-or-later AND MIT and public-domain and CC-BY-3.0 URL: http://www.qemu.org/ Source0: http://wiki.qemu-project.org/download/%{name}-%{version}%{?rcstr}.tar.xz @@ -337,11 +365,12 @@ Source31: kvm-x86.conf Source36: README.tests # Fix SGX assert -Patch0: 0001-target-i386-the-sgx_epc_get_section-stub-is-reachabl.patch -Patch1: 0001-tests-Disable-pci_virtio_vga-for-ppc64.patch -Patch2: 0010-Skip-iotests-entirely.patch +Patch: 0001-target-i386-the-sgx_epc_get_section-stub-is-reachabl.patch +Patch: 0002-hw-pci-bridge-Make-PCIe-and-CXL-PXB-Devices-inherit-.patch BuildRequires: meson >= %{meson_version} +BuildRequires: bison +BuildRequires: flex BuildRequires: zlib-devel BuildRequires: glib2-devel BuildRequires: gnutls-devel @@ -402,7 +431,10 @@ BuildRequires: pkgconfig(gbm) %endif BuildRequires: perl-Test-Harness BuildRequires: libslirp-devel -BuildRequires: libbpf-devel +BuildRequires: libbpf-devel >= 1.0.0 +%if %{have_libblkio} +BuildRequires: libblkio-devel +%endif # Fedora specific @@ -486,6 +518,10 @@ BuildRequires: fuse3-devel %if %{have_sdl_image} BuildRequires: SDL2_image-devel %endif +%if %{have_gvnc_devel} +# Used by vnc-display-test +BuildRequires: pkgconfig(gvnc-1.0) +%endif %if %{user_static} BuildRequires: glibc-static glib2-static zlib-static @@ -586,15 +622,6 @@ This package provides the qemu-pr-helper utility that is required for certain SCSI features. -%package -n qemu-virtiofsd -Summary: QEMU virtio-fs shared file system daemon -Provides: vhostuser-backend(fs) -%description -n qemu-virtiofsd -This package provides virtiofsd daemon. This program is a vhost-user backend -that implements the virtio-fs device that is used for sharing a host directory -tree with a guest. - - %package tests Summary: tests for the %{name} package Requires: %{name} = %{epoch}:%{version}-%{release} @@ -609,6 +636,18 @@ Install this package if you want access to the avocado_qemu tests, or qemu-iotests. +%if %{have_libblkio} +%package block-blkio +Summary: QEMU blkio block driver +Requires: %{name}-common%{?_isa} = %{epoch}:%{version}-%{release} +%description block-blkio +This package provides the additional blkio block driver for QEMU. + +Install this package if you want to access disks over vhost-user-blk, vdpa-blk, +and other transports using the libblkio library. +%endif + + %package block-curl Summary: QEMU CURL block driver Requires: %{name}-common%{?_isa} = %{epoch}:%{version}-%{release} @@ -719,7 +758,7 @@ This package provides the additional OSS audio driver for QEMU. Summary: QEMU PulseAudio audio driver Requires: %{name}-common%{?_isa} = %{epoch}:%{version}-%{release} %description audio-pa -This package provides the additional PulseAudi audio driver for QEMU. +This package provides the additional PulseAudio audio driver for QEMU. %package audio-sdl Summary: QEMU SDL audio driver @@ -785,11 +824,13 @@ Requires: %{name}-common%{?_isa} = %{epoch}:%{version}-%{release} %description device-display-virtio-gpu This package provides the virtio-gpu display device for QEMU. +%if %{have_virgl} %package device-display-virtio-gpu-gl Summary: QEMU virtio-gpu-gl display device Requires: %{name}-common%{?_isa} = %{epoch}:%{version}-%{release} %description device-display-virtio-gpu-gl This package provides the virtio-gpu-gl display device for QEMU. +%endif %package device-display-virtio-gpu-pci Summary: QEMU virtio-gpu-pci display device @@ -797,11 +838,13 @@ Requires: %{name}-common%{?_isa} = %{epoch}:%{version}-%{release} %description device-display-virtio-gpu-pci This package provides the virtio-gpu-pci display device for QEMU. +%if %{have_virgl} %package device-display-virtio-gpu-pci-gl Summary: QEMU virtio-gpu-pci-gl display device Requires: %{name}-common%{?_isa} = %{epoch}:%{version}-%{release} %description device-display-virtio-gpu-pci-gl This package provides the virtio-gpu-pci-gl display device for QEMU. +%endif %package device-display-virtio-gpu-ccw Summary: QEMU virtio-gpu-ccw display device @@ -1368,7 +1411,6 @@ platform. Summary: QEMU system emulator for x86 Requires: %{name}-common = %{epoch}:%{version}-%{release} Requires: seabios-bin -Requires: sgabios-bin Requires: seavgabios-bin %if %{have_edk2} Requires: edk2-ovmf @@ -1394,8 +1436,7 @@ This package provides the QEMU system emulator for Xtensa boards. %prep -%setup -q -n qemu-%{version}%{?rcstr} -%autosetup -S git_am +%autosetup -n qemu-%{version}%{?rcstr} -S git_am %global qemu_kvm_build qemu_kvm_build mkdir -p %{qemu_kvm_build} @@ -1412,6 +1453,8 @@ mkdir -p %{static_builddir} --disable-auth-pam \\\ --disable-avx2 \\\ --disable-avx512f \\\ + --disable-avx512bw \\\ + --disable-blkio \\\ --disable-block-drv-whitelist-in-tools \\\ --disable-bochs \\\ --disable-bpf \\\ @@ -1445,6 +1488,7 @@ mkdir -p %{static_builddir} --disable-glusterfs \\\ --disable-gnutls \\\ --disable-gtk \\\ + --disable-gtk-clipboard \\\ --disable-guest-agent \\\ --disable-guest-agent-msi \\\ --disable-hax \\\ @@ -1454,6 +1498,7 @@ mkdir -p %{static_builddir} --disable-kvm \\\ --disable-l2tpv3 \\\ --disable-libdaxctl \\\ + --disable-libdw \\\ --disable-libiscsi \\\ --disable-libnfs \\\ --disable-libpmem \\\ @@ -1500,6 +1545,7 @@ mkdir -p %{static_builddir} --disable-slirp-smbd \\\ --disable-smartcard \\\ --disable-snappy \\\ + --disable-sndio \\\ --disable-sparse \\\ --disable-spice \\\ --disable-spice-protocol \\\ @@ -1522,7 +1568,6 @@ mkdir -p %{static_builddir} --disable-vhost-vdpa \\\ --disable-virglrenderer \\\ --disable-virtfs \\\ - --disable-virtiofsd \\\ --disable-vnc \\\ --disable-vnc-jpeg \\\ --disable-png \\\ @@ -1590,6 +1635,11 @@ run_configure \ --enable-attr \ %ifarch %{ix86} x86_64 --enable-avx2 \ + --enable-avx512f \ + --enable-avx512bw \ +%endif +%if %{have_libblkio} + --enable-blkio \ %endif --enable-bpf \ --enable-cap-ng \ @@ -1645,7 +1695,7 @@ run_configure \ %endif --enable-seccomp \ --enable-selinux \ - --enable-slirp=system \ + --enable-slirp \ --enable-slirp-smbd \ --enable-snappy \ --enable-system \ @@ -1655,7 +1705,6 @@ run_configure \ %if %{have_usbredir} --enable-usb-redir \ %endif - --enable-virtiofsd \ --enable-vhost-kernel \ --enable-vhost-net \ --enable-vhost-user \ @@ -1687,17 +1736,16 @@ run_configure \ %endif --enable-gtk \ --enable-libdaxctl \ + --enable-libdw \ %if %{have_block_nfs} --enable-libnfs \ %endif - --enable-libudev \ %if %{have_liburing} --enable-linux-io-uring \ %endif --enable-linux-user \ --enable-live-block-migration \ --enable-multiprocess \ - --enable-vnc-jpeg \ --enable-parallels \ %if %{have_librdma} --enable-pvrdma \ @@ -1717,7 +1765,6 @@ run_configure \ --enable-spice \ --enable-spice-protocol \ %endif - --enable-usb-redir \ --enable-vdi \ --enable-vhost-crypto \ %if %{have_virgl} @@ -1843,6 +1890,8 @@ install -m 0644 -t %{buildroot}%{_datadir}/%{name}/tracetool/backend scripts/tra mkdir -p %{buildroot}%{_datadir}/%{name}/tracetool/format install -m 0644 -t %{buildroot}%{_datadir}/%{name}/tracetool/format scripts/tracetool/format/*.py +# Ensure vhost-user directory is present even if built without virgl +mkdir -p %{buildroot}%{_datadir}/%{name}/vhost-user # Create new directories and put them all under tests-src mkdir -p %{buildroot}%{testsdir}/python @@ -1895,8 +1944,6 @@ rm -rf %{buildroot}%{_datadir}/%{name}/efi*rom rm -rf %{buildroot}%{_datadir}/%{name}/vgabios*bin # Provided by package seabios rm -rf %{buildroot}%{_datadir}/%{name}/bios*.bin -# Provided by package sgabios -rm -rf %{buildroot}%{_datadir}/%{name}/sgabios.bin # Provided by edk2 rm -rf %{buildroot}%{_datadir}/%{name}/edk2* rm -rf %{buildroot}%{_datadir}/%{name}/firmware @@ -2147,12 +2194,6 @@ useradd -r -u 107 -g qemu -G kvm -d / -s /sbin/nologin \ %{_mandir}/man8/qemu-pr-helper.8* -%files -n qemu-virtiofsd -%{_mandir}/man1/virtiofsd.1* -%{_libexecdir}/virtiofsd -%{_datadir}/qemu/vhost-user/50-qemu-virtiofsd.json - - %files tools %{_bindir}/qemu-keymap %{_bindir}/qemu-edid @@ -2205,6 +2246,10 @@ useradd -r -u 107 -g qemu -G kvm -d / -s /sbin/nologin \ %{testsdir} %{_libdir}/%{name}/accel-qtest-*.so +%if %{have_libblkio} +%files block-blkio +%{_libdir}/%{name}/block-blkio.so +%endif %files block-curl %{_libdir}/%{name}/block-curl.so %files block-iscsi @@ -2270,12 +2315,16 @@ useradd -r -u 107 -g qemu -G kvm -d / -s /sbin/nologin \ %files device-display-virtio-gpu %{_libdir}/%{name}/hw-display-virtio-gpu.so +%if %{have_virgl} %files device-display-virtio-gpu-gl %{_libdir}/%{name}/hw-display-virtio-gpu-gl.so +%endif %files device-display-virtio-gpu-pci %{_libdir}/%{name}/hw-display-virtio-gpu-pci.so +%if %{have_virgl} %files device-display-virtio-gpu-pci-gl %{_libdir}/%{name}/hw-display-virtio-gpu-pci-gl.so +%endif %files device-display-virtio-gpu-ccw %{_libdir}/%{name}/hw-s390x-virtio-gpu-ccw.so %files device-display-virtio-vga @@ -2744,14 +2793,70 @@ useradd -r -u 107 -g qemu -G kvm -d / -s /sbin/nologin \ %changelog +* Thu Aug 17 2023 Davide Cavalca - 2:8.0.3-1.1 +- Merge latest changes from Fedora +- Temporarily disable virgl for Hyperscale due to missing dependencies +- Adjust Requires for virtiofsd for RHEL 9 and earlier + Upstream PR: https://src.fedoraproject.org/rpms/qemu/pull-request/47 +- Enable jack support for Hyperscale builds + +* Thu Jul 20 2023 Camilla Conte - 2:8.0.3-1 +- New upstream release 8.0.3 + +* Mon Jul 03 2023 Camilla Conte - 2:8.0.2-1 +- New upstream release 8.0.2 +- Fix arabic keyboard layout name + +* Thu Jun 01 2023 Richard W.M. Jones - 2:8.0.0-4 +- Rebuild for libnfs soname bump + +* Thu Apr 27 2023 Daniel P. Berrangé - 8.0.0-3 +- Drop sgabios-bin requirement and related baggage + +* Tue Apr 25 2023 Daniel P. Berrangé - 8.0.0-2 +- Obsolete qemu-virtiofsd on i686 (rhbz #2189368) + +* Thu Apr 20 2023 Eduardo Lima (Etrunko) - 8.0.0-1 +- Rebase to qemu 8.0.0 + +* Wed Apr 19 2023 Eduardo Lima (Etrunko) - 7.2.1-1 +- Rebase to qemu 7.2.1 + +* Mon Feb 27 2023 Richard W.M. Jones - 7.2.0-7 +- Fix virtio-blk-pci detect-zeroes=unmap (RHBZ#2173357) +- Fix build with glib2 2.75.3 (RHBZ#2173639) +- Disable the tests on i686 + +* Tue Jan 31 2023 Stefan Hajnoczi - 7.2.0-6 +- Enable libblkio + +* Fri Jan 20 2023 Fedora Release Engineering - 2:7.2.0-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild + +* Wed Jan 11 2023 Richard W.M. Jones - 2:7.2.0-4 +- Rebuild for xen-4.17.0, second attempt + +* Tue Jan 10 2023 Daniel P. Berrangé - 7.2.0-3 +- Fix compat with linux > 6.1 headers +- Re-enable iotests + +* Tue Jan 03 2023 Richard W.M. Jones - 2:7.2.0-2 +- Rebuild for xen-4.17.0 + +* Mon Dec 19 2022 Eduardo Lima (Etrunko) - 7.2.0-1 +- Rebase to qemu 7.2.0 + +* Fri Nov 11 2022 Eduardo Lima (Etrunko) - 7.1.0-4 +- Update libbpf dependency + * Thu Sep 08 2022 Davide Cavalca - 7.1.0-3.1 - Enable some additional features for Hyperscale - Number patches for compatibility with el8 -- Thu Sep 08 2022 Davide Cavalca - 7.1.0-3 +* Thu Sep 08 2022 Davide Cavalca - 7.1.0-3 - Unconditionally enable capstone-devel -- Thu Sep 08 2022 Davide Cavalca - 7.1.0-2 +* Thu Sep 08 2022 Davide Cavalca - 7.1.0-2 - Bump required meson version * Wed Aug 31 2022 Eduardo Lima (Etrunko) - 7.1.0-1 @@ -2943,125 +3048,3 @@ useradd -r -u 107 -g qemu -G kvm -d / -s /sbin/nologin \ * Mon Jan 11 2021 Paolo Bonzini - 2:5.2.0-5 - Use symlink for qemu-kvm. - Fix make check on bash 5.1. - -* Fri Dec 11 2020 Richard W.M. Jones - 2:5.2.0-4 -- qemu-char-spice not qemu-chardev-spice. - -* Thu Dec 10 2020 Mohan Boddu - 5.2.0-2 -- Fixing the ISA Dependencies - -* Wed Dec 09 2020 Cole Robinson - 5.2.0-1 -- Rebase to qemu-5.2.0 GA -- Fix spice and GL UI module deps (bz 1904603) - -* Thu Dec 03 2020 Richard W.M. Jones - 5.2.0-0.9.rc4 -- Enable qemu-kvm-core package on riscv64. - -* Thu Dec 03 2020 Cole Robinson - 5.2.0-0.8.rc4 -- Rebase to qemu-5.2.0-rc4 - -* Tue Nov 24 2020 Cole Robinson - 5.2.0-0.7.rc2 -- Fix running 9p tests in copr - -* Thu Nov 19 2020 Paolo Bonzini - 5.2.0-0.6.rc2 -- Remove --python=... to force use of system meson - -* Thu Nov 19 2020 Daniel P. Berrangé - 5.2.0-0.5.rc2 -- Re-enable systemtap tracing - -* Wed Nov 18 2020 Cole Robinson - 5.2.0-0.4.rc2 -- Rebase to qemu-5.2.0-rc2 - -* Fri Nov 13 2020 Daniel P. Berrangé - 5.2.0-0.3.rc1 -- Disable user mode static builds in ELN - -* Wed Nov 11 2020 Cole Robinson - 5.2.0-0.2.rc1 -- Rebase to qemu-5.2.0-rc1 - -* Sun Nov 08 2020 Cole Robinson - 5.2.0-0.1.rc0 -- Rebase to qemu-5.2.0-rc0 - -* Thu Nov 5 2020 Daniel P. Berrangé - 5.1.0-7 -- Disable LTO again. Tests were not passing, we were ignoring failures. - -* Mon Oct 26 2020 Daniel P. Berrangé - 5.1.0-6 -- Re-enable LTO since tests now pass without asserts - -* Fri Sep 4 2020 Daniel P. Berrangé - 5.1.0-5 -- Drop conditions for ppc, ppc64, mips64 and s390 arches -- Fix host qemu binary path for aarch64 -- Re-enable kernel BR for QEMU sanity check -- Fix conditionals for enabling QEMU sanity check -- Check whether emulator works before doing sanity check -- Provide explicit kernel path for QEMU sanity check -- Make QEMU sanity check a build blocker - -* Thu Sep 3 2020 Daniel P. Berrangé - 5.1.0-4 -- Add btrfs ioctls to linux-user (rhbz #1872918) - -* Tue Aug 18 2020 Tom Stellard - 5.1.0-3 -- Add BuildRequires: gcc -- https://fedoraproject.org/wiki/Packaging:C_and_C%2B%2B#BuildRequires_and_Requires - -* Mon Aug 17 2020 Cole Robinson - 5.1.0-2 -- Disable dtrace generation to fix use of modules (bz 1869339) - -* Tue Aug 11 2020 Cole Robinson - 5.1.0-1 -- Update to version 5.1.0 - -* Fri Aug 07 2020 Cole Robinson - 5.1.0-0.3.rc3 -- Update to version 5.1.0-rc3 - -* Thu Aug 06 2020 Merlin Mathesius - 5.1.0-0.2.rc2 -- Use new %%{kernel_arches} macro to determine when a full kernel is available - -* Wed Aug 05 2020 Cole Robinson - 5.1.0-0.2.rc2 -- Pull in new modules by default, like we do for others - -* Tue Aug 04 2020 Cole Robinson - 5.1.0-0.1.rc2 -- Update to qemu 5.1.0 rc2 - -* Fri Jul 31 2020 Daniel P. Berrangé - 5.0.0-6 -- Remove obsolete Fedora conditionals (PR#9) - -* Thu Jul 30 2020 Richard W.M. Jones - 5.0.0-5 -- Disable LTO as it caused many strange assert failures. - -* Wed Jul 29 2020 Richard W.M. Jones - 5.0.0-4 -- Backport Dan's upstream patch to fix insecure cert in test suite. - -* Mon Jul 27 2020 Kevin Fenzi - 5.0.0-3 -- Rebuild for new xen - -* Wed May 13 2020 Cole Robinson - 5.0.0-2 -- Fix iouring hang (bz #1823751) - -* Wed May 06 2020 Cole Robinson - 5.0.0-1 -- Update to version 5.0.0 - -* Thu Apr 16 2020 Cole Robinson - 5.0.0-0.3.rc3 -- Update to qemu 5.0.0 rc3 - -* Thu Apr 09 2020 Cole Robinson - 5.0.0-0.3.rc2 -- Update to qemu 5.0.0 rc2 - -* Wed Apr 08 2020 Adam Williamson - 2:5.0.0-0.2.rc0 -- Rebuild for new brltty - -* Wed Mar 25 2020 Cole Robinson - 2:5.0.0-0.1.rc0 -- Update to qemu-5.0.0-rc0 - -* Tue Mar 17 2020 Fabiano Fidêncio - 2:4.2.0-7 -- Fix segfault with SR-IOV hot-{plug,unplug} (bz #1814017) - -* Tue Feb 25 2020 Cole Robinson - 2:4.2.0-6 -- Rebuild for libiscsi soname bump - -* Sat Feb 15 2020 Cole Robinson - 2:4.2.0-5 -- Fix ppc shutdown issue (bz #1784961) - -* Tue Jan 28 2020 Cole Robinson - 2:4.2.0-4 -- virtio-fs support - -* Sat Jan 25 2020 Richard W.M. Jones - 4.2.0-3 -- Add miscellaneous fixes for RISC-V (RHBZ#1794902). diff --git a/sources b/sources index 9b00967..d8621aa 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (qemu-7.1.0.tar.xz) = c60c5ff8ec99b7552e485768908920658fdd8035ff7a6fa370fb6881957dc8b7e5f18ff1a8f49bd6aa22909ede2a7c084986d8244f12074ccd33ebe40a0c411f +SHA512 (qemu-8.0.3.tar.xz) = 18b2ccb65f7ec2ae92f0e04406539620c881e2b75f63816588c86043a07464bb99d16a83e792ed9508de393f4b694c46d52f4d07edf52741e85224c8b8d5d5c3