diff --git a/0001-virsh-Fix-regression-of-vol-resize.patch b/0001-virsh-Fix-regression-of-vol-resize.patch deleted file mode 100644 index 3453fc8..0000000 --- a/0001-virsh-Fix-regression-of-vol-resize.patch +++ /dev/null @@ -1,27 +0,0 @@ -From 729bd0a37adbb20472500ab090c99ac684697fa0 Mon Sep 17 00:00:00 2001 -From: Osier Yang -Date: Fri, 24 May 2013 11:59:14 +0800 -Subject: [PATCH] virsh: Fix regression of vol-resize - -Introduced by commit 1daa4ba33acf. vshCommandOptStringReq returns -0 on *success* or the option is not required && not present, both -are right result. Error out when returning 0 is not correct. -the caller, it doesn't have to check wether it -(cherry picked from commit 2a3a725c33aba2046443d33eb473eb54517f61c8) ---- - tools/virsh-volume.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/tools/virsh-volume.c b/tools/virsh-volume.c -index 728bc23..a9abdc1 100644 ---- a/tools/virsh-volume.c -+++ b/tools/virsh-volume.c -@@ -1075,7 +1075,7 @@ cmdVolResize(vshControl *ctl, const vshCmd *cmd) - if (!(vol = vshCommandOptVol(ctl, cmd, "vol", "pool", NULL))) - return false; - -- if (vshCommandOptStringReq(ctl, cmd, "capacity", &capacityStr) <= 0) -+ if (vshCommandOptStringReq(ctl, cmd, "capacity", &capacityStr) < 0) - goto cleanup; - virSkipSpaces(&capacityStr); - if (*capacityStr == '-') { diff --git a/0002-qemu-Fix-checking-of-ABI-stability-when-restoring-ex.patch b/0002-qemu-Fix-checking-of-ABI-stability-when-restoring-ex.patch deleted file mode 100644 index ec3350e..0000000 --- a/0002-qemu-Fix-checking-of-ABI-stability-when-restoring-ex.patch +++ /dev/null @@ -1,62 +0,0 @@ -From 51a1506b2944e5a2c905d0acc3fa68f829c3bb95 Mon Sep 17 00:00:00 2001 -From: Peter Krempa -Date: Mon, 16 Sep 2013 13:37:34 +0200 -Subject: [PATCH] qemu: Fix checking of ABI stability when restoring external - checkpoints - -External checkpoints have a bug in the implementation where they use the -normal definition instead of the "migratable" one. This causes errors -when the snapshot is being reverted using the workaround method via -qemuDomainRestoreFlags() with a custom XML. This issue was introduced -when commit 07966f6a8b5ccb5bb4c716b25deb8ba2e572cc67 changed the code to -compare "migratable" XMLs from the user as we should have used -migratable in the image too. - -This patch adds a compatibility layer, so that fixing the snapshot code -won't make existing snapshots fail to load. - -Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1008340 -(cherry picked from commit 59898a88ce8431bd3ea249b8789edc2ef9985827) ---- - src/qemu/qemu_driver.c | 23 ++++++++++++++++++++--- - 1 file changed, 20 insertions(+), 3 deletions(-) - -diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c -index 3db3447..3ab7280 100644 ---- a/src/qemu/qemu_driver.c -+++ b/src/qemu/qemu_driver.c -@@ -4696,14 +4696,31 @@ qemuDomainSaveImageOpen(virQEMUDriverPtr driver, - goto error; - - newdef = qemuDomainDefCopy(driver, def2, VIR_DOMAIN_XML_MIGRATABLE); -- virDomainDefFree(def2); -- if (!newdef) -+ if (!newdef) { -+ virDomainDefFree(def2); - goto error; -+ } - - if (!virDomainDefCheckABIStability(def, newdef)) { - virDomainDefFree(newdef); -- goto error; -+ virResetLastError(); -+ -+ /* Due to a bug in older version of external snapshot creation -+ * code, the XML saved in the save image was not a migratable -+ * XML. To ensure backwards compatibility with the change of the -+ * saved XML type, we need to check the ABI compatibility against -+ * the user provided XML if the check against the migratable XML -+ * fails. Snapshots created prior to v1.1.3 have this issue. */ -+ if (!virDomainDefCheckABIStability(def, def2)) { -+ virDomainDefFree(def2); -+ goto error; -+ } -+ -+ /* use the user provided XML */ -+ newdef = def2; -+ def2 = NULL; - } -+ - virDomainDefFree(def); - def = newdef; - } diff --git a/0003-qemu-Use-migratable-XML-definition-when-doing-extern.patch b/0003-qemu-Use-migratable-XML-definition-when-doing-extern.patch deleted file mode 100644 index 62818eb..0000000 --- a/0003-qemu-Use-migratable-XML-definition-when-doing-extern.patch +++ /dev/null @@ -1,35 +0,0 @@ -From eaf803e7f0a6ec66aef24157488696a3b9d3a890 Mon Sep 17 00:00:00 2001 -From: Peter Krempa -Date: Mon, 16 Sep 2013 13:40:42 +0200 -Subject: [PATCH] qemu: Use "migratable" XML definition when doing external - checkpoints - -In the original implementation of external checkpoints I've mistakenly -used the live definition to be stored in the save image. The normal -approach is to use the "migratable" definition. This was discovered when -commit 07966f6a8b5ccb5bb4c716b25deb8ba2e572cc67 changed the behavior to -use a converted XML from the user to do the compatibility check to fix -problem when using the regular machine saving. - -As the previous patch added a compatibility layer, we can now change the -type of the XML in the image. - -Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1008340 -(cherry picked from commit 1b7bfa65e36996fc3a204452d2a844ab9f4b52b3) ---- - src/qemu/qemu_driver.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c -index 3ab7280..bdb7adb 100644 ---- a/src/qemu/qemu_driver.c -+++ b/src/qemu/qemu_driver.c -@@ -11211,7 +11211,7 @@ qemuDomainSnapshotCreateActiveExternal(virConnectPtr conn, - JOB_MASK(QEMU_JOB_SUSPEND) | - JOB_MASK(QEMU_JOB_MIGRATION_OP)); - -- if (!(xml = qemuDomainDefFormatLive(driver, vm->def, true, false))) -+ if (!(xml = qemuDomainDefFormatLive(driver, vm->def, true, true))) - goto endjob; - - if ((ret = qemuDomainSaveMemory(driver, vm, snap->def->file, diff --git a/0004-Remove-virConnectPtr-arg-from-virNWFilterDefParse.patch b/0004-Remove-virConnectPtr-arg-from-virNWFilterDefParse.patch deleted file mode 100644 index 42bf49c..0000000 --- a/0004-Remove-virConnectPtr-arg-from-virNWFilterDefParse.patch +++ /dev/null @@ -1,105 +0,0 @@ -From f6b6a016a93218cb3ed881faca9df6a27c859bcf Mon Sep 17 00:00:00 2001 -From: "Daniel P. Berrange" -Date: Thu, 3 Oct 2013 14:06:58 +0100 -Subject: [PATCH] Remove virConnectPtr arg from virNWFilterDefParse* - -None of the virNWFilterDefParse* methods require a virConnectPtr -arg, so just drop it - -Signed-off-by: Daniel P. Berrange ---- - src/conf/nwfilter_conf.c | 15 ++++++--------- - src/conf/nwfilter_conf.h | 6 ++---- - src/nwfilter/nwfilter_driver.c | 2 +- - tests/nwfilterxml2xmltest.c | 2 +- - 4 files changed, 10 insertions(+), 15 deletions(-) - -diff --git a/src/conf/nwfilter_conf.c b/src/conf/nwfilter_conf.c -index b61010d..5559c09 100644 ---- a/src/conf/nwfilter_conf.c -+++ b/src/conf/nwfilter_conf.c -@@ -2651,8 +2651,7 @@ cleanup: - - - static virNWFilterDefPtr --virNWFilterDefParse(virConnectPtr conn ATTRIBUTE_UNUSED, -- const char *xmlStr, -+virNWFilterDefParse(const char *xmlStr, - const char *filename) { - virNWFilterDefPtr def = NULL; - xmlDocPtr xml; -@@ -2667,18 +2666,16 @@ virNWFilterDefParse(virConnectPtr conn ATTRIBUTE_UNUSED, - - - virNWFilterDefPtr --virNWFilterDefParseString(virConnectPtr conn, -- const char *xmlStr) -+virNWFilterDefParseString(const char *xmlStr) - { -- return virNWFilterDefParse(conn, xmlStr, NULL); -+ return virNWFilterDefParse(xmlStr, NULL); - } - - - virNWFilterDefPtr --virNWFilterDefParseFile(virConnectPtr conn, -- const char *filename) -+virNWFilterDefParseFile(const char *filename) - { -- return virNWFilterDefParse(conn, NULL, filename); -+ return virNWFilterDefParse(NULL, filename); - } - - -@@ -3076,7 +3073,7 @@ virNWFilterObjLoad(virConnectPtr conn, - virNWFilterDefPtr def; - virNWFilterObjPtr nwfilter; - -- if (!(def = virNWFilterDefParseFile(conn, path))) { -+ if (!(def = virNWFilterDefParseFile(path))) { - return NULL; - } - -diff --git a/src/conf/nwfilter_conf.h b/src/conf/nwfilter_conf.h -index 48998ec..f7d21a1 100644 ---- a/src/conf/nwfilter_conf.h -+++ b/src/conf/nwfilter_conf.h -@@ -714,10 +714,8 @@ int virNWFilterLoadAllConfigs(virConnectPtr conn, - char *virNWFilterConfigFile(const char *dir, - const char *name); - --virNWFilterDefPtr virNWFilterDefParseString(virConnectPtr conn, -- const char *xml); --virNWFilterDefPtr virNWFilterDefParseFile(virConnectPtr conn, -- const char *filename); -+virNWFilterDefPtr virNWFilterDefParseString(const char *xml); -+virNWFilterDefPtr virNWFilterDefParseFile(const char *filename); - - void virNWFilterObjLock(virNWFilterObjPtr obj); - void virNWFilterObjUnlock(virNWFilterObjPtr obj); -diff --git a/src/nwfilter/nwfilter_driver.c b/src/nwfilter/nwfilter_driver.c -index 8f73d3b..db7d9cb 100644 ---- a/src/nwfilter/nwfilter_driver.c -+++ b/src/nwfilter/nwfilter_driver.c -@@ -534,7 +534,7 @@ nwfilterDefineXML(virConnectPtr conn, - nwfilterDriverLock(driver); - virNWFilterCallbackDriversLock(); - -- if (!(def = virNWFilterDefParseString(conn, xml))) -+ if (!(def = virNWFilterDefParseString(xml))) - goto cleanup; - - if (!(nwfilter = virNWFilterObjAssignDef(conn, &driver->nwfilters, def))) -diff --git a/tests/nwfilterxml2xmltest.c b/tests/nwfilterxml2xmltest.c -index a215bf8..44088b2 100644 ---- a/tests/nwfilterxml2xmltest.c -+++ b/tests/nwfilterxml2xmltest.c -@@ -33,7 +33,7 @@ testCompareXMLToXMLFiles(const char *inxml, const char *outxml, - - virResetLastError(); - -- if (!(dev = virNWFilterDefParseString(NULL, inXmlData))) -+ if (!(dev = virNWFilterDefParseString(inXmlData))) - goto fail; - - if (!!virGetLastError() != expect_error) diff --git a/0005-Don-t-pass-virConnectPtr-in-nwfilter-struct-domUpdat.patch b/0005-Don-t-pass-virConnectPtr-in-nwfilter-struct-domUpdat.patch deleted file mode 100644 index 46171d8..0000000 --- a/0005-Don-t-pass-virConnectPtr-in-nwfilter-struct-domUpdat.patch +++ /dev/null @@ -1,355 +0,0 @@ -From c43c0de0cd294168151ef9d2c227bc7d85b43889 Mon Sep 17 00:00:00 2001 -From: "Daniel P. Berrange" -Date: Thu, 3 Oct 2013 14:06:59 +0100 -Subject: [PATCH] Don't pass virConnectPtr in nwfilter 'struct - domUpdateCBStruct' - -The nwfilter driver only needs a reference to its private -state object, not a full virConnectPtr. Update the domUpdateCBStruct -struct to have a 'void *opaque' field instead of a virConnectPtr. - -Signed-off-by: Daniel P. Berrange ---- - src/conf/nwfilter_conf.c | 14 +++++++++++--- - src/conf/nwfilter_conf.h | 4 ++-- - src/nwfilter/nwfilter_dhcpsnoop.c | 12 ++++++------ - src/nwfilter/nwfilter_driver.c | 5 +++-- - src/nwfilter/nwfilter_gentech_driver.c | 32 ++++++++++++++++---------------- - src/nwfilter/nwfilter_gentech_driver.h | 10 +++++----- - src/nwfilter/nwfilter_learnipaddr.c | 6 +++--- - 7 files changed, 46 insertions(+), 37 deletions(-) - -diff --git a/src/conf/nwfilter_conf.c b/src/conf/nwfilter_conf.c -index 5559c09..9348c2b 100644 ---- a/src/conf/nwfilter_conf.c -+++ b/src/conf/nwfilter_conf.c -@@ -2867,6 +2867,7 @@ virNWFilterCallbackDriversUnlock(void) - - - static virDomainObjListIterator virNWFilterDomainFWUpdateCB; -+static void *virNWFilterDomainFWUpdateOpaque; - - /** - * virNWFilterInstFiltersOnAllVMs: -@@ -2878,7 +2879,7 @@ virNWFilterInstFiltersOnAllVMs(virConnectPtr conn) - { - int i; - struct domUpdateCBStruct cb = { -- .conn = conn, -+ .opaque = virNWFilterDomainFWUpdateOpaque, - .step = STEP_APPLY_CURRENT, - .skipInterfaces = NULL, /* not needed */ - }; -@@ -2897,7 +2898,7 @@ virNWFilterTriggerVMFilterRebuild(virConnectPtr conn) - int i; - int ret = 0; - struct domUpdateCBStruct cb = { -- .conn = conn, -+ .opaque = virNWFilterDomainFWUpdateOpaque, - .step = STEP_APPLY_NEW, - .skipInterfaces = virHashCreate(0, NULL), - }; -@@ -3500,9 +3501,14 @@ char *virNWFilterConfigFile(const char *dir, - } - - --int virNWFilterConfLayerInit(virDomainObjListIterator domUpdateCB) -+int virNWFilterConfLayerInit(virDomainObjListIterator domUpdateCB, -+ void *opaque) - { -+ if (initialized) -+ return -1; -+ - virNWFilterDomainFWUpdateCB = domUpdateCB; -+ virNWFilterDomainFWUpdateOpaque = opaque; - - initialized = true; - -@@ -3521,6 +3527,8 @@ void virNWFilterConfLayerShutdown(void) - virMutexDestroy(&updateMutex); - - initialized = false; -+ virNWFilterDomainFWUpdateOpaque = NULL; -+ virNWFilterDomainFWUpdateCB = NULL; - } - - -diff --git a/src/conf/nwfilter_conf.h b/src/conf/nwfilter_conf.h -index f7d21a1..ea90fbd 100644 ---- a/src/conf/nwfilter_conf.h -+++ b/src/conf/nwfilter_conf.h -@@ -587,7 +587,7 @@ enum UpdateStep { - }; - - struct domUpdateCBStruct { -- virConnectPtr conn; -+ void *opaque; - enum UpdateStep step; - virHashTablePtr skipInterfaces; - }; -@@ -723,7 +723,7 @@ void virNWFilterObjUnlock(virNWFilterObjPtr obj); - void virNWFilterLockFilterUpdates(void); - void virNWFilterUnlockFilterUpdates(void); - --int virNWFilterConfLayerInit(virDomainObjListIterator domUpdateCB); -+int virNWFilterConfLayerInit(virDomainObjListIterator domUpdateCB, void *opaque); - void virNWFilterConfLayerShutdown(void); - - int virNWFilterInstFiltersOnAllVMs(virConnectPtr conn); -diff --git a/src/nwfilter/nwfilter_dhcpsnoop.c b/src/nwfilter/nwfilter_dhcpsnoop.c -index 5012b14..a2a69a2 100644 ---- a/src/nwfilter/nwfilter_dhcpsnoop.c -+++ b/src/nwfilter/nwfilter_dhcpsnoop.c -@@ -481,15 +481,15 @@ virNWFilterSnoopIPLeaseInstallRule(virNWFilterSnoopIPLeasePtr ipl, - /* instantiate the filters */ - - if (req->ifname) -- rc = virNWFilterInstantiateFilterLate(NULL, -+ rc = virNWFilterInstantiateFilterLate(req->driver, -+ NULL, - req->ifname, - req->ifindex, - req->linkdev, - req->nettype, - &req->macaddr, - req->filtername, -- req->vars, -- req->driver); -+ req->vars); - - exit_snooprequnlock: - virNWFilterSnoopReqUnlock(req); -@@ -871,15 +871,15 @@ virNWFilterSnoopReqLeaseDel(virNWFilterSnoopReqPtr req, - goto skip_instantiate; - - if (ipAddrLeft) { -- ret = virNWFilterInstantiateFilterLate(NULL, -+ ret = virNWFilterInstantiateFilterLate(req->driver, -+ NULL, - req->ifname, - req->ifindex, - req->linkdev, - req->nettype, - &req->macaddr, - req->filtername, -- req->vars, -- req->driver); -+ req->vars); - } else { - const virNWFilterVarValuePtr dhcpsrvrs = - virHashLookup(req->vars->hashTable, NWFILTER_VARNAME_DHCPSERVER); -diff --git a/src/nwfilter/nwfilter_driver.c b/src/nwfilter/nwfilter_driver.c -index db7d9cb..d69721c 100644 ---- a/src/nwfilter/nwfilter_driver.c -+++ b/src/nwfilter/nwfilter_driver.c -@@ -201,7 +201,8 @@ nwfilterStateInitialize(bool privileged, - - virNWFilterTechDriversInit(privileged); - -- if (virNWFilterConfLayerInit(virNWFilterDomainFWUpdateCB) < 0) -+ if (virNWFilterConfLayerInit(virNWFilterDomainFWUpdateCB, -+ driverState) < 0) - goto err_techdrivers_shutdown; - - /* -@@ -640,7 +641,7 @@ nwfilterInstantiateFilter(virConnectPtr conn, - const unsigned char *vmuuid, - virDomainNetDefPtr net) - { -- return virNWFilterInstantiateFilter(conn, vmuuid, net); -+ return virNWFilterInstantiateFilter(conn->nwfilterPrivateData, vmuuid, net); - } - - -diff --git a/src/nwfilter/nwfilter_gentech_driver.c b/src/nwfilter/nwfilter_gentech_driver.c -index 958f47a..5323e45 100644 ---- a/src/nwfilter/nwfilter_gentech_driver.c -+++ b/src/nwfilter/nwfilter_gentech_driver.c -@@ -812,7 +812,8 @@ err_unresolvable_vars: - * Call this function while holding the NWFilter filter update lock - */ - static int --__virNWFilterInstantiateFilter(const unsigned char *vmuuid, -+__virNWFilterInstantiateFilter(virNWFilterDriverStatePtr driver, -+ const unsigned char *vmuuid, - bool teardownOld, - const char *ifname, - int ifindex, -@@ -822,7 +823,6 @@ __virNWFilterInstantiateFilter(const unsigned char *vmuuid, - const char *filtername, - virNWFilterHashTablePtr filterparams, - enum instCase useNewFilter, -- virNWFilterDriverStatePtr driver, - bool forceWithPendingReq, - bool *foundNewFilter) - { -@@ -935,7 +935,7 @@ err_exit: - - - static int --_virNWFilterInstantiateFilter(virConnectPtr conn, -+_virNWFilterInstantiateFilter(virNWFilterDriverStatePtr driver, - const unsigned char *vmuuid, - const virDomainNetDefPtr net, - bool teardownOld, -@@ -962,7 +962,8 @@ _virNWFilterInstantiateFilter(virConnectPtr conn, - goto cleanup; - } - -- rc = __virNWFilterInstantiateFilter(vmuuid, -+ rc = __virNWFilterInstantiateFilter(driver, -+ vmuuid, - teardownOld, - net->ifname, - ifindex, -@@ -972,7 +973,6 @@ _virNWFilterInstantiateFilter(virConnectPtr conn, - net->filter, - net->filterparams, - useNewFilter, -- conn->nwfilterPrivateData, - false, - foundNewFilter); - -@@ -984,22 +984,23 @@ cleanup: - - - int --virNWFilterInstantiateFilterLate(const unsigned char *vmuuid, -+virNWFilterInstantiateFilterLate(virNWFilterDriverStatePtr driver, -+ const unsigned char *vmuuid, - const char *ifname, - int ifindex, - const char *linkdev, - enum virDomainNetType nettype, - const virMacAddrPtr macaddr, - const char *filtername, -- virNWFilterHashTablePtr filterparams, -- virNWFilterDriverStatePtr driver) -+ virNWFilterHashTablePtr filterparams) - { - int rc; - bool foundNewFilter = false; - - virNWFilterLockFilterUpdates(); - -- rc = __virNWFilterInstantiateFilter(vmuuid, -+ rc = __virNWFilterInstantiateFilter(driver, -+ vmuuid, - true, - ifname, - ifindex, -@@ -1009,7 +1010,6 @@ virNWFilterInstantiateFilterLate(const unsigned char *vmuuid, - filtername, - filterparams, - INSTANTIATE_ALWAYS, -- driver, - true, - &foundNewFilter); - if (rc < 0) { -@@ -1029,13 +1029,13 @@ virNWFilterInstantiateFilterLate(const unsigned char *vmuuid, - - - int --virNWFilterInstantiateFilter(virConnectPtr conn, -+virNWFilterInstantiateFilter(virNWFilterDriverStatePtr driver, - const unsigned char *vmuuid, - const virDomainNetDefPtr net) - { - bool foundNewFilter = false; - -- return _virNWFilterInstantiateFilter(conn, vmuuid, net, -+ return _virNWFilterInstantiateFilter(driver, vmuuid, net, - 1, - INSTANTIATE_ALWAYS, - &foundNewFilter); -@@ -1043,14 +1043,14 @@ virNWFilterInstantiateFilter(virConnectPtr conn, - - - int --virNWFilterUpdateInstantiateFilter(virConnectPtr conn, -+virNWFilterUpdateInstantiateFilter(virNWFilterDriverStatePtr driver, - const unsigned char *vmuuid, - const virDomainNetDefPtr net, - bool *skipIface) - { - bool foundNewFilter = false; - -- int rc = _virNWFilterInstantiateFilter(conn, vmuuid, net, -+ int rc = _virNWFilterInstantiateFilter(driver, vmuuid, net, - 0, - INSTANTIATE_FOLLOW_NEWFILTER, - &foundNewFilter); -@@ -1168,7 +1168,7 @@ virNWFilterDomainFWUpdateCB(virDomainObjPtr obj, - if ((net->filter) && (net->ifname)) { - switch (cb->step) { - case STEP_APPLY_NEW: -- ret = virNWFilterUpdateInstantiateFilter(cb->conn, -+ ret = virNWFilterUpdateInstantiateFilter(cb->opaque, - vm->uuid, - net, - &skipIface); -@@ -1193,7 +1193,7 @@ virNWFilterDomainFWUpdateCB(virDomainObjPtr obj, - break; - - case STEP_APPLY_CURRENT: -- ret = virNWFilterInstantiateFilter(cb->conn, -+ ret = virNWFilterInstantiateFilter(cb->opaque, - vm->uuid, - net); - if (ret) -diff --git a/src/nwfilter/nwfilter_gentech_driver.h b/src/nwfilter/nwfilter_gentech_driver.h -index 4b47b4a..8528e2a 100644 ---- a/src/nwfilter/nwfilter_gentech_driver.h -+++ b/src/nwfilter/nwfilter_gentech_driver.h -@@ -39,23 +39,23 @@ enum instCase { - }; - - --int virNWFilterInstantiateFilter(virConnectPtr conn, -+int virNWFilterInstantiateFilter(virNWFilterDriverStatePtr driver, - const unsigned char *vmuuid, - const virDomainNetDefPtr net); --int virNWFilterUpdateInstantiateFilter(virConnectPtr conn, -+int virNWFilterUpdateInstantiateFilter(virNWFilterDriverStatePtr driver, - const unsigned char *vmuuid, - const virDomainNetDefPtr net, - bool *skipIface); - --int virNWFilterInstantiateFilterLate(const unsigned char *vmuuid, -+int virNWFilterInstantiateFilterLate(virNWFilterDriverStatePtr driver, -+ const unsigned char *vmuuid, - const char *ifname, - int ifindex, - const char *linkdev, - enum virDomainNetType nettype, - const virMacAddrPtr macaddr, - const char *filtername, -- virNWFilterHashTablePtr filterparams, -- virNWFilterDriverStatePtr driver); -+ virNWFilterHashTablePtr filterparams); - - int virNWFilterTeardownFilter(const virDomainNetDefPtr net); - -diff --git a/src/nwfilter/nwfilter_learnipaddr.c b/src/nwfilter/nwfilter_learnipaddr.c -index 990374d..7ee51d2 100644 ---- a/src/nwfilter/nwfilter_learnipaddr.c -+++ b/src/nwfilter/nwfilter_learnipaddr.c -@@ -613,15 +613,15 @@ learnIPAddressThread(void *arg) - "cache for interface %s"), inetaddr, req->ifname); - } - -- ret = virNWFilterInstantiateFilterLate(NULL, -+ ret = virNWFilterInstantiateFilterLate(req->driver, -+ NULL, - req->ifname, - req->ifindex, - req->linkdev, - req->nettype, - &req->macaddr, - req->filtername, -- req->filterparams, -- req->driver); -+ req->filterparams); - VIR_DEBUG("Result from applying firewall rules on " - "%s with IP addr %s : %d\n", req->ifname, inetaddr, ret); - } diff --git a/0006-Remove-use-of-virConnectPtr-from-all-remaining-nwfil.patch b/0006-Remove-use-of-virConnectPtr-from-all-remaining-nwfil.patch deleted file mode 100644 index e9f9637..0000000 --- a/0006-Remove-use-of-virConnectPtr-from-all-remaining-nwfil.patch +++ /dev/null @@ -1,382 +0,0 @@ -From 4688a920f1f7ce2e687e5f2a86955597a3980092 Mon Sep 17 00:00:00 2001 -From: "Daniel P. Berrange" -Date: Thu, 3 Oct 2013 14:07:00 +0100 -Subject: [PATCH] Remove use of virConnectPtr from all remaining nwfilter code - -The virConnectPtr is passed around loads of nwfilter code in -order to provide it as a parameter to the callback registered -by the virt drivers. None of the virt drivers use this param -though, so it serves no purpose. - -Avoiding the need to pass a virConnectPtr means that the -nwfilterStateReload method no longer needs to open a bogus -QEMU driver connection. This addresses a race condition that -can lead to a crash on startup. - -The nwfilter driver starts before the QEMU driver and registers -some callbacks with DBus to detect firewalld reload. If the -firewalld reload happens while the QEMU driver is still starting -up though, the nwfilterStateReload method will open a connection -to the partially initialized QEMU driver and cause a crash. - -Signed-off-by: Daniel P. Berrange ---- - src/conf/nwfilter_conf.c | 49 ++++++++++++++++-------------------------- - src/conf/nwfilter_conf.h | 14 +++++------- - src/lxc/lxc_driver.c | 3 +-- - src/nwfilter/nwfilter_driver.c | 42 ++++++++++++++---------------------- - src/qemu/qemu_driver.c | 3 +-- - src/uml/uml_driver.c | 3 +-- - 6 files changed, 43 insertions(+), 71 deletions(-) - -diff --git a/src/conf/nwfilter_conf.c b/src/conf/nwfilter_conf.c -index 9348c2b..4e5bf69 100644 ---- a/src/conf/nwfilter_conf.c -+++ b/src/conf/nwfilter_conf.c -@@ -2761,8 +2761,7 @@ cleanup: - - - static int --_virNWFilterDefLoopDetect(virConnectPtr conn, -- virNWFilterObjListPtr nwfilters, -+_virNWFilterDefLoopDetect(virNWFilterObjListPtr nwfilters, - virNWFilterDefPtr def, - const char *filtername) - { -@@ -2786,7 +2785,7 @@ _virNWFilterDefLoopDetect(virConnectPtr conn, - obj = virNWFilterObjFindByName(nwfilters, - entry->include->filterref); - if (obj) { -- rc = _virNWFilterDefLoopDetect(conn, nwfilters, -+ rc = _virNWFilterDefLoopDetect(nwfilters, - obj->def, filtername); - - virNWFilterObjUnlock(obj); -@@ -2802,7 +2801,6 @@ _virNWFilterDefLoopDetect(virConnectPtr conn, - - /* - * virNWFilterDefLoopDetect: -- * @conn: pointer to virConnect object - * @nwfilters : the nwfilters to search - * @def : the filter definition that may add a loop and is to be tested - * -@@ -2812,11 +2810,10 @@ _virNWFilterDefLoopDetect(virConnectPtr conn, - * Returns 0 in case no loop was detected, -1 otherwise. - */ - static int --virNWFilterDefLoopDetect(virConnectPtr conn, -- virNWFilterObjListPtr nwfilters, -+virNWFilterDefLoopDetect(virNWFilterObjListPtr nwfilters, - virNWFilterDefPtr def) - { -- return _virNWFilterDefLoopDetect(conn, nwfilters, def, def->name); -+ return _virNWFilterDefLoopDetect(nwfilters, def, def->name); - } - - int nCallbackDriver; -@@ -2875,7 +2872,7 @@ static void *virNWFilterDomainFWUpdateOpaque; - * error. This should be called upon reloading of the driver. - */ - int --virNWFilterInstFiltersOnAllVMs(virConnectPtr conn) -+virNWFilterInstFiltersOnAllVMs(void) - { - int i; - struct domUpdateCBStruct cb = { -@@ -2885,15 +2882,14 @@ virNWFilterInstFiltersOnAllVMs(virConnectPtr conn) - }; - - for (i = 0; i < nCallbackDriver; i++) -- callbackDrvArray[i]->vmFilterRebuild(conn, -- virNWFilterDomainFWUpdateCB, -+ callbackDrvArray[i]->vmFilterRebuild(virNWFilterDomainFWUpdateCB, - &cb); - - return 0; - } - - static int --virNWFilterTriggerVMFilterRebuild(virConnectPtr conn) -+virNWFilterTriggerVMFilterRebuild(void) - { - int i; - int ret = 0; -@@ -2907,8 +2903,7 @@ virNWFilterTriggerVMFilterRebuild(virConnectPtr conn) - return -1; - - for (i = 0; i < nCallbackDriver; i++) { -- if (callbackDrvArray[i]->vmFilterRebuild(conn, -- virNWFilterDomainFWUpdateCB, -+ if (callbackDrvArray[i]->vmFilterRebuild(virNWFilterDomainFWUpdateCB, - &cb) < 0) - ret = -1; - } -@@ -2917,15 +2912,13 @@ virNWFilterTriggerVMFilterRebuild(virConnectPtr conn) - cb.step = STEP_TEAR_NEW; /* rollback */ - - for (i = 0; i < nCallbackDriver; i++) -- callbackDrvArray[i]->vmFilterRebuild(conn, -- virNWFilterDomainFWUpdateCB, -+ callbackDrvArray[i]->vmFilterRebuild(virNWFilterDomainFWUpdateCB, - &cb); - } else { - cb.step = STEP_TEAR_OLD; /* switch over */ - - for (i = 0; i < nCallbackDriver; i++) -- callbackDrvArray[i]->vmFilterRebuild(conn, -- virNWFilterDomainFWUpdateCB, -+ callbackDrvArray[i]->vmFilterRebuild(virNWFilterDomainFWUpdateCB, - &cb); - } - -@@ -2936,14 +2929,13 @@ virNWFilterTriggerVMFilterRebuild(virConnectPtr conn) - - - int --virNWFilterTestUnassignDef(virConnectPtr conn, -- virNWFilterObjPtr nwfilter) -+virNWFilterTestUnassignDef(virNWFilterObjPtr nwfilter) - { - int rc = 0; - - nwfilter->wantRemoved = 1; - /* trigger the update on VMs referencing the filter */ -- if (virNWFilterTriggerVMFilterRebuild(conn)) -+ if (virNWFilterTriggerVMFilterRebuild()) - rc = -1; - - nwfilter->wantRemoved = 0; -@@ -2982,8 +2974,7 @@ cleanup: - } - - virNWFilterObjPtr --virNWFilterObjAssignDef(virConnectPtr conn, -- virNWFilterObjListPtr nwfilters, -+virNWFilterObjAssignDef(virNWFilterObjListPtr nwfilters, - virNWFilterDefPtr def) - { - virNWFilterObjPtr nwfilter; -@@ -3002,7 +2993,7 @@ virNWFilterObjAssignDef(virConnectPtr conn, - virNWFilterObjUnlock(nwfilter); - } - -- if (virNWFilterDefLoopDetect(conn, nwfilters, def) < 0) { -+ if (virNWFilterDefLoopDetect(nwfilters, def) < 0) { - virReportError(VIR_ERR_OPERATION_FAILED, - "%s", _("filter would introduce a loop")); - return NULL; -@@ -3021,7 +3012,7 @@ virNWFilterObjAssignDef(virConnectPtr conn, - - nwfilter->newDef = def; - /* trigger the update on VMs referencing the filter */ -- if (virNWFilterTriggerVMFilterRebuild(conn)) { -+ if (virNWFilterTriggerVMFilterRebuild()) { - nwfilter->newDef = NULL; - virNWFilterUnlockFilterUpdates(); - virNWFilterObjUnlock(nwfilter); -@@ -3066,8 +3057,7 @@ virNWFilterObjAssignDef(virConnectPtr conn, - - - static virNWFilterObjPtr --virNWFilterObjLoad(virConnectPtr conn, -- virNWFilterObjListPtr nwfilters, -+virNWFilterObjLoad(virNWFilterObjListPtr nwfilters, - const char *file, - const char *path) - { -@@ -3086,7 +3076,7 @@ virNWFilterObjLoad(virConnectPtr conn, - return NULL; - } - -- if (!(nwfilter = virNWFilterObjAssignDef(conn, nwfilters, def))) { -+ if (!(nwfilter = virNWFilterObjAssignDef(nwfilters, def))) { - virNWFilterDefFree(def); - return NULL; - } -@@ -3104,8 +3094,7 @@ virNWFilterObjLoad(virConnectPtr conn, - - - int --virNWFilterLoadAllConfigs(virConnectPtr conn, -- virNWFilterObjListPtr nwfilters, -+virNWFilterLoadAllConfigs(virNWFilterObjListPtr nwfilters, - const char *configDir) - { - DIR *dir; -@@ -3133,7 +3122,7 @@ virNWFilterLoadAllConfigs(virConnectPtr conn, - if (!(path = virFileBuildPath(configDir, entry->d_name, NULL))) - continue; - -- nwfilter = virNWFilterObjLoad(conn, nwfilters, entry->d_name, path); -+ nwfilter = virNWFilterObjLoad(nwfilters, entry->d_name, path); - if (nwfilter) - virNWFilterObjUnlock(nwfilter); - -diff --git a/src/conf/nwfilter_conf.h b/src/conf/nwfilter_conf.h -index ea90fbd..1b72ba8 100644 ---- a/src/conf/nwfilter_conf.h -+++ b/src/conf/nwfilter_conf.h -@@ -688,12 +688,10 @@ int virNWFilterObjSaveDef(virNWFilterDriverStatePtr driver, - - int virNWFilterObjDeleteDef(virNWFilterObjPtr nwfilter); - --virNWFilterObjPtr virNWFilterObjAssignDef(virConnectPtr conn, -- virNWFilterObjListPtr nwfilters, -+virNWFilterObjPtr virNWFilterObjAssignDef(virNWFilterObjListPtr nwfilters, - virNWFilterDefPtr def); - --int virNWFilterTestUnassignDef(virConnectPtr conn, -- virNWFilterObjPtr nwfilter); -+int virNWFilterTestUnassignDef(virNWFilterObjPtr nwfilter); - - virNWFilterDefPtr virNWFilterDefParseNode(xmlDocPtr xml, - xmlNodePtr root); -@@ -707,8 +705,7 @@ int virNWFilterSaveXML(const char *configDir, - int virNWFilterSaveConfig(const char *configDir, - virNWFilterDefPtr def); - --int virNWFilterLoadAllConfigs(virConnectPtr conn, -- virNWFilterObjListPtr nwfilters, -+int virNWFilterLoadAllConfigs(virNWFilterObjListPtr nwfilters, - const char *configDir); - - char *virNWFilterConfigFile(const char *dir, -@@ -726,11 +723,10 @@ void virNWFilterUnlockFilterUpdates(void); - int virNWFilterConfLayerInit(virDomainObjListIterator domUpdateCB, void *opaque); - void virNWFilterConfLayerShutdown(void); - --int virNWFilterInstFiltersOnAllVMs(virConnectPtr conn); -+int virNWFilterInstFiltersOnAllVMs(void); - - --typedef int (*virNWFilterRebuild)(virConnectPtr conn, -- virDomainObjListIterator domUpdateCB, -+typedef int (*virNWFilterRebuild)(virDomainObjListIterator domUpdateCB, - void *data); - typedef void (*virNWFilterVoidCall)(void); - -diff --git a/src/lxc/lxc_driver.c b/src/lxc/lxc_driver.c -index 94c1f37..a5eab76 100644 ---- a/src/lxc/lxc_driver.c -+++ b/src/lxc/lxc_driver.c -@@ -82,8 +82,7 @@ virLXCDriverPtr lxc_driver = NULL; - - /* callbacks for nwfilter */ - static int --lxcVMFilterRebuild(virConnectPtr conn ATTRIBUTE_UNUSED, -- virDomainObjListIterator iter, void *data) -+lxcVMFilterRebuild(virDomainObjListIterator iter, void *data) - { - return virDomainObjListForEach(lxc_driver->domains, iter, data); - } -diff --git a/src/nwfilter/nwfilter_driver.c b/src/nwfilter/nwfilter_driver.c -index d69721c..51a991f 100644 ---- a/src/nwfilter/nwfilter_driver.c -+++ b/src/nwfilter/nwfilter_driver.c -@@ -230,8 +230,7 @@ nwfilterStateInitialize(bool privileged, - - VIR_FREE(base); - -- if (virNWFilterLoadAllConfigs(NULL, -- &driverState->nwfilters, -+ if (virNWFilterLoadAllConfigs(&driverState->nwfilters, - driverState->configDir) < 0) - goto error; - -@@ -270,37 +269,28 @@ err_free_driverstate: - * files and update its state - */ - static int --nwfilterStateReload(void) { -- virConnectPtr conn; -- -- if (!driverState) { -+nwfilterStateReload(void) -+{ -+ if (!driverState) - return -1; -- } - - if (!driverState->privileged) - return 0; - -- conn = virConnectOpen("qemu:///system"); -- -- if (conn) { -- virNWFilterDHCPSnoopEnd(NULL); -- /* shut down all threads -- they will be restarted if necessary */ -- virNWFilterLearnThreadsTerminate(true); -- -- nwfilterDriverLock(driverState); -- virNWFilterCallbackDriversLock(); -+ virNWFilterDHCPSnoopEnd(NULL); -+ /* shut down all threads -- they will be restarted if necessary */ -+ virNWFilterLearnThreadsTerminate(true); - -- virNWFilterLoadAllConfigs(conn, -- &driverState->nwfilters, -- driverState->configDir); -+ nwfilterDriverLock(driverState); -+ virNWFilterCallbackDriversLock(); - -- virNWFilterCallbackDriversUnlock(); -- nwfilterDriverUnlock(driverState); -+ virNWFilterLoadAllConfigs(&driverState->nwfilters, -+ driverState->configDir); - -- virNWFilterInstFiltersOnAllVMs(conn); -+ virNWFilterCallbackDriversUnlock(); -+ nwfilterDriverUnlock(driverState); - -- virConnectClose(conn); -- } -+ virNWFilterInstFiltersOnAllVMs(); - - return 0; - } -@@ -538,7 +528,7 @@ nwfilterDefineXML(virConnectPtr conn, - if (!(def = virNWFilterDefParseString(xml))) - goto cleanup; - -- if (!(nwfilter = virNWFilterObjAssignDef(conn, &driver->nwfilters, def))) -+ if (!(nwfilter = virNWFilterObjAssignDef(&driver->nwfilters, def))) - goto cleanup; - - if (virNWFilterObjSaveDef(driver, nwfilter, def) < 0) { -@@ -579,7 +569,7 @@ nwfilterUndefine(virNWFilterPtr obj) { - goto cleanup; - } - -- if (virNWFilterTestUnassignDef(obj->conn, nwfilter) < 0) { -+ if (virNWFilterTestUnassignDef(nwfilter) < 0) { - virReportError(VIR_ERR_OPERATION_INVALID, - "%s", - _("nwfilter is in use")); -diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c -index bdb7adb..10e2b86 100644 ---- a/src/qemu/qemu_driver.c -+++ b/src/qemu/qemu_driver.c -@@ -157,8 +157,7 @@ static void - qemuVMDriverUnlock(void) {} - - static int --qemuVMFilterRebuild(virConnectPtr conn ATTRIBUTE_UNUSED, -- virDomainObjListIterator iter, void *data) -+qemuVMFilterRebuild(virDomainObjListIterator iter, void *data) - { - return virDomainObjListForEach(qemu_driver->domains, iter, data); - } -diff --git a/src/uml/uml_driver.c b/src/uml/uml_driver.c -index 9b0aba6..61586b0 100644 ---- a/src/uml/uml_driver.c -+++ b/src/uml/uml_driver.c -@@ -147,8 +147,7 @@ static int umlMonitorCommand(const struct uml_driver *driver, - static struct uml_driver *uml_driver = NULL; - - static int --umlVMFilterRebuild(virConnectPtr conn ATTRIBUTE_UNUSED, -- virDomainObjListIterator iter, void *data) -+umlVMFilterRebuild(virDomainObjListIterator iter, void *data) - { - return virDomainObjListForEach(uml_driver->domains, iter, data); - } diff --git a/0007-qemu_hotplug-Allow-QoS-update-in-qemuDomainChangeNet.patch b/0007-qemu_hotplug-Allow-QoS-update-in-qemuDomainChangeNet.patch deleted file mode 100644 index 872f55a..0000000 --- a/0007-qemu_hotplug-Allow-QoS-update-in-qemuDomainChangeNet.patch +++ /dev/null @@ -1,66 +0,0 @@ -From d78741e154c932ba45fc31d6a2ae615f2f1d1e15 Mon Sep 17 00:00:00 2001 -From: Michal Privoznik -Date: Tue, 1 Oct 2013 15:04:48 +0200 -Subject: [PATCH] qemu_hotplug: Allow QoS update in qemuDomainChangeNet - -The qemuDomainChangeNet() is called when 'virsh update-device' is -invoked on a NIC. Currently, we fail to update the QoS even though -we have routines for that. - -Signed-off-by: Michal Privoznik -(cherry picked from commit 9fa10d3901a14997f724fe50ad8a33d7f0d23abe) ---- - src/qemu/qemu_hotplug.c | 19 +++++++++++++++++-- - 1 file changed, 17 insertions(+), 2 deletions(-) - -diff --git a/src/qemu/qemu_hotplug.c b/src/qemu/qemu_hotplug.c -index f88632d..dfcbd11 100644 ---- a/src/qemu/qemu_hotplug.c -+++ b/src/qemu/qemu_hotplug.c -@@ -1470,6 +1470,7 @@ qemuDomainChangeNet(virQEMUDriverPtr driver, - bool needFilterChange = false; - bool needLinkStateChange = false; - bool needReplaceDevDef = false; -+ bool needBandwidthSet = false; - int ret = -1; - - if (!devslot || !(olddev = *devslot)) { -@@ -1738,8 +1739,6 @@ qemuDomainChangeNet(virQEMUDriverPtr driver, - virDomainNetGetActualDirectMode(olddev) != virDomainNetGetActualDirectMode(olddev) || - !virNetDevVPortProfileEqual(virDomainNetGetActualVirtPortProfile(olddev), - virDomainNetGetActualVirtPortProfile(newdev)) || -- !virNetDevBandwidthEqual(virDomainNetGetActualBandwidth(olddev), -- virDomainNetGetActualBandwidth(newdev)) || - !virNetDevVlanEqual(virDomainNetGetActualVlan(olddev), - virDomainNetGetActualVlan(newdev))) { - needReconnect = true; -@@ -1748,6 +1747,10 @@ qemuDomainChangeNet(virQEMUDriverPtr driver, - if (olddev->linkstate != newdev->linkstate) - needLinkStateChange = true; - -+ if (!virNetDevBandwidthEqual(virDomainNetGetActualBandwidth(olddev), -+ virDomainNetGetActualBandwidth(newdev))) -+ needBandwidthSet = true; -+ - /* FINALLY - actually perform the required actions */ - - if (needReconnect) { -@@ -1757,6 +1760,18 @@ qemuDomainChangeNet(virQEMUDriverPtr driver, - goto cleanup; - } - -+ if (needBandwidthSet) { -+ if (virNetDevBandwidthSet(newdev->ifname, -+ virDomainNetGetActualBandwidth(newdev), -+ false) < 0) { -+ virReportError(VIR_ERR_INTERNAL_ERROR, -+ _("cannot set bandwidth limits on %s"), -+ newdev->ifname); -+ goto cleanup; -+ } -+ needReplaceDevDef = true; -+ } -+ - if (needBridgeChange) { - if (qemuDomainChangeNetBridge(dom->conn, vm, olddev, newdev) < 0) - goto cleanup; diff --git a/0008-virNetDevBandwidthEqual-Make-it-more-robust.patch b/0008-virNetDevBandwidthEqual-Make-it-more-robust.patch deleted file mode 100644 index f2a4463..0000000 --- a/0008-virNetDevBandwidthEqual-Make-it-more-robust.patch +++ /dev/null @@ -1,57 +0,0 @@ -From c898a40e76db8bf32529fc37872f0b52430e043d Mon Sep 17 00:00:00 2001 -From: Michal Privoznik -Date: Wed, 2 Oct 2013 09:18:02 +0200 -Subject: [PATCH] virNetDevBandwidthEqual: Make it more robust - -So far the virNetDevBandwidthEqual() expected both ->in and ->out items -to be allocated for both @a and @b compared. This is not necessary true -for all our code. For instance, running 'update-device' twice over a NIC -with the very same XML results in SIGSEGV-ing in this function. - -Signed-off-by: Michal Privoznik -(cherry picked from commit ee02fbc8e4a24c1347761ceff2ddb2c108e9611c) ---- - src/util/virnetdevbandwidth.c | 26 ++++++++++++++++++++------ - 1 file changed, 20 insertions(+), 6 deletions(-) - -diff --git a/src/util/virnetdevbandwidth.c b/src/util/virnetdevbandwidth.c -index 2c5b63a..78608fd 100644 ---- a/src/util/virnetdevbandwidth.c -+++ b/src/util/virnetdevbandwidth.c -@@ -339,16 +339,30 @@ virNetDevBandwidthEqual(virNetDevBandwidthPtr a, - return false; - - /* in */ -- if (a->in->average != b->in->average || -- a->in->peak != b->in->peak || -- a->in->burst != b->in->burst) -+ if (a->in) { -+ if (!b->in) -+ return false; -+ -+ if (a->in->average != b->in->average || -+ a->in->peak != b->in->peak || -+ a->in->burst != b->in->burst) -+ return false; -+ } else if (b->in) { - return false; -+ } - - /*out*/ -- if (a->out->average != b->out->average || -- a->out->peak != b->out->peak || -- a->out->burst != b->out->burst) -+ if (a->out) { -+ if (!b->out) -+ return false; -+ -+ if (a->out->average != b->out->average || -+ a->out->peak != b->out->peak || -+ a->out->burst != b->out->burst) -+ return false; -+ } else if (b->out) { - return false; -+ } - - return true; - } diff --git a/libvirt.spec b/libvirt.spec index ab529bd..006d5fe 100644 --- a/libvirt.spec +++ b/libvirt.spec @@ -340,8 +340,8 @@ Summary: Library providing a simple virtualization API Name: libvirt -Version: 1.0.5.6 -Release: 3%{?dist}%{?extra_release} +Version: 1.0.5.7 +Release: 1%{?dist}%{?extra_release} License: LGPLv2+ Group: Development/Libraries BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root @@ -352,19 +352,6 @@ URL: http://libvirt.org/ %endif Source: http://libvirt.org/sources/%{?mainturl}libvirt-%{version}.tar.gz -# Fix virsh vol-resize (bz #1014874) -Patch0001: 0001-virsh-Fix-regression-of-vol-resize.patch -# Fix snapshot restore when VM has disabled usb support (bz #1011520) -Patch0002: 0002-qemu-Fix-checking-of-ABI-stability-when-restoring-ex.patch -Patch0003: 0003-qemu-Use-migratable-XML-definition-when-doing-extern.patch -# Fix nwfilter crash during firewalld install (bz #1014933) -Patch0004: 0004-Remove-virConnectPtr-arg-from-virNWFilterDefParse.patch -Patch0005: 0005-Don-t-pass-virConnectPtr-in-nwfilter-struct-domUpdat.patch -Patch0006: 0006-Remove-use-of-virConnectPtr-from-all-remaining-nwfil.patch -# Allow QoS change with update-device (bz #1014200) -Patch0007: 0007-qemu_hotplug-Allow-QoS-update-in-qemuDomainChangeNet.patch -Patch0008: 0008-virNetDevBandwidthEqual-Make-it-more-robust.patch - %if %{with_libvirtd} Requires: libvirt-daemon = %{version}-%{release} %if %{with_network} @@ -487,8 +474,7 @@ BuildRequires: cyrus-sasl-devel %endif %if %{with_polkit} %if 0%{?fedora} >= 12 || 0%{?rhel} >= 6 -# Only need the binary, not -devel -BuildRequires: polkit >= 0.93 +BuildRequires: polkit-devel >= 0.93 %else BuildRequires: PolicyKit-devel >= 0.6 %endif @@ -1097,19 +1083,6 @@ of recent versions of Linux (and other OSes). %prep %setup -q -# Fix virsh vol-resize (bz #1014874) -%patch0001 -p1 -# Fix snapshot restore when VM has disabled usb support (bz #1011520) -%patch0002 -p1 -%patch0003 -p1 -# Fix nwfilter crash during firewalld install (bz #1014933) -%patch0004 -p1 -%patch0005 -p1 -%patch0006 -p1 -# Allow QoS change with update-device (bz #1014200) -%patch0007 -p1 -%patch0008 -p1 - %build %if ! %{with_xen} %define _without_xen --without-xen @@ -2031,6 +2004,10 @@ fi %endif %changelog +* Wed Nov 06 2013 Cole Robinson - 1.0.5.7-1 +- Rebased to version 1.0.5.7 +- Fix memory limit to not incorrectly invoke OOM killer on qemu (bz #966939) + * Sun Oct 06 2013 Cole Robinson - 1.0.5.6-3 - Fix virsh vol-resize (bz #1014874) - Fix nwfilter crash during firewalld install (bz #1014933) diff --git a/sources b/sources index 8f1ab66..5051469 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -57187b0edfb22157a74d60e49f1296db libvirt-1.0.5.6.tar.gz +7d186e4642570dddc2da584806406d81 libvirt-1.0.5.7.tar.gz