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:
parent
615f0c03d0
commit
341a5e8f5e
@ -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',
|
@ -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;
|
||||
|
@ -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;
|
||||
|
||||
|
@ -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 = {
|
@ -1,3 +0,0 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:601a6e9bb03a43d05659f63e4a403df253ab0975b4a973f10a5607f3bbc018dd
|
||||
size 8846528
|
@ -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
3
libvirt-8.5.0.tar.xz
Normal 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
16
libvirt-8.5.0.tar.xz.asc
Normal 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-----
|
@ -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'/>
|
||||
|
@ -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')
|
||||
|
@ -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>
|
||||
|
||||
|
@ -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
|
||||
|
@ -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 */
|
||||
|
@ -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);
|
||||
|
@ -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(¶ms, &nparams,
|
||||
VIR_MIGRATE_PARAM_URI, uri_out) < 0) {
|
||||
@@ -1028,11 +1048,11 @@ libxlDoMigrateSrcP2P(libxlDriverPrivate
|
||||
@@ -1023,11 +1043,11 @@ libxlDoMigrateSrcP2P(libxlDriverPrivate
|
||||
}
|
||||
|
||||
VIR_DEBUG("Perform3 uri=%s", NULLSTR(uri_out));
|
||||
@ -231,7 +231,7 @@ Index: libvirt-8.4.0/src/libxl/libxl_migration.c
|
||||
if (ret < 0) {
|
||||
notify_source = false;
|
||||
virErrorPreserveLast(&orig_err);
|
||||
@@ -1067,7 +1087,7 @@ libxlDoMigrateSrcP2P(libxlDriverPrivate
|
||||
@@ -1062,7 +1082,7 @@ libxlDoMigrateSrcP2P(libxlDriverPrivate
|
||||
confirm:
|
||||
if (notify_source) {
|
||||
VIR_DEBUG("Confirm3 cancelled=%d vm=%p", cancelled, vm);
|
||||
@ -240,7 +240,7 @@ Index: libvirt-8.4.0/src/libxl/libxl_migration.c
|
||||
|
||||
if (ret < 0)
|
||||
VIR_WARN("Guest %s probably left in 'paused' state on source",
|
||||
@@ -1075,7 +1095,7 @@ libxlDoMigrateSrcP2P(libxlDriverPrivate
|
||||
@@ -1070,7 +1090,7 @@ libxlDoMigrateSrcP2P(libxlDriverPrivate
|
||||
}
|
||||
|
||||
cleanup:
|
||||
@ -249,7 +249,7 @@ Index: libvirt-8.4.0/src/libxl/libxl_migration.c
|
||||
libxlMigrationSrcStopTunnel(tc);
|
||||
virObjectUnref(st);
|
||||
}
|
||||
@@ -1119,7 +1139,7 @@ libxlDomainMigrationSrcPerformP2P(libxlD
|
||||
@@ -1114,7 +1134,7 @@ libxlDomainMigrationSrcPerformP2P(libxlD
|
||||
const char *dconnuri,
|
||||
const char *uri_str G_GNUC_UNUSED,
|
||||
const char *dname,
|
||||
@ -258,7 +258,7 @@ Index: libvirt-8.4.0/src/libxl/libxl_migration.c
|
||||
{
|
||||
int ret = -1;
|
||||
int useParams;
|
||||
@@ -1153,7 +1173,7 @@ libxlDomainMigrationSrcPerformP2P(libxlD
|
||||
@@ -1148,7 +1168,7 @@ libxlDomainMigrationSrcPerformP2P(libxlD
|
||||
}
|
||||
|
||||
ret = libxlDoMigrateSrcP2P(driver, vm, sconn, xmlin, dconn, dconnuri,
|
||||
@ -267,7 +267,7 @@ Index: libvirt-8.4.0/src/libxl/libxl_migration.c
|
||||
|
||||
if (ret < 0) {
|
||||
/*
|
||||
@@ -1180,7 +1200,7 @@ libxlDomainMigrationSrcPerform(libxlDriv
|
||||
@@ -1175,7 +1195,7 @@ libxlDomainMigrationSrcPerform(libxlDriv
|
||||
const char *dconnuri G_GNUC_UNUSED,
|
||||
const char *uri_str,
|
||||
const char *dname G_GNUC_UNUSED,
|
||||
@ -276,7 +276,7 @@ Index: libvirt-8.4.0/src/libxl/libxl_migration.c
|
||||
{
|
||||
libxlDomainObjPrivate *priv = vm->privateData;
|
||||
char *hostname = NULL;
|
||||
@@ -1216,7 +1236,7 @@ libxlDomainMigrationSrcPerform(libxlDriv
|
||||
@@ -1211,7 +1231,7 @@ libxlDomainMigrationSrcPerform(libxlDriv
|
||||
|
||||
/* suspend vm and send saved data to dst through socket fd */
|
||||
virObjectUnlock(vm);
|
||||
@ -285,10 +285,10 @@ Index: libvirt-8.4.0/src/libxl/libxl_migration.c
|
||||
virObjectLock(vm);
|
||||
|
||||
if (ret == 0) {
|
||||
Index: libvirt-8.4.0/src/libxl/libxl_migration.h
|
||||
Index: libvirt-8.5.0/src/libxl/libxl_migration.h
|
||||
===================================================================
|
||||
--- libvirt-8.4.0.orig/src/libxl/libxl_migration.h
|
||||
+++ libvirt-8.4.0/src/libxl/libxl_migration.h
|
||||
--- libvirt-8.5.0.orig/src/libxl/libxl_migration.h
|
||||
+++ libvirt-8.5.0/src/libxl/libxl_migration.h
|
||||
@@ -35,6 +35,9 @@
|
||||
VIR_MIGRATE_PARAM_URI, VIR_TYPED_PARAM_STRING, \
|
||||
VIR_MIGRATE_PARAM_DEST_NAME, VIR_TYPED_PARAM_STRING, \
|
||||
@ -331,11 +331,11 @@ Index: libvirt-8.4.0/src/libxl/libxl_migration.h
|
||||
|
||||
virDomainPtr
|
||||
libxlDomainMigrationDstFinish(virConnectPtr dconn,
|
||||
Index: libvirt-8.4.0/tools/virsh-domain.c
|
||||
Index: libvirt-8.5.0/tools/virsh-domain.c
|
||||
===================================================================
|
||||
--- libvirt-8.4.0.orig/tools/virsh-domain.c
|
||||
+++ libvirt-8.4.0/tools/virsh-domain.c
|
||||
@@ -10918,6 +10918,18 @@ static const vshCmdOptDef opts_migrate[]
|
||||
--- libvirt-8.5.0.orig/tools/virsh-domain.c
|
||||
+++ libvirt-8.5.0/tools/virsh-domain.c
|
||||
@@ -11005,6 +11005,18 @@ static const vshCmdOptDef opts_migrate[]
|
||||
.completer = virshCompleteEmpty,
|
||||
.help = N_("override the destination host name used for TLS verification")
|
||||
},
|
||||
@ -354,7 +354,7 @@ Index: libvirt-8.4.0/tools/virsh-domain.c
|
||||
{.name = NULL}
|
||||
};
|
||||
|
||||
@@ -10938,6 +10950,7 @@ doMigrate(void *opaque)
|
||||
@@ -11025,6 +11037,7 @@ doMigrate(void *opaque)
|
||||
unsigned long long ullOpt = 0;
|
||||
int rv;
|
||||
virConnectPtr dconn = data->dconn;
|
||||
@ -362,7 +362,7 @@ Index: libvirt-8.4.0/tools/virsh-domain.c
|
||||
#ifndef WIN32
|
||||
sigset_t sigmask, oldsigmask;
|
||||
|
||||
@@ -11068,6 +11081,22 @@ doMigrate(void *opaque)
|
||||
@@ -11155,6 +11168,22 @@ doMigrate(void *opaque)
|
||||
goto save_error;
|
||||
}
|
||||
|
||||
|
@ -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);
|
||||
|
@ -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));
|
||||
}
|
||||
}
|
||||
|
@ -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
|
||||
|
@ -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")) {
|
||||
|
@ -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,
|
||||
|
@ -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
|
||||
|
@ -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 =
|
||||
|
@ -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@
|
||||
|
||||
|
@ -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.
|
||||
#
|
||||
|
@ -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.
|
||||
|
@ -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);
|
||||
|
@ -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
|
||||
|
Loading…
Reference in New Issue
Block a user