diff --git a/0004-qemu-Set-QEMU_AUDIO_DRV-none-with-nographic.patch b/0001-qemu-Set-QEMU_AUDIO_DRV-none-with-nographic.patch similarity index 92% rename from 0004-qemu-Set-QEMU_AUDIO_DRV-none-with-nographic.patch rename to 0001-qemu-Set-QEMU_AUDIO_DRV-none-with-nographic.patch index 1b7e663..68c4968 100644 --- a/0004-qemu-Set-QEMU_AUDIO_DRV-none-with-nographic.patch +++ b/0001-qemu-Set-QEMU_AUDIO_DRV-none-with-nographic.patch @@ -1,7 +1,7 @@ -From d77c4e688131be9ae811e1d650f4fdcc9fc1cee2 Mon Sep 17 00:00:00 2001 +From cc80f2dc06d46cb32a5cd6d12c6c47ddf64e72b6 Mon Sep 17 00:00:00 2001 From: Cole Robinson -Date: Sat, 17 Aug 2013 15:30:47 -0400 -Subject: [PATCH] qemu: Set QEMU_AUDIO_DRV=none with -nographic +Date: Mon, 2 Sep 2013 11:23:59 +0100 +Subject: [PATCH 1/8] qemu: Set QEMU_AUDIO_DRV=none with -nographic On my machine, a guest fails to boot if it has a sound card, but not graphical device/display is configured, because pulseaudio fails to @@ -12,295 +12,368 @@ isn't any option to do that, so -nographic always fails. Set QEMU_AUDIO_DRV=none if no are configured. Unfortunately this has massive test suite fallout. ---- - src/qemu/qemu_command.c | 7 ++++++- - tests/qemuxml2argvdata/qemuxml2argv-balloon-device-auto.args | 3 ++- - tests/qemuxml2argvdata/qemuxml2argv-balloon-device-period.args | 3 ++- - tests/qemuxml2argvdata/qemuxml2argv-balloon-device.args | 3 ++- - tests/qemuxml2argvdata/qemuxml2argv-bios.args | 2 +- - tests/qemuxml2argvdata/qemuxml2argv-blkdeviotune.args | 3 ++- - tests/qemuxml2argvdata/qemuxml2argv-blkiotune-device.args | 3 ++- - tests/qemuxml2argvdata/qemuxml2argv-blkiotune.args | 3 ++- - tests/qemuxml2argvdata/qemuxml2argv-boot-cdrom.args | 3 ++- - tests/qemuxml2argvdata/qemuxml2argv-boot-complex-bootindex.args | 2 +- - tests/qemuxml2argvdata/qemuxml2argv-boot-complex.args | 2 +- - tests/qemuxml2argvdata/qemuxml2argv-boot-floppy.args | 3 ++- - .../qemuxml2argv-boot-menu-disable-drive-bootindex.args | 3 ++- - tests/qemuxml2argvdata/qemuxml2argv-boot-menu-disable-drive.args | 3 ++- - tests/qemuxml2argvdata/qemuxml2argv-boot-menu-disable.args | 3 ++- - tests/qemuxml2argvdata/qemuxml2argv-boot-menu-enable.args | 3 ++- - tests/qemuxml2argvdata/qemuxml2argv-boot-multi.args | 3 ++- - tests/qemuxml2argvdata/qemuxml2argv-boot-network.args | 3 ++- - tests/qemuxml2argvdata/qemuxml2argv-boot-order.args | 3 ++- - tests/qemuxml2argvdata/qemuxml2argv-bootloader.args | 3 ++- - tests/qemuxml2argvdata/qemuxml2argv-channel-guestfwd.args | 3 ++- - tests/qemuxml2argvdata/qemuxml2argv-channel-virtio-auto.args | 3 ++- - tests/qemuxml2argvdata/qemuxml2argv-channel-virtio.args | 3 ++- - tests/qemuxml2argvdata/qemuxml2argv-clock-france.args | 4 ++-- - tests/qemuxml2argvdata/qemuxml2argv-clock-localtime.args | 3 ++- - tests/qemuxml2argvdata/qemuxml2argv-clock-utc.args | 3 ++- - tests/qemuxml2argvdata/qemuxml2argv-clock-variable.args | 3 ++- - tests/qemuxml2argvdata/qemuxml2argv-console-compat-auto.args | 3 ++- - tests/qemuxml2argvdata/qemuxml2argv-console-compat-chardev.args | 3 ++- - tests/qemuxml2argvdata/qemuxml2argv-console-compat.args | 3 ++- - tests/qemuxml2argvdata/qemuxml2argv-console-sclp.args | 3 ++- - tests/qemuxml2argvdata/qemuxml2argv-console-virtio-ccw.args | 3 ++- - tests/qemuxml2argvdata/qemuxml2argv-console-virtio-many.args | 3 ++- - tests/qemuxml2argvdata/qemuxml2argv-console-virtio-s390.args | 3 ++- - tests/qemuxml2argvdata/qemuxml2argv-console-virtio.args | 3 ++- - tests/qemuxml2argvdata/qemuxml2argv-cpu-eoi-disabled.args | 3 ++- - tests/qemuxml2argvdata/qemuxml2argv-cpu-eoi-enabled.args | 3 ++- - tests/qemuxml2argvdata/qemuxml2argv-cpu-exact1.args | 3 ++- - tests/qemuxml2argvdata/qemuxml2argv-cpu-exact2-nofallback.args | 3 ++- - tests/qemuxml2argvdata/qemuxml2argv-cpu-exact2.args | 3 ++- - tests/qemuxml2argvdata/qemuxml2argv-cpu-fallback.args | 2 +- - tests/qemuxml2argvdata/qemuxml2argv-cpu-host-kvmclock.args | 3 ++- - tests/qemuxml2argvdata/qemuxml2argv-cpu-host-model-fallback.args | 2 +- - tests/qemuxml2argvdata/qemuxml2argv-cpu-host-model.args | 2 +- - tests/qemuxml2argvdata/qemuxml2argv-cpu-host-passthrough.args | 2 +- - tests/qemuxml2argvdata/qemuxml2argv-cpu-kvmclock.args | 3 ++- - tests/qemuxml2argvdata/qemuxml2argv-cpu-minimum1.args | 3 ++- - tests/qemuxml2argvdata/qemuxml2argv-cpu-minimum2.args | 3 ++- - tests/qemuxml2argvdata/qemuxml2argv-cpu-numa1.args | 3 ++- - tests/qemuxml2argvdata/qemuxml2argv-cpu-numa2.args | 3 ++- - tests/qemuxml2argvdata/qemuxml2argv-cpu-strict1.args | 3 ++- - tests/qemuxml2argvdata/qemuxml2argv-cpu-topology1.args | 3 ++- - tests/qemuxml2argvdata/qemuxml2argv-cpu-topology2.args | 3 ++- - tests/qemuxml2argvdata/qemuxml2argv-cpu-topology3.args | 3 ++- - tests/qemuxml2argvdata/qemuxml2argv-cputune.args | 3 ++- - tests/qemuxml2argvdata/qemuxml2argv-disk-aio.args | 3 ++- - tests/qemuxml2argvdata/qemuxml2argv-disk-blockio.args | 2 +- - tests/qemuxml2argvdata/qemuxml2argv-disk-cdrom-empty.args | 3 ++- - .../qemuxml2argv-disk-cdrom-tray-no-device-cap.args | 3 ++- - tests/qemuxml2argvdata/qemuxml2argv-disk-cdrom-tray.args | 2 +- - tests/qemuxml2argvdata/qemuxml2argv-disk-cdrom.args | 3 ++- - tests/qemuxml2argvdata/qemuxml2argv-disk-copy_on_read.args | 2 +- - tests/qemuxml2argvdata/qemuxml2argv-disk-drive-boot-cdrom.args | 3 ++- - tests/qemuxml2argvdata/qemuxml2argv-disk-drive-boot-disk.args | 3 ++- - .../qemuxml2argvdata/qemuxml2argv-disk-drive-cache-directsync.args | 3 ++- - tests/qemuxml2argvdata/qemuxml2argv-disk-drive-cache-unsafe.args | 3 ++- - tests/qemuxml2argvdata/qemuxml2argv-disk-drive-cache-v1-none.args | 3 ++- - tests/qemuxml2argvdata/qemuxml2argv-disk-drive-cache-v1-wb.args | 3 ++- - tests/qemuxml2argvdata/qemuxml2argv-disk-drive-cache-v1-wt.args | 3 ++- - tests/qemuxml2argvdata/qemuxml2argv-disk-drive-cache-v2-none.args | 3 ++- - tests/qemuxml2argvdata/qemuxml2argv-disk-drive-cache-v2-wb.args | 3 ++- - tests/qemuxml2argvdata/qemuxml2argv-disk-drive-cache-v2-wt.args | 3 ++- - tests/qemuxml2argvdata/qemuxml2argv-disk-drive-discard.args | 2 +- - .../qemuxml2argv-disk-drive-error-policy-enospace.args | 3 ++- - .../qemuxml2argv-disk-drive-error-policy-stop.args | 3 ++- - .../qemuxml2argv-disk-drive-error-policy-wreport-rignore.args | 3 ++- - tests/qemuxml2argvdata/qemuxml2argv-disk-drive-fat.args | 3 ++- - tests/qemuxml2argvdata/qemuxml2argv-disk-drive-fmt-qcow.args | 3 ++- - .../qemuxml2argvdata/qemuxml2argv-disk-drive-network-gluster.args | 3 ++- - .../qemuxml2argv-disk-drive-network-iscsi-auth.args | 3 ++- - .../qemuxml2argv-disk-drive-network-iscsi-lun.args | 2 +- - tests/qemuxml2argvdata/qemuxml2argv-disk-drive-network-iscsi.args | 3 ++- - .../qemuxml2argv-disk-drive-network-nbd-export.args | 3 ++- - .../qemuxml2argv-disk-drive-network-nbd-ipv6-export.args | 3 ++- - .../qemuxml2argvdata/qemuxml2argv-disk-drive-network-nbd-ipv6.args | 3 ++- - .../qemuxml2argvdata/qemuxml2argv-disk-drive-network-nbd-unix.args | 3 ++- - tests/qemuxml2argvdata/qemuxml2argv-disk-drive-network-nbd.args | 3 ++- - .../qemuxml2argvdata/qemuxml2argv-disk-drive-network-rbd-auth.args | 2 +- - .../qemuxml2argv-disk-drive-network-rbd-ceph-env.args | 4 ++-- - .../qemuxml2argvdata/qemuxml2argv-disk-drive-network-rbd-ipv6.args | 2 +- - tests/qemuxml2argvdata/qemuxml2argv-disk-drive-network-rbd.args | 2 +- - .../qemuxml2argvdata/qemuxml2argv-disk-drive-network-sheepdog.args | 3 ++- - tests/qemuxml2argvdata/qemuxml2argv-disk-drive-no-boot.args | 2 +- - tests/qemuxml2argvdata/qemuxml2argv-disk-drive-readonly-disk.args | 3 ++- - .../qemuxml2argv-disk-drive-readonly-no-device.args | 3 ++- - tests/qemuxml2argvdata/qemuxml2argv-disk-drive-shared.args | 3 ++- - .../qemuxml2argv-disk-floppy-tray-no-device-cap.args | 3 ++- - tests/qemuxml2argvdata/qemuxml2argv-disk-floppy-tray.args | 2 +- - tests/qemuxml2argvdata/qemuxml2argv-disk-floppy.args | 3 ++- - tests/qemuxml2argvdata/qemuxml2argv-disk-geometry.args | 3 ++- - tests/qemuxml2argvdata/qemuxml2argv-disk-ide-drive-split.args | 2 +- - tests/qemuxml2argvdata/qemuxml2argv-disk-ide-wwn.args | 2 +- - tests/qemuxml2argvdata/qemuxml2argv-disk-ioeventfd.args | 2 +- - tests/qemuxml2argvdata/qemuxml2argv-disk-many.args | 3 ++- - tests/qemuxml2argvdata/qemuxml2argv-disk-order.args | 3 ++- - tests/qemuxml2argvdata/qemuxml2argv-disk-sata-device.args | 3 ++- - tests/qemuxml2argvdata/qemuxml2argv-disk-scsi-device-auto.args | 3 ++- - tests/qemuxml2argvdata/qemuxml2argv-disk-scsi-device.args | 3 ++- - tests/qemuxml2argvdata/qemuxml2argv-disk-scsi-disk-split.args | 2 +- - tests/qemuxml2argvdata/qemuxml2argv-disk-scsi-disk-vpd.args | 2 +- - tests/qemuxml2argvdata/qemuxml2argv-disk-scsi-disk-wwn.args | 2 +- - tests/qemuxml2argvdata/qemuxml2argv-disk-scsi-lun-passthrough.args | 3 ++- - tests/qemuxml2argvdata/qemuxml2argv-disk-scsi-megasas.args | 3 ++- - tests/qemuxml2argvdata/qemuxml2argv-disk-scsi-virtio-scsi.args | 3 ++- - tests/qemuxml2argvdata/qemuxml2argv-disk-scsi-vscsi.args | 3 ++- - tests/qemuxml2argvdata/qemuxml2argv-disk-snapshot.args | 3 ++- - tests/qemuxml2argvdata/qemuxml2argv-disk-usb-device.args | 3 ++- - tests/qemuxml2argvdata/qemuxml2argv-disk-usb.args | 3 ++- - tests/qemuxml2argvdata/qemuxml2argv-disk-virtio-ccw-many.args | 3 ++- - tests/qemuxml2argvdata/qemuxml2argv-disk-virtio-ccw.args | 3 ++- - tests/qemuxml2argvdata/qemuxml2argv-disk-virtio-s390.args | 3 ++- - tests/qemuxml2argvdata/qemuxml2argv-disk-virtio-scsi-ccw.args | 3 ++- - .../qemuxml2argvdata/qemuxml2argv-disk-virtio-scsi-num_queues.args | 2 +- - tests/qemuxml2argvdata/qemuxml2argv-disk-virtio.args | 3 ++- - tests/qemuxml2argvdata/qemuxml2argv-disk-xenvbd.args | 3 ++- - tests/qemuxml2argvdata/qemuxml2argv-eoi-disabled.args | 3 ++- - tests/qemuxml2argvdata/qemuxml2argv-eoi-enabled.args | 3 ++- - tests/qemuxml2argvdata/qemuxml2argv-event_idx.args | 2 +- - tests/qemuxml2argvdata/qemuxml2argv-floppy-drive-fat.args | 3 ++- - tests/qemuxml2argvdata/qemuxml2argv-fs9p.args | 3 ++- - tests/qemuxml2argvdata/qemuxml2argv-graphics-vnc-sasl.args | 3 ++- - tests/qemuxml2argvdata/qemuxml2argv-graphics-vnc-tls.args | 3 ++- - tests/qemuxml2argvdata/qemuxml2argv-graphics-vnc-websocket.args | 3 ++- - .../qemuxml2argvdata/qemuxml2argv-hostdev-pci-address-device.args | 3 ++- - tests/qemuxml2argvdata/qemuxml2argv-hostdev-pci-address.args | 3 ++- - tests/qemuxml2argvdata/qemuxml2argv-hostdev-scsi-boot.args | 3 ++- - tests/qemuxml2argvdata/qemuxml2argv-hostdev-scsi-lsi.args | 3 ++- - tests/qemuxml2argvdata/qemuxml2argv-hostdev-scsi-readonly.args | 3 ++- - tests/qemuxml2argvdata/qemuxml2argv-hostdev-scsi-virtio-scsi.args | 3 ++- - .../qemuxml2argv-hostdev-usb-address-device-boot.args | 3 ++- - .../qemuxml2argvdata/qemuxml2argv-hostdev-usb-address-device.args | 3 ++- - tests/qemuxml2argvdata/qemuxml2argv-hostdev-usb-address.args | 3 ++- - tests/qemuxml2argvdata/qemuxml2argv-hostdev-vfio.args | 3 ++- - tests/qemuxml2argvdata/qemuxml2argv-hugepages.args | 3 ++- - tests/qemuxml2argvdata/qemuxml2argv-hyperv-off.args | 3 ++- - tests/qemuxml2argvdata/qemuxml2argv-hyperv.args | 3 ++- - tests/qemuxml2argvdata/qemuxml2argv-input-usbmouse-addr.args | 3 ++- - tests/qemuxml2argvdata/qemuxml2argv-input-usbmouse.args | 3 ++- - tests/qemuxml2argvdata/qemuxml2argv-input-usbtablet.args | 3 ++- - tests/qemuxml2argvdata/qemuxml2argv-kvm.args | 2 +- - tests/qemuxml2argvdata/qemuxml2argv-kvmclock+eoi-disabled.args | 3 ++- - tests/qemuxml2argvdata/qemuxml2argv-kvmclock.args | 3 ++- - tests/qemuxml2argvdata/qemuxml2argv-lease.args | 3 ++- - tests/qemuxml2argvdata/qemuxml2argv-machine-aliases1.args | 2 +- - tests/qemuxml2argvdata/qemuxml2argv-machine-aliases2.args | 3 ++- - tests/qemuxml2argvdata/qemuxml2argv-machine-core-off.args | 3 ++- - tests/qemuxml2argvdata/qemuxml2argv-machine-core-on.args | 3 ++- - tests/qemuxml2argvdata/qemuxml2argv-machine-usb-opt.args | 3 ++- - tests/qemuxml2argvdata/qemuxml2argv-memtune.args | 3 ++- - tests/qemuxml2argvdata/qemuxml2argv-metadata.args | 3 ++- - tests/qemuxml2argvdata/qemuxml2argv-migrate.args | 3 ++- - tests/qemuxml2argvdata/qemuxml2argv-minimal-s390.args | 3 ++- - tests/qemuxml2argvdata/qemuxml2argv-minimal.args | 3 ++- - tests/qemuxml2argvdata/qemuxml2argv-misc-acpi.args | 3 ++- - tests/qemuxml2argvdata/qemuxml2argv-misc-disable-s3.args | 3 ++- - tests/qemuxml2argvdata/qemuxml2argv-misc-disable-suspends.args | 3 ++- - tests/qemuxml2argvdata/qemuxml2argv-misc-enable-s4.args | 3 ++- - tests/qemuxml2argvdata/qemuxml2argv-misc-no-reboot.args | 3 ++- - tests/qemuxml2argvdata/qemuxml2argv-misc-uuid.args | 3 ++- - tests/qemuxml2argvdata/qemuxml2argv-mlock-off.args | 2 +- - tests/qemuxml2argvdata/qemuxml2argv-mlock-on.args | 2 +- - tests/qemuxml2argvdata/qemuxml2argv-mlock-unsupported.args | 2 +- - tests/qemuxml2argvdata/qemuxml2argv-monitor-json.args | 3 ++- - tests/qemuxml2argvdata/qemuxml2argv-multifunction-pci-device.args | 3 ++- - tests/qemuxml2argvdata/qemuxml2argv-net-client.args | 3 ++- - tests/qemuxml2argvdata/qemuxml2argv-net-eth-ifname.args | 3 ++- - tests/qemuxml2argvdata/qemuxml2argv-net-eth-names.args | 3 ++- - tests/qemuxml2argvdata/qemuxml2argv-net-eth.args | 3 ++- - tests/qemuxml2argvdata/qemuxml2argv-net-hostdev-vfio.args | 3 ++- - tests/qemuxml2argvdata/qemuxml2argv-net-hostdev.args | 3 ++- - tests/qemuxml2argvdata/qemuxml2argv-net-mcast.args | 3 ++- - tests/qemuxml2argvdata/qemuxml2argv-net-server.args | 3 ++- - tests/qemuxml2argvdata/qemuxml2argv-net-user.args | 3 ++- - tests/qemuxml2argvdata/qemuxml2argv-net-virtio-ccw.args | 3 ++- - tests/qemuxml2argvdata/qemuxml2argv-net-virtio-device.args | 3 ++- - tests/qemuxml2argvdata/qemuxml2argv-net-virtio-netdev.args | 3 ++- - tests/qemuxml2argvdata/qemuxml2argv-net-virtio-s390.args | 3 ++- - tests/qemuxml2argvdata/qemuxml2argv-net-virtio.args | 3 ++- - tests/qemuxml2argvdata/qemuxml2argv-no-shutdown.args | 2 +- - tests/qemuxml2argvdata/qemuxml2argv-nographics-vga.args | 3 ++- - tests/qemuxml2argvdata/qemuxml2argv-nographics.args | 3 ++- - tests/qemuxml2argvdata/qemuxml2argv-nosharepages.args | 3 ++- - .../qemuxml2argv-numad-auto-memory-vcpu-cpuset.args | 3 ++- - ...emuxml2argv-numad-auto-memory-vcpu-no-cpuset-and-placement.args | 3 ++- - .../qemuxml2argv-numad-auto-vcpu-static-numatune.args | 3 ++- - .../qemuxml2argv-numad-static-memory-auto-vcpu.args | 3 ++- - tests/qemuxml2argvdata/qemuxml2argv-numad.args | 3 ++- - tests/qemuxml2argvdata/qemuxml2argv-numatune-memory.args | 3 ++- - tests/qemuxml2argvdata/qemuxml2argv-parallel-parport-chardev.args | 3 ++- - tests/qemuxml2argvdata/qemuxml2argv-parallel-tcp-chardev.args | 3 ++- - tests/qemuxml2argvdata/qemuxml2argv-parallel-tcp.args | 3 ++- - tests/qemuxml2argvdata/qemuxml2argv-pci-autoadd-addr.args | 2 +- - tests/qemuxml2argvdata/qemuxml2argv-pci-autoadd-idx.args | 2 +- - tests/qemuxml2argvdata/qemuxml2argv-pci-bridge-many-disks.args | 3 ++- - tests/qemuxml2argvdata/qemuxml2argv-pci-rom.args | 3 ++- - tests/qemuxml2argvdata/qemuxml2argv-ppc-dtb.args | 2 +- - tests/qemuxml2argvdata/qemuxml2argv-pseries-basic.args | 2 +- - tests/qemuxml2argvdata/qemuxml2argv-pseries-nvram.args | 3 ++- - tests/qemuxml2argvdata/qemuxml2argv-pseries-usb-default.args | 2 +- - tests/qemuxml2argvdata/qemuxml2argv-pseries-usb-multi.args | 2 +- - tests/qemuxml2argvdata/qemuxml2argv-pseries-vio-user-assigned.args | 2 +- - tests/qemuxml2argvdata/qemuxml2argv-pseries-vio.args | 2 +- - tests/qemuxml2argvdata/qemuxml2argv-qemu-ns-no-env.args | 3 ++- - tests/qemuxml2argvdata/qemuxml2argv-qemu-ns.args | 4 ++-- - tests/qemuxml2argvdata/qemuxml2argv-reboot-timeout-disabled.args | 3 ++- - tests/qemuxml2argvdata/qemuxml2argv-reboot-timeout-enabled.args | 3 ++- - tests/qemuxml2argvdata/qemuxml2argv-restore-v1.args | 3 ++- - tests/qemuxml2argvdata/qemuxml2argv-restore-v2-fd.args | 3 ++- - tests/qemuxml2argvdata/qemuxml2argv-restore-v2.args | 3 ++- - tests/qemuxml2argvdata/qemuxml2argv-s390-piix-controllers.args | 2 +- - tests/qemuxml2argvdata/qemuxml2argv-s390-usb-none.args | 2 +- - .../qemuxml2argvdata/qemuxml2argv-seclabel-dynamic-baselabel.args | 3 ++- - tests/qemuxml2argvdata/qemuxml2argv-seclabel-dynamic-override.args | 3 ++- - tests/qemuxml2argvdata/qemuxml2argv-seclabel-dynamic.args | 3 ++- - tests/qemuxml2argvdata/qemuxml2argv-seclabel-none.args | 3 ++- - tests/qemuxml2argvdata/qemuxml2argv-seclabel-static-relabel.args | 3 ++- - tests/qemuxml2argvdata/qemuxml2argv-seclabel-static.args | 3 ++- - tests/qemuxml2argvdata/qemuxml2argv-serial-dev-chardev.args | 3 ++- - tests/qemuxml2argvdata/qemuxml2argv-serial-dev.args | 3 ++- - tests/qemuxml2argvdata/qemuxml2argv-serial-file-chardev.args | 3 ++- - tests/qemuxml2argvdata/qemuxml2argv-serial-file.args | 3 ++- - tests/qemuxml2argvdata/qemuxml2argv-serial-many-chardev.args | 3 ++- - tests/qemuxml2argvdata/qemuxml2argv-serial-many.args | 3 ++- - tests/qemuxml2argvdata/qemuxml2argv-serial-pty-chardev.args | 3 ++- - tests/qemuxml2argvdata/qemuxml2argv-serial-pty.args | 3 ++- - tests/qemuxml2argvdata/qemuxml2argv-serial-tcp-chardev.args | 3 ++- - tests/qemuxml2argvdata/qemuxml2argv-serial-tcp-telnet-chardev.args | 3 ++- - tests/qemuxml2argvdata/qemuxml2argv-serial-tcp-telnet.args | 3 ++- - tests/qemuxml2argvdata/qemuxml2argv-serial-tcp.args | 3 ++- - tests/qemuxml2argvdata/qemuxml2argv-serial-udp-chardev.args | 3 ++- - tests/qemuxml2argvdata/qemuxml2argv-serial-udp.args | 3 ++- - tests/qemuxml2argvdata/qemuxml2argv-serial-unix-chardev.args | 3 ++- - tests/qemuxml2argvdata/qemuxml2argv-serial-unix.args | 3 ++- - tests/qemuxml2argvdata/qemuxml2argv-serial-vc-chardev.args | 3 ++- - tests/qemuxml2argvdata/qemuxml2argv-serial-vc.args | 3 ++- - tests/qemuxml2argvdata/qemuxml2argv-smartcard-controller.args | 3 ++- - .../qemuxml2argvdata/qemuxml2argv-smartcard-host-certificates.args | 3 ++- - tests/qemuxml2argvdata/qemuxml2argv-smartcard-host.args | 3 ++- - .../qemuxml2argv-smartcard-passthrough-spicevmc.args | 3 ++- - tests/qemuxml2argvdata/qemuxml2argv-smartcard-passthrough-tcp.args | 3 ++- - tests/qemuxml2argvdata/qemuxml2argv-smbios.args | 3 ++- - tests/qemuxml2argvdata/qemuxml2argv-smp.args | 3 ++- - tests/qemuxml2argvdata/qemuxml2argv-sound-device.args | 3 ++- - tests/qemuxml2argvdata/qemuxml2argv-sound.args | 3 ++- - tests/qemuxml2argvdata/qemuxml2argv-tpm-passthrough.args | 2 +- - tests/qemuxml2argvdata/qemuxml2argv-usb-controller.args | 3 ++- - tests/qemuxml2argvdata/qemuxml2argv-usb-hub.args | 3 ++- - tests/qemuxml2argvdata/qemuxml2argv-usb-ich9-companion.args | 3 ++- - tests/qemuxml2argvdata/qemuxml2argv-usb-ich9-ehci-addr.args | 3 ++- - tests/qemuxml2argvdata/qemuxml2argv-usb-none.args | 3 ++- - tests/qemuxml2argvdata/qemuxml2argv-usb-piix3-controller.args | 3 ++- - tests/qemuxml2argvdata/qemuxml2argv-usb-ports.args | 3 ++- - tests/qemuxml2argvdata/qemuxml2argv-usb-redir-boot.args | 3 ++- - tests/qemuxml2argvdata/qemuxml2argv-usb-redir-filter.args | 3 ++- - tests/qemuxml2argvdata/qemuxml2argv-usb-redir.args | 3 ++- - tests/qemuxml2argvdata/qemuxml2argv-usb1-usb2.args | 3 ++- - tests/qemuxml2argvdata/qemuxml2argv-virtio-lun.args | 2 +- - tests/qemuxml2argvdata/qemuxml2argv-virtio-rng-ccw.args | 3 ++- - tests/qemuxml2argvdata/qemuxml2argv-virtio-rng-default.args | 3 ++- - tests/qemuxml2argvdata/qemuxml2argv-virtio-rng-egd.args | 3 ++- - tests/qemuxml2argvdata/qemuxml2argv-virtio-rng-random.args | 3 ++- - tests/qemuxml2argvdata/qemuxml2argv-watchdog-device.args | 3 ++- - tests/qemuxml2argvdata/qemuxml2argv-watchdog-dump.args | 3 ++- - tests/qemuxml2argvdata/qemuxml2argv-watchdog.args | 3 ++- - tests/qemuxmlnsdata/qemuxmlns-qemu-ns-commandline-ns0.args | 2 +- - tests/qemuxmlnsdata/qemuxmlns-qemu-ns-commandline-ns1.args | 2 +- - tests/qemuxmlnsdata/qemuxmlns-qemu-ns-commandline.args | 2 +- - tests/qemuxmlnsdata/qemuxmlns-qemu-ns-domain-commandline-ns0.args | 2 +- - tests/qemuxmlnsdata/qemuxmlns-qemu-ns-domain-commandline.args | 2 +- - tests/qemuxmlnsdata/qemuxmlns-qemu-ns-domain-ns0.args | 2 +- - tests/qemuxmlnsdata/qemuxmlns-qemu-ns-domain.args | 2 +- - 281 files changed, 516 insertions(+), 284 deletions(-) +Add a qemu.conf parameter nographics_allow_host_audio, that if enabled +will pass through QEMU_AUDIO_DRV from sysconfig (similar to +vnc_allow_host_audio) +--- + src/qemu/libvirtd_qemu.aug | 3 +++ + src/qemu/qemu.conf | 9 +++++++++ + src/qemu/qemu_cgroup.c | 2 +- + src/qemu/qemu_command.c | 9 ++++++++- + src/qemu/qemu_conf.c | 1 + + src/qemu/qemu_conf.h | 1 + + src/qemu/test_libvirtd_qemu.aug.in | 1 + + tests/qemuxml2argvdata/qemuxml2argv-balloon-device-auto.args | 3 ++- + tests/qemuxml2argvdata/qemuxml2argv-balloon-device-period.args | 3 ++- + tests/qemuxml2argvdata/qemuxml2argv-balloon-device.args | 3 ++- + tests/qemuxml2argvdata/qemuxml2argv-bios.args | 2 +- + tests/qemuxml2argvdata/qemuxml2argv-blkdeviotune.args | 3 ++- + tests/qemuxml2argvdata/qemuxml2argv-blkiotune-device.args | 3 ++- + tests/qemuxml2argvdata/qemuxml2argv-blkiotune.args | 3 ++- + tests/qemuxml2argvdata/qemuxml2argv-boot-cdrom.args | 3 ++- + tests/qemuxml2argvdata/qemuxml2argv-boot-complex-bootindex.args | 2 +- + tests/qemuxml2argvdata/qemuxml2argv-boot-complex.args | 2 +- + tests/qemuxml2argvdata/qemuxml2argv-boot-floppy.args | 3 ++- + .../qemuxml2argv-boot-menu-disable-drive-bootindex.args | 3 ++- + tests/qemuxml2argvdata/qemuxml2argv-boot-menu-disable-drive.args | 3 ++- + tests/qemuxml2argvdata/qemuxml2argv-boot-menu-disable.args | 3 ++- + tests/qemuxml2argvdata/qemuxml2argv-boot-menu-enable.args | 3 ++- + tests/qemuxml2argvdata/qemuxml2argv-boot-multi.args | 3 ++- + tests/qemuxml2argvdata/qemuxml2argv-boot-network.args | 3 ++- + tests/qemuxml2argvdata/qemuxml2argv-boot-order.args | 3 ++- + tests/qemuxml2argvdata/qemuxml2argv-bootloader.args | 3 ++- + tests/qemuxml2argvdata/qemuxml2argv-channel-guestfwd.args | 3 ++- + tests/qemuxml2argvdata/qemuxml2argv-channel-virtio-auto.args | 3 ++- + tests/qemuxml2argvdata/qemuxml2argv-channel-virtio.args | 3 ++- + tests/qemuxml2argvdata/qemuxml2argv-clock-france.args | 4 ++-- + tests/qemuxml2argvdata/qemuxml2argv-clock-localtime.args | 3 ++- + tests/qemuxml2argvdata/qemuxml2argv-clock-utc.args | 3 ++- + tests/qemuxml2argvdata/qemuxml2argv-clock-variable.args | 3 ++- + tests/qemuxml2argvdata/qemuxml2argv-console-compat-auto.args | 3 ++- + tests/qemuxml2argvdata/qemuxml2argv-console-compat-chardev.args | 3 ++- + tests/qemuxml2argvdata/qemuxml2argv-console-compat.args | 3 ++- + tests/qemuxml2argvdata/qemuxml2argv-console-sclp.args | 3 ++- + tests/qemuxml2argvdata/qemuxml2argv-console-virtio-ccw.args | 3 ++- + tests/qemuxml2argvdata/qemuxml2argv-console-virtio-many.args | 3 ++- + tests/qemuxml2argvdata/qemuxml2argv-console-virtio-s390.args | 3 ++- + tests/qemuxml2argvdata/qemuxml2argv-console-virtio.args | 3 ++- + tests/qemuxml2argvdata/qemuxml2argv-cpu-eoi-disabled.args | 3 ++- + tests/qemuxml2argvdata/qemuxml2argv-cpu-eoi-enabled.args | 3 ++- + tests/qemuxml2argvdata/qemuxml2argv-cpu-exact1.args | 3 ++- + tests/qemuxml2argvdata/qemuxml2argv-cpu-exact2-nofallback.args | 3 ++- + tests/qemuxml2argvdata/qemuxml2argv-cpu-exact2.args | 3 ++- + tests/qemuxml2argvdata/qemuxml2argv-cpu-fallback.args | 2 +- + tests/qemuxml2argvdata/qemuxml2argv-cpu-host-kvmclock.args | 3 ++- + tests/qemuxml2argvdata/qemuxml2argv-cpu-host-model-fallback.args | 2 +- + tests/qemuxml2argvdata/qemuxml2argv-cpu-host-model.args | 2 +- + tests/qemuxml2argvdata/qemuxml2argv-cpu-host-passthrough.args | 2 +- + tests/qemuxml2argvdata/qemuxml2argv-cpu-kvmclock.args | 3 ++- + tests/qemuxml2argvdata/qemuxml2argv-cpu-minimum1.args | 3 ++- + tests/qemuxml2argvdata/qemuxml2argv-cpu-minimum2.args | 3 ++- + tests/qemuxml2argvdata/qemuxml2argv-cpu-numa1.args | 3 ++- + tests/qemuxml2argvdata/qemuxml2argv-cpu-numa2.args | 3 ++- + tests/qemuxml2argvdata/qemuxml2argv-cpu-strict1.args | 3 ++- + tests/qemuxml2argvdata/qemuxml2argv-cpu-topology1.args | 3 ++- + tests/qemuxml2argvdata/qemuxml2argv-cpu-topology2.args | 3 ++- + tests/qemuxml2argvdata/qemuxml2argv-cpu-topology3.args | 3 ++- + tests/qemuxml2argvdata/qemuxml2argv-cputune.args | 3 ++- + tests/qemuxml2argvdata/qemuxml2argv-disk-aio.args | 3 ++- + tests/qemuxml2argvdata/qemuxml2argv-disk-blockio.args | 2 +- + tests/qemuxml2argvdata/qemuxml2argv-disk-cdrom-empty.args | 3 ++- + tests/qemuxml2argvdata/qemuxml2argv-disk-cdrom-network-ftp.args | 2 +- + tests/qemuxml2argvdata/qemuxml2argv-disk-cdrom-network-http.args | 2 +- + .../qemuxml2argv-disk-cdrom-tray-no-device-cap.args | 3 ++- + tests/qemuxml2argvdata/qemuxml2argv-disk-cdrom-tray.args | 2 +- + tests/qemuxml2argvdata/qemuxml2argv-disk-cdrom.args | 3 ++- + tests/qemuxml2argvdata/qemuxml2argv-disk-copy_on_read.args | 2 +- + tests/qemuxml2argvdata/qemuxml2argv-disk-drive-boot-cdrom.args | 3 ++- + tests/qemuxml2argvdata/qemuxml2argv-disk-drive-boot-disk.args | 3 ++- + .../qemuxml2argv-disk-drive-cache-directsync.args | 3 ++- + tests/qemuxml2argvdata/qemuxml2argv-disk-drive-cache-unsafe.args | 3 ++- + .../qemuxml2argvdata/qemuxml2argv-disk-drive-cache-v1-none.args | 3 ++- + tests/qemuxml2argvdata/qemuxml2argv-disk-drive-cache-v1-wb.args | 3 ++- + tests/qemuxml2argvdata/qemuxml2argv-disk-drive-cache-v1-wt.args | 3 ++- + .../qemuxml2argvdata/qemuxml2argv-disk-drive-cache-v2-none.args | 3 ++- + tests/qemuxml2argvdata/qemuxml2argv-disk-drive-cache-v2-wb.args | 3 ++- + tests/qemuxml2argvdata/qemuxml2argv-disk-drive-cache-v2-wt.args | 3 ++- + tests/qemuxml2argvdata/qemuxml2argv-disk-drive-discard.args | 2 +- + .../qemuxml2argv-disk-drive-error-policy-enospace.args | 3 ++- + .../qemuxml2argv-disk-drive-error-policy-stop.args | 3 ++- + .../qemuxml2argv-disk-drive-error-policy-wreport-rignore.args | 3 ++- + tests/qemuxml2argvdata/qemuxml2argv-disk-drive-fat.args | 3 ++- + tests/qemuxml2argvdata/qemuxml2argv-disk-drive-fmt-qcow.args | 3 ++- + .../qemuxml2argv-disk-drive-network-gluster.args | 3 ++- + .../qemuxml2argv-disk-drive-network-iscsi-auth.args | 3 ++- + .../qemuxml2argv-disk-drive-network-iscsi-lun.args | 2 +- + .../qemuxml2argvdata/qemuxml2argv-disk-drive-network-iscsi.args | 3 ++- + .../qemuxml2argv-disk-drive-network-nbd-export.args | 3 ++- + .../qemuxml2argv-disk-drive-network-nbd-ipv6-export.args | 3 ++- + .../qemuxml2argv-disk-drive-network-nbd-ipv6.args | 3 ++- + .../qemuxml2argv-disk-drive-network-nbd-unix.args | 3 ++- + tests/qemuxml2argvdata/qemuxml2argv-disk-drive-network-nbd.args | 3 ++- + .../qemuxml2argv-disk-drive-network-rbd-auth.args | 2 +- + .../qemuxml2argv-disk-drive-network-rbd-ceph-env.args | 4 ++-- + .../qemuxml2argv-disk-drive-network-rbd-ipv6.args | 2 +- + tests/qemuxml2argvdata/qemuxml2argv-disk-drive-network-rbd.args | 2 +- + .../qemuxml2argv-disk-drive-network-sheepdog.args | 3 ++- + tests/qemuxml2argvdata/qemuxml2argv-disk-drive-no-boot.args | 2 +- + .../qemuxml2argvdata/qemuxml2argv-disk-drive-readonly-disk.args | 3 ++- + .../qemuxml2argv-disk-drive-readonly-no-device.args | 3 ++- + tests/qemuxml2argvdata/qemuxml2argv-disk-drive-shared.args | 3 ++- + .../qemuxml2argv-disk-floppy-tray-no-device-cap.args | 3 ++- + tests/qemuxml2argvdata/qemuxml2argv-disk-floppy-tray.args | 2 +- + tests/qemuxml2argvdata/qemuxml2argv-disk-floppy.args | 3 ++- + tests/qemuxml2argvdata/qemuxml2argv-disk-geometry.args | 3 ++- + tests/qemuxml2argvdata/qemuxml2argv-disk-ide-drive-split.args | 2 +- + tests/qemuxml2argvdata/qemuxml2argv-disk-ide-wwn.args | 2 +- + tests/qemuxml2argvdata/qemuxml2argv-disk-ioeventfd.args | 2 +- + tests/qemuxml2argvdata/qemuxml2argv-disk-many.args | 3 ++- + tests/qemuxml2argvdata/qemuxml2argv-disk-order.args | 3 ++- + tests/qemuxml2argvdata/qemuxml2argv-disk-sata-device.args | 3 ++- + tests/qemuxml2argvdata/qemuxml2argv-disk-scsi-device-auto.args | 3 ++- + tests/qemuxml2argvdata/qemuxml2argv-disk-scsi-device.args | 3 ++- + tests/qemuxml2argvdata/qemuxml2argv-disk-scsi-disk-split.args | 2 +- + tests/qemuxml2argvdata/qemuxml2argv-disk-scsi-disk-vpd.args | 2 +- + tests/qemuxml2argvdata/qemuxml2argv-disk-scsi-disk-wwn.args | 2 +- + .../qemuxml2argvdata/qemuxml2argv-disk-scsi-lun-passthrough.args | 3 ++- + tests/qemuxml2argvdata/qemuxml2argv-disk-scsi-megasas.args | 3 ++- + tests/qemuxml2argvdata/qemuxml2argv-disk-scsi-virtio-scsi.args | 3 ++- + tests/qemuxml2argvdata/qemuxml2argv-disk-scsi-vscsi.args | 3 ++- + tests/qemuxml2argvdata/qemuxml2argv-disk-snapshot.args | 3 ++- + tests/qemuxml2argvdata/qemuxml2argv-disk-usb-device.args | 3 ++- + tests/qemuxml2argvdata/qemuxml2argv-disk-usb.args | 3 ++- + tests/qemuxml2argvdata/qemuxml2argv-disk-virtio-ccw-many.args | 3 ++- + tests/qemuxml2argvdata/qemuxml2argv-disk-virtio-ccw.args | 3 ++- + tests/qemuxml2argvdata/qemuxml2argv-disk-virtio-s390.args | 3 ++- + tests/qemuxml2argvdata/qemuxml2argv-disk-virtio-scsi-ccw.args | 3 ++- + .../qemuxml2argv-disk-virtio-scsi-num_queues.args | 2 +- + tests/qemuxml2argvdata/qemuxml2argv-disk-virtio.args | 3 ++- + tests/qemuxml2argvdata/qemuxml2argv-disk-xenvbd.args | 3 ++- + tests/qemuxml2argvdata/qemuxml2argv-eoi-disabled.args | 3 ++- + tests/qemuxml2argvdata/qemuxml2argv-eoi-enabled.args | 3 ++- + tests/qemuxml2argvdata/qemuxml2argv-event_idx.args | 2 +- + tests/qemuxml2argvdata/qemuxml2argv-floppy-drive-fat.args | 3 ++- + tests/qemuxml2argvdata/qemuxml2argv-fs9p.args | 3 ++- + tests/qemuxml2argvdata/qemuxml2argv-graphics-vnc-sasl.args | 3 ++- + tests/qemuxml2argvdata/qemuxml2argv-graphics-vnc-tls.args | 3 ++- + tests/qemuxml2argvdata/qemuxml2argv-graphics-vnc-websocket.args | 3 ++- + .../qemuxml2argv-hostdev-pci-address-device.args | 3 ++- + tests/qemuxml2argvdata/qemuxml2argv-hostdev-pci-address.args | 3 ++- + tests/qemuxml2argvdata/qemuxml2argv-hostdev-scsi-boot.args | 3 ++- + tests/qemuxml2argvdata/qemuxml2argv-hostdev-scsi-lsi.args | 3 ++- + tests/qemuxml2argvdata/qemuxml2argv-hostdev-scsi-readonly.args | 3 ++- + .../qemuxml2argvdata/qemuxml2argv-hostdev-scsi-virtio-scsi.args | 3 ++- + .../qemuxml2argv-hostdev-usb-address-device-boot.args | 3 ++- + .../qemuxml2argv-hostdev-usb-address-device.args | 3 ++- + tests/qemuxml2argvdata/qemuxml2argv-hostdev-usb-address.args | 3 ++- + tests/qemuxml2argvdata/qemuxml2argv-hostdev-vfio.args | 3 ++- + tests/qemuxml2argvdata/qemuxml2argv-hotplug-base.args | 2 +- + tests/qemuxml2argvdata/qemuxml2argv-hugepages.args | 3 ++- + tests/qemuxml2argvdata/qemuxml2argv-hyperv-off.args | 3 ++- + tests/qemuxml2argvdata/qemuxml2argv-hyperv.args | 3 ++- + tests/qemuxml2argvdata/qemuxml2argv-input-usbmouse-addr.args | 3 ++- + tests/qemuxml2argvdata/qemuxml2argv-input-usbmouse.args | 3 ++- + tests/qemuxml2argvdata/qemuxml2argv-input-usbtablet.args | 3 ++- + tests/qemuxml2argvdata/qemuxml2argv-kvm.args | 2 +- + tests/qemuxml2argvdata/qemuxml2argv-kvmclock+eoi-disabled.args | 3 ++- + tests/qemuxml2argvdata/qemuxml2argv-kvmclock.args | 3 ++- + tests/qemuxml2argvdata/qemuxml2argv-lease.args | 3 ++- + tests/qemuxml2argvdata/qemuxml2argv-machine-aliases1.args | 2 +- + tests/qemuxml2argvdata/qemuxml2argv-machine-aliases2.args | 3 ++- + tests/qemuxml2argvdata/qemuxml2argv-machine-core-off.args | 3 ++- + tests/qemuxml2argvdata/qemuxml2argv-machine-core-on.args | 3 ++- + tests/qemuxml2argvdata/qemuxml2argv-machine-usb-opt.args | 3 ++- + tests/qemuxml2argvdata/qemuxml2argv-memtune.args | 3 ++- + tests/qemuxml2argvdata/qemuxml2argv-metadata.args | 3 ++- + tests/qemuxml2argvdata/qemuxml2argv-migrate.args | 3 ++- + tests/qemuxml2argvdata/qemuxml2argv-minimal-s390.args | 3 ++- + tests/qemuxml2argvdata/qemuxml2argv-minimal.args | 3 ++- + tests/qemuxml2argvdata/qemuxml2argv-misc-acpi.args | 3 ++- + tests/qemuxml2argvdata/qemuxml2argv-misc-disable-s3.args | 3 ++- + tests/qemuxml2argvdata/qemuxml2argv-misc-disable-suspends.args | 3 ++- + tests/qemuxml2argvdata/qemuxml2argv-misc-enable-s4.args | 3 ++- + tests/qemuxml2argvdata/qemuxml2argv-misc-no-reboot.args | 3 ++- + tests/qemuxml2argvdata/qemuxml2argv-misc-uuid.args | 3 ++- + tests/qemuxml2argvdata/qemuxml2argv-mlock-off.args | 2 +- + tests/qemuxml2argvdata/qemuxml2argv-mlock-on.args | 2 +- + tests/qemuxml2argvdata/qemuxml2argv-mlock-unsupported.args | 2 +- + tests/qemuxml2argvdata/qemuxml2argv-monitor-json.args | 3 ++- + .../qemuxml2argvdata/qemuxml2argv-multifunction-pci-device.args | 3 ++- + tests/qemuxml2argvdata/qemuxml2argv-net-client.args | 3 ++- + tests/qemuxml2argvdata/qemuxml2argv-net-eth-ifname.args | 3 ++- + tests/qemuxml2argvdata/qemuxml2argv-net-eth-names.args | 3 ++- + tests/qemuxml2argvdata/qemuxml2argv-net-eth.args | 3 ++- + tests/qemuxml2argvdata/qemuxml2argv-net-hostdev-vfio.args | 3 ++- + tests/qemuxml2argvdata/qemuxml2argv-net-hostdev.args | 3 ++- + tests/qemuxml2argvdata/qemuxml2argv-net-mcast.args | 3 ++- + tests/qemuxml2argvdata/qemuxml2argv-net-server.args | 3 ++- + tests/qemuxml2argvdata/qemuxml2argv-net-user.args | 3 ++- + tests/qemuxml2argvdata/qemuxml2argv-net-virtio-ccw.args | 3 ++- + tests/qemuxml2argvdata/qemuxml2argv-net-virtio-device.args | 3 ++- + tests/qemuxml2argvdata/qemuxml2argv-net-virtio-netdev.args | 3 ++- + tests/qemuxml2argvdata/qemuxml2argv-net-virtio-s390.args | 3 ++- + tests/qemuxml2argvdata/qemuxml2argv-net-virtio.args | 3 ++- + tests/qemuxml2argvdata/qemuxml2argv-no-shutdown.args | 2 +- + tests/qemuxml2argvdata/qemuxml2argv-nographics-vga.args | 3 ++- + tests/qemuxml2argvdata/qemuxml2argv-nographics.args | 3 ++- + tests/qemuxml2argvdata/qemuxml2argv-nosharepages.args | 3 ++- + .../qemuxml2argv-numad-auto-memory-vcpu-cpuset.args | 3 ++- + ...uxml2argv-numad-auto-memory-vcpu-no-cpuset-and-placement.args | 3 ++- + .../qemuxml2argv-numad-auto-vcpu-static-numatune.args | 3 ++- + .../qemuxml2argv-numad-static-memory-auto-vcpu.args | 3 ++- + tests/qemuxml2argvdata/qemuxml2argv-numad.args | 3 ++- + tests/qemuxml2argvdata/qemuxml2argv-numatune-memory.args | 3 ++- + .../qemuxml2argvdata/qemuxml2argv-parallel-parport-chardev.args | 3 ++- + tests/qemuxml2argvdata/qemuxml2argv-parallel-tcp-chardev.args | 3 ++- + tests/qemuxml2argvdata/qemuxml2argv-parallel-tcp.args | 3 ++- + tests/qemuxml2argvdata/qemuxml2argv-pci-autoadd-addr.args | 2 +- + tests/qemuxml2argvdata/qemuxml2argv-pci-autoadd-idx.args | 2 +- + tests/qemuxml2argvdata/qemuxml2argv-pci-bridge-many-disks.args | 3 ++- + tests/qemuxml2argvdata/qemuxml2argv-pci-rom.args | 3 ++- + tests/qemuxml2argvdata/qemuxml2argv-pcie-root.args | 2 +- + tests/qemuxml2argvdata/qemuxml2argv-pcihole64-q35.args | 2 +- + tests/qemuxml2argvdata/qemuxml2argv-pcihole64.args | 2 +- + tests/qemuxml2argvdata/qemuxml2argv-ppc-dtb.args | 2 +- + tests/qemuxml2argvdata/qemuxml2argv-pseries-basic.args | 2 +- + tests/qemuxml2argvdata/qemuxml2argv-pseries-nvram.args | 3 ++- + tests/qemuxml2argvdata/qemuxml2argv-pseries-usb-default.args | 2 +- + tests/qemuxml2argvdata/qemuxml2argv-pseries-usb-multi.args | 2 +- + .../qemuxml2argvdata/qemuxml2argv-pseries-vio-user-assigned.args | 2 +- + tests/qemuxml2argvdata/qemuxml2argv-pseries-vio.args | 2 +- + tests/qemuxml2argvdata/qemuxml2argv-q35.args | 2 +- + tests/qemuxml2argvdata/qemuxml2argv-qemu-ns-no-env.args | 3 ++- + tests/qemuxml2argvdata/qemuxml2argv-qemu-ns.args | 4 ++-- + tests/qemuxml2argvdata/qemuxml2argv-reboot-timeout-disabled.args | 3 ++- + tests/qemuxml2argvdata/qemuxml2argv-reboot-timeout-enabled.args | 3 ++- + tests/qemuxml2argvdata/qemuxml2argv-restore-v1.args | 3 ++- + tests/qemuxml2argvdata/qemuxml2argv-restore-v2-fd.args | 3 ++- + tests/qemuxml2argvdata/qemuxml2argv-restore-v2.args | 3 ++- + tests/qemuxml2argvdata/qemuxml2argv-s390-piix-controllers.args | 2 +- + tests/qemuxml2argvdata/qemuxml2argv-s390-usb-none.args | 2 +- + .../qemuxml2argv-seclabel-dynamic-baselabel.args | 3 ++- + .../qemuxml2argv-seclabel-dynamic-labelskip.args | 2 +- + .../qemuxml2argvdata/qemuxml2argv-seclabel-dynamic-override.args | 3 ++- + tests/qemuxml2argvdata/qemuxml2argv-seclabel-dynamic.args | 3 ++- + tests/qemuxml2argvdata/qemuxml2argv-seclabel-none.args | 3 ++- + .../qemuxml2argvdata/qemuxml2argv-seclabel-static-labelskip.args | 2 +- + tests/qemuxml2argvdata/qemuxml2argv-seclabel-static-relabel.args | 3 ++- + tests/qemuxml2argvdata/qemuxml2argv-seclabel-static.args | 3 ++- + tests/qemuxml2argvdata/qemuxml2argv-serial-dev-chardev.args | 3 ++- + tests/qemuxml2argvdata/qemuxml2argv-serial-dev.args | 3 ++- + tests/qemuxml2argvdata/qemuxml2argv-serial-file-chardev.args | 3 ++- + tests/qemuxml2argvdata/qemuxml2argv-serial-file.args | 3 ++- + tests/qemuxml2argvdata/qemuxml2argv-serial-many-chardev.args | 3 ++- + tests/qemuxml2argvdata/qemuxml2argv-serial-many.args | 3 ++- + tests/qemuxml2argvdata/qemuxml2argv-serial-pty-chardev.args | 3 ++- + tests/qemuxml2argvdata/qemuxml2argv-serial-pty.args | 3 ++- + tests/qemuxml2argvdata/qemuxml2argv-serial-tcp-chardev.args | 3 ++- + .../qemuxml2argvdata/qemuxml2argv-serial-tcp-telnet-chardev.args | 3 ++- + tests/qemuxml2argvdata/qemuxml2argv-serial-tcp-telnet.args | 3 ++- + tests/qemuxml2argvdata/qemuxml2argv-serial-tcp.args | 3 ++- + tests/qemuxml2argvdata/qemuxml2argv-serial-udp-chardev.args | 3 ++- + tests/qemuxml2argvdata/qemuxml2argv-serial-udp.args | 3 ++- + tests/qemuxml2argvdata/qemuxml2argv-serial-unix-chardev.args | 3 ++- + tests/qemuxml2argvdata/qemuxml2argv-serial-unix.args | 3 ++- + tests/qemuxml2argvdata/qemuxml2argv-serial-vc-chardev.args | 3 ++- + tests/qemuxml2argvdata/qemuxml2argv-serial-vc.args | 3 ++- + tests/qemuxml2argvdata/qemuxml2argv-smartcard-controller.args | 3 ++- + .../qemuxml2argv-smartcard-host-certificates.args | 3 ++- + tests/qemuxml2argvdata/qemuxml2argv-smartcard-host.args | 3 ++- + .../qemuxml2argv-smartcard-passthrough-spicevmc.args | 3 ++- + .../qemuxml2argvdata/qemuxml2argv-smartcard-passthrough-tcp.args | 3 ++- + tests/qemuxml2argvdata/qemuxml2argv-smbios.args | 3 ++- + tests/qemuxml2argvdata/qemuxml2argv-smp.args | 3 ++- + tests/qemuxml2argvdata/qemuxml2argv-sound-device.args | 3 ++- + tests/qemuxml2argvdata/qemuxml2argv-sound.args | 3 ++- + tests/qemuxml2argvdata/qemuxml2argv-tpm-passthrough.args | 2 +- + tests/qemuxml2argvdata/qemuxml2argv-usb-controller.args | 3 ++- + tests/qemuxml2argvdata/qemuxml2argv-usb-hub.args | 3 ++- + tests/qemuxml2argvdata/qemuxml2argv-usb-ich9-companion.args | 3 ++- + tests/qemuxml2argvdata/qemuxml2argv-usb-ich9-ehci-addr.args | 3 ++- + tests/qemuxml2argvdata/qemuxml2argv-usb-none.args | 3 ++- + tests/qemuxml2argvdata/qemuxml2argv-usb-piix3-controller.args | 3 ++- + tests/qemuxml2argvdata/qemuxml2argv-usb-ports.args | 3 ++- + tests/qemuxml2argvdata/qemuxml2argv-usb-redir-boot.args | 3 ++- + tests/qemuxml2argvdata/qemuxml2argv-usb-redir-filter.args | 3 ++- + tests/qemuxml2argvdata/qemuxml2argv-usb-redir.args | 3 ++- + tests/qemuxml2argvdata/qemuxml2argv-usb1-usb2.args | 3 ++- + tests/qemuxml2argvdata/qemuxml2argv-virtio-lun.args | 2 +- + tests/qemuxml2argvdata/qemuxml2argv-virtio-rng-ccw.args | 3 ++- + tests/qemuxml2argvdata/qemuxml2argv-virtio-rng-default.args | 3 ++- + tests/qemuxml2argvdata/qemuxml2argv-virtio-rng-egd.args | 3 ++- + tests/qemuxml2argvdata/qemuxml2argv-virtio-rng-random.args | 3 ++- + tests/qemuxml2argvdata/qemuxml2argv-watchdog-device.args | 3 ++- + tests/qemuxml2argvdata/qemuxml2argv-watchdog-dump.args | 3 ++- + tests/qemuxml2argvdata/qemuxml2argv-watchdog.args | 3 ++- + tests/qemuxmlnsdata/qemuxmlns-qemu-ns-commandline-ns0.args | 2 +- + tests/qemuxmlnsdata/qemuxmlns-qemu-ns-commandline-ns1.args | 2 +- + tests/qemuxmlnsdata/qemuxmlns-qemu-ns-commandline.args | 2 +- + .../qemuxmlnsdata/qemuxmlns-qemu-ns-domain-commandline-ns0.args | 2 +- + tests/qemuxmlnsdata/qemuxmlns-qemu-ns-domain-commandline.args | 2 +- + tests/qemuxmlnsdata/qemuxmlns-qemu-ns-domain-ns0.args | 2 +- + tests/qemuxmlnsdata/qemuxmlns-qemu-ns-domain.args | 2 +- + 296 files changed, 543 insertions(+), 294 deletions(-) + +diff --git a/src/qemu/libvirtd_qemu.aug b/src/qemu/libvirtd_qemu.aug +index 5344125..cd13d53 100644 +--- a/src/qemu/libvirtd_qemu.aug ++++ b/src/qemu/libvirtd_qemu.aug +@@ -39,6 +39,8 @@ module Libvirtd_qemu = + | str_entry "spice_tls_x509_cert_dir" + | str_entry "spice_password" + ++ let nogfx_entry = bool_entry "nographics_allow_host_audio" ++ + let remote_display_entry = int_entry "remote_display_port_min" + | int_entry "remote_display_port_max" + | int_entry "remote_websocket_port_min" +@@ -79,6 +81,7 @@ module Libvirtd_qemu = + (* Each entry in the config is one of the following ... *) + let entry = vnc_entry + | spice_entry ++ | nogfx_entry + | remote_display_entry + | security_entry + | save_entry +diff --git a/src/qemu/qemu.conf b/src/qemu/qemu.conf +index cdf1ec4..5fd6263 100644 +--- a/src/qemu/qemu.conf ++++ b/src/qemu/qemu.conf +@@ -140,6 +140,15 @@ + #spice_password = "XYZ12345" + + ++# By default, if no graphical front end is configured, libvirt will disable ++# QEMU audio output since directly talking to alsa/pulseaudio may not work ++# with various security settings. If you know what you're doing, enable ++# the setting below and libvirt will passthrough the QEMU_AUDIO_DRV ++# environment variable when using nographics. ++# ++#nographics_allow_host_audio = 1 ++ ++ + # Override the port for creating both VNC and SPICE sessions (min). + # This defaults to 5900 and increases for consecutive sessions + # or when ports are occupied, until it hits the maximum. +diff --git a/src/qemu/qemu_cgroup.c b/src/qemu/qemu_cgroup.c +index e27945e..cf41c33 100644 +--- a/src/qemu/qemu_cgroup.c ++++ b/src/qemu/qemu_cgroup.c +@@ -488,7 +488,7 @@ qemuSetupDevicesCgroup(virQEMUDriverPtr driver, + defaultDeviceACL; + + if (vm->def->nsounds && +- (!vm->def->ngraphics || ++ ((!vm->def->ngraphics && cfg->nogfxAllowHostAudio) || + ((vm->def->graphics[0]->type == VIR_DOMAIN_GRAPHICS_TYPE_VNC && + cfg->vncAllowHostAudio) || + (vm->def->graphics[0]->type == VIR_DOMAIN_GRAPHICS_TYPE_SDL)))) { diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c -index 4345456..d968333 100644 +index f8fccea..9dfdb73 100644 --- a/src/qemu/qemu_command.c +++ b/src/qemu/qemu_command.c -@@ -7160,9 +7160,13 @@ qemuBuildCommandLine(virConnectPtr conn, +@@ -7605,9 +7605,15 @@ qemuBuildCommandLine(virConnectPtr conn, * if you ask for nographic. So we have to make sure we override * these defaults ourselves... */ @@ -308,14 +381,16 @@ index 4345456..d968333 100644 + if (!def->graphics) { virCommandAddArg(cmd, "-nographic"); -+ /* trying to talk directly to pulseaudio is generally problematic */ -+ virCommandAddEnvString(cmd, "QEMU_AUDIO_DRV=none"); ++ if (cfg->nogfxAllowHostAudio) ++ virCommandAddEnvPass(cmd, "QEMU_AUDIO_DRV"); ++ else ++ virCommandAddEnvString(cmd, "QEMU_AUDIO_DRV=none"); + } + if (virQEMUCapsGet(qemuCaps, QEMU_CAPS_DEVICE)) { /* Disable global config files and default devices */ if (virQEMUCapsGet(qemuCaps, QEMU_CAPS_NO_USER_CONFIG)) -@@ -8226,6 +8230,7 @@ qemuBuildCommandLine(virConnectPtr conn, +@@ -8723,6 +8729,7 @@ qemuBuildCommandLine(virConnectPtr conn, def->graphics[i]) < 0) goto error; } @@ -323,6 +398,42 @@ index 4345456..d968333 100644 if (def->nvideos > 0) { int primaryVideoType = def->videos[0]->type; if (virQEMUCapsGet(qemuCaps, QEMU_CAPS_DEVICE_VIDEO_PRIMARY) && +diff --git a/src/qemu/qemu_conf.c b/src/qemu/qemu_conf.c +index 86ed9ed..1f57f72 100644 +--- a/src/qemu/qemu_conf.c ++++ b/src/qemu/qemu_conf.c +@@ -338,6 +338,7 @@ int virQEMUDriverConfigLoadFile(virQEMUDriverConfigPtr cfg, + GET_VALUE_BOOL("vnc_sasl", cfg->vncSASL); + GET_VALUE_STR("vnc_sasl_dir", cfg->vncSASLdir); + GET_VALUE_BOOL("vnc_allow_host_audio", cfg->vncAllowHostAudio); ++ GET_VALUE_BOOL("nographics_allow_host_audio", cfg->nogfxAllowHostAudio); + + p = virConfGetValue(conf, "security_driver"); + if (p && p->type == VIR_CONF_LIST) { +diff --git a/src/qemu/qemu_conf.h b/src/qemu/qemu_conf.h +index 8229cfc..206f2c6 100644 +--- a/src/qemu/qemu_conf.h ++++ b/src/qemu/qemu_conf.h +@@ -128,6 +128,7 @@ struct _virQEMUDriverConfig { + + bool relaxedACS; + bool vncAllowHostAudio; ++ bool nogfxAllowHostAudio; + bool clearEmulatorCapabilities; + bool allowDiskFormatProbing; + bool setProcessName; +diff --git a/src/qemu/test_libvirtd_qemu.aug.in b/src/qemu/test_libvirtd_qemu.aug.in +index d4e4fae..ea770dc 100644 +--- a/src/qemu/test_libvirtd_qemu.aug.in ++++ b/src/qemu/test_libvirtd_qemu.aug.in +@@ -15,6 +15,7 @@ module Test_libvirtd_qemu = + { "spice_tls" = "1" } + { "spice_tls_x509_cert_dir" = "/etc/pki/libvirt-spice" } + { "spice_password" = "XYZ12345" } ++{ "nographics_allow_host_audio" = "1" } + { "remote_display_port_min" = "5900" } + { "remote_display_port_max" = "65535" } + { "remote_websocket_port_min" = "5700" } diff --git a/tests/qemuxml2argvdata/qemuxml2argv-balloon-device-auto.args b/tests/qemuxml2argvdata/qemuxml2argv-balloon-device-auto.args index de4877b..bca7f6b 100644 --- a/tests/qemuxml2argvdata/qemuxml2argv-balloon-device-auto.args @@ -952,6 +1063,26 @@ index a002f89..31ffe59 100644 pc -m 214 -smp 1 -nographic -monitor unix:/tmp/test-monitor,server,nowait \ -no-acpi -boot c -usb -drive file=/dev/HostVG/QEMUGuest1,if=ide,bus=0,unit=0 -drive \ if=ide,media=cdrom,bus=1,unit=0 -net none -serial none -parallel none +diff --git a/tests/qemuxml2argvdata/qemuxml2argv-disk-cdrom-network-ftp.args b/tests/qemuxml2argvdata/qemuxml2argv-disk-cdrom-network-ftp.args +index 4fae2b0..39cdf59 100644 +--- a/tests/qemuxml2argvdata/qemuxml2argv-disk-cdrom-network-ftp.args ++++ b/tests/qemuxml2argvdata/qemuxml2argv-disk-cdrom-network-ftp.args +@@ -1,4 +1,4 @@ +-LC_ALL=C PATH=/bin HOME=/home/test USER=test LOGNAME=test /usr/bin/kvm -S \ ++LC_ALL=C PATH=/bin HOME=/home/test USER=test LOGNAME=test QEMU_AUDIO_DRV=none /usr/bin/kvm -S \ + -M pc-1.2 -m 1024 -smp 1 -nographic -nodefaults \ + -monitor unix:/tmp/test-monitor,server,nowait -boot d -usb \ + -drive file=ftp://host.name:21/url/path/file.iso,if=none,media=cdrom,id=drive-ide0-1-0 \ +diff --git a/tests/qemuxml2argvdata/qemuxml2argv-disk-cdrom-network-http.args b/tests/qemuxml2argvdata/qemuxml2argv-disk-cdrom-network-http.args +index 97f5406..2b85ba9 100644 +--- a/tests/qemuxml2argvdata/qemuxml2argv-disk-cdrom-network-http.args ++++ b/tests/qemuxml2argvdata/qemuxml2argv-disk-cdrom-network-http.args +@@ -1,4 +1,4 @@ +-LC_ALL=C PATH=/bin HOME=/home/test USER=test LOGNAME=test /usr/bin/kvm -S \ ++LC_ALL=C PATH=/bin HOME=/home/test USER=test LOGNAME=test QEMU_AUDIO_DRV=none /usr/bin/kvm -S \ + -M pc-1.2 -m 1024 -smp 1 -nographic -nodefaults \ + -monitor unix:/tmp/test-monitor,server,nowait -boot d -usb \ + -drive file=http://host.name:80/url/path/file.iso,if=none,media=cdrom,id=drive-ide0-1-0 \ diff --git a/tests/qemuxml2argvdata/qemuxml2argv-disk-cdrom-tray-no-device-cap.args b/tests/qemuxml2argvdata/qemuxml2argv-disk-cdrom-tray-no-device-cap.args index 762741c..9d7683b 100644 --- a/tests/qemuxml2argvdata/qemuxml2argv-disk-cdrom-tray-no-device-cap.args @@ -1873,6 +2004,16 @@ index e6e42de..557b733 100644 pc -m 214 -smp 1 -nographic -nodefconfig -nodefaults -monitor \ unix:/tmp/test-monitor,server,nowait -no-acpi -boot c -usb -hda \ /dev/HostVG/QEMUGuest2 -device vfio-pci,host=06:12.5,id=hostdev0,\ +diff --git a/tests/qemuxml2argvdata/qemuxml2argv-hotplug-base.args b/tests/qemuxml2argvdata/qemuxml2argv-hotplug-base.args +index c4bd9c5..e78dff4 100644 +--- a/tests/qemuxml2argvdata/qemuxml2argv-hotplug-base.args ++++ b/tests/qemuxml2argvdata/qemuxml2argv-hotplug-base.args +@@ -1,4 +1,4 @@ +-LC_ALL=C PATH=/bin HOME=/home/test USER=test LOGNAME=test \ ++LC_ALL=C PATH=/bin HOME=/home/test USER=test LOGNAME=test QEMU_AUDIO_DRV=none \ + /usr/libexec/qemu-kvm -S -M pc -m 4096 -smp 4 -nographic -nodefaults \ + -monitor unix:/tmp/test-monitor,server,nowait \ + -boot c \ diff --git a/tests/qemuxml2argvdata/qemuxml2argv-hugepages.args b/tests/qemuxml2argvdata/qemuxml2argv-hugepages.args index b327147..d42d9fc 100644 --- a/tests/qemuxml2argvdata/qemuxml2argv-hugepages.args @@ -2549,6 +2690,36 @@ index cb360f6..c850613 100644 pc -m 214 -smp 1 -nographic -nodefconfig -nodefaults -monitor \ unix:/tmp/test-monitor,server,nowait -no-acpi -boot c -usb -hda \ /dev/HostVG/QEMUGuest2 \ +diff --git a/tests/qemuxml2argvdata/qemuxml2argv-pcie-root.args b/tests/qemuxml2argvdata/qemuxml2argv-pcie-root.args +index 84428f9..af5734d 100644 +--- a/tests/qemuxml2argvdata/qemuxml2argv-pcie-root.args ++++ b/tests/qemuxml2argvdata/qemuxml2argv-pcie-root.args +@@ -1,4 +1,4 @@ +-LC_ALL=C PATH=/bin HOME=/home/test USER=test LOGNAME=test /usr/libexec/qemu-kvm \ ++LC_ALL=C PATH=/bin HOME=/home/test USER=test LOGNAME=test QEMU_AUDIO_DRV=none /usr/libexec/qemu-kvm \ + -S -M q35 -m 2048 -smp 2 -nographic -nodefaults \ + -monitor unix:/tmp/test-monitor,server,nowait -no-acpi -boot c \ + -device i82801b11-bridge,id=pci.1,bus=pcie.0,addr=0x2 \ +diff --git a/tests/qemuxml2argvdata/qemuxml2argv-pcihole64-q35.args b/tests/qemuxml2argvdata/qemuxml2argv-pcihole64-q35.args +index 6d33b65..e10ccb1 100644 +--- a/tests/qemuxml2argvdata/qemuxml2argv-pcihole64-q35.args ++++ b/tests/qemuxml2argvdata/qemuxml2argv-pcihole64-q35.args +@@ -1,4 +1,4 @@ +-LC_ALL=C PATH=/bin HOME=/home/test USER=test LOGNAME=test \ ++LC_ALL=C PATH=/bin HOME=/home/test USER=test LOGNAME=test QEMU_AUDIO_DRV=none \ + /usr/libexec/qemu-kvm -S -M q35 -m 2048 -smp 2 -nographic -nodefaults \ + -monitor unix:/tmp/test-monitor,server,nowait -no-acpi \ + -boot c -global q35-pcihost.pci-hole64-size=1048576K \ +diff --git a/tests/qemuxml2argvdata/qemuxml2argv-pcihole64.args b/tests/qemuxml2argvdata/qemuxml2argv-pcihole64.args +index 3165139..35fbf8f 100644 +--- a/tests/qemuxml2argvdata/qemuxml2argv-pcihole64.args ++++ b/tests/qemuxml2argvdata/qemuxml2argv-pcihole64.args +@@ -1,4 +1,4 @@ +-LC_ALL=C PATH=/bin HOME=/home/test USER=test LOGNAME=test \ ++LC_ALL=C PATH=/bin HOME=/home/test USER=test LOGNAME=test QEMU_AUDIO_DRV=none \ + /usr/libexec/qemu-kvm -S -M pc-1.2 -m 2048 -smp 2 -nographic -nodefaults \ + -monitor unix:/tmp/test-monitor,server,nowait -no-acpi \ + -boot c -global i440FX-pcihost.pci-hole64-size=1048576K -usb \ diff --git a/tests/qemuxml2argvdata/qemuxml2argv-ppc-dtb.args b/tests/qemuxml2argvdata/qemuxml2argv-ppc-dtb.args index 93e8f9c..fd7e994 100644 --- a/tests/qemuxml2argvdata/qemuxml2argv-ppc-dtb.args @@ -2620,6 +2791,16 @@ index 60b31c1..f7c3af0 100644 /usr/bin/qemu-system-ppc64 \ -S -M pseries -m 512 -smp 1 -nographic -nodefconfig -nodefaults \ -chardev socket,id=charmonitor,path=/tmp/test-monitor,server,nowait \ +diff --git a/tests/qemuxml2argvdata/qemuxml2argv-q35.args b/tests/qemuxml2argvdata/qemuxml2argv-q35.args +index 9e67be5..4461eba 100644 +--- a/tests/qemuxml2argvdata/qemuxml2argv-q35.args ++++ b/tests/qemuxml2argvdata/qemuxml2argv-q35.args +@@ -1,4 +1,4 @@ +-LC_ALL=C PATH=/bin HOME=/home/test USER=test LOGNAME=test \ ++LC_ALL=C PATH=/bin HOME=/home/test USER=test LOGNAME=test QEMU_AUDIO_DRV=none \ + /usr/libexec/qemu-kvm -S -M q35 -m 2048 -smp 2 -nographic -nodefaults \ + -monitor unix:/tmp/test-monitor,server,nowait -no-acpi -boot c \ + -device i82801b11-bridge,id=pci.1,bus=pcie.0,addr=0x2 \ diff --git a/tests/qemuxml2argvdata/qemuxml2argv-qemu-ns-no-env.args b/tests/qemuxml2argvdata/qemuxml2argv-qemu-ns-no-env.args index e69a3b6..7606c1a 100644 --- a/tests/qemuxml2argvdata/qemuxml2argv-qemu-ns-no-env.args @@ -2727,6 +2908,16 @@ index f0146c7..8bef546 100644 -name QEMUGuest1 -S -M pc -m 214 -smp 1 -nographic -monitor \ unix:/tmp/test-monitor,server,nowait -no-acpi -boot c -usb \ -hda /dev/HostVG/QEMUGuest1 -net none -serial \ +diff --git a/tests/qemuxml2argvdata/qemuxml2argv-seclabel-dynamic-labelskip.args b/tests/qemuxml2argvdata/qemuxml2argv-seclabel-dynamic-labelskip.args +index 892c6b5..74357f8 100644 +--- a/tests/qemuxml2argvdata/qemuxml2argv-seclabel-dynamic-labelskip.args ++++ b/tests/qemuxml2argvdata/qemuxml2argv-seclabel-dynamic-labelskip.args +@@ -1,4 +1,4 @@ +-LC_ALL=C PATH=/bin HOME=/home/test USER=test LOGNAME=test /usr/bin/qemu \ ++LC_ALL=C PATH=/bin HOME=/home/test USER=test LOGNAME=test QEMU_AUDIO_DRV=none /usr/bin/qemu \ + -name QEMUGuest1 -S -M pc -m 214 -smp 1 -nographic -monitor \ + unix:/tmp/test-monitor,server,nowait -no-acpi -boot c -usb \ + -hda /dev/HostVG/QEMUGuest1 \ diff --git a/tests/qemuxml2argvdata/qemuxml2argv-seclabel-dynamic-override.args b/tests/qemuxml2argvdata/qemuxml2argv-seclabel-dynamic-override.args index 35c3e81..397df23 100644 --- a/tests/qemuxml2argvdata/qemuxml2argv-seclabel-dynamic-override.args @@ -2760,6 +2951,16 @@ index f0146c7..8bef546 100644 -name QEMUGuest1 -S -M pc -m 214 -smp 1 -nographic -monitor \ unix:/tmp/test-monitor,server,nowait -no-acpi -boot c -usb \ -hda /dev/HostVG/QEMUGuest1 -net none -serial \ +diff --git a/tests/qemuxml2argvdata/qemuxml2argv-seclabel-static-labelskip.args b/tests/qemuxml2argvdata/qemuxml2argv-seclabel-static-labelskip.args +index 892c6b5..74357f8 100644 +--- a/tests/qemuxml2argvdata/qemuxml2argv-seclabel-static-labelskip.args ++++ b/tests/qemuxml2argvdata/qemuxml2argv-seclabel-static-labelskip.args +@@ -1,4 +1,4 @@ +-LC_ALL=C PATH=/bin HOME=/home/test USER=test LOGNAME=test /usr/bin/qemu \ ++LC_ALL=C PATH=/bin HOME=/home/test USER=test LOGNAME=test QEMU_AUDIO_DRV=none /usr/bin/qemu \ + -name QEMUGuest1 -S -M pc -m 214 -smp 1 -nographic -monitor \ + unix:/tmp/test-monitor,server,nowait -no-acpi -boot c -usb \ + -hda /dev/HostVG/QEMUGuest1 \ diff --git a/tests/qemuxml2argvdata/qemuxml2argv-seclabel-static-relabel.args b/tests/qemuxml2argvdata/qemuxml2argv-seclabel-static-relabel.args index f4a5c6d..dc5bc2b 100644 --- a/tests/qemuxml2argvdata/qemuxml2argv-seclabel-static-relabel.args @@ -3367,3 +3568,6 @@ index 29cf9c3..26038a0 100644 /usr/bin/qemu -S -M pc -m 214 -smp 1 -nographic -monitor \ unix:/tmp/test-monitor,server,nowait -no-acpi -boot c -usb -hda \ /dev/HostVG/QEMUGuest1 -net none -serial none -parallel none +-- +1.8.3.1 + diff --git a/0001-xen-fix-memory-corruption-in-legacy-driver.patch b/0001-xen-fix-memory-corruption-in-legacy-driver.patch deleted file mode 100644 index 5f15f68..0000000 --- a/0001-xen-fix-memory-corruption-in-legacy-driver.patch +++ /dev/null @@ -1,64 +0,0 @@ -From 815828b54398429bddb290d954e6b0291e8831a4 Mon Sep 17 00:00:00 2001 -From: Jim Fehlig -Date: Mon, 5 Aug 2013 10:27:23 -0600 -Subject: [PATCH] xen: fix memory corruption in legacy driver - -Commit 632180d1 introduced memory corruption in xenDaemonListDefinedDomains -by starting to populate the names array at index -1, causing all sorts -of havoc in libvirtd such as aborts like the following - -*** Error in `/usr/sbin/libvirtd': double free or corruption (out): 0x00007fffe00ccf20 *** -======= Backtrace: ========= -/lib64/libc.so.6(+0x7abf6)[0x7ffff3fa0bf6] -/lib64/libc.so.6(+0x7b973)[0x7ffff3fa1973] -/lib64/libc.so.6(xdr_array+0xde)[0x7ffff403cbae] -/usr/sbin/libvirtd(+0x50251)[0x5555555a4251] -/lib64/libc.so.6(xdr_free+0x15)[0x7ffff403ccd5] -/usr/lib64/libvirt.so.0(+0x1fad34)[0x7ffff76b1d34] -/usr/lib64/libvirt.so.0(virNetServerProgramDispatch+0x1fc)[0x7ffff76b16f1] -/usr/lib64/libvirt.so.0(+0x1f214a)[0x7ffff76a914a] -/usr/lib64/libvirt.so.0(+0x1f222d)[0x7ffff76a922d] -/usr/lib64/libvirt.so.0(+0xbcc4f)[0x7ffff7573c4f] -/usr/lib64/libvirt.so.0(+0xbc5e5)[0x7ffff75735e5] -/lib64/libpthread.so.0(+0x7e0f)[0x7ffff48f7e0f] -/lib64/libc.so.6(clone+0x6d)[0x7ffff400e7dd] - -Fix by initializing ret to 0 and only setting to error on failure path. - -(cherry picked from commit 0e671a1646df543eab683b38f6644f70d12fbee1) ---- - src/xen/xend_internal.c | 7 +++---- - 1 file changed, 3 insertions(+), 4 deletions(-) - -diff --git a/src/xen/xend_internal.c b/src/xen/xend_internal.c -index 9d61fca..01e74bd 100644 ---- a/src/xen/xend_internal.c -+++ b/src/xen/xend_internal.c -@@ -2897,7 +2897,7 @@ xenDaemonListDefinedDomains(virConnectPtr conn, - { - struct sexpr *root = NULL; - size_t i; -- int ret = -1; -+ int ret = 0; - struct sexpr *_for_i, *node; - - if (maxnames == 0) -@@ -2920,16 +2920,15 @@ xenDaemonListDefinedDomains(virConnectPtr conn, - break; - } - -- ret = 0; -- - cleanup: - sexpr_free(root); - return ret; - - error: -- for (i = 0; ret != -1 && i < ret; ++i) -+ for (i = 0; i < ret; ++i) - VIR_FREE(names[i]); - -+ ret = -1; - goto cleanup; - } - diff --git a/0002-conf-add-default-USB-controller-in-qemu-post-parse-c.patch b/0002-conf-add-default-USB-controller-in-qemu-post-parse-c.patch deleted file mode 100644 index eb7cb57..0000000 --- a/0002-conf-add-default-USB-controller-in-qemu-post-parse-c.patch +++ /dev/null @@ -1,89 +0,0 @@ -From ba3daaef85007c5ef48c0057284654cd22c168f7 Mon Sep 17 00:00:00 2001 -From: Laine Stump -Date: Fri, 2 Aug 2013 04:13:33 -0400 -Subject: [PATCH] conf: add default USB controller in qemu post-parse callback - -The parser shouldn't be doing arch-specific things like adding in -implicit controllers to the config. This should instead be done in the -hypervisor's post-parse callback. - -This patch removes the auto-add of a usb controller from the domain -parser, and puts it into the qemu driver's post-parse callback (just -as is already done with the auto-add of the pci-root controller). In -the future, any machine/arch that shouldn't have a default usb -controller added should just set addDefaultUSB = false in this -function. - -We've recently seen that q35 and ARMV7L domains shouldn't get a default USB -controller, so I've set addDefaultUSB to false for both of those. - -(cherry picked from commit c66da9d224ffba1d972beaf049c00dbebda4e8ea) ---- - src/conf/domain_conf.c | 6 ------ - src/qemu/qemu_domain.c | 14 +++++++++++++- - 2 files changed, 13 insertions(+), 7 deletions(-) - -diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c -index 783df96..18c6acf 100644 ---- a/src/conf/domain_conf.c -+++ b/src/conf/domain_conf.c -@@ -11718,12 +11718,6 @@ virDomainDefParseXML(xmlDocPtr xml, - goto error; - } - -- if (def->virtType == VIR_DOMAIN_VIRT_QEMU || -- def->virtType == VIR_DOMAIN_VIRT_KQEMU || -- def->virtType == VIR_DOMAIN_VIRT_KVM) -- if (virDomainDefMaybeAddController(def, VIR_DOMAIN_CONTROLLER_TYPE_USB, 0, -1) < 0) -- goto error; -- - /* analysis of the resource leases */ - if ((n = virXPathNodeSet("./devices/lease", ctxt, &nodes)) < 0) { - virReportError(VIR_ERR_INTERNAL_ERROR, -diff --git a/src/qemu/qemu_domain.c b/src/qemu/qemu_domain.c -index da3b768..648121a 100644 ---- a/src/qemu/qemu_domain.c -+++ b/src/qemu/qemu_domain.c -@@ -699,6 +699,7 @@ qemuDomainDefPostParse(virDomainDefPtr def, - virCapsPtr caps, - void *opaque ATTRIBUTE_UNUSED) - { -+ bool addDefaultUSB = true; - bool addPCIRoot = false; - - /* check for emulator and create a default one if needed */ -@@ -714,8 +715,10 @@ qemuDomainDefPostParse(virDomainDefPtr def, - break; - if (STRPREFIX(def->os.machine, "pc-q35") || - STREQ(def->os.machine, "q35") || -- STREQ(def->os.machine, "isapc")) -+ STREQ(def->os.machine, "isapc")) { -+ addDefaultUSB = false; - break; -+ } - if (!STRPREFIX(def->os.machine, "pc-0.") && - !STRPREFIX(def->os.machine, "pc-1.") && - !STRPREFIX(def->os.machine, "pc-i440") && -@@ -725,6 +728,10 @@ qemuDomainDefPostParse(virDomainDefPtr def, - addPCIRoot = true; - break; - -+ case VIR_ARCH_ARMV7L: -+ addDefaultUSB = false; -+ break; -+ - case VIR_ARCH_ALPHA: - case VIR_ARCH_PPC: - case VIR_ARCH_PPC64: -@@ -737,6 +744,11 @@ qemuDomainDefPostParse(virDomainDefPtr def, - break; - } - -+ if (addDefaultUSB && -+ virDomainDefMaybeAddController( -+ def, VIR_DOMAIN_CONTROLLER_TYPE_USB, 0, -1) < 0) -+ return -1; -+ - if (addPCIRoot && - virDomainDefMaybeAddController( - def, VIR_DOMAIN_CONTROLLER_TYPE_PCI, 0, diff --git a/0002-domain_conf-Add-default-memballoon-in-PostParse-call.patch b/0002-domain_conf-Add-default-memballoon-in-PostParse-call.patch new file mode 100644 index 0000000..8d5a98c --- /dev/null +++ b/0002-domain_conf-Add-default-memballoon-in-PostParse-call.patch @@ -0,0 +1,81 @@ +From 79c38961565eb2d352f101cbd6806314894614cb Mon Sep 17 00:00:00 2001 +From: Cole Robinson +Date: Fri, 30 Aug 2013 12:41:30 -0400 +Subject: [PATCH 2/8] domain_conf: Add default memballoon in PostParse + callbacks + +This should be a no-op change for now. +--- + src/conf/domain_conf.c | 13 ------------- + src/qemu/qemu_domain.c | 10 ++++++++++ + src/xen/xen_driver.c | 9 +++++++++ + 3 files changed, 19 insertions(+), 13 deletions(-) + +diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c +index f8fbf79..fafbb89 100644 +--- a/src/conf/domain_conf.c ++++ b/src/conf/domain_conf.c +@@ -12184,19 +12184,6 @@ virDomainDefParseXML(xmlDocPtr xml, + + def->memballoon = memballoon; + VIR_FREE(nodes); +- } else { +- if (def->virtType == VIR_DOMAIN_VIRT_XEN || +- def->virtType == VIR_DOMAIN_VIRT_QEMU || +- def->virtType == VIR_DOMAIN_VIRT_KQEMU || +- def->virtType == VIR_DOMAIN_VIRT_KVM) { +- virDomainMemballoonDefPtr memballoon; +- if (VIR_ALLOC(memballoon) < 0) +- goto error; +- memballoon->model = def->virtType == VIR_DOMAIN_VIRT_XEN ? +- VIR_DOMAIN_MEMBALLOON_MODEL_XEN : +- VIR_DOMAIN_MEMBALLOON_MODEL_VIRTIO; +- def->memballoon = memballoon; +- } + } + + /* Parse the RNG device */ +diff --git a/src/qemu/qemu_domain.c b/src/qemu/qemu_domain.c +index 7f4d17d..9260301 100644 +--- a/src/qemu/qemu_domain.c ++++ b/src/qemu/qemu_domain.c +@@ -784,6 +784,16 @@ qemuDomainDefPostParse(virDomainDefPtr def, + return -1; + } + } ++ ++ if (!def->memballoon) { ++ virDomainMemballoonDefPtr memballoon; ++ if (VIR_ALLOC(memballoon) < 0) ++ return -1; ++ ++ memballoon->model = VIR_DOMAIN_MEMBALLOON_MODEL_VIRTIO; ++ def->memballoon = memballoon; ++ } ++ + return 0; + } + +diff --git a/src/xen/xen_driver.c b/src/xen/xen_driver.c +index cb64de6..6cb4f4f 100644 +--- a/src/xen/xen_driver.c ++++ b/src/xen/xen_driver.c +@@ -340,6 +340,15 @@ xenDomainDeviceDefPostParse(virDomainDeviceDefPtr dev, + STRNEQ(def->os.type, "hvm")) + dev->data.chr->targetType = VIR_DOMAIN_CHR_CONSOLE_TARGET_TYPE_XEN; + ++ if (!def->memballoon) { ++ virDomainMemballoonDefPtr memballoon; ++ if (VIR_ALLOC(memballoon) < 0) ++ return -1; ++ ++ memballoon->model = VIR_DOMAIN_MEMBALLOON_MODEL_XEN; ++ def->memballoon = memballoon; ++ } ++ + return 0; + } + +-- +1.8.3.1 + diff --git a/0007-qemu-Don-t-add-default-memballoon-device-on-ARM.patch b/0003-qemu-Don-t-add-default-memballoon-device-on-ARM.patch similarity index 74% rename from 0007-qemu-Don-t-add-default-memballoon-device-on-ARM.patch rename to 0003-qemu-Don-t-add-default-memballoon-device-on-ARM.patch index 8e4a481..f41c9ee 100644 --- a/0007-qemu-Don-t-add-default-memballoon-device-on-ARM.patch +++ b/0003-qemu-Don-t-add-default-memballoon-device-on-ARM.patch @@ -1,26 +1,25 @@ -From 56aa5100965134dcc9773dcb47c2cf88b26717f9 Mon Sep 17 00:00:00 2001 +From 5ed47b89c6cb59c9ec5169bcc99a67e9a75fb2af Mon Sep 17 00:00:00 2001 From: Cole Robinson -Date: Tue, 30 Jul 2013 15:41:14 -0400 -Subject: [PATCH] qemu: Don't add default memballoon device on ARM +Date: Fri, 30 Aug 2013 12:41:31 -0400 +Subject: [PATCH 3/8] qemu: Don't add default memballoon device on ARM And add test cases for a basic working ARM guest. --- docs/schemas/domaincommon.rng | 19 +++++++++++++ - src/conf/domain_conf.c | 14 --------- src/qemu/qemu_domain.c | 4 ++- .../qemuxml2argv-arm-vexpressa9-nodevs.args | 5 ++++ .../qemuxml2argv-arm-vexpressa9-nodevs.xml | 26 +++++++++++++++++ tests/qemuxml2argvtest.c | 3 ++ tests/testutilsqemu.c | 33 ++++++++++++++++++++++ - 7 files changed, 89 insertions(+), 15 deletions(-) + 6 files changed, 89 insertions(+), 1 deletion(-) create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-arm-vexpressa9-nodevs.args create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-arm-vexpressa9-nodevs.xml diff --git a/docs/schemas/domaincommon.rng b/docs/schemas/domaincommon.rng -index 745b959..781ecfd 100644 +index 6978dc7..68c3e4d 100644 --- a/docs/schemas/domaincommon.rng +++ b/docs/schemas/domaincommon.rng -@@ -303,6 +303,7 @@ +@@ -304,6 +304,7 @@ @@ -28,7 +27,7 @@ index 745b959..781ecfd 100644 hvm -@@ -412,6 +413,24 @@ +@@ -413,6 +414,24 @@ @@ -53,51 +52,19 @@ index 745b959..781ecfd 100644 -diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c -index 18c6acf..8ede44d 100644 ---- a/src/conf/domain_conf.c -+++ b/src/conf/domain_conf.c -@@ -8801,7 +8801,6 @@ virDomainVideoDefaultRAM(virDomainDefPtr def, - } - } - -- - int - virDomainVideoDefaultType(virDomainDefPtr def) - { -@@ -12136,19 +12135,6 @@ virDomainDefParseXML(xmlDocPtr xml, - - def->memballoon = memballoon; - VIR_FREE(nodes); -- } else { -- if (def->virtType == VIR_DOMAIN_VIRT_XEN || -- def->virtType == VIR_DOMAIN_VIRT_QEMU || -- def->virtType == VIR_DOMAIN_VIRT_KQEMU || -- def->virtType == VIR_DOMAIN_VIRT_KVM) { -- virDomainMemballoonDefPtr memballoon; -- if (VIR_ALLOC(memballoon) < 0) -- goto error; -- memballoon->model = def->virtType == VIR_DOMAIN_VIRT_XEN ? -- VIR_DOMAIN_MEMBALLOON_MODEL_XEN : -- VIR_DOMAIN_MEMBALLOON_MODEL_VIRTIO; -- def->memballoon = memballoon; -- } - } - - /* Parse the RNG device */ diff --git a/src/qemu/qemu_domain.c b/src/qemu/qemu_domain.c -index dc7ab3e..36df403 100644 +index 9260301..cff6d70 100644 --- a/src/qemu/qemu_domain.c +++ b/src/qemu/qemu_domain.c -@@ -701,6 +701,7 @@ qemuDomainDefPostParse(virDomainDefPtr def, - { - bool addDefaultUSB = true; +@@ -703,6 +703,7 @@ qemuDomainDefPostParse(virDomainDefPtr def, + bool addImplicitSATA = false; bool addPCIRoot = false; + bool addPCIeRoot = false; + bool addDefaultMemballoon = true; /* check for emulator and create a default one if needed */ if (!def->emulator && -@@ -730,6 +731,7 @@ qemuDomainDefPostParse(virDomainDefPtr def, +@@ -737,6 +738,7 @@ qemuDomainDefPostParse(virDomainDefPtr def, case VIR_ARCH_ARMV7L: addDefaultUSB = false; @@ -105,9 +72,9 @@ index dc7ab3e..36df403 100644 break; case VIR_ARCH_ALPHA: -@@ -755,7 +757,7 @@ qemuDomainDefPostParse(virDomainDefPtr def, - VIR_DOMAIN_CONTROLLER_MODEL_PCI_ROOT) < 0) - return -1; +@@ -785,7 +787,7 @@ qemuDomainDefPostParse(virDomainDefPtr def, + } + } - if (!def->memballoon) { + if (addDefaultMemballoon && !def->memballoon) { @@ -158,12 +125,12 @@ index 0000000..3f318c8 + + diff --git a/tests/qemuxml2argvtest.c b/tests/qemuxml2argvtest.c -index b7485fc..361ddb8 100644 +index 4e3508b..cb6106f 100644 --- a/tests/qemuxml2argvtest.c +++ b/tests/qemuxml2argvtest.c -@@ -1027,6 +1027,9 @@ mymain(void) - DO_TEST_PARSE_ERROR("pci-root-address", - QEMU_CAPS_DEVICE, QEMU_CAPS_DEVICE_PCI_BRIDGE); +@@ -1057,6 +1057,9 @@ mymain(void) + QEMU_CAPS_VGA_QXL, QEMU_CAPS_DEVICE_QXL, + QEMU_CAPS_Q35_PCI_HOLE64_SIZE); + DO_TEST("arm-vexpressa9-nodevs", + QEMU_CAPS_DEVICE, QEMU_CAPS_NODEFCONFIG, QEMU_CAPS_DTB); @@ -222,3 +189,6 @@ index fac83b2..92433ef 100644 if (virTestGetDebug()) { char *caps_str; +-- +1.8.3.1 + diff --git a/0003-qemu-rename-some-functions-in-qemu_command.c.patch b/0003-qemu-rename-some-functions-in-qemu_command.c.patch deleted file mode 100644 index 151d9eb..0000000 --- a/0003-qemu-rename-some-functions-in-qemu_command.c.patch +++ /dev/null @@ -1,300 +0,0 @@ -From b90db10aa95fe048b039e2605884c300a1e00726 Mon Sep 17 00:00:00 2001 -From: Laine Stump -Date: Fri, 26 Jul 2013 21:04:18 -0400 -Subject: [PATCH] qemu: rename some functions in qemu_command.c - -* qemuDomainPCIAddressSetNextAddr - -The name of this function was confusing because 1) other functions in -the file that end in "Addr" are only operating on a single function of -one PCI slot, not the entire slot, while functions that do something -with the entire slot end in "Slot", and 2) it didn't contain a verb -describing what it is doing (the "Set" refers to the set that contains -all PCI buses in the system, used to keep track of which slots in -which buses are already reserved for use). - -It is now renamed to qemuDomainPCIAddressReserveNextSlot, which more -clearly describes what it is doing. Arguably, it could have been -changed to qemuDomainPCIAddressSetReserveNextSlot, but 1) the word -"set" is confusing in this context because it could be intended as a -verb or as a noun, and 2) most other functions that operate on a -single slot or address within this set are also named -qemuDomainPCIAddress... rather than qemuDomainPCIAddressSet... Only -the Create, Free, and Grow functions for an address set (which modify the -entire set, not just one element) use "Set" in their name. - -* qemuPCIAddressAsString, qemuPCIAddressValidate - -All the other functions in this set are named -qemuDomainPCIAddressxxxxx, so I renamed these to be consistent. - -(cherry picked from commit 29e3a1df474aeb35b5eeca4930e7748cd2664472) ---- - src/qemu/qemu_command.c | 78 ++++++++++++++++++++++++++++++------------------- - src/qemu/qemu_command.h | 6 ++-- - 2 files changed, 51 insertions(+), 33 deletions(-) - -diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c -index aa3a2fd..4345456 100644 ---- a/src/qemu/qemu_command.c -+++ b/src/qemu/qemu_command.c -@@ -1439,9 +1439,9 @@ struct _qemuDomainPCIAddressSet { - * with the specified PCI address set. - */ - static bool --qemuPCIAddressValidate(qemuDomainPCIAddressSetPtr addrs ATTRIBUTE_UNUSED, -- virDevicePCIAddressPtr addr, -- qemuDomainPCIConnectFlags flags) -+qemuDomainPCIAddressValidate(qemuDomainPCIAddressSetPtr addrs, -+ virDevicePCIAddressPtr addr, -+ qemuDomainPCIConnectFlags flags) - { - qemuDomainPCIAddressBusPtr bus; - -@@ -1578,7 +1578,7 @@ qemuDomainPCIAddressSetGrow(qemuDomainPCIAddressSetPtr addrs, - - - static char * --qemuPCIAddressAsString(virDevicePCIAddressPtr addr) -+qemuDomainPCIAddressAsString(virDevicePCIAddressPtr addr) - { - char *str; - -@@ -1648,10 +1648,10 @@ qemuCollectPCIAddress(virDomainDefPtr def ATTRIBUTE_UNUSED, - * that the bus is of the correct type for the device (via - * comparing the flags). - */ -- if (!qemuPCIAddressValidate(addrs, addr, flags)) -+ if (!qemuDomainPCIAddressValidate(addrs, addr, flags)) - return -1; - -- if (!(str = qemuPCIAddressAsString(addr))) -+ if (!(str = qemuDomainPCIAddressAsString(addr))) - goto cleanup; - - /* check if already in use */ -@@ -1729,7 +1729,7 @@ qemuDomainAssignPCIAddresses(virDomainDefPtr def, - if (qemuAssignDevicePCISlots(def, qemuCaps, addrs) < 0) - goto cleanup; - /* Reserve 1 extra slot for a (potential) bridge */ -- if (qemuDomainPCIAddressSetNextAddr(addrs, &info, flags) < 0) -+ if (qemuDomainPCIAddressReserveNextSlot(addrs, &info, flags) < 0) - goto cleanup; - - for (i = 1; i < addrs->nbuses; i++) { -@@ -1740,7 +1740,8 @@ qemuDomainAssignPCIAddresses(virDomainDefPtr def, - i, bus->model)) < 0) - goto cleanup; - /* If we added a new bridge, we will need one more address */ -- if (rv > 0 && qemuDomainPCIAddressSetNextAddr(addrs, &info, flags) < 0) -+ if (rv > 0 && qemuDomainPCIAddressReserveNextSlot(addrs, &info, -+ flags) < 0) - goto cleanup; - } - nbuses = addrs->nbuses; -@@ -1881,7 +1882,7 @@ qemuDomainPCIAddressReserveAddr(qemuDomainPCIAddressSetPtr addrs, - if (addrs->dryRun && qemuDomainPCIAddressSetGrow(addrs, addr, flags) < 0) - return -1; - -- if (!(str = qemuPCIAddressAsString(addr))) -+ if (!(str = qemuDomainPCIAddressAsString(addr))) - return -1; - - VIR_DEBUG("Reserving PCI addr %s", str); -@@ -1923,7 +1924,7 @@ qemuDomainPCIAddressReserveSlot(qemuDomainPCIAddressSetPtr addrs, - if (addrs->dryRun && qemuDomainPCIAddressSetGrow(addrs, addr, flags) < 0) - return -1; - -- if (!(str = qemuPCIAddressAsString(addr))) -+ if (!(str = qemuDomainPCIAddressAsString(addr))) - return -1; - - VIR_DEBUG("Reserving PCI slot %s", str); -@@ -1959,12 +1960,12 @@ int qemuDomainPCIAddressEnsureAddr(qemuDomainPCIAddressSetPtr addrs, - return -1; - } - -- if (!qemuPCIAddressValidate(addrs, &dev->addr.pci, flags)) -+ if (!qemuDomainPCIAddressValidate(addrs, &dev->addr.pci, flags)) - return -1; - - ret = qemuDomainPCIAddressReserveSlot(addrs, &dev->addr.pci, flags); - } else { -- ret = qemuDomainPCIAddressSetNextAddr(addrs, dev, flags); -+ ret = qemuDomainPCIAddressReserveNextSlot(addrs, dev, flags); - } - return ret; - } -@@ -1986,7 +1987,7 @@ qemuDomainPCIAddressReleaseSlot(qemuDomainPCIAddressSetPtr addrs, - */ - qemuDomainPCIConnectFlags flags = QEMU_PCI_CONNECT_TYPES_MASK; - -- if (!qemuPCIAddressValidate(addrs, addr, flags)) -+ if (!qemuDomainPCIAddressValidate(addrs, addr, flags)) - return -1; - - addrs->buses[addr->bus].slots[addr->slot] = 0; -@@ -2059,9 +2060,9 @@ success: - } - - int --qemuDomainPCIAddressSetNextAddr(qemuDomainPCIAddressSetPtr addrs, -- virDomainDeviceInfoPtr dev, -- qemuDomainPCIConnectFlags flags) -+qemuDomainPCIAddressReserveNextSlot(qemuDomainPCIAddressSetPtr addrs, -+ virDomainDeviceInfoPtr dev, -+ qemuDomainPCIConnectFlags flags) - { - virDevicePCIAddress addr; - if (qemuDomainPCIAddressGetNextSlot(addrs, &addr, flags) < 0) -@@ -2188,14 +2189,16 @@ qemuValidateDevicePCISlotsPIIX3(virDomainDefPtr def, - primaryVideo->info.addr.pci.function = 0; - addrptr = &primaryVideo->info.addr.pci; - -- if (!qemuPCIAddressValidate(addrs, addrptr, flags)) -+ if (!qemuDomainPCIAddressValidate(addrs, addrptr, flags)) - goto error; - - if (qemuDomainPCIAddressSlotInUse(addrs, addrptr)) { - if (qemuDeviceVideoUsable) { - virResetLastError(); -- if (qemuDomainPCIAddressSetNextAddr(addrs, &primaryVideo->info, flags) < 0) -- goto error;; -+ if (qemuDomainPCIAddressReserveNextSlot(addrs, -+ &primaryVideo->info, -+ flags) < 0) -+ goto error; - } else { - virReportError(VIR_ERR_INTERNAL_ERROR, "%s", - _("PCI address 0:0:2.0 is in use, " -@@ -2296,7 +2299,9 @@ qemuAssignDevicePCISlots(virDomainDefPtr def, - continue; - if (def->controllers[i]->info.type != VIR_DOMAIN_DEVICE_ADDRESS_TYPE_NONE) - continue; -- if (qemuDomainPCIAddressSetNextAddr(addrs, &def->controllers[i]->info, flags) < 0) -+ if (qemuDomainPCIAddressReserveNextSlot(addrs, -+ &def->controllers[i]->info, -+ flags) < 0) - goto error; - } - } -@@ -2307,7 +2312,8 @@ qemuAssignDevicePCISlots(virDomainDefPtr def, - - /* Only support VirtIO-9p-pci so far. If that changes, - * we might need to skip devices here */ -- if (qemuDomainPCIAddressSetNextAddr(addrs, &def->fss[i]->info, flags) < 0) -+ if (qemuDomainPCIAddressReserveNextSlot(addrs, &def->fss[i]->info, -+ flags) < 0) - goto error; - } - -@@ -2321,7 +2327,8 @@ qemuAssignDevicePCISlots(virDomainDefPtr def, - (def->nets[i]->info.type != VIR_DOMAIN_DEVICE_ADDRESS_TYPE_NONE)) { - continue; - } -- if (qemuDomainPCIAddressSetNextAddr(addrs, &def->nets[i]->info, flags) < 0) -+ if (qemuDomainPCIAddressReserveNextSlot(addrs, &def->nets[i]->info, -+ flags) < 0) - goto error; - } - -@@ -2334,7 +2341,8 @@ qemuAssignDevicePCISlots(virDomainDefPtr def, - def->sounds[i]->model == VIR_DOMAIN_SOUND_MODEL_PCSPK) - continue; - -- if (qemuDomainPCIAddressSetNextAddr(addrs, &def->sounds[i]->info, flags) < 0) -+ if (qemuDomainPCIAddressReserveNextSlot(addrs, &def->sounds[i]->info, -+ flags) < 0) - goto error; - } - -@@ -2409,7 +2417,9 @@ qemuAssignDevicePCISlots(virDomainDefPtr def, - def->controllers[i]->info.type = VIR_DOMAIN_DEVICE_ADDRESS_TYPE_PCI; - def->controllers[i]->info.addr.pci = addr; - } else { -- if (qemuDomainPCIAddressSetNextAddr(addrs, &def->controllers[i]->info, flags) < 0) -+ if (qemuDomainPCIAddressReserveNextSlot(addrs, -+ &def->controllers[i]->info, -+ flags) < 0) - goto error; - } - } -@@ -2434,7 +2444,8 @@ qemuAssignDevicePCISlots(virDomainDefPtr def, - goto error; - } - -- if (qemuDomainPCIAddressSetNextAddr(addrs, &def->disks[i]->info, flags) < 0) -+ if (qemuDomainPCIAddressReserveNextSlot(addrs, &def->disks[i]->info, -+ flags) < 0) - goto error; - } - -@@ -2446,7 +2457,9 @@ qemuAssignDevicePCISlots(virDomainDefPtr def, - def->hostdevs[i]->source.subsys.type != VIR_DOMAIN_HOSTDEV_SUBSYS_TYPE_PCI) - continue; - -- if (qemuDomainPCIAddressSetNextAddr(addrs, def->hostdevs[i]->info, flags) < 0) -+ if (qemuDomainPCIAddressReserveNextSlot(addrs, -+ def->hostdevs[i]->info, -+ flags) < 0) - goto error; - } - -@@ -2454,7 +2467,9 @@ qemuAssignDevicePCISlots(virDomainDefPtr def, - if (def->memballoon && - def->memballoon->model == VIR_DOMAIN_MEMBALLOON_MODEL_VIRTIO && - def->memballoon->info.type == VIR_DOMAIN_DEVICE_ADDRESS_TYPE_NONE) { -- if (qemuDomainPCIAddressSetNextAddr(addrs, &def->memballoon->info, flags) < 0) -+ if (qemuDomainPCIAddressReserveNextSlot(addrs, -+ &def->memballoon->info, -+ flags) < 0) - goto error; - } - -@@ -2462,7 +2477,8 @@ qemuAssignDevicePCISlots(virDomainDefPtr def, - if (def->rng && - def->rng->model == VIR_DOMAIN_RNG_MODEL_VIRTIO && - def->rng->info.type == VIR_DOMAIN_DEVICE_ADDRESS_TYPE_NONE) { -- if (qemuDomainPCIAddressSetNextAddr(addrs, &def->rng->info, flags) < 0) -+ if (qemuDomainPCIAddressReserveNextSlot(addrs, -+ &def->rng->info, flags) < 0) - goto error; - } - -@@ -2470,7 +2486,8 @@ qemuAssignDevicePCISlots(virDomainDefPtr def, - if (def->watchdog && - def->watchdog->model != VIR_DOMAIN_WATCHDOG_MODEL_IB700 && - def->watchdog->info.type == VIR_DOMAIN_DEVICE_ADDRESS_TYPE_NONE) { -- if (qemuDomainPCIAddressSetNextAddr(addrs, &def->watchdog->info, flags) < 0) -+ if (qemuDomainPCIAddressReserveNextSlot(addrs, &def->watchdog->info, -+ flags) < 0) - goto error; - } - -@@ -2483,7 +2500,8 @@ qemuAssignDevicePCISlots(virDomainDefPtr def, - } - if (def->videos[i]->info.type != VIR_DOMAIN_DEVICE_ADDRESS_TYPE_NONE) - continue; -- if (qemuDomainPCIAddressSetNextAddr(addrs, &def->videos[i]->info, flags) < 0) -+ if (qemuDomainPCIAddressReserveNextSlot(addrs, &def->videos[i]->info, -+ flags) < 0) - goto error; - } - for (i = 0; i < def->ninputs; i++) { -diff --git a/src/qemu/qemu_command.h b/src/qemu/qemu_command.h -index 2b02d6e..c9f1600 100644 ---- a/src/qemu/qemu_command.h -+++ b/src/qemu/qemu_command.h -@@ -254,9 +254,9 @@ int qemuDomainPCIAddressReserveSlot(qemuDomainPCIAddressSetPtr addrs, - int qemuDomainPCIAddressReserveAddr(qemuDomainPCIAddressSetPtr addrs, - virDevicePCIAddressPtr addr, - qemuDomainPCIConnectFlags flags); --int qemuDomainPCIAddressSetNextAddr(qemuDomainPCIAddressSetPtr addrs, -- virDomainDeviceInfoPtr dev, -- qemuDomainPCIConnectFlags flags); -+int qemuDomainPCIAddressReserveNextSlot(qemuDomainPCIAddressSetPtr addrs, -+ virDomainDeviceInfoPtr dev, -+ qemuDomainPCIConnectFlags flags); - int qemuDomainPCIAddressEnsureAddr(qemuDomainPCIAddressSetPtr addrs, - virDomainDeviceInfoPtr dev); - int qemuDomainPCIAddressReleaseAddr(qemuDomainPCIAddressSetPtr addrs, diff --git a/0008-qemu-Fix-adding-specifying-char-devs-for-ARM.patch b/0004-qemu-Fix-specifying-char-devs-for-ARM.patch similarity index 88% rename from 0008-qemu-Fix-adding-specifying-char-devs-for-ARM.patch rename to 0004-qemu-Fix-specifying-char-devs-for-ARM.patch index 7f0c721..cd9c4e9 100644 --- a/0008-qemu-Fix-adding-specifying-char-devs-for-ARM.patch +++ b/0004-qemu-Fix-specifying-char-devs-for-ARM.patch @@ -1,7 +1,7 @@ -From 2797780706ba62cff67540be18e59d0fd6438389 Mon Sep 17 00:00:00 2001 +From 20f2f4c07d8e8d4373094473114ae16909fe4005 Mon Sep 17 00:00:00 2001 From: Cole Robinson -Date: Tue, 30 Jul 2013 17:49:11 -0400 -Subject: [PATCH] qemu: Fix adding specifying char devs for ARM +Date: Fri, 30 Aug 2013 12:41:32 -0400 +Subject: [PATCH 4/8] qemu: Fix specifying char devs for ARM QEMU ARM boards don't give us any way to explicitly wire in a -chardev, so use the old style -serial options. @@ -16,10 +16,10 @@ for qemu-system-arm, as upcoming virtio support _will_ use device/chardev. 4 files changed, 45 insertions(+), 17 deletions(-) diff --git a/src/qemu/qemu_capabilities.c b/src/qemu/qemu_capabilities.c -index 08406b8..5c8316f 100644 +index 7888e2d..72df793 100644 --- a/src/qemu/qemu_capabilities.c +++ b/src/qemu/qemu_capabilities.c -@@ -2810,3 +2810,21 @@ virQEMUCapsUsedQMP(virQEMUCapsPtr qemuCaps) +@@ -2827,3 +2827,21 @@ virQEMUCapsUsedQMP(virQEMUCapsPtr qemuCaps) { return qemuCaps->usedQMP; } @@ -42,10 +42,10 @@ index 08406b8..5c8316f 100644 + return true; +} diff --git a/src/qemu/qemu_capabilities.h b/src/qemu/qemu_capabilities.h -index f5f685d..56f8405 100644 +index 69f3395..5180ee9 100644 --- a/src/qemu/qemu_capabilities.h +++ b/src/qemu/qemu_capabilities.h -@@ -272,4 +272,8 @@ int virQEMUCapsParseDeviceStr(virQEMUCapsPtr qemuCaps, const char *str); +@@ -275,4 +275,8 @@ int virQEMUCapsParseDeviceStr(virQEMUCapsPtr qemuCaps, const char *str); VIR_ENUM_DECL(virQEMUCaps); bool virQEMUCapsUsedQMP(virQEMUCapsPtr qemuCaps); @@ -55,10 +55,10 @@ index f5f685d..56f8405 100644 + #endif /* __QEMU_CAPABILITIES_H__*/ diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c -index 6710bf0..e6000d9 100644 +index 9dfdb73..a8e532c 100644 --- a/src/qemu/qemu_command.c +++ b/src/qemu/qemu_command.c -@@ -7996,8 +7996,7 @@ qemuBuildCommandLine(virConnectPtr conn, +@@ -8493,8 +8493,7 @@ qemuBuildCommandLine(virConnectPtr conn, char *devstr; /* Use -chardev with -device if they are available */ @@ -69,10 +69,10 @@ index 6710bf0..e6000d9 100644 if (!(devstr = qemuBuildChrChardevStr(&serial->source, serial->info.alias, diff --git a/src/qemu/qemu_process.c b/src/qemu/qemu_process.c -index d631a6f..57036e8 100644 +index dfe8142..abe0060 100644 --- a/src/qemu/qemu_process.c +++ b/src/qemu/qemu_process.c -@@ -1583,22 +1583,25 @@ qemuProcessExtractTTYPath(const char *haystack, +@@ -1604,22 +1604,25 @@ qemuProcessExtractTTYPath(const char *haystack, } static int @@ -103,7 +103,7 @@ index d631a6f..57036e8 100644 return -1; path = (const char *) virHashLookup(paths, id); -@@ -1632,19 +1635,21 @@ qemuProcessFindCharDevicePTYsMonitor(virDomainObjPtr vm, +@@ -1653,19 +1656,21 @@ qemuProcessFindCharDevicePTYsMonitor(virDomainObjPtr vm, virQEMUCapsPtr qemuCaps, virHashTablePtr paths) { @@ -132,7 +132,7 @@ index d631a6f..57036e8 100644 return -1; /* For historical reasons, console[0] can be just an alias * for serial[0]. That's why we need to update it as well. */ -@@ -1662,8 +1667,9 @@ qemuProcessFindCharDevicePTYsMonitor(virDomainObjPtr vm, +@@ -1683,8 +1688,9 @@ qemuProcessFindCharDevicePTYsMonitor(virDomainObjPtr vm, } } @@ -144,7 +144,7 @@ index d631a6f..57036e8 100644 return -1; return 0; -@@ -1753,7 +1759,8 @@ qemuProcessWaitForMonitor(virQEMUDriverPtr driver, +@@ -1774,7 +1780,8 @@ qemuProcessWaitForMonitor(virQEMUDriverPtr driver, virHashTablePtr paths = NULL; qemuDomainObjPrivatePtr priv; @@ -154,3 +154,6 @@ index d631a6f..57036e8 100644 if ((logfd = qemuDomainOpenLog(driver, vm, pos)) < 0) return -1; +-- +1.8.3.1 + diff --git a/0009-qemu-Don-t-try-to-allocate-PCI-addresses-for-ARM.patch b/0005-qemu-Don-t-try-to-allocate-PCI-addresses-for-ARM.patch similarity index 75% rename from 0009-qemu-Don-t-try-to-allocate-PCI-addresses-for-ARM.patch rename to 0005-qemu-Don-t-try-to-allocate-PCI-addresses-for-ARM.patch index 5896a85..69ab3fa 100644 --- a/0009-qemu-Don-t-try-to-allocate-PCI-addresses-for-ARM.patch +++ b/0005-qemu-Don-t-try-to-allocate-PCI-addresses-for-ARM.patch @@ -1,17 +1,17 @@ -From d859b21108e4d45a7851c2be0a61895da66159a2 Mon Sep 17 00:00:00 2001 +From 5772cbdfb807842685d05665f285745ca79acc89 Mon Sep 17 00:00:00 2001 From: Cole Robinson -Date: Tue, 30 Jul 2013 18:56:15 -0400 -Subject: [PATCH] qemu: Don't try to allocate PCI addresses for ARM +Date: Fri, 30 Aug 2013 12:41:33 -0400 +Subject: [PATCH 5/8] qemu: Don't try to allocate PCI addresses for ARM --- src/qemu/qemu_command.c | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c -index e6000d9..66b02fc 100644 +index a8e532c..87345c7 100644 --- a/src/qemu/qemu_command.c +++ b/src/qemu/qemu_command.c -@@ -1694,6 +1694,16 @@ cleanup: +@@ -1773,6 +1773,16 @@ cleanup: return ret; } @@ -28,7 +28,7 @@ index e6000d9..66b02fc 100644 int qemuDomainAssignPCIAddresses(virDomainDefPtr def, -@@ -1760,8 +1770,10 @@ qemuDomainAssignPCIAddresses(virDomainDefPtr def, +@@ -1838,8 +1848,10 @@ qemuDomainAssignPCIAddresses(virDomainDefPtr def, if (!(addrs = qemuDomainPCIAddressSetCreate(def, nbuses, false))) goto cleanup; @@ -41,3 +41,6 @@ index e6000d9..66b02fc 100644 } if (obj && obj->privateData) { +-- +1.8.3.1 + diff --git a/0005-qemu-Only-setup-vhost-if-virtType-kvm.patch b/0005-qemu-Only-setup-vhost-if-virtType-kvm.patch deleted file mode 100644 index 74abfe5..0000000 --- a/0005-qemu-Only-setup-vhost-if-virtType-kvm.patch +++ /dev/null @@ -1,31 +0,0 @@ -From 9475a3ba1e808aa3fe1a975e98bcd1ac7a660d01 Mon Sep 17 00:00:00 2001 -From: Cole Robinson -Date: Wed, 31 Jul 2013 21:37:40 -0400 -Subject: [PATCH] qemu: Only setup vhost if virtType == "kvm" - -vhost only works in KVM mode at the moment, and is infact compiled -out if the emulator is built for non-native architecture. While it -may work at some point in the future for plain qemu, for now it's -just noise on the command line (and which contributes to arm cli -breakage). ---- - src/qemu/qemu_command.c | 6 ++++-- - 1 file changed, 4 insertions(+), 2 deletions(-) - -diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c -index d968333..6710bf0 100644 ---- a/src/qemu/qemu_command.c -+++ b/src/qemu/qemu_command.c -@@ -441,8 +441,10 @@ qemuOpenVhostNet(virDomainDefPtr def, - { - size_t i; - -- /* If the config says explicitly to not use vhost, return now */ -- if (net->driver.virtio.name == VIR_DOMAIN_NET_BACKEND_TYPE_QEMU) { -+ /* If running a plain QEMU guest, or -+ * if the config says explicitly to not use vhost, return now*/ -+ if (def->virtType != VIR_DOMAIN_VIRT_KVM || -+ net->driver.virtio.name == VIR_DOMAIN_NET_BACKEND_TYPE_QEMU) { - *vhostfdSize = 0; - return 0; - } diff --git a/0006-domain_conf-Add-default-memballon-in-PostParse-callb.patch b/0006-domain_conf-Add-default-memballon-in-PostParse-callb.patch deleted file mode 100644 index 19d8ae0..0000000 --- a/0006-domain_conf-Add-default-memballon-in-PostParse-callb.patch +++ /dev/null @@ -1,51 +0,0 @@ -From a9d7a8a2f604f30f4769cdfe62a36aba28ce7368 Mon Sep 17 00:00:00 2001 -From: Cole Robinson -Date: Fri, 16 Aug 2013 20:33:23 -0400 -Subject: [PATCH] domain_conf: Add default memballon in PostParse callbacks - -This should be a no-op change for now. ---- - src/qemu/qemu_domain.c | 9 +++++++++ - src/xen/xen_driver.c | 9 +++++++++ - 2 files changed, 18 insertions(+) - -diff --git a/src/qemu/qemu_domain.c b/src/qemu/qemu_domain.c -index 648121a..dc7ab3e 100644 ---- a/src/qemu/qemu_domain.c -+++ b/src/qemu/qemu_domain.c -@@ -755,6 +755,15 @@ qemuDomainDefPostParse(virDomainDefPtr def, - VIR_DOMAIN_CONTROLLER_MODEL_PCI_ROOT) < 0) - return -1; - -+ if (!def->memballoon) { -+ virDomainMemballoonDefPtr memballoon; -+ if (VIR_ALLOC(memballoon) < 0) -+ return -1; -+ -+ memballoon->model = VIR_DOMAIN_MEMBALLOON_MODEL_VIRTIO; -+ def->memballoon = memballoon; -+ } -+ - return 0; - } - -diff --git a/src/xen/xen_driver.c b/src/xen/xen_driver.c -index 4ae38d3..780230f 100644 ---- a/src/xen/xen_driver.c -+++ b/src/xen/xen_driver.c -@@ -330,6 +330,15 @@ xenDomainDeviceDefPostParse(virDomainDeviceDefPtr dev, - STRNEQ(def->os.type, "hvm")) - dev->data.chr->targetType = VIR_DOMAIN_CHR_CONSOLE_TARGET_TYPE_XEN; - -+ if (!def->memballoon) { -+ virDomainMemballoonDefPtr memballoon; -+ if (VIR_ALLOC(memballoon) < 0) -+ return -1; -+ -+ memballoon->model = VIR_DOMAIN_MEMBALLOON_MODEL_XEN; -+ def->memballoon = memballoon; -+ } -+ - return 0; - } - diff --git a/0010-domain_conf-Add-disk-bus-sd-wire-it-up-for-qemu.patch b/0006-domain_conf-Add-disk-bus-sd-wire-it-up-for-qemu.patch similarity index 87% rename from 0010-domain_conf-Add-disk-bus-sd-wire-it-up-for-qemu.patch rename to 0006-domain_conf-Add-disk-bus-sd-wire-it-up-for-qemu.patch index b44e5b7..9a1703a 100644 --- a/0010-domain_conf-Add-disk-bus-sd-wire-it-up-for-qemu.patch +++ b/0006-domain_conf-Add-disk-bus-sd-wire-it-up-for-qemu.patch @@ -1,7 +1,7 @@ -From a0d15c46d153d5574f68e18ea2f027cdb98e9390 Mon Sep 17 00:00:00 2001 +From 019eccdb20e824aabb12da3699664ba2625ef4b4 Mon Sep 17 00:00:00 2001 From: Cole Robinson -Date: Wed, 31 Jul 2013 09:00:26 -0400 -Subject: [PATCH] domain_conf: Add disk bus=sd, wire it up for qemu +Date: Fri, 30 Aug 2013 12:41:34 -0400 +Subject: [PATCH 6/8] domain_conf: Add disk bus=sd, wire it up for qemu This corresponds to '-sd' and '-drive if=sd' on the qemu command line. Needed for many ARM boards which don't provide any other way to @@ -15,10 +15,10 @@ pass in storage. 5 files changed, 22 insertions(+), 7 deletions(-) diff --git a/docs/formatdomain.html.in b/docs/formatdomain.html.in -index 78e132e..1314806 100644 +index cce179d..af9b4ae 100644 --- a/docs/formatdomain.html.in +++ b/docs/formatdomain.html.in -@@ -1660,7 +1660,8 @@ +@@ -1785,7 +1785,8 @@ as a device ordering hint. The optional bus attribute specifies the type of disk device to emulate; possible values are driver specific, with typical values being @@ -29,10 +29,10 @@ index 78e132e..1314806 100644 'sda' will typically be exported using a SCSI bus). The optional attribute tray indicates the tray status of the diff --git a/docs/schemas/domaincommon.rng b/docs/schemas/domaincommon.rng -index 781ecfd..4f4564b 100644 +index 68c3e4d..79ea746 100644 --- a/docs/schemas/domaincommon.rng +++ b/docs/schemas/domaincommon.rng -@@ -1286,6 +1286,7 @@ +@@ -1295,6 +1295,7 @@ usb uml sata @@ -41,7 +41,7 @@ index 781ecfd..4f4564b 100644 diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c -index 8ede44d..5485d86 100644 +index fafbb89..2c62a2d 100644 --- a/src/conf/domain_conf.c +++ b/src/conf/domain_conf.c @@ -239,7 +239,8 @@ VIR_ENUM_IMPL(virDomainDiskBus, VIR_DOMAIN_DISK_BUS_LAST, @@ -54,7 +54,7 @@ index 8ede44d..5485d86 100644 VIR_ENUM_IMPL(virDomainDiskCache, VIR_DOMAIN_DISK_CACHE_LAST, "default", -@@ -17227,6 +17228,7 @@ virDiskNameToBusDeviceIndex(const virDomainDiskDefPtr disk, +@@ -17308,6 +17309,7 @@ virDiskNameToBusDeviceIndex(const virDomainDiskDefPtr disk, case VIR_DOMAIN_DISK_BUS_USB: case VIR_DOMAIN_DISK_BUS_VIRTIO: case VIR_DOMAIN_DISK_BUS_XEN: @@ -63,10 +63,10 @@ index 8ede44d..5485d86 100644 *busIdx = 0; *devIdx = idx; diff --git a/src/conf/domain_conf.h b/src/conf/domain_conf.h -index abf024c..cf075e1 100644 +index 56739b7..380e2bb 100644 --- a/src/conf/domain_conf.h +++ b/src/conf/domain_conf.h -@@ -508,6 +508,7 @@ enum virDomainDiskBus { +@@ -509,6 +509,7 @@ enum virDomainDiskBus { VIR_DOMAIN_DISK_BUS_USB, VIR_DOMAIN_DISK_BUS_UML, VIR_DOMAIN_DISK_BUS_SATA, @@ -75,7 +75,7 @@ index abf024c..cf075e1 100644 VIR_DOMAIN_DISK_BUS_LAST }; diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c -index 66b02fc..d4ab1a6 100644 +index 87345c7..6733709 100644 --- a/src/qemu/qemu_command.c +++ b/src/qemu/qemu_command.c @@ -73,7 +73,8 @@ VIR_ENUM_IMPL(virDomainDiskQEMUBus, VIR_DOMAIN_DISK_BUS_LAST, @@ -98,7 +98,7 @@ index 66b02fc..d4ab1a6 100644 default: virReportError(VIR_ERR_CONFIG_UNSUPPORTED, _("Unsupported disk name mapping for bus '%s'"), -@@ -3406,7 +3410,9 @@ qemuBuildDriveStr(virConnectPtr conn ATTRIBUTE_UNUSED, +@@ -3786,7 +3790,9 @@ qemuBuildDriveStr(virConnectPtr conn ATTRIBUTE_UNUSED, break; case VIR_DOMAIN_DISK_BUS_XEN: @@ -109,7 +109,7 @@ index 66b02fc..d4ab1a6 100644 break; } -@@ -7693,12 +7699,13 @@ qemuBuildCommandLine(virConnectPtr conn, +@@ -8190,12 +8196,13 @@ qemuBuildCommandLine(virConnectPtr conn, virCommandAddArg(cmd, "-drive"); /* Unfortunately it is not possible to use @@ -125,7 +125,7 @@ index 66b02fc..d4ab1a6 100644 withDeviceArg = true; } else { virQEMUCapsClear(qemuCaps, QEMU_CAPS_DEVICE); -@@ -9383,6 +9390,8 @@ qemuParseCommandLineDisk(virDomainXMLOptionPtr xmlopt, +@@ -9892,6 +9899,8 @@ qemuParseCommandLineDisk(virDomainXMLOptionPtr xmlopt, def->bus = VIR_DOMAIN_DISK_BUS_VIRTIO; else if (STREQ(values[i], "xen")) def->bus = VIR_DOMAIN_DISK_BUS_XEN; @@ -134,7 +134,7 @@ index 66b02fc..d4ab1a6 100644 } else if (STREQ(keywords[i], "media")) { if (STREQ(values[i], "cdrom")) { def->device = VIR_DOMAIN_DISK_DEVICE_CDROM; -@@ -9532,7 +9541,8 @@ qemuParseCommandLineDisk(virDomainXMLOptionPtr xmlopt, +@@ -10041,7 +10050,8 @@ qemuParseCommandLineDisk(virDomainXMLOptionPtr xmlopt, if (def->bus == VIR_DOMAIN_DISK_BUS_IDE) { ignore_value(VIR_STRDUP(def->dst, "hda")); @@ -144,3 +144,6 @@ index 66b02fc..d4ab1a6 100644 ignore_value(VIR_STRDUP(def->dst, "sda")); } else if (def->bus == VIR_DOMAIN_DISK_BUS_VIRTIO) { ignore_value(VIR_STRDUP(def->dst, "vda")); +-- +1.8.3.1 + diff --git a/0011-qemu-Fix-networking-for-ARM-guests.patch b/0007-qemu-Fix-networking-for-ARM-guests.patch similarity index 89% rename from 0011-qemu-Fix-networking-for-ARM-guests.patch rename to 0007-qemu-Fix-networking-for-ARM-guests.patch index 227f1f6..197ea92 100644 --- a/0011-qemu-Fix-networking-for-ARM-guests.patch +++ b/0007-qemu-Fix-networking-for-ARM-guests.patch @@ -1,7 +1,7 @@ -From 2661a048446d64fa0e4f6516ca7295e6087b5ec7 Mon Sep 17 00:00:00 2001 +From 7a73b81f1021c76d02fe54f927cd033fe949590f Mon Sep 17 00:00:00 2001 From: Cole Robinson -Date: Tue, 30 Jul 2013 18:51:30 -0400 -Subject: [PATCH] qemu: Fix networking for ARM guests +Date: Fri, 30 Aug 2013 12:41:35 -0400 +Subject: [PATCH 7/8] qemu: Fix networking for ARM guests Similar to the chardev bit, ARM boards depend on the old style '-net nic' for actually instantiating net devices. But we can't block out @@ -19,7 +19,7 @@ And add tests for working ARM XML with console, disk, and networking. create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-arm-vexpressa9-basic.xml diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c -index d4ab1a6..1d57ccc 100644 +index 6733709..787381b 100644 --- a/src/qemu/qemu_command.c +++ b/src/qemu/qemu_command.c @@ -417,6 +417,26 @@ cleanup: @@ -59,7 +59,7 @@ index d4ab1a6..1d57ccc 100644 if (net->driver.virtio.name == VIR_DOMAIN_NET_BACKEND_TYPE_VHOST) { virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", _("vhost-net is not supported with " -@@ -6872,8 +6891,7 @@ qemuBuildInterfaceCommandLine(virCommandPtr cmd, +@@ -7312,8 +7331,7 @@ qemuBuildInterfaceCommandLine(virCommandPtr cmd, * * NB, no support for -netdev without use of -device */ @@ -69,16 +69,16 @@ index d4ab1a6..1d57ccc 100644 if (!(host = qemuBuildHostNetStr(net, driver, ',', vlan, tapfdName, tapfdSize, -@@ -6881,7 +6899,7 @@ qemuBuildInterfaceCommandLine(virCommandPtr cmd, +@@ -7321,7 +7339,7 @@ qemuBuildInterfaceCommandLine(virCommandPtr cmd, goto cleanup; virCommandAddArgList(cmd, "-netdev", host, NULL); } - if (virQEMUCapsGet(qemuCaps, QEMU_CAPS_DEVICE)) { + if (qemuDomainSupportsNicdev(def, qemuCaps)) { - if (!(nic = qemuBuildNicDevStr(net, vlan, bootindex, qemuCaps))) - goto cleanup; - virCommandAddArgList(cmd, "-device", nic, NULL); -@@ -6890,8 +6908,7 @@ qemuBuildInterfaceCommandLine(virCommandPtr cmd, + bool multiqueue = tapfdSize > 1 || vhostfdSize > 1; + + if (!(nic = qemuBuildNicDevStr(def, net, vlan, bootindex, +@@ -7333,8 +7351,7 @@ qemuBuildInterfaceCommandLine(virCommandPtr cmd, goto cleanup; virCommandAddArgList(cmd, "-net", nic, NULL); } @@ -88,7 +88,7 @@ index d4ab1a6..1d57ccc 100644 if (!(host = qemuBuildHostNetStr(net, driver, ',', vlan, tapfdName, tapfdSize, -@@ -7888,8 +7905,7 @@ qemuBuildCommandLine(virConnectPtr conn, +@@ -8385,8 +8402,7 @@ qemuBuildCommandLine(virConnectPtr conn, int vlan; /* VLANs are not used with -netdev, so don't record them */ @@ -99,10 +99,10 @@ index d4ab1a6..1d57ccc 100644 else vlan = i; diff --git a/src/qemu/qemu_domain.c b/src/qemu/qemu_domain.c -index 36df403..0b3503a 100644 +index cff6d70..30588fb 100644 --- a/src/qemu/qemu_domain.c +++ b/src/qemu/qemu_domain.c -@@ -769,6 +769,23 @@ qemuDomainDefPostParse(virDomainDefPtr def, +@@ -799,6 +799,23 @@ qemuDomainDefPostParse(virDomainDefPtr def, return 0; } @@ -126,7 +126,7 @@ index 36df403..0b3503a 100644 static int qemuDomainDeviceDefPostParse(virDomainDeviceDefPtr dev, -@@ -784,8 +801,7 @@ qemuDomainDeviceDefPostParse(virDomainDeviceDefPtr dev, +@@ -814,8 +831,7 @@ qemuDomainDeviceDefPostParse(virDomainDeviceDefPtr dev, dev->data.net->type != VIR_DOMAIN_NET_TYPE_HOSTDEV && !dev->data.net->model) { if (VIR_STRDUP(dev->data.net->model, @@ -191,10 +191,10 @@ index 0000000..ec9374f + + diff --git a/tests/qemuxml2argvtest.c b/tests/qemuxml2argvtest.c -index 361ddb8..0bf2724 100644 +index cb6106f..6ecabbf 100644 --- a/tests/qemuxml2argvtest.c +++ b/tests/qemuxml2argvtest.c -@@ -1029,6 +1029,9 @@ mymain(void) +@@ -1059,6 +1059,9 @@ mymain(void) DO_TEST("arm-vexpressa9-nodevs", QEMU_CAPS_DEVICE, QEMU_CAPS_NODEFCONFIG, QEMU_CAPS_DTB); @@ -204,3 +204,6 @@ index 361ddb8..0bf2724 100644 virObjectUnref(driver.config); virObjectUnref(driver.caps); +-- +1.8.3.1 + diff --git a/0012-qemu-Support-virtio-mmio-transport-for-virtio-on-ARM.patch b/0008-qemu-Support-virtio-mmio-transport-for-virtio-on-ARM.patch similarity index 85% rename from 0012-qemu-Support-virtio-mmio-transport-for-virtio-on-ARM.patch rename to 0008-qemu-Support-virtio-mmio-transport-for-virtio-on-ARM.patch index f2f813d..d113b25 100644 --- a/0012-qemu-Support-virtio-mmio-transport-for-virtio-on-ARM.patch +++ b/0008-qemu-Support-virtio-mmio-transport-for-virtio-on-ARM.patch @@ -1,7 +1,7 @@ -From cd745209fc0b4a433ae7127bab616373e91a8a22 Mon Sep 17 00:00:00 2001 +From 1ec41110747764f89f522e9e010326944da8d96d Mon Sep 17 00:00:00 2001 From: Cole Robinson -Date: Wed, 31 Jul 2013 21:40:35 -0400 -Subject: [PATCH] qemu: Support virtio-mmio transport for virtio on ARM +Date: Fri, 30 Aug 2013 12:41:36 -0400 +Subject: [PATCH 8/8] qemu: Support virtio-mmio transport for virtio on ARM Starting with qemu 1.6, the qemu-system-arm vexpress-a9 model has a hardcoded virtio-mmio transport which enables attaching all virtio @@ -21,18 +21,18 @@ enabled. --- src/conf/domain_conf.c | 12 +++- src/conf/domain_conf.h | 1 + - src/qemu/qemu_capabilities.c | 16 ++++-- - src/qemu/qemu_capabilities.h | 1 + + src/qemu/qemu_capabilities.c | 17 ++++-- + src/qemu/qemu_capabilities.h | 2 + src/qemu/qemu_command.c | 65 +++++++++++++++++----- .../qemuxml2argv-arm-vexpressa9-virtio.args | 14 +++++ .../qemuxml2argv-arm-vexpressa9-virtio.xml | 45 +++++++++++++++ tests/qemuxml2argvtest.c | 4 ++ - 8 files changed, 137 insertions(+), 21 deletions(-) + 8 files changed, 139 insertions(+), 21 deletions(-) create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-arm-vexpressa9-virtio.args create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-arm-vexpressa9-virtio.xml diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c -index 5485d86..73e5af4 100644 +index 2c62a2d..3b51ae8 100644 --- a/src/conf/domain_conf.c +++ b/src/conf/domain_conf.c @@ -210,7 +210,8 @@ VIR_ENUM_IMPL(virDomainDeviceAddress, VIR_DOMAIN_DEVICE_ADDRESS_TYPE_LAST, @@ -45,7 +45,7 @@ index 5485d86..73e5af4 100644 VIR_ENUM_IMPL(virDomainDisk, VIR_DOMAIN_DISK_TYPE_LAST, "block", -@@ -2386,6 +2387,7 @@ int virDomainDeviceAddressIsValid(virDomainDeviceInfoPtr info, +@@ -2390,6 +2391,7 @@ int virDomainDeviceAddressIsValid(virDomainDeviceInfoPtr info, return 1; case VIR_DOMAIN_DEVICE_ADDRESS_TYPE_VIRTIO_S390: @@ -53,7 +53,7 @@ index 5485d86..73e5af4 100644 return 1; case VIR_DOMAIN_DEVICE_ADDRESS_TYPE_CCW: -@@ -3027,6 +3029,9 @@ virDomainDeviceInfoFormat(virBufferPtr buf, +@@ -3031,6 +3033,9 @@ virDomainDeviceInfoFormat(virBufferPtr buf, info->addr.ccw.devno); break; @@ -63,7 +63,7 @@ index 5485d86..73e5af4 100644 default: virReportError(VIR_ERR_INTERNAL_ERROR, _("unknown address type '%d'"), info->type); -@@ -3491,6 +3496,9 @@ virDomainDeviceInfoParseXML(xmlNodePtr node, +@@ -3495,6 +3500,9 @@ virDomainDeviceInfoParseXML(xmlNodePtr node, goto cleanup; break; @@ -73,7 +73,7 @@ index 5485d86..73e5af4 100644 default: /* Should not happen */ virReportError(VIR_ERR_INTERNAL_ERROR, -@@ -5738,6 +5746,7 @@ virDomainControllerDefParseXML(xmlNodePtr node, +@@ -5827,6 +5835,7 @@ virDomainControllerDefParseXML(xmlNodePtr node, def->info.type != VIR_DOMAIN_DEVICE_ADDRESS_TYPE_SPAPRVIO && def->info.type != VIR_DOMAIN_DEVICE_ADDRESS_TYPE_CCW && def->info.type != VIR_DOMAIN_DEVICE_ADDRESS_TYPE_VIRTIO_S390 && @@ -81,7 +81,7 @@ index 5485d86..73e5af4 100644 def->info.type != VIR_DOMAIN_DEVICE_ADDRESS_TYPE_PCI) { virReportError(VIR_ERR_INTERNAL_ERROR, "%s", _("Controllers must use the 'pci' address type")); -@@ -6349,6 +6358,7 @@ virDomainNetDefParseXML(virDomainXMLOptionPtr xmlopt, +@@ -6387,6 +6396,7 @@ virDomainNetDefParseXML(virDomainXMLOptionPtr xmlopt, def->info.type != VIR_DOMAIN_DEVICE_ADDRESS_TYPE_SPAPRVIO && def->info.type != VIR_DOMAIN_DEVICE_ADDRESS_TYPE_CCW && def->info.type != VIR_DOMAIN_DEVICE_ADDRESS_TYPE_VIRTIO_S390 && @@ -90,7 +90,7 @@ index 5485d86..73e5af4 100644 virReportError(VIR_ERR_INTERNAL_ERROR, "%s", _("Network interfaces must use 'pci' address type")); diff --git a/src/conf/domain_conf.h b/src/conf/domain_conf.h -index cf075e1..f0344ac 100644 +index 380e2bb..1d70eba 100644 --- a/src/conf/domain_conf.h +++ b/src/conf/domain_conf.h @@ -207,6 +207,7 @@ enum virDomainDeviceAddressType { @@ -102,26 +102,27 @@ index cf075e1..f0344ac 100644 VIR_DOMAIN_DEVICE_ADDRESS_TYPE_LAST }; diff --git a/src/qemu/qemu_capabilities.c b/src/qemu/qemu_capabilities.c -index 5c8316f..c4c6fbd 100644 +index 72df793..a0f7773 100644 --- a/src/qemu/qemu_capabilities.c +++ b/src/qemu/qemu_capabilities.c -@@ -234,6 +234,7 @@ VIR_ENUM_IMPL(virQEMUCaps, QEMU_CAPS_LAST, - - "vnc-share-policy", /* 150 */ - "device-del-event", -+ "virtio-mmio", +@@ -237,6 +237,8 @@ VIR_ENUM_IMPL(virQEMUCaps, QEMU_CAPS_LAST, + "dmi-to-pci-bridge", + "i440fx-pci-hole64-size", + "q35-pci-hole64-size", ++ ++ "virtio-mmio", /* 155 */ ); struct _virQEMUCaps { -@@ -1381,6 +1382,7 @@ struct virQEMUCapsStringFlags virQEMUCapsObjectTypes[] = { - { "pci-bridge", QEMU_CAPS_DEVICE_PCI_BRIDGE }, +@@ -1385,6 +1387,7 @@ struct virQEMUCapsStringFlags virQEMUCapsObjectTypes[] = { { "vfio-pci", QEMU_CAPS_DEVICE_VFIO_PCI }, { "scsi-generic", QEMU_CAPS_DEVICE_SCSI_GENERIC }, + { "i82801b11-bridge", QEMU_CAPS_DEVICE_DMI_TO_PCI_BRIDGE }, + { "virtio-mmio", QEMU_CAPS_DEVICE_VIRTIO_MMIO }, }; static struct virQEMUCapsStringFlags virQEMUCapsObjectPropsVirtioBlk[] = { -@@ -2814,17 +2816,19 @@ virQEMUCapsUsedQMP(virQEMUCapsPtr qemuCaps) +@@ -2831,17 +2834,19 @@ virQEMUCapsUsedQMP(virQEMUCapsPtr qemuCaps) bool virQEMUCapsSupportsChardev(virDomainDefPtr def, virQEMUCapsPtr qemuCaps, @@ -148,19 +149,20 @@ index 5c8316f..c4c6fbd 100644 + chr->targetType == VIR_DOMAIN_CHR_CONSOLE_TARGET_TYPE_VIRTIO)); } diff --git a/src/qemu/qemu_capabilities.h b/src/qemu/qemu_capabilities.h -index 56f8405..fdb61b0 100644 +index 5180ee9..e000ce5 100644 --- a/src/qemu/qemu_capabilities.h +++ b/src/qemu/qemu_capabilities.h -@@ -190,6 +190,7 @@ enum virQEMUCapsFlags { - QEMU_CAPS_MLOCK = 149, /* -realtime mlock=on|off */ - QEMU_CAPS_VNC_SHARE_POLICY = 150, /* set display sharing policy */ - QEMU_CAPS_DEVICE_DEL_EVENT = 151, /* DEVICE_DELETED event */ -+ QEMU_CAPS_DEVICE_VIRTIO_MMIO = 152, /* -device virtio-mmio */ +@@ -194,6 +194,8 @@ enum virQEMUCapsFlags { + QEMU_CAPS_I440FX_PCI_HOLE64_SIZE = 153, /* i440FX-pcihost.pci-hole64-size */ + QEMU_CAPS_Q35_PCI_HOLE64_SIZE = 154, /* q35-pcihost.pci-hole64-size */ ++ QEMU_CAPS_DEVICE_VIRTIO_MMIO = 155, /* -device virtio-mmio */ ++ QEMU_CAPS_LAST, /* this must always be the last item */ }; + diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c -index 1d57ccc..360be4e 100644 +index 787381b..efbfc97 100644 --- a/src/qemu/qemu_command.c +++ b/src/qemu/qemu_command.c @@ -418,22 +418,27 @@ cleanup: @@ -205,7 +207,7 @@ index 1d57ccc..360be4e 100644 if (net->driver.virtio.name == VIR_DOMAIN_NET_BACKEND_TYPE_VHOST) { virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", _("vhost-net is not supported with " -@@ -1146,8 +1151,8 @@ cleanup: +@@ -1154,8 +1159,8 @@ cleanup: } static void @@ -216,7 +218,7 @@ index 1d57ccc..360be4e 100644 { /* declare address-less virtio devices to be of address type 'type' -@@ -1281,7 +1286,7 @@ qemuDomainAssignS390Addresses(virDomainDefPtr def, +@@ -1289,7 +1294,7 @@ qemuDomainAssignS390Addresses(virDomainDefPtr def, if (STREQLEN(def->os.machine, "s390-ccw", 8) && virQEMUCapsGet(qemuCaps, QEMU_CAPS_VIRTIO_CCW)) { @@ -225,7 +227,7 @@ index 1d57ccc..360be4e 100644 def, VIR_DOMAIN_DEVICE_ADDRESS_TYPE_CCW); if (!(addrs = qemuDomainCCWAddressSetCreate())) -@@ -1296,7 +1301,7 @@ qemuDomainAssignS390Addresses(virDomainDefPtr def, +@@ -1304,7 +1309,7 @@ qemuDomainAssignS390Addresses(virDomainDefPtr def, goto cleanup; } else if (virQEMUCapsGet(qemuCaps, QEMU_CAPS_VIRTIO_S390)) { /* deal with legacy virtio-s390 */ @@ -234,7 +236,7 @@ index 1d57ccc..360be4e 100644 def, VIR_DOMAIN_DEVICE_ADDRESS_TYPE_VIRTIO_S390); } -@@ -1319,6 +1324,18 @@ cleanup: +@@ -1327,6 +1332,18 @@ cleanup: return ret; } @@ -253,7 +255,7 @@ index 1d57ccc..360be4e 100644 static int qemuSpaprVIOFindByReg(virDomainDefPtr def ATTRIBUTE_UNUSED, -@@ -1834,6 +1851,10 @@ int qemuDomainAssignAddresses(virDomainDefPtr def, +@@ -1912,6 +1929,10 @@ int qemuDomainAssignAddresses(virDomainDefPtr def, if (rc) return rc; @@ -264,7 +266,7 @@ index 1d57ccc..360be4e 100644 return qemuDomainAssignPCIAddresses(def, qemuCaps, obj); } -@@ -3957,6 +3978,9 @@ qemuBuildDriveDevStr(virDomainDefPtr def, +@@ -4367,6 +4388,9 @@ qemuBuildDriveDevStr(virDomainDefPtr def, } else if (disk->info.type == VIR_DOMAIN_DEVICE_ADDRESS_TYPE_VIRTIO_S390) { virBufferAddLit(&opt, "virtio-blk-s390"); @@ -274,7 +276,7 @@ index 1d57ccc..360be4e 100644 } else { virBufferAddLit(&opt, "virtio-blk-pci"); } -@@ -4234,6 +4258,9 @@ qemuBuildControllerDevStr(virDomainDefPtr domainDef, +@@ -4645,6 +4669,9 @@ qemuBuildControllerDevStr(virDomainDefPtr domainDef, else if (def->info.type == VIR_DOMAIN_DEVICE_ADDRESS_TYPE_VIRTIO_S390) virBufferAddLit(&buf, "virtio-scsi-s390"); @@ -284,7 +286,7 @@ index 1d57ccc..360be4e 100644 else virBufferAddLit(&buf, "virtio-scsi-pci"); break; -@@ -4263,6 +4290,9 @@ qemuBuildControllerDevStr(virDomainDefPtr domainDef, +@@ -4674,6 +4701,9 @@ qemuBuildControllerDevStr(virDomainDefPtr domainDef, } else if (def->info.type == VIR_DOMAIN_DEVICE_ADDRESS_TYPE_VIRTIO_S390) { virBufferAddLit(&buf, "virtio-serial-s390"); @@ -294,7 +296,7 @@ index 1d57ccc..360be4e 100644 } else { virBufferAddLit(&buf, "virtio-serial"); } -@@ -4378,6 +4408,8 @@ qemuBuildNicDevStr(virDomainNetDefPtr net, +@@ -4806,6 +4836,8 @@ qemuBuildNicDevStr(virDomainDefPtr def, nic = "virtio-net-ccw"; else if (net->info.type == VIR_DOMAIN_DEVICE_ADDRESS_TYPE_VIRTIO_S390) nic = "virtio-net-s390"; @@ -303,7 +305,7 @@ index 1d57ccc..360be4e 100644 else nic = "virtio-net-pci"; -@@ -4622,6 +4654,9 @@ qemuBuildMemballoonDevStr(virDomainMemballoonDefPtr dev, +@@ -5054,6 +5086,9 @@ qemuBuildMemballoonDevStr(virDomainDefPtr def, case VIR_DOMAIN_DEVICE_ADDRESS_TYPE_CCW: virBufferAddLit(&buf, "virtio-balloon-ccw"); break; @@ -313,7 +315,7 @@ index 1d57ccc..360be4e 100644 default: virReportError(VIR_ERR_XML_ERROR, _("memballoon unsupported with address type '%s'"), -@@ -5615,6 +5650,8 @@ qemuBuildRNGDeviceArgs(virCommandPtr cmd, +@@ -6055,6 +6090,8 @@ qemuBuildRNGDeviceArgs(virCommandPtr cmd, virBufferAsprintf(&buf, "virtio-rng-ccw,rng=%s", dev->info.alias); else if (dev->info.type == VIR_DOMAIN_DEVICE_ADDRESS_TYPE_VIRTIO_S390) virBufferAsprintf(&buf, "virtio-rng-s390,rng=%s", dev->info.alias); @@ -322,7 +324,7 @@ index 1d57ccc..360be4e 100644 else virBufferAsprintf(&buf, "virtio-rng-pci,rng=%s", dev->info.alias); -@@ -6891,7 +6928,7 @@ qemuBuildInterfaceCommandLine(virCommandPtr cmd, +@@ -7331,7 +7368,7 @@ qemuBuildInterfaceCommandLine(virCommandPtr cmd, * * NB, no support for -netdev without use of -device */ @@ -331,16 +333,16 @@ index 1d57ccc..360be4e 100644 if (!(host = qemuBuildHostNetStr(net, driver, ',', vlan, tapfdName, tapfdSize, -@@ -6899,7 +6936,7 @@ qemuBuildInterfaceCommandLine(virCommandPtr cmd, +@@ -7339,7 +7376,7 @@ qemuBuildInterfaceCommandLine(virCommandPtr cmd, goto cleanup; virCommandAddArgList(cmd, "-netdev", host, NULL); } - if (qemuDomainSupportsNicdev(def, qemuCaps)) { + if (qemuDomainSupportsNicdev(def, qemuCaps, net)) { - if (!(nic = qemuBuildNicDevStr(net, vlan, bootindex, qemuCaps))) - goto cleanup; - virCommandAddArgList(cmd, "-device", nic, NULL); -@@ -6908,7 +6945,7 @@ qemuBuildInterfaceCommandLine(virCommandPtr cmd, + bool multiqueue = tapfdSize > 1 || vhostfdSize > 1; + + if (!(nic = qemuBuildNicDevStr(def, net, vlan, bootindex, +@@ -7351,7 +7388,7 @@ qemuBuildInterfaceCommandLine(virCommandPtr cmd, goto cleanup; virCommandAddArgList(cmd, "-net", nic, NULL); } @@ -349,7 +351,7 @@ index 1d57ccc..360be4e 100644 if (!(host = qemuBuildHostNetStr(net, driver, ',', vlan, tapfdName, tapfdSize, -@@ -7905,7 +7942,7 @@ qemuBuildCommandLine(virConnectPtr conn, +@@ -8402,7 +8439,7 @@ qemuBuildCommandLine(virConnectPtr conn, int vlan; /* VLANs are not used with -netdev, so don't record them */ @@ -430,10 +432,10 @@ index 0000000..2acf3c9 + + diff --git a/tests/qemuxml2argvtest.c b/tests/qemuxml2argvtest.c -index 0bf2724..2bdd18e 100644 +index 6ecabbf..ae8cc3b 100644 --- a/tests/qemuxml2argvtest.c +++ b/tests/qemuxml2argvtest.c -@@ -1032,6 +1032,10 @@ mymain(void) +@@ -1062,6 +1062,10 @@ mymain(void) DO_TEST("arm-vexpressa9-basic", QEMU_CAPS_DEVICE, QEMU_CAPS_NODEFCONFIG, QEMU_CAPS_DTB, QEMU_CAPS_DRIVE); @@ -444,3 +446,6 @@ index 0bf2724..2bdd18e 100644 virObjectUnref(driver.config); virObjectUnref(driver.caps); +-- +1.8.3.1 + diff --git a/libvirt.spec b/libvirt.spec index 3d5661e..3615fa4 100644 --- a/libvirt.spec +++ b/libvirt.spec @@ -100,6 +100,9 @@ %define with_numactl 0%{!?_without_numactl:%{server_drivers}} %define with_selinux 0%{!?_without_selinux:%{server_drivers}} +# Just hardcode to off, since few people ever have apparmor RPMs installed +%define with_apparmor 0%{!?_without_apparmor:0} + # A few optional bits off by default, we enable later %define with_polkit 0%{!?_without_polkit:0} %define with_capng 0%{!?_without_capng:0} @@ -245,14 +248,19 @@ %if 0%{?fedora} >= 16 %define with_sanlock 0%{!?_without_sanlock:%{server_drivers}} %endif -%if 0%{?rhel} >= 6 +%if 0%{?rhel} == 6 %ifarch %{ix86} x86_64 %define with_sanlock 0%{!?_without_sanlock:%{server_drivers}} %endif %endif +%if 0%{?rhel} >= 7 + %ifarch x86_64 + %define with_sanlock 0%{!?_without_sanlock:%{server_drivers}} + %endif +%endif # Enable libssh2 transport for new enough distros -%if 0%{?fedora} >= 17 || 0%{?rhel} >= 6 +%if 0%{?fedora} >= 17 %define with_libssh2 0%{!?_without_libssh2:1} %endif @@ -347,10 +355,18 @@ %endif +# RHEL releases provide stable tool chains and so it is safe to turn +# compiler warning into errors without being worried about frequent +# changes in reported warnings +%if 0%{?rhel} + %define enable_werror --enable-werror +%endif + + Summary: Library providing a simple virtualization API Name: libvirt -Version: 1.1.1 -Release: 3%{?dist}%{?extra_release} +Version: 1.1.2 +Release: 1%{?dist}%{?extra_release} License: LGPLv2+ Group: Development/Libraries BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root @@ -361,21 +377,15 @@ URL: http://libvirt.org/ %endif Source: http://libvirt.org/sources/%{?mainturl}libvirt-%{version}.tar.gz -# CVE-2013-4239: xen: memory corruption in legacy driver (bz #996241, bz -# #996244) -Patch0001: 0001-xen-fix-memory-corruption-in-legacy-driver.patch # Fix launching ARM guests on x86 (patches posted upstream, F20 feature) -Patch0002: 0002-conf-add-default-USB-controller-in-qemu-post-parse-c.patch -Patch0003: 0003-qemu-rename-some-functions-in-qemu_command.c.patch -Patch0004: 0004-qemu-Set-QEMU_AUDIO_DRV-none-with-nographic.patch -Patch0005: 0005-qemu-Only-setup-vhost-if-virtType-kvm.patch -Patch0006: 0006-domain_conf-Add-default-memballon-in-PostParse-callb.patch -Patch0007: 0007-qemu-Don-t-add-default-memballoon-device-on-ARM.patch -Patch0008: 0008-qemu-Fix-adding-specifying-char-devs-for-ARM.patch -Patch0009: 0009-qemu-Don-t-try-to-allocate-PCI-addresses-for-ARM.patch -Patch0010: 0010-domain_conf-Add-disk-bus-sd-wire-it-up-for-qemu.patch -Patch0011: 0011-qemu-Fix-networking-for-ARM-guests.patch -Patch0012: 0012-qemu-Support-virtio-mmio-transport-for-virtio-on-ARM.patch +Patch0001: 0001-qemu-Set-QEMU_AUDIO_DRV-none-with-nographic.patch +Patch0002: 0002-domain_conf-Add-default-memballoon-in-PostParse-call.patch +Patch0003: 0003-qemu-Don-t-add-default-memballoon-device-on-ARM.patch +Patch0004: 0004-qemu-Fix-specifying-char-devs-for-ARM.patch +Patch0005: 0005-qemu-Don-t-try-to-allocate-PCI-addresses-for-ARM.patch +Patch0006: 0006-domain_conf-Add-disk-bus-sd-wire-it-up-for-qemu.patch +Patch0007: 0007-qemu-Fix-networking-for-ARM-guests.patch +Patch0008: 0008-qemu-Support-virtio-mmio-transport-for-virtio-on-ARM.patch %if %{with_libvirtd} Requires: libvirt-daemon = %{version}-%{release} @@ -438,7 +448,9 @@ BuildRequires: readline-devel BuildRequires: ncurses-devel BuildRequires: gettext BuildRequires: libtasn1-devel +%if (0%{?rhel} && 0%{?rhel} < 7) || (0%{?fedora} && 0%{?fedora} < 19) BuildRequires: libgcrypt-devel +%endif BuildRequires: gnutls-devel BuildRequires: libattr-devel %if %{with_libvirtd} @@ -488,6 +500,9 @@ BuildRequires: avahi-devel %if %{with_selinux} BuildRequires: libselinux-devel %endif +%if %{with_apparmor} +BuildRequires: libapparmor-devel +%endif %if %{with_network} BuildRequires: dnsmasq >= 2.41 BuildRequires: iptables @@ -1147,10 +1162,8 @@ of recent versions of Linux (and other OSes). %prep %setup -q -# CVE-2013-4239: xen: memory corruption in legacy driver (bz #996241, bz -# #996244) -%patch0001 -p1 # Fix launching ARM guests on x86 (patches posted upstream, F20 feature) +%patch0001 -p1 %patch0002 -p1 %patch0003 -p1 %patch0004 -p1 @@ -1158,10 +1171,6 @@ of recent versions of Linux (and other OSes). %patch0006 -p1 %patch0007 -p1 %patch0008 -p1 -%patch0009 -p1 -%patch0010 -p1 -%patch0011 -p1 -%patch0012 -p1 %build %if ! %{with_xen} @@ -1300,6 +1309,10 @@ of recent versions of Linux (and other OSes). %define _without_selinux --without-selinux %endif +%if ! %{with_apparmor} + %define _without_apparmor --without-apparmor +%endif + %if ! %{with_hal} %define _without_hal --without-hal %endif @@ -1352,10 +1365,6 @@ of recent versions of Linux (and other OSes). %define init_scripts --with-init_script=redhat %endif -%if 0%{?enable_autotools} - autoreconf -if -%endif - %if %{with_selinux} %if 0%{?fedora} >= 17 || 0%{?rhel} >= 7 %define with_selinux_mount --with-selinux-mount="/sys/fs/selinux" @@ -1364,6 +1373,12 @@ of recent versions of Linux (and other OSes). %endif %endif +# place macros above and build commands below this comment + +%if 0%{?enable_autotools} + autoreconf -if +%endif + %configure %{?_without_xen} \ %{?_without_qemu} \ %{?_without_openvz} \ @@ -1399,6 +1414,7 @@ of recent versions of Linux (and other OSes). %{?_without_netcf} \ %{?_without_selinux} \ %{?_with_selinux_mount} \ + %{?_without_apparmor} \ %{?_without_hal} \ %{?_without_udev} \ %{?_without_yajl} \ @@ -1413,6 +1429,8 @@ of recent versions of Linux (and other OSes). %{with_packager_version} \ --with-qemu-user=%{qemu_user} \ --with-qemu-group=%{qemu_group} \ + %{?enable_werror} \ + --enable-expensive-tests \ %{init_scripts} make %{?_smp_mflags} gzip -9 ChangeLog @@ -1472,12 +1490,6 @@ rm -f $RPM_BUILD_ROOT%{_datadir}/augeas/lenses/libvirtd_lxc.aug rm -f $RPM_BUILD_ROOT%{_datadir}/augeas/lenses/tests/test_libvirtd_lxc.aug %endif -%if ! %{with_python} -rm -rf $RPM_BUILD_ROOT%{_datadir}/doc/libvirt-python-%{version} -%else -rm -rf $RPM_BUILD_ROOT%{_datadir}/doc/libvirt-python-%{version}/examples -%endif - %if ! %{with_qemu} rm -rf $RPM_BUILD_ROOT%{_sysconfdir}/libvirt/qemu.conf rm -rf $RPM_BUILD_ROOT%{_sysconfdir}/logrotate.d/libvirtd.qemu @@ -1770,6 +1782,7 @@ fi %config(noreplace) %{_sysconfdir}/sysconfig/libvirtd %config(noreplace) %{_sysconfdir}/sysconfig/virtlockd %config(noreplace) %{_sysconfdir}/libvirt/libvirtd.conf +%config(noreplace) %{_sysconfdir}/libvirt/virtlockd.conf %if 0%{?fedora} >= 14 || 0%{?rhel} >= 6 %config(noreplace) %{_prefix}/lib/sysctl.d/libvirtd.conf %endif @@ -1811,6 +1824,7 @@ fi %if %{with_qemu} %ghost %dir %attr(0700, root, root) %{_localstatedir}/run/libvirt/qemu/ %dir %attr(0750, %{qemu_user}, %{qemu_group}) %{_localstatedir}/lib/libvirt/qemu/ +%dir %attr(0750, %{qemu_user}, %{qemu_group}) %{_localstatedir}/lib/libvirt/qemu/channel/ %dir %attr(0750, %{qemu_user}, %{qemu_group}) %{_localstatedir}/lib/libvirt/qemu/channel/target/ %dir %attr(0750, %{qemu_user}, %{qemu_group}) %{_localstatedir}/cache/libvirt/qemu/ %endif @@ -1850,6 +1864,8 @@ fi %{_datadir}/augeas/lenses/libvirtd.aug %{_datadir}/augeas/lenses/tests/test_libvirtd.aug +%{_datadir}/augeas/lenses/virtlockd.aug +%{_datadir}/augeas/lenses/tests/test_virtlockd.aug %{_datadir}/augeas/lenses/libvirt_lockd.aug %{_datadir}/augeas/lenses/tests/test_libvirt_lockd.aug @@ -1873,10 +1889,16 @@ fi %endif %attr(0755, root, root) %{_libexecdir}/libvirt_iohelper + + %if %{with_apparmor} +%attr(0755, root, root) %{_libexecdir}/virt-aa-helper + %endif + %attr(0755, root, root) %{_sbindir}/libvirtd %attr(0755, root, root) %{_sbindir}/virtlockd %{_mandir}/man8/libvirtd.8* +%{_mandir}/man8/virtlockd.8* %if %{with_driver_modules} %if %{with_network} @@ -2012,14 +2034,17 @@ fi %doc AUTHORS ChangeLog.gz NEWS README COPYING COPYING.LESSER TODO %config(noreplace) %{_sysconfdir}/libvirt/libvirt.conf +%config(noreplace) %{_sysconfdir}/libvirt/virt-login-shell.conf %{_mandir}/man1/virsh.1* %{_mandir}/man1/virt-xml-validate.1* %{_mandir}/man1/virt-pki-validate.1* %{_mandir}/man1/virt-host-validate.1* +%{_mandir}/man1/virt-login-shell.1* %{_bindir}/virsh %{_bindir}/virt-xml-validate %{_bindir}/virt-pki-validate %{_bindir}/virt-host-validate +%attr(4755, root, root) %{_bindir}/virt-login-shell %{_libdir}/lib*.so.* %if %{with_dtrace} @@ -2095,12 +2120,14 @@ fi %{_libdir}/python*/site-packages/libvirt_qemu.py* %{_libdir}/python*/site-packages/libvirt_lxc.py* %{_libdir}/python*/site-packages/libvirtmod* -%doc python/tests/*.py %doc examples/python %doc examples/domain-events/events-python %endif %changelog +* Mon Sep 2 2013 Daniel P. Berrange - 1.1.2-1 +- Update to 1.1.2 release + * Tue Aug 20 2013 Cole Robinson - 1.1.1-3 - Fix launching ARM guests on x86 (patches posted upstream, F20 feature) diff --git a/sources b/sources index 55136e3..bfb1abc 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -632f30a2f22fbb404b8e10702d7f55ca libvirt-1.1.1.tar.gz +1835bbfa492099bce12e2934870e5611 libvirt-1.1.2.tar.gz