From 21b5b71da6aedc8d11da0d207275a666d53a3f62 Mon Sep 17 00:00:00 2001
From: Cole Robinson defaultMode
attribute sets the default channel
++ security policy, valid values are secure
,
++ insecure
and the default any
++ (which is secure if possible, but falls back to insecure
++ rather than erroring out if no secure path is
++ available). "defaultMode" since
++ 0.9.12.
+
+ When SPICE has both a normal and TLS secured TCP port
+diff --git a/docs/schemas/domaincommon.rng b/docs/schemas/domaincommon.rng
+index fe81c26..0d6edc8 100644
+--- a/docs/schemas/domaincommon.rng
++++ b/docs/schemas/domaincommon.rng
+@@ -1388,6 +1388,15 @@
+
+
+
++ main
, display
,
+ inputs
, cursor
,
+- playback
, record
;
+- and since
+- 0.8.8: smartcard
.
++ playback
, record
++ (all since 0.8.6);
++ smartcard
(since
++ 0.8.8); and usbredir
++ (since 0.9.12).
+
+ <graphics type='spice' port='-1' tlsPort='-1' autoport='yes'> +diff --git a/docs/schemas/domaincommon.rng b/docs/schemas/domaincommon.rng +index 9f8d292..fe81c26 100644 +--- a/docs/schemas/domaincommon.rng ++++ b/docs/schemas/domaincommon.rng +@@ -1401,6 +1401,7 @@ +playback +record +smartcard ++usbredir + + ++diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c +index 2f9da71..9cc1644 100644 +--- a/src/conf/domain_conf.c ++++ b/src/conf/domain_conf.c +@@ -389,7 +389,8 @@ VIR_ENUM_IMPL(virDomainGraphicsSpiceChannelName, + "cursor", + "playback", + "record", +- "smartcard"); ++ "smartcard", ++ "usbredir"); + + VIR_ENUM_IMPL(virDomainGraphicsSpiceChannelMode, + VIR_DOMAIN_GRAPHICS_SPICE_CHANNEL_MODE_LAST, +diff --git a/src/conf/domain_conf.h b/src/conf/domain_conf.h +index f2cd8eb..d40fda6 100644 +--- a/src/conf/domain_conf.h ++++ b/src/conf/domain_conf.h +@@ -797,6 +797,7 @@ enum virDomainGraphicsSpiceChannelName { + VIR_DOMAIN_GRAPHICS_SPICE_CHANNEL_PLAYBACK, + VIR_DOMAIN_GRAPHICS_SPICE_CHANNEL_RECORD, + VIR_DOMAIN_GRAPHICS_SPICE_CHANNEL_SMARTCARD, ++ VIR_DOMAIN_GRAPHICS_SPICE_CHANNEL_USBREDIR, + + VIR_DOMAIN_GRAPHICS_SPICE_CHANNEL_LAST + }; +diff --git a/tests/qemuxml2argvdata/qemuxml2argv-graphics-spice-usb-redir.args b/tests/qemuxml2argvdata/qemuxml2argv-graphics-spice-usb-redir.args +new file mode 100644 +index 0000000..35e51a7 +--- /dev/null ++++ b/tests/qemuxml2argvdata/qemuxml2argv-graphics-spice-usb-redir.args +@@ -0,0 +1,16 @@ ++LC_ALL=C PATH=/bin HOME=/home/test USER=test LOGNAME=test QEMU_AUDIO_DRV=spice /usr/bin/qemu -S -M pc -m 214 -smp 1 -nodefconfig -nodefaults -chardev socket,id=charmonitor,path=/tmp/test-monitor,server,nowait -mon chardev=charmonitor,id=monitor,mode=readline -no-acpi -boot c \ ++-device ich9-usb-ehci1,id=usb,bus=pci.0,addr=0x4.0x7 \ ++-device ich9-usb-uhci1,masterbus=usb.0,firstport=0,bus=pci.0,multifunction=on,addr=0x4 \ ++-device ich9-usb-uhci2,masterbus=usb.0,firstport=2,bus=pci.0,addr=0x4.0x1 \ ++-device ich9-usb-uhci3,masterbus=usb.0,firstport=4,bus=pci.0,addr=0x4.0x2 \ ++-spice port=5903,tls-port=5904,addr=127.0.0.1,\ ++x509-dir=/etc/pki/libvirt-spice,tls-channel=main,plaintext-channel=inputs,\ ++tls-channel=usbredir,\ ++image-compression=auto_glz,jpeg-wan-compression=auto,zlib-glz-wan-compression=auto,\ ++playback-compression=on,streaming-video=filter,disable-copy-paste \ ++-vga cirrus \ ++-chardev socket,id=charredir0,host=localhost,port=4000 \ ++-device usb-redir,chardev=charredir0,id=redir0 \ ++-chardev spicevmc,id=charredir1,name=usbredir \ ++-device usb-redir,chardev=charredir1,id=redir1,bus=usb.0,port=4 \ ++-device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x3 +diff --git a/tests/qemuxml2argvdata/qemuxml2argv-graphics-spice-usb-redir.xml b/tests/qemuxml2argvdata/qemuxml2argv-graphics-spice-usb-redir.xml +new file mode 100644 +index 0000000..1dc23bd +--- /dev/null ++++ b/tests/qemuxml2argvdata/qemuxml2argv-graphics-spice-usb-redir.xml +@@ -0,0 +1,53 @@ ++ ++ +diff --git a/tests/qemuxml2argvtest.c b/tests/qemuxml2argvtest.c +index 1dc6a01..d5475c5 100644 +--- a/tests/qemuxml2argvtest.c ++++ b/tests/qemuxml2argvtest.c +@@ -405,6 +405,12 @@ mymain(void) + QEMU_CAPS_VGA, QEMU_CAPS_VGA_QXL, + QEMU_CAPS_DEVICE, QEMU_CAPS_SPICE, + QEMU_CAPS_DEVICE_QXL_VGA); ++ DO_TEST("graphics-spice-usb-redir", false, ++ QEMU_CAPS_VGA, QEMU_CAPS_SPICE, ++ QEMU_CAPS_CHARDEV, QEMU_CAPS_DEVICE, QEMU_CAPS_NODEFCONFIG, ++ QEMU_CAPS_PCI_MULTIFUNCTION, QEMU_CAPS_USB_HUB, ++ QEMU_CAPS_ICH9_USB_EHCI1, QEMU_CAPS_USB_REDIR, ++ QEMU_CAPS_CHARDEV_SPICEVMC); + + DO_TEST("input-usbmouse", false, NONE); + DO_TEST("input-usbtablet", false, NONE); +-- +1.7.7.6 + +diff -rup libvirt-0.9.6.1/tests/qemuxml2argvdata/qemuxml2argv-graphics-spice-usb-redir.xml foo/tests/qemuxml2argvdata/qemuxml2argv-graphics-spice-usb-redir.xml +--- libvirt-0.9.6.1/tests/qemuxml2argvdata/qemuxml2argv-graphics-spice-usb-redir.xml 2012-06-15 17:10:09.086979189 -0400 ++++ foo/tests/qemuxml2argvdata/qemuxml2argv-graphics-spice-usb-redir.xml 2012-06-15 17:21:08.788770706 -0400 +@@ -1,8 +1,8 @@ +QEMUGuest1 ++c7a5fdbd-edaf-9455-926a-d65c16db1809 ++219136 ++219136 ++1 ++++ ++hvm ++++ ++ destroy ++restart ++destroy ++++ ++/usr/bin/qemu ++++ ++++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++++ ++++ ++ ++ ++++ ++ ++ ++++ ++ ++ ++++ ++ ++ ++ ++++ + QEMUGuest1 +c7a5fdbd-edaf-9455-926a-d65c16db1809 +-219136 +-219136 ++219136 ++219136 +1 ++ hvm diff --git a/libvirt-emit-spice-events.patch b/libvirt-emit-spice-events.patch new file mode 100644 index 0000000..ec50f2d --- /dev/null +++ b/libvirt-emit-spice-events.patch @@ -0,0 +1,136 @@ +From 57f08fb47b0938a9e8969b857380926fa6966ca8 Mon Sep 17 00:00:00 2001 +From: Laine Stump+Date: Wed, 14 Mar 2012 01:41:35 -0400 +Subject: [PATCH] Emit graphics events when a SPICE client + connects/disconnects + +Wire up the domain graphics event notifications for SPICE. Adapted +from a RHEL-only patch written by Dan Berrange that used custom +__com.redhat_SPICE events - equivalent events are now available in +upstream QEMU (including a SPICE_CONNECTED event, which was missing in +the __COM.redhat_SPICE version). + +* src/qemu/qemu_monitor_json.c: Wire up SPICE graphics events +(cherry picked from commit 89ae6a5a30bd91cfb2365544f9dd2e6c2a36ecca) + +Signed-off-by: Cole Robinson +--- + src/qemu/qemu_monitor_json.c | 56 +++++++++++++++++++++++++++++++++++++++--- + 1 files changed, 52 insertions(+), 4 deletions(-) + +diff --git a/src/qemu/qemu_monitor_json.c b/src/qemu/qemu_monitor_json.c +index e38c2ed..d4a3b7b 100644 +--- a/src/qemu/qemu_monitor_json.c ++++ b/src/qemu/qemu_monitor_json.c +@@ -57,6 +57,9 @@ static void qemuMonitorJSONHandleVNCConnect(qemuMonitorPtr mon, virJSONValuePtr + static void qemuMonitorJSONHandleVNCInitialize(qemuMonitorPtr mon, virJSONValuePtr data); + static void qemuMonitorJSONHandleVNCDisconnect(qemuMonitorPtr mon, virJSONValuePtr data); + static void qemuMonitorJSONHandleBlockJob(qemuMonitorPtr mon, virJSONValuePtr data); ++static void qemuMonitorJSONHandleSPICEConnect(qemuMonitorPtr mon, virJSONValuePtr data); ++static void qemuMonitorJSONHandleSPICEInitialize(qemuMonitorPtr mon, virJSONValuePtr data); ++static void qemuMonitorJSONHandleSPICEDisconnect(qemuMonitorPtr mon, virJSONValuePtr data); + + struct { + const char *type; +@@ -73,6 +76,9 @@ struct { + { "VNC_INITIALIZED", qemuMonitorJSONHandleVNCInitialize, }, + { "VNC_DISCONNECTED", qemuMonitorJSONHandleVNCDisconnect, }, + { "BLOCK_JOB_COMPLETED", qemuMonitorJSONHandleBlockJob, }, ++ { "SPICE_CONNECTED", qemuMonitorJSONHandleSPICEConnect, }, ++ { "SPICE_INITIALIZED", qemuMonitorJSONHandleSPICEInitialize, }, ++ { "SPICE_DISCONNECTED", qemuMonitorJSONHandleSPICEDisconnect, }, + }; + + +@@ -617,7 +623,7 @@ VIR_ENUM_DECL(qemuMonitorGraphicsAddressFamily) + VIR_ENUM_IMPL(qemuMonitorGraphicsAddressFamily, VIR_DOMAIN_EVENT_GRAPHICS_ADDRESS_IPV6 + 1, + "ipv4", "ipv6"); + +-static void qemuMonitorJSONHandleVNC(qemuMonitorPtr mon, virJSONValuePtr data, int phase) ++static void qemuMonitorJSONHandleGraphics(qemuMonitorPtr mon, virJSONValuePtr data, int phase) + { + const char *localNode, *localService, *localFamily; + const char *remoteNode, *remoteService, *remoteFamily; +@@ -636,14 +642,38 @@ static void qemuMonitorJSONHandleVNC(qemuMonitorPtr mon, virJSONValuePtr data, i + } + + authScheme = virJSONValueObjectGetString(server, "auth"); ++ if (!authScheme) { ++ VIR_WARN("missing auth scheme in graphics event"); ++ return; ++ } + + localFamily = virJSONValueObjectGetString(server, "family"); ++ if (!localFamily) { ++ VIR_WARN("missing local address family in graphics event"); ++ return; ++ } + localNode = virJSONValueObjectGetString(server, "host"); ++ if (!localNode) { ++ VIR_WARN("missing local hostname in graphics event"); ++ return; ++ } + localService = virJSONValueObjectGetString(server, "service"); ++ if (!localService) ++ localService = ""; /* Spice has multiple ports, so this isn't provided */ + + remoteFamily = virJSONValueObjectGetString(client, "family"); ++ if (!remoteFamily) { ++ VIR_WARN("missing remote address family in graphics event"); ++ return; ++ } + remoteNode = virJSONValueObjectGetString(client, "host"); ++ if (!remoteNode) { ++ VIR_WARN("missing remote hostname in graphics event"); ++ return; ++ } + remoteService = virJSONValueObjectGetString(client, "service"); ++ if (!remoteService) ++ remoteService = ""; /* Spice has multiple ports, so this isn't provided */ + + saslUsername = virJSONValueObjectGetString(client, "sasl_username"); + x509dname = virJSONValueObjectGetString(client, "x509_dname"); +@@ -665,19 +695,37 @@ static void qemuMonitorJSONHandleVNC(qemuMonitorPtr mon, virJSONValuePtr data, i + + static void qemuMonitorJSONHandleVNCConnect(qemuMonitorPtr mon, virJSONValuePtr data) + { +- qemuMonitorJSONHandleVNC(mon, data, VIR_DOMAIN_EVENT_GRAPHICS_CONNECT); ++ qemuMonitorJSONHandleGraphics(mon, data, VIR_DOMAIN_EVENT_GRAPHICS_CONNECT); + } + + + static void qemuMonitorJSONHandleVNCInitialize(qemuMonitorPtr mon, virJSONValuePtr data) + { +- qemuMonitorJSONHandleVNC(mon, data, VIR_DOMAIN_EVENT_GRAPHICS_INITIALIZE); ++ qemuMonitorJSONHandleGraphics(mon, data, VIR_DOMAIN_EVENT_GRAPHICS_INITIALIZE); + } + + + static void qemuMonitorJSONHandleVNCDisconnect(qemuMonitorPtr mon, virJSONValuePtr data) + { +- qemuMonitorJSONHandleVNC(mon, data, VIR_DOMAIN_EVENT_GRAPHICS_DISCONNECT); ++ qemuMonitorJSONHandleGraphics(mon, data, VIR_DOMAIN_EVENT_GRAPHICS_DISCONNECT); ++} ++ ++ ++static void qemuMonitorJSONHandleSPICEConnect(qemuMonitorPtr mon, virJSONValuePtr data) ++{ ++ qemuMonitorJSONHandleGraphics(mon, data, VIR_DOMAIN_EVENT_GRAPHICS_CONNECT); ++} ++ ++ ++static void qemuMonitorJSONHandleSPICEInitialize(qemuMonitorPtr mon, virJSONValuePtr data) ++{ ++ qemuMonitorJSONHandleGraphics(mon, data, VIR_DOMAIN_EVENT_GRAPHICS_INITIALIZE); ++} ++ ++ ++static void qemuMonitorJSONHandleSPICEDisconnect(qemuMonitorPtr mon, virJSONValuePtr data) ++{ ++ qemuMonitorJSONHandleGraphics(mon, data, VIR_DOMAIN_EVENT_GRAPHICS_DISCONNECT); + } + + static void qemuMonitorJSONHandleBlockJob(qemuMonitorPtr mon, virJSONValuePtr data) +-- +1.7.7.6 + diff --git a/libvirt-qemu-replace-deprecated-fedora-13-machine.patch b/libvirt-qemu-replace-deprecated-fedora-13-machine.patch new file mode 100644 index 0000000..4562df7 --- /dev/null +++ b/libvirt-qemu-replace-deprecated-fedora-13-machine.patch @@ -0,0 +1,156 @@ +From eaf056bf995558ecf6620ce031287f3aa81b66de Mon Sep 17 00:00:00 2001 +From: Laine Stump +Date: Tue, 6 Dec 2011 12:47:28 -0500 +Subject: [PATCH 1/2] qemu: replace deprecated fedora-13 machine type with + pc-0.14 + +This addresses https://bugzilla.redhat.com/show_bug.cgi?id=754772 . +It should only be applied to Fedora builds of libvirt, F15 and +later, so there is no upstream equivalent patch. + +Background: + +During the lifetime of Fedora 13, some features were backported into +the F13 build of qemu-kvm from upstream. These features were part of +the functionality of machine type "pc-0.13" in upstream qemu-kvm, so a +special "fedora-13" machine type was created for the F13 qemu-kvm. +Since "fedora-13" became the new "canonical machine type", all new +domains created with F13 libvirt tools by default contained that +machine type in their configuration file. + +In Fedora 14, a patch was made to qemu to treat the fedora-13 machine +type as equivalent to "pc-0.13". When Fedora 15 was released, this was +inadvertently changed to make it equivalent to "pc-0.14". + +With the release of Fedora 16, qemu-kvm initially removed support for +this machine type, which caused failure of many guest configurations +to start. qemu-kvm subsequently re-added the patch to support +fedora-13 (as equivalent to pc-0.14), but with the promise that they +could remove it with the release of Fedora 17. (see +https://bugzilla.redhat.com/show_bug.cgi?id=748218 ). + +Solution: + +In order to create a repeat of the recent problems, prior to F17 +existing guest configurations need to be updated to change fedora-13 +to pc-0.14 (which has been determined to be equivalent for all +practical purposes in both F15 and F16). That's what this patch does: + +1) Each time libvirtd is started, it calls virDomainLoadAllConfigs() +which calls virDomainLoadConfig(); this function has been modified to +check for os.machine == "fedora-13", and change it to "pc-0.14" then +write the updated config back to disk. + +2) Also, any other time a domain definition is parsed, the parsed +version in memory is changed to turn "fedora-13" into "pc-0.14". This +handles domains that had been saved to disk prior to the upgrade, and +are subsequently restarted. + +3) Finally, whenever a domain definition is formatted into a string, +any occurrence of fedora-13 is replaced with pc-0.14 *directly in the +virDomainDef* (to avoid multiple warning messages for the same object +when it's formatted multiple times). This should deal with those cases +where a domain was running at the time of upgrade, and is later +saved/snapshotted. + +I had considered doing this with some sed commands in the specfile, +but that wouldn't do anything to help the xml saved in image files. + +(Also, one of the xml tests was using the machine type "fedora-13", +and since that machine type is treated specially by the rest of this +patch, it was failing. That has been changed in a separate patch, +which must be applied with this patch, and which *is* also upstream). +--- + src/conf/domain_conf.c | 62 +++++++++++++++++++++++++++++++++++++++++++++-- + 1 files changed, 59 insertions(+), 3 deletions(-) + +diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c +index 318f523..7906bb8 100644 +--- a/src/conf/domain_conf.c ++++ b/src/conf/domain_conf.c +@@ -7500,7 +7500,25 @@ virDomainDefPtr virDomainDefParseString(virCapsPtr caps, + unsigned int expectedVirtTypes, + unsigned int flags) + { +- return virDomainDefParse(xmlStr, NULL, caps, expectedVirtTypes, flags); ++ virDomainDefPtr def ++ = virDomainDefParse(xmlStr, NULL, caps, expectedVirtTypes, flags); ++ ++ /* Fedora-specific HACK - treat fedora-13 and pc-0.14 as equivalent. ++ * This handles the case of domains that had been saved to an image file ++ * prior to upgrade (save or snapshot), then restarted/reverted. ++ */ ++ if (def && STREQ_NULLABLE(def->os.machine, "fedora-13")) { ++ VIR_FREE(def->os.machine); ++ if (!(def->os.machine = strdup("pc-0.14"))) { ++ virReportOOMError(); ++ virDomainDefFree(def); ++ def = NULL; ++ } else { ++ VIR_WARN("Replacing deprecated 'fedora-13' machine type " ++ "with equivalent 'pc-0.14' in domain %s xml", def->name); ++ } ++ } ++ return def; + } + + virDomainDefPtr virDomainDefParseFile(virCapsPtr caps, +@@ -10648,8 +10666,30 @@ virDomainDefFormatInternal(virDomainDefPtr def, + virBufferAddLit(buf, " os.arch) + virBufferAsprintf(buf, " arch='%s'", def->os.arch); +- if (def->os.machine) +- virBufferAsprintf(buf, " machine='%s'", def->os.machine); ++ if (def->os.machine) { ++ /* Fedora-specific HACK - replace "fedora-13" with "pc-0.14" ++ * (in the original DomainDef as well as in the xml output). ++ * This will catch XML being written to save/migration images ++ * of domains that were running when libvirtd was restarted at ++ * the time of upgrade. ++ */ ++ if (STREQ_NULLABLE(def->os.machine, "fedora-13")) { ++ virBufferAddLit(buf, " machine='pc-0.14'"); ++ VIR_WARN("substituting machine type 'fedora-13' with 'pc-0.14' " ++ "in domain %s", def->name); ++ /* It's not exactly nice to modify the source object, ++ * but sometimes virDomainFormat is called > 100 times for the ++ * same object, which would result in far too many warning logs. ++ */ ++ VIR_FREE(def->os.machine); ++ if (!(def->os.machine = strdup("pc-0.14"))) { ++ virReportOOMError(); ++ goto cleanup; ++ } ++ } else { ++ virBufferAsprintf(buf, " machine='%s'", def->os.machine); ++ } ++ } + /* + * HACK: For xen driver we previously used bogus 'linux' as the + * os type for paravirt, whereas capabilities declare it to +@@ -11100,6 +11140,22 @@ static virDomainObjPtr virDomainLoadConfig(virCapsPtr caps, + VIR_DOMAIN_XML_INACTIVE))) + goto error; + ++ /* Fedora-specific HACK - replace "fedora-13" with "pc-0.14". ++ * This updates all config files at the first restart of libvirt ++ * after upgrade. ++ */ ++ if (STREQ_NULLABLE(def->os.machine, "fedora-13")) { ++ VIR_FREE(def->os.machine); ++ if (!(def->os.machine = strdup("pc-0.14"))) { ++ virReportOOMError(); ++ goto error; ++ } ++ VIR_WARN("Replacing deprecated 'fedora-13' machine type " ++ "with equivalent 'pc-0.14' in domain %s configuration file", name); ++ if (virDomainSaveConfig(configDir, def) < 0) ++ goto error; ++ } ++ + if ((autostartLink = virDomainConfigFile(autostartDir, name)) == NULL) + goto error; + +-- +1.7.7.4 + diff --git a/libvirt.spec b/libvirt.spec index f2b5742..dc62050 100644 --- a/libvirt.spec +++ b/libvirt.spec @@ -242,40 +242,27 @@ Summary: Library providing a simple virtualization API Name: libvirt -Version: 0.9.6 -Release: 6%{?dist}%{?extra_release} +Version: 0.9.6.1 +Release: 1%{?dist}%{?extra_release} License: LGPLv2+ Group: Development/Libraries -Source: http://libvirt.org/sources/libvirt-%{version}.tar.gz -Patch1: %{name}-%{version}-spec-F15-still-uses-cgconfig.patch -Patch2: %{name}-%{version}-qemu-make-PCI-multifunction-support-more-manual.patch -Patch3:%{name}-%{version}-logging-Do-not-log-timestamp-through-syslog.patch -Patch4:%{name}-%{version}-logging-Add-date-to-log-timestamp.patch -Patch5:%{name}-%{version}-Add-internal-APIs-for-dealing-with-time.patch -Patch6:%{name}-%{version}-Make-logging-async-signal-safe-wrt-time-stamp-genera.patch -Patch7:%{name}-%{version}-Remove-time-APIs-from-src-util-util.h.patch -Patch8:%{name}-%{version}-spec-mark-directories-in-var-run-as-ghosts.patch -Patch9:%{name}-%{version}-Fix-incorrect-symbols-for-virtime.h-module-breaking-.patch -Patch10:%{name}-%{version}-spec-add-dmidecode-as-prereq.patch -Patch11:%{name}-%{version}-spec-don-t-use-chkconfig-list.patch -Patch12:%{name}-%{version}-spec-fix-logic-bug-in-deciding-to-turn-on-cgconfig.patch -Patch13:%{name}-%{version}-network-don-t-add-iptables-rules-for-externally-mana.patch -Patch14:%{name}-%{version}-test-replace-deprecated-fedora-13-machine.patch -Patch15:%{name}-%{version}-qemu-replace-deprecated-fedora-13-machine.patch -Patch16:%{name}-%{version}-spec-make-it-easier-to-autoreconf-when-building-rpm.patch -Patch17:%{name}-%{version}-Avoid-crash-in-shunloadtest.patch -# Fix crash when migrating many guests with vdsm (bz 785789) -Patch18: %{name}-large-migrate-crash.patch -# Fix libvirtd hang in vmware guest (bz 796451) -Patch19: %{name}-dmidecode-hang.patch -# Don't start HAL in init script (bz 789234) -Patch20: %{name}-no-init-hal-start.patch -# Fix storage lookup errors with empty lvm pool (bz 782261) -Patch21: %{name}-empty-lvm-hang.patch -# Fix test failures with new gnutls -Patch22: %{name}-gnutls-test-failures.patch -# Fix typo in chkconfig commandline for specfile -Patch23: %{name}-%{version}-specfile-fix-typo-in-chkconfig-commandline.patch + +%if %(echo %{version} | grep -o \\. | wc -l) == 3 +%define mainturl stable_updates/ +%endif +Source: http://libvirt.org/sources/%{?mainturl}libvirt-%{version}.tar.gz +# Replace fedora-13->pc-0.14 to prep for qemu removal (bz 754772) +# keep: keeping this for the lifetime of F17, gone for newer releases +Patch1: %{name}-qemu-replace-deprecated-fedora-13-machine.patch +# Emit spice graphics events (bz 784813) +# keep: F16 feature backport that won't hit 0.9.6 maint +Patch2: %{name}-emit-spice-events.patch +# Add usbredir spice channel (bz 821469) +# keep: fedora feature backport that won't hit 0.9.11 maint +Patch3: %{name}-add-usbredir-spice-channel.patch +# Add default spice channel (bz 821474) +# keep: fedora feature backport that won't hit 0.9.11 maint +Patch4: %{name}-add-default-spice-channel.patch BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root URL: http://libvirt.org/ @@ -600,25 +587,6 @@ of recent versions of Linux (and other OSes). %patch2 -p1 %patch3 -p1 %patch4 -p1 -%patch5 -p1 -%patch6 -p1 -%patch7 -p1 -%patch8 -p1 -%patch9 -p1 -%patch10 -p1 -%patch11 -p1 -%patch12 -p1 -%patch13 -p1 -%patch14 -p1 -%patch15 -p1 -%patch16 -p1 -%patch17 -p1 -%patch18 -p1 -%patch19 -p1 -%patch20 -p1 -%patch21 -p1 -%patch22 -p1 -%patch23 -p1 %build %if ! %{with_xen} @@ -1202,6 +1170,10 @@ fi %doc %{_datadir}/gtk-doc/html/libvirt/*.png %doc %{_datadir}/gtk-doc/html/libvirt/*.css +%dir %{_datadir}/libvirt/api/ +%{_datadir}/libvirt/api/libvirt-api.xml +%{_datadir}/libvirt/api/libvirt-qemu-api.xml + %doc docs/*.html docs/html docs/*.gif %doc docs/libvirt-api.xml %doc examples/hellolibvirt @@ -1227,6 +1199,19 @@ fi %endif %changelog +* Fri Jun 15 2012 Cole Robinson - 0.9.6.1-1 +- Rebased to version 0.9.6.1 +- Emit spice graphics events (bz 784813) +- Add usbredir spice channel (bz 821469) +- Add default spice channel (bz 821474) +- Various stream fixes and improvements (bz 743900) +- Fix state syncing when xen domain shuts down (bz 746007) +- Don't show for xen dom0 (bz 752271) +- Fix selinux denial on /usr/libexec/pt_chown from LXC (bz 785411) +- Don't flood LXC log file (bz 785431) +- Fix several double close bugs (bz 827127) +- Fix PCI assignment for USB2.0 controllers (bz 822160) + * Fri Mar 30 2012 Osier Yang - 0.9.6-6 - fix typo in chkconfig commandline for specfile - Bug 786890 diff --git a/sources b/sources index 55185f3..01bbca0 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -b74df374b524d00a22a6c89cfc23099f libvirt-0.9.6.tar.gz +546e1ff724a4e9f37cdae4917d396e21 libvirt-0.9.6.1.tar.gz