From b62b15355bb9dd98245c3221a0e8bd916cfc6dbc954cf7754452bcabfcaf9451 Mon Sep 17 00:00:00 2001 From: James Fehlig Date: Tue, 18 Jan 2011 22:11:51 +0000 Subject: [PATCH 1/5] Add HAP support to libvirt domain XML OBS-URL: https://build.opensuse.org/package/show/Virtualization/libvirt?expand=0&rev=90 --- 04197350-hap2.patch | 89 ++++++++++++++++++++++++++++++++++++++++ 094c6f4a-hap-fix.patch | 32 +++++++++++++++ 48a5dccd-hap1.patch | 41 ++++++++++++++++++ 79f56c66-hap4.patch | 56 +++++++++++++++++++++++++ af521a01-hap3.patch | 36 ++++++++++++++++ libvirt.changes | 12 ++++++ libvirt.spec | 10 +++++ xen-name-for-devid.patch | 18 ++++---- 8 files changed, 285 insertions(+), 9 deletions(-) create mode 100644 04197350-hap2.patch create mode 100644 094c6f4a-hap-fix.patch create mode 100644 48a5dccd-hap1.patch create mode 100644 79f56c66-hap4.patch create mode 100644 af521a01-hap3.patch diff --git a/04197350-hap2.patch b/04197350-hap2.patch new file mode 100644 index 0000000..8b202d4 --- /dev/null +++ b/04197350-hap2.patch @@ -0,0 +1,89 @@ +commit 041973504f715bcff7de3b17cd258617244b79c4 +Author: Jim Fehlig +Date: Wed Jan 5 15:16:57 2011 -0700 + + Add support for HAP feature to xen drivers + + xen-unstable c/s 16931 introduced a per-domain setting for hvm + guests to enable/disable hardware assisted paging. If disabled, + software techniques such as shadow page tables are used. If enabled, + and the feature exists in underlying hardware, hardware support for + paging is used. + + This provides implementation for mapping HAP setting to/from + domxml/native formats in xen drivers. + +diff --git a/src/xen/xend_internal.c b/src/xen/xend_internal.c +index 6ce0c3f..d3633ee 100644 +--- a/src/xen/xend_internal.c ++++ b/src/xen/xend_internal.c +@@ -2210,6 +2210,8 @@ xenDaemonParseSxpr(virConnectPtr conn, + def->features |= (1 << VIR_DOMAIN_FEATURE_APIC); + if (sexpr_int(root, "domain/image/hvm/pae")) + def->features |= (1 << VIR_DOMAIN_FEATURE_PAE); ++ if (sexpr_int(root, "domain/image/hvm/hap")) ++ def->features |= (1 << VIR_DOMAIN_FEATURE_HAP); + + /* Old XenD only allows localtime here for HVM */ + if (sexpr_int(root, "domain/image/hvm/localtime")) +@@ -5923,6 +5925,8 @@ xenDaemonFormatSxpr(virConnectPtr conn, + virBufferAddLit(&buf, "(apic 1)"); + if (def->features & (1 << VIR_DOMAIN_FEATURE_PAE)) + virBufferAddLit(&buf, "(pae 1)"); ++ if (def->features & (1 << VIR_DOMAIN_FEATURE_HAP)) ++ virBufferAddLit(&buf, "(hap 1)"); + + virBufferAddLit(&buf, "(usb 1)"); + +diff --git a/src/xen/xm_internal.c b/src/xen/xm_internal.c +index 4d6b41b..ec618aa 100644 +--- a/src/xen/xm_internal.c ++++ b/src/xen/xm_internal.c +@@ -830,6 +830,10 @@ xenXMDomainConfigParse(virConnectPtr conn, virConfPtr conf) { + goto cleanup; + else if (val) + def->features |= (1 << VIR_DOMAIN_FEATURE_APIC); ++ if (xenXMConfigGetBool(conf, "hap", &val, 0) < 0) ++ goto cleanup; ++ else if (val) ++ def->features |= (1 << VIR_DOMAIN_FEATURE_HAP); + } + if (xenXMConfigGetBool(conf, "localtime", &vmlocaltime, 0) < 0) + goto cleanup; +@@ -2409,6 +2413,10 @@ virConfPtr xenXMDomainConfigFormat(virConnectPtr conn, + (1 << VIR_DOMAIN_FEATURE_APIC)) ? 1 : 0) < 0) + goto no_memory; + ++ if (xenXMConfigSetInt(conf, "hap", ++ (def->features & ++ (1 << VIR_DOMAIN_FEATURE_HAP)) ? 1 : 0) < 0) ++ goto no_memory; + + if (def->clock.offset == VIR_DOMAIN_CLOCK_OFFSET_LOCALTIME) { + if (def->clock.data.timezone) { +diff --git a/src/xenapi/xenapi_driver.c b/src/xenapi/xenapi_driver.c +index 6fff276..fffa617 100644 +--- a/src/xenapi/xenapi_driver.c ++++ b/src/xenapi/xenapi_driver.c +@@ -1358,6 +1358,8 @@ xenapiDomainDumpXML (virDomainPtr dom, int flags ATTRIBUTE_UNUSED) + defPtr->features = defPtr->features | (1<contents[i].key, "pae")) + defPtr->features = defPtr->features | (1<contents[i].key, "hap")) ++ defPtr->features = defPtr->features | (1<features & (1 << VIR_DOMAIN_FEATURE_PAE)) + allocStringMap(&strings, (char *)"pae", (char *)"true"); ++ if (def->features & (1 << VIR_DOMAIN_FEATURE_HAP)) ++ allocStringMap(&strings, (char *)"hap", (char *)"true"); + } + if (strings != NULL) + (*record)->platform = strings; diff --git a/094c6f4a-hap-fix.patch b/094c6f4a-hap-fix.patch new file mode 100644 index 0000000..70bcf68 --- /dev/null +++ b/094c6f4a-hap-fix.patch @@ -0,0 +1,32 @@ +commit 094c6f4a24165d2d07f64bbd70243b3306a34d5b +Author: Jim Fehlig +Date: Fri Jan 14 11:12:46 2011 -0700 + + Fix 'make check' after commit 04197350 + + I broke 'make check' with commit 04197350 by unconditionally + emitting 'hap=' in xen xm driver. Only emit 'hap=' if + xendConfigVersion >= 3. I've tested sending 'hap=' to a Xen 3.2 + machine without support for hap setting and verified that xend + silently drops the unrecognized setting. + +diff --git a/src/xen/xm_internal.c b/src/xen/xm_internal.c +index ec618aa..bfb6698 100644 +--- a/src/xen/xm_internal.c ++++ b/src/xen/xm_internal.c +@@ -2413,10 +2413,11 @@ virConfPtr xenXMDomainConfigFormat(virConnectPtr conn, + (1 << VIR_DOMAIN_FEATURE_APIC)) ? 1 : 0) < 0) + goto no_memory; + +- if (xenXMConfigSetInt(conf, "hap", +- (def->features & +- (1 << VIR_DOMAIN_FEATURE_HAP)) ? 1 : 0) < 0) +- goto no_memory; ++ if (priv->xendConfigVersion >= 3) ++ if (xenXMConfigSetInt(conf, "hap", ++ (def->features & ++ (1 << VIR_DOMAIN_FEATURE_HAP)) ? 1 : 0) < 0) ++ goto no_memory; + + if (def->clock.offset == VIR_DOMAIN_CLOCK_OFFSET_LOCALTIME) { + if (def->clock.data.timezone) { diff --git a/48a5dccd-hap1.patch b/48a5dccd-hap1.patch new file mode 100644 index 0000000..2127da2 --- /dev/null +++ b/48a5dccd-hap1.patch @@ -0,0 +1,41 @@ +commit 48a5dccda905b5c6e8a02a37c093c42a9ef4e350 +Author: Jim Fehlig +Date: Wed Jan 5 14:56:48 2011 -0700 + + Add HAP to virDomainFeature enum + + Extend the virDomainFeature enumeration to include HAP (hardware + assisted paging) feature. + + Hardware features such as Extended Page Table and Nested Page + Table augment hypervisor software techniques such as shadow + page table. Adding HAP to the virDomainFeature enumeration + allows users to select between hardware and software memory + management mechanisms for their guests. + +diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c +index b4df38c..2c54683 100644 +--- a/src/conf/domain_conf.c ++++ b/src/conf/domain_conf.c +@@ -75,7 +75,8 @@ VIR_ENUM_IMPL(virDomainBoot, VIR_DOMAIN_BOOT_LAST, + VIR_ENUM_IMPL(virDomainFeature, VIR_DOMAIN_FEATURE_LAST, + "acpi", + "apic", +- "pae") ++ "pae", ++ "hap") + + VIR_ENUM_IMPL(virDomainLifecycle, VIR_DOMAIN_LIFECYCLE_LAST, + "destroy", +diff --git a/src/conf/domain_conf.h b/src/conf/domain_conf.h +index a459a22..6a8ec64 100644 +--- a/src/conf/domain_conf.h ++++ b/src/conf/domain_conf.h +@@ -730,6 +730,7 @@ enum virDomainFeature { + VIR_DOMAIN_FEATURE_ACPI, + VIR_DOMAIN_FEATURE_APIC, + VIR_DOMAIN_FEATURE_PAE, ++ VIR_DOMAIN_FEATURE_HAP, + + VIR_DOMAIN_FEATURE_LAST + }; diff --git a/79f56c66-hap4.patch b/79f56c66-hap4.patch new file mode 100644 index 0000000..6f47596 --- /dev/null +++ b/79f56c66-hap4.patch @@ -0,0 +1,56 @@ +commit 79f56c669f0f4d554cec3137d0a6aadf7c5f2bec +Author: Jim Fehlig +Date: Wed Jan 5 16:07:54 2011 -0700 + + Document HAP domain feature + + Add HAP feature to schema and documentation. + +Index: libvirt-0.8.7/docs/formatdomain.html.in +=================================================================== +--- libvirt-0.8.7.orig/docs/formatdomain.html.in ++++ libvirt-0.8.7/docs/formatdomain.html.in +@@ -437,6 +437,7 @@ + <pae/> + <acpi/> + <apic/> ++ <hap/> + </features> + ... + +@@ -456,6 +457,10 @@ +
ACPI is useful for power management, for example, with + KVM guests it is required for graceful shutdown to work. +
++
hap
++
Enable use of Hardware Assisted Paging if available in ++ the hardware. ++
+ + +

Time keeping

+Index: libvirt-0.8.7/docs/schemas/domain.rng +=================================================================== +--- libvirt-0.8.7.orig/docs/schemas/domain.rng ++++ libvirt-0.8.7/docs/schemas/domain.rng +@@ -1741,7 +1741,7 @@ + + + + + +@@ -1762,6 +1762,11 @@ + + + ++ ++ ++ ++ ++ + + + diff --git a/af521a01-hap3.patch b/af521a01-hap3.patch new file mode 100644 index 0000000..740f4fd --- /dev/null +++ b/af521a01-hap3.patch @@ -0,0 +1,36 @@ +commit af521a0182a0d6867796c65b1b0cd83fb14032a9 +Author: Jim Fehlig +Date: Wed Jan 5 15:20:01 2011 -0700 + + Add HAP to xen hypervisor capabilities + + xen-unstable c/s 16931 introduced a per-domain setting for hvm + guests to enable/disable hardware assisted paging. If disabled, + software techniques such as shadow page tables are used. If enabled, + and the feature exists in underlying hardware, hardware support for + paging is used. + + Xen does not provide a mechanism to discover the HAP capability, so + we advertise its availability for hvm guests on Xen >= 3.3. + +diff --git a/src/xen/xen_hypervisor.c b/src/xen/xen_hypervisor.c +index ead8ee9..229ef3d 100644 +--- a/src/xen/xen_hypervisor.c ++++ b/src/xen/xen_hypervisor.c +@@ -2321,6 +2321,16 @@ xenHypervisorBuildCapabilities(virConnectPtr conn, + hv_minor > 0 ? + 0 : 1)) == NULL) + goto no_memory; ++ ++ /* Xen 3.3.x and beyond supports enabling/disabling ++ * hardware assisted paging. Default is off. ++ */ ++ if ((hv_major == 3 && hv_minor >= 3) || (hv_major > 3)) ++ if (virCapabilitiesAddGuestFeature(guest, ++ "hap", ++ 0, ++ 1) == NULL) ++ goto no_memory; + } + } + diff --git a/libvirt.changes b/libvirt.changes index ded6ac3..200b490 100644 --- a/libvirt.changes +++ b/libvirt.changes @@ -1,3 +1,15 @@ +------------------------------------------------------------------- +Tue Jan 18 14:57:18 MST 2011 - jfehlig@novell.com + +- Add support for specifying Hardware Assisted Paging (HAP) in + libvirt domain XML. + 48a5dccd-hap1.patch + 04197350-hap2.patch + af521a01-hap3.patch + 79f56c66-hap4.patch + 094c6f4a-hap-fix.patch + bnc#659665 + ------------------------------------------------------------------- Tue Jan 18 09:25:18 MST 2011 - jfehlig@novell.com diff --git a/libvirt.spec b/libvirt.spec index c8d016b..5b2d7e2 100644 --- a/libvirt.spec +++ b/libvirt.spec @@ -173,6 +173,11 @@ Source0: %{name}-%{version}.tar.bz2 Source1: libvirtd.init # Upstream patches Patch0: a43c7338-dnsmasq-hostfile-fix.patch +Patch1: 48a5dccd-hap1.patch +Patch2: 04197350-hap2.patch +Patch3: af521a01-hap3.patch +Patch4: 79f56c66-hap4.patch +Patch5: 094c6f4a-hap-fix.patch # Need to go upstream Patch100: xen-name-for-devid.patch Patch102: clone.patch @@ -286,6 +291,11 @@ Authors: %prep %setup -q %patch0 -p1 +%patch1 -p1 +%patch2 -p1 +%patch3 -p1 +%patch4 -p1 +%patch5 -p1 %patch100 -p1 %patch102 %patch103 -p1 diff --git a/xen-name-for-devid.patch b/xen-name-for-devid.patch index 5b04ade..c66707f 100644 --- a/xen-name-for-devid.patch +++ b/xen-name-for-devid.patch @@ -13,10 +13,10 @@ Date: Wed Jan 27 16:11:41 2010 -0700 This approach allows removing a disk when domain is inactive. We obviously can't search xenstore when the domain is inactive. -Index: libvirt-0.8.6/src/xen/xend_internal.c +Index: libvirt-0.8.7/src/xen/xend_internal.c =================================================================== ---- libvirt-0.8.6.orig/src/xen/xend_internal.c -+++ libvirt-0.8.6/src/xen/xend_internal.c +--- libvirt-0.8.7.orig/src/xen/xend_internal.c ++++ libvirt-0.8.7/src/xen/xend_internal.c @@ -89,6 +89,7 @@ xenDaemonFormatSxprOnePCI(virDomainHostd static int @@ -25,7 +25,7 @@ Index: libvirt-0.8.6/src/xen/xend_internal.c virDomainDeviceDefPtr dev, char *class, char *ref, -@@ -4052,7 +4053,7 @@ xenDaemonAttachDeviceFlags(virDomainPtr +@@ -4054,7 +4055,7 @@ xenDaemonAttachDeviceFlags(virDomainPtr sexpr = virBufferContentAndReset(&buf); @@ -34,7 +34,7 @@ Index: libvirt-0.8.6/src/xen/xend_internal.c /* device doesn't exist, define it */ ret = xend_op(domain->conn, domain->name, "op", "device_create", "config", sexpr, NULL); -@@ -4170,7 +4171,7 @@ xenDaemonUpdateDeviceFlags(virDomainPtr +@@ -4172,7 +4173,7 @@ xenDaemonUpdateDeviceFlags(virDomainPtr sexpr = virBufferContentAndReset(&buf); @@ -43,7 +43,7 @@ Index: libvirt-0.8.6/src/xen/xend_internal.c virXendError(VIR_ERR_OPERATION_INVALID, "%s", _("requested device does not exist")); goto cleanup; -@@ -4263,7 +4264,7 @@ xenDaemonDetachDeviceFlags(virDomainPtr +@@ -4265,7 +4266,7 @@ xenDaemonDetachDeviceFlags(virDomainPtr def, xml, VIR_DOMAIN_XML_INACTIVE))) goto cleanup; @@ -52,7 +52,7 @@ Index: libvirt-0.8.6/src/xen/xend_internal.c goto cleanup; if (dev->type == VIR_DOMAIN_DEVICE_HOSTDEV) { -@@ -6033,6 +6034,7 @@ error: +@@ -6037,6 +6038,7 @@ error: */ static int virDomainXMLDevID(virDomainPtr domain, @@ -60,7 +60,7 @@ Index: libvirt-0.8.6/src/xen/xend_internal.c virDomainDeviceDefPtr dev, char *class, char *ref, -@@ -6041,8 +6043,12 @@ virDomainXMLDevID(virDomainPtr domain, +@@ -6045,8 +6047,12 @@ virDomainXMLDevID(virDomainPtr domain, xenUnifiedPrivatePtr priv = domain->conn->privateData; char *xref; char *tmp; @@ -73,7 +73,7 @@ Index: libvirt-0.8.6/src/xen/xend_internal.c if (dev->data.disk->driverName && STREQ(dev->data.disk->driverName, "tap")) strcpy(class, "tap"); -@@ -6052,19 +6058,21 @@ virDomainXMLDevID(virDomainPtr domain, +@@ -6056,19 +6062,21 @@ virDomainXMLDevID(virDomainPtr domain, else strcpy(class, "vbd"); From 40a87d6549dea5fbf0441b7b14c0c164a2447300bd055ac06c4f4476ba04d63d Mon Sep 17 00:00:00 2001 From: James Fehlig Date: Fri, 21 Jan 2011 18:05:12 +0000 Subject: [PATCH 2/5] Retry JSON monitor cont cmd on MigrationExpected error OBS-URL: https://build.opensuse.org/package/show/Virtualization/libvirt?expand=0&rev=91 --- 4301b95a-json-cont-cmd.patch | 54 ++++++++++++++++++++++++++++++++++++ libvirt.changes | 6 ++++ libvirt.spec | 2 ++ 3 files changed, 62 insertions(+) create mode 100644 4301b95a-json-cont-cmd.patch diff --git a/4301b95a-json-cont-cmd.patch b/4301b95a-json-cont-cmd.patch new file mode 100644 index 0000000..002929a --- /dev/null +++ b/4301b95a-json-cont-cmd.patch @@ -0,0 +1,54 @@ +commit 4301b95af7f554700de8e69ecf3f3bb3148b1d44 +Author: Jim Fehlig +Date: Thu Jan 13 12:52:23 2011 -0700 + + [v2] qemu: Retry JSON monitor cont cmd on MigrationExpected error + + When restoring a saved qemu instance via JSON monitor, the vm is + left in a paused state. Turns out the 'cont' cmd was failing with + "MigrationExpected" error class and "An incoming migration is + expected before this command can be executed" error description + due to migration (restore) not yet complete. + + Detect if 'cont' cmd fails with "MigrationExpecte" error class and + retry 'cont' cmd. + + V2: Fix potential double-free noted by Laine Stump + +diff --git a/src/qemu/qemu_monitor_json.c b/src/qemu/qemu_monitor_json.c +index 2e159c7..ca06e7e 100644 +--- a/src/qemu/qemu_monitor_json.c ++++ b/src/qemu/qemu_monitor_json.c +@@ -702,13 +702,29 @@ qemuMonitorJSONStartCPUs(qemuMonitorPtr mon, + int ret; + virJSONValuePtr cmd = qemuMonitorJSONMakeCommand("cont", NULL); + virJSONValuePtr reply = NULL; ++ int i = 0, timeout = 3; + if (!cmd) + return -1; + +- ret = qemuMonitorJSONCommand(mon, cmd, &reply); ++ do { ++ ret = qemuMonitorJSONCommand(mon, cmd, &reply); + +- if (ret == 0) +- ret = qemuMonitorJSONCheckError(cmd, reply); ++ if (ret != 0) ++ break; ++ ++ /* If no error, we're done */ ++ if ((ret = qemuMonitorJSONCheckError(cmd, reply)) == 0) ++ break; ++ ++ /* If error class is not MigrationExpected, we're done. ++ * Otherwise try 'cont' cmd again */ ++ if (!qemuMonitorJSONHasError(reply, "MigrationExpected")) ++ break; ++ ++ virJSONValueFree(reply); ++ reply = NULL; ++ usleep(250000); ++ } while (++i <= timeout); + + virJSONValueFree(cmd); + virJSONValueFree(reply); diff --git a/libvirt.changes b/libvirt.changes index 200b490..4fc1568 100644 --- a/libvirt.changes +++ b/libvirt.changes @@ -1,3 +1,9 @@ +------------------------------------------------------------------- +Fri Jan 21 11:04:07 MST 2011 - jfehlig@novell.com + +- Retry JSON monitor 'cont' cmd on MigrationExpected error + 4301b95a-json-cont-cmd.patch + ------------------------------------------------------------------- Tue Jan 18 14:57:18 MST 2011 - jfehlig@novell.com diff --git a/libvirt.spec b/libvirt.spec index 5b2d7e2..4f62b26 100644 --- a/libvirt.spec +++ b/libvirt.spec @@ -178,6 +178,7 @@ Patch2: 04197350-hap2.patch Patch3: af521a01-hap3.patch Patch4: 79f56c66-hap4.patch Patch5: 094c6f4a-hap-fix.patch +Patch6: 4301b95a-json-cont-cmd.patch # Need to go upstream Patch100: xen-name-for-devid.patch Patch102: clone.patch @@ -296,6 +297,7 @@ Authors: %patch3 -p1 %patch4 -p1 %patch5 -p1 +%patch6 -p1 %patch100 -p1 %patch102 %patch103 -p1 From b6ee53c464c0f74fe2bddebb4445052bdb331144bf734104443cbce5d50b6284 Mon Sep 17 00:00:00 2001 From: OBS User buildservice-autocommit Date: Tue, 25 Jan 2011 09:10:48 +0000 Subject: [PATCH 3/5] Updating link to change in openSUSE:Factory/libvirt revision 67.0 OBS-URL: https://build.opensuse.org/package/show/Virtualization/libvirt?expand=0&rev=c07c5c513d7714e455bd4505be8fd86e --- libvirt.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libvirt.spec b/libvirt.spec index 4f62b26..8828dff 100644 --- a/libvirt.spec +++ b/libvirt.spec @@ -145,7 +145,7 @@ License: LGPLv2.1+ Group: Development/Libraries/C and C++ AutoReqProv: yes Version: 0.8.7 -Release: 1 +Release: 2 Summary: A C toolkit to interract with the virtualization capabilities of Linux # The client side, i.e. shared libs and virsh are in a subpackage Requires: %{name}-client = %{version}-%{release} From 636e433b41e773b53bb56242fcd9c3a4ed76872ba9df8697a140724eaeb49347 Mon Sep 17 00:00:00 2001 From: James Fehlig Date: Mon, 31 Jan 2011 16:19:14 +0000 Subject: [PATCH 4/5] Fix broken dependency on libyajl -> should be libyajl1 OBS-URL: https://build.opensuse.org/package/show/Virtualization/libvirt?expand=0&rev=93 --- libvirt.changes | 7 +++++++ libvirt.spec | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/libvirt.changes b/libvirt.changes index 4fc1568..325c4d1 100644 --- a/libvirt.changes +++ b/libvirt.changes @@ -1,3 +1,10 @@ +------------------------------------------------------------------- +Mon Jan 31 09:14:37 MST 2011 - jfehlig@novell.com + +- Fix broken dependency on libyajl -> should be libyajl1 + libvirt.spec + bnc#668225 + ------------------------------------------------------------------- Fri Jan 21 11:04:07 MST 2011 - jfehlig@novell.com diff --git a/libvirt.spec b/libvirt.spec index 8828dff..309e180 100644 --- a/libvirt.spec +++ b/libvirt.spec @@ -159,7 +159,7 @@ Recommends: dnsmasq Recommends: open-iscsi Recommends: nfs-client %if %{with_yajl} -Requires: libyajl +Requires: libyajl1 %endif %if %{with_hal} Requires: hal From 4aba4d2cc54d293a3e66d5c95e00fcf9111681e90ff2b803b5ce8ced739d5fe3 Mon Sep 17 00:00:00 2001 From: James Fehlig Date: Mon, 31 Jan 2011 16:21:55 +0000 Subject: [PATCH 5/5] Remove explicit dependency on libyajl OBS-URL: https://build.opensuse.org/package/show/Virtualization/libvirt?expand=0&rev=94 --- libvirt.changes | 2 +- libvirt.spec | 3 --- 2 files changed, 1 insertion(+), 4 deletions(-) diff --git a/libvirt.changes b/libvirt.changes index 325c4d1..61f9062 100644 --- a/libvirt.changes +++ b/libvirt.changes @@ -1,7 +1,7 @@ ------------------------------------------------------------------- Mon Jan 31 09:14:37 MST 2011 - jfehlig@novell.com -- Fix broken dependency on libyajl -> should be libyajl1 +- Remove explicit dependency on libyajl libvirt.spec bnc#668225 diff --git a/libvirt.spec b/libvirt.spec index 309e180..7ef59d7 100644 --- a/libvirt.spec +++ b/libvirt.spec @@ -158,9 +158,6 @@ Recommends: logrotate Recommends: dnsmasq Recommends: open-iscsi Recommends: nfs-client -%if %{with_yajl} -Requires: libyajl1 -%endif %if %{with_hal} Requires: hal %endif