diff --git a/0001-Extract-stats-functions-from-the-qemu-driver.patch b/0001-Extract-stats-functions-from-the-qemu-driver.patch deleted file mode 100644 index 233d9a7..0000000 --- a/0001-Extract-stats-functions-from-the-qemu-driver.patch +++ /dev/null @@ -1,446 +0,0 @@ -From 6609ed5a377c3beaf8389e870b6851856cee42c7 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?C=C3=A9dric=20Bosdonnat?= -Date: Thu, 4 Jan 2018 12:04:07 +0100 -Subject: [PATCH 1/3] Extract stats functions from the qemu driver - -Some of the qemu functions getting statistics can easily be reused in -other drivers. Create a conf/domain_stats.[ch] pair to host some of -them. ---- - src/Makefile.am | 1 + - src/conf/domain_stats.c | 139 +++++++++++++++++++++++++++++++++++++++++ - src/conf/domain_stats.h | 64 +++++++++++++++++++ - src/libvirt_private.syms | 4 ++ - src/qemu/qemu_driver.c | 158 +++-------------------------------------------- - src/util/vircgroup.c | 46 ++++++++++++++ - src/util/vircgroup.h | 4 ++ - 7 files changed, 265 insertions(+), 151 deletions(-) - create mode 100644 src/conf/domain_stats.c - create mode 100644 src/conf/domain_stats.h - -Index: libvirt-8.4.0/src/conf/domain_stats.c -=================================================================== ---- /dev/null -+++ libvirt-8.4.0/src/conf/domain_stats.c -@@ -0,0 +1,117 @@ -+/* -+ * domain_stats.c: domain stats extraction helpers -+ * -+ * Copyright (C) 2006-2016 Red Hat, Inc. -+ * Copyright (C) 2006-2008 Daniel P. Berrange -+ * Copyright (c) 2018 SUSE LINUX Products GmbH, Nuernberg, Germany. -+ * -+ * This library is free software; you can redistribute it and/or -+ * modify it under the terms of the GNU Lesser General Public -+ * License as published by the Free Software Foundation; either -+ * version 2.1 of the License, or (at your option) any later version. -+ * -+ * This library is distributed in the hope that it will be useful, -+ * but WITHOUT ANY WARRANTY; without even the implied warranty of -+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -+ * Lesser General Public License for more details. -+ * -+ * You should have received a copy of the GNU Lesser General Public -+ * License along with this library. If not, see -+ * . -+ */ -+ -+#include -+ -+#include -+ -+#include "virlog.h" -+#include "domain_stats.h" -+#include "virtypedparam.h" -+#include "virnetdevtap.h" -+#include "virnetdevopenvswitch.h" -+ -+#define VIR_FROM_THIS VIR_FROM_DOMAIN -+ -+VIR_LOG_INIT("conf.domain_stats"); -+ -+int -+virDomainStatsGetState(virDomainObj *dom, -+ virTypedParamList *params) -+{ -+ if (virTypedParamListAddInt(params, dom->state.state, "state.state") < 0) -+ return -1; -+ -+ if (virTypedParamListAddInt(params, dom->state.reason, "state.reason") < 0) -+ return -1; -+ -+ return 0; -+} -+ -+#define STATS_ADD_NET_PARAM(params, num, name, value) \ -+ if (value >= 0 && \ -+ virTypedParamListAddULLong((params), (value), "net.%zu.%s", (num), (name)) < 0) \ -+ return -1; -+ -+int -+virDomainStatsGetInterface(virDomainObj *dom, -+ virTypedParamList *params) -+{ -+ size_t i; -+ struct _virDomainInterfaceStats tmp; -+ -+ if (!virDomainObjIsActive(dom)) -+ return 0; -+ -+ if (virTypedParamListAddUInt(params, dom->def->nnets, "net.count") < 0) -+ return -1; -+ -+ /* Check the path is one of the domain's network interfaces. */ -+ for (i = 0; i < dom->def->nnets; i++) { -+ virDomainNetDef *net = dom->def->nets[i]; -+ virDomainNetType actualType; -+ -+ if (!net->ifname) -+ continue; -+ -+ memset(&tmp, 0, sizeof(tmp)); -+ -+ actualType = virDomainNetGetActualType(net); -+ -+ if (virTypedParamListAddString(params, net->ifname, "net.%zu.name", i) < 0) -+ return -1; -+ -+ if (actualType == VIR_DOMAIN_NET_TYPE_VHOSTUSER) { -+ if (virNetDevOpenvswitchInterfaceStats(net->ifname, &tmp) < 0) { -+ virResetLastError(); -+ continue; -+ } -+ } else { -+ if (virNetDevTapInterfaceStats(net->ifname, &tmp, -+ !virDomainNetTypeSharesHostView(net)) < 0) { -+ virResetLastError(); -+ continue; -+ } -+ } -+ -+ STATS_ADD_NET_PARAM(params, i, -+ "rx.bytes", tmp.rx_bytes); -+ STATS_ADD_NET_PARAM(params, i, -+ "rx.pkts", tmp.rx_packets); -+ STATS_ADD_NET_PARAM(params, i, -+ "rx.errs", tmp.rx_errs); -+ STATS_ADD_NET_PARAM(params, i, -+ "rx.drop", tmp.rx_drop); -+ STATS_ADD_NET_PARAM(params, i, -+ "tx.bytes", tmp.tx_bytes); -+ STATS_ADD_NET_PARAM(params, i, -+ "tx.pkts", tmp.tx_packets); -+ STATS_ADD_NET_PARAM(params, i, -+ "tx.errs", tmp.tx_errs); -+ STATS_ADD_NET_PARAM(params, i, -+ "tx.drop", tmp.tx_drop); -+ } -+ -+ return 0; -+} -+ -+#undef STATS_ADD_NET_PARAM -Index: libvirt-8.4.0/src/conf/domain_stats.h -=================================================================== ---- /dev/null -+++ libvirt-8.4.0/src/conf/domain_stats.h -@@ -0,0 +1,60 @@ -+/* -+ * domain_stats.h: domain stats extraction helpers -+ * -+ * Copyright (C) 2006-2016 Red Hat, Inc. -+ * Copyright (C) 2006-2008 Daniel P. Berrange -+ * Copyright (c) 2018 SUSE LINUX Products GmbH, Nuernberg, Germany. -+ * -+ * This library is free software; you can redistribute it and/or -+ * modify it under the terms of the GNU Lesser General Public -+ * License as published by the Free Software Foundation; either -+ * version 2.1 of the License, or (at your option) any later version. -+ * -+ * This library is distributed in the hope that it will be useful, -+ * but WITHOUT ANY WARRANTY; without even the implied warranty of -+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -+ * Lesser General Public License for more details. -+ * -+ * You should have received a copy of the GNU Lesser General Public -+ * License along with this library. If not, see -+ * . -+ */ -+#ifndef __DOMAIN_STATS_H -+# define __DOMAIN_STATS_H -+ -+# include "internal.h" -+# include "domain_conf.h" -+ -+ -+# define VIR_DOMAIN_STATS_ADD_COUNT_PARAM(record, maxparams, type, count) \ -+do { \ -+ char param_name[VIR_TYPED_PARAM_FIELD_LENGTH]; \ -+ snprintf(param_name, VIR_TYPED_PARAM_FIELD_LENGTH, "%s.count", type); \ -+ if (virTypedParamsAddUInt(&(record)->params, \ -+ &(record)->nparams, \ -+ maxparams, \ -+ param_name, \ -+ count) < 0) \ -+ goto cleanup; \ -+} while (0) -+ -+# define VIR_DOMAIN_STATS_ADD_NAME_PARAM(record, maxparams, type, subtype, num, name) \ -+do { \ -+ char param_name[VIR_TYPED_PARAM_FIELD_LENGTH]; \ -+ snprintf(param_name, VIR_TYPED_PARAM_FIELD_LENGTH, \ -+ "%s.%zu.%s", type, num, subtype); \ -+ if (virTypedParamsAddString(&(record)->params, \ -+ &(record)->nparams, \ -+ maxparams, \ -+ param_name, \ -+ name) < 0) \ -+ goto cleanup; \ -+} while (0) -+ -+int virDomainStatsGetState(virDomainObj *dom, -+ virTypedParamList *params); -+ -+int virDomainStatsGetInterface(virDomainObj *dom, -+ virTypedParamList *params); -+ -+#endif /* __DOMAIN_STATS_H */ -Index: libvirt-8.4.0/src/libvirt_private.syms -=================================================================== ---- libvirt-8.4.0.orig/src/libvirt_private.syms -+++ libvirt-8.4.0/src/libvirt_private.syms -@@ -772,6 +772,11 @@ virDomainConfNWFilterTeardown; - virDomainConfVMNWFilterTeardown; - - -+# conf/domain_stats.h -+virDomainStatsGetInterface; -+virDomainStatsGetState; -+ -+ - # conf/domain_validate.h - virDomainActualNetDefValidate; - virDomainDefValidate; -@@ -1973,6 +1978,7 @@ virCgroupGetMemoryUsage; - virCgroupGetMemSwapHardLimit; - virCgroupGetMemSwapUsage; - virCgroupGetPercpuStats; -+virCgroupGetStatsCpu; - virCgroupHasController; - virCgroupHasEmptyTasks; - virCgroupKillPainfully; -Index: libvirt-8.4.0/src/qemu/qemu_driver.c -=================================================================== ---- libvirt-8.4.0.orig/src/qemu/qemu_driver.c -+++ libvirt-8.4.0/src/qemu/qemu_driver.c -@@ -68,6 +68,7 @@ - #include "virarptable.h" - #include "viruuid.h" - #include "domain_conf.h" -+#include "domain_stats.h" - #include "domain_audit.h" - #include "domain_cgroup.h" - #include "domain_driver.h" -@@ -17561,13 +17562,7 @@ qemuDomainGetStatsState(virQEMUDriver *d - virTypedParamList *params, - unsigned int privflags G_GNUC_UNUSED) - { -- if (virTypedParamListAddInt(params, dom->state.state, "state.state") < 0) -- return -1; -- -- if (virTypedParamListAddInt(params, dom->state.reason, "state.reason") < 0) -- return -1; -- -- return 0; -+ return virDomainStatsGetState(dom, params); - } - - -@@ -17859,25 +17854,11 @@ qemuDomainGetStatsCpuCgroup(virDomainObj - virTypedParamList *params) - { - qemuDomainObjPrivate *priv = dom->privateData; -- unsigned long long cpu_time = 0; -- unsigned long long user_time = 0; -- unsigned long long sys_time = 0; -- int err = 0; - - if (!priv->cgroup) - return 0; - -- err = virCgroupGetCpuacctUsage(priv->cgroup, &cpu_time); -- if (!err && virTypedParamListAddULLong(params, cpu_time, "cpu.time") < 0) -- return -1; -- -- err = virCgroupGetCpuacctStat(priv->cgroup, &user_time, &sys_time); -- if (!err && virTypedParamListAddULLong(params, user_time, "cpu.user") < 0) -- return -1; -- if (!err && virTypedParamListAddULLong(params, sys_time, "cpu.system") < 0) -- return -1; -- -- return 0; -+ return virCgroupGetStatsCpu(priv->cgroup, params); - } - - static int -@@ -18070,76 +18051,15 @@ qemuDomainGetStatsVcpu(virQEMUDriver *dr - return ret; - } - --#define QEMU_ADD_NET_PARAM(params, num, name, value) \ -- if (value >= 0 && \ -- virTypedParamListAddULLong((params), (value), "net.%zu.%s", (num), (name)) < 0) \ -- return -1; -- - static int - qemuDomainGetStatsInterface(virQEMUDriver *driver G_GNUC_UNUSED, - virDomainObj *dom, - virTypedParamList *params, - unsigned int privflags G_GNUC_UNUSED) - { -- size_t i; -- struct _virDomainInterfaceStats tmp; -- -- if (!virDomainObjIsActive(dom)) -- return 0; -- -- if (virTypedParamListAddUInt(params, dom->def->nnets, "net.count") < 0) -- return -1; -- -- /* Check the path is one of the domain's network interfaces. */ -- for (i = 0; i < dom->def->nnets; i++) { -- virDomainNetDef *net = dom->def->nets[i]; -- virDomainNetType actualType; -- -- if (!net->ifname) -- continue; -- -- memset(&tmp, 0, sizeof(tmp)); -- -- actualType = virDomainNetGetActualType(net); -- -- if (virTypedParamListAddString(params, net->ifname, "net.%zu.name", i) < 0) -- return -1; -- -- if (actualType == VIR_DOMAIN_NET_TYPE_VHOSTUSER) { -- if (virNetDevOpenvswitchInterfaceStats(net->ifname, &tmp) < 0) { -- virResetLastError(); -- continue; -- } -- } else { -- if (virNetDevTapInterfaceStats(net->ifname, &tmp, -- !virDomainNetTypeSharesHostView(net)) < 0) { -- virResetLastError(); -- continue; -- } -- } -- -- QEMU_ADD_NET_PARAM(params, i, -- "rx.bytes", tmp.rx_bytes); -- QEMU_ADD_NET_PARAM(params, i, -- "rx.pkts", tmp.rx_packets); -- QEMU_ADD_NET_PARAM(params, i, -- "rx.errs", tmp.rx_errs); -- QEMU_ADD_NET_PARAM(params, i, -- "rx.drop", tmp.rx_drop); -- QEMU_ADD_NET_PARAM(params, i, -- "tx.bytes", tmp.tx_bytes); -- QEMU_ADD_NET_PARAM(params, i, -- "tx.pkts", tmp.tx_packets); -- QEMU_ADD_NET_PARAM(params, i, -- "tx.errs", tmp.tx_errs); -- QEMU_ADD_NET_PARAM(params, i, -- "tx.drop", tmp.tx_drop); -- } -- -- return 0; -+ return virDomainStatsGetInterface(dom,params); - } - --#undef QEMU_ADD_NET_PARAM - - /* refresh information by opening images on the disk */ - static int -Index: libvirt-8.4.0/src/util/vircgroup.c -=================================================================== ---- libvirt-8.4.0.orig/src/util/vircgroup.c -+++ libvirt-8.4.0/src/util/vircgroup.c -@@ -3022,6 +3022,31 @@ virCgroupGetInode(virCgroup *cgroup) - return st.st_ino; - } - -+int -+virCgroupGetStatsCpu(virCgroup *cgroup, -+ virTypedParamList *params) -+{ -+ unsigned long long cpu_time = 0; -+ unsigned long long user_time = 0; -+ unsigned long long sys_time = 0; -+ int err = 0; -+ -+ if (!cgroup) -+ return 0; -+ -+ err = virCgroupGetCpuacctUsage(cgroup, &cpu_time); -+ if (!err && virTypedParamListAddULLong(params, cpu_time, "cpu.time") < 0) -+ return -1; -+ -+ err = virCgroupGetCpuacctStat(cgroup, &user_time, &sys_time); -+ if (!err && virTypedParamListAddULLong(params, user_time, "cpu.user") < 0) -+ return -1; -+ if (!err && virTypedParamListAddULLong(params, sys_time, "cpu.system") < 0) -+ return -1; -+ -+ return 0; -+} -+ - #else /* !__linux__ */ - - bool -@@ -3031,6 +3056,14 @@ virCgroupAvailable(void) - } - - -+int -+virCgroupGetStatsCpu(virCgroup *cgroup, -+ virTypedParamList *params) -+{ -+ return 0; -+} -+ -+ - int - virCgroupNewPartition(const char *path G_GNUC_UNUSED, - bool create G_GNUC_UNUSED, -Index: libvirt-8.4.0/src/util/vircgroup.h -=================================================================== ---- libvirt-8.4.0.orig/src/util/vircgroup.h -+++ libvirt-8.4.0/src/util/vircgroup.h -@@ -23,6 +23,7 @@ - - #include "virbitmap.h" - #include "virenum.h" -+#include "virtypedparam.h" - - struct _virCgroup; - typedef struct _virCgroup virCgroup; -@@ -284,4 +285,7 @@ int virCgroupHasEmptyTasks(virCgroup *cg - - bool virCgroupControllerAvailable(int controller); - -+int virCgroupGetStatsCpu(virCgroup *cgroup, -+ virTypedParamList *params); -+ - int virCgroupGetInode(virCgroup *cgroup); -Index: libvirt-8.4.0/src/conf/meson.build -=================================================================== ---- libvirt-8.4.0.orig/src/conf/meson.build -+++ libvirt-8.4.0/src/conf/meson.build -@@ -15,6 +15,7 @@ domain_conf_sources = [ - 'domain_conf.c', - 'domain_nwfilter.c', - 'domain_validate.c', -+ 'domain_stats.c', - 'moment_conf.c', - 'numa_conf.c', - 'snapshot_conf.c', diff --git a/0001-libxl-add-support-for-BlockResize-API.patch b/0001-libxl-add-support-for-BlockResize-API.patch index c70c44e..e77e9dd 100644 --- a/0001-libxl-add-support-for-BlockResize-API.patch +++ b/0001-libxl-add-support-for-BlockResize-API.patch @@ -19,11 +19,11 @@ reworking this patch and submitting it to upstream libvirt. src/libxl/libxl_driver.c | 91 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 91 insertions(+) -Index: libvirt-8.4.0/src/libxl/libxl_driver.c +Index: libvirt-8.5.0/src/libxl/libxl_driver.c =================================================================== ---- libvirt-8.4.0.orig/src/libxl/libxl_driver.c -+++ libvirt-8.4.0/src/libxl/libxl_driver.c -@@ -5260,6 +5260,95 @@ libxlDomainMemoryStats(virDomainPtr dom, +--- libvirt-8.5.0.orig/src/libxl/libxl_driver.c ++++ libvirt-8.5.0/src/libxl/libxl_driver.c +@@ -5257,6 +5257,95 @@ libxlDomainMemoryStats(virDomainPtr dom, #undef LIBXL_SET_MEMSTAT @@ -119,7 +119,7 @@ Index: libvirt-8.4.0/src/libxl/libxl_driver.c static int libxlDomainGetJobInfo(virDomainPtr dom, virDomainJobInfoPtr info) -@@ -6586,6 +6675,7 @@ static virHypervisorDriver libxlHypervis +@@ -6583,6 +6672,7 @@ static virHypervisorDriver libxlHypervis .domainGetNumaParameters = libxlDomainGetNumaParameters, /* 1.1.1 */ .nodeGetFreeMemory = libxlNodeGetFreeMemory, /* 0.9.0 */ .nodeGetCellsFreeMemory = libxlNodeGetCellsFreeMemory, /* 1.1.1 */ @@ -127,10 +127,10 @@ Index: libvirt-8.4.0/src/libxl/libxl_driver.c .domainGetJobInfo = libxlDomainGetJobInfo, /* 1.3.1 */ .domainGetJobStats = libxlDomainGetJobStats, /* 1.3.1 */ .domainMemoryStats = libxlDomainMemoryStats, /* 1.3.0 */ -Index: libvirt-8.4.0/src/libxl/libxl_api_wrapper.h +Index: libvirt-8.5.0/src/libxl/libxl_api_wrapper.h =================================================================== ---- libvirt-8.4.0.orig/src/libxl/libxl_api_wrapper.h -+++ libvirt-8.4.0/src/libxl/libxl_api_wrapper.h +--- libvirt-8.5.0.orig/src/libxl/libxl_api_wrapper.h ++++ libvirt-8.5.0/src/libxl/libxl_api_wrapper.h @@ -215,3 +215,18 @@ libxlSetMemoryTargetWrapper(libxl_ctx *c return ret; diff --git a/0001-util-Don-t-spawn-pkttyagent-when-stdin-is-not-a-tty.patch b/0001-util-Don-t-spawn-pkttyagent-when-stdin-is-not-a-tty.patch index 9e8d52a..04af2c2 100644 --- a/0001-util-Don-t-spawn-pkttyagent-when-stdin-is-not-a-tty.patch +++ b/0001-util-Don-t-spawn-pkttyagent-when-stdin-is-not-a-tty.patch @@ -18,11 +18,11 @@ Signed-off-by: Martin Kletzander src/util/virpolkit.c | 3 +++ 1 file changed, 3 insertions(+) -Index: libvirt-8.4.0/src/util/virpolkit.c +Index: libvirt-8.5.0/src/util/virpolkit.c =================================================================== ---- libvirt-8.4.0.orig/src/util/virpolkit.c -+++ libvirt-8.4.0/src/util/virpolkit.c -@@ -237,6 +237,9 @@ virPolkitAgentAvailable(void) +--- libvirt-8.5.0.orig/src/util/virpolkit.c ++++ libvirt-8.5.0/src/util/virpolkit.c +@@ -235,6 +235,9 @@ virPolkitAgentAvailable(void) const char *termid = ctermid(NULL); VIR_AUTOCLOSE fd = -1; diff --git a/0002-lxc-implement-connectGetAllDomainStats.patch b/0002-lxc-implement-connectGetAllDomainStats.patch deleted file mode 100644 index acd0279..0000000 --- a/0002-lxc-implement-connectGetAllDomainStats.patch +++ /dev/null @@ -1,161 +0,0 @@ -From 1a2be7098cf5acfd893153abb52b65e69631dcec Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?C=C3=A9dric=20Bosdonnat?= -Date: Tue, 2 Jan 2018 14:44:39 +0100 -Subject: [PATCH 2/3] lxc: implement connectGetAllDomainStats - -LXC containers can also provide some statistics. Allow users to fetch -them using the existing API. ---- - src/lxc/lxc_driver.c | 138 +++++++++++++++++++++++++++++++++++++++++++++++++++ - 1 file changed, 138 insertions(+) - -Index: libvirt-8.4.0/src/lxc/lxc_driver.c -=================================================================== ---- libvirt-8.4.0.orig/src/lxc/lxc_driver.c -+++ libvirt-8.4.0/src/lxc/lxc_driver.c -@@ -74,6 +74,8 @@ - #include "netdev_bandwidth_conf.h" - #include "virsocket.h" - #include "virutil.h" -+#include "viralloc.h" -+#include "domain_stats.h" - - #define VIR_FROM_THIS VIR_FROM_LXC - -@@ -5036,6 +5038,128 @@ lxcDomainHasManagedSaveImage(virDomainPt - return ret; - } - -+static int -+lxcDomainGetStatsCpu(virDomainObj *dom, -+ virTypedParamList *params) -+{ -+ virLXCDomainObjPrivate *priv = dom->privateData; -+ return virCgroupGetStatsCpu(priv->cgroup, params); -+} -+ -+typedef int -+(*lxcDomainGetStatsFunc)(virDomainObj *dom, -+ virTypedParamList *params); -+ -+ -+struct lxcDomainGetStatsWorker { -+ lxcDomainGetStatsFunc func; -+ unsigned int stats; -+}; -+ -+static struct lxcDomainGetStatsWorker lxcDomainGetStatsWorkers[] = { -+ { virDomainStatsGetState, VIR_DOMAIN_STATS_STATE }, -+ { lxcDomainGetStatsCpu, VIR_DOMAIN_STATS_CPU_TOTAL }, -+ { virDomainStatsGetInterface, VIR_DOMAIN_STATS_INTERFACE }, -+ { NULL, 0 } -+}; -+ -+static int -+lxcDomainGetStats(virConnectPtr conn, -+ virDomainObj *dom, -+ unsigned int stats, -+ virDomainStatsRecordPtr *record) -+{ -+ g_autofree virDomainStatsRecordPtr tmp = g_new0(virDomainStatsRecord, 1); -+ g_autoptr(virTypedParamList) params = g_new0(virTypedParamList, 1); -+ size_t i; -+ -+ for (i = 0; lxcDomainGetStatsWorkers[i].func; i++) { -+ if (stats & lxcDomainGetStatsWorkers[i].stats) { -+ if (lxcDomainGetStatsWorkers[i].func(dom, params) < 0) -+ return -1; -+ } -+ } -+ -+ if (!(tmp->dom = virGetDomain(conn, dom->def->name, -+ dom->def->uuid, dom->def->id))) -+ return -1; -+ -+ tmp->nparams = virTypedParamListStealParams(params, &tmp->params); -+ *record = g_steal_pointer(&tmp); -+ return 0; -+} -+ -+static int -+lxcConnectGetAllDomainStats(virConnectPtr conn, -+ virDomainPtr *doms, -+ unsigned int ndoms, -+ unsigned int stats, -+ virDomainStatsRecordPtr **retStats, -+ unsigned int flags) -+{ -+ virLXCDriver *driver = conn->privateData; -+ virDomainObj **vms = NULL; -+ virDomainObj *vm; -+ size_t nvms; -+ virDomainStatsRecordPtr *tmpstats = NULL; -+ int nstats = 0; -+ size_t i; -+ int ret = -1; -+ unsigned int lflags = flags & (VIR_CONNECT_LIST_DOMAINS_FILTERS_ACTIVE | -+ VIR_CONNECT_LIST_DOMAINS_FILTERS_PERSISTENT | -+ VIR_CONNECT_LIST_DOMAINS_FILTERS_STATE); -+ -+ virCheckFlags(VIR_CONNECT_LIST_DOMAINS_FILTERS_ACTIVE | -+ VIR_CONNECT_LIST_DOMAINS_FILTERS_PERSISTENT | -+ VIR_CONNECT_LIST_DOMAINS_FILTERS_STATE, -1); -+ -+ if (virConnectGetAllDomainStatsEnsureACL(conn) < 0) -+ return -1; -+ -+ /* TODO Check stats support */ -+ -+ if (ndoms) { -+ if (virDomainObjListConvert(driver->domains, conn, doms, ndoms, &vms, -+ &nvms, virConnectGetAllDomainStatsCheckACL, -+ lflags, true) < 0) -+ return -1; -+ } else { -+ if (virDomainObjListCollect(driver->domains, conn, &vms, &nvms, -+ virConnectGetAllDomainStatsCheckACL, -+ lflags) < 0) -+ return -1; -+ } -+ -+ tmpstats = g_new0(virDomainStatsRecordPtr, nvms + 1); -+ -+ for (i = 0; i < nvms; i++) { -+ virDomainStatsRecordPtr tmp = NULL; -+ vm = vms[i]; -+ -+ virObjectLock(vm); -+ -+ if (lxcDomainGetStats(conn, vm, stats, &tmp) < 0) { -+ virObjectUnlock(vm); -+ goto cleanup; -+ } -+ -+ if (tmp) -+ tmpstats[nstats++] = tmp; -+ -+ virObjectUnlock(vm); -+ } -+ -+ *retStats = tmpstats; -+ tmpstats = NULL; -+ -+ ret = nstats; -+ -+ cleanup: -+ virDomainStatsRecordListFree(tmpstats); -+ virObjectListFreeCount(vms, nvms); -+ -+ return ret; -+} - - /* Function Tables */ - static virHypervisorDriver lxcHypervisorDriver = { -@@ -5133,6 +5257,7 @@ static virHypervisorDriver lxcHypervisor - .nodeGetFreePages = lxcNodeGetFreePages, /* 1.2.6 */ - .nodeAllocPages = lxcNodeAllocPages, /* 1.2.9 */ - .domainHasManagedSaveImage = lxcDomainHasManagedSaveImage, /* 1.2.13 */ -+ .connectGetAllDomainStats = lxcConnectGetAllDomainStats, /* 3.11.0 */ - }; - - static virConnectDriver lxcConnectDriver = { diff --git a/libvirt-8.4.0.tar.xz b/libvirt-8.4.0.tar.xz deleted file mode 100644 index d46b65c..0000000 --- a/libvirt-8.4.0.tar.xz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:601a6e9bb03a43d05659f63e4a403df253ab0975b4a973f10a5607f3bbc018dd -size 8846528 diff --git a/libvirt-8.4.0.tar.xz.asc b/libvirt-8.4.0.tar.xz.asc deleted file mode 100644 index 25c863d..0000000 --- a/libvirt-8.4.0.tar.xz.asc +++ /dev/null @@ -1,16 +0,0 @@ ------BEGIN PGP SIGNATURE----- - -iQIzBAABCAAdFiEERTtlMQWVVihVRxGZymi+gBAITJwFAmKXFdUACgkQymi+gBAI -TJy0yQ//XG2qm1TW9WVReEbA6UNelcn19Lnz6lP5dD4X68JULYKvGUXBhaRyNogo -88b/t7DeVTZE/gl7gt9bkCOsRwrxL/egZbI9W3tSPOLbTtuMvDecMZoeVEwfuC/x -VVYDjXza6CWNzoo4aO5NRfBiZBdHjNw2zfKbDw2LIopw4jLtFxIlarZFJqY5TJ6T -oxIaWN4ydqTwELB/jIeJVPB3vCeGKOPlvrcPjkxxQ6tWjSU7ayzcaclDVbEAgSzP -M2DPlWje39uvFPVfs8AjZ8KgCFRM7PX6XaFUm+qYWfUXH2vcc6G0ysVZzlxXaBlx -GqEL8K5lWIYExOkI5noSeEuaMjlc1D6p/cmP6kdSaHndPmfPBOoyCrElwwT68cnH -Y+aFvQWUOosRSYT8KNBkR80+TQcvKT5WorjtTrtUe/3FXqFZ8sXXrmVGHd+xYuAY -UuIUROVFK24YbjvFNRrxXFk/ryFxF/xeEPYdC8bJQtQ1fQnP7uHUDpYRHCkxZN6/ -gg7P5/S5GUJIL8WeVNZU9o15VYoiQdw4cyvK3csaXLWmqinpmdp49LkyiwfwWSLn -dqf7ouRHwpwQa6BHEHyttu7I0ECLkUh0cFEk1TVOMVNtXU/S6qGHA1zh6X+visPm -34AWYgWhqMaD6IRAJcBPOz1P0lw1ohtvCBxfMuhFo5iVxvYwaXY= -=KaJQ ------END PGP SIGNATURE----- diff --git a/libvirt-8.5.0.tar.xz b/libvirt-8.5.0.tar.xz new file mode 100644 index 0000000..9466785 --- /dev/null +++ b/libvirt-8.5.0.tar.xz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:401e99b5e1b83de39a86347e091a85eb4dba82a87053dfcb5aa250328f97db62 +size 8886088 diff --git a/libvirt-8.5.0.tar.xz.asc b/libvirt-8.5.0.tar.xz.asc new file mode 100644 index 0000000..24dde82 --- /dev/null +++ b/libvirt-8.5.0.tar.xz.asc @@ -0,0 +1,16 @@ +-----BEGIN PGP SIGNATURE----- + +iQIzBAABCAAdFiEERTtlMQWVVihVRxGZymi+gBAITJwFAmK+vhYACgkQymi+gBAI +TJy1Aw//eJX8heqaQO6jcd8GcsndkN8EtgNLpsC6yptgsNQS6kZ2xaLM2jVKRIRp +V6IP8RS+VfKJJzv9BON4y9nYiPAXUGksdmRPugU7kiVVDZ3z3zKGVjACp4kQYFfL +JZf5FnhSW1Mv/Dxue7XhdqAPCgkelRw8D46KRsK5brPGKUeCsi7Em25nFIUObHUv +e9fJ6DszfPZysRLvmDr9g4RBos4pxKDw+hqNiYLVBsg56rOIgP09+2w43iaTi1SB +VEsh2nAR5dkLHnKxeUwPa5ZKegcerAjlWpS+clKfT/pV3D4fRAhXq+Ndiz1fi9rH +1hTaIQ+DloojdImtAWcVPMEuYCo25jkzvG4rIlL6n2L0OcnkqPqEftkBEYYsUoAF +kuddfebKXHfQOIXJQeHuIIGTGzBVONxwKc+0KVeRzX333hICQjGXFXZWi5qFbEih +PsGbvIcbT5RSZNdlQLBUFYsnLmU10hlmRz2UfDKT4q27RT3h2B7mymtACzB0i4i2 +AK3qsy/uWi6CXZRfqkGdfmBGb1zjTR0A6xc23iuzrJVjzF0tTCZrywyzRZ6RlntD +5U/ZKJ6Etx7Sy79iGl/kIpHFr+x8lE9k8lT/eg1TlyYmr6kaVq7/lVrHkX0u/cti +14f0ZaW1BcuqARHY7tJNLL5IqkRa4U2FQ82wR51Tc+a03xdo614= +=0dti +-----END PGP SIGNATURE----- diff --git a/libvirt-power8-models.patch b/libvirt-power8-models.patch index cdd0f20..a44f9d7 100644 --- a/libvirt-power8-models.patch +++ b/libvirt-power8-models.patch @@ -2,10 +2,10 @@ Add POWER8 v2.0 and v2.1 to cpu map XML From: -Index: libvirt-8.4.0/src/cpu_map/ppc64_POWER8.xml +Index: libvirt-8.5.0/src/cpu_map/ppc64_POWER8.xml =================================================================== ---- libvirt-8.4.0.orig/src/cpu_map/ppc64_POWER8.xml -+++ libvirt-8.4.0/src/cpu_map/ppc64_POWER8.xml +--- libvirt-8.5.0.orig/src/cpu_map/ppc64_POWER8.xml ++++ libvirt-8.5.0/src/cpu_map/ppc64_POWER8.xml @@ -4,5 +4,7 @@ diff --git a/libvirt-suse-netcontrol.patch b/libvirt-suse-netcontrol.patch index 7e5c1f5..8620eff 100644 --- a/libvirt-suse-netcontrol.patch +++ b/libvirt-suse-netcontrol.patch @@ -1,8 +1,8 @@ -Index: libvirt-8.4.0/tools/virsh.c +Index: libvirt-8.5.0/tools/virsh.c =================================================================== ---- libvirt-8.4.0.orig/tools/virsh.c -+++ libvirt-8.4.0/tools/virsh.c -@@ -552,6 +552,8 @@ virshShowVersion(vshControl *ctl G_GNUC_ +--- libvirt-8.5.0.orig/tools/virsh.c ++++ libvirt-8.5.0/tools/virsh.c +@@ -545,6 +545,8 @@ virshShowVersion(vshControl *ctl G_GNUC_ vshPrint(ctl, " Interface"); # if defined(WITH_NETCF) vshPrint(ctl, " netcf"); @@ -11,10 +11,10 @@ Index: libvirt-8.4.0/tools/virsh.c # elif defined(WITH_UDEV) vshPrint(ctl, " udev"); # endif -Index: libvirt-8.4.0/src/interface/interface_backend_netcf.c +Index: libvirt-8.5.0/src/interface/interface_backend_netcf.c =================================================================== ---- libvirt-8.4.0.orig/src/interface/interface_backend_netcf.c -+++ libvirt-8.4.0/src/interface/interface_backend_netcf.c +--- libvirt-8.5.0.orig/src/interface/interface_backend_netcf.c ++++ libvirt-8.5.0/src/interface/interface_backend_netcf.c @@ -21,7 +21,12 @@ #include @@ -29,7 +29,7 @@ Index: libvirt-8.4.0/src/interface/interface_backend_netcf.c #include "virerror.h" #include "datatypes.h" -@@ -72,6 +77,37 @@ VIR_ONCE_GLOBAL_INIT(virNetcfDriverState +@@ -70,6 +75,37 @@ VIR_ONCE_GLOBAL_INIT(virNetcfDriverState static virNetcfDriverStatePtr driver; @@ -67,7 +67,7 @@ Index: libvirt-8.4.0/src/interface/interface_backend_netcf.c static void virNetcfDriverStateDispose(void *obj) -@@ -127,6 +163,10 @@ netcfStateInitialize(bool privileged, +@@ -125,6 +161,10 @@ netcfStateInitialize(bool privileged, virPidFileAcquire(driver->stateDir, "driver", false, getpid())) < 0) goto error; @@ -78,7 +78,7 @@ Index: libvirt-8.4.0/src/interface/interface_backend_netcf.c /* open netcf */ if (ncf_init(&driver->netcf, NULL) != 0) { virReportError(VIR_ERR_INTERNAL_ERROR, "%s", -@@ -1072,6 +1112,7 @@ static int netcfInterfaceIsActive(virInt +@@ -1070,6 +1110,7 @@ static int netcfInterfaceIsActive(virInt return ret; } @@ -86,7 +86,7 @@ Index: libvirt-8.4.0/src/interface/interface_backend_netcf.c static int netcfInterfaceChangeBegin(virConnectPtr conn, unsigned int flags) { int ret = -1; -@@ -1143,6 +1184,7 @@ static int netcfInterfaceChangeRollback( +@@ -1141,6 +1182,7 @@ static int netcfInterfaceChangeRollback( return ret; } @@ -94,7 +94,7 @@ Index: libvirt-8.4.0/src/interface/interface_backend_netcf.c static virInterfaceDriver interfaceDriver = { .name = INTERFACE_DRIVER_NAME, -@@ -1159,9 +1201,11 @@ static virInterfaceDriver interfaceDrive +@@ -1157,9 +1199,11 @@ static virInterfaceDriver interfaceDrive .interfaceCreate = netcfInterfaceCreate, /* 0.7.0 */ .interfaceDestroy = netcfInterfaceDestroy, /* 0.7.0 */ .interfaceIsActive = netcfInterfaceIsActive, /* 0.7.3 */ @@ -106,7 +106,7 @@ Index: libvirt-8.4.0/src/interface/interface_backend_netcf.c }; -@@ -1192,6 +1236,19 @@ static virStateDriver interfaceStateDriv +@@ -1190,6 +1234,19 @@ static virStateDriver interfaceStateDriv int netcfIfaceRegister(void) { @@ -126,10 +126,10 @@ Index: libvirt-8.4.0/src/interface/interface_backend_netcf.c if (virRegisterConnectDriver(&interfaceConnectDriver, false) < 0) return -1; if (virSetSharedInterfaceDriver(&interfaceDriver) < 0) -Index: libvirt-8.4.0/src/interface/interface_driver.c +Index: libvirt-8.5.0/src/interface/interface_driver.c =================================================================== ---- libvirt-8.4.0.orig/src/interface/interface_driver.c -+++ libvirt-8.4.0/src/interface/interface_driver.c +--- libvirt-8.5.0.orig/src/interface/interface_driver.c ++++ libvirt-8.5.0/src/interface/interface_driver.c @@ -30,8 +30,15 @@ interfaceRegister(void) if (netcfIfaceRegister() == 0) return 0; @@ -147,10 +147,10 @@ Index: libvirt-8.4.0/src/interface/interface_driver.c if (udevIfaceRegister() == 0) return 0; #endif /* WITH_UDEV */ -Index: libvirt-8.4.0/meson.build +Index: libvirt-8.5.0/meson.build =================================================================== ---- libvirt-8.4.0.orig/meson.build -+++ libvirt-8.4.0/meson.build +--- libvirt-8.5.0.orig/meson.build ++++ libvirt-8.5.0/meson.build @@ -1073,6 +1073,12 @@ else netcf_dep = dependency('', required: false) endif @@ -185,10 +185,10 @@ Index: libvirt-8.4.0/meson.build 'NLS': have_gnu_gettext_tools, 'numactl': numactl_dep.found(), 'openwsman': openwsman_dep.found(), -Index: libvirt-8.4.0/src/interface/meson.build +Index: libvirt-8.5.0/src/interface/meson.build =================================================================== ---- libvirt-8.4.0.orig/src/interface/meson.build -+++ libvirt-8.4.0/src/interface/meson.build +--- libvirt-8.5.0.orig/src/interface/meson.build ++++ libvirt-8.5.0/src/interface/meson.build @@ -2,7 +2,7 @@ interface_driver_sources = [ 'interface_driver.c', ] @@ -206,10 +206,10 @@ Index: libvirt-8.4.0/src/interface/meson.build udev_dep, ], 'link_args': [ -Index: libvirt-8.4.0/meson_options.txt +Index: libvirt-8.5.0/meson_options.txt =================================================================== ---- libvirt-8.4.0.orig/meson_options.txt -+++ libvirt-8.4.0/meson_options.txt +--- libvirt-8.5.0.orig/meson_options.txt ++++ libvirt-8.5.0/meson_options.txt @@ -29,6 +29,7 @@ option('libpcap', type: 'feature', value option('libssh', type: 'feature', value: 'auto', description: 'libssh support') option('libssh2', type: 'feature', value: 'auto', description: 'libssh2 support') diff --git a/libvirt.changes b/libvirt.changes index ffa3597..c1a4cd0 100644 --- a/libvirt.changes +++ b/libvirt.changes @@ -1,3 +1,15 @@ +------------------------------------------------------------------- +Tue Jul 5 20:25:19 UTC 2022 - James Fehlig + +- Update to libvirt 8.5.0 + - Many incremental improvements and bug fixes, see + https://libvirt.org/news.html#v8-5-0-2022-07-01 + - Drop downstream-only lxc patches. They received little interest + upstream, are difficult to maintain, and are no longer required + by the requester (SLE): + 0001-Extract-stats-functions-from-the-qemu-driver.patch, + 0002-lxc-implement-connectGetAllDomainStats.patch + ------------------------------------------------------------------- Fri Jun 24 21:23:46 UTC 2022 - James Fehlig diff --git a/libvirt.spec b/libvirt.spec index 508b33f..13500c2 100644 --- a/libvirt.spec +++ b/libvirt.spec @@ -158,7 +158,7 @@ Name: libvirt URL: http://libvirt.org/ -Version: 8.4.0 +Version: 8.5.0 Release: 0 Summary: Library providing a virtualization API License: LGPL-2.1-or-later @@ -309,9 +309,7 @@ Patch150: libvirt-power8-models.patch Patch151: ppc64le-canonical-name.patch Patch152: libxl-set-migration-constraints.patch Patch153: libxl-set-cach-mode.patch -Patch154: 0001-Extract-stats-functions-from-the-qemu-driver.patch -Patch155: 0002-lxc-implement-connectGetAllDomainStats.patch -Patch156: 0001-libxl-add-support-for-BlockResize-API.patch +Patch154: 0001-libxl-add-support-for-BlockResize-API.patch # Our patches Patch200: suse-libvirtd-disable-tls.patch Patch201: suse-libvirt-guests-service.patch diff --git a/libxl-dom-reset.patch b/libxl-dom-reset.patch index 1a88d4d..b45f9de 100644 --- a/libxl-dom-reset.patch +++ b/libxl-dom-reset.patch @@ -8,11 +8,11 @@ Date: Mon Jun 23 15:51:20 2014 -0600 option, but domainReset can be implemented in the libxl driver by forcibly destroying the domain and starting it again. -Index: libvirt-8.4.0/src/libxl/libxl_driver.c +Index: libvirt-8.5.0/src/libxl/libxl_driver.c =================================================================== ---- libvirt-8.4.0.orig/src/libxl/libxl_driver.c -+++ libvirt-8.4.0/src/libxl/libxl_driver.c -@@ -1357,6 +1357,63 @@ libxlDomainReboot(virDomainPtr dom, unsi +--- libvirt-8.5.0.orig/src/libxl/libxl_driver.c ++++ libvirt-8.5.0/src/libxl/libxl_driver.c +@@ -1354,6 +1354,63 @@ libxlDomainReboot(virDomainPtr dom, unsi } static int @@ -76,7 +76,7 @@ Index: libvirt-8.4.0/src/libxl/libxl_driver.c libxlDomainDestroyFlags(virDomainPtr dom, unsigned int flags) { -@@ -6464,6 +6521,7 @@ static virHypervisorDriver libxlHypervis +@@ -6461,6 +6518,7 @@ static virHypervisorDriver libxlHypervis .domainShutdown = libxlDomainShutdown, /* 0.9.0 */ .domainShutdownFlags = libxlDomainShutdownFlags, /* 0.9.10 */ .domainReboot = libxlDomainReboot, /* 0.9.0 */ diff --git a/libxl-set-cach-mode.patch b/libxl-set-cach-mode.patch index 184a2a3..4120fee 100644 --- a/libxl-set-cach-mode.patch +++ b/libxl-set-cach-mode.patch @@ -3,11 +3,11 @@ https://bugzilla.novell.com/show_bug.cgi?id=879425 src/libxl/libxl_conf.c | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) -Index: libvirt-8.4.0/src/libxl/libxl_conf.c +Index: libvirt-8.5.0/src/libxl/libxl_conf.c =================================================================== ---- libvirt-8.4.0.orig/src/libxl/libxl_conf.c -+++ libvirt-8.4.0/src/libxl/libxl_conf.c -@@ -944,6 +944,28 @@ libxlDiskSetDiscard(libxl_device_disk *x +--- libvirt-8.5.0.orig/src/libxl/libxl_conf.c ++++ libvirt-8.5.0/src/libxl/libxl_conf.c +@@ -941,6 +941,28 @@ libxlDiskSetDiscard(libxl_device_disk *x } } @@ -36,7 +36,7 @@ Index: libvirt-8.4.0/src/libxl/libxl_conf.c static char * libxlMakeNetworkDiskSrcStr(virStorageSource *src, const char *username, -@@ -1183,6 +1205,7 @@ libxlMakeDisk(virDomainDiskDef *l_disk, +@@ -1180,6 +1202,7 @@ libxlMakeDisk(virDomainDiskDef *l_disk, x_disk->readwrite = !l_disk->src->readonly; x_disk->is_cdrom = l_disk->device == VIR_DOMAIN_DISK_DEVICE_CDROM ? 1 : 0; libxlDiskSetDiscard(x_disk, l_disk->discard); diff --git a/libxl-set-migration-constraints.patch b/libxl-set-migration-constraints.patch index 3aa4729..90ec240 100644 --- a/libxl-set-migration-constraints.patch +++ b/libxl-set-migration-constraints.patch @@ -16,11 +16,11 @@ Signed-off-by: Jim Fehlig tools/virsh.pod | 8 ++++++++ 6 files changed, 125 insertions(+), 6 deletions(-) -Index: libvirt-8.4.0/docs/manpages/virsh.rst +Index: libvirt-8.5.0/docs/manpages/virsh.rst =================================================================== ---- libvirt-8.4.0.orig/docs/manpages/virsh.rst -+++ libvirt-8.4.0/docs/manpages/virsh.rst -@@ -3258,6 +3258,7 @@ migrate +--- libvirt-8.5.0.orig/docs/manpages/virsh.rst ++++ libvirt-8.5.0/docs/manpages/virsh.rst +@@ -3297,6 +3297,7 @@ migrate [--parallel [--parallel-connections connections]] [--bandwidth bandwidth] [--tls-destination hostname] [--disks-uri URI] [--copy-storage-synchronous-writes] @@ -28,7 +28,7 @@ Index: libvirt-8.4.0/docs/manpages/virsh.rst Migrate domain to another host. Add *--live* for live migration; <--p2p> for peer-2-peer migration; *--direct* for direct migration; or *--tunnelled* -@@ -3375,6 +3376,12 @@ parallel connections. The number of such +@@ -3423,6 +3424,12 @@ parallel connections. The number of such network link between the source and the target and thus speeding up the migration. @@ -41,11 +41,11 @@ Index: libvirt-8.4.0/docs/manpages/virsh.rst Running migration can be canceled by interrupting virsh (usually using ``Ctrl-C``) or by ``domjobabort`` command sent from another virsh instance. -Index: libvirt-8.4.0/include/libvirt/libvirt-domain.h +Index: libvirt-8.5.0/include/libvirt/libvirt-domain.h =================================================================== ---- libvirt-8.4.0.orig/include/libvirt/libvirt-domain.h -+++ libvirt-8.4.0/include/libvirt/libvirt-domain.h -@@ -1352,6 +1352,31 @@ typedef enum { +--- libvirt-8.5.0.orig/include/libvirt/libvirt-domain.h ++++ libvirt-8.5.0/include/libvirt/libvirt-domain.h +@@ -1367,6 +1367,31 @@ typedef enum { */ # define VIR_MIGRATE_PARAM_TLS_DESTINATION "tls.destination" @@ -77,11 +77,11 @@ Index: libvirt-8.4.0/include/libvirt/libvirt-domain.h /* Domain migration. */ virDomainPtr virDomainMigrate (virDomainPtr domain, virConnectPtr dconn, unsigned long flags, const char *dname, -Index: libvirt-8.4.0/src/libxl/libxl_driver.c +Index: libvirt-8.5.0/src/libxl/libxl_driver.c =================================================================== ---- libvirt-8.4.0.orig/src/libxl/libxl_driver.c -+++ libvirt-8.4.0/src/libxl/libxl_driver.c -@@ -6005,6 +6005,9 @@ libxlDomainMigratePerform3Params(virDoma +--- libvirt-8.5.0.orig/src/libxl/libxl_driver.c ++++ libvirt-8.5.0/src/libxl/libxl_driver.c +@@ -6002,6 +6002,9 @@ libxlDomainMigratePerform3Params(virDoma const char *dname = NULL; const char *uri = NULL; int ret = -1; @@ -91,7 +91,7 @@ Index: libvirt-8.4.0/src/libxl/libxl_driver.c #ifdef LIBXL_HAVE_NO_SUSPEND_RESUME virReportUnsupportedError(); -@@ -6021,6 +6024,15 @@ libxlDomainMigratePerform3Params(virDoma +@@ -6018,6 +6021,15 @@ libxlDomainMigratePerform3Params(virDoma virTypedParamsGetString(params, nparams, VIR_MIGRATE_PARAM_DEST_NAME, &dname) < 0 || @@ -107,7 +107,7 @@ Index: libvirt-8.4.0/src/libxl/libxl_driver.c virTypedParamsGetString(params, nparams, VIR_MIGRATE_PARAM_URI, &uri) < 0) -@@ -6035,11 +6047,11 @@ libxlDomainMigratePerform3Params(virDoma +@@ -6032,11 +6044,11 @@ libxlDomainMigratePerform3Params(virDoma if ((flags & (VIR_MIGRATE_TUNNELLED | VIR_MIGRATE_PEER2PEER))) { if (libxlDomainMigrationSrcPerformP2P(driver, vm, dom->conn, dom_xml, @@ -121,11 +121,11 @@ Index: libvirt-8.4.0/src/libxl/libxl_driver.c goto cleanup; } -Index: libvirt-8.4.0/src/libxl/libxl_migration.c +Index: libvirt-8.5.0/src/libxl/libxl_migration.c =================================================================== ---- libvirt-8.4.0.orig/src/libxl/libxl_migration.c -+++ libvirt-8.4.0/src/libxl/libxl_migration.c -@@ -332,18 +332,38 @@ libxlMigrateDstReceive(virNetSocket *soc +--- libvirt-8.5.0.orig/src/libxl/libxl_migration.c ++++ libvirt-8.5.0/src/libxl/libxl_migration.c +@@ -329,18 +329,38 @@ libxlMigrateDstReceive(virNetSocket *soc static int libxlDoMigrateSrcSend(libxlDriverPrivate *driver, virDomainObj *vm, @@ -166,7 +166,7 @@ Index: libvirt-8.4.0/src/libxl/libxl_migration.c if (ret != 0) { virReportError(VIR_ERR_INTERNAL_ERROR, "%s", _("Failed to send migration data to destination host")); -@@ -882,7 +902,7 @@ struct libxlTunnelControl { +@@ -877,7 +897,7 @@ struct libxlTunnelControl { static int libxlMigrationSrcStartTunnel(libxlDriverPrivate *driver, virDomainObj *vm, @@ -175,7 +175,7 @@ Index: libvirt-8.4.0/src/libxl/libxl_migration.c virStreamPtr st, struct libxlTunnelControl **tnl) { -@@ -915,7 +935,7 @@ libxlMigrationSrcStartTunnel(libxlDriver +@@ -910,7 +930,7 @@ libxlMigrationSrcStartTunnel(libxlDriver virObjectUnlock(vm); /* Send data to pipe */ @@ -184,7 +184,7 @@ Index: libvirt-8.4.0/src/libxl/libxl_migration.c virObjectLock(vm); /* libxlMigrationSrcStopTunnel will be called in libxlDoMigrateSrcP2P -@@ -950,7 +970,7 @@ libxlDoMigrateSrcP2P(libxlDriverPrivate +@@ -945,7 +965,7 @@ libxlDoMigrateSrcP2P(libxlDriverPrivate const char *dconnuri G_GNUC_UNUSED, const char *dname, const char *uri, @@ -193,7 +193,7 @@ Index: libvirt-8.4.0/src/libxl/libxl_migration.c { virDomainPtr ddomain = NULL; virTypedParameterPtr params = NULL; -@@ -995,11 +1015,11 @@ libxlDoMigrateSrcP2P(libxlDriverPrivate +@@ -990,11 +1010,11 @@ libxlDoMigrateSrcP2P(libxlDriverPrivate /* We don't require the destination to have P2P support * as it looks to be normal migration from the receiver perspective. */ @@ -207,7 +207,7 @@ Index: libvirt-8.4.0/src/libxl/libxl_migration.c if (!(st = virStreamNew(dconn, 0))) goto confirm; ret = dconn->driver->domainMigratePrepareTunnel3Params -@@ -1013,7 +1033,7 @@ libxlDoMigrateSrcP2P(libxlDriverPrivate +@@ -1008,7 +1028,7 @@ libxlDoMigrateSrcP2P(libxlDriverPrivate if (ret == -1) goto confirm; @@ -216,7 +216,7 @@ Index: libvirt-8.4.0/src/libxl/libxl_migration.c if (uri_out) { if (virTypedParamsReplaceString(¶ms, &nparams, VIR_MIGRATE_PARAM_URI, uri_out) < 0) { -@@ -1028,11 +1048,11 @@ libxlDoMigrateSrcP2P(libxlDriverPrivate +@@ -1023,11 +1043,11 @@ libxlDoMigrateSrcP2P(libxlDriverPrivate } VIR_DEBUG("Perform3 uri=%s", NULLSTR(uri_out)); @@ -231,7 +231,7 @@ Index: libvirt-8.4.0/src/libxl/libxl_migration.c if (ret < 0) { notify_source = false; virErrorPreserveLast(&orig_err); -@@ -1067,7 +1087,7 @@ libxlDoMigrateSrcP2P(libxlDriverPrivate +@@ -1062,7 +1082,7 @@ libxlDoMigrateSrcP2P(libxlDriverPrivate confirm: if (notify_source) { VIR_DEBUG("Confirm3 cancelled=%d vm=%p", cancelled, vm); @@ -240,7 +240,7 @@ Index: libvirt-8.4.0/src/libxl/libxl_migration.c if (ret < 0) VIR_WARN("Guest %s probably left in 'paused' state on source", -@@ -1075,7 +1095,7 @@ libxlDoMigrateSrcP2P(libxlDriverPrivate +@@ -1070,7 +1090,7 @@ libxlDoMigrateSrcP2P(libxlDriverPrivate } cleanup: @@ -249,7 +249,7 @@ Index: libvirt-8.4.0/src/libxl/libxl_migration.c libxlMigrationSrcStopTunnel(tc); virObjectUnref(st); } -@@ -1119,7 +1139,7 @@ libxlDomainMigrationSrcPerformP2P(libxlD +@@ -1114,7 +1134,7 @@ libxlDomainMigrationSrcPerformP2P(libxlD const char *dconnuri, const char *uri_str G_GNUC_UNUSED, const char *dname, @@ -258,7 +258,7 @@ Index: libvirt-8.4.0/src/libxl/libxl_migration.c { int ret = -1; int useParams; -@@ -1153,7 +1173,7 @@ libxlDomainMigrationSrcPerformP2P(libxlD +@@ -1148,7 +1168,7 @@ libxlDomainMigrationSrcPerformP2P(libxlD } ret = libxlDoMigrateSrcP2P(driver, vm, sconn, xmlin, dconn, dconnuri, @@ -267,7 +267,7 @@ Index: libvirt-8.4.0/src/libxl/libxl_migration.c if (ret < 0) { /* -@@ -1180,7 +1200,7 @@ libxlDomainMigrationSrcPerform(libxlDriv +@@ -1175,7 +1195,7 @@ libxlDomainMigrationSrcPerform(libxlDriv const char *dconnuri G_GNUC_UNUSED, const char *uri_str, const char *dname G_GNUC_UNUSED, @@ -276,7 +276,7 @@ Index: libvirt-8.4.0/src/libxl/libxl_migration.c { libxlDomainObjPrivate *priv = vm->privateData; char *hostname = NULL; -@@ -1216,7 +1236,7 @@ libxlDomainMigrationSrcPerform(libxlDriv +@@ -1211,7 +1231,7 @@ libxlDomainMigrationSrcPerform(libxlDriv /* suspend vm and send saved data to dst through socket fd */ virObjectUnlock(vm); @@ -285,10 +285,10 @@ Index: libvirt-8.4.0/src/libxl/libxl_migration.c virObjectLock(vm); if (ret == 0) { -Index: libvirt-8.4.0/src/libxl/libxl_migration.h +Index: libvirt-8.5.0/src/libxl/libxl_migration.h =================================================================== ---- libvirt-8.4.0.orig/src/libxl/libxl_migration.h -+++ libvirt-8.4.0/src/libxl/libxl_migration.h +--- libvirt-8.5.0.orig/src/libxl/libxl_migration.h ++++ libvirt-8.5.0/src/libxl/libxl_migration.h @@ -35,6 +35,9 @@ VIR_MIGRATE_PARAM_URI, VIR_TYPED_PARAM_STRING, \ VIR_MIGRATE_PARAM_DEST_NAME, VIR_TYPED_PARAM_STRING, \ @@ -331,11 +331,11 @@ Index: libvirt-8.4.0/src/libxl/libxl_migration.h virDomainPtr libxlDomainMigrationDstFinish(virConnectPtr dconn, -Index: libvirt-8.4.0/tools/virsh-domain.c +Index: libvirt-8.5.0/tools/virsh-domain.c =================================================================== ---- libvirt-8.4.0.orig/tools/virsh-domain.c -+++ libvirt-8.4.0/tools/virsh-domain.c -@@ -10918,6 +10918,18 @@ static const vshCmdOptDef opts_migrate[] +--- libvirt-8.5.0.orig/tools/virsh-domain.c ++++ libvirt-8.5.0/tools/virsh-domain.c +@@ -11005,6 +11005,18 @@ static const vshCmdOptDef opts_migrate[] .completer = virshCompleteEmpty, .help = N_("override the destination host name used for TLS verification") }, @@ -354,7 +354,7 @@ Index: libvirt-8.4.0/tools/virsh-domain.c {.name = NULL} }; -@@ -10938,6 +10950,7 @@ doMigrate(void *opaque) +@@ -11025,6 +11037,7 @@ doMigrate(void *opaque) unsigned long long ullOpt = 0; int rv; virConnectPtr dconn = data->dconn; @@ -362,7 +362,7 @@ Index: libvirt-8.4.0/tools/virsh-domain.c #ifndef WIN32 sigset_t sigmask, oldsigmask; -@@ -11068,6 +11081,22 @@ doMigrate(void *opaque) +@@ -11155,6 +11168,22 @@ doMigrate(void *opaque) goto save_error; } diff --git a/libxl-support-block-script.patch b/libxl-support-block-script.patch index 361f378..a344a8a 100644 --- a/libxl-support-block-script.patch +++ b/libxl-support-block-script.patch @@ -7,11 +7,11 @@ and npiv. For more details, see bsc#954872 and FATE#319810 -Index: libvirt-8.4.0/src/libxl/libxl_conf.c +Index: libvirt-8.5.0/src/libxl/libxl_conf.c =================================================================== ---- libvirt-8.4.0.orig/src/libxl/libxl_conf.c -+++ libvirt-8.4.0/src/libxl/libxl_conf.c -@@ -945,6 +945,20 @@ libxlDiskSetDiscard(libxl_device_disk *x +--- libvirt-8.5.0.orig/src/libxl/libxl_conf.c ++++ libvirt-8.5.0/src/libxl/libxl_conf.c +@@ -942,6 +942,20 @@ libxlDiskSetDiscard(libxl_device_disk *x } static void @@ -32,15 +32,15 @@ Index: libvirt-8.4.0/src/libxl/libxl_conf.c libxlDiskSetCacheMode(libxl_device_disk *x_disk, int cachemode) { switch (cachemode) { -@@ -1087,6 +1101,7 @@ libxlMakeNetworkDiskSrc(virStorageSource +@@ -1084,6 +1098,7 @@ libxlMakeNetworkDiskSrc(virStorageSource int libxlMakeDisk(virDomainDiskDef *l_disk, libxl_device_disk *x_disk) { + const char *src = virDomainDiskGetSource(l_disk); const char *driver = virDomainDiskGetDriver(l_disk); int format = virDomainDiskGetFormat(l_disk); - int actual_type = virStorageSourceGetActualType(l_disk->src); -@@ -1100,7 +1115,7 @@ libxlMakeDisk(virDomainDiskDef *l_disk, + virStorageType actual_type = virStorageSourceGetActualType(l_disk->src); +@@ -1097,7 +1112,7 @@ libxlMakeDisk(virDomainDiskDef *l_disk, if (libxlMakeNetworkDiskSrc(l_disk->src, &x_disk->pdev_path) < 0) return -1; } else { @@ -49,7 +49,7 @@ Index: libvirt-8.4.0/src/libxl/libxl_conf.c } x_disk->vdev = g_strdup(l_disk->dst); -@@ -1206,6 +1221,8 @@ libxlMakeDisk(virDomainDiskDef *l_disk, +@@ -1203,6 +1218,8 @@ libxlMakeDisk(virDomainDiskDef *l_disk, x_disk->is_cdrom = l_disk->device == VIR_DOMAIN_DISK_DEVICE_CDROM ? 1 : 0; libxlDiskSetDiscard(x_disk, l_disk->discard); libxlDiskSetCacheMode(x_disk, l_disk->cachemode); diff --git a/lxc-wait-after-eth-del.patch b/lxc-wait-after-eth-del.patch index 7aae183..c76e6e5 100644 --- a/lxc-wait-after-eth-del.patch +++ b/lxc-wait-after-eth-del.patch @@ -13,11 +13,11 @@ device with the same name that is being created. src/lxc/lxc_process.c | 1 + 3 files changed, 4 insertions(+) -Index: libvirt-8.4.0/src/lxc/lxc_controller.c +Index: libvirt-8.5.0/src/lxc/lxc_controller.c =================================================================== ---- libvirt-8.4.0.orig/src/lxc/lxc_controller.c -+++ libvirt-8.4.0/src/lxc/lxc_controller.c -@@ -1999,6 +1999,7 @@ static int virLXCControllerDeleteInterfa +--- libvirt-8.5.0.orig/src/lxc/lxc_controller.c ++++ libvirt-8.5.0/src/lxc/lxc_controller.c +@@ -1995,6 +1995,7 @@ static int virLXCControllerDeleteInterfa if (virNetDevVethDelete(ctrl->veths[i]) < 0) ret = -1; } @@ -25,19 +25,11 @@ Index: libvirt-8.4.0/src/lxc/lxc_controller.c return ret; } -Index: libvirt-8.4.0/src/lxc/lxc_driver.c +Index: libvirt-8.5.0/src/lxc/lxc_driver.c =================================================================== ---- libvirt-8.4.0.orig/src/lxc/lxc_driver.c -+++ libvirt-8.4.0/src/lxc/lxc_driver.c -@@ -67,6 +67,7 @@ - #include "virtime.h" - #include "virtypedparam.h" - #include "viruri.h" -+#include "virutil.h" - #include "virstring.h" - #include "viraccessapicheck.h" - #include "viraccessapichecklxc.h" -@@ -3508,6 +3509,7 @@ lxcDomainAttachDeviceNetLive(virLXCDrive +--- libvirt-8.5.0.orig/src/lxc/lxc_driver.c ++++ libvirt-8.5.0/src/lxc/lxc_driver.c +@@ -3502,6 +3502,7 @@ lxcDomainAttachDeviceNetLive(virLXCDrive case VIR_DOMAIN_NET_TYPE_NETWORK: case VIR_DOMAIN_NET_TYPE_ETHERNET: ignore_value(virNetDevVethDelete(veth)); @@ -45,7 +37,7 @@ Index: libvirt-8.4.0/src/lxc/lxc_driver.c break; case VIR_DOMAIN_NET_TYPE_DIRECT: -@@ -3947,6 +3949,7 @@ lxcDomainDetachDeviceNetLive(virDomainOb +@@ -3941,6 +3942,7 @@ lxcDomainDetachDeviceNetLive(virDomainOb virDomainAuditNet(vm, detach, NULL, "detach", false); goto cleanup; } @@ -53,19 +45,11 @@ Index: libvirt-8.4.0/src/lxc/lxc_driver.c break; /* It'd be nice to support this, but with macvlan -Index: libvirt-8.4.0/src/lxc/lxc_process.c +Index: libvirt-8.5.0/src/lxc/lxc_process.c =================================================================== ---- libvirt-8.4.0.orig/src/lxc/lxc_process.c -+++ libvirt-8.4.0/src/lxc/lxc_process.c -@@ -51,6 +51,7 @@ - #include "virstring.h" - #include "virprocess.h" - #include "virsystemd.h" -+#include "virutil.h" - #include "netdev_bandwidth_conf.h" - #include "virutil.h" - -@@ -243,6 +244,7 @@ static void virLXCProcessCleanup(virLXCD +--- libvirt-8.5.0.orig/src/lxc/lxc_process.c ++++ libvirt-8.5.0/src/lxc/lxc_process.c +@@ -239,6 +239,7 @@ static void virLXCProcessCleanup(virLXCD VIR_WARN("Unable to release network device '%s'", NULLSTR(iface->ifname)); } } diff --git a/network-don-t-use-dhcp-authoritative-on-static-netwo.patch b/network-don-t-use-dhcp-authoritative-on-static-netwo.patch index 23e19b9..3b560d7 100644 --- a/network-don-t-use-dhcp-authoritative-on-static-netwo.patch +++ b/network-don-t-use-dhcp-authoritative-on-static-netwo.patch @@ -17,30 +17,30 @@ Signed-off-by: Martin Wilck tests/networkxml2confdata/dhcp6host-routed-network.conf | 1 - 2 files changed, 8 insertions(+), 2 deletions(-) -Index: libvirt-8.4.0/src/network/bridge_driver.c +Index: libvirt-8.5.0/src/network/bridge_driver.c =================================================================== ---- libvirt-8.4.0.orig/src/network/bridge_driver.c -+++ libvirt-8.4.0/src/network/bridge_driver.c -@@ -1334,7 +1334,14 @@ networkDnsmasqConfContents(virNetworkObj - if (VIR_SOCKET_ADDR_IS_FAMILY(&ipdef->address, AF_INET)) { - if (ipdef->nranges || ipdef->nhosts) { - virBufferAddLit(&configbuf, "dhcp-no-override\n"); -- virBufferAddLit(&configbuf, "dhcp-authoritative\n"); -+ /* -+ * Use "dhcp-authoritative" only for dynamic DHCP. -+ * In a static-only network, it would cause dnsmasq -+ * to reply to requests from other hosts than those -+ * statically defined. -+ */ -+ if (ipdef->nranges || !ipdef->nhosts) -+ virBufferAddLit(&configbuf, "dhcp-authoritative\n"); - } +--- libvirt-8.5.0.orig/src/network/bridge_driver.c ++++ libvirt-8.5.0/src/network/bridge_driver.c +@@ -1080,7 +1080,14 @@ networkDnsmasqConfDHCP(virBuffer *buf, + if (VIR_SOCKET_ADDR_IS_FAMILY(&ipdef->address, AF_INET)) { + if (ipdef->nranges || ipdef->nhosts) { + virBufferAddLit(buf, "dhcp-no-override\n"); +- virBufferAddLit(buf, "dhcp-authoritative\n"); ++ /* ++ * Use "dhcp-authoritative" only for dynamic DHCP. ++ * In a static-only network, it would cause dnsmasq ++ * to reply to requests from other hosts than those ++ * statically defined. ++ */ ++ if (ipdef->nranges || !ipdef->nhosts) ++ virBufferAddLit(buf, "dhcp-authoritative\n"); + } - if (ipdef->tftproot) { -Index: libvirt-8.4.0/tests/networkxml2confdata/dhcp6host-routed-network.conf + if (ipdef->bootfile) { +Index: libvirt-8.5.0/tests/networkxml2confdata/dhcp6host-routed-network.conf =================================================================== ---- libvirt-8.4.0.orig/tests/networkxml2confdata/dhcp6host-routed-network.conf -+++ libvirt-8.4.0/tests/networkxml2confdata/dhcp6host-routed-network.conf +--- libvirt-8.5.0.orig/tests/networkxml2confdata/dhcp6host-routed-network.conf ++++ libvirt-8.5.0/tests/networkxml2confdata/dhcp6host-routed-network.conf @@ -10,7 +10,6 @@ bind-dynamic interface=virbr1 dhcp-range=192.168.122.1,static diff --git a/ppc64le-canonical-name.patch b/ppc64le-canonical-name.patch index 03963c1..5a42b79 100644 --- a/ppc64le-canonical-name.patch +++ b/ppc64le-canonical-name.patch @@ -2,10 +2,10 @@ Canonicalize hostarch name ppc64le to ppc64 See bnc#894956 -Index: libvirt-8.4.0/src/util/virarch.c +Index: libvirt-8.5.0/src/util/virarch.c =================================================================== ---- libvirt-8.4.0.orig/src/util/virarch.c -+++ libvirt-8.4.0/src/util/virarch.c +--- libvirt-8.5.0.orig/src/util/virarch.c ++++ libvirt-8.5.0/src/util/virarch.c @@ -222,6 +222,8 @@ virArch virArchFromHost(void) arch = VIR_ARCH_X86_64; } else if (STREQ(ut.machine, "arm64")) { diff --git a/qemu-apparmor-screenshot.patch b/qemu-apparmor-screenshot.patch index fef397d..540e250 100644 --- a/qemu-apparmor-screenshot.patch +++ b/qemu-apparmor-screenshot.patch @@ -1,7 +1,7 @@ -Index: libvirt-8.4.0/src/security/apparmor/libvirt-qemu +Index: libvirt-8.5.0/src/security/apparmor/libvirt-qemu =================================================================== ---- libvirt-8.4.0.orig/src/security/apparmor/libvirt-qemu -+++ libvirt-8.4.0/src/security/apparmor/libvirt-qemu +--- libvirt-8.5.0.orig/src/security/apparmor/libvirt-qemu ++++ libvirt-8.5.0/src/security/apparmor/libvirt-qemu @@ -253,3 +253,6 @@ # required for QEMU accessing UEFI nvram variables owner /var/lib/libvirt/qemu/nvram/*_VARS.fd rwk, diff --git a/suse-libvirt-guests-service.patch b/suse-libvirt-guests-service.patch index 10dab53..1a13fb4 100644 --- a/suse-libvirt-guests-service.patch +++ b/suse-libvirt-guests-service.patch @@ -1,9 +1,9 @@ Adjust libvirt-guests service to conform to SUSE standards -Index: libvirt-8.4.0/tools/libvirt-guests.sh.in +Index: libvirt-8.5.0/tools/libvirt-guests.sh.in =================================================================== ---- libvirt-8.4.0.orig/tools/libvirt-guests.sh.in -+++ libvirt-8.4.0/tools/libvirt-guests.sh.in +--- libvirt-8.5.0.orig/tools/libvirt-guests.sh.in ++++ libvirt-8.5.0/tools/libvirt-guests.sh.in @@ -20,10 +20,6 @@ sysconfdir="@sysconfdir@" localstatedir="@localstatedir@" libvirtd="@sbindir@"/libvirtd diff --git a/suse-libvirtd-disable-tls.patch b/suse-libvirtd-disable-tls.patch index 3635208..28102c7 100644 --- a/suse-libvirtd-disable-tls.patch +++ b/suse-libvirtd-disable-tls.patch @@ -3,11 +3,11 @@ Disable TLS by default On SUSE distros, the default is for libvirtd to listen only on the Unix Domain Socket. The libvirt client still provides remote access via a SSH tunnel. -Index: libvirt-8.4.0/src/remote/remote_daemon_config.c +Index: libvirt-8.5.0/src/remote/remote_daemon_config.c =================================================================== ---- libvirt-8.4.0.orig/src/remote/remote_daemon_config.c -+++ libvirt-8.4.0/src/remote/remote_daemon_config.c -@@ -98,7 +98,7 @@ daemonConfigNew(bool privileged G_GNUC_U +--- libvirt-8.5.0.orig/src/remote/remote_daemon_config.c ++++ libvirt-8.5.0/src/remote/remote_daemon_config.c +@@ -97,7 +97,7 @@ daemonConfigNew(bool privileged G_GNUC_U #ifdef WITH_IP # ifdef LIBVIRTD @@ -16,10 +16,10 @@ Index: libvirt-8.4.0/src/remote/remote_daemon_config.c # else /* ! LIBVIRTD */ data->listen_tls = false; /* Always honoured, --listen doesn't exist. */ # endif /* ! LIBVIRTD */ -Index: libvirt-8.4.0/src/remote/libvirtd.conf.in +Index: libvirt-8.5.0/src/remote/libvirtd.conf.in =================================================================== ---- libvirt-8.4.0.orig/src/remote/libvirtd.conf.in -+++ libvirt-8.4.0/src/remote/libvirtd.conf.in +--- libvirt-8.5.0.orig/src/remote/libvirtd.conf.in ++++ libvirt-8.5.0/src/remote/libvirtd.conf.in @@ -17,8 +17,8 @@ # It is necessary to setup a CA and issue server certificates before # using this capability. @@ -31,10 +31,10 @@ Index: libvirt-8.4.0/src/remote/libvirtd.conf.in # Listen for unencrypted TCP connections on the public TCP/IP port. # NB, must pass the --listen flag to the @DAEMON_NAME@ process for this to -Index: libvirt-8.4.0/src/remote/test_libvirtd.aug.in +Index: libvirt-8.5.0/src/remote/test_libvirtd.aug.in =================================================================== ---- libvirt-8.4.0.orig/src/remote/test_libvirtd.aug.in -+++ libvirt-8.4.0/src/remote/test_libvirtd.aug.in +--- libvirt-8.5.0.orig/src/remote/test_libvirtd.aug.in ++++ libvirt-8.5.0/src/remote/test_libvirtd.aug.in @@ -3,7 +3,7 @@ module Test_@DAEMON_NAME@ = test @DAEMON_NAME_UC@.lns get conf = diff --git a/suse-libxl-disable-autoballoon.patch b/suse-libxl-disable-autoballoon.patch index b73f2ce..183b097 100644 --- a/suse-libxl-disable-autoballoon.patch +++ b/suse-libxl-disable-autoballoon.patch @@ -6,10 +6,10 @@ autoballooning. This patch changes libvirt to also disable autoballooning by default. It can only be enabled with the 'autoballoon' setting in libxl.conf. See jsc#SLE-3059 for more details. -Index: libvirt-8.4.0/src/libxl/libxl.conf +Index: libvirt-8.5.0/src/libxl/libxl.conf =================================================================== ---- libvirt-8.4.0.orig/src/libxl/libxl.conf -+++ libvirt-8.4.0/src/libxl/libxl.conf +--- libvirt-8.5.0.orig/src/libxl/libxl.conf ++++ libvirt-8.5.0/src/libxl/libxl.conf @@ -4,12 +4,11 @@ # Enable autoballooning of domain0 @@ -27,11 +27,11 @@ Index: libvirt-8.4.0/src/libxl/libxl.conf # In order to prevent accidentally starting two domains that -Index: libvirt-8.4.0/src/libxl/libxl_conf.c +Index: libvirt-8.5.0/src/libxl/libxl_conf.c =================================================================== ---- libvirt-8.4.0.orig/src/libxl/libxl_conf.c -+++ libvirt-8.4.0/src/libxl/libxl_conf.c -@@ -1734,15 +1734,12 @@ libxlMakeBuildInfoVfb(virPortAllocatorRa +--- libvirt-8.5.0.orig/src/libxl/libxl_conf.c ++++ libvirt-8.5.0/src/libxl/libxl_conf.c +@@ -1731,15 +1731,12 @@ libxlMakeBuildInfoVfb(virPortAllocatorRa /* * Get domain0 autoballoon configuration. Honor user-specified * setting in libxl.conf first. If not specified, autoballooning @@ -48,7 +48,7 @@ Index: libvirt-8.4.0/src/libxl/libxl_conf.c int res; res = virConfGetValueBool(conf, "autoballoon", &cfg->autoballoon); -@@ -1751,15 +1748,8 @@ libxlGetAutoballoonConf(libxlDriverConfi +@@ -1748,15 +1745,8 @@ libxlGetAutoballoonConf(libxlDriverConfi else if (res == 1) return 0; @@ -66,10 +66,10 @@ Index: libvirt-8.4.0/src/libxl/libxl_conf.c return 0; } -Index: libvirt-8.4.0/src/libxl/test_libvirtd_libxl.aug.in +Index: libvirt-8.5.0/src/libxl/test_libvirtd_libxl.aug.in =================================================================== ---- libvirt-8.4.0.orig/src/libxl/test_libvirtd_libxl.aug.in -+++ libvirt-8.4.0/src/libxl/test_libvirtd_libxl.aug.in +--- libvirt-8.5.0.orig/src/libxl/test_libvirtd_libxl.aug.in ++++ libvirt-8.5.0/src/libxl/test_libvirtd_libxl.aug.in @@ -2,7 +2,7 @@ module Test_libvirtd_libxl = @CONFIG@ diff --git a/suse-qemu-conf.patch b/suse-qemu-conf.patch index 72489be..ae78cbf 100644 --- a/suse-qemu-conf.patch +++ b/suse-qemu-conf.patch @@ -7,11 +7,11 @@ suse-qemu-conf-secdriver.patch, suse-qemu-conf-lockmgr.patch, etc.), but for now they are all lumped together in this single patch. -Index: libvirt-8.4.0/src/qemu/qemu_conf.c +Index: libvirt-8.5.0/src/qemu/qemu_conf.c =================================================================== ---- libvirt-8.4.0.orig/src/qemu/qemu_conf.c -+++ libvirt-8.4.0/src/qemu/qemu_conf.c -@@ -261,7 +261,7 @@ virQEMUDriverConfig *virQEMUDriverConfig +--- libvirt-8.5.0.orig/src/qemu/qemu_conf.c ++++ libvirt-8.5.0/src/qemu/qemu_conf.c +@@ -256,7 +256,7 @@ virQEMUDriverConfig *virQEMUDriverConfig cfg->slirpHelperName = g_strdup(QEMU_SLIRP_HELPER); cfg->dbusDaemonName = g_strdup(QEMU_DBUS_DAEMON); @@ -20,10 +20,10 @@ Index: libvirt-8.4.0/src/qemu/qemu_conf.c cfg->securityRequireConfined = false; cfg->keepAliveInterval = 5; -Index: libvirt-8.4.0/src/qemu/test_libvirtd_qemu.aug.in +Index: libvirt-8.5.0/src/qemu/test_libvirtd_qemu.aug.in =================================================================== ---- libvirt-8.4.0.orig/src/qemu/test_libvirtd_qemu.aug.in -+++ libvirt-8.4.0/src/qemu/test_libvirtd_qemu.aug.in +--- libvirt-8.5.0.orig/src/qemu/test_libvirtd_qemu.aug.in ++++ libvirt-8.5.0/src/qemu/test_libvirtd_qemu.aug.in @@ -45,6 +45,7 @@ module Test_libvirtd_qemu = { "remote_websocket_port_min" = "5700" } { "remote_websocket_port_max" = "65535" } @@ -32,10 +32,10 @@ Index: libvirt-8.4.0/src/qemu/test_libvirtd_qemu.aug.in { "security_default_confined" = "1" } { "security_require_confined" = "1" } { "user" = "@QEMU_USER@" } -Index: libvirt-8.4.0/src/qemu/qemu.conf.in +Index: libvirt-8.5.0/src/qemu/qemu.conf.in =================================================================== ---- libvirt-8.4.0.orig/src/qemu/qemu.conf.in -+++ libvirt-8.4.0/src/qemu/qemu.conf.in +--- libvirt-8.5.0.orig/src/qemu/qemu.conf.in ++++ libvirt-8.5.0/src/qemu/qemu.conf.in @@ -491,10 +491,19 @@ # isolation, but it cannot appear in a list of drivers. # diff --git a/suse-qemu-ovmf-paths.patch b/suse-qemu-ovmf-paths.patch index b6868eb..74c5417 100644 --- a/suse-qemu-ovmf-paths.patch +++ b/suse-qemu-ovmf-paths.patch @@ -5,11 +5,11 @@ advertised and used by libvirt are automatically detected. Until upstream removes the old DEFAULT_LOADER_NVRAM approach and associated code, this patch will stay. -Index: libvirt-8.4.0/src/qemu/qemu_conf.c +Index: libvirt-8.5.0/src/qemu/qemu_conf.c =================================================================== ---- libvirt-8.4.0.orig/src/qemu/qemu_conf.c -+++ libvirt-8.4.0/src/qemu/qemu_conf.c -@@ -87,10 +87,9 @@ VIR_ONCE_GLOBAL_INIT(virQEMUConfig); +--- libvirt-8.5.0.orig/src/qemu/qemu_conf.c ++++ libvirt-8.5.0/src/qemu/qemu_conf.c +@@ -82,10 +82,9 @@ VIR_ONCE_GLOBAL_INIT(virQEMUConfig); #ifndef DEFAULT_LOADER_NVRAM # define DEFAULT_LOADER_NVRAM \ @@ -23,10 +23,10 @@ Index: libvirt-8.4.0/src/qemu/qemu_conf.c #endif -Index: libvirt-8.4.0/src/security/virt-aa-helper.c +Index: libvirt-8.5.0/src/security/virt-aa-helper.c =================================================================== ---- libvirt-8.4.0.orig/src/security/virt-aa-helper.c -+++ libvirt-8.4.0/src/security/virt-aa-helper.c +--- libvirt-8.5.0.orig/src/security/virt-aa-helper.c ++++ libvirt-8.5.0/src/security/virt-aa-helper.c @@ -480,7 +480,8 @@ valid_path(const char *path, const bool "/usr/share/ovmf/", /* for OVMF images */ "/usr/share/AAVMF/", /* for AAVMF images */ @@ -37,10 +37,10 @@ Index: libvirt-8.4.0/src/security/virt-aa-helper.c }; /* override the above with these */ const char * const override[] = { -Index: libvirt-8.4.0/src/qemu/test_libvirtd_qemu.aug.in +Index: libvirt-8.5.0/src/qemu/test_libvirtd_qemu.aug.in =================================================================== ---- libvirt-8.4.0.orig/src/qemu/test_libvirtd_qemu.aug.in -+++ libvirt-8.4.0/src/qemu/test_libvirtd_qemu.aug.in +--- libvirt-8.5.0.orig/src/qemu/test_libvirtd_qemu.aug.in ++++ libvirt-8.5.0/src/qemu/test_libvirtd_qemu.aug.in @@ -96,10 +96,9 @@ module Test_libvirtd_qemu = { "migration_port_max" = "49215" } { "log_timestamp" = "0" } @@ -55,10 +55,10 @@ Index: libvirt-8.4.0/src/qemu/test_libvirtd_qemu.aug.in } { "stdio_handler" = "logd" } { "gluster_debug_level" = "9" } -Index: libvirt-8.4.0/src/qemu/qemu.conf.in +Index: libvirt-8.5.0/src/qemu/qemu.conf.in =================================================================== ---- libvirt-8.4.0.orig/src/qemu/qemu.conf.in -+++ libvirt-8.4.0/src/qemu/qemu.conf.in +--- libvirt-8.5.0.orig/src/qemu/qemu.conf.in ++++ libvirt-8.5.0/src/qemu/qemu.conf.in @@ -857,10 +857,9 @@ # for x86_64 and i686, but it's AAVMF for aarch64. The libvirt default # follows this scheme. diff --git a/suse-xen-ovmf-paths.patch b/suse-xen-ovmf-paths.patch index a32922e..80b109f 100644 --- a/suse-xen-ovmf-paths.patch +++ b/suse-xen-ovmf-paths.patch @@ -5,11 +5,11 @@ June 2021 ovmf only supports one firmware for Xen. This patch adjusts the firmware path to match the one provided by the ovmf package. -Index: libvirt-8.4.0/src/libxl/libxl_conf.c +Index: libvirt-8.5.0/src/libxl/libxl_conf.c =================================================================== ---- libvirt-8.4.0.orig/src/libxl/libxl_conf.c -+++ libvirt-8.4.0/src/libxl/libxl_conf.c -@@ -1785,7 +1785,7 @@ libxlDriverConfigNew(void) +--- libvirt-8.5.0.orig/src/libxl/libxl_conf.c ++++ libvirt-8.5.0/src/libxl/libxl_conf.c +@@ -1782,7 +1782,7 @@ libxlDriverConfigNew(void) cfg->firmwares = g_new0(virFirmware *, 1); cfg->nfirmwares = 1; cfg->firmwares[0] = g_new0(virFirmware, 1); diff --git a/virt-create-rootfs.patch b/virt-create-rootfs.patch index fb0976b..f53aceb 100644 --- a/virt-create-rootfs.patch +++ b/virt-create-rootfs.patch @@ -1,7 +1,7 @@ -Index: libvirt-8.4.0/tools/virt-create-rootfs +Index: libvirt-8.5.0/tools/virt-create-rootfs =================================================================== --- /dev/null -+++ libvirt-8.4.0/tools/virt-create-rootfs ++++ libvirt-8.5.0/tools/virt-create-rootfs @@ -0,0 +1,236 @@ +#!/bin/sh +set -e @@ -239,10 +239,10 @@ Index: libvirt-8.4.0/tools/virt-create-rootfs + echo "pts/0" >> "$ROOT/etc/securetty" + chroot "$ROOT" /usr/bin/passwd +fi -Index: libvirt-8.4.0/docs/manpages/virt-create-rootfs.rst +Index: libvirt-8.5.0/docs/manpages/virt-create-rootfs.rst =================================================================== --- /dev/null -+++ libvirt-8.4.0/docs/manpages/virt-create-rootfs.rst ++++ libvirt-8.5.0/docs/manpages/virt-create-rootfs.rst @@ -0,0 +1,88 @@ +================== +virt-create-rootfs @@ -332,10 +332,10 @@ Index: libvirt-8.4.0/docs/manpages/virt-create-rootfs.rst +======== + +virsh(1), `https://libvirt.org/ `_ -Index: libvirt-8.4.0/docs/manpages/meson.build +Index: libvirt-8.5.0/docs/manpages/meson.build =================================================================== ---- libvirt-8.4.0.orig/docs/manpages/meson.build -+++ libvirt-8.4.0/docs/manpages/meson.build +--- libvirt-8.5.0.orig/docs/manpages/meson.build ++++ libvirt-8.5.0/docs/manpages/meson.build @@ -19,6 +19,7 @@ docs_man_files = [ { 'name': 'virt-pki-validate', 'section': '1', 'install': true }, { 'name': 'virt-qemu-run', 'section': '1', 'install': conf.has('WITH_QEMU') }, @@ -344,10 +344,10 @@ Index: libvirt-8.4.0/docs/manpages/meson.build { 'name': 'libvirt-guests', 'section': '8', 'install': conf.has('WITH_LIBVIRTD') }, { 'name': 'libvirtd', 'section': '8', 'install': conf.has('WITH_LIBVIRTD') }, -Index: libvirt-8.4.0/tools/meson.build +Index: libvirt-8.5.0/tools/meson.build =================================================================== ---- libvirt-8.4.0.orig/tools/meson.build -+++ libvirt-8.4.0/tools/meson.build +--- libvirt-8.5.0.orig/tools/meson.build ++++ libvirt-8.5.0/tools/meson.build @@ -154,6 +154,8 @@ else virsh_icon_res = [] endif