SHA256
1
0
forked from pool/libvirt

Accepting request 987259 from home:jfehlig:branches:Virtualization

- 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

OBS-URL: https://build.opensuse.org/request/show/987259
OBS-URL: https://build.opensuse.org/package/show/Virtualization/libvirt?expand=0&rev=935
This commit is contained in:
James Fehlig 2022-07-06 17:18:39 +00:00 committed by Git OBS Bridge
parent 615f0c03d0
commit 341a5e8f5e
27 changed files with 232 additions and 845 deletions

View File

@ -1,446 +0,0 @@
From 6609ed5a377c3beaf8389e870b6851856cee42c7 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?C=C3=A9dric=20Bosdonnat?= <cbosdonnat@suse.com>
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
+ * <http://www.gnu.org/licenses/>.
+ */
+
+#include <config.h>
+
+#include <stdio.h>
+
+#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
+ * <http://www.gnu.org/licenses/>.
+ */
+#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',

View File

@ -19,11 +19,11 @@ reworking this patch and submitting it to upstream libvirt.
src/libxl/libxl_driver.c | 91 ++++++++++++++++++++++++++++++++++++++++++++++++ src/libxl/libxl_driver.c | 91 ++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 91 insertions(+) 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.5.0.orig/src/libxl/libxl_driver.c
+++ libvirt-8.4.0/src/libxl/libxl_driver.c +++ libvirt-8.5.0/src/libxl/libxl_driver.c
@@ -5260,6 +5260,95 @@ libxlDomainMemoryStats(virDomainPtr dom, @@ -5257,6 +5257,95 @@ libxlDomainMemoryStats(virDomainPtr dom,
#undef LIBXL_SET_MEMSTAT #undef LIBXL_SET_MEMSTAT
@ -119,7 +119,7 @@ Index: libvirt-8.4.0/src/libxl/libxl_driver.c
static int static int
libxlDomainGetJobInfo(virDomainPtr dom, libxlDomainGetJobInfo(virDomainPtr dom,
virDomainJobInfoPtr info) virDomainJobInfoPtr info)
@@ -6586,6 +6675,7 @@ static virHypervisorDriver libxlHypervis @@ -6583,6 +6672,7 @@ static virHypervisorDriver libxlHypervis
.domainGetNumaParameters = libxlDomainGetNumaParameters, /* 1.1.1 */ .domainGetNumaParameters = libxlDomainGetNumaParameters, /* 1.1.1 */
.nodeGetFreeMemory = libxlNodeGetFreeMemory, /* 0.9.0 */ .nodeGetFreeMemory = libxlNodeGetFreeMemory, /* 0.9.0 */
.nodeGetCellsFreeMemory = libxlNodeGetCellsFreeMemory, /* 1.1.1 */ .nodeGetCellsFreeMemory = libxlNodeGetCellsFreeMemory, /* 1.1.1 */
@ -127,10 +127,10 @@ Index: libvirt-8.4.0/src/libxl/libxl_driver.c
.domainGetJobInfo = libxlDomainGetJobInfo, /* 1.3.1 */ .domainGetJobInfo = libxlDomainGetJobInfo, /* 1.3.1 */
.domainGetJobStats = libxlDomainGetJobStats, /* 1.3.1 */ .domainGetJobStats = libxlDomainGetJobStats, /* 1.3.1 */
.domainMemoryStats = libxlDomainMemoryStats, /* 1.3.0 */ .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.5.0.orig/src/libxl/libxl_api_wrapper.h
+++ libvirt-8.4.0/src/libxl/libxl_api_wrapper.h +++ libvirt-8.5.0/src/libxl/libxl_api_wrapper.h
@@ -215,3 +215,18 @@ libxlSetMemoryTargetWrapper(libxl_ctx *c @@ -215,3 +215,18 @@ libxlSetMemoryTargetWrapper(libxl_ctx *c
return ret; return ret;

View File

@ -18,11 +18,11 @@ Signed-off-by: Martin Kletzander <mkletzan@redhat.com>
src/util/virpolkit.c | 3 +++ src/util/virpolkit.c | 3 +++
1 file changed, 3 insertions(+) 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.5.0.orig/src/util/virpolkit.c
+++ libvirt-8.4.0/src/util/virpolkit.c +++ libvirt-8.5.0/src/util/virpolkit.c
@@ -237,6 +237,9 @@ virPolkitAgentAvailable(void) @@ -235,6 +235,9 @@ virPolkitAgentAvailable(void)
const char *termid = ctermid(NULL); const char *termid = ctermid(NULL);
VIR_AUTOCLOSE fd = -1; VIR_AUTOCLOSE fd = -1;

View File

@ -1,161 +0,0 @@
From 1a2be7098cf5acfd893153abb52b65e69631dcec Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?C=C3=A9dric=20Bosdonnat?= <cbosdonnat@suse.com>
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 = {

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:601a6e9bb03a43d05659f63e4a403df253ab0975b4a973f10a5607f3bbc018dd
size 8846528

View File

@ -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-----

3
libvirt-8.5.0.tar.xz Normal file
View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:401e99b5e1b83de39a86347e091a85eb4dba82a87053dfcb5aa250328f97db62
size 8886088

16
libvirt-8.5.0.tar.xz.asc Normal file
View File

@ -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-----

View File

@ -2,10 +2,10 @@ Add POWER8 v2.0 and v2.1 to cpu map XML
From: <ro@suse.de> From: <ro@suse.de>
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.5.0.orig/src/cpu_map/ppc64_POWER8.xml
+++ libvirt-8.4.0/src/cpu_map/ppc64_POWER8.xml +++ libvirt-8.5.0/src/cpu_map/ppc64_POWER8.xml
@@ -4,5 +4,7 @@ @@ -4,5 +4,7 @@
<pvr value='0x004b0000' mask='0xffff0000'/> <pvr value='0x004b0000' mask='0xffff0000'/>
<pvr value='0x004c0000' mask='0xffff0000'/> <pvr value='0x004c0000' mask='0xffff0000'/>

View File

@ -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.5.0.orig/tools/virsh.c
+++ libvirt-8.4.0/tools/virsh.c +++ libvirt-8.5.0/tools/virsh.c
@@ -552,6 +552,8 @@ virshShowVersion(vshControl *ctl G_GNUC_ @@ -545,6 +545,8 @@ virshShowVersion(vshControl *ctl G_GNUC_
vshPrint(ctl, " Interface"); vshPrint(ctl, " Interface");
# if defined(WITH_NETCF) # if defined(WITH_NETCF)
vshPrint(ctl, " netcf"); vshPrint(ctl, " netcf");
@ -11,10 +11,10 @@ Index: libvirt-8.4.0/tools/virsh.c
# elif defined(WITH_UDEV) # elif defined(WITH_UDEV)
vshPrint(ctl, " udev"); vshPrint(ctl, " udev");
# endif # 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.5.0.orig/src/interface/interface_backend_netcf.c
+++ libvirt-8.4.0/src/interface/interface_backend_netcf.c +++ libvirt-8.5.0/src/interface/interface_backend_netcf.c
@@ -21,7 +21,12 @@ @@ -21,7 +21,12 @@
#include <config.h> #include <config.h>
@ -29,7 +29,7 @@ Index: libvirt-8.4.0/src/interface/interface_backend_netcf.c
#include "virerror.h" #include "virerror.h"
#include "datatypes.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; static virNetcfDriverStatePtr driver;
@ -67,7 +67,7 @@ Index: libvirt-8.4.0/src/interface/interface_backend_netcf.c
static void static void
virNetcfDriverStateDispose(void *obj) virNetcfDriverStateDispose(void *obj)
@@ -127,6 +163,10 @@ netcfStateInitialize(bool privileged, @@ -125,6 +161,10 @@ netcfStateInitialize(bool privileged,
virPidFileAcquire(driver->stateDir, "driver", false, getpid())) < 0) virPidFileAcquire(driver->stateDir, "driver", false, getpid())) < 0)
goto error; goto error;
@ -78,7 +78,7 @@ Index: libvirt-8.4.0/src/interface/interface_backend_netcf.c
/* open netcf */ /* open netcf */
if (ncf_init(&driver->netcf, NULL) != 0) { if (ncf_init(&driver->netcf, NULL) != 0) {
virReportError(VIR_ERR_INTERNAL_ERROR, "%s", virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
@@ -1072,6 +1112,7 @@ static int netcfInterfaceIsActive(virInt @@ -1070,6 +1110,7 @@ static int netcfInterfaceIsActive(virInt
return ret; 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) static int netcfInterfaceChangeBegin(virConnectPtr conn, unsigned int flags)
{ {
int ret = -1; int ret = -1;
@@ -1143,6 +1184,7 @@ static int netcfInterfaceChangeRollback( @@ -1141,6 +1182,7 @@ static int netcfInterfaceChangeRollback(
return ret; return ret;
} }
@ -94,7 +94,7 @@ Index: libvirt-8.4.0/src/interface/interface_backend_netcf.c
static virInterfaceDriver interfaceDriver = { static virInterfaceDriver interfaceDriver = {
.name = INTERFACE_DRIVER_NAME, .name = INTERFACE_DRIVER_NAME,
@@ -1159,9 +1201,11 @@ static virInterfaceDriver interfaceDrive @@ -1157,9 +1199,11 @@ static virInterfaceDriver interfaceDrive
.interfaceCreate = netcfInterfaceCreate, /* 0.7.0 */ .interfaceCreate = netcfInterfaceCreate, /* 0.7.0 */
.interfaceDestroy = netcfInterfaceDestroy, /* 0.7.0 */ .interfaceDestroy = netcfInterfaceDestroy, /* 0.7.0 */
.interfaceIsActive = netcfInterfaceIsActive, /* 0.7.3 */ .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) int netcfIfaceRegister(void)
{ {
@ -126,10 +126,10 @@ Index: libvirt-8.4.0/src/interface/interface_backend_netcf.c
if (virRegisterConnectDriver(&interfaceConnectDriver, false) < 0) if (virRegisterConnectDriver(&interfaceConnectDriver, false) < 0)
return -1; return -1;
if (virSetSharedInterfaceDriver(&interfaceDriver) < 0) 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.5.0.orig/src/interface/interface_driver.c
+++ libvirt-8.4.0/src/interface/interface_driver.c +++ libvirt-8.5.0/src/interface/interface_driver.c
@@ -30,8 +30,15 @@ interfaceRegister(void) @@ -30,8 +30,15 @@ interfaceRegister(void)
if (netcfIfaceRegister() == 0) if (netcfIfaceRegister() == 0)
return 0; return 0;
@ -147,10 +147,10 @@ Index: libvirt-8.4.0/src/interface/interface_driver.c
if (udevIfaceRegister() == 0) if (udevIfaceRegister() == 0)
return 0; return 0;
#endif /* WITH_UDEV */ #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.5.0.orig/meson.build
+++ libvirt-8.4.0/meson.build +++ libvirt-8.5.0/meson.build
@@ -1073,6 +1073,12 @@ else @@ -1073,6 +1073,12 @@ else
netcf_dep = dependency('', required: false) netcf_dep = dependency('', required: false)
endif endif
@ -185,10 +185,10 @@ Index: libvirt-8.4.0/meson.build
'NLS': have_gnu_gettext_tools, 'NLS': have_gnu_gettext_tools,
'numactl': numactl_dep.found(), 'numactl': numactl_dep.found(),
'openwsman': openwsman_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.5.0.orig/src/interface/meson.build
+++ libvirt-8.4.0/src/interface/meson.build +++ libvirt-8.5.0/src/interface/meson.build
@@ -2,7 +2,7 @@ interface_driver_sources = [ @@ -2,7 +2,7 @@ interface_driver_sources = [
'interface_driver.c', 'interface_driver.c',
] ]
@ -206,10 +206,10 @@ Index: libvirt-8.4.0/src/interface/meson.build
udev_dep, udev_dep,
], ],
'link_args': [ '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.5.0.orig/meson_options.txt
+++ libvirt-8.4.0/meson_options.txt +++ libvirt-8.5.0/meson_options.txt
@@ -29,6 +29,7 @@ option('libpcap', type: 'feature', value @@ -29,6 +29,7 @@ option('libpcap', type: 'feature', value
option('libssh', type: 'feature', value: 'auto', description: 'libssh support') option('libssh', type: 'feature', value: 'auto', description: 'libssh support')
option('libssh2', type: 'feature', value: 'auto', description: 'libssh2 support') option('libssh2', type: 'feature', value: 'auto', description: 'libssh2 support')

View File

@ -1,3 +1,15 @@
-------------------------------------------------------------------
Tue Jul 5 20:25:19 UTC 2022 - James Fehlig <jfehlig@suse.com>
- 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 <jfehlig@suse.com> Fri Jun 24 21:23:46 UTC 2022 - James Fehlig <jfehlig@suse.com>

View File

@ -158,7 +158,7 @@
Name: libvirt Name: libvirt
URL: http://libvirt.org/ URL: http://libvirt.org/
Version: 8.4.0 Version: 8.5.0
Release: 0 Release: 0
Summary: Library providing a virtualization API Summary: Library providing a virtualization API
License: LGPL-2.1-or-later License: LGPL-2.1-or-later
@ -309,9 +309,7 @@ Patch150: libvirt-power8-models.patch
Patch151: ppc64le-canonical-name.patch Patch151: ppc64le-canonical-name.patch
Patch152: libxl-set-migration-constraints.patch Patch152: libxl-set-migration-constraints.patch
Patch153: libxl-set-cach-mode.patch Patch153: libxl-set-cach-mode.patch
Patch154: 0001-Extract-stats-functions-from-the-qemu-driver.patch Patch154: 0001-libxl-add-support-for-BlockResize-API.patch
Patch155: 0002-lxc-implement-connectGetAllDomainStats.patch
Patch156: 0001-libxl-add-support-for-BlockResize-API.patch
# Our patches # Our patches
Patch200: suse-libvirtd-disable-tls.patch Patch200: suse-libvirtd-disable-tls.patch
Patch201: suse-libvirt-guests-service.patch Patch201: suse-libvirt-guests-service.patch

View File

@ -8,11 +8,11 @@ Date: Mon Jun 23 15:51:20 2014 -0600
option, but domainReset can be implemented in the libxl driver by option, but domainReset can be implemented in the libxl driver by
forcibly destroying the domain and starting it again. 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.5.0.orig/src/libxl/libxl_driver.c
+++ libvirt-8.4.0/src/libxl/libxl_driver.c +++ libvirt-8.5.0/src/libxl/libxl_driver.c
@@ -1357,6 +1357,63 @@ libxlDomainReboot(virDomainPtr dom, unsi @@ -1354,6 +1354,63 @@ libxlDomainReboot(virDomainPtr dom, unsi
} }
static int static int
@ -76,7 +76,7 @@ Index: libvirt-8.4.0/src/libxl/libxl_driver.c
libxlDomainDestroyFlags(virDomainPtr dom, libxlDomainDestroyFlags(virDomainPtr dom,
unsigned int flags) unsigned int flags)
{ {
@@ -6464,6 +6521,7 @@ static virHypervisorDriver libxlHypervis @@ -6461,6 +6518,7 @@ static virHypervisorDriver libxlHypervis
.domainShutdown = libxlDomainShutdown, /* 0.9.0 */ .domainShutdown = libxlDomainShutdown, /* 0.9.0 */
.domainShutdownFlags = libxlDomainShutdownFlags, /* 0.9.10 */ .domainShutdownFlags = libxlDomainShutdownFlags, /* 0.9.10 */
.domainReboot = libxlDomainReboot, /* 0.9.0 */ .domainReboot = libxlDomainReboot, /* 0.9.0 */

View File

@ -3,11 +3,11 @@ https://bugzilla.novell.com/show_bug.cgi?id=879425
src/libxl/libxl_conf.c | 25 +++++++++++++++++++++++++ src/libxl/libxl_conf.c | 25 +++++++++++++++++++++++++
1 file changed, 25 insertions(+) 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.5.0.orig/src/libxl/libxl_conf.c
+++ libvirt-8.4.0/src/libxl/libxl_conf.c +++ libvirt-8.5.0/src/libxl/libxl_conf.c
@@ -944,6 +944,28 @@ libxlDiskSetDiscard(libxl_device_disk *x @@ -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 * static char *
libxlMakeNetworkDiskSrcStr(virStorageSource *src, libxlMakeNetworkDiskSrcStr(virStorageSource *src,
const char *username, 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->readwrite = !l_disk->src->readonly;
x_disk->is_cdrom = l_disk->device == VIR_DOMAIN_DISK_DEVICE_CDROM ? 1 : 0; x_disk->is_cdrom = l_disk->device == VIR_DOMAIN_DISK_DEVICE_CDROM ? 1 : 0;
libxlDiskSetDiscard(x_disk, l_disk->discard); libxlDiskSetDiscard(x_disk, l_disk->discard);

View File

@ -16,11 +16,11 @@ Signed-off-by: Jim Fehlig <jfehlig@suse.com>
tools/virsh.pod | 8 ++++++++ tools/virsh.pod | 8 ++++++++
6 files changed, 125 insertions(+), 6 deletions(-) 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.5.0.orig/docs/manpages/virsh.rst
+++ libvirt-8.4.0/docs/manpages/virsh.rst +++ libvirt-8.5.0/docs/manpages/virsh.rst
@@ -3258,6 +3258,7 @@ migrate @@ -3297,6 +3297,7 @@ migrate
[--parallel [--parallel-connections connections]] [--parallel [--parallel-connections connections]]
[--bandwidth bandwidth] [--tls-destination hostname] [--bandwidth bandwidth] [--tls-destination hostname]
[--disks-uri URI] [--copy-storage-synchronous-writes] [--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> Migrate domain to another host. Add *--live* for live migration; <--p2p>
for peer-2-peer migration; *--direct* for direct migration; or *--tunnelled* 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 network link between the source and the target and thus speeding up the
migration. migration.
@ -41,11 +41,11 @@ Index: libvirt-8.4.0/docs/manpages/virsh.rst
Running migration can be canceled by interrupting virsh (usually using Running migration can be canceled by interrupting virsh (usually using
``Ctrl-C``) or by ``domjobabort`` command sent from another virsh instance. ``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.5.0.orig/include/libvirt/libvirt-domain.h
+++ libvirt-8.4.0/include/libvirt/libvirt-domain.h +++ libvirt-8.5.0/include/libvirt/libvirt-domain.h
@@ -1352,6 +1352,31 @@ typedef enum { @@ -1367,6 +1367,31 @@ typedef enum {
*/ */
# define VIR_MIGRATE_PARAM_TLS_DESTINATION "tls.destination" # define VIR_MIGRATE_PARAM_TLS_DESTINATION "tls.destination"
@ -77,11 +77,11 @@ Index: libvirt-8.4.0/include/libvirt/libvirt-domain.h
/* Domain migration. */ /* Domain migration. */
virDomainPtr virDomainMigrate (virDomainPtr domain, virConnectPtr dconn, virDomainPtr virDomainMigrate (virDomainPtr domain, virConnectPtr dconn,
unsigned long flags, const char *dname, 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.5.0.orig/src/libxl/libxl_driver.c
+++ libvirt-8.4.0/src/libxl/libxl_driver.c +++ libvirt-8.5.0/src/libxl/libxl_driver.c
@@ -6005,6 +6005,9 @@ libxlDomainMigratePerform3Params(virDoma @@ -6002,6 +6002,9 @@ libxlDomainMigratePerform3Params(virDoma
const char *dname = NULL; const char *dname = NULL;
const char *uri = NULL; const char *uri = NULL;
int ret = -1; int ret = -1;
@ -91,7 +91,7 @@ Index: libvirt-8.4.0/src/libxl/libxl_driver.c
#ifdef LIBXL_HAVE_NO_SUSPEND_RESUME #ifdef LIBXL_HAVE_NO_SUSPEND_RESUME
virReportUnsupportedError(); virReportUnsupportedError();
@@ -6021,6 +6024,15 @@ libxlDomainMigratePerform3Params(virDoma @@ -6018,6 +6021,15 @@ libxlDomainMigratePerform3Params(virDoma
virTypedParamsGetString(params, nparams, virTypedParamsGetString(params, nparams,
VIR_MIGRATE_PARAM_DEST_NAME, VIR_MIGRATE_PARAM_DEST_NAME,
&dname) < 0 || &dname) < 0 ||
@ -107,7 +107,7 @@ Index: libvirt-8.4.0/src/libxl/libxl_driver.c
virTypedParamsGetString(params, nparams, virTypedParamsGetString(params, nparams,
VIR_MIGRATE_PARAM_URI, VIR_MIGRATE_PARAM_URI,
&uri) < 0) &uri) < 0)
@@ -6035,11 +6047,11 @@ libxlDomainMigratePerform3Params(virDoma @@ -6032,11 +6044,11 @@ libxlDomainMigratePerform3Params(virDoma
if ((flags & (VIR_MIGRATE_TUNNELLED | VIR_MIGRATE_PEER2PEER))) { if ((flags & (VIR_MIGRATE_TUNNELLED | VIR_MIGRATE_PEER2PEER))) {
if (libxlDomainMigrationSrcPerformP2P(driver, vm, dom->conn, dom_xml, if (libxlDomainMigrationSrcPerformP2P(driver, vm, dom->conn, dom_xml,
@ -121,11 +121,11 @@ Index: libvirt-8.4.0/src/libxl/libxl_driver.c
goto cleanup; 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.5.0.orig/src/libxl/libxl_migration.c
+++ libvirt-8.4.0/src/libxl/libxl_migration.c +++ libvirt-8.5.0/src/libxl/libxl_migration.c
@@ -332,18 +332,38 @@ libxlMigrateDstReceive(virNetSocket *soc @@ -329,18 +329,38 @@ libxlMigrateDstReceive(virNetSocket *soc
static int static int
libxlDoMigrateSrcSend(libxlDriverPrivate *driver, libxlDoMigrateSrcSend(libxlDriverPrivate *driver,
virDomainObj *vm, virDomainObj *vm,
@ -166,7 +166,7 @@ Index: libvirt-8.4.0/src/libxl/libxl_migration.c
if (ret != 0) { if (ret != 0) {
virReportError(VIR_ERR_INTERNAL_ERROR, "%s", virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
_("Failed to send migration data to destination host")); _("Failed to send migration data to destination host"));
@@ -882,7 +902,7 @@ struct libxlTunnelControl { @@ -877,7 +897,7 @@ struct libxlTunnelControl {
static int static int
libxlMigrationSrcStartTunnel(libxlDriverPrivate *driver, libxlMigrationSrcStartTunnel(libxlDriverPrivate *driver,
virDomainObj *vm, virDomainObj *vm,
@ -175,7 +175,7 @@ Index: libvirt-8.4.0/src/libxl/libxl_migration.c
virStreamPtr st, virStreamPtr st,
struct libxlTunnelControl **tnl) struct libxlTunnelControl **tnl)
{ {
@@ -915,7 +935,7 @@ libxlMigrationSrcStartTunnel(libxlDriver @@ -910,7 +930,7 @@ libxlMigrationSrcStartTunnel(libxlDriver
virObjectUnlock(vm); virObjectUnlock(vm);
/* Send data to pipe */ /* Send data to pipe */
@ -184,7 +184,7 @@ Index: libvirt-8.4.0/src/libxl/libxl_migration.c
virObjectLock(vm); virObjectLock(vm);
/* libxlMigrationSrcStopTunnel will be called in libxlDoMigrateSrcP2P /* 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 *dconnuri G_GNUC_UNUSED,
const char *dname, const char *dname,
const char *uri, const char *uri,
@ -193,7 +193,7 @@ Index: libvirt-8.4.0/src/libxl/libxl_migration.c
{ {
virDomainPtr ddomain = NULL; virDomainPtr ddomain = NULL;
virTypedParameterPtr params = 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 /* We don't require the destination to have P2P support
* as it looks to be normal migration from the receiver perspective. * 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))) if (!(st = virStreamNew(dconn, 0)))
goto confirm; goto confirm;
ret = dconn->driver->domainMigratePrepareTunnel3Params ret = dconn->driver->domainMigratePrepareTunnel3Params
@@ -1013,7 +1033,7 @@ libxlDoMigrateSrcP2P(libxlDriverPrivate @@ -1008,7 +1028,7 @@ libxlDoMigrateSrcP2P(libxlDriverPrivate
if (ret == -1) if (ret == -1)
goto confirm; goto confirm;
@ -216,7 +216,7 @@ Index: libvirt-8.4.0/src/libxl/libxl_migration.c
if (uri_out) { if (uri_out) {
if (virTypedParamsReplaceString(&params, &nparams, if (virTypedParamsReplaceString(&params, &nparams,
VIR_MIGRATE_PARAM_URI, uri_out) < 0) { 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)); 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) { if (ret < 0) {
notify_source = false; notify_source = false;
virErrorPreserveLast(&orig_err); virErrorPreserveLast(&orig_err);
@@ -1067,7 +1087,7 @@ libxlDoMigrateSrcP2P(libxlDriverPrivate @@ -1062,7 +1082,7 @@ libxlDoMigrateSrcP2P(libxlDriverPrivate
confirm: confirm:
if (notify_source) { if (notify_source) {
VIR_DEBUG("Confirm3 cancelled=%d vm=%p", cancelled, vm); 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) if (ret < 0)
VIR_WARN("Guest %s probably left in 'paused' state on source", VIR_WARN("Guest %s probably left in 'paused' state on source",
@@ -1075,7 +1095,7 @@ libxlDoMigrateSrcP2P(libxlDriverPrivate @@ -1070,7 +1090,7 @@ libxlDoMigrateSrcP2P(libxlDriverPrivate
} }
cleanup: cleanup:
@ -249,7 +249,7 @@ Index: libvirt-8.4.0/src/libxl/libxl_migration.c
libxlMigrationSrcStopTunnel(tc); libxlMigrationSrcStopTunnel(tc);
virObjectUnref(st); virObjectUnref(st);
} }
@@ -1119,7 +1139,7 @@ libxlDomainMigrationSrcPerformP2P(libxlD @@ -1114,7 +1134,7 @@ libxlDomainMigrationSrcPerformP2P(libxlD
const char *dconnuri, const char *dconnuri,
const char *uri_str G_GNUC_UNUSED, const char *uri_str G_GNUC_UNUSED,
const char *dname, const char *dname,
@ -258,7 +258,7 @@ Index: libvirt-8.4.0/src/libxl/libxl_migration.c
{ {
int ret = -1; int ret = -1;
int useParams; int useParams;
@@ -1153,7 +1173,7 @@ libxlDomainMigrationSrcPerformP2P(libxlD @@ -1148,7 +1168,7 @@ libxlDomainMigrationSrcPerformP2P(libxlD
} }
ret = libxlDoMigrateSrcP2P(driver, vm, sconn, xmlin, dconn, dconnuri, 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) { if (ret < 0) {
/* /*
@@ -1180,7 +1200,7 @@ libxlDomainMigrationSrcPerform(libxlDriv @@ -1175,7 +1195,7 @@ libxlDomainMigrationSrcPerform(libxlDriv
const char *dconnuri G_GNUC_UNUSED, const char *dconnuri G_GNUC_UNUSED,
const char *uri_str, const char *uri_str,
const char *dname G_GNUC_UNUSED, const char *dname G_GNUC_UNUSED,
@ -276,7 +276,7 @@ Index: libvirt-8.4.0/src/libxl/libxl_migration.c
{ {
libxlDomainObjPrivate *priv = vm->privateData; libxlDomainObjPrivate *priv = vm->privateData;
char *hostname = NULL; 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 */ /* suspend vm and send saved data to dst through socket fd */
virObjectUnlock(vm); virObjectUnlock(vm);
@ -285,10 +285,10 @@ Index: libvirt-8.4.0/src/libxl/libxl_migration.c
virObjectLock(vm); virObjectLock(vm);
if (ret == 0) { 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.5.0.orig/src/libxl/libxl_migration.h
+++ libvirt-8.4.0/src/libxl/libxl_migration.h +++ libvirt-8.5.0/src/libxl/libxl_migration.h
@@ -35,6 +35,9 @@ @@ -35,6 +35,9 @@
VIR_MIGRATE_PARAM_URI, VIR_TYPED_PARAM_STRING, \ VIR_MIGRATE_PARAM_URI, VIR_TYPED_PARAM_STRING, \
VIR_MIGRATE_PARAM_DEST_NAME, 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 virDomainPtr
libxlDomainMigrationDstFinish(virConnectPtr dconn, 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.5.0.orig/tools/virsh-domain.c
+++ libvirt-8.4.0/tools/virsh-domain.c +++ libvirt-8.5.0/tools/virsh-domain.c
@@ -10918,6 +10918,18 @@ static const vshCmdOptDef opts_migrate[] @@ -11005,6 +11005,18 @@ static const vshCmdOptDef opts_migrate[]
.completer = virshCompleteEmpty, .completer = virshCompleteEmpty,
.help = N_("override the destination host name used for TLS verification") .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} {.name = NULL}
}; };
@@ -10938,6 +10950,7 @@ doMigrate(void *opaque) @@ -11025,6 +11037,7 @@ doMigrate(void *opaque)
unsigned long long ullOpt = 0; unsigned long long ullOpt = 0;
int rv; int rv;
virConnectPtr dconn = data->dconn; virConnectPtr dconn = data->dconn;
@ -362,7 +362,7 @@ Index: libvirt-8.4.0/tools/virsh-domain.c
#ifndef WIN32 #ifndef WIN32
sigset_t sigmask, oldsigmask; sigset_t sigmask, oldsigmask;
@@ -11068,6 +11081,22 @@ doMigrate(void *opaque) @@ -11155,6 +11168,22 @@ doMigrate(void *opaque)
goto save_error; goto save_error;
} }

View File

@ -7,11 +7,11 @@ and npiv.
For more details, see bsc#954872 and FATE#319810 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.5.0.orig/src/libxl/libxl_conf.c
+++ libvirt-8.4.0/src/libxl/libxl_conf.c +++ libvirt-8.5.0/src/libxl/libxl_conf.c
@@ -945,6 +945,20 @@ libxlDiskSetDiscard(libxl_device_disk *x @@ -942,6 +942,20 @@ libxlDiskSetDiscard(libxl_device_disk *x
} }
static void static void
@ -32,15 +32,15 @@ Index: libvirt-8.4.0/src/libxl/libxl_conf.c
libxlDiskSetCacheMode(libxl_device_disk *x_disk, int cachemode) libxlDiskSetCacheMode(libxl_device_disk *x_disk, int cachemode)
{ {
switch (cachemode) { switch (cachemode) {
@@ -1087,6 +1101,7 @@ libxlMakeNetworkDiskSrc(virStorageSource @@ -1084,6 +1098,7 @@ libxlMakeNetworkDiskSrc(virStorageSource
int int
libxlMakeDisk(virDomainDiskDef *l_disk, libxl_device_disk *x_disk) libxlMakeDisk(virDomainDiskDef *l_disk, libxl_device_disk *x_disk)
{ {
+ const char *src = virDomainDiskGetSource(l_disk); + const char *src = virDomainDiskGetSource(l_disk);
const char *driver = virDomainDiskGetDriver(l_disk); const char *driver = virDomainDiskGetDriver(l_disk);
int format = virDomainDiskGetFormat(l_disk); int format = virDomainDiskGetFormat(l_disk);
int actual_type = virStorageSourceGetActualType(l_disk->src); virStorageType actual_type = virStorageSourceGetActualType(l_disk->src);
@@ -1100,7 +1115,7 @@ libxlMakeDisk(virDomainDiskDef *l_disk, @@ -1097,7 +1112,7 @@ libxlMakeDisk(virDomainDiskDef *l_disk,
if (libxlMakeNetworkDiskSrc(l_disk->src, &x_disk->pdev_path) < 0) if (libxlMakeNetworkDiskSrc(l_disk->src, &x_disk->pdev_path) < 0)
return -1; return -1;
} else { } else {
@ -49,7 +49,7 @@ Index: libvirt-8.4.0/src/libxl/libxl_conf.c
} }
x_disk->vdev = g_strdup(l_disk->dst); 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; x_disk->is_cdrom = l_disk->device == VIR_DOMAIN_DISK_DEVICE_CDROM ? 1 : 0;
libxlDiskSetDiscard(x_disk, l_disk->discard); libxlDiskSetDiscard(x_disk, l_disk->discard);
libxlDiskSetCacheMode(x_disk, l_disk->cachemode); libxlDiskSetCacheMode(x_disk, l_disk->cachemode);

View File

@ -13,11 +13,11 @@ device with the same name that is being created.
src/lxc/lxc_process.c | 1 + src/lxc/lxc_process.c | 1 +
3 files changed, 4 insertions(+) 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.5.0.orig/src/lxc/lxc_controller.c
+++ libvirt-8.4.0/src/lxc/lxc_controller.c +++ libvirt-8.5.0/src/lxc/lxc_controller.c
@@ -1999,6 +1999,7 @@ static int virLXCControllerDeleteInterfa @@ -1995,6 +1995,7 @@ static int virLXCControllerDeleteInterfa
if (virNetDevVethDelete(ctrl->veths[i]) < 0) if (virNetDevVethDelete(ctrl->veths[i]) < 0)
ret = -1; ret = -1;
} }
@ -25,19 +25,11 @@ Index: libvirt-8.4.0/src/lxc/lxc_controller.c
return ret; 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.5.0.orig/src/lxc/lxc_driver.c
+++ libvirt-8.4.0/src/lxc/lxc_driver.c +++ libvirt-8.5.0/src/lxc/lxc_driver.c
@@ -67,6 +67,7 @@ @@ -3502,6 +3502,7 @@ lxcDomainAttachDeviceNetLive(virLXCDrive
#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
case VIR_DOMAIN_NET_TYPE_NETWORK: case VIR_DOMAIN_NET_TYPE_NETWORK:
case VIR_DOMAIN_NET_TYPE_ETHERNET: case VIR_DOMAIN_NET_TYPE_ETHERNET:
ignore_value(virNetDevVethDelete(veth)); ignore_value(virNetDevVethDelete(veth));
@ -45,7 +37,7 @@ Index: libvirt-8.4.0/src/lxc/lxc_driver.c
break; break;
case VIR_DOMAIN_NET_TYPE_DIRECT: case VIR_DOMAIN_NET_TYPE_DIRECT:
@@ -3947,6 +3949,7 @@ lxcDomainDetachDeviceNetLive(virDomainOb @@ -3941,6 +3942,7 @@ lxcDomainDetachDeviceNetLive(virDomainOb
virDomainAuditNet(vm, detach, NULL, "detach", false); virDomainAuditNet(vm, detach, NULL, "detach", false);
goto cleanup; goto cleanup;
} }
@ -53,19 +45,11 @@ Index: libvirt-8.4.0/src/lxc/lxc_driver.c
break; break;
/* It'd be nice to support this, but with macvlan /* 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.5.0.orig/src/lxc/lxc_process.c
+++ libvirt-8.4.0/src/lxc/lxc_process.c +++ libvirt-8.5.0/src/lxc/lxc_process.c
@@ -51,6 +51,7 @@ @@ -239,6 +239,7 @@ static void virLXCProcessCleanup(virLXCD
#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
VIR_WARN("Unable to release network device '%s'", NULLSTR(iface->ifname)); VIR_WARN("Unable to release network device '%s'", NULLSTR(iface->ifname));
} }
} }

View File

@ -17,15 +17,15 @@ Signed-off-by: Martin Wilck <mwilck@suse.com>
tests/networkxml2confdata/dhcp6host-routed-network.conf | 1 - tests/networkxml2confdata/dhcp6host-routed-network.conf | 1 -
2 files changed, 8 insertions(+), 2 deletions(-) 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.5.0.orig/src/network/bridge_driver.c
+++ libvirt-8.4.0/src/network/bridge_driver.c +++ libvirt-8.5.0/src/network/bridge_driver.c
@@ -1334,7 +1334,14 @@ networkDnsmasqConfContents(virNetworkObj @@ -1080,7 +1080,14 @@ networkDnsmasqConfDHCP(virBuffer *buf,
if (VIR_SOCKET_ADDR_IS_FAMILY(&ipdef->address, AF_INET)) { if (VIR_SOCKET_ADDR_IS_FAMILY(&ipdef->address, AF_INET)) {
if (ipdef->nranges || ipdef->nhosts) { if (ipdef->nranges || ipdef->nhosts) {
virBufferAddLit(&configbuf, "dhcp-no-override\n"); virBufferAddLit(buf, "dhcp-no-override\n");
- virBufferAddLit(&configbuf, "dhcp-authoritative\n"); - virBufferAddLit(buf, "dhcp-authoritative\n");
+ /* + /*
+ * Use "dhcp-authoritative" only for dynamic DHCP. + * Use "dhcp-authoritative" only for dynamic DHCP.
+ * In a static-only network, it would cause dnsmasq + * In a static-only network, it would cause dnsmasq
@ -33,14 +33,14 @@ Index: libvirt-8.4.0/src/network/bridge_driver.c
+ * statically defined. + * statically defined.
+ */ + */
+ if (ipdef->nranges || !ipdef->nhosts) + if (ipdef->nranges || !ipdef->nhosts)
+ virBufferAddLit(&configbuf, "dhcp-authoritative\n"); + virBufferAddLit(buf, "dhcp-authoritative\n");
} }
if (ipdef->tftproot) { if (ipdef->bootfile) {
Index: libvirt-8.4.0/tests/networkxml2confdata/dhcp6host-routed-network.conf Index: libvirt-8.5.0/tests/networkxml2confdata/dhcp6host-routed-network.conf
=================================================================== ===================================================================
--- libvirt-8.4.0.orig/tests/networkxml2confdata/dhcp6host-routed-network.conf --- libvirt-8.5.0.orig/tests/networkxml2confdata/dhcp6host-routed-network.conf
+++ libvirt-8.4.0/tests/networkxml2confdata/dhcp6host-routed-network.conf +++ libvirt-8.5.0/tests/networkxml2confdata/dhcp6host-routed-network.conf
@@ -10,7 +10,6 @@ bind-dynamic @@ -10,7 +10,6 @@ bind-dynamic
interface=virbr1 interface=virbr1
dhcp-range=192.168.122.1,static dhcp-range=192.168.122.1,static

View File

@ -2,10 +2,10 @@ Canonicalize hostarch name ppc64le to ppc64
See bnc#894956 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.5.0.orig/src/util/virarch.c
+++ libvirt-8.4.0/src/util/virarch.c +++ libvirt-8.5.0/src/util/virarch.c
@@ -222,6 +222,8 @@ virArch virArchFromHost(void) @@ -222,6 +222,8 @@ virArch virArchFromHost(void)
arch = VIR_ARCH_X86_64; arch = VIR_ARCH_X86_64;
} else if (STREQ(ut.machine, "arm64")) { } else if (STREQ(ut.machine, "arm64")) {

View File

@ -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.5.0.orig/src/security/apparmor/libvirt-qemu
+++ libvirt-8.4.0/src/security/apparmor/libvirt-qemu +++ libvirt-8.5.0/src/security/apparmor/libvirt-qemu
@@ -253,3 +253,6 @@ @@ -253,3 +253,6 @@
# required for QEMU accessing UEFI nvram variables # required for QEMU accessing UEFI nvram variables
owner /var/lib/libvirt/qemu/nvram/*_VARS.fd rwk, owner /var/lib/libvirt/qemu/nvram/*_VARS.fd rwk,

View File

@ -1,9 +1,9 @@
Adjust libvirt-guests service to conform to SUSE standards 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.5.0.orig/tools/libvirt-guests.sh.in
+++ libvirt-8.4.0/tools/libvirt-guests.sh.in +++ libvirt-8.5.0/tools/libvirt-guests.sh.in
@@ -20,10 +20,6 @@ sysconfdir="@sysconfdir@" @@ -20,10 +20,6 @@ sysconfdir="@sysconfdir@"
localstatedir="@localstatedir@" localstatedir="@localstatedir@"
libvirtd="@sbindir@"/libvirtd libvirtd="@sbindir@"/libvirtd

View File

@ -3,11 +3,11 @@ Disable TLS by default
On SUSE distros, the default is for libvirtd to listen only on the On SUSE distros, the default is for libvirtd to listen only on the
Unix Domain Socket. The libvirt client still provides remote access Unix Domain Socket. The libvirt client still provides remote access
via a SSH tunnel. 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.5.0.orig/src/remote/remote_daemon_config.c
+++ libvirt-8.4.0/src/remote/remote_daemon_config.c +++ libvirt-8.5.0/src/remote/remote_daemon_config.c
@@ -98,7 +98,7 @@ daemonConfigNew(bool privileged G_GNUC_U @@ -97,7 +97,7 @@ daemonConfigNew(bool privileged G_GNUC_U
#ifdef WITH_IP #ifdef WITH_IP
# ifdef LIBVIRTD # ifdef LIBVIRTD
@ -16,10 +16,10 @@ Index: libvirt-8.4.0/src/remote/remote_daemon_config.c
# else /* ! LIBVIRTD */ # else /* ! LIBVIRTD */
data->listen_tls = false; /* Always honoured, --listen doesn't exist. */ data->listen_tls = false; /* Always honoured, --listen doesn't exist. */
# endif /* ! LIBVIRTD */ # 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.5.0.orig/src/remote/libvirtd.conf.in
+++ libvirt-8.4.0/src/remote/libvirtd.conf.in +++ libvirt-8.5.0/src/remote/libvirtd.conf.in
@@ -17,8 +17,8 @@ @@ -17,8 +17,8 @@
# It is necessary to setup a CA and issue server certificates before # It is necessary to setup a CA and issue server certificates before
# using this capability. # 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. # 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 # 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.5.0.orig/src/remote/test_libvirtd.aug.in
+++ libvirt-8.4.0/src/remote/test_libvirtd.aug.in +++ libvirt-8.5.0/src/remote/test_libvirtd.aug.in
@@ -3,7 +3,7 @@ module Test_@DAEMON_NAME@ = @@ -3,7 +3,7 @@ module Test_@DAEMON_NAME@ =
test @DAEMON_NAME_UC@.lns get conf = test @DAEMON_NAME_UC@.lns get conf =

View File

@ -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 by default. It can only be enabled with the 'autoballoon' setting in
libxl.conf. See jsc#SLE-3059 for more details. 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.5.0.orig/src/libxl/libxl.conf
+++ libvirt-8.4.0/src/libxl/libxl.conf +++ libvirt-8.5.0/src/libxl/libxl.conf
@@ -4,12 +4,11 @@ @@ -4,12 +4,11 @@
# Enable autoballooning of domain0 # 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 # 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.5.0.orig/src/libxl/libxl_conf.c
+++ libvirt-8.4.0/src/libxl/libxl_conf.c +++ libvirt-8.5.0/src/libxl/libxl_conf.c
@@ -1734,15 +1734,12 @@ libxlMakeBuildInfoVfb(virPortAllocatorRa @@ -1731,15 +1731,12 @@ libxlMakeBuildInfoVfb(virPortAllocatorRa
/* /*
* Get domain0 autoballoon configuration. Honor user-specified * Get domain0 autoballoon configuration. Honor user-specified
* setting in libxl.conf first. If not specified, autoballooning * 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; int res;
res = virConfGetValueBool(conf, "autoballoon", &cfg->autoballoon); res = virConfGetValueBool(conf, "autoballoon", &cfg->autoballoon);
@@ -1751,15 +1748,8 @@ libxlGetAutoballoonConf(libxlDriverConfi @@ -1748,15 +1745,8 @@ libxlGetAutoballoonConf(libxlDriverConfi
else if (res == 1) else if (res == 1)
return 0; return 0;
@ -66,10 +66,10 @@ Index: libvirt-8.4.0/src/libxl/libxl_conf.c
return 0; 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.5.0.orig/src/libxl/test_libvirtd_libxl.aug.in
+++ libvirt-8.4.0/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 = @@ -2,7 +2,7 @@ module Test_libvirtd_libxl =
@CONFIG@ @CONFIG@

View File

@ -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 etc.), but for now they are all lumped together in this
single patch. 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.5.0.orig/src/qemu/qemu_conf.c
+++ libvirt-8.4.0/src/qemu/qemu_conf.c +++ libvirt-8.5.0/src/qemu/qemu_conf.c
@@ -261,7 +261,7 @@ virQEMUDriverConfig *virQEMUDriverConfig @@ -256,7 +256,7 @@ virQEMUDriverConfig *virQEMUDriverConfig
cfg->slirpHelperName = g_strdup(QEMU_SLIRP_HELPER); cfg->slirpHelperName = g_strdup(QEMU_SLIRP_HELPER);
cfg->dbusDaemonName = g_strdup(QEMU_DBUS_DAEMON); 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->securityRequireConfined = false;
cfg->keepAliveInterval = 5; 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.5.0.orig/src/qemu/test_libvirtd_qemu.aug.in
+++ libvirt-8.4.0/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 = @@ -45,6 +45,7 @@ module Test_libvirtd_qemu =
{ "remote_websocket_port_min" = "5700" } { "remote_websocket_port_min" = "5700" }
{ "remote_websocket_port_max" = "65535" } { "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_default_confined" = "1" }
{ "security_require_confined" = "1" } { "security_require_confined" = "1" }
{ "user" = "@QEMU_USER@" } { "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.5.0.orig/src/qemu/qemu.conf.in
+++ libvirt-8.4.0/src/qemu/qemu.conf.in +++ libvirt-8.5.0/src/qemu/qemu.conf.in
@@ -491,10 +491,19 @@ @@ -491,10 +491,19 @@
# isolation, but it cannot appear in a list of drivers. # isolation, but it cannot appear in a list of drivers.
# #

View File

@ -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 removes the old DEFAULT_LOADER_NVRAM approach and associated code, this
patch will stay. 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.5.0.orig/src/qemu/qemu_conf.c
+++ libvirt-8.4.0/src/qemu/qemu_conf.c +++ libvirt-8.5.0/src/qemu/qemu_conf.c
@@ -87,10 +87,9 @@ VIR_ONCE_GLOBAL_INIT(virQEMUConfig); @@ -82,10 +82,9 @@ VIR_ONCE_GLOBAL_INIT(virQEMUConfig);
#ifndef DEFAULT_LOADER_NVRAM #ifndef DEFAULT_LOADER_NVRAM
# define DEFAULT_LOADER_NVRAM \ # define DEFAULT_LOADER_NVRAM \
@ -23,10 +23,10 @@ Index: libvirt-8.4.0/src/qemu/qemu_conf.c
#endif #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.5.0.orig/src/security/virt-aa-helper.c
+++ libvirt-8.4.0/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 @@ -480,7 +480,8 @@ valid_path(const char *path, const bool
"/usr/share/ovmf/", /* for OVMF images */ "/usr/share/ovmf/", /* for OVMF images */
"/usr/share/AAVMF/", /* for AAVMF 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 */ /* override the above with these */
const char * const override[] = { 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.5.0.orig/src/qemu/test_libvirtd_qemu.aug.in
+++ libvirt-8.4.0/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 = @@ -96,10 +96,9 @@ module Test_libvirtd_qemu =
{ "migration_port_max" = "49215" } { "migration_port_max" = "49215" }
{ "log_timestamp" = "0" } { "log_timestamp" = "0" }
@ -55,10 +55,10 @@ Index: libvirt-8.4.0/src/qemu/test_libvirtd_qemu.aug.in
} }
{ "stdio_handler" = "logd" } { "stdio_handler" = "logd" }
{ "gluster_debug_level" = "9" } { "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.5.0.orig/src/qemu/qemu.conf.in
+++ libvirt-8.4.0/src/qemu/qemu.conf.in +++ libvirt-8.5.0/src/qemu/qemu.conf.in
@@ -857,10 +857,9 @@ @@ -857,10 +857,9 @@
# for x86_64 and i686, but it's AAVMF for aarch64. The libvirt default # for x86_64 and i686, but it's AAVMF for aarch64. The libvirt default
# follows this scheme. # follows this scheme.

View File

@ -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. 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.5.0.orig/src/libxl/libxl_conf.c
+++ libvirt-8.4.0/src/libxl/libxl_conf.c +++ libvirt-8.5.0/src/libxl/libxl_conf.c
@@ -1785,7 +1785,7 @@ libxlDriverConfigNew(void) @@ -1782,7 +1782,7 @@ libxlDriverConfigNew(void)
cfg->firmwares = g_new0(virFirmware *, 1); cfg->firmwares = g_new0(virFirmware *, 1);
cfg->nfirmwares = 1; cfg->nfirmwares = 1;
cfg->firmwares[0] = g_new0(virFirmware, 1); cfg->firmwares[0] = g_new0(virFirmware, 1);

View File

@ -1,7 +1,7 @@
Index: libvirt-8.4.0/tools/virt-create-rootfs Index: libvirt-8.5.0/tools/virt-create-rootfs
=================================================================== ===================================================================
--- /dev/null --- /dev/null
+++ libvirt-8.4.0/tools/virt-create-rootfs +++ libvirt-8.5.0/tools/virt-create-rootfs
@@ -0,0 +1,236 @@ @@ -0,0 +1,236 @@
+#!/bin/sh +#!/bin/sh
+set -e +set -e
@ -239,10 +239,10 @@ Index: libvirt-8.4.0/tools/virt-create-rootfs
+ echo "pts/0" >> "$ROOT/etc/securetty" + echo "pts/0" >> "$ROOT/etc/securetty"
+ chroot "$ROOT" /usr/bin/passwd + chroot "$ROOT" /usr/bin/passwd
+fi +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 --- /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 @@ @@ -0,0 +1,88 @@
+================== +==================
+virt-create-rootfs +virt-create-rootfs
@ -332,10 +332,10 @@ Index: libvirt-8.4.0/docs/manpages/virt-create-rootfs.rst
+======== +========
+ +
+virsh(1), `https://libvirt.org/ <https://libvirt.org/>`_ +virsh(1), `https://libvirt.org/ <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.5.0.orig/docs/manpages/meson.build
+++ libvirt-8.4.0/docs/manpages/meson.build +++ libvirt-8.5.0/docs/manpages/meson.build
@@ -19,6 +19,7 @@ docs_man_files = [ @@ -19,6 +19,7 @@ docs_man_files = [
{ 'name': 'virt-pki-validate', 'section': '1', 'install': true }, { 'name': 'virt-pki-validate', 'section': '1', 'install': true },
{ 'name': 'virt-qemu-run', 'section': '1', 'install': conf.has('WITH_QEMU') }, { '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': 'libvirt-guests', 'section': '8', 'install': conf.has('WITH_LIBVIRTD') },
{ 'name': 'libvirtd', '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.5.0.orig/tools/meson.build
+++ libvirt-8.4.0/tools/meson.build +++ libvirt-8.5.0/tools/meson.build
@@ -154,6 +154,8 @@ else @@ -154,6 +154,8 @@ else
virsh_icon_res = [] virsh_icon_res = []
endif endif