Rebased to version 0.9.6.1
Various stream fixes and improvements (bz 743900) Fix state syncing when xen domain shuts down (bz 746007) Don't show <console> 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)remotes/origin/f16
parent
159aa2a963
commit
21b5b71da6
|
@ -0,0 +1,184 @@
|
||||||
|
From a9311c363defcba7479fdabfb4862bcf851a6b7c Mon Sep 17 00:00:00 2001
|
||||||
|
From: Alon Levy <alevy@redhat.com>
|
||||||
|
Date: Tue, 8 May 2012 20:42:44 +0300
|
||||||
|
Subject: [PATCH] domain_conf: add "default" to list of valid spice channels
|
||||||
|
|
||||||
|
qemu's behavior in this case is to change the spice server behavior to
|
||||||
|
require secure connection to any channel not otherwise specified as
|
||||||
|
being in plaintext mode. libvirt doesn't currently allow requesting this
|
||||||
|
(via plaintext-channel=<channel name>).
|
||||||
|
|
||||||
|
RHBZ: 819499
|
||||||
|
|
||||||
|
Signed-off-by: Alon Levy <alevy@redhat.com>
|
||||||
|
(cherry picked from commit ba97e4edc6aa439a4f1e70855cf4503181efdb7f)
|
||||||
|
|
||||||
|
Conflicts:
|
||||||
|
|
||||||
|
src/conf/domain_conf.c
|
||||||
|
Signed-off-by: Cole Robinson <crobinso@redhat.com>
|
||||||
|
---
|
||||||
|
docs/formatdomain.html.in | 7 +++++++
|
||||||
|
docs/schemas/domaincommon.rng | 9 +++++++++
|
||||||
|
src/conf/domain_conf.c | 20 ++++++++++++++++++++
|
||||||
|
src/conf/domain_conf.h | 1 +
|
||||||
|
src/qemu/qemu_command.c | 13 +++++++++++++
|
||||||
|
.../qemuxml2argv-graphics-spice.args | 2 +-
|
||||||
|
.../qemuxml2argv-graphics-spice.xml | 2 +-
|
||||||
|
7 files changed, 52 insertions(+), 2 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/docs/formatdomain.html.in b/docs/formatdomain.html.in
|
||||||
|
index d082697..db5fa9b 100644
|
||||||
|
--- a/docs/formatdomain.html.in
|
||||||
|
+++ b/docs/formatdomain.html.in
|
||||||
|
@@ -2308,6 +2308,13 @@ qemu-kvm -net nic,model=? /dev/null
|
||||||
|
<span class="since">Since 0.9.3</span>
|
||||||
|
NB, this may not be supported by all hypervisors.
|
||||||
|
<span class="since">"spice" since 0.8.6</span>.
|
||||||
|
+ The <code>defaultMode</code> attribute sets the default channel
|
||||||
|
+ security policy, valid values are <code>secure</code>,
|
||||||
|
+ <code>insecure</code> and the default <code>any</code>
|
||||||
|
+ (which is secure if possible, but falls back to insecure
|
||||||
|
+ rather than erroring out if no secure path is
|
||||||
|
+ available). <span class="since">"defaultMode" since
|
||||||
|
+ 0.9.12</span>.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
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 @@
|
||||||
|
</choice>
|
||||||
|
</attribute>
|
||||||
|
</optional>
|
||||||
|
+ <optional>
|
||||||
|
+ <attribute name="defaultMode">
|
||||||
|
+ <choice>
|
||||||
|
+ <value>any</value>
|
||||||
|
+ <value>secure</value>
|
||||||
|
+ <value>insecure</value>
|
||||||
|
+ </choice>
|
||||||
|
+ </attribute>
|
||||||
|
+ </optional>
|
||||||
|
<interleave>
|
||||||
|
<ref name="listenElements"/>
|
||||||
|
<zeroOrMore>
|
||||||
|
diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c
|
||||||
|
index 9cc1644..963768e 100644
|
||||||
|
--- a/src/conf/domain_conf.c
|
||||||
|
+++ b/src/conf/domain_conf.c
|
||||||
|
@@ -4689,6 +4689,8 @@ virDomainGraphicsDefParseXML(xmlNodePtr node,
|
||||||
|
char *port = virXMLPropString(node, "port");
|
||||||
|
char *tlsPort;
|
||||||
|
char *autoport;
|
||||||
|
+ char *defaultMode;
|
||||||
|
+ int defaultModeVal;
|
||||||
|
|
||||||
|
if (port) {
|
||||||
|
if (virStrToLong_i(port, NULL, 10, &def->data.spice.port) < 0) {
|
||||||
|
@@ -4726,6 +4728,20 @@ virDomainGraphicsDefParseXML(xmlNodePtr node,
|
||||||
|
VIR_FREE(autoport);
|
||||||
|
}
|
||||||
|
|
||||||
|
+ def->data.spice.defaultMode = VIR_DOMAIN_GRAPHICS_SPICE_CHANNEL_MODE_ANY;
|
||||||
|
+
|
||||||
|
+ if ((defaultMode = virXMLPropString(node, "defaultMode")) != NULL) {
|
||||||
|
+ if ((defaultModeVal = virDomainGraphicsSpiceChannelModeTypeFromString(defaultMode)) < 0) {
|
||||||
|
+ virDomainReportError(VIR_ERR_INTERNAL_ERROR,
|
||||||
|
+ _("unknown default spice channel mode %s"),
|
||||||
|
+ defaultMode);
|
||||||
|
+ VIR_FREE(defaultMode);
|
||||||
|
+ goto error;
|
||||||
|
+ }
|
||||||
|
+ def->data.spice.defaultMode = defaultModeVal;
|
||||||
|
+ VIR_FREE(defaultMode);
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
def->data.spice.keymap = virXMLPropString(node, "keymap");
|
||||||
|
|
||||||
|
if (virDomainGraphicsAuthDefParseXML(node, &def->data.spice.auth,
|
||||||
|
@@ -10311,6 +10327,10 @@ virDomainGraphicsDefFormat(virBufferPtr buf,
|
||||||
|
virBufferEscapeString(buf, " keymap='%s'",
|
||||||
|
def->data.spice.keymap);
|
||||||
|
|
||||||
|
+ if (def->data.spice.defaultMode != VIR_DOMAIN_GRAPHICS_SPICE_CHANNEL_MODE_ANY)
|
||||||
|
+ virBufferAsprintf(buf, " defaultMode='%s'",
|
||||||
|
+ virDomainGraphicsSpiceChannelModeTypeToString(def->data.spice.defaultMode));
|
||||||
|
+
|
||||||
|
virDomainGraphicsAuthDefFormatAttr(buf, &def->data.spice.auth, flags);
|
||||||
|
break;
|
||||||
|
|
||||||
|
diff --git a/src/conf/domain_conf.h b/src/conf/domain_conf.h
|
||||||
|
index d40fda6..f6df0ea 100644
|
||||||
|
--- a/src/conf/domain_conf.h
|
||||||
|
+++ b/src/conf/domain_conf.h
|
||||||
|
@@ -921,6 +921,7 @@ struct _virDomainGraphicsDef {
|
||||||
|
virDomainGraphicsAuthDef auth;
|
||||||
|
unsigned int autoport :1;
|
||||||
|
int channels[VIR_DOMAIN_GRAPHICS_SPICE_CHANNEL_LAST];
|
||||||
|
+ int defaultMode; /* enum virDomainGraphicsSpiceChannelMode */
|
||||||
|
int image;
|
||||||
|
int jpeg;
|
||||||
|
int zlib;
|
||||||
|
diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c
|
||||||
|
index 366913b..ee192d3 100644
|
||||||
|
--- a/src/qemu/qemu_command.c
|
||||||
|
+++ b/src/qemu/qemu_command.c
|
||||||
|
@@ -4720,6 +4720,7 @@ qemuBuildCommandLine(virConnectPtr conn,
|
||||||
|
const char *listenAddr = NULL;
|
||||||
|
char *netAddr = NULL;
|
||||||
|
int ret;
|
||||||
|
+ int defaultMode = def->graphics[0]->data.spice.defaultMode;
|
||||||
|
|
||||||
|
if (!qemuCapsGet(qemuCaps, QEMU_CAPS_SPICE)) {
|
||||||
|
qemuReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
|
||||||
|
@@ -4781,6 +4782,18 @@ qemuBuildCommandLine(virConnectPtr conn,
|
||||||
|
virBufferAsprintf(&opt, ",x509-dir=%s",
|
||||||
|
driver->spiceTLSx509certdir);
|
||||||
|
|
||||||
|
+ switch (defaultMode) {
|
||||||
|
+ case VIR_DOMAIN_GRAPHICS_SPICE_CHANNEL_MODE_SECURE:
|
||||||
|
+ virBufferAsprintf(&opt, ",tls-channel=default");
|
||||||
|
+ break;
|
||||||
|
+ case VIR_DOMAIN_GRAPHICS_SPICE_CHANNEL_MODE_INSECURE:
|
||||||
|
+ virBufferAsprintf(&opt, ",plaintext-channel=default");
|
||||||
|
+ break;
|
||||||
|
+ case VIR_DOMAIN_GRAPHICS_SPICE_CHANNEL_MODE_ANY:
|
||||||
|
+ /* nothing */
|
||||||
|
+ break;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
for (i = 0 ; i < VIR_DOMAIN_GRAPHICS_SPICE_CHANNEL_LAST ; i++) {
|
||||||
|
int mode = def->graphics[0]->data.spice.channels[i];
|
||||||
|
switch (mode) {
|
||||||
|
diff --git a/tests/qemuxml2argvdata/qemuxml2argv-graphics-spice.args b/tests/qemuxml2argvdata/qemuxml2argv-graphics-spice.args
|
||||||
|
index c9fdb99..698e39c 100644
|
||||||
|
--- a/tests/qemuxml2argvdata/qemuxml2argv-graphics-spice.args
|
||||||
|
+++ b/tests/qemuxml2argvdata/qemuxml2argv-graphics-spice.args
|
||||||
|
@@ -2,7 +2,7 @@ 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 -nodefaults -monitor \
|
||||||
|
unix:/tmp/test-monitor,server,nowait -no-acpi -boot c -hda \
|
||||||
|
/dev/HostVG/QEMUGuest1 -usb -spice port=5903,tls-port=5904,addr=127.0.0.1,\
|
||||||
|
-x509-dir=/etc/pki/libvirt-spice,tls-channel=main,plaintext-channel=inputs,\
|
||||||
|
+x509-dir=/etc/pki/libvirt-spice,tls-channel=default,tls-channel=main,plaintext-channel=inputs,\
|
||||||
|
image-compression=auto_glz,jpeg-wan-compression=auto,zlib-glz-wan-compression=auto,\
|
||||||
|
playback-compression=on,streaming-video=filter,disable-copy-paste -vga \
|
||||||
|
qxl -global qxl.vram_size=18874368 -device qxl,id=video1,vram_size=33554432,bus=pci.0,addr=0x4 \
|
||||||
|
diff --git a/tests/qemuxml2argvdata/qemuxml2argv-graphics-spice.xml b/tests/qemuxml2argvdata/qemuxml2argv-graphics-spice.xml
|
||||||
|
index 5313b3a..29f20ab 100644
|
||||||
|
--- a/tests/qemuxml2argvdata/qemuxml2argv-graphics-spice.xml
|
||||||
|
+++ b/tests/qemuxml2argvdata/qemuxml2argv-graphics-spice.xml
|
||||||
|
@@ -21,7 +21,7 @@
|
||||||
|
</disk>
|
||||||
|
<controller type='ide' index='0'/>
|
||||||
|
<input type='mouse' bus='ps2'/>
|
||||||
|
- <graphics type='spice' port='5903' tlsPort='5904' autoport='no' listen='127.0.0.1'>
|
||||||
|
+ <graphics type='spice' port='5903' tlsPort='5904' autoport='no' listen='127.0.0.1' defaultMode='secure'>
|
||||||
|
<listen type='address' address='127.0.0.1'/>
|
||||||
|
<channel name='main' mode='secure'/>
|
||||||
|
<channel name='inputs' mode='insecure'/>
|
||||||
|
--
|
||||||
|
1.7.7.6
|
||||||
|
|
|
@ -0,0 +1,196 @@
|
||||||
|
From b8c86d80df4ba6c682f05974892f5d7ab8f317a9 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Alon Levy <alevy@redhat.com>
|
||||||
|
Date: Tue, 8 May 2012 16:00:28 +0300
|
||||||
|
Subject: [PATCH] domain_conf: add "usbredir" to list of valid spice channels
|
||||||
|
|
||||||
|
Add "usbredir" channel to list of recognized spice channels.
|
||||||
|
|
||||||
|
RHBZ: 819498
|
||||||
|
|
||||||
|
Signed-off-by: Alon Levy <alevy@redhat.com>
|
||||||
|
(cherry picked from commit 4e78ffb63489071c4100678ed88d3111284555e8)
|
||||||
|
Signed-off-by: Cole Robinson <crobinso@redhat.com>
|
||||||
|
---
|
||||||
|
docs/formatdomain.html.in | 8 ++-
|
||||||
|
docs/schemas/domaincommon.rng | 1 +
|
||||||
|
src/conf/domain_conf.c | 3 +-
|
||||||
|
src/conf/domain_conf.h | 1 +
|
||||||
|
.../qemuxml2argv-graphics-spice-usb-redir.args | 16 ++++++
|
||||||
|
.../qemuxml2argv-graphics-spice-usb-redir.xml | 53 ++++++++++++++++++++
|
||||||
|
tests/qemuxml2argvtest.c | 6 ++
|
||||||
|
7 files changed, 84 insertions(+), 4 deletions(-)
|
||||||
|
create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-graphics-spice-usb-redir.args
|
||||||
|
create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-graphics-spice-usb-redir.xml
|
||||||
|
|
||||||
|
diff --git a/docs/formatdomain.html.in b/docs/formatdomain.html.in
|
||||||
|
index 390476d..d082697 100644
|
||||||
|
--- a/docs/formatdomain.html.in
|
||||||
|
+++ b/docs/formatdomain.html.in
|
||||||
|
@@ -2317,9 +2317,11 @@ qemu-kvm -net nic,model=? /dev/null
|
||||||
|
main <graphics> element. Valid channel names
|
||||||
|
include <code>main</code>, <code>display</code>,
|
||||||
|
<code>inputs</code>, <code>cursor</code>,
|
||||||
|
- <code>playback</code>, <code>record</code>;
|
||||||
|
- and <span class="since">since
|
||||||
|
- 0.8.8</span>: <code>smartcard</code>.
|
||||||
|
+ <code>playback</code>, <code>record</code>
|
||||||
|
+ (all <span class="since"> since 0.8.6</span>);
|
||||||
|
+ <code>smartcard</code> (<span class="since">since
|
||||||
|
+ 0.8.8</span>); and <code>usbredir</code>
|
||||||
|
+ (<span class="since">since 0.9.12</span>).
|
||||||
|
</p>
|
||||||
|
<pre>
|
||||||
|
<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 @@
|
||||||
|
<value>playback</value>
|
||||||
|
<value>record</value>
|
||||||
|
<value>smartcard</value>
|
||||||
|
+ <value>usbredir</value>
|
||||||
|
</choice>
|
||||||
|
</attribute>
|
||||||
|
<attribute name="mode">
|
||||||
|
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 @@
|
||||||
|
+<domain type='qemu'>
|
||||||
|
+ <name>QEMUGuest1</name>
|
||||||
|
+ <uuid>c7a5fdbd-edaf-9455-926a-d65c16db1809</uuid>
|
||||||
|
+ <memory unit='KiB'>219136</memory>
|
||||||
|
+ <currentMemory unit='KiB'>219136</currentMemory>
|
||||||
|
+ <vcpu>1</vcpu>
|
||||||
|
+ <os>
|
||||||
|
+ <type arch='i686' machine='pc'>hvm</type>
|
||||||
|
+ <boot dev='hd'/>
|
||||||
|
+ </os>
|
||||||
|
+ <clock offset='utc'/>
|
||||||
|
+ <on_poweroff>destroy</on_poweroff>
|
||||||
|
+ <on_reboot>restart</on_reboot>
|
||||||
|
+ <on_crash>destroy</on_crash>
|
||||||
|
+ <devices>
|
||||||
|
+ <emulator>/usr/bin/qemu</emulator>
|
||||||
|
+ <graphics type='spice' port='5903' tlsPort='5904' autoport='no' listen='127.0.0.1'>
|
||||||
|
+ <listen type='address' address='127.0.0.1'/>
|
||||||
|
+ <channel name='main' mode='secure'/>
|
||||||
|
+ <channel name='inputs' mode='insecure'/>
|
||||||
|
+ <channel name='usbredir' mode='secure'/>
|
||||||
|
+ <image compression='auto_glz'/>
|
||||||
|
+ <jpeg compression='auto'/>
|
||||||
|
+ <zlib compression='auto'/>
|
||||||
|
+ <playback compression='on'/>
|
||||||
|
+ <streaming mode='filter'/>
|
||||||
|
+ <clipboard copypaste='no'/>
|
||||||
|
+ </graphics>
|
||||||
|
+ <controller type='usb' index='0' model='ich9-ehci1'>
|
||||||
|
+ <address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x7'/>
|
||||||
|
+ </controller>
|
||||||
|
+ <controller type='usb' index='0' model='ich9-uhci1'>
|
||||||
|
+ <master startport='0'/>
|
||||||
|
+ <address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x0' multifunction='on'/>
|
||||||
|
+ </controller>
|
||||||
|
+ <controller type='usb' index='0' model='ich9-uhci2'>
|
||||||
|
+ <master startport='2'/>
|
||||||
|
+ <address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x1'/>
|
||||||
|
+ </controller>
|
||||||
|
+ <controller type='usb' index='0' model='ich9-uhci3'>
|
||||||
|
+ <master startport='4'/>
|
||||||
|
+ <address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x2'/>
|
||||||
|
+ </controller>
|
||||||
|
+ <redirdev bus='usb' type='tcp'>
|
||||||
|
+ <source mode='connect' host='localhost' service='4000'/>
|
||||||
|
+ <protocol type='raw'/>
|
||||||
|
+ </redirdev>
|
||||||
|
+ <redirdev bus='usb' type='spicevmc'>
|
||||||
|
+ <address type='usb' bus='0' port='4'/>
|
||||||
|
+ </redirdev>
|
||||||
|
+ <memballoon model='virtio'/>
|
||||||
|
+ </devices>
|
||||||
|
+</domain>
|
||||||
|
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 @@
|
||||||
|
<domain type='qemu'>
|
||||||
|
<name>QEMUGuest1</name>
|
||||||
|
<uuid>c7a5fdbd-edaf-9455-926a-d65c16db1809</uuid>
|
||||||
|
- <memory unit='KiB'>219136</memory>
|
||||||
|
- <currentMemory unit='KiB'>219136</currentMemory>
|
||||||
|
+ <memory>219136</memory>
|
||||||
|
+ <currentMemory>219136</currentMemory>
|
||||||
|
<vcpu>1</vcpu>
|
||||||
|
<os>
|
||||||
|
<type arch='i686' machine='pc'>hvm</type>
|
|
@ -0,0 +1,136 @@
|
||||||
|
From 57f08fb47b0938a9e8969b857380926fa6966ca8 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Laine Stump <laine@laine.org>
|
||||||
|
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 <crobinso@redhat.com>
|
||||||
|
---
|
||||||
|
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
|
||||||
|
|
|
@ -0,0 +1,156 @@
|
||||||
|
From eaf056bf995558ecf6620ce031287f3aa81b66de Mon Sep 17 00:00:00 2001
|
||||||
|
From: Laine Stump <laine@laine.org>
|
||||||
|
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, " <type");
|
||||||
|
if (def->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
|
||||||
|
|
87
libvirt.spec
87
libvirt.spec
|
@ -242,40 +242,27 @@
|
||||||
|
|
||||||
Summary: Library providing a simple virtualization API
|
Summary: Library providing a simple virtualization API
|
||||||
Name: libvirt
|
Name: libvirt
|
||||||
Version: 0.9.6
|
Version: 0.9.6.1
|
||||||
Release: 6%{?dist}%{?extra_release}
|
Release: 1%{?dist}%{?extra_release}
|
||||||
License: LGPLv2+
|
License: LGPLv2+
|
||||||
Group: Development/Libraries
|
Group: Development/Libraries
|
||||||
Source: http://libvirt.org/sources/libvirt-%{version}.tar.gz
|
|
||||||
Patch1: %{name}-%{version}-spec-F15-still-uses-cgconfig.patch
|
%if %(echo %{version} | grep -o \\. | wc -l) == 3
|
||||||
Patch2: %{name}-%{version}-qemu-make-PCI-multifunction-support-more-manual.patch
|
%define mainturl stable_updates/
|
||||||
Patch3:%{name}-%{version}-logging-Do-not-log-timestamp-through-syslog.patch
|
%endif
|
||||||
Patch4:%{name}-%{version}-logging-Add-date-to-log-timestamp.patch
|
Source: http://libvirt.org/sources/%{?mainturl}libvirt-%{version}.tar.gz
|
||||||
Patch5:%{name}-%{version}-Add-internal-APIs-for-dealing-with-time.patch
|
# Replace fedora-13->pc-0.14 to prep for qemu removal (bz 754772)
|
||||||
Patch6:%{name}-%{version}-Make-logging-async-signal-safe-wrt-time-stamp-genera.patch
|
# keep: keeping this for the lifetime of F17, gone for newer releases
|
||||||
Patch7:%{name}-%{version}-Remove-time-APIs-from-src-util-util.h.patch
|
Patch1: %{name}-qemu-replace-deprecated-fedora-13-machine.patch
|
||||||
Patch8:%{name}-%{version}-spec-mark-directories-in-var-run-as-ghosts.patch
|
# Emit spice graphics events (bz 784813)
|
||||||
Patch9:%{name}-%{version}-Fix-incorrect-symbols-for-virtime.h-module-breaking-.patch
|
# keep: F16 feature backport that won't hit 0.9.6 maint
|
||||||
Patch10:%{name}-%{version}-spec-add-dmidecode-as-prereq.patch
|
Patch2: %{name}-emit-spice-events.patch
|
||||||
Patch11:%{name}-%{version}-spec-don-t-use-chkconfig-list.patch
|
# Add usbredir spice channel (bz 821469)
|
||||||
Patch12:%{name}-%{version}-spec-fix-logic-bug-in-deciding-to-turn-on-cgconfig.patch
|
# keep: fedora feature backport that won't hit 0.9.11 maint
|
||||||
Patch13:%{name}-%{version}-network-don-t-add-iptables-rules-for-externally-mana.patch
|
Patch3: %{name}-add-usbredir-spice-channel.patch
|
||||||
Patch14:%{name}-%{version}-test-replace-deprecated-fedora-13-machine.patch
|
# Add default spice channel (bz 821474)
|
||||||
Patch15:%{name}-%{version}-qemu-replace-deprecated-fedora-13-machine.patch
|
# keep: fedora feature backport that won't hit 0.9.11 maint
|
||||||
Patch16:%{name}-%{version}-spec-make-it-easier-to-autoreconf-when-building-rpm.patch
|
Patch4: %{name}-add-default-spice-channel.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
|
|
||||||
|
|
||||||
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root
|
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root
|
||||||
URL: http://libvirt.org/
|
URL: http://libvirt.org/
|
||||||
|
@ -600,25 +587,6 @@ of recent versions of Linux (and other OSes).
|
||||||
%patch2 -p1
|
%patch2 -p1
|
||||||
%patch3 -p1
|
%patch3 -p1
|
||||||
%patch4 -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
|
%build
|
||||||
%if ! %{with_xen}
|
%if ! %{with_xen}
|
||||||
|
@ -1202,6 +1170,10 @@ fi
|
||||||
%doc %{_datadir}/gtk-doc/html/libvirt/*.png
|
%doc %{_datadir}/gtk-doc/html/libvirt/*.png
|
||||||
%doc %{_datadir}/gtk-doc/html/libvirt/*.css
|
%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/*.html docs/html docs/*.gif
|
||||||
%doc docs/libvirt-api.xml
|
%doc docs/libvirt-api.xml
|
||||||
%doc examples/hellolibvirt
|
%doc examples/hellolibvirt
|
||||||
|
@ -1227,6 +1199,19 @@ fi
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Fri Jun 15 2012 Cole Robinson <crobinso@redhat.com> - 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 <console> 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 <jyang@redhat.com> - 0.9.6-6
|
* Fri Mar 30 2012 Osier Yang <jyang@redhat.com> - 0.9.6-6
|
||||||
- fix typo in chkconfig commandline for specfile - Bug 786890
|
- fix typo in chkconfig commandline for specfile - Bug 786890
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue