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 ++++++++++++++++++++++++++++++++++++++++++++++++
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;

View File

@ -18,11 +18,11 @@ Signed-off-by: Martin Kletzander <mkletzan@redhat.com>
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;

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>
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 @@
<pvr value='0x004b0000' 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.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 <config.h>
@ -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')

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>

View File

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

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
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 */

View File

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

View File

@ -16,11 +16,11 @@ Signed-off-by: Jim Fehlig <jfehlig@suse.com>
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(&params, &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;
}

View File

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

View File

@ -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));
}
}

View File

@ -17,30 +17,30 @@ Signed-off-by: Martin Wilck <mwilck@suse.com>
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

View File

@ -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")) {

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.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,

View File

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

View File

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

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

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
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.
#

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

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.
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);

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
+++ 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/ <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