update to libvirt-0.9.8
cleanup of old patches, of spec too
This commit is contained in:
parent
2cac7dac46
commit
7069f75cb8
@ -1,581 +0,0 @@
|
|||||||
From 3962198d82ab90d21144479c1d822db5d1f640a4 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Laine Stump <laine@laine.org>
|
|
||||||
Date: Wed, 28 Sep 2011 14:19:59 -0400
|
|
||||||
Subject: [PATCH 2/2] qemu: make PCI multifunction support more manual
|
|
||||||
|
|
||||||
(This is a merge of cherry-picking upstream commits
|
|
||||||
c329db7180d77c8077b9f9cd167a71d7f347227a and
|
|
||||||
be7bc4d5ccb502c2da85d3b3db804fd53b70449e (a one liner). There were no
|
|
||||||
merge conflicts.)
|
|
||||||
|
|
||||||
When support for was added for PCI multifunction cards (in commit
|
|
||||||
9f8baf, first included in libvirt 0.9.3), it was done by always
|
|
||||||
turning on the multifunction bit for all PCI devices. Since that time
|
|
||||||
it has been realized that this is not an ideal solution, and that the
|
|
||||||
multifunction bit must be selectively turned on. For example, see
|
|
||||||
|
|
||||||
https://bugzilla.redhat.com/show_bug.cgi?id=742836
|
|
||||||
|
|
||||||
and the discussion before and after
|
|
||||||
|
|
||||||
https://www.redhat.com/archives/libvir-list/2011-September/msg01036.html
|
|
||||||
|
|
||||||
This patch modifies multifunction support so that the multifunction=on
|
|
||||||
option is only added to the qemu commandline for a device if its PCI
|
|
||||||
<address> definition has the attribute "multifunction='on'", e.g.:
|
|
||||||
|
|
||||||
<address type='pci' domain='0x0000' bus='0x00'
|
|
||||||
slot='0x04' function='0x0' multifunction='on'/>
|
|
||||||
|
|
||||||
In practice, the multifunction bit should only be turned on if
|
|
||||||
function='0' AND other functions will be used in the same slot - it
|
|
||||||
usually isn't needed for functions 1-7 (although there are apparently
|
|
||||||
some exceptions, e.g. the Intel X53 according to the QEMU source
|
|
||||||
code), and should never be set if only function 0 will be used in the
|
|
||||||
slot. The test cases have been changed accordingly to illustrate.
|
|
||||||
|
|
||||||
With this patch in place, if a user attempts to assign multiple
|
|
||||||
functions in a slot without setting the multifunction bit for function
|
|
||||||
0, libvirt will issue an error when the domain is defined, and the
|
|
||||||
define operation will fail. In the future, we may decide to detect
|
|
||||||
this situation and automatically add multifunction=on to avoid the
|
|
||||||
error; even then it will still be useful to have a manual method of
|
|
||||||
turning on multifunction since, as stated above, there are some
|
|
||||||
devices that excpect it to be turned on for all functions in a slot.
|
|
||||||
|
|
||||||
A side effect of this patch is that attempts to use the same PCI
|
|
||||||
address for two different devices will now log an error (previously
|
|
||||||
this would cause the domain define operation to fail, but there would
|
|
||||||
be no log message generated). Because the function doing this log was
|
|
||||||
almost completely rewritten, I didn't think it worthwhile to make a
|
|
||||||
separate patch for that fix (the entire patch would immediately be
|
|
||||||
obsoleted).
|
|
||||||
---
|
|
||||||
docs/formatdomain.html.in | 29 +++++--
|
|
||||||
docs/schemas/domaincommon.rng | 8 ++
|
|
||||||
src/conf/domain_conf.c | 22 +++++-
|
|
||||||
src/conf/domain_conf.h | 11 +++-
|
|
||||||
src/libvirt_private.syms | 2 +
|
|
||||||
src/qemu/qemu_command.c | 81 ++++++++++++++++----
|
|
||||||
.../qemuxml2argv-multifunction-pci-device.args | 18 ++--
|
|
||||||
.../qemuxml2argv-multifunction-pci-device.xml | 6 +-
|
|
||||||
.../qemuxml2argv-usb-ich9-companion.args | 15 ++--
|
|
||||||
.../qemuxml2argv-usb-ich9-companion.xml | 2 +-
|
|
||||||
.../qemuxml2argv-usb-ich9-ehci-addr.args | 7 ++-
|
|
||||||
.../qemuxml2argv-usb-piix3-controller.args | 7 ++-
|
|
||||||
tests/qemuxml2argvdata/qemuxml2argv-usb-redir.args | 10 +-
|
|
||||||
tests/qemuxml2argvdata/qemuxml2argv-usb-redir.xml | 2 +-
|
|
||||||
tests/qemuxml2argvdata/qemuxml2argv-usb1-usb2.args | 25 ++++---
|
|
||||||
tests/qemuxml2argvdata/qemuxml2argv-usb1-usb2.xml | 4 +-
|
|
||||||
16 files changed, 183 insertions(+), 66 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/docs/formatdomain.html.in b/docs/formatdomain.html.in
|
|
||||||
index 0a7abaf..390476d 100644
|
|
||||||
--- a/docs/formatdomain.html.in
|
|
||||||
+++ b/docs/formatdomain.html.in
|
|
||||||
@@ -1113,10 +1113,14 @@
|
|
||||||
The <code>type</code> attribute is mandatory, and is typically
|
|
||||||
"pci" or "drive". For a "pci" controller, additional
|
|
||||||
attributes for <code>bus</code>, <code>slot</code>,
|
|
||||||
- and <code>function</code> must be present, as well as an
|
|
||||||
- optional <code>domain</code>. For a "drive" controller,
|
|
||||||
- additional attributes <code>controller</code>, <code>bus</code>,
|
|
||||||
+ and <code>function</code> must be present, as well as
|
|
||||||
+ optional <code>domain</code> and <code>multifunction</code>.
|
|
||||||
+ Multifunction defaults to 'off'; any other value requires
|
|
||||||
+ QEMU 0.1.3 and <span class="since">libvirt 0.9.7</span>. For a
|
|
||||||
+ "drive" controller, additional attributes
|
|
||||||
+ <code>controller</code>, <code>bus</code>,
|
|
||||||
and <code>unit</code> are available, each defaulting to 0.
|
|
||||||
+
|
|
||||||
</dd>
|
|
||||||
</dl>
|
|
||||||
|
|
||||||
@@ -1293,7 +1297,7 @@
|
|
||||||
</controller>
|
|
||||||
<controller type='usb' index='0' model='ich9-uhci1'>
|
|
||||||
<master startport='0'/>
|
|
||||||
- <address type='pci' domain='0' bus='0' slot='4' function='0'/>
|
|
||||||
+ <address type='pci' domain='0' bus='0' slot='4' function='0' multifunction='on'/>
|
|
||||||
</controller>
|
|
||||||
...
|
|
||||||
</devices>
|
|
||||||
@@ -1413,10 +1417,16 @@
|
|
||||||
with <code>virsh nodedev-list</code>. The
|
|
||||||
<code>bus</code> attribute allows the hexadecimal values 0 to ff, the
|
|
||||||
<code>slot</code> attribute allows the hexadecimal values 0 to 1f, and
|
|
||||||
- the <code>function</code> attribute allows the hexadecimal values 0 to
|
|
||||||
- 7. There is also an optional <code>domain</code> attribute for the
|
|
||||||
- PCI domain, with hexadecimal values 0 to ffff, but it is currently
|
|
||||||
- not used by qemu.</dd>
|
|
||||||
+ the <code>function</code> attribute allows the hexadecimal values 0 to 7.
|
|
||||||
+ The <code>multifunction</code> attribute controls turning on the
|
|
||||||
+ multifunction bit for a particular slot/function in the PCI
|
|
||||||
+ control register<span class="since">since 0.9.7, requires QEMU
|
|
||||||
+ 0.13</span>. <code>multifunction</code> defaults to 'off', but
|
|
||||||
+ should be set to 'on' for function 0 of a slot that will have
|
|
||||||
+ multiple functions used.
|
|
||||||
+ There is also an optional <code>domain</code> attribute for
|
|
||||||
+ the PCI domain, with hexadecimal values 0 to ffff, but it is
|
|
||||||
+ currently not used by qemu.</dd>
|
|
||||||
</dl>
|
|
||||||
|
|
||||||
<h4><a name="elementsRedir">Redirected devices</a></h4>
|
|
||||||
@@ -1584,7 +1594,8 @@
|
|
||||||
the interface to a particular pci slot, with
|
|
||||||
attribute <code>type='pci'</code> and additional
|
|
||||||
attributes <code>domain</code>, <code>bus</code>, <code>slot</code>,
|
|
||||||
- and <code>function</code> as appropriate.
|
|
||||||
+ <code>function</code>, and <code>multifunction</code>
|
|
||||||
+ <span class="since">since 0.9.7, requires QEMU 0.13</span> as appropriate.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<h5><a name="elementsNICSVirtual">Virtual network</a></h5>
|
|
||||||
diff --git a/docs/schemas/domaincommon.rng b/docs/schemas/domaincommon.rng
|
|
||||||
index d0da41c..9f8d292 100644
|
|
||||||
--- a/docs/schemas/domaincommon.rng
|
|
||||||
+++ b/docs/schemas/domaincommon.rng
|
|
||||||
@@ -2106,6 +2106,14 @@
|
|
||||||
<attribute name="function">
|
|
||||||
<ref name="pciFunc"/>
|
|
||||||
</attribute>
|
|
||||||
+ <optional>
|
|
||||||
+ <attribute name="multifunction">
|
|
||||||
+ <choice>
|
|
||||||
+ <value>on</value>
|
|
||||||
+ <value>off</value>
|
|
||||||
+ </choice>
|
|
||||||
+ </attribute>
|
|
||||||
+ </optional>
|
|
||||||
</define>
|
|
||||||
<define name="driveaddress">
|
|
||||||
<optional>
|
|
||||||
diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c
|
|
||||||
index 7463d7c..318f523 100644
|
|
||||||
--- a/src/conf/domain_conf.c
|
|
||||||
+++ b/src/conf/domain_conf.c
|
|
||||||
@@ -138,6 +138,12 @@ VIR_ENUM_IMPL(virDomainDeviceAddress, VIR_DOMAIN_DEVICE_ADDRESS_TYPE_LAST,
|
|
||||||
"ccid",
|
|
||||||
"usb")
|
|
||||||
|
|
||||||
+VIR_ENUM_IMPL(virDomainDeviceAddressPciMulti,
|
|
||||||
+ VIR_DOMAIN_DEVICE_ADDRESS_PCI_MULTI_LAST,
|
|
||||||
+ "default",
|
|
||||||
+ "on",
|
|
||||||
+ "off")
|
|
||||||
+
|
|
||||||
VIR_ENUM_IMPL(virDomainDisk, VIR_DOMAIN_DISK_TYPE_LAST,
|
|
||||||
"block",
|
|
||||||
"file",
|
|
||||||
@@ -1645,6 +1651,10 @@ virDomainDeviceInfoFormat(virBufferPtr buf,
|
|
||||||
info->addr.pci.bus,
|
|
||||||
info->addr.pci.slot,
|
|
||||||
info->addr.pci.function);
|
|
||||||
+ if (info->addr.pci.multi) {
|
|
||||||
+ virBufferAsprintf(buf, " multifunction='%s'",
|
|
||||||
+ virDomainDeviceAddressPciMultiTypeToString(info->addr.pci.multi));
|
|
||||||
+ }
|
|
||||||
break;
|
|
||||||
|
|
||||||
case VIR_DOMAIN_DEVICE_ADDRESS_TYPE_DRIVE:
|
|
||||||
@@ -1689,7 +1699,7 @@ static int
|
|
||||||
virDomainDevicePCIAddressParseXML(xmlNodePtr node,
|
|
||||||
virDomainDevicePCIAddressPtr addr)
|
|
||||||
{
|
|
||||||
- char *domain, *slot, *bus, *function;
|
|
||||||
+ char *domain, *slot, *bus, *function, *multi;
|
|
||||||
int ret = -1;
|
|
||||||
|
|
||||||
memset(addr, 0, sizeof(*addr));
|
|
||||||
@@ -1698,6 +1708,7 @@ virDomainDevicePCIAddressParseXML(xmlNodePtr node,
|
|
||||||
bus = virXMLPropString(node, "bus");
|
|
||||||
slot = virXMLPropString(node, "slot");
|
|
||||||
function = virXMLPropString(node, "function");
|
|
||||||
+ multi = virXMLPropString(node, "multifunction");
|
|
||||||
|
|
||||||
if (domain &&
|
|
||||||
virStrToLong_ui(domain, NULL, 0, &addr->domain) < 0) {
|
|
||||||
@@ -1727,6 +1738,14 @@ virDomainDevicePCIAddressParseXML(xmlNodePtr node,
|
|
||||||
goto cleanup;
|
|
||||||
}
|
|
||||||
|
|
||||||
+ if (multi &&
|
|
||||||
+ ((addr->multi = virDomainDeviceAddressPciMultiTypeFromString(multi)) <= 0)) {
|
|
||||||
+ virDomainReportError(VIR_ERR_CONFIG_UNSUPPORTED,
|
|
||||||
+ _("Unknown value '%s' for <address> 'multifunction' attribute"),
|
|
||||||
+ multi);
|
|
||||||
+ goto cleanup;
|
|
||||||
+
|
|
||||||
+ }
|
|
||||||
if (!virDomainDevicePCIAddressIsValid(addr)) {
|
|
||||||
virDomainReportError(VIR_ERR_INTERNAL_ERROR, "%s",
|
|
||||||
_("Insufficient specification for PCI address"));
|
|
||||||
@@ -1740,6 +1759,7 @@ cleanup:
|
|
||||||
VIR_FREE(bus);
|
|
||||||
VIR_FREE(slot);
|
|
||||||
VIR_FREE(function);
|
|
||||||
+ VIR_FREE(multi);
|
|
||||||
return ret;
|
|
||||||
}
|
|
||||||
|
|
||||||
diff --git a/src/conf/domain_conf.h b/src/conf/domain_conf.h
|
|
||||||
index 371f270..f4a38fb 100644
|
|
||||||
--- a/src/conf/domain_conf.h
|
|
||||||
+++ b/src/conf/domain_conf.h
|
|
||||||
@@ -74,6 +74,14 @@ enum virDomainDeviceAddressType {
|
|
||||||
VIR_DOMAIN_DEVICE_ADDRESS_TYPE_LAST
|
|
||||||
};
|
|
||||||
|
|
||||||
+enum virDomainDeviceAddressPciMulti {
|
|
||||||
+ VIR_DOMAIN_DEVICE_ADDRESS_PCI_MULTI_DEFAULT = 0,
|
|
||||||
+ VIR_DOMAIN_DEVICE_ADDRESS_PCI_MULTI_ON,
|
|
||||||
+ VIR_DOMAIN_DEVICE_ADDRESS_PCI_MULTI_OFF,
|
|
||||||
+
|
|
||||||
+ VIR_DOMAIN_DEVICE_ADDRESS_PCI_MULTI_LAST
|
|
||||||
+};
|
|
||||||
+
|
|
||||||
typedef struct _virDomainDevicePCIAddress virDomainDevicePCIAddress;
|
|
||||||
typedef virDomainDevicePCIAddress *virDomainDevicePCIAddressPtr;
|
|
||||||
struct _virDomainDevicePCIAddress {
|
|
||||||
@@ -81,6 +89,7 @@ struct _virDomainDevicePCIAddress {
|
|
||||||
unsigned int bus;
|
|
||||||
unsigned int slot;
|
|
||||||
unsigned int function;
|
|
||||||
+ int multi; /* enum virDomainDeviceAddressPciMulti */
|
|
||||||
};
|
|
||||||
|
|
||||||
typedef struct _virDomainDeviceDriveAddress virDomainDeviceDriveAddress;
|
|
||||||
@@ -1820,7 +1829,7 @@ VIR_ENUM_DECL(virDomainLifecycle)
|
|
||||||
VIR_ENUM_DECL(virDomainLifecycleCrash)
|
|
||||||
VIR_ENUM_DECL(virDomainDevice)
|
|
||||||
VIR_ENUM_DECL(virDomainDeviceAddress)
|
|
||||||
-VIR_ENUM_DECL(virDomainDeviceAddressMode)
|
|
||||||
+VIR_ENUM_DECL(virDomainDeviceAddressPciMulti)
|
|
||||||
VIR_ENUM_DECL(virDomainDisk)
|
|
||||||
VIR_ENUM_DECL(virDomainDiskDevice)
|
|
||||||
VIR_ENUM_DECL(virDomainDiskBus)
|
|
||||||
diff --git a/src/libvirt_private.syms b/src/libvirt_private.syms
|
|
||||||
index 8235ea1..da3042e 100644
|
|
||||||
--- a/src/libvirt_private.syms
|
|
||||||
+++ b/src/libvirt_private.syms
|
|
||||||
@@ -269,6 +269,8 @@ virDomainDefParseNode;
|
|
||||||
virDomainDefParseString;
|
|
||||||
virDomainDeleteConfig;
|
|
||||||
virDomainDeviceAddressIsValid;
|
|
||||||
+virDomainDeviceAddressPciMultiTypeFromString;
|
|
||||||
+virDomainDeviceAddressPciMultiTypeToString;
|
|
||||||
virDomainDeviceAddressTypeToString;
|
|
||||||
virDomainDeviceDefFree;
|
|
||||||
virDomainDeviceDefParse;
|
|
||||||
diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c
|
|
||||||
index 0adc56a..ee184c2 100644
|
|
||||||
--- a/src/qemu/qemu_command.c
|
|
||||||
+++ b/src/qemu/qemu_command.c
|
|
||||||
@@ -772,22 +772,65 @@ static int qemuCollectPCIAddress(virDomainDefPtr def ATTRIBUTE_UNUSED,
|
|
||||||
virDomainDeviceInfoPtr dev,
|
|
||||||
void *opaque)
|
|
||||||
{
|
|
||||||
+ int ret = -1;
|
|
||||||
+ char *addr = NULL;
|
|
||||||
qemuDomainPCIAddressSetPtr addrs = opaque;
|
|
||||||
|
|
||||||
- if (dev->type == VIR_DOMAIN_DEVICE_ADDRESS_TYPE_PCI) {
|
|
||||||
- char *addr = qemuPCIAddressAsString(dev);
|
|
||||||
- if (!addr)
|
|
||||||
- return -1;
|
|
||||||
+ if (dev->type != VIR_DOMAIN_DEVICE_ADDRESS_TYPE_PCI)
|
|
||||||
+ return 0;
|
|
||||||
|
|
||||||
- VIR_DEBUG("Remembering PCI addr %s", addr);
|
|
||||||
+ addr = qemuPCIAddressAsString(dev);
|
|
||||||
+ if (!addr)
|
|
||||||
+ goto cleanup;
|
|
||||||
|
|
||||||
- if (virHashAddEntry(addrs->used, addr, addr) < 0) {
|
|
||||||
- VIR_FREE(addr);
|
|
||||||
- return -1;
|
|
||||||
+ if (virHashLookup(addrs->used, addr)) {
|
|
||||||
+ if (dev->addr.pci.function != 0) {
|
|
||||||
+ qemuReportError(VIR_ERR_XML_ERROR,
|
|
||||||
+ _("Attempted double use of PCI Address '%s' "
|
|
||||||
+ "(may need \"multifunction='on'\" for device on function 0"),
|
|
||||||
+ addr);
|
|
||||||
+ } else {
|
|
||||||
+ qemuReportError(VIR_ERR_XML_ERROR,
|
|
||||||
+ _("Attempted double use of PCI Address '%s'"), addr);
|
|
||||||
}
|
|
||||||
+ goto cleanup;
|
|
||||||
}
|
|
||||||
|
|
||||||
- return 0;
|
|
||||||
+ VIR_DEBUG("Remembering PCI addr %s", addr);
|
|
||||||
+ if (virHashAddEntry(addrs->used, addr, addr) < 0)
|
|
||||||
+ goto cleanup;
|
|
||||||
+ addr = NULL;
|
|
||||||
+
|
|
||||||
+ if ((dev->addr.pci.function == 0) &&
|
|
||||||
+ (dev->addr.pci.multi != VIR_DOMAIN_DEVICE_ADDRESS_PCI_MULTI_ON)) {
|
|
||||||
+ /* a function 0 w/o multifunction=on must reserve the entire slot */
|
|
||||||
+ int function;
|
|
||||||
+ virDomainDeviceInfo temp_dev = *dev;
|
|
||||||
+
|
|
||||||
+ for (function = 1; function < QEMU_PCI_ADDRESS_LAST_FUNCTION; function++) {
|
|
||||||
+ temp_dev.addr.pci.function = function;
|
|
||||||
+ addr = qemuPCIAddressAsString(&temp_dev);
|
|
||||||
+ if (!addr)
|
|
||||||
+ goto cleanup;
|
|
||||||
+
|
|
||||||
+ if (virHashLookup(addrs->used, addr)) {
|
|
||||||
+ qemuReportError(VIR_ERR_XML_ERROR,
|
|
||||||
+ _("Attempted double use of PCI Address '%s'"
|
|
||||||
+ "(need \"multifunction='off'\" for device on function 0)"),
|
|
||||||
+ addr);
|
|
||||||
+ goto cleanup;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ VIR_DEBUG("Remembering PCI addr %s (multifunction=off for function 0)", addr);
|
|
||||||
+ if (virHashAddEntry(addrs->used, addr, addr))
|
|
||||||
+ goto cleanup;
|
|
||||||
+ addr = NULL;
|
|
||||||
+ }
|
|
||||||
+ }
|
|
||||||
+ ret = 0;
|
|
||||||
+cleanup:
|
|
||||||
+ VIR_FREE(addr);
|
|
||||||
+ return ret;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
@@ -1374,7 +1417,13 @@ qemuBuildDeviceAddressStr(virBufferPtr buf,
|
|
||||||
if (info->addr.pci.function != 0) {
|
|
||||||
qemuReportError(VIR_ERR_INTERNAL_ERROR, "%s",
|
|
||||||
_("Only PCI device addresses with function=0 "
|
|
||||||
- "are supported"));
|
|
||||||
+ "are supported with this QEMU binary"));
|
|
||||||
+ return -1;
|
|
||||||
+ }
|
|
||||||
+ if (info->addr.pci.multi == VIR_DOMAIN_DEVICE_ADDRESS_PCI_MULTI_ON) {
|
|
||||||
+ qemuReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
|
|
||||||
+ _("'multifunction=on' is not supported with "
|
|
||||||
+ "this QEMU binary"));
|
|
||||||
return -1;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1389,11 +1438,13 @@ qemuBuildDeviceAddressStr(virBufferPtr buf,
|
|
||||||
virBufferAsprintf(buf, ",bus=pci.0");
|
|
||||||
else
|
|
||||||
virBufferAsprintf(buf, ",bus=pci");
|
|
||||||
- if (qemuCapsGet(qemuCaps, QEMU_CAPS_PCI_MULTIFUNCTION))
|
|
||||||
- virBufferAsprintf(buf, ",multifunction=on,addr=0x%x.0x%x",
|
|
||||||
- info->addr.pci.slot, info->addr.pci.function);
|
|
||||||
- else
|
|
||||||
- virBufferAsprintf(buf, ",addr=0x%x", info->addr.pci.slot);
|
|
||||||
+ if (info->addr.pci.multi == VIR_DOMAIN_DEVICE_ADDRESS_PCI_MULTI_ON)
|
|
||||||
+ virBufferAddLit(buf, ",multifunction=on");
|
|
||||||
+ else if (info->addr.pci.multi == VIR_DOMAIN_DEVICE_ADDRESS_PCI_MULTI_OFF)
|
|
||||||
+ virBufferAddLit(buf, ",multifunction=off");
|
|
||||||
+ virBufferAsprintf(buf, ",addr=0x%x", info->addr.pci.slot);
|
|
||||||
+ if (info->addr.pci.function != 0)
|
|
||||||
+ virBufferAsprintf(buf, ".0x%x", info->addr.pci.function);
|
|
||||||
} else if (info->type == VIR_DOMAIN_DEVICE_ADDRESS_TYPE_USB) {
|
|
||||||
virBufferAsprintf(buf, ",bus=");
|
|
||||||
qemuUsbId(buf, info->addr.usb.bus);
|
|
||||||
diff --git a/tests/qemuxml2argvdata/qemuxml2argv-multifunction-pci-device.args b/tests/qemuxml2argvdata/qemuxml2argv-multifunction-pci-device.args
|
|
||||||
index ff229f2..8a2150e 100644
|
|
||||||
--- a/tests/qemuxml2argvdata/qemuxml2argv-multifunction-pci-device.args
|
|
||||||
+++ b/tests/qemuxml2argvdata/qemuxml2argv-multifunction-pci-device.args
|
|
||||||
@@ -1,15 +1,15 @@
|
|
||||||
LC_ALL=C PATH=/bin HOME=/home/test USER=test LOGNAME=test /usr/bin/qemu -S -M \
|
|
||||||
pc -m 214 -smp 1 -nographic -nodefconfig -nodefaults \
|
|
||||||
-monitor unix:/tmp/test-monitor,server,nowait -no-acpi -boot c \
|
|
||||||
--device lsi,id=scsi0,bus=pci.0,multifunction=on,addr=0x3.0x0 \
|
|
||||||
--device lsi,id=scsi1,bus=pci.0,multifunction=on,addr=0x4.0x0 \
|
|
||||||
+-device lsi,id=scsi0,bus=pci.0,multifunction=off,addr=0x3 \
|
|
||||||
+-device lsi,id=scsi1,bus=pci.0,multifunction=on,addr=0x4 \
|
|
||||||
-device lsi,id=scsi2,bus=pci.0,multifunction=on,addr=0x4.0x1 \
|
|
||||||
--device lsi,id=scsi3,bus=pci.0,multifunction=on,addr=0x4.0x2 \
|
|
||||||
--device lsi,id=scsi4,bus=pci.0,multifunction=on,addr=0x4.0x3 \
|
|
||||||
--device lsi,id=scsi5,bus=pci.0,multifunction=on,addr=0x4.0x4 \
|
|
||||||
--device lsi,id=scsi6,bus=pci.0,multifunction=on,addr=0x4.0x5 \
|
|
||||||
--device lsi,id=scsi7,bus=pci.0,multifunction=on,addr=0x4.0x6 \
|
|
||||||
--device lsi,id=scsi8,bus=pci.0,multifunction=on,addr=0x4.0x7 \
|
|
||||||
+-device lsi,id=scsi3,bus=pci.0,addr=0x4.0x2 \
|
|
||||||
+-device lsi,id=scsi4,bus=pci.0,addr=0x4.0x3 \
|
|
||||||
+-device lsi,id=scsi5,bus=pci.0,addr=0x4.0x4 \
|
|
||||||
+-device lsi,id=scsi6,bus=pci.0,addr=0x4.0x5 \
|
|
||||||
+-device lsi,id=scsi7,bus=pci.0,addr=0x4.0x6 \
|
|
||||||
+-device lsi,id=scsi8,bus=pci.0,addr=0x4.0x7 \
|
|
||||||
-drive file=/tmp/scsidisk.img,if=none,id=drive-scsi0-0-0 \
|
|
||||||
-device scsi-disk,bus=scsi0.0,scsi-id=0,drive=drive-scsi0-0-0,id=scsi0-0-0 \
|
|
||||||
--usb -device virtio-balloon-pci,id=balloon0,bus=pci.0,multifunction=on,addr=0x5.0x0
|
|
||||||
+-usb -device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x5
|
|
||||||
diff --git a/tests/qemuxml2argvdata/qemuxml2argv-multifunction-pci-device.xml b/tests/qemuxml2argvdata/qemuxml2argv-multifunction-pci-device.xml
|
|
||||||
index 672fb61..24b95b8 100644
|
|
||||||
--- a/tests/qemuxml2argvdata/qemuxml2argv-multifunction-pci-device.xml
|
|
||||||
+++ b/tests/qemuxml2argvdata/qemuxml2argv-multifunction-pci-device.xml
|
|
||||||
@@ -20,13 +20,13 @@
|
|
||||||
<address type='drive' controller='0' bus='0' unit='0'/>
|
|
||||||
</disk>
|
|
||||||
<controller type='scsi' index='0'>
|
|
||||||
- <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
|
|
||||||
+ <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0' multifunction='off'/>
|
|
||||||
</controller>
|
|
||||||
<controller type='scsi' index='1'>
|
|
||||||
- <address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x0'/>
|
|
||||||
+ <address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x0' multifunction='on'/>
|
|
||||||
</controller>
|
|
||||||
<controller type='scsi' index='2'>
|
|
||||||
- <address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x1'/>
|
|
||||||
+ <address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x1' multifunction='on'/>
|
|
||||||
</controller>
|
|
||||||
<controller type='scsi' index='3'>
|
|
||||||
<address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x2'/>
|
|
||||||
diff --git a/tests/qemuxml2argvdata/qemuxml2argv-usb-ich9-companion.args b/tests/qemuxml2argvdata/qemuxml2argv-usb-ich9-companion.args
|
|
||||||
index 1007544..080d483 100644
|
|
||||||
--- a/tests/qemuxml2argvdata/qemuxml2argv-usb-ich9-companion.args
|
|
||||||
+++ b/tests/qemuxml2argvdata/qemuxml2argv-usb-ich9-companion.args
|
|
||||||
@@ -1,6 +1,9 @@
|
|
||||||
-LC_ALL=C PATH=/bin HOME=/home/test USER=test LOGNAME=test /usr/bin/qemu -S -M pc -m 214 -smp 1 -nographic -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,multifunction=on,addr=0x4.0x7 \
|
|
||||||
--device ich9-usb-uhci1,masterbus=usb.0,firstport=0,bus=pci.0,multifunction=on,addr=0x4.0x0 \
|
|
||||||
--device ich9-usb-uhci2,masterbus=usb.0,firstport=2,bus=pci.0,multifunction=on,addr=0x4.0x1 \
|
|
||||||
--device ich9-usb-uhci3,masterbus=usb.0,firstport=4,bus=pci.0,multifunction=on,addr=0x4.0x2 \
|
|
||||||
--device virtio-balloon-pci,id=balloon0,bus=pci.0,multifunction=on,addr=0x3.0x0
|
|
||||||
+LC_ALL=C PATH=/bin HOME=/home/test USER=test LOGNAME=test /usr/bin/qemu -S -M pc \
|
|
||||||
+-m 214 -smp 1 -nographic -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 \
|
|
||||||
+-device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x3
|
|
||||||
diff --git a/tests/qemuxml2argvdata/qemuxml2argv-usb-ich9-companion.xml b/tests/qemuxml2argvdata/qemuxml2argv-usb-ich9-companion.xml
|
|
||||||
index 05a6adf..5a43638 100644
|
|
||||||
--- a/tests/qemuxml2argvdata/qemuxml2argv-usb-ich9-companion.xml
|
|
||||||
+++ b/tests/qemuxml2argvdata/qemuxml2argv-usb-ich9-companion.xml
|
|
||||||
@@ -15,7 +15,7 @@
|
|
||||||
</controller>
|
|
||||||
<controller type='usb' index='0' model='ich9-uhci1'>
|
|
||||||
<master startport='0'/>
|
|
||||||
- <address type='pci' domain='0' bus='0' slot='4' function='0'/>
|
|
||||||
+ <address type='pci' domain='0' bus='0' slot='4' function='0' multifunction='on'/>
|
|
||||||
</controller>
|
|
||||||
<controller type='usb' index='0' model='ich9-uhci2'>
|
|
||||||
<master startport='2'/>
|
|
||||||
diff --git a/tests/qemuxml2argvdata/qemuxml2argv-usb-ich9-ehci-addr.args b/tests/qemuxml2argvdata/qemuxml2argv-usb-ich9-ehci-addr.args
|
|
||||||
index 0059ab5..babd4f8 100644
|
|
||||||
--- a/tests/qemuxml2argvdata/qemuxml2argv-usb-ich9-ehci-addr.args
|
|
||||||
+++ b/tests/qemuxml2argvdata/qemuxml2argv-usb-ich9-ehci-addr.args
|
|
||||||
@@ -1 +1,6 @@
|
|
||||||
-LC_ALL=C PATH=/bin HOME=/home/test USER=test LOGNAME=test /usr/bin/qemu -S -M pc -m 214 -smp 1 -nographic -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,multifunction=on,addr=0x4.0x7 -device virtio-balloon-pci,id=balloon0,bus=pci.0,multifunction=on,addr=0x3.0x0
|
|
||||||
+LC_ALL=C PATH=/bin HOME=/home/test USER=test LOGNAME=test /usr/bin/qemu -S \
|
|
||||||
+-M pc -m 214 -smp 1 -nographic -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 virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x3
|
|
||||||
diff --git a/tests/qemuxml2argvdata/qemuxml2argv-usb-piix3-controller.args b/tests/qemuxml2argvdata/qemuxml2argv-usb-piix3-controller.args
|
|
||||||
index 06863bb..1b2d5c1 100644
|
|
||||||
--- a/tests/qemuxml2argvdata/qemuxml2argv-usb-piix3-controller.args
|
|
||||||
+++ b/tests/qemuxml2argvdata/qemuxml2argv-usb-piix3-controller.args
|
|
||||||
@@ -1 +1,6 @@
|
|
||||||
-LC_ALL=C PATH=/bin HOME=/home/test USER=test LOGNAME=test /usr/bin/qemu -S -M pc -m 214 -smp 1 -nographic -nodefconfig -nodefaults -chardev socket,id=charmonitor,path=/tmp/test-monitor,server,nowait -mon chardev=charmonitor,id=monitor,mode=readline -no-acpi -boot c -device piix3-usb-uhci,id=usb,bus=pci.0,multifunction=on,addr=0x1.0x2 -device virtio-balloon-pci,id=balloon0,bus=pci.0,multifunction=on,addr=0x3.0x0
|
|
||||||
+LC_ALL=C PATH=/bin HOME=/home/test USER=test LOGNAME=test /usr/bin/qemu -S \
|
|
||||||
+-M pc -m 214 -smp 1 -nographic -nodefconfig -nodefaults \
|
|
||||||
+-chardev socket,id=charmonitor,path=/tmp/test-monitor,server,nowait \
|
|
||||||
+-mon chardev=charmonitor,id=monitor,mode=readline -no-acpi -boot c \
|
|
||||||
+-device piix3-usb-uhci,id=usb,bus=pci.0,addr=0x1.0x2 \
|
|
||||||
+-device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x3
|
|
||||||
diff --git a/tests/qemuxml2argvdata/qemuxml2argv-usb-redir.args b/tests/qemuxml2argvdata/qemuxml2argv-usb-redir.args
|
|
||||||
index f6270d5..7d34c2a 100644
|
|
||||||
--- a/tests/qemuxml2argvdata/qemuxml2argv-usb-redir.args
|
|
||||||
+++ b/tests/qemuxml2argvdata/qemuxml2argv-usb-redir.args
|
|
||||||
@@ -1,10 +1,10 @@
|
|
||||||
LC_ALL=C PATH=/bin HOME=/home/test USER=test LOGNAME=test /usr/bin/qemu -S -M pc -m 214 -smp 1 -nographic -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,multifunction=on,addr=0x4.0x7 \
|
|
||||||
--device ich9-usb-uhci1,masterbus=usb.0,firstport=0,bus=pci.0,multifunction=on,addr=0x4.0x0 \
|
|
||||||
--device ich9-usb-uhci2,masterbus=usb.0,firstport=2,bus=pci.0,multifunction=on,addr=0x4.0x1 \
|
|
||||||
--device ich9-usb-uhci3,masterbus=usb.0,firstport=4,bus=pci.0,multifunction=on,addr=0x4.0x2 \
|
|
||||||
+-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 \
|
|
||||||
-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,multifunction=on,addr=0x3.0x0
|
|
||||||
+-device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x3
|
|
||||||
diff --git a/tests/qemuxml2argvdata/qemuxml2argv-usb-redir.xml b/tests/qemuxml2argvdata/qemuxml2argv-usb-redir.xml
|
|
||||||
index 1dac3fb..a359a3d 100644
|
|
||||||
--- a/tests/qemuxml2argvdata/qemuxml2argv-usb-redir.xml
|
|
||||||
+++ b/tests/qemuxml2argvdata/qemuxml2argv-usb-redir.xml
|
|
||||||
@@ -19,7 +19,7 @@
|
|
||||||
</controller>
|
|
||||||
<controller type='usb' index='0' model='ich9-uhci1'>
|
|
||||||
<master startport='0'/>
|
|
||||||
- <address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x0'/>
|
|
||||||
+ <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'/>
|
|
||||||
diff --git a/tests/qemuxml2argvdata/qemuxml2argv-usb1-usb2.args b/tests/qemuxml2argvdata/qemuxml2argv-usb1-usb2.args
|
|
||||||
index be4a78e..0a61af5 100644
|
|
||||||
--- a/tests/qemuxml2argvdata/qemuxml2argv-usb1-usb2.args
|
|
||||||
+++ b/tests/qemuxml2argvdata/qemuxml2argv-usb1-usb2.args
|
|
||||||
@@ -1,15 +1,18 @@
|
|
||||||
-LC_ALL=C PATH=/bin HOME=/home/test USER=test LOGNAME=test /usr/bin/qemu -S -M pc -m 214 -smp 1 -nographic -nodefconfig -nodefaults -chardev socket,id=charmonitor,path=/tmp/test-monitor,server,nowait -mon chardev=charmonitor,id=monitor,mode=readline -no-acpi -boot c \
|
|
||||||
--device piix3-usb-uhci,id=usb,bus=pci.0,multifunction=on,addr=0x1.0x2 \
|
|
||||||
--device ich9-usb-ehci1,id=usb1,bus=pci.0,multifunction=on,addr=0x4.0x7 \
|
|
||||||
--device ich9-usb-uhci1,masterbus=usb1.0,firstport=0,bus=pci.0,multifunction=on,addr=0x4.0x0 \
|
|
||||||
--device ich9-usb-uhci2,masterbus=usb1.0,firstport=2,bus=pci.0,multifunction=on,addr=0x4.0x1 \
|
|
||||||
--device ich9-usb-uhci3,masterbus=usb1.0,firstport=4,bus=pci.0,multifunction=on,addr=0x4.0x2 \
|
|
||||||
--device ich9-usb-ehci1,id=usb2,bus=pci.0,multifunction=on,addr=0x5.0x7 \
|
|
||||||
--device ich9-usb-uhci1,masterbus=usb2.0,firstport=0,bus=pci.0,multifunction=on,addr=0x5.0x0 \
|
|
||||||
--device ich9-usb-uhci2,masterbus=usb2.0,firstport=2,bus=pci.0,multifunction=on,addr=0x5.0x1 \
|
|
||||||
--device ich9-usb-uhci3,masterbus=usb2.0,firstport=4,bus=pci.0,multifunction=on,addr=0x5.0x2 \
|
|
||||||
+LC_ALL=C PATH=/bin HOME=/home/test USER=test LOGNAME=test /usr/bin/qemu -S \
|
|
||||||
+-M pc -m 214 -smp 1 -nographic -nodefconfig -nodefaults \
|
|
||||||
+-chardev socket,id=charmonitor,path=/tmp/test-monitor,server,nowait \
|
|
||||||
+-mon chardev=charmonitor,id=monitor,mode=readline -no-acpi -boot c \
|
|
||||||
+-device piix3-usb-uhci,id=usb,bus=pci.0,addr=0x1.0x2 \
|
|
||||||
+-device ich9-usb-ehci1,id=usb1,bus=pci.0,addr=0x4.0x7 \
|
|
||||||
+-device ich9-usb-uhci1,masterbus=usb1.0,firstport=0,bus=pci.0,multifunction=on,addr=0x4 \
|
|
||||||
+-device ich9-usb-uhci2,masterbus=usb1.0,firstport=2,bus=pci.0,addr=0x4.0x1 \
|
|
||||||
+-device ich9-usb-uhci3,masterbus=usb1.0,firstport=4,bus=pci.0,addr=0x4.0x2 \
|
|
||||||
+-device ich9-usb-ehci1,id=usb2,bus=pci.0,addr=0x5.0x7 \
|
|
||||||
+-device ich9-usb-uhci1,masterbus=usb2.0,firstport=0,bus=pci.0,multifunction=on,addr=0x5 \
|
|
||||||
+-device ich9-usb-uhci2,masterbus=usb2.0,firstport=2,bus=pci.0,addr=0x5.0x1 \
|
|
||||||
+-device ich9-usb-uhci3,masterbus=usb2.0,firstport=4,bus=pci.0,addr=0x5.0x2 \
|
|
||||||
-device usb-hub,id=hub0,bus=usb1.0,port=1 \
|
|
||||||
-device usb-tablet,id=input0,bus=usb.0,port=2 \
|
|
||||||
-device usb-host,hostbus=14,hostaddr=6,id=hostdev0,bus=usb2.0,port=1 \
|
|
||||||
-device usb-host,hostbus=14,hostaddr=7,id=hostdev1,bus=usb2.0,port=2 \
|
|
||||||
--device virtio-balloon-pci,id=balloon0,bus=pci.0,multifunction=on,addr=0x3.0x0
|
|
||||||
+-device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x3
|
|
||||||
diff --git a/tests/qemuxml2argvdata/qemuxml2argv-usb1-usb2.xml b/tests/qemuxml2argvdata/qemuxml2argv-usb1-usb2.xml
|
|
||||||
index e8ada4d..b12b841 100644
|
|
||||||
--- a/tests/qemuxml2argvdata/qemuxml2argv-usb1-usb2.xml
|
|
||||||
+++ b/tests/qemuxml2argvdata/qemuxml2argv-usb1-usb2.xml
|
|
||||||
@@ -21,7 +21,7 @@
|
|
||||||
</controller>
|
|
||||||
<controller type='usb' index='1' model='ich9-uhci1'>
|
|
||||||
<master startport='0'/>
|
|
||||||
- <address type='pci' domain='0' bus='0' slot='4' function='0'/>
|
|
||||||
+ <address type='pci' domain='0' bus='0' slot='4' function='0' multifunction='on'/>
|
|
||||||
</controller>
|
|
||||||
<controller type='usb' index='1' model='ich9-uhci2'>
|
|
||||||
<master startport='2'/>
|
|
||||||
@@ -37,7 +37,7 @@
|
|
||||||
</controller>
|
|
||||||
<controller type='usb' index='2' model='ich9-uhci1'>
|
|
||||||
<master startport='0'/>
|
|
||||||
- <address type='pci' domain='0' bus='0' slot='5' function='0'/>
|
|
||||||
+ <address type='pci' domain='0' bus='0' slot='5' function='0' multifunction='on'/>
|
|
||||||
</controller>
|
|
||||||
<controller type='usb' index='2' model='ich9-uhci2'>
|
|
||||||
<master startport='2'/>
|
|
||||||
--
|
|
||||||
1.7.4.4
|
|
||||||
|
|
@ -1,56 +0,0 @@
|
|||||||
From 5d219e1bd98b562eed28e1df424a2590bb92b366 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Eric Blake <eblake@redhat.com>
|
|
||||||
Date: Mon, 26 Sep 2011 14:28:47 -0600
|
|
||||||
Subject: [PATCH 1/2] spec: F15 still uses cgconfig, RHEL lacks hyperv
|
|
||||||
|
|
||||||
Commit ecd8725c dropped attempts to probe the cgconfig service on
|
|
||||||
new enough Fedora where systemd took over that aspect of the system,
|
|
||||||
but mistakenly used F14 instead of F15 as the cutoff point.
|
|
||||||
|
|
||||||
https://bugzilla.redhat.com/show_bug.cgi?id=741358
|
|
||||||
|
|
||||||
Also, RHEL does not include HyperV support yet.
|
|
||||||
|
|
||||||
* libvirt.spec.in (with_cgconfig): Check cgconfig service in F15.
|
|
||||||
(%{?rhel}): Provide default for with_hyperv.
|
|
||||||
---
|
|
||||||
libvirt.spec.in | 8 +++++---
|
|
||||||
1 files changed, 5 insertions(+), 3 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/libvirt.spec.in b/libvirt.spec.in
|
|
||||||
index c0ea898..b87e3f6 100644
|
|
||||||
--- a/libvirt.spec.in
|
|
||||||
+++ b/libvirt.spec.in
|
|
||||||
@@ -97,7 +97,8 @@
|
|
||||||
%endif
|
|
||||||
|
|
||||||
# RHEL doesn't ship OpenVZ, VBox, UML, PowerHypervisor,
|
|
||||||
-# VMWare, libxenserver (xenapi), or libxenlight (Xen 4.1 and newer)
|
|
||||||
+# VMWare, libxenserver (xenapi), libxenlight (Xen 4.1 and newer),
|
|
||||||
+# or HyperV.
|
|
||||||
%if 0%{?rhel}
|
|
||||||
%define with_openvz 0
|
|
||||||
%define with_vbox 0
|
|
||||||
@@ -106,6 +107,7 @@
|
|
||||||
%define with_vmware 0
|
|
||||||
%define with_xenapi 0
|
|
||||||
%define with_libxl 0
|
|
||||||
+%define with_hyperv 0
|
|
||||||
%endif
|
|
||||||
|
|
||||||
# RHEL-5 has restricted QEMU to x86_64 only and is too old for LXC
|
|
||||||
@@ -894,9 +896,9 @@ done
|
|
||||||
%endif
|
|
||||||
|
|
||||||
%if %{with_cgconfig}
|
|
||||||
-# Starting with Fedora 15, systemd automounts all cgroups, and cgconfig is
|
|
||||||
+# Starting with Fedora 16, systemd automounts all cgroups, and cgconfig is
|
|
||||||
# no longer a necessary service.
|
|
||||||
-%if 0%{?fedora} <= 14 || 0%{?rhel} <= 6
|
|
||||||
+%if 0%{?fedora} <= 15 || 0%{?rhel} <= 6
|
|
||||||
if [ "$1" -eq "1" ]; then
|
|
||||||
/sbin/chkconfig cgconfig on
|
|
||||||
fi
|
|
||||||
--
|
|
||||||
1.7.4.4
|
|
||||||
|
|
144
libvirt.spec
144
libvirt.spec
@ -78,6 +78,7 @@
|
|||||||
%define with_dtrace 0%{!?_without_dtrace:0}
|
%define with_dtrace 0%{!?_without_dtrace:0}
|
||||||
%define with_cgconfig 0%{!?_without_cgconfig:0}
|
%define with_cgconfig 0%{!?_without_cgconfig:0}
|
||||||
%define with_sanlock 0%{!?_without_sanlock:0}
|
%define with_sanlock 0%{!?_without_sanlock:0}
|
||||||
|
%define with_systemd 0%{!?_without_systemd:0}
|
||||||
|
|
||||||
# Non-server/HV driver defaults which are always enabled
|
# Non-server/HV driver defaults which are always enabled
|
||||||
%define with_python 0%{!?_without_python:1}
|
%define with_python 0%{!?_without_python:1}
|
||||||
@ -111,6 +112,11 @@
|
|||||||
%define with_hyperv 0
|
%define with_hyperv 0
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
|
# Although earlier Fedora has systemd, libvirt still used sysvinit
|
||||||
|
%if 0%{?fedora} >= 17
|
||||||
|
%define with_systemd 1
|
||||||
|
%endif
|
||||||
|
|
||||||
# RHEL-5 has restricted QEMU to x86_64 only and is too old for LXC
|
# RHEL-5 has restricted QEMU to x86_64 only and is too old for LXC
|
||||||
%if 0%{?rhel} == 5
|
%if 0%{?rhel} == 5
|
||||||
%ifnarch x86_64
|
%ifnarch x86_64
|
||||||
@ -168,9 +174,15 @@
|
|||||||
%endif
|
%endif
|
||||||
|
|
||||||
# Enable sanlock library for lock management with QEMU
|
# Enable sanlock library for lock management with QEMU
|
||||||
%if 0%{?fedora} >= 16 || 0%{?rhel} >= 6
|
# Sanlock is available only on i686 x86_64 for RHEL
|
||||||
|
%if 0%{?fedora} >= 16
|
||||||
%define with_sanlock 0%{!?_without_sanlock:%{server_drivers}}
|
%define with_sanlock 0%{!?_without_sanlock:%{server_drivers}}
|
||||||
%endif
|
%endif
|
||||||
|
%if 0%{?rhel} >= 6
|
||||||
|
%ifnarch i386 i586 i686 x86_64
|
||||||
|
%define with_sanlock 0%{!?_without_sanlock:%{server_drivers}}
|
||||||
|
%endif
|
||||||
|
%endif
|
||||||
|
|
||||||
# Disable some drivers when building without libvirt daemon.
|
# Disable some drivers when building without libvirt daemon.
|
||||||
# The logic is the same as in configure.ac
|
# The logic is the same as in configure.ac
|
||||||
@ -234,8 +246,8 @@
|
|||||||
|
|
||||||
Summary: Library providing a simple virtualization API
|
Summary: Library providing a simple virtualization API
|
||||||
Name: libvirt
|
Name: libvirt
|
||||||
Version: 0.9.7
|
Version: 0.9.8
|
||||||
Release: 3%{?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
|
Source: http://libvirt.org/sources/libvirt-%{version}.tar.gz
|
||||||
@ -251,7 +263,6 @@ Requires: %{name}-client = %{version}-%{release}
|
|||||||
# Used by many of the drivers, so turn it on whenever the
|
# Used by many of the drivers, so turn it on whenever the
|
||||||
# daemon is present
|
# daemon is present
|
||||||
%if %{with_libvirtd}
|
%if %{with_libvirtd}
|
||||||
Requires: bridge-utils
|
|
||||||
# for modprobe of pci devices
|
# for modprobe of pci devices
|
||||||
Requires: module-init-tools
|
Requires: module-init-tools
|
||||||
# for /sbin/ip & /sbin/tc
|
# for /sbin/ip & /sbin/tc
|
||||||
@ -327,17 +338,28 @@ Requires: device-mapper
|
|||||||
%if %{with_cgconfig}
|
%if %{with_cgconfig}
|
||||||
Requires: libcgroup
|
Requires: libcgroup
|
||||||
%endif
|
%endif
|
||||||
|
# For virConnectGetSysinfo
|
||||||
|
Requires: dmidecode
|
||||||
|
# For service management
|
||||||
|
%if %{with_systemd}
|
||||||
|
Requires(post): systemd-units
|
||||||
|
Requires(post): systemd-sysv
|
||||||
|
Requires(preun): systemd-units
|
||||||
|
Requires(postun): systemd-units
|
||||||
|
%endif
|
||||||
|
|
||||||
# All build-time requirements
|
# All build-time requirements
|
||||||
BuildRequires: python-devel
|
BuildRequires: python-devel
|
||||||
|
%if %{with_systemd}
|
||||||
|
BuildRequires: systemd-units
|
||||||
|
%endif
|
||||||
%if %{with_xen}
|
%if %{with_xen}
|
||||||
BuildRequires: xen-devel
|
BuildRequires: xen-devel
|
||||||
|
%endif
|
||||||
# temporary explicit requireent missing from xen-4.1.0
|
# temporary explicit requireent missing from xen-4.1.0
|
||||||
%if %{with_libxl}
|
%if %{with_libxl}
|
||||||
BuildRequires: libuuid-devel
|
BuildRequires: libuuid-devel
|
||||||
%endif
|
%endif
|
||||||
%endif
|
|
||||||
BuildRequires: libxml2-devel
|
BuildRequires: libxml2-devel
|
||||||
BuildRequires: xhtml1-dtds
|
BuildRequires: xhtml1-dtds
|
||||||
BuildRequires: libxslt
|
BuildRequires: libxslt
|
||||||
@ -384,7 +406,6 @@ BuildRequires: radvd
|
|||||||
%if %{with_nwfilter}
|
%if %{with_nwfilter}
|
||||||
BuildRequires: ebtables
|
BuildRequires: ebtables
|
||||||
%endif
|
%endif
|
||||||
BuildRequires: bridge-utils
|
|
||||||
BuildRequires: module-init-tools
|
BuildRequires: module-init-tools
|
||||||
%if %{with_sasl}
|
%if %{with_sasl}
|
||||||
BuildRequires: cyrus-sasl-devel
|
BuildRequires: cyrus-sasl-devel
|
||||||
@ -497,6 +518,8 @@ Requires: nc
|
|||||||
Requires: gettext
|
Requires: gettext
|
||||||
# Needed by virt-pki-validate script.
|
# Needed by virt-pki-validate script.
|
||||||
Requires: gnutls-utils
|
Requires: gnutls-utils
|
||||||
|
# Needed for probing the power management features of the host.
|
||||||
|
Requires: pm-utils
|
||||||
%if %{with_sasl}
|
%if %{with_sasl}
|
||||||
Requires: cyrus-sasl
|
Requires: cyrus-sasl
|
||||||
# Not technically required, but makes 'out-of-box' config
|
# Not technically required, but makes 'out-of-box' config
|
||||||
@ -702,6 +725,13 @@ of recent versions of Linux (and other OSes).
|
|||||||
%define with_packager --with-packager="%{who}, %{when}, %{where}"
|
%define with_packager --with-packager="%{who}, %{when}, %{where}"
|
||||||
%define with_packager_version --with-packager-version="%{release}"
|
%define with_packager_version --with-packager-version="%{release}"
|
||||||
|
|
||||||
|
%if %{with_systemd}
|
||||||
|
# We use 'systemd+redhat', so if someone installs upstart or
|
||||||
|
# legacy init scripts, they can still start libvirtd, etc
|
||||||
|
%define init_scripts --with-init_script=systemd+redhat
|
||||||
|
%else
|
||||||
|
%define init_scripts --with-init_script=redhat
|
||||||
|
%endif
|
||||||
|
|
||||||
%configure %{?_without_xen} \
|
%configure %{?_without_xen} \
|
||||||
%{?_without_qemu} \
|
%{?_without_qemu} \
|
||||||
@ -742,7 +772,7 @@ of recent versions of Linux (and other OSes).
|
|||||||
%{with_packager_version} \
|
%{with_packager_version} \
|
||||||
--with-qemu-user=%{qemu_user} \
|
--with-qemu-user=%{qemu_user} \
|
||||||
--with-qemu-group=%{qemu_group} \
|
--with-qemu-group=%{qemu_group} \
|
||||||
--with-init-script=redhat \
|
%{init_scripts} \
|
||||||
--with-remote-pid-file=%{_localstatedir}/run/libvirtd.pid
|
--with-remote-pid-file=%{_localstatedir}/run/libvirtd.pid
|
||||||
make %{?_smp_mflags}
|
make %{?_smp_mflags}
|
||||||
gzip -9 ChangeLog
|
gzip -9 ChangeLog
|
||||||
@ -750,7 +780,7 @@ gzip -9 ChangeLog
|
|||||||
%install
|
%install
|
||||||
rm -fr %{buildroot}
|
rm -fr %{buildroot}
|
||||||
|
|
||||||
%makeinstall
|
%makeinstall SYSTEMD_UNIT_DIR=%{_unitdir}
|
||||||
for i in domain-events/events-c dominfo domsuspend hellolibvirt openauth python xml/nwfilter systemtap
|
for i in domain-events/events-c dominfo domsuspend hellolibvirt openauth python xml/nwfilter systemtap
|
||||||
do
|
do
|
||||||
(cd examples/$i ; make clean ; rm -rf .deps .libs Makefile Makefile.in)
|
(cd examples/$i ; make clean ; rm -rf .deps .libs Makefile Makefile.in)
|
||||||
@ -827,8 +857,6 @@ do
|
|||||||
printf "#!/bin/sh\nexit 0\n" > $i
|
printf "#!/bin/sh\nexit 0\n" > $i
|
||||||
chmod +x $i
|
chmod +x $i
|
||||||
done
|
done
|
||||||
# Fails on F17 rawhide for (currently) unknown reasons
|
|
||||||
echo "int main(void) { return 0; }" > shunloadtest.c
|
|
||||||
make check
|
make check
|
||||||
|
|
||||||
%pre
|
%pre
|
||||||
@ -850,8 +878,7 @@ getent passwd qemu >/dev/null || \
|
|||||||
# We want to install the default network for initial RPM installs
|
# We want to install the default network for initial RPM installs
|
||||||
# or on the first upgrade from a non-network aware libvirt only.
|
# or on the first upgrade from a non-network aware libvirt only.
|
||||||
# We check this by looking to see if the daemon is already installed
|
# We check this by looking to see if the daemon is already installed
|
||||||
/sbin/chkconfig --list libvirtd 1>/dev/null 2>&1
|
if ! /sbin/chkconfig libvirtd && test ! -f %{_sysconfdir}/libvirt/qemu/networks/default.xml
|
||||||
if test $? != 0 && test ! -f %{_sysconfdir}/libvirt/qemu/networks/default.xml
|
|
||||||
then
|
then
|
||||||
UUID=`/usr/bin/uuidgen`
|
UUID=`/usr/bin/uuidgen`
|
||||||
sed -e "s,</name>,</name>\n <uuid>$UUID</uuid>," \
|
sed -e "s,</name>,</name>\n <uuid>$UUID</uuid>," \
|
||||||
@ -901,6 +928,13 @@ do
|
|||||||
done
|
done
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
|
%if %{with_systemd}
|
||||||
|
if [ $1 -eq 1 ] ; then
|
||||||
|
# Initial installation
|
||||||
|
/bin/systemctl enable libvirtd.service >/dev/null 2>&1 || :
|
||||||
|
/bin/systemctl enable cgconfig.service >/dev/null 2>&1 || :
|
||||||
|
fi
|
||||||
|
%else
|
||||||
%if %{with_cgconfig}
|
%if %{with_cgconfig}
|
||||||
# Starting with Fedora 16, systemd automounts all cgroups, and cgconfig is
|
# Starting with Fedora 16, systemd automounts all cgroups, and cgconfig is
|
||||||
# no longer a necessary service.
|
# no longer a necessary service.
|
||||||
@ -916,38 +950,89 @@ if [ "$1" -ge "1" ]; then
|
|||||||
/sbin/service libvirtd condrestart > /dev/null 2>&1
|
/sbin/service libvirtd condrestart > /dev/null 2>&1
|
||||||
fi
|
fi
|
||||||
%endif
|
%endif
|
||||||
|
%endif
|
||||||
|
|
||||||
%preun
|
%preun
|
||||||
%if %{with_libvirtd}
|
%if %{with_libvirtd}
|
||||||
|
%if %{with_systemd}
|
||||||
|
if [ $1 -eq 0 ] ; then
|
||||||
|
# Package removal, not upgrade
|
||||||
|
/bin/systemctl --no-reload disable libvirtd.service > /dev/null 2>&1 || :
|
||||||
|
/bin/systemctl stop libvirtd.service > /dev/null 2>&1 || :
|
||||||
|
fi
|
||||||
|
%else
|
||||||
if [ $1 = 0 ]; then
|
if [ $1 = 0 ]; then
|
||||||
/sbin/service libvirtd stop 1>/dev/null 2>&1
|
/sbin/service libvirtd stop 1>/dev/null 2>&1
|
||||||
/sbin/chkconfig --del libvirtd
|
/sbin/chkconfig --del libvirtd
|
||||||
fi
|
fi
|
||||||
%endif
|
%endif
|
||||||
|
%endif
|
||||||
|
|
||||||
|
%postun
|
||||||
|
%if %{with_libvirtd}
|
||||||
|
%if %{with_systemd}
|
||||||
|
/bin/systemctl daemon-reload >/dev/null 2>&1 || :
|
||||||
|
if [ $1 -ge 1 ] ; then
|
||||||
|
# Package upgrade, not uninstall
|
||||||
|
/bin/systemctl try-restart libvirtd.service >/dev/null 2>&1 || :
|
||||||
|
fi
|
||||||
|
%endif
|
||||||
|
%endif
|
||||||
|
|
||||||
|
%if %{with_libvirtd}
|
||||||
|
%if %{with_systemd}
|
||||||
|
%triggerun -- libvirt < 0.9.4
|
||||||
|
%{_bindir}/systemd-sysv-convert --save libvirtd >/dev/null 2>&1 ||:
|
||||||
|
|
||||||
|
# If the package is allowed to autostart:
|
||||||
|
/bin/systemctl --no-reload enable libvirtd.service >/dev/null 2>&1 ||:
|
||||||
|
|
||||||
|
# Run these because the SysV package being removed won't do them
|
||||||
|
/sbin/chkconfig --del libvirtd >/dev/null 2>&1 || :
|
||||||
|
/bin/systemctl try-restart libvirtd.service >/dev/null 2>&1 || :
|
||||||
|
%endif
|
||||||
|
%endif
|
||||||
|
|
||||||
%preun client
|
%preun client
|
||||||
|
|
||||||
|
%if %{with_systemd}
|
||||||
|
%else
|
||||||
if [ $1 = 0 ]; then
|
if [ $1 = 0 ]; then
|
||||||
/sbin/chkconfig --del libvirt-guests
|
/sbin/chkconfig --del libvirt-guests
|
||||||
rm -f /var/lib/libvirt/libvirt-guests
|
rm -f /var/lib/libvirt/libvirt-guests
|
||||||
fi
|
fi
|
||||||
|
%endif
|
||||||
|
|
||||||
%post client
|
%post client
|
||||||
|
|
||||||
/sbin/ldconfig
|
/sbin/ldconfig
|
||||||
|
%if %{with_systemd}
|
||||||
|
%else
|
||||||
/sbin/chkconfig --add libvirt-guests
|
/sbin/chkconfig --add libvirt-guests
|
||||||
if [ $1 -ge 1 ]; then
|
if [ $1 -ge 1 ]; then
|
||||||
level=$(/sbin/runlevel | /bin/cut -d ' ' -f 2)
|
level=$(/sbin/runlevel | /bin/cut -d ' ' -f 2)
|
||||||
if /sbin/chkconfig --list libvirt-guests 2>/dev/null \
|
if /sbin/chkconfig --levels $level libvirt-guests; then
|
||||||
| /bin/grep -q $level:on ; then
|
|
||||||
# this doesn't do anything but allowing for libvirt-guests to be
|
# this doesn't do anything but allowing for libvirt-guests to be
|
||||||
# stopped on the first shutdown
|
# stopped on the first shutdown
|
||||||
/sbin/service libvirt-guests start > /dev/null 2>&1 || true
|
/sbin/service libvirt-guests start > /dev/null 2>&1 || true
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
%endif
|
||||||
|
|
||||||
%postun client -p /sbin/ldconfig
|
%postun client -p /sbin/ldconfig
|
||||||
|
|
||||||
|
%if %{with_systemd}
|
||||||
|
%triggerun client -- libvirt < 0.9.4
|
||||||
|
%{_bindir}/systemd-sysv-convert --save libvirt-guests >/dev/null 2>&1 ||:
|
||||||
|
|
||||||
|
# If the package is allowed to autostart:
|
||||||
|
/bin/systemctl --no-reload enable libvirt-guests.service >/dev/null 2>&1 ||:
|
||||||
|
|
||||||
|
# Run these because the SysV package being removed won't do them
|
||||||
|
/sbin/chkconfig --del libvirt-guests >/dev/null 2>&1 || :
|
||||||
|
/bin/systemctl try-restart libvirt-guests.service >/dev/null 2>&1 || :
|
||||||
|
%endif
|
||||||
|
|
||||||
%if %{with_libvirtd}
|
%if %{with_libvirtd}
|
||||||
%files
|
%files
|
||||||
%defattr(-, root, root)
|
%defattr(-, root, root)
|
||||||
@ -965,6 +1050,9 @@ fi
|
|||||||
%{_sysconfdir}/libvirt/nwfilter/*.xml
|
%{_sysconfdir}/libvirt/nwfilter/*.xml
|
||||||
|
|
||||||
%{_sysconfdir}/rc.d/init.d/libvirtd
|
%{_sysconfdir}/rc.d/init.d/libvirtd
|
||||||
|
%if %{with_systemd}
|
||||||
|
%{_unitdir}/libvirtd.service
|
||||||
|
%endif
|
||||||
%doc daemon/libvirtd.upstart
|
%doc daemon/libvirtd.upstart
|
||||||
%config(noreplace) %{_sysconfdir}/sysconfig/libvirtd
|
%config(noreplace) %{_sysconfdir}/sysconfig/libvirtd
|
||||||
%config(noreplace) %{_sysconfdir}/libvirt/libvirtd.conf
|
%config(noreplace) %{_sysconfdir}/libvirt/libvirtd.conf
|
||||||
@ -1004,7 +1092,7 @@ rm -f $RPM_BUILD_ROOT%{_sysconfdir}/sysctl.d/libvirtd
|
|||||||
%{_datadir}/libvirt/networks/default.xml
|
%{_datadir}/libvirt/networks/default.xml
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
%dir %{_localstatedir}/run/libvirt/
|
%ghost %dir %{_localstatedir}/run/libvirt/
|
||||||
|
|
||||||
%dir %attr(0711, root, root) %{_localstatedir}/lib/libvirt/images/
|
%dir %attr(0711, root, root) %{_localstatedir}/lib/libvirt/images/
|
||||||
%dir %attr(0711, root, root) %{_localstatedir}/lib/libvirt/filesystems/
|
%dir %attr(0711, root, root) %{_localstatedir}/lib/libvirt/filesystems/
|
||||||
@ -1012,24 +1100,24 @@ rm -f $RPM_BUILD_ROOT%{_sysconfdir}/sysctl.d/libvirtd
|
|||||||
%dir %attr(0711, root, root) %{_localstatedir}/cache/libvirt/
|
%dir %attr(0711, root, root) %{_localstatedir}/cache/libvirt/
|
||||||
|
|
||||||
%if %{with_qemu}
|
%if %{with_qemu}
|
||||||
%dir %attr(0700, root, root) %{_localstatedir}/run/libvirt/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/
|
||||||
%dir %attr(0750, %{qemu_user}, %{qemu_group}) %{_localstatedir}/cache/libvirt/qemu/
|
%dir %attr(0750, %{qemu_user}, %{qemu_group}) %{_localstatedir}/cache/libvirt/qemu/
|
||||||
%endif
|
%endif
|
||||||
%if %{with_lxc}
|
%if %{with_lxc}
|
||||||
%dir %{_localstatedir}/run/libvirt/lxc/
|
%ghost %dir %{_localstatedir}/run/libvirt/lxc/
|
||||||
%dir %attr(0700, root, root) %{_localstatedir}/lib/libvirt/lxc/
|
%dir %attr(0700, root, root) %{_localstatedir}/lib/libvirt/lxc/
|
||||||
%endif
|
%endif
|
||||||
%if %{with_uml}
|
%if %{with_uml}
|
||||||
%dir %{_localstatedir}/run/libvirt/uml/
|
%ghost %dir %{_localstatedir}/run/libvirt/uml/
|
||||||
%dir %attr(0700, root, root) %{_localstatedir}/lib/libvirt/uml/
|
%dir %attr(0700, root, root) %{_localstatedir}/lib/libvirt/uml/
|
||||||
%endif
|
%endif
|
||||||
%if %{with_libxl}
|
%if %{with_libxl}
|
||||||
%dir %{_localstatedir}/run/libvirt/libxl/
|
%ghost %dir %{_localstatedir}/run/libvirt/libxl/
|
||||||
%dir %attr(0700, root, root) %{_localstatedir}/lib/libvirt/libxl/
|
%dir %attr(0700, root, root) %{_localstatedir}/lib/libvirt/libxl/
|
||||||
%endif
|
%endif
|
||||||
%if %{with_network}
|
%if %{with_network}
|
||||||
%dir %{_localstatedir}/run/libvirt/network/
|
%ghost %dir %{_localstatedir}/run/libvirt/network/
|
||||||
%dir %attr(0700, root, root) %{_localstatedir}/lib/libvirt/network/
|
%dir %attr(0700, root, root) %{_localstatedir}/lib/libvirt/network/
|
||||||
%dir %attr(0755, root, root) %{_localstatedir}/lib/libvirt/dnsmasq/
|
%dir %attr(0755, root, root) %{_localstatedir}/lib/libvirt/dnsmasq/
|
||||||
%endif
|
%endif
|
||||||
@ -1121,6 +1209,9 @@ rm -f $RPM_BUILD_ROOT%{_sysconfdir}/sysctl.d/libvirtd
|
|||||||
%{_datadir}/libvirt/cpu_map.xml
|
%{_datadir}/libvirt/cpu_map.xml
|
||||||
|
|
||||||
%{_sysconfdir}/rc.d/init.d/libvirt-guests
|
%{_sysconfdir}/rc.d/init.d/libvirt-guests
|
||||||
|
%if %{with_systemd}
|
||||||
|
%{_unitdir}/libvirt-guests.service
|
||||||
|
%endif
|
||||||
%config(noreplace) %{_sysconfdir}/sysconfig/libvirt-guests
|
%config(noreplace) %{_sysconfdir}/sysconfig/libvirt-guests
|
||||||
%dir %attr(0755, root, root) %{_localstatedir}/lib/libvirt/
|
%dir %attr(0755, root, root) %{_localstatedir}/lib/libvirt/
|
||||||
|
|
||||||
@ -1166,6 +1257,17 @@ rm -f $RPM_BUILD_ROOT%{_sysconfdir}/sysctl.d/libvirtd
|
|||||||
%endif
|
%endif
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Thu Dec 8 2011 Daniel Veillard <veillard@redhat.com> - 0.9.8-1
|
||||||
|
- Add support for QEMU 1.0
|
||||||
|
- Add preliminary PPC cpu driver
|
||||||
|
- Add new API virDomain{Set, Get}BlockIoTune
|
||||||
|
- block_resize: Define the new API
|
||||||
|
- Add a public API to invoke suspend/resume on the host
|
||||||
|
- various improvements for LXC containers
|
||||||
|
- Define keepalive protocol and add virConnectIsAlive API
|
||||||
|
- Add support for STP and VLAN filtering
|
||||||
|
- many improvements and bug fixes
|
||||||
|
|
||||||
* Mon Nov 14 2011 Justin M. Forbes <jforbes@redhat.com> - 0.9.7-3
|
* Mon Nov 14 2011 Justin M. Forbes <jforbes@redhat.com> - 0.9.7-3
|
||||||
- Remove versioned buildreq for yajl as 2.0.x features are not required.
|
- Remove versioned buildreq for yajl as 2.0.x features are not required.
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user