Accepting request 947276 from Virtualization
OBS-URL: https://build.opensuse.org/request/show/947276 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/libvirt?expand=0&rev=346
This commit is contained in:
commit
8e799487c9
@ -18,10 +18,10 @@ them.
|
|||||||
create mode 100644 src/conf/domain_stats.c
|
create mode 100644 src/conf/domain_stats.c
|
||||||
create mode 100644 src/conf/domain_stats.h
|
create mode 100644 src/conf/domain_stats.h
|
||||||
|
|
||||||
Index: libvirt-7.10.0/src/conf/domain_stats.c
|
Index: libvirt-8.0.0/src/conf/domain_stats.c
|
||||||
===================================================================
|
===================================================================
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ libvirt-7.10.0/src/conf/domain_stats.c
|
+++ libvirt-8.0.0/src/conf/domain_stats.c
|
||||||
@@ -0,0 +1,117 @@
|
@@ -0,0 +1,117 @@
|
||||||
+/*
|
+/*
|
||||||
+ * domain_stats.c: domain stats extraction helpers
|
+ * domain_stats.c: domain stats extraction helpers
|
||||||
@ -140,10 +140,10 @@ Index: libvirt-7.10.0/src/conf/domain_stats.c
|
|||||||
+}
|
+}
|
||||||
+
|
+
|
||||||
+#undef STATS_ADD_NET_PARAM
|
+#undef STATS_ADD_NET_PARAM
|
||||||
Index: libvirt-7.10.0/src/conf/domain_stats.h
|
Index: libvirt-8.0.0/src/conf/domain_stats.h
|
||||||
===================================================================
|
===================================================================
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ libvirt-7.10.0/src/conf/domain_stats.h
|
+++ libvirt-8.0.0/src/conf/domain_stats.h
|
||||||
@@ -0,0 +1,60 @@
|
@@ -0,0 +1,60 @@
|
||||||
+/*
|
+/*
|
||||||
+ * domain_stats.h: domain stats extraction helpers
|
+ * domain_stats.h: domain stats extraction helpers
|
||||||
@ -205,11 +205,11 @@ Index: libvirt-7.10.0/src/conf/domain_stats.h
|
|||||||
+ virTypedParamList *params);
|
+ virTypedParamList *params);
|
||||||
+
|
+
|
||||||
+#endif /* __DOMAIN_STATS_H */
|
+#endif /* __DOMAIN_STATS_H */
|
||||||
Index: libvirt-7.10.0/src/libvirt_private.syms
|
Index: libvirt-8.0.0/src/libvirt_private.syms
|
||||||
===================================================================
|
===================================================================
|
||||||
--- libvirt-7.10.0.orig/src/libvirt_private.syms
|
--- libvirt-8.0.0.orig/src/libvirt_private.syms
|
||||||
+++ libvirt-7.10.0/src/libvirt_private.syms
|
+++ libvirt-8.0.0/src/libvirt_private.syms
|
||||||
@@ -770,6 +770,11 @@ virDomainConfNWFilterTeardown;
|
@@ -772,6 +772,11 @@ virDomainConfNWFilterTeardown;
|
||||||
virDomainConfVMNWFilterTeardown;
|
virDomainConfVMNWFilterTeardown;
|
||||||
|
|
||||||
|
|
||||||
@ -221,7 +221,7 @@ Index: libvirt-7.10.0/src/libvirt_private.syms
|
|||||||
# conf/domain_validate.h
|
# conf/domain_validate.h
|
||||||
virDomainActualNetDefValidate;
|
virDomainActualNetDefValidate;
|
||||||
virDomainDefValidate;
|
virDomainDefValidate;
|
||||||
@@ -1950,6 +1955,7 @@ virCgroupGetMemoryUsage;
|
@@ -1942,6 +1947,7 @@ virCgroupGetMemoryUsage;
|
||||||
virCgroupGetMemSwapHardLimit;
|
virCgroupGetMemSwapHardLimit;
|
||||||
virCgroupGetMemSwapUsage;
|
virCgroupGetMemSwapUsage;
|
||||||
virCgroupGetPercpuStats;
|
virCgroupGetPercpuStats;
|
||||||
@ -229,10 +229,10 @@ Index: libvirt-7.10.0/src/libvirt_private.syms
|
|||||||
virCgroupHasController;
|
virCgroupHasController;
|
||||||
virCgroupHasEmptyTasks;
|
virCgroupHasEmptyTasks;
|
||||||
virCgroupKillPainfully;
|
virCgroupKillPainfully;
|
||||||
Index: libvirt-7.10.0/src/qemu/qemu_driver.c
|
Index: libvirt-8.0.0/src/qemu/qemu_driver.c
|
||||||
===================================================================
|
===================================================================
|
||||||
--- libvirt-7.10.0.orig/src/qemu/qemu_driver.c
|
--- libvirt-8.0.0.orig/src/qemu/qemu_driver.c
|
||||||
+++ libvirt-7.10.0/src/qemu/qemu_driver.c
|
+++ libvirt-8.0.0/src/qemu/qemu_driver.c
|
||||||
@@ -68,6 +68,7 @@
|
@@ -68,6 +68,7 @@
|
||||||
#include "virarptable.h"
|
#include "virarptable.h"
|
||||||
#include "viruuid.h"
|
#include "viruuid.h"
|
||||||
@ -241,7 +241,7 @@ Index: libvirt-7.10.0/src/qemu/qemu_driver.c
|
|||||||
#include "domain_audit.h"
|
#include "domain_audit.h"
|
||||||
#include "domain_cgroup.h"
|
#include "domain_cgroup.h"
|
||||||
#include "domain_driver.h"
|
#include "domain_driver.h"
|
||||||
@@ -17530,13 +17531,7 @@ qemuDomainGetStatsState(virQEMUDriver *d
|
@@ -17407,13 +17408,7 @@ qemuDomainGetStatsState(virQEMUDriver *d
|
||||||
virTypedParamList *params,
|
virTypedParamList *params,
|
||||||
unsigned int privflags G_GNUC_UNUSED)
|
unsigned int privflags G_GNUC_UNUSED)
|
||||||
{
|
{
|
||||||
@ -256,7 +256,7 @@ Index: libvirt-7.10.0/src/qemu/qemu_driver.c
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -17828,25 +17823,11 @@ qemuDomainGetStatsCpuCgroup(virDomainObj
|
@@ -17705,25 +17700,11 @@ qemuDomainGetStatsCpuCgroup(virDomainObj
|
||||||
virTypedParamList *params)
|
virTypedParamList *params)
|
||||||
{
|
{
|
||||||
qemuDomainObjPrivate *priv = dom->privateData;
|
qemuDomainObjPrivate *priv = dom->privateData;
|
||||||
@ -283,7 +283,7 @@ Index: libvirt-7.10.0/src/qemu/qemu_driver.c
|
|||||||
}
|
}
|
||||||
|
|
||||||
static int
|
static int
|
||||||
@@ -18039,76 +18020,15 @@ qemuDomainGetStatsVcpu(virQEMUDriver *dr
|
@@ -17916,76 +17897,15 @@ qemuDomainGetStatsVcpu(virQEMUDriver *dr
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -361,11 +361,11 @@ Index: libvirt-7.10.0/src/qemu/qemu_driver.c
|
|||||||
|
|
||||||
/* refresh information by opening images on the disk */
|
/* refresh information by opening images on the disk */
|
||||||
static int
|
static int
|
||||||
Index: libvirt-7.10.0/src/util/vircgroup.c
|
Index: libvirt-8.0.0/src/util/vircgroup.c
|
||||||
===================================================================
|
===================================================================
|
||||||
--- libvirt-7.10.0.orig/src/util/vircgroup.c
|
--- libvirt-8.0.0.orig/src/util/vircgroup.c
|
||||||
+++ libvirt-7.10.0/src/util/vircgroup.c
|
+++ libvirt-8.0.0/src/util/vircgroup.c
|
||||||
@@ -3033,6 +3033,31 @@ virCgroupGetInode(virCgroup *cgroup)
|
@@ -3022,6 +3022,31 @@ virCgroupGetInode(virCgroup *cgroup)
|
||||||
return st.st_ino;
|
return st.st_ino;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -397,7 +397,7 @@ Index: libvirt-7.10.0/src/util/vircgroup.c
|
|||||||
#else /* !__linux__ */
|
#else /* !__linux__ */
|
||||||
|
|
||||||
bool
|
bool
|
||||||
@@ -3042,6 +3067,14 @@ virCgroupAvailable(void)
|
@@ -3031,6 +3056,14 @@ virCgroupAvailable(void)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -412,10 +412,10 @@ Index: libvirt-7.10.0/src/util/vircgroup.c
|
|||||||
int
|
int
|
||||||
virCgroupNewPartition(const char *path G_GNUC_UNUSED,
|
virCgroupNewPartition(const char *path G_GNUC_UNUSED,
|
||||||
bool create G_GNUC_UNUSED,
|
bool create G_GNUC_UNUSED,
|
||||||
Index: libvirt-7.10.0/src/util/vircgroup.h
|
Index: libvirt-8.0.0/src/util/vircgroup.h
|
||||||
===================================================================
|
===================================================================
|
||||||
--- libvirt-7.10.0.orig/src/util/vircgroup.h
|
--- libvirt-8.0.0.orig/src/util/vircgroup.h
|
||||||
+++ libvirt-7.10.0/src/util/vircgroup.h
|
+++ libvirt-8.0.0/src/util/vircgroup.h
|
||||||
@@ -23,6 +23,7 @@
|
@@ -23,6 +23,7 @@
|
||||||
|
|
||||||
#include "virbitmap.h"
|
#include "virbitmap.h"
|
||||||
@ -432,10 +432,10 @@ Index: libvirt-7.10.0/src/util/vircgroup.h
|
|||||||
+ virTypedParamList *params);
|
+ virTypedParamList *params);
|
||||||
+
|
+
|
||||||
int virCgroupGetInode(virCgroup *cgroup);
|
int virCgroupGetInode(virCgroup *cgroup);
|
||||||
Index: libvirt-7.10.0/src/conf/meson.build
|
Index: libvirt-8.0.0/src/conf/meson.build
|
||||||
===================================================================
|
===================================================================
|
||||||
--- libvirt-7.10.0.orig/src/conf/meson.build
|
--- libvirt-8.0.0.orig/src/conf/meson.build
|
||||||
+++ libvirt-7.10.0/src/conf/meson.build
|
+++ libvirt-8.0.0/src/conf/meson.build
|
||||||
@@ -15,6 +15,7 @@ domain_conf_sources = [
|
@@ -15,6 +15,7 @@ domain_conf_sources = [
|
||||||
'domain_conf.c',
|
'domain_conf.c',
|
||||||
'domain_nwfilter.c',
|
'domain_nwfilter.c',
|
||||||
|
@ -19,11 +19,11 @@ reworking this patch and submitting it to upstream libvirt.
|
|||||||
src/libxl/libxl_driver.c | 91 ++++++++++++++++++++++++++++++++++++++++++++++++
|
src/libxl/libxl_driver.c | 91 ++++++++++++++++++++++++++++++++++++++++++++++++
|
||||||
1 file changed, 91 insertions(+)
|
1 file changed, 91 insertions(+)
|
||||||
|
|
||||||
Index: libvirt-7.10.0/src/libxl/libxl_driver.c
|
Index: libvirt-8.0.0/src/libxl/libxl_driver.c
|
||||||
===================================================================
|
===================================================================
|
||||||
--- libvirt-7.10.0.orig/src/libxl/libxl_driver.c
|
--- libvirt-8.0.0.orig/src/libxl/libxl_driver.c
|
||||||
+++ libvirt-7.10.0/src/libxl/libxl_driver.c
|
+++ libvirt-8.0.0/src/libxl/libxl_driver.c
|
||||||
@@ -5254,6 +5254,95 @@ libxlDomainMemoryStats(virDomainPtr dom,
|
@@ -5241,6 +5241,95 @@ libxlDomainMemoryStats(virDomainPtr dom,
|
||||||
|
|
||||||
#undef LIBXL_SET_MEMSTAT
|
#undef LIBXL_SET_MEMSTAT
|
||||||
|
|
||||||
@ -119,7 +119,7 @@ Index: libvirt-7.10.0/src/libxl/libxl_driver.c
|
|||||||
static int
|
static int
|
||||||
libxlDomainGetJobInfo(virDomainPtr dom,
|
libxlDomainGetJobInfo(virDomainPtr dom,
|
||||||
virDomainJobInfoPtr info)
|
virDomainJobInfoPtr info)
|
||||||
@@ -6575,6 +6664,7 @@ static virHypervisorDriver libxlHypervis
|
@@ -6554,6 +6643,7 @@ static virHypervisorDriver libxlHypervis
|
||||||
.domainGetNumaParameters = libxlDomainGetNumaParameters, /* 1.1.1 */
|
.domainGetNumaParameters = libxlDomainGetNumaParameters, /* 1.1.1 */
|
||||||
.nodeGetFreeMemory = libxlNodeGetFreeMemory, /* 0.9.0 */
|
.nodeGetFreeMemory = libxlNodeGetFreeMemory, /* 0.9.0 */
|
||||||
.nodeGetCellsFreeMemory = libxlNodeGetCellsFreeMemory, /* 1.1.1 */
|
.nodeGetCellsFreeMemory = libxlNodeGetCellsFreeMemory, /* 1.1.1 */
|
||||||
@ -127,10 +127,10 @@ Index: libvirt-7.10.0/src/libxl/libxl_driver.c
|
|||||||
.domainGetJobInfo = libxlDomainGetJobInfo, /* 1.3.1 */
|
.domainGetJobInfo = libxlDomainGetJobInfo, /* 1.3.1 */
|
||||||
.domainGetJobStats = libxlDomainGetJobStats, /* 1.3.1 */
|
.domainGetJobStats = libxlDomainGetJobStats, /* 1.3.1 */
|
||||||
.domainMemoryStats = libxlDomainMemoryStats, /* 1.3.0 */
|
.domainMemoryStats = libxlDomainMemoryStats, /* 1.3.0 */
|
||||||
Index: libvirt-7.10.0/src/libxl/libxl_api_wrapper.h
|
Index: libvirt-8.0.0/src/libxl/libxl_api_wrapper.h
|
||||||
===================================================================
|
===================================================================
|
||||||
--- libvirt-7.10.0.orig/src/libxl/libxl_api_wrapper.h
|
--- libvirt-8.0.0.orig/src/libxl/libxl_api_wrapper.h
|
||||||
+++ libvirt-7.10.0/src/libxl/libxl_api_wrapper.h
|
+++ libvirt-8.0.0/src/libxl/libxl_api_wrapper.h
|
||||||
@@ -215,3 +215,18 @@ libxlSetMemoryTargetWrapper(libxl_ctx *c
|
@@ -215,3 +215,18 @@ libxlSetMemoryTargetWrapper(libxl_ctx *c
|
||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
|
@ -18,10 +18,10 @@ Signed-off-by: Martin Kletzander <mkletzan@redhat.com>
|
|||||||
src/util/virpolkit.c | 3 +++
|
src/util/virpolkit.c | 3 +++
|
||||||
1 file changed, 3 insertions(+)
|
1 file changed, 3 insertions(+)
|
||||||
|
|
||||||
Index: libvirt-7.10.0/src/util/virpolkit.c
|
Index: libvirt-8.0.0/src/util/virpolkit.c
|
||||||
===================================================================
|
===================================================================
|
||||||
--- libvirt-7.10.0.orig/src/util/virpolkit.c
|
--- libvirt-8.0.0.orig/src/util/virpolkit.c
|
||||||
+++ libvirt-7.10.0/src/util/virpolkit.c
|
+++ libvirt-8.0.0/src/util/virpolkit.c
|
||||||
@@ -237,6 +237,9 @@ virPolkitAgentAvailable(void)
|
@@ -237,6 +237,9 @@ virPolkitAgentAvailable(void)
|
||||||
const char *termid = ctermid(NULL);
|
const char *termid = ctermid(NULL);
|
||||||
VIR_AUTOCLOSE fd = -1;
|
VIR_AUTOCLOSE fd = -1;
|
||||||
|
@ -9,10 +9,10 @@ them using the existing API.
|
|||||||
src/lxc/lxc_driver.c | 138 +++++++++++++++++++++++++++++++++++++++++++++++++++
|
src/lxc/lxc_driver.c | 138 +++++++++++++++++++++++++++++++++++++++++++++++++++
|
||||||
1 file changed, 138 insertions(+)
|
1 file changed, 138 insertions(+)
|
||||||
|
|
||||||
Index: libvirt-7.10.0/src/lxc/lxc_driver.c
|
Index: libvirt-8.0.0/src/lxc/lxc_driver.c
|
||||||
===================================================================
|
===================================================================
|
||||||
--- libvirt-7.10.0.orig/src/lxc/lxc_driver.c
|
--- libvirt-8.0.0.orig/src/lxc/lxc_driver.c
|
||||||
+++ libvirt-7.10.0/src/lxc/lxc_driver.c
|
+++ libvirt-8.0.0/src/lxc/lxc_driver.c
|
||||||
@@ -74,6 +74,8 @@
|
@@ -74,6 +74,8 @@
|
||||||
#include "netdev_bandwidth_conf.h"
|
#include "netdev_bandwidth_conf.h"
|
||||||
#include "virsocket.h"
|
#include "virsocket.h"
|
||||||
@ -22,7 +22,7 @@ Index: libvirt-7.10.0/src/lxc/lxc_driver.c
|
|||||||
|
|
||||||
#define VIR_FROM_THIS VIR_FROM_LXC
|
#define VIR_FROM_THIS VIR_FROM_LXC
|
||||||
|
|
||||||
@@ -5075,6 +5077,128 @@ lxcDomainHasManagedSaveImage(virDomainPt
|
@@ -5036,6 +5038,128 @@ lxcDomainHasManagedSaveImage(virDomainPt
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -151,7 +151,7 @@ Index: libvirt-7.10.0/src/lxc/lxc_driver.c
|
|||||||
|
|
||||||
/* Function Tables */
|
/* Function Tables */
|
||||||
static virHypervisorDriver lxcHypervisorDriver = {
|
static virHypervisorDriver lxcHypervisorDriver = {
|
||||||
@@ -5172,6 +5296,7 @@ static virHypervisorDriver lxcHypervisor
|
@@ -5133,6 +5257,7 @@ static virHypervisorDriver lxcHypervisor
|
||||||
.nodeGetFreePages = lxcNodeGetFreePages, /* 1.2.6 */
|
.nodeGetFreePages = lxcNodeGetFreePages, /* 1.2.6 */
|
||||||
.nodeAllocPages = lxcNodeAllocPages, /* 1.2.9 */
|
.nodeAllocPages = lxcNodeAllocPages, /* 1.2.9 */
|
||||||
.domainHasManagedSaveImage = lxcDomainHasManagedSaveImage, /* 1.2.13 */
|
.domainHasManagedSaveImage = lxcDomainHasManagedSaveImage, /* 1.2.13 */
|
||||||
|
214
16172741-libvirt-guests-manpage.patch
Normal file
214
16172741-libvirt-guests-manpage.patch
Normal file
@ -0,0 +1,214 @@
|
|||||||
|
commit 161727417a91bdddf8f3167cf70c3de2829be81c
|
||||||
|
Author: Jim Fehlig <jfehlig@suse.com>
|
||||||
|
Date: Fri Jan 7 14:35:10 2022 -0700
|
||||||
|
|
||||||
|
docs: Add man page for libvirt-guests
|
||||||
|
|
||||||
|
Signed-off-by: Jim Fehlig <jfehlig@suse.com>
|
||||||
|
Reviewed-by: Andrea Bolognani <abologna@redhat.com>
|
||||||
|
|
||||||
|
Index: libvirt-8.0.0/docs/manpages/index.rst
|
||||||
|
===================================================================
|
||||||
|
--- libvirt-8.0.0.orig/docs/manpages/index.rst
|
||||||
|
+++ libvirt-8.0.0/docs/manpages/index.rst
|
||||||
|
@@ -41,6 +41,7 @@ Tools
|
||||||
|
* `virt-admin(1) <virt-admin.html>`__ - daemon administration interface
|
||||||
|
* `virsh(1) <virsh.html>`__ - management user interface
|
||||||
|
* `virt-qemu-run(1) <virt-qemu-run.html>`__ - run standalone QEMU instances
|
||||||
|
+* `libvirt-guests(8) <libvirt-guests.html>`__ - suspend/resume running libvirt guests
|
||||||
|
|
||||||
|
Key codes
|
||||||
|
=========
|
||||||
|
Index: libvirt-8.0.0/docs/manpages/libvirt-guests.rst
|
||||||
|
===================================================================
|
||||||
|
--- /dev/null
|
||||||
|
+++ libvirt-8.0.0/docs/manpages/libvirt-guests.rst
|
||||||
|
@@ -0,0 +1,151 @@
|
||||||
|
+==============
|
||||||
|
+libvirt-guests
|
||||||
|
+==============
|
||||||
|
+
|
||||||
|
+-------------------------------------
|
||||||
|
+suspend/resume running libvirt guests
|
||||||
|
+-------------------------------------
|
||||||
|
+
|
||||||
|
+:Manual section: 8
|
||||||
|
+:Manual group: Virtualization Support
|
||||||
|
+
|
||||||
|
+.. contents::
|
||||||
|
+
|
||||||
|
+SYNOPSIS
|
||||||
|
+========
|
||||||
|
+
|
||||||
|
+``libvirt-guests`` *COMMAND*
|
||||||
|
+
|
||||||
|
+
|
||||||
|
+DESCRIPTION
|
||||||
|
+===========
|
||||||
|
+
|
||||||
|
+``libvirt-guests`` is a service that can be used to coordinate guest and host
|
||||||
|
+lifecyle actions. By default, ``libvirt-guests`` will suspend running guests
|
||||||
|
+when the host shuts down, and restore them to their pre-shutdown state when
|
||||||
|
+the host reboots.
|
||||||
|
+
|
||||||
|
+``libvirt-guests`` is typically under control of systemd. When
|
||||||
|
+``libvirt-guests.service`` is enabled, systemd will call ``libvirt-guests``
|
||||||
|
+with the ``start`` *COMMAND* when the host boots. Conversely, systemd will call
|
||||||
|
+``libvirt-guests`` with the ``stop`` *COMMAND* when the host shuts down.
|
||||||
|
+
|
||||||
|
+``libvirt-guests`` can be used directly. In addition to the ``start`` and
|
||||||
|
+``stop`` *COMMAND*\s, it also supports ``status``, ``restart``, ``condrestart``,
|
||||||
|
+``try-restart``, ``reload``, ``force-reload``, ``gueststatus``, and
|
||||||
|
+``shutdown`` *COMMAND*\s.
|
||||||
|
+
|
||||||
|
+
|
||||||
|
+FILES
|
||||||
|
+=====
|
||||||
|
+
|
||||||
|
+``libvirt-guests`` defines several variables to control service behavior.
|
||||||
|
+The default vaule of these variables can be overridden in:
|
||||||
|
+
|
||||||
|
+* ``@SYSCONFDIR@/sysconfig/libvirt-guests``
|
||||||
|
+
|
||||||
|
+The following variables are supported:
|
||||||
|
+
|
||||||
|
+- URIS=default
|
||||||
|
+
|
||||||
|
+ URIs to check for running guests. Example:
|
||||||
|
+ ``URIS='default xen:///system xen+tcp://host/system lxc:///system'``
|
||||||
|
+
|
||||||
|
+- ON_BOOT=start
|
||||||
|
+
|
||||||
|
+ Action taken on host boot
|
||||||
|
+
|
||||||
|
+ * start
|
||||||
|
+
|
||||||
|
+ All guests which were running on shutdown are started on boot regardless
|
||||||
|
+ of their autostart settings
|
||||||
|
+
|
||||||
|
+ * ignore
|
||||||
|
+
|
||||||
|
+ ``libvirt-guests`` won't start any guest on boot, however, guests marked
|
||||||
|
+ as autostart will still be automatically started by libvirtd
|
||||||
|
+
|
||||||
|
+- START_DELAY=0
|
||||||
|
+
|
||||||
|
+ Number of seconds to wait between each guest start. Set to 0 to allow parallel
|
||||||
|
+ startup.
|
||||||
|
+
|
||||||
|
+- ON_SHUTDOWN=suspend
|
||||||
|
+
|
||||||
|
+ Action taken on host shutdown
|
||||||
|
+
|
||||||
|
+ * suspend
|
||||||
|
+
|
||||||
|
+ All running guests are suspended using virsh managedsave
|
||||||
|
+
|
||||||
|
+ * shutdown
|
||||||
|
+
|
||||||
|
+ All running guests are asked to shutdown. Please be careful with this
|
||||||
|
+ settings since there is no way to distinguish between a guest which is
|
||||||
|
+ stuck or ignores shutdown requests and a guest which just needs a long
|
||||||
|
+ time to shutdown. When setting ON_SHUTDOWN=shutdown, you must also set
|
||||||
|
+ SHUTDOWN_TIMEOUT to a value suitable for your guests.
|
||||||
|
+
|
||||||
|
+- PARALLEL_SHUTDOWN=0
|
||||||
|
+
|
||||||
|
+ Number of guests will be shutdown concurrently, taking effect when
|
||||||
|
+ "ON_SHUTDOWN" is set to "shutdown". If Set to 0, guests will be shutdown one
|
||||||
|
+ after another. Number of guests on shutdown at any time will not exceed number
|
||||||
|
+ set in this variable.
|
||||||
|
+
|
||||||
|
+- SHUTDOWN_TIMEOUT=300
|
||||||
|
+
|
||||||
|
+ Number of seconds we're willing to wait for a guest to shut down. If parallel
|
||||||
|
+ shutdown is enabled, this timeout applies as a timeout for shutting down all
|
||||||
|
+ guests on a single URI defined in the variable URIS. If this is 0, then there
|
||||||
|
+ is no time out (use with caution, as guests might not respond to a shutdown
|
||||||
|
+ request). The default value is 300 seconds (5 minutes).
|
||||||
|
+
|
||||||
|
+- BYPASS_CACHE=0
|
||||||
|
+
|
||||||
|
+ If non-zero, try to bypass the file system cache when saving and
|
||||||
|
+ restoring guests, even though this may give slower operation for
|
||||||
|
+ some file systems.
|
||||||
|
+
|
||||||
|
+- SYNC_TIME=0
|
||||||
|
+
|
||||||
|
+ If non-zero, try to sync guest time on domain resume. Be aware, that
|
||||||
|
+ this requires guest agent with support for time synchronization
|
||||||
|
+ running in the guest. By default, this functionality is turned off.
|
||||||
|
+
|
||||||
|
+
|
||||||
|
+BUGS
|
||||||
|
+====
|
||||||
|
+
|
||||||
|
+Please report all bugs you discover. This should be done via either:
|
||||||
|
+
|
||||||
|
+#. the mailing list
|
||||||
|
+
|
||||||
|
+ `https://libvirt.org/contact.html <https://libvirt.org/contact.html>`_
|
||||||
|
+
|
||||||
|
+#. the bug tracker
|
||||||
|
+
|
||||||
|
+ `https://libvirt.org/bugs.html <https://libvirt.org/bugs.html>`_
|
||||||
|
+
|
||||||
|
+Alternatively, you may report bugs to your software distributor / vendor.
|
||||||
|
+
|
||||||
|
+
|
||||||
|
+AUTHORS
|
||||||
|
+=======
|
||||||
|
+
|
||||||
|
+Please refer to the AUTHORS file distributed with libvirt.
|
||||||
|
+
|
||||||
|
+
|
||||||
|
+LICENSE
|
||||||
|
+=======
|
||||||
|
+
|
||||||
|
+``libvirt-guests`` is distributed under the terms of the GNU LGPL v2.1+.
|
||||||
|
+This is free software; see the source for copying conditions. There
|
||||||
|
+is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR
|
||||||
|
+PURPOSE
|
||||||
|
+
|
||||||
|
+
|
||||||
|
+SEE ALSO
|
||||||
|
+========
|
||||||
|
+
|
||||||
|
+libvirtd(8), `https://libvirt.org/ <https://libvirt.org/>`_
|
||||||
|
Index: libvirt-8.0.0/docs/manpages/meson.build
|
||||||
|
===================================================================
|
||||||
|
--- libvirt-8.0.0.orig/docs/manpages/meson.build
|
||||||
|
+++ libvirt-8.0.0/docs/manpages/meson.build
|
||||||
|
@@ -21,6 +21,7 @@ docs_man_files = [
|
||||||
|
{ 'name': 'virt-qemu-run', 'section': '1', 'install': conf.has('WITH_QEMU') },
|
||||||
|
{ 'name': 'virt-xml-validate', 'section': '1', 'install': true },
|
||||||
|
|
||||||
|
+ { 'name': 'libvirt-guests', 'section': '8', 'install': conf.has('WITH_LIBVIRTD') },
|
||||||
|
{ 'name': 'libvirtd', 'section': '8', 'install': conf.has('WITH_LIBVIRTD') },
|
||||||
|
{ 'name': 'virt-sanlock-cleanup', 'section': '8', 'install': conf.has('WITH_SANLOCK') },
|
||||||
|
{ 'name': 'virt-ssh-helper', 'section': '8', 'install': conf.has('WITH_LIBVIRTD') },
|
||||||
|
Index: libvirt-8.0.0/libvirt.spec.in
|
||||||
|
===================================================================
|
||||||
|
--- libvirt-8.0.0.orig/libvirt.spec.in
|
||||||
|
+++ libvirt-8.0.0/libvirt.spec.in
|
||||||
|
@@ -1694,6 +1694,7 @@ exit 0
|
||||||
|
%{_mandir}/man1/virt-admin.1*
|
||||||
|
%{_mandir}/man1/virt-host-validate.1*
|
||||||
|
%{_mandir}/man8/virt-ssh-helper.8*
|
||||||
|
+%{_mandir}/man8/libvirt-guests.8*
|
||||||
|
%{_mandir}/man8/libvirtd.8*
|
||||||
|
%{_mandir}/man8/virtlogd.8*
|
||||||
|
%{_mandir}/man8/virtlockd.8*
|
||||||
|
Index: libvirt-8.0.0/tools/libvirt-guests.service.in
|
||||||
|
===================================================================
|
||||||
|
--- libvirt-8.0.0.orig/tools/libvirt-guests.service.in
|
||||||
|
+++ libvirt-8.0.0/tools/libvirt-guests.service.in
|
||||||
|
@@ -6,7 +6,7 @@ After=network.target
|
||||||
|
After=time-sync.target
|
||||||
|
After=libvirtd.service
|
||||||
|
After=virt-guest-shutdown.target
|
||||||
|
-Documentation=man:libvirtd(8)
|
||||||
|
+Documentation=man:libvirt-guests(8)
|
||||||
|
Documentation=https://libvirt.org
|
||||||
|
|
||||||
|
[Service]
|
@ -1,105 +0,0 @@
|
|||||||
commit 23b51d7b8ec885e97a9277cf0a6c2833db4636e8
|
|
||||||
Author: Jim Fehlig <jfehlig@suse.com>
|
|
||||||
Date: Fri Oct 29 14:16:33 2021 -0600
|
|
||||||
|
|
||||||
libxl: Disable death events after receiving a shutdown event
|
|
||||||
|
|
||||||
The libxl driver will handle all domain destruction and cleanup
|
|
||||||
when receiving a domain shutdown event from libxl. Commit fa30ee04a2a
|
|
||||||
introduced the ignoreDeathEvent boolean in the DomainObjPrivate struct
|
|
||||||
to ignore subsequent death events from libxl. But libxl already provides
|
|
||||||
a mechanism to disable death events via libxl_evdisable_domain_death.
|
|
||||||
|
|
||||||
This patch partially reverts commit fa30ee04a2a and instead uses
|
|
||||||
libxl_evdisable_domain_death to disable subsequent death events when
|
|
||||||
processing a shutdown event.
|
|
||||||
|
|
||||||
Signed-off-by: Jim Fehlig <jfehlig@suse.com>
|
|
||||||
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
|
|
||||||
Reviewed-by: Ján Tomko <jtomko@redhat.com>
|
|
||||||
|
|
||||||
Index: libvirt-7.10.0/src/libxl/libxl_domain.c
|
|
||||||
===================================================================
|
|
||||||
--- libvirt-7.10.0.orig/src/libxl/libxl_domain.c
|
|
||||||
+++ libvirt-7.10.0/src/libxl/libxl_domain.c
|
|
||||||
@@ -616,12 +616,6 @@ static void
|
|
||||||
libxlDomainHandleDeath(libxlDriverPrivate *driver, virDomainObj *vm)
|
|
||||||
{
|
|
||||||
virObjectEvent *dom_event = NULL;
|
|
||||||
- libxlDomainObjPrivate *priv = vm->privateData;
|
|
||||||
-
|
|
||||||
- if (priv->ignoreDeathEvent) {
|
|
||||||
- priv->ignoreDeathEvent = false;
|
|
||||||
- return;
|
|
||||||
- }
|
|
||||||
|
|
||||||
if (libxlDomainObjBeginJob(driver, vm, LIBXL_JOB_MODIFY) < 0)
|
|
||||||
return;
|
|
||||||
@@ -671,7 +665,6 @@ libxlDomainEventHandler(void *data, libx
|
|
||||||
}
|
|
||||||
|
|
||||||
if (event->type == LIBXL_EVENT_TYPE_DOMAIN_SHUTDOWN) {
|
|
||||||
- libxlDomainObjPrivate *priv = vm->privateData;
|
|
||||||
struct libxlShutdownThreadInfo *shutdown_info = NULL;
|
|
||||||
virThread thread;
|
|
||||||
g_autofree char *name = NULL;
|
|
||||||
@@ -688,12 +681,9 @@ libxlDomainEventHandler(void *data, libx
|
|
||||||
name = g_strdup_printf("ev-%d", event->domid);
|
|
||||||
/*
|
|
||||||
* Cleanup will be handled by the shutdown thread.
|
|
||||||
- * Ignore the forthcoming death event from libxl
|
|
||||||
*/
|
|
||||||
- priv->ignoreDeathEvent = true;
|
|
||||||
if (virThreadCreateFull(&thread, false, libxlDomainShutdownThread,
|
|
||||||
name, false, shutdown_info) < 0) {
|
|
||||||
- priv->ignoreDeathEvent = false;
|
|
||||||
/*
|
|
||||||
* Not much we can do on error here except log it.
|
|
||||||
*/
|
|
||||||
@@ -859,18 +849,17 @@ libxlDomainDestroyInternal(libxlDriverPr
|
|
||||||
libxlDomainObjPrivate *priv = vm->privateData;
|
|
||||||
int ret = -1;
|
|
||||||
|
|
||||||
- /* Ignore next LIBXL_EVENT_TYPE_DOMAIN_DEATH as the caller will handle
|
|
||||||
- * domain death appropriately already (having more info, like the reason).
|
|
||||||
- */
|
|
||||||
- priv->ignoreDeathEvent = true;
|
|
||||||
+ if (priv->deathW) {
|
|
||||||
+ libxl_evdisable_domain_death(cfg->ctx, priv->deathW);
|
|
||||||
+ priv->deathW = NULL;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
/* Unlock virDomainObj during destroy, which can take considerable
|
|
||||||
* time on large memory domains.
|
|
||||||
*/
|
|
||||||
virObjectUnlock(vm);
|
|
||||||
ret = libxl_domain_destroy(cfg->ctx, vm->def->id, NULL);
|
|
||||||
virObjectLock(vm);
|
|
||||||
- if (ret)
|
|
||||||
- priv->ignoreDeathEvent = false;
|
|
||||||
|
|
||||||
return ret;
|
|
||||||
}
|
|
||||||
@@ -921,8 +910,6 @@ libxlDomainCleanup(libxlDriverPrivate *d
|
|
||||||
priv->deathW = NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
- priv->ignoreDeathEvent = false;
|
|
||||||
-
|
|
||||||
if (!!g_atomic_int_dec_and_test(&driver->nactive) && driver->inhibitCallback)
|
|
||||||
driver->inhibitCallback(false, driver->inhibitOpaque);
|
|
||||||
|
|
||||||
Index: libvirt-7.10.0/src/libxl/libxl_domain.h
|
|
||||||
===================================================================
|
|
||||||
--- libvirt-7.10.0.orig/src/libxl/libxl_domain.h
|
|
||||||
+++ libvirt-7.10.0/src/libxl/libxl_domain.h
|
|
||||||
@@ -54,9 +54,6 @@ struct _libxlDomainObjPrivate {
|
|
||||||
/* console */
|
|
||||||
virChrdevs *devs;
|
|
||||||
libxl_evgen_domain_death *deathW;
|
|
||||||
- /* Flag to indicate the upcoming LIBXL_EVENT_TYPE_DOMAIN_DEATH is caused
|
|
||||||
- * by libvirt and should not be handled separately */
|
|
||||||
- bool ignoreDeathEvent;
|
|
||||||
virThread *migrationDstReceiveThr;
|
|
||||||
unsigned short migrationPort;
|
|
||||||
char *lockState;
|
|
66
3be5ba11-libvirt-guests-install.patch
Normal file
66
3be5ba11-libvirt-guests-install.patch
Normal file
@ -0,0 +1,66 @@
|
|||||||
|
commit 3be5ba11a2c6fcb2dfdffa03ab4f847113f36b85
|
||||||
|
Author: Jim Fehlig <jfehlig@suse.com>
|
||||||
|
Date: Mon Jan 10 11:42:58 2022 -0700
|
||||||
|
|
||||||
|
build: Only install libvirt-guests when building libvirtd
|
||||||
|
|
||||||
|
libvirt-guests was already moved to the libvirt daemon package in commit
|
||||||
|
d800c50349. It only needs to be installed when building libvirtd.
|
||||||
|
|
||||||
|
Signed-off-by: Jim Fehlig <jfehlig@suse.com>
|
||||||
|
Reviewed-by: Andrea Bolognani <abologna@redhat.com>
|
||||||
|
|
||||||
|
Index: libvirt-8.0.0/tools/meson.build
|
||||||
|
===================================================================
|
||||||
|
--- libvirt-8.0.0.orig/tools/meson.build
|
||||||
|
+++ libvirt-8.0.0/tools/meson.build
|
||||||
|
@@ -297,29 +297,31 @@ if conf.has('WITH_SANLOCK')
|
||||||
|
)
|
||||||
|
endif
|
||||||
|
|
||||||
|
-configure_file(
|
||||||
|
- input: 'libvirt-guests.sh.in',
|
||||||
|
- output: '@BASENAME@',
|
||||||
|
- configuration: tools_conf,
|
||||||
|
- install: true,
|
||||||
|
- install_dir: libexecdir,
|
||||||
|
- install_mode: 'rwxrwxr-x',
|
||||||
|
-)
|
||||||
|
-
|
||||||
|
-if init_script == 'systemd'
|
||||||
|
- install_data(
|
||||||
|
- 'libvirt-guests.sysconf',
|
||||||
|
- install_dir: sysconfdir / 'sysconfig',
|
||||||
|
- rename: 'libvirt-guests',
|
||||||
|
- )
|
||||||
|
-
|
||||||
|
+if conf.has('WITH_LIBVIRTD')
|
||||||
|
configure_file(
|
||||||
|
- input: 'libvirt-guests.service.in',
|
||||||
|
+ input: 'libvirt-guests.sh.in',
|
||||||
|
output: '@BASENAME@',
|
||||||
|
configuration: tools_conf,
|
||||||
|
install: true,
|
||||||
|
- install_dir: prefix / 'lib' / 'systemd' / 'system',
|
||||||
|
+ install_dir: libexecdir,
|
||||||
|
+ install_mode: 'rwxrwxr-x',
|
||||||
|
)
|
||||||
|
+
|
||||||
|
+ if init_script == 'systemd'
|
||||||
|
+ install_data(
|
||||||
|
+ 'libvirt-guests.sysconf',
|
||||||
|
+ install_dir: sysconfdir / 'sysconfig',
|
||||||
|
+ rename: 'libvirt-guests',
|
||||||
|
+ )
|
||||||
|
+
|
||||||
|
+ configure_file(
|
||||||
|
+ input: 'libvirt-guests.service.in',
|
||||||
|
+ output: '@BASENAME@',
|
||||||
|
+ configuration: tools_conf,
|
||||||
|
+ install: true,
|
||||||
|
+ install_dir: prefix / 'lib' / 'systemd' / 'system',
|
||||||
|
+ )
|
||||||
|
+ endif
|
||||||
|
endif
|
||||||
|
|
||||||
|
if bash_completion_dep.found()
|
@ -1,167 +0,0 @@
|
|||||||
commit 5c5df5310f72be4878a71ace47074c54e0d1a27d
|
|
||||||
Author: Jim Fehlig <jfehlig@suse.com>
|
|
||||||
Date: Wed Nov 24 11:48:51 2021 -0700
|
|
||||||
|
|
||||||
libxl: Search for virDomainObj in event handler threads
|
|
||||||
|
|
||||||
libxl can deliver events and invoke callbacks on any application thread
|
|
||||||
calling into libxl. This can cause deadlock in the libvirt libxl driver
|
|
||||||
|
|
||||||
Thread 19 (Thread 0x7f31411ec700 (LWP 14068) "libvirtd"):
|
|
||||||
#0 0x00007f318520cc7d in __lll_lock_wait () from /lib64/libpthread.so.0
|
|
||||||
#1 0x00007f3185205ed5 in pthread_mutex_lock () from /lib64/libpthread.so.0
|
|
||||||
#2 0x00007f3189488015 in virMutexLock (m=<optimized out>) at ../../src/util/virthread.c:79
|
|
||||||
#3 0x00007f3189463f3b in virObjectLock (anyobj=<optimized out>) at ../../src/util/virobject.c:433
|
|
||||||
#4 0x00007f31894f2f41 in virDomainObjListSearchID (payload=0x7f317400a6d0, name=<optimized out>, data=0x7f31411eaeac) at ../../src/conf/virdomainobjlist.c:105
|
|
||||||
#5 0x00007f3189437ac5 in virHashSearch (ctable=0x7f3124025a30, iter=iter@entry=0x7f31894f2f30 <virDomainObjListSearchID>, data=data@entry=0x7f31411eaeac, name=name@entry=0x0) at ../../src/util/virhash.c:745
|
|
||||||
#6 0x00007f31894f3919 in virDomainObjListFindByID (doms=0x7f3124025430, id=<optimized out>) at ../../src/conf/virdomainobjlist.c:121
|
|
||||||
#7 0x00007f3152f292e5 in libxlDomainEventHandler (data=0x7f3124023d80, event=0x7f310c010ae0) at ../../src/libxl/libxl_domain.c:660
|
|
||||||
#8 0x00007f3152c6ff5d in egc_run_callbacks (egc=egc@entry=0x7f31411eaf50) at libxl_event.c:1427
|
|
||||||
#9 0x00007f3152c718bd in libxl__egc_cleanup (egc=0x7f31411eaf50) at libxl_event.c:1458
|
|
||||||
#10 libxl__ao_inprogress (ao=ao@entry=0x7f310c00b8a0, file=file@entry=0x7f3152cce987 "libxl_domain.c", line=line@entry=730, func=func@entry=0x7f3152ccf750 <__func__.22238> "libxl_domain_unpause") at libxl_event.c:2047
|
|
||||||
#11 0x00007f3152c8c5b8 in libxl_domain_unpause (ctx=0x7f3124015a40, domid=<optimized out>, ao_how=ao_how@entry=0x0) at libxl_domain.c:730
|
|
||||||
#12 0x00007f3152f2a584 in libxl_domain_unpause_0x041200 (domid=<optimized out>, ctx=<optimized out>) at /usr/include/libxl.h:1756
|
|
||||||
#13 libxlDomainStart (driver=driver@entry=0x7f3124023d80, vm=vm@entry=0x7f317400a6d0, start_paused=start_paused@entry=false, restore_fd=restore_fd@entry=-1, restore_ver=<optimized out>, restore_ver@entry=2) at ../../src/libxl/libxl_domain.c:1482
|
|
||||||
#14 0x00007f3152f2a6e3 in libxlDomainStartNew (driver=driver@entry=0x7f3124023d80, vm=vm@entry=0x7f317400a6d0, start_paused=start_paused@entry=false) at ../../src/libxl/libxl_domain.c:1545
|
|
||||||
#15 0x00007f3152f2a789 in libxlDomainShutdownHandleRestart (driver=0x7f3124023d80, vm=0x7f317400a6d0) at ../../src/libxl/libxl_domain.c:464
|
|
||||||
#16 0x00007f3152f2a9e4 in libxlDomainShutdownThread (opaque=<optimized out>) at ../../src/libxl/libxl_domain.c:559
|
|
||||||
#17 0x00007f3189487ee2 in virThreadHelper (data=<optimized out>) at ../../src/util/virthread.c:196
|
|
||||||
#18 0x00007f3185203539 in start_thread () from /lib64/libpthread.so.0
|
|
||||||
#19 0x00007f3184f3becf in clone () from /lib64/libc.so.6
|
|
||||||
|
|
||||||
Frame 16 runs a thread created to handle domain shutdown processing for
|
|
||||||
domid 28712. In this case the event contained the reboot reason, so the
|
|
||||||
old domain is destroyed and a new one is created by libxlDomainStart new.
|
|
||||||
After starting the domain, it is unpaused by calling libxl_domain_unpause
|
|
||||||
in frame 12. While the thread is running within libxl, libxl takes the
|
|
||||||
opportunity to deliver a pending domain shutdown event for unrelated domid
|
|
||||||
28710. While searching for the associated virDomainObj by ID, a deadlock is
|
|
||||||
encountered when attempting to lock the virDomainObj for domid 28712, which
|
|
||||||
is already locked since this thread is processing its shutdown event.
|
|
||||||
|
|
||||||
The deadlock can be avoided by moving the search for a virDomainObj
|
|
||||||
associated with the event domid to the shutdown thread. The same is done
|
|
||||||
for the death thread.
|
|
||||||
|
|
||||||
Signed-off-by: Jim Fehlig <jfehlig@suse.com>
|
|
||||||
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
|
|
||||||
Reviewed-by: Ján Tomko <jtomko@redhat.com>
|
|
||||||
|
|
||||||
Index: libvirt-7.10.0/src/libxl/libxl_domain.c
|
|
||||||
===================================================================
|
|
||||||
--- libvirt-7.10.0.orig/src/libxl/libxl_domain.c
|
|
||||||
+++ libvirt-7.10.0/src/libxl/libxl_domain.c
|
|
||||||
@@ -480,7 +480,6 @@ libxlDomainShutdownHandleRestart(libxlDr
|
|
||||||
struct libxlEventHandlerThreadInfo
|
|
||||||
{
|
|
||||||
libxlDriverPrivate *driver;
|
|
||||||
- virDomainObj *vm;
|
|
||||||
libxl_event *event;
|
|
||||||
};
|
|
||||||
|
|
||||||
@@ -489,7 +488,7 @@ static void
|
|
||||||
libxlDomainShutdownThread(void *opaque)
|
|
||||||
{
|
|
||||||
struct libxlEventHandlerThreadInfo *shutdown_info = opaque;
|
|
||||||
- virDomainObj *vm = shutdown_info->vm;
|
|
||||||
+ virDomainObj *vm = NULL;
|
|
||||||
libxl_event *ev = shutdown_info->event;
|
|
||||||
libxlDriverPrivate *driver = shutdown_info->driver;
|
|
||||||
virObjectEvent *dom_event = NULL;
|
|
||||||
@@ -499,6 +498,12 @@ libxlDomainShutdownThread(void *opaque)
|
|
||||||
|
|
||||||
libxl_domain_config_init(&d_config);
|
|
||||||
|
|
||||||
+ vm = virDomainObjListFindByID(driver->domains, ev->domid);
|
|
||||||
+ if (!vm) {
|
|
||||||
+ /* Nothing to do if we can't find the virDomainObj */
|
|
||||||
+ goto cleanup;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
if (libxlDomainObjBeginJob(driver, vm, LIBXL_JOB_MODIFY) < 0)
|
|
||||||
goto cleanup;
|
|
||||||
|
|
||||||
@@ -616,12 +621,18 @@ static void
|
|
||||||
libxlDomainDeathThread(void *opaque)
|
|
||||||
{
|
|
||||||
struct libxlEventHandlerThreadInfo *death_info = opaque;
|
|
||||||
- virDomainObj *vm = death_info->vm;
|
|
||||||
+ virDomainObj *vm = NULL;
|
|
||||||
libxl_event *ev = death_info->event;
|
|
||||||
libxlDriverPrivate *driver = death_info->driver;
|
|
||||||
virObjectEvent *dom_event = NULL;
|
|
||||||
g_autoptr(libxlDriverConfig) cfg = libxlDriverConfigGet(driver);
|
|
||||||
|
|
||||||
+ vm = virDomainObjListFindByID(driver->domains, ev->domid);
|
|
||||||
+ if (!vm) {
|
|
||||||
+ /* Nothing to do if we can't find the virDomainObj */
|
|
||||||
+ goto cleanup;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
if (libxlDomainObjBeginJob(driver, vm, LIBXL_JOB_MODIFY) < 0)
|
|
||||||
goto cleanup;
|
|
||||||
|
|
||||||
@@ -650,7 +661,6 @@ libxlDomainEventHandler(void *data, libx
|
|
||||||
{
|
|
||||||
libxlDriverPrivate *driver = data;
|
|
||||||
libxl_shutdown_reason xl_reason = event->u.domain_shutdown.shutdown_reason;
|
|
||||||
- virDomainObj *vm = NULL;
|
|
||||||
g_autoptr(libxlDriverConfig) cfg = NULL;
|
|
||||||
struct libxlEventHandlerThreadInfo *thread_info = NULL;
|
|
||||||
virThread thread;
|
|
||||||
@@ -671,12 +681,6 @@ libxlDomainEventHandler(void *data, libx
|
|
||||||
if (xl_reason == LIBXL_SHUTDOWN_REASON_SUSPEND)
|
|
||||||
goto cleanup;
|
|
||||||
|
|
||||||
- vm = virDomainObjListFindByID(driver->domains, event->domid);
|
|
||||||
- if (!vm) {
|
|
||||||
- /* Nothing to do if we can't find the virDomainObj */
|
|
||||||
- goto cleanup;
|
|
||||||
- }
|
|
||||||
-
|
|
||||||
/*
|
|
||||||
* Start event-specific threads to handle shutdown and death.
|
|
||||||
* They are potentially lengthy operations and we don't want to be
|
|
||||||
@@ -686,7 +690,6 @@ libxlDomainEventHandler(void *data, libx
|
|
||||||
thread_info = g_new0(struct libxlEventHandlerThreadInfo, 1);
|
|
||||||
|
|
||||||
thread_info->driver = driver;
|
|
||||||
- thread_info->vm = vm;
|
|
||||||
thread_info->event = (libxl_event *)event;
|
|
||||||
thread_name = g_strdup_printf("shutdown-event-%d", event->domid);
|
|
||||||
/*
|
|
||||||
@@ -701,15 +704,14 @@ libxlDomainEventHandler(void *data, libx
|
|
||||||
goto cleanup;
|
|
||||||
}
|
|
||||||
/*
|
|
||||||
- * virDomainObjEndAPI is called in the shutdown thread, where
|
|
||||||
- * libxlEventHandlerThreadInfo and libxl_event are also freed.
|
|
||||||
+ * libxlEventHandlerThreadInfo and libxl_event are freed in the
|
|
||||||
+ * shutdown thread
|
|
||||||
*/
|
|
||||||
return;
|
|
||||||
} else if (event->type == LIBXL_EVENT_TYPE_DOMAIN_DEATH) {
|
|
||||||
thread_info = g_new0(struct libxlEventHandlerThreadInfo, 1);
|
|
||||||
|
|
||||||
thread_info->driver = driver;
|
|
||||||
- thread_info->vm = vm;
|
|
||||||
thread_info->event = (libxl_event *)event;
|
|
||||||
thread_name = g_strdup_printf("death-event-%d", event->domid);
|
|
||||||
/*
|
|
||||||
@@ -724,14 +726,13 @@ libxlDomainEventHandler(void *data, libx
|
|
||||||
goto cleanup;
|
|
||||||
}
|
|
||||||
/*
|
|
||||||
- * virDomainObjEndAPI is called in the death thread, where
|
|
||||||
- * libxlEventHandlerThreadInfo and libxl_event are also freed.
|
|
||||||
+ * libxlEventHandlerThreadInfo and libxl_event are freed in the
|
|
||||||
+ * death thread
|
|
||||||
*/
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
cleanup:
|
|
||||||
- virDomainObjEndAPI(&vm);
|
|
||||||
VIR_FREE(thread_info);
|
|
||||||
cfg = libxlDriverConfigGet(driver);
|
|
||||||
/* Cast away any const */
|
|
1034
8eb44616-remove-sysconfig-files.patch
Normal file
1034
8eb44616-remove-sysconfig-files.patch
Normal file
File diff suppressed because it is too large
Load Diff
@ -1,63 +0,0 @@
|
|||||||
commit a4e6fba069c0809b8b5dde5e9db62d2efd91b4a0
|
|
||||||
Author: Jim Fehlig <jfehlig@suse.com>
|
|
||||||
Date: Wed Nov 24 11:10:19 2021 -0700
|
|
||||||
|
|
||||||
libxl: Rename libxlShutdownThreadInfo struct
|
|
||||||
|
|
||||||
An upcoming change will use the struct in a thread created to process
|
|
||||||
death events. Rename libxlShutdownThreadInfo to libxlEventHandlerThreadInfo
|
|
||||||
to reflect the more generic usage.
|
|
||||||
|
|
||||||
Signed-off-by: Jim Fehlig <jfehlig@suse.com>
|
|
||||||
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
|
|
||||||
Reviewed-by: Ján Tomko <jtomko@redhat.com>
|
|
||||||
|
|
||||||
Index: libvirt-7.10.0/src/libxl/libxl_domain.c
|
|
||||||
===================================================================
|
|
||||||
--- libvirt-7.10.0.orig/src/libxl/libxl_domain.c
|
|
||||||
+++ libvirt-7.10.0/src/libxl/libxl_domain.c
|
|
||||||
@@ -477,7 +477,7 @@ libxlDomainShutdownHandleRestart(libxlDr
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
-struct libxlShutdownThreadInfo
|
|
||||||
+struct libxlEventHandlerThreadInfo
|
|
||||||
{
|
|
||||||
libxlDriverPrivate *driver;
|
|
||||||
virDomainObj *vm;
|
|
||||||
@@ -488,7 +488,7 @@ struct libxlShutdownThreadInfo
|
|
||||||
static void
|
|
||||||
libxlDomainShutdownThread(void *opaque)
|
|
||||||
{
|
|
||||||
- struct libxlShutdownThreadInfo *shutdown_info = opaque;
|
|
||||||
+ struct libxlEventHandlerThreadInfo *shutdown_info = opaque;
|
|
||||||
virDomainObj *vm = shutdown_info->vm;
|
|
||||||
libxl_event *ev = shutdown_info->event;
|
|
||||||
libxlDriverPrivate *driver = shutdown_info->driver;
|
|
||||||
@@ -665,7 +665,7 @@ libxlDomainEventHandler(void *data, libx
|
|
||||||
}
|
|
||||||
|
|
||||||
if (event->type == LIBXL_EVENT_TYPE_DOMAIN_SHUTDOWN) {
|
|
||||||
- struct libxlShutdownThreadInfo *shutdown_info = NULL;
|
|
||||||
+ struct libxlEventHandlerThreadInfo *shutdown_info = NULL;
|
|
||||||
virThread thread;
|
|
||||||
g_autofree char *name = NULL;
|
|
||||||
|
|
||||||
@@ -673,7 +673,7 @@ libxlDomainEventHandler(void *data, libx
|
|
||||||
* Start a thread to handle shutdown. We don't want to be tying up
|
|
||||||
* libxl's event machinery by doing a potentially lengthy shutdown.
|
|
||||||
*/
|
|
||||||
- shutdown_info = g_new0(struct libxlShutdownThreadInfo, 1);
|
|
||||||
+ shutdown_info = g_new0(struct libxlEventHandlerThreadInfo, 1);
|
|
||||||
|
|
||||||
shutdown_info->driver = driver;
|
|
||||||
shutdown_info->vm = vm;
|
|
||||||
@@ -693,7 +693,7 @@ libxlDomainEventHandler(void *data, libx
|
|
||||||
}
|
|
||||||
/*
|
|
||||||
* virDomainObjEndAPI is called in the shutdown thread, where
|
|
||||||
- * libxlShutdownThreadInfo and libxl_event are also freed.
|
|
||||||
+ * libxlEventHandlerThreadInfo and libxl_event are also freed.
|
|
||||||
*/
|
|
||||||
return;
|
|
||||||
} else if (event->type == LIBXL_EVENT_TYPE_DOMAIN_DEATH) {
|
|
@ -1,84 +0,0 @@
|
|||||||
commit a7a03324d86e111f81687b5315b8f296dde84340
|
|
||||||
Author: Jim Fehlig <jfehlig@suse.com>
|
|
||||||
Date: Thu Nov 18 12:03:20 2021 -0700
|
|
||||||
|
|
||||||
libxl: Protect access to libxlLogger files hash table
|
|
||||||
|
|
||||||
The hash table of log file objects in libxlLogger is not protected against
|
|
||||||
concurrent access. It is possible for one thread to remove an entry while
|
|
||||||
another is updating it. Add a mutex to the libxlLogger object and lock it
|
|
||||||
when accessing the files hash table.
|
|
||||||
|
|
||||||
Signed-off-by: Jim Fehlig <jfehlig@suse.com>
|
|
||||||
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
|
|
||||||
Reviewed-by: Ján Tomko <jtomko@redhat.com>
|
|
||||||
|
|
||||||
Index: libvirt-7.10.0/src/libxl/libxl_logger.c
|
|
||||||
===================================================================
|
|
||||||
--- libvirt-7.10.0.orig/src/libxl/libxl_logger.c
|
|
||||||
+++ libvirt-7.10.0/src/libxl/libxl_logger.c
|
|
||||||
@@ -28,6 +28,7 @@
|
|
||||||
#include "util/virfile.h"
|
|
||||||
#include "util/virhash.h"
|
|
||||||
#include "util/virstring.h"
|
|
||||||
+#include "util/virthread.h"
|
|
||||||
#include "util/virtime.h"
|
|
||||||
|
|
||||||
#define VIR_FROM_THIS VIR_FROM_LIBXL
|
|
||||||
@@ -43,6 +44,7 @@ struct xentoollog_logger_libvirt {
|
|
||||||
|
|
||||||
/* map storing the opened fds: "domid" -> FILE* */
|
|
||||||
GHashTable *files;
|
|
||||||
+ virMutex tableLock;
|
|
||||||
FILE *defaultLogFile;
|
|
||||||
};
|
|
||||||
|
|
||||||
@@ -85,7 +87,9 @@ libvirt_vmessage(xentoollog_logger *logg
|
|
||||||
start = start + 9;
|
|
||||||
*end = '\0';
|
|
||||||
|
|
||||||
+ virMutexLock(&lg->tableLock);
|
|
||||||
domainLogFile = virHashLookup(lg->files, start);
|
|
||||||
+ virMutexUnlock(&lg->tableLock);
|
|
||||||
if (domainLogFile)
|
|
||||||
logFile = domainLogFile;
|
|
||||||
|
|
||||||
@@ -158,6 +162,12 @@ libxlLoggerNew(const char *logDir, virLo
|
|
||||||
return NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
+ if (virMutexInit(&logger.tableLock) < 0) {
|
|
||||||
+ VIR_FORCE_FCLOSE(logger.defaultLogFile);
|
|
||||||
+ virHashFree(logger.files);
|
|
||||||
+ return NULL;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
return XTL_NEW_LOGGER(libvirt, logger);
|
|
||||||
}
|
|
||||||
|
|
||||||
@@ -168,6 +178,7 @@ libxlLoggerFree(libxlLogger *logger)
|
|
||||||
if (logger->defaultLogFile)
|
|
||||||
VIR_FORCE_FCLOSE(logger->defaultLogFile);
|
|
||||||
virHashFree(logger->files);
|
|
||||||
+ virMutexDestroy(&logger->tableLock);
|
|
||||||
xtl_logger_destroy(xtl_logger);
|
|
||||||
}
|
|
||||||
|
|
||||||
@@ -189,7 +200,9 @@ libxlLoggerOpenFile(libxlLogger *logger,
|
|
||||||
path, g_strerror(errno));
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
+ virMutexLock(&logger->tableLock);
|
|
||||||
ignore_value(virHashAddEntry(logger->files, domidstr, logFile));
|
|
||||||
+ virMutexUnlock(&logger->tableLock);
|
|
||||||
|
|
||||||
/* domain_config is non NULL only when starting a new domain */
|
|
||||||
if (domain_config) {
|
|
||||||
@@ -204,5 +217,7 @@ libxlLoggerCloseFile(libxlLogger *logger
|
|
||||||
g_autofree char *domidstr = NULL;
|
|
||||||
domidstr = g_strdup_printf("%d", id);
|
|
||||||
|
|
||||||
+ virMutexLock(&logger->tableLock);
|
|
||||||
ignore_value(virHashRemoveEntry(logger->files, domidstr));
|
|
||||||
+ virMutexUnlock(&logger->tableLock);
|
|
||||||
}
|
|
@ -1,140 +0,0 @@
|
|||||||
commit b9a5faea49b7412e26d7389af4c32fc2b3ee80e5
|
|
||||||
Author: Jim Fehlig <jfehlig@suse.com>
|
|
||||||
Date: Wed Nov 24 11:36:55 2021 -0700
|
|
||||||
|
|
||||||
libxl: Handle domain death events in a thread
|
|
||||||
|
|
||||||
Similar to domain shutdown events, processing domain death events can be a
|
|
||||||
lengthy process and we don't want to block the event handler while the
|
|
||||||
operation completes. Move the death handling function to a thread.
|
|
||||||
|
|
||||||
Signed-off-by: Jim Fehlig <jfehlig@suse.com>
|
|
||||||
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
|
|
||||||
Reviewed-by: Ján Tomko <jtomko@redhat.com>
|
|
||||||
|
|
||||||
Index: libvirt-7.10.0/src/libxl/libxl_domain.c
|
|
||||||
===================================================================
|
|
||||||
--- libvirt-7.10.0.orig/src/libxl/libxl_domain.c
|
|
||||||
+++ libvirt-7.10.0/src/libxl/libxl_domain.c
|
|
||||||
@@ -613,12 +613,17 @@ libxlDomainShutdownThread(void *opaque)
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
|
||||||
-libxlDomainHandleDeath(libxlDriverPrivate *driver, virDomainObj *vm)
|
|
||||||
+libxlDomainDeathThread(void *opaque)
|
|
||||||
{
|
|
||||||
+ struct libxlEventHandlerThreadInfo *death_info = opaque;
|
|
||||||
+ virDomainObj *vm = death_info->vm;
|
|
||||||
+ libxl_event *ev = death_info->event;
|
|
||||||
+ libxlDriverPrivate *driver = death_info->driver;
|
|
||||||
virObjectEvent *dom_event = NULL;
|
|
||||||
+ g_autoptr(libxlDriverConfig) cfg = libxlDriverConfigGet(driver);
|
|
||||||
|
|
||||||
if (libxlDomainObjBeginJob(driver, vm, LIBXL_JOB_MODIFY) < 0)
|
|
||||||
- return;
|
|
||||||
+ goto cleanup;
|
|
||||||
|
|
||||||
virDomainObjSetState(vm, VIR_DOMAIN_SHUTOFF, VIR_DOMAIN_SHUTOFF_DESTROYED);
|
|
||||||
dom_event = virDomainEventLifecycleNewFromObj(vm,
|
|
||||||
@@ -629,6 +634,11 @@ libxlDomainHandleDeath(libxlDriverPrivat
|
|
||||||
virDomainObjListRemove(driver->domains, vm);
|
|
||||||
libxlDomainObjEndJob(driver, vm);
|
|
||||||
virObjectEventStateQueue(driver->domainEventState, dom_event);
|
|
||||||
+
|
|
||||||
+ cleanup:
|
|
||||||
+ virDomainObjEndAPI(&vm);
|
|
||||||
+ libxl_event_free(cfg->ctx, ev);
|
|
||||||
+ VIR_FREE(death_info);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
@@ -642,6 +652,9 @@ libxlDomainEventHandler(void *data, libx
|
|
||||||
libxl_shutdown_reason xl_reason = event->u.domain_shutdown.shutdown_reason;
|
|
||||||
virDomainObj *vm = NULL;
|
|
||||||
g_autoptr(libxlDriverConfig) cfg = NULL;
|
|
||||||
+ struct libxlEventHandlerThreadInfo *thread_info = NULL;
|
|
||||||
+ virThread thread;
|
|
||||||
+ g_autofree char *thread_name = NULL;
|
|
||||||
|
|
||||||
VIR_DEBUG("Received libxl event '%d' for domid '%d'", event->type, event->domid);
|
|
||||||
|
|
||||||
@@ -664,31 +677,27 @@ libxlDomainEventHandler(void *data, libx
|
|
||||||
goto cleanup;
|
|
||||||
}
|
|
||||||
|
|
||||||
+ /*
|
|
||||||
+ * Start event-specific threads to handle shutdown and death.
|
|
||||||
+ * They are potentially lengthy operations and we don't want to be
|
|
||||||
+ * blocking this event handler while they are in progress.
|
|
||||||
+ */
|
|
||||||
if (event->type == LIBXL_EVENT_TYPE_DOMAIN_SHUTDOWN) {
|
|
||||||
- struct libxlEventHandlerThreadInfo *shutdown_info = NULL;
|
|
||||||
- virThread thread;
|
|
||||||
- g_autofree char *name = NULL;
|
|
||||||
-
|
|
||||||
- /*
|
|
||||||
- * Start a thread to handle shutdown. We don't want to be tying up
|
|
||||||
- * libxl's event machinery by doing a potentially lengthy shutdown.
|
|
||||||
- */
|
|
||||||
- shutdown_info = g_new0(struct libxlEventHandlerThreadInfo, 1);
|
|
||||||
+ thread_info = g_new0(struct libxlEventHandlerThreadInfo, 1);
|
|
||||||
|
|
||||||
- shutdown_info->driver = driver;
|
|
||||||
- shutdown_info->vm = vm;
|
|
||||||
- shutdown_info->event = (libxl_event *)event;
|
|
||||||
- name = g_strdup_printf("shutdown-event-%d", event->domid);
|
|
||||||
+ thread_info->driver = driver;
|
|
||||||
+ thread_info->vm = vm;
|
|
||||||
+ thread_info->event = (libxl_event *)event;
|
|
||||||
+ thread_name = g_strdup_printf("shutdown-event-%d", event->domid);
|
|
||||||
/*
|
|
||||||
* Cleanup will be handled by the shutdown thread.
|
|
||||||
*/
|
|
||||||
if (virThreadCreateFull(&thread, false, libxlDomainShutdownThread,
|
|
||||||
- name, false, shutdown_info) < 0) {
|
|
||||||
+ thread_name, false, thread_info) < 0) {
|
|
||||||
/*
|
|
||||||
* Not much we can do on error here except log it.
|
|
||||||
*/
|
|
||||||
VIR_ERROR(_("Failed to create thread to handle domain shutdown"));
|
|
||||||
- VIR_FREE(shutdown_info);
|
|
||||||
goto cleanup;
|
|
||||||
}
|
|
||||||
/*
|
|
||||||
@@ -697,15 +706,33 @@ libxlDomainEventHandler(void *data, libx
|
|
||||||
*/
|
|
||||||
return;
|
|
||||||
} else if (event->type == LIBXL_EVENT_TYPE_DOMAIN_DEATH) {
|
|
||||||
+ thread_info = g_new0(struct libxlEventHandlerThreadInfo, 1);
|
|
||||||
+
|
|
||||||
+ thread_info->driver = driver;
|
|
||||||
+ thread_info->vm = vm;
|
|
||||||
+ thread_info->event = (libxl_event *)event;
|
|
||||||
+ thread_name = g_strdup_printf("death-event-%d", event->domid);
|
|
||||||
+ /*
|
|
||||||
+ * Cleanup will be handled by the death thread.
|
|
||||||
+ */
|
|
||||||
+ if (virThreadCreateFull(&thread, false, libxlDomainDeathThread,
|
|
||||||
+ thread_name, false, thread_info) < 0) {
|
|
||||||
+ /*
|
|
||||||
+ * Not much we can do on error here except log it.
|
|
||||||
+ */
|
|
||||||
+ VIR_ERROR(_("Failed to create thread to handle domain death"));
|
|
||||||
+ goto cleanup;
|
|
||||||
+ }
|
|
||||||
/*
|
|
||||||
- * On death the domain is cleaned up from Xen's perspective.
|
|
||||||
- * Cleanup on the libvirt side can be done synchronously.
|
|
||||||
+ * virDomainObjEndAPI is called in the death thread, where
|
|
||||||
+ * libxlEventHandlerThreadInfo and libxl_event are also freed.
|
|
||||||
*/
|
|
||||||
- libxlDomainHandleDeath(driver, vm);
|
|
||||||
+ return;
|
|
||||||
}
|
|
||||||
|
|
||||||
cleanup:
|
|
||||||
virDomainObjEndAPI(&vm);
|
|
||||||
+ VIR_FREE(thread_info);
|
|
||||||
cfg = libxlDriverConfigGet(driver);
|
|
||||||
/* Cast away any const */
|
|
||||||
libxl_event_free(cfg->ctx, (libxl_event *)event);
|
|
@ -1,62 +0,0 @@
|
|||||||
commit cbae4eaa19dd97da8b4330af80cf1e1f7cb21931
|
|
||||||
Author: Jim Fehlig <jfehlig@suse.com>
|
|
||||||
Date: Mon Dec 13 16:59:55 2021 -0700
|
|
||||||
|
|
||||||
libxl: Implement domainGetMessages API
|
|
||||||
|
|
||||||
Since commit 46783e6307a, the 'virsh dominfo' command calls
|
|
||||||
virDomainGetMessages to report any messages from the domain.
|
|
||||||
Hypervisors not implementing the API now get the following
|
|
||||||
libvirtd log message when clients invoke 'virsh dominfo'
|
|
||||||
|
|
||||||
this function is not supported by the connection driver: virDomainGetMessages
|
|
||||||
|
|
||||||
Although libxl currently does not support any tainting or
|
|
||||||
deprecation messages, provide an implementation to squelch
|
|
||||||
the previously unseen error message when collecting dominfo.
|
|
||||||
|
|
||||||
Signed-off-by: Jim Fehlig <jfehlig@suse.com>
|
|
||||||
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
|
|
||||||
|
|
||||||
Index: libvirt-7.10.0/src/libxl/libxl_driver.c
|
|
||||||
===================================================================
|
|
||||||
--- libvirt-7.10.0.orig/src/libxl/libxl_driver.c
|
|
||||||
+++ libvirt-7.10.0/src/libxl/libxl_driver.c
|
|
||||||
@@ -6406,6 +6406,29 @@ libxlDomainGetMetadata(virDomainPtr dom,
|
|
||||||
return ret;
|
|
||||||
}
|
|
||||||
|
|
||||||
+static int
|
|
||||||
+libxlDomainGetMessages(virDomainPtr dom,
|
|
||||||
+ char ***msgs,
|
|
||||||
+ unsigned int flags)
|
|
||||||
+{
|
|
||||||
+ virDomainObj *vm = NULL;
|
|
||||||
+ int ret = -1;
|
|
||||||
+
|
|
||||||
+ virCheckFlags(0, -1);
|
|
||||||
+
|
|
||||||
+ if (!(vm = libxlDomObjFromDomain(dom)))
|
|
||||||
+ return -1;
|
|
||||||
+
|
|
||||||
+ if (virDomainGetMessagesEnsureACL(dom->conn, vm->def) < 0)
|
|
||||||
+ goto cleanup;
|
|
||||||
+
|
|
||||||
+ ret = virDomainObjGetMessages(vm, msgs, flags);
|
|
||||||
+
|
|
||||||
+ cleanup:
|
|
||||||
+ virDomainObjEndAPI(&vm);
|
|
||||||
+ return ret;
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
static virHypervisorDriver libxlHypervisorDriver = {
|
|
||||||
.name = LIBXL_DRIVER_EXTERNAL_NAME,
|
|
||||||
.connectURIProbe = libxlConnectURIProbe,
|
|
||||||
@@ -6519,6 +6542,7 @@ static virHypervisorDriver libxlHypervis
|
|
||||||
.connectBaselineCPU = libxlConnectBaselineCPU, /* 2.3.0 */
|
|
||||||
.domainSetMetadata = libxlDomainSetMetadata, /* 5.7.0 */
|
|
||||||
.domainGetMetadata = libxlDomainGetMetadata, /* 5.7.0 */
|
|
||||||
+ .domainGetMessages = libxlDomainGetMessages, /* 8.0.0 */
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
@ -1,27 +0,0 @@
|
|||||||
commit e4f7589a3ec285489618ca04c8c0230cc31f3d99
|
|
||||||
Author: Jim Fehlig <jfehlig@suse.com>
|
|
||||||
Date: Wed Nov 24 11:16:38 2021 -0700
|
|
||||||
|
|
||||||
libxl: Modify name of shutdown thread
|
|
||||||
|
|
||||||
The current thread name 'ev-<domid>' is a bit terse. Change the name
|
|
||||||
to 'shutdown-event-<domid>', allowing it to be distinguished between
|
|
||||||
thread handling other event types.
|
|
||||||
|
|
||||||
Signed-off-by: Jim Fehlig <jfehlig@suse.com>
|
|
||||||
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
|
|
||||||
Reviewed-by: Ján Tomko <jtomko@redhat.com>
|
|
||||||
|
|
||||||
Index: libvirt-7.10.0/src/libxl/libxl_domain.c
|
|
||||||
===================================================================
|
|
||||||
--- libvirt-7.10.0.orig/src/libxl/libxl_domain.c
|
|
||||||
+++ libvirt-7.10.0/src/libxl/libxl_domain.c
|
|
||||||
@@ -678,7 +678,7 @@ libxlDomainEventHandler(void *data, libx
|
|
||||||
shutdown_info->driver = driver;
|
|
||||||
shutdown_info->vm = vm;
|
|
||||||
shutdown_info->event = (libxl_event *)event;
|
|
||||||
- name = g_strdup_printf("ev-%d", event->domid);
|
|
||||||
+ name = g_strdup_printf("shutdown-event-%d", event->domid);
|
|
||||||
/*
|
|
||||||
* Cleanup will be handled by the shutdown thread.
|
|
||||||
*/
|
|
@ -1,3 +0,0 @@
|
|||||||
version https://git-lfs.github.com/spec/v1
|
|
||||||
oid sha256:cb318014af097327928c6e3d72922e3be02a3e6401247b2aa52d9ab8e0b480f9
|
|
||||||
size 8798000
|
|
@ -1,16 +0,0 @@
|
|||||||
-----BEGIN PGP SIGNATURE-----
|
|
||||||
|
|
||||||
iQIzBAABCAAdFiEERTtlMQWVVihVRxGZymi+gBAITJwFAmGnRisACgkQymi+gBAI
|
|
||||||
TJx/DA//SSeuKY/Z/T2UrkaPOGnMR1kYJA9GKcC7XzHQ7exLrz5TbMpROsP1a1cD
|
|
||||||
K7ys53NHesxs9RHCPj/QpX4eFW4K8h+NiYZyQPO1O/Gu8PWzTdHYFTIFEzpktnsk
|
|
||||||
qjB/24bJ57QJ8mRnj+n16ch0KmSYzF2qY1WFOOUgyJ21JbL87ULx0TaQ83oq7TdJ
|
|
||||||
09AJ9dGlUjiOnLXCH54cUto4Ccb2sXxVdqy5UvmzUuA3RIFhGmVbZYdicl2nWrl4
|
|
||||||
5lGBOVGcIvjojoj6SLunO149nQqotJ85Z/jOc9OQLYBDgVE+/BPIGsQZcFnCSEDw
|
|
||||||
MYUab/RMkVky2UeNTXKv4YMXIkYO5FTrIwKfWiWpHhZgN0ZgoDg8BPJLQDi4INPY
|
|
||||||
nom8u7mpQmNk/UpLNYomMiDpP34xt1XhRwT+jrrSpgyFHJf7BSYn/+qUp0kVEjNY
|
|
||||||
StLjUufcIGxDM+0dCnSQKVl7zYwvjt9vlD2B9wXnm92xAIIZaVVe3yN3MGC2HCwN
|
|
||||||
8kSM266ZeP4yPb716GFXhvFhqC0Y1MX48y3IpNtut8O7x4a5qAsSgLIXZ/3Vp8sk
|
|
||||||
uCN9S7h942NfgoeWbjm3nbeoKUx3iiuvX5B1HVceu+mu4juEcFqCecFmKABSr8Uv
|
|
||||||
6h4/D84wqGZHHQEhrvvR0Eqq+rFfkKgwZKXhrTZDL/9/weuHscY=
|
|
||||||
=JMZi
|
|
||||||
-----END PGP SIGNATURE-----
|
|
3
libvirt-8.0.0.tar.xz
Normal file
3
libvirt-8.0.0.tar.xz
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
version https://git-lfs.github.com/spec/v1
|
||||||
|
oid sha256:51e6e8ff04bafe96d7e314b213dcd41fb1163d9b4f0f75cdab01e663728f4cf6
|
||||||
|
size 8860124
|
16
libvirt-8.0.0.tar.xz.asc
Normal file
16
libvirt-8.0.0.tar.xz.asc
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
-----BEGIN PGP SIGNATURE-----
|
||||||
|
|
||||||
|
iQIzBAABCAAdFiEERTtlMQWVVihVRxGZymi+gBAITJwFAmHhhg0ACgkQymi+gBAI
|
||||||
|
TJyHTA/9F7mEVTE7lu/5Jtk738golxj2/75H+vurBFZM5gIDPHBlNPH7RLPHtxNw
|
||||||
|
nS4rtWR0ThajITQ+3lP2ttjLE6jvsMpIhKIizHqoyVEcW/LlR55RxGfR6K+0+lrh
|
||||||
|
CE7ycJujl0CVvkfjt7fFp1IkVD6mtxOciVwjRg5VtHBdNnmh6HWJQV+D9MfDhod5
|
||||||
|
3ayzq3y3NZDfgWtOt4ZbTyhKh22VgTdIue0iHI+eRPI9xdp67bRjDh+rvjJ3SEGc
|
||||||
|
inEXaa1aj4O/VPcrsyjwBdg+O52YLZN/KG3cpZ/kmbQdFNiYOti8APM9t9NShNf7
|
||||||
|
4egKeQthG90S3d2mFsyuVoIN7xk26NyMC3fgwKZeTEaMPbG1P+Y2f1k/efzVVqL0
|
||||||
|
q6tCY74oQXbQ6XF/hANaM/HRvQnlt2JjWiTZ6DJ/+U0jW9MAEwzt/WRqrZfhT8i4
|
||||||
|
gtemB/sYoZo1BTjZuW5e+pNRmaxyxZkzGUFwIJz+q86mvxi8IDWCGy9NOuypHUWQ
|
||||||
|
iavGE8vULDgZczd1fWMrmjWzDXe49L1b0mLqLOFdNpjbWxSnF3Bj7AR8GjTM0Bsu
|
||||||
|
5JpQ1Tjgz6IiW2DnL3EMZ4pKGMXiTgcqL/lYJH4a8yNJ4sV2+coVGijhhfQ2JW+O
|
||||||
|
x0ymOq77z/VyMI+ZffMeV00tiQF3TYZnwvaqU3e9TnVxmr3Ghx8=
|
||||||
|
=6QUv
|
||||||
|
-----END PGP SIGNATURE-----
|
@ -2,10 +2,10 @@ Add POWER8 v2.0 and v2.1 to cpu map XML
|
|||||||
|
|
||||||
From: <ro@suse.de>
|
From: <ro@suse.de>
|
||||||
|
|
||||||
Index: libvirt-7.10.0/src/cpu_map/ppc64_POWER8.xml
|
Index: libvirt-8.0.0/src/cpu_map/ppc64_POWER8.xml
|
||||||
===================================================================
|
===================================================================
|
||||||
--- libvirt-7.10.0.orig/src/cpu_map/ppc64_POWER8.xml
|
--- libvirt-8.0.0.orig/src/cpu_map/ppc64_POWER8.xml
|
||||||
+++ libvirt-7.10.0/src/cpu_map/ppc64_POWER8.xml
|
+++ libvirt-8.0.0/src/cpu_map/ppc64_POWER8.xml
|
||||||
@@ -4,5 +4,7 @@
|
@@ -4,5 +4,7 @@
|
||||||
<pvr value='0x004b0000' mask='0xffff0000'/>
|
<pvr value='0x004b0000' mask='0xffff0000'/>
|
||||||
<pvr value='0x004c0000' mask='0xffff0000'/>
|
<pvr value='0x004c0000' mask='0xffff0000'/>
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
Index: libvirt-7.10.0/tools/virsh.c
|
Index: libvirt-8.0.0/tools/virsh.c
|
||||||
===================================================================
|
===================================================================
|
||||||
--- libvirt-7.10.0.orig/tools/virsh.c
|
--- libvirt-8.0.0.orig/tools/virsh.c
|
||||||
+++ libvirt-7.10.0/tools/virsh.c
|
+++ libvirt-8.0.0/tools/virsh.c
|
||||||
@@ -552,6 +552,8 @@ virshShowVersion(vshControl *ctl G_GNUC_
|
@@ -552,6 +552,8 @@ virshShowVersion(vshControl *ctl G_GNUC_
|
||||||
vshPrint(ctl, " Interface");
|
vshPrint(ctl, " Interface");
|
||||||
# if defined(WITH_NETCF)
|
# if defined(WITH_NETCF)
|
||||||
@ -11,10 +11,10 @@ Index: libvirt-7.10.0/tools/virsh.c
|
|||||||
# elif defined(WITH_UDEV)
|
# elif defined(WITH_UDEV)
|
||||||
vshPrint(ctl, " udev");
|
vshPrint(ctl, " udev");
|
||||||
# endif
|
# endif
|
||||||
Index: libvirt-7.10.0/src/interface/interface_backend_netcf.c
|
Index: libvirt-8.0.0/src/interface/interface_backend_netcf.c
|
||||||
===================================================================
|
===================================================================
|
||||||
--- libvirt-7.10.0.orig/src/interface/interface_backend_netcf.c
|
--- libvirt-8.0.0.orig/src/interface/interface_backend_netcf.c
|
||||||
+++ libvirt-7.10.0/src/interface/interface_backend_netcf.c
|
+++ libvirt-8.0.0/src/interface/interface_backend_netcf.c
|
||||||
@@ -21,7 +21,12 @@
|
@@ -21,7 +21,12 @@
|
||||||
|
|
||||||
#include <config.h>
|
#include <config.h>
|
||||||
@ -126,10 +126,10 @@ Index: libvirt-7.10.0/src/interface/interface_backend_netcf.c
|
|||||||
if (virRegisterConnectDriver(&interfaceConnectDriver, false) < 0)
|
if (virRegisterConnectDriver(&interfaceConnectDriver, false) < 0)
|
||||||
return -1;
|
return -1;
|
||||||
if (virSetSharedInterfaceDriver(&interfaceDriver) < 0)
|
if (virSetSharedInterfaceDriver(&interfaceDriver) < 0)
|
||||||
Index: libvirt-7.10.0/src/interface/interface_driver.c
|
Index: libvirt-8.0.0/src/interface/interface_driver.c
|
||||||
===================================================================
|
===================================================================
|
||||||
--- libvirt-7.10.0.orig/src/interface/interface_driver.c
|
--- libvirt-8.0.0.orig/src/interface/interface_driver.c
|
||||||
+++ libvirt-7.10.0/src/interface/interface_driver.c
|
+++ libvirt-8.0.0/src/interface/interface_driver.c
|
||||||
@@ -30,8 +30,15 @@ interfaceRegister(void)
|
@@ -30,8 +30,15 @@ interfaceRegister(void)
|
||||||
if (netcfIfaceRegister() == 0)
|
if (netcfIfaceRegister() == 0)
|
||||||
return 0;
|
return 0;
|
||||||
@ -147,11 +147,11 @@ Index: libvirt-7.10.0/src/interface/interface_driver.c
|
|||||||
if (udevIfaceRegister() == 0)
|
if (udevIfaceRegister() == 0)
|
||||||
return 0;
|
return 0;
|
||||||
#endif /* WITH_UDEV */
|
#endif /* WITH_UDEV */
|
||||||
Index: libvirt-7.10.0/meson.build
|
Index: libvirt-8.0.0/meson.build
|
||||||
===================================================================
|
===================================================================
|
||||||
--- libvirt-7.10.0.orig/meson.build
|
--- libvirt-8.0.0.orig/meson.build
|
||||||
+++ libvirt-7.10.0/meson.build
|
+++ libvirt-8.0.0/meson.build
|
||||||
@@ -1116,6 +1116,12 @@ else
|
@@ -1098,6 +1098,12 @@ else
|
||||||
netcf_dep = dependency('', required: false)
|
netcf_dep = dependency('', required: false)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
@ -164,7 +164,7 @@ Index: libvirt-7.10.0/meson.build
|
|||||||
have_gnu_gettext_tools = false
|
have_gnu_gettext_tools = false
|
||||||
if not get_option('nls').disabled()
|
if not get_option('nls').disabled()
|
||||||
have_gettext = cc.has_function('gettext')
|
have_gettext = cc.has_function('gettext')
|
||||||
@@ -1512,10 +1518,10 @@ elif get_option('driver_hyperv').enabled
|
@@ -1505,10 +1511,10 @@ elif get_option('driver_hyperv').enabled
|
||||||
error('openwsman is required for the Hyper-V driver')
|
error('openwsman is required for the Hyper-V driver')
|
||||||
endif
|
endif
|
||||||
|
|
||||||
@ -177,7 +177,7 @@ Index: libvirt-7.10.0/meson.build
|
|||||||
endif
|
endif
|
||||||
|
|
||||||
if not get_option('driver_libxl').disabled() and conf.has('WITH_LIBVIRTD')
|
if not get_option('driver_libxl').disabled() and conf.has('WITH_LIBVIRTD')
|
||||||
@@ -2352,6 +2358,7 @@ libs_summary = {
|
@@ -2345,6 +2351,7 @@ libs_summary = {
|
||||||
'libssh2': libssh2_dep.found(),
|
'libssh2': libssh2_dep.found(),
|
||||||
'libutil': libutil_dep.found(),
|
'libutil': libutil_dep.found(),
|
||||||
'netcf': conf.has('WITH_NETCF'),
|
'netcf': conf.has('WITH_NETCF'),
|
||||||
@ -185,10 +185,10 @@ Index: libvirt-7.10.0/meson.build
|
|||||||
'NLS': have_gnu_gettext_tools,
|
'NLS': have_gnu_gettext_tools,
|
||||||
'numactl': numactl_dep.found(),
|
'numactl': numactl_dep.found(),
|
||||||
'openwsman': openwsman_dep.found(),
|
'openwsman': openwsman_dep.found(),
|
||||||
Index: libvirt-7.10.0/src/interface/meson.build
|
Index: libvirt-8.0.0/src/interface/meson.build
|
||||||
===================================================================
|
===================================================================
|
||||||
--- libvirt-7.10.0.orig/src/interface/meson.build
|
--- libvirt-8.0.0.orig/src/interface/meson.build
|
||||||
+++ libvirt-7.10.0/src/interface/meson.build
|
+++ libvirt-8.0.0/src/interface/meson.build
|
||||||
@@ -2,7 +2,7 @@ interface_driver_sources = [
|
@@ -2,7 +2,7 @@ interface_driver_sources = [
|
||||||
'interface_driver.c',
|
'interface_driver.c',
|
||||||
]
|
]
|
||||||
@ -206,10 +206,10 @@ Index: libvirt-7.10.0/src/interface/meson.build
|
|||||||
udev_dep,
|
udev_dep,
|
||||||
],
|
],
|
||||||
'link_args': [
|
'link_args': [
|
||||||
Index: libvirt-7.10.0/meson_options.txt
|
Index: libvirt-8.0.0/meson_options.txt
|
||||||
===================================================================
|
===================================================================
|
||||||
--- libvirt-7.10.0.orig/meson_options.txt
|
--- libvirt-8.0.0.orig/meson_options.txt
|
||||||
+++ libvirt-7.10.0/meson_options.txt
|
+++ libvirt-8.0.0/meson_options.txt
|
||||||
@@ -29,6 +29,7 @@ option('libpcap', type: 'feature', value
|
@@ -29,6 +29,7 @@ option('libpcap', type: 'feature', value
|
||||||
option('libssh', type: 'feature', value: 'auto', description: 'libssh support')
|
option('libssh', type: 'feature', value: 'auto', description: 'libssh support')
|
||||||
option('libssh2', type: 'feature', value: 'auto', description: 'libssh2 support')
|
option('libssh2', type: 'feature', value: 'auto', description: 'libssh2 support')
|
||||||
|
@ -1,3 +1,31 @@
|
|||||||
|
-------------------------------------------------------------------
|
||||||
|
Tue Jan 18 17:11:13 UTC 2022 - James Fehlig <jfehlig@suse.com>
|
||||||
|
|
||||||
|
- sysconfig files have not been distributed for many months. Add
|
||||||
|
upstream patches that improve documentation and moves service
|
||||||
|
default settings to the associated systemd service file.
|
||||||
|
3be5ba11-libvirt-guests-install.patch,
|
||||||
|
16172741-libvirt-guests-manpage.patch,
|
||||||
|
8eb44616-remove-sysconfig-files.patch
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Tue Jan 18 03:06:25 UTC 2022 - James Fehlig <jfehlig@suse.com>
|
||||||
|
|
||||||
|
- Update to libvirt 8.0.0
|
||||||
|
- CVE-2021-4147
|
||||||
|
- bsc#1191511
|
||||||
|
- jsc#SLE-11435, jsc#SLE-18354
|
||||||
|
- Many incremental improvements and bug fixes, see
|
||||||
|
https://libvirt.org/news.html#v8-0-0-2022-01-14
|
||||||
|
- Dropped patches:
|
||||||
|
23b51d7b-libxl-disable-death-event.patch,
|
||||||
|
a4e6fba0-libxl-rename-threadinfo-struct.patch,
|
||||||
|
e4f7589a-libxl-shutdown-thread-name.patch,
|
||||||
|
b9a5faea-libxl-handle-death-thread.patch,
|
||||||
|
5c5df531-libxl-search-domid-in-thread.patch,
|
||||||
|
a7a03324-libxl-protect-logger-access.patch,
|
||||||
|
cbae4eaa-libxl-add-domainGetMessages.patch
|
||||||
|
|
||||||
-------------------------------------------------------------------
|
-------------------------------------------------------------------
|
||||||
Tue Dec 14 16:36:15 UTC 2021 - James Fehlig <jfehlig@suse.com>
|
Tue Dec 14 16:36:15 UTC 2021 - James Fehlig <jfehlig@suse.com>
|
||||||
|
|
||||||
|
115
libvirt.spec
115
libvirt.spec
@ -1,7 +1,7 @@
|
|||||||
#
|
#
|
||||||
# spec file for package libvirt
|
# spec file for package libvirt
|
||||||
#
|
#
|
||||||
# Copyright (c) 2021 SUSE LLC
|
# Copyright (c) 2022 SUSE LLC
|
||||||
#
|
#
|
||||||
# All modifications and additions to the file contributed by third parties
|
# All modifications and additions to the file contributed by third parties
|
||||||
# remain the property of their copyright owners, unless otherwise agreed
|
# remain the property of their copyright owners, unless otherwise agreed
|
||||||
@ -138,9 +138,27 @@
|
|||||||
%define wireshark_plugindir %(pkg-config --variable plugindir wireshark)/epan
|
%define wireshark_plugindir %(pkg-config --variable plugindir wireshark)/epan
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
|
# libvirt no longer distributes sysconfig files.
|
||||||
|
# If the user has customized a sysconfig file, the RPM upgrade path will rename
|
||||||
|
# it to .rpmsave since the file is no longer managed by RPM. To prevent a
|
||||||
|
# regression, we rename it back after the transaction to preserve the user's
|
||||||
|
# modifications
|
||||||
|
%define libvirt_sysconfig_pre() \
|
||||||
|
for sc in %{?*} ; do \
|
||||||
|
test -f "%{_sysconfdir}/sysconfig/${sc}.rpmsave" || continue ; \
|
||||||
|
mv -v "%{_sysconfdir}/sysconfig/${sc}.rpmsave" "%{_sysconfdir}/sysconfig/${sc}.rpmsave.old" ; \
|
||||||
|
done \
|
||||||
|
%{nil}
|
||||||
|
%define libvirt_sysconfig_posttrans() \
|
||||||
|
for sc in %{?*} ; do \
|
||||||
|
test -f "%{_sysconfdir}/sysconfig/${sc}.rpmsave" || continue ; \
|
||||||
|
mv -v "%{_sysconfdir}/sysconfig/${sc}.rpmsave" "%{_sysconfdir}/sysconfig/${sc}" ; \
|
||||||
|
done \
|
||||||
|
%{nil}
|
||||||
|
|
||||||
Name: libvirt
|
Name: libvirt
|
||||||
URL: http://libvirt.org/
|
URL: http://libvirt.org/
|
||||||
Version: 7.10.0
|
Version: 8.0.0
|
||||||
Release: 0
|
Release: 0
|
||||||
Summary: Library providing a virtualization API
|
Summary: Library providing a virtualization API
|
||||||
License: LGPL-2.1-or-later
|
License: LGPL-2.1-or-later
|
||||||
@ -219,7 +237,6 @@ BuildRequires: dnsmasq >= 2.41
|
|||||||
BuildRequires: ebtables
|
BuildRequires: ebtables
|
||||||
BuildRequires: iptables
|
BuildRequires: iptables
|
||||||
BuildRequires: polkit >= 0.112
|
BuildRequires: polkit >= 0.112
|
||||||
BuildRequires: radvd
|
|
||||||
# For mount/umount in FS driver
|
# For mount/umount in FS driver
|
||||||
BuildRequires: util-linux
|
BuildRequires: util-linux
|
||||||
# For LVM drivers
|
# For LVM drivers
|
||||||
@ -235,8 +252,6 @@ BuildRequires: parted
|
|||||||
BuildRequires: parted-devel
|
BuildRequires: parted-devel
|
||||||
# For Multipath support
|
# For Multipath support
|
||||||
BuildRequires: device-mapper-devel
|
BuildRequires: device-mapper-devel
|
||||||
# For XFS reflink clone support
|
|
||||||
BuildRequires: xfsprogs-devel
|
|
||||||
%if %{with_storage_rbd}
|
%if %{with_storage_rbd}
|
||||||
BuildRequires: %{with_rbd_lib}
|
BuildRequires: %{with_rbd_lib}
|
||||||
%endif
|
%endif
|
||||||
@ -286,13 +301,9 @@ Source6: libvirtd-relocation-server.xml
|
|||||||
Source99: baselibs.conf
|
Source99: baselibs.conf
|
||||||
Source100: %{name}-rpmlintrc
|
Source100: %{name}-rpmlintrc
|
||||||
# Upstream patches
|
# Upstream patches
|
||||||
Patch0: 23b51d7b-libxl-disable-death-event.patch
|
Patch0: 3be5ba11-libvirt-guests-install.patch
|
||||||
Patch1: a4e6fba0-libxl-rename-threadinfo-struct.patch
|
Patch1: 16172741-libvirt-guests-manpage.patch
|
||||||
Patch2: e4f7589a-libxl-shutdown-thread-name.patch
|
Patch2: 8eb44616-remove-sysconfig-files.patch
|
||||||
Patch3: b9a5faea-libxl-handle-death-thread.patch
|
|
||||||
Patch4: 5c5df531-libxl-search-domid-in-thread.patch
|
|
||||||
Patch5: a7a03324-libxl-protect-logger-access.patch
|
|
||||||
Patch6: cbae4eaa-libxl-add-domainGetMessages.patch
|
|
||||||
# Patches pending upstream review
|
# Patches pending upstream review
|
||||||
Patch100: libxl-dom-reset.patch
|
Patch100: libxl-dom-reset.patch
|
||||||
Patch101: network-don-t-use-dhcp-authoritative-on-static-netwo.patch
|
Patch101: network-don-t-use-dhcp-authoritative-on-static-netwo.patch
|
||||||
@ -345,9 +356,10 @@ Group: System/Management
|
|||||||
|
|
||||||
Requires: %{name}-libs = %{version}-%{release}
|
Requires: %{name}-libs = %{version}-%{release}
|
||||||
|
|
||||||
# So remote clients can access libvirt over SSH tunnel
|
# netcat is needed on the server side so that clients that have
|
||||||
# (client invokes 'nc' against the UNIX socket on the server)
|
# libvirt < 6.9.0 can connect, but newer versions will prefer
|
||||||
Requires: netcat-openbsd
|
# virt-ssh-helper
|
||||||
|
Recommends: netcat-openbsd
|
||||||
# for modprobe of pci devices
|
# for modprobe of pci devices
|
||||||
Requires: modutils
|
Requires: modutils
|
||||||
# for /sbin/ip & /sbin/tc
|
# for /sbin/ip & /sbin/tc
|
||||||
@ -427,7 +439,6 @@ Requires: %{name}-daemon = %{version}-%{release}
|
|||||||
Requires: %{name}-libs = %{version}-%{release}
|
Requires: %{name}-libs = %{version}-%{release}
|
||||||
Requires: dnsmasq >= 2.41
|
Requires: dnsmasq >= 2.41
|
||||||
Requires: iptables
|
Requires: iptables
|
||||||
Requires: radvd
|
|
||||||
|
|
||||||
%description daemon-driver-network
|
%description daemon-driver-network
|
||||||
The network driver plugin for the libvirtd daemon, providing
|
The network driver plugin for the libvirtd daemon, providing
|
||||||
@ -1071,17 +1082,6 @@ rm -f %{buildroot}/%{_datadir}/augeas/lenses/tests/test_libvirt_sanlock.aug
|
|||||||
|
|
||||||
# init scripts
|
# init scripts
|
||||||
rm -f %{buildroot}/usr/lib/sysctl.d/60-libvirtd.conf
|
rm -f %{buildroot}/usr/lib/sysctl.d/60-libvirtd.conf
|
||||||
rm -f %{buildroot}/%{_sysconfdir}/sysconfig/libvirtd
|
|
||||||
rm -f %{buildroot}/%{_sysconfdir}/sysconfig/virtproxyd
|
|
||||||
rm -f %{buildroot}/%{_sysconfdir}/sysconfig/virtlogd
|
|
||||||
rm -f %{buildroot}/%{_sysconfdir}/sysconfig/virtlockd
|
|
||||||
rm -f %{buildroot}/%{_sysconfdir}/sysconfig/virtinterfaced
|
|
||||||
rm -f %{buildroot}/%{_sysconfdir}/sysconfig/virtnetworkd
|
|
||||||
rm -f %{buildroot}/%{_sysconfdir}/sysconfig/virtnodedevd
|
|
||||||
rm -f %{buildroot}/%{_sysconfdir}/sysconfig/virtnwfilterd
|
|
||||||
rm -f %{buildroot}/%{_sysconfdir}/sysconfig/virtsecretd
|
|
||||||
rm -f %{buildroot}/%{_sysconfdir}/sysconfig/virtstoraged
|
|
||||||
rm -f %{buildroot}/%{_sysconfdir}/sysconfig/libvirt-guests
|
|
||||||
# Provide rc symlink backward compatibility
|
# Provide rc symlink backward compatibility
|
||||||
ln -s %{_sbindir}/service %{buildroot}/%{_sbindir}/rclibvirtd
|
ln -s %{_sbindir}/service %{buildroot}/%{_sbindir}/rclibvirtd
|
||||||
ln -s %{_sbindir}/service %{buildroot}/%{_sbindir}/rcvirtproxyd
|
ln -s %{_sbindir}/service %{buildroot}/%{_sbindir}/rcvirtproxyd
|
||||||
@ -1096,19 +1096,15 @@ ln -s %{_sbindir}/service %{buildroot}/%{_sbindir}/rcvirtstoraged
|
|||||||
ln -s %{_sbindir}/service %{buildroot}/%{_sbindir}/rclibvirt-guests
|
ln -s %{_sbindir}/service %{buildroot}/%{_sbindir}/rclibvirt-guests
|
||||||
|
|
||||||
%if %{with_qemu}
|
%if %{with_qemu}
|
||||||
rm -f %{buildroot}/%{_sysconfdir}/sysconfig/virtqemud
|
|
||||||
ln -s %{_sbindir}/service %{buildroot}/%{_sbindir}/rcvirtqemud
|
ln -s %{_sbindir}/service %{buildroot}/%{_sbindir}/rcvirtqemud
|
||||||
%endif
|
%endif
|
||||||
%if %{with_lxc}
|
%if %{with_lxc}
|
||||||
rm -f %{buildroot}/%{_sysconfdir}/sysconfig/virtlxcd
|
|
||||||
ln -s %{_sbindir}/service %{buildroot}/%{_sbindir}/rcvirtlxcd
|
ln -s %{_sbindir}/service %{buildroot}/%{_sbindir}/rcvirtlxcd
|
||||||
%endif
|
%endif
|
||||||
%if %{with_libxl}
|
%if %{with_libxl}
|
||||||
rm -f %{buildroot}/%{_sysconfdir}/sysconfig/virtxend
|
|
||||||
ln -s %{_sbindir}/service %{buildroot}/%{_sbindir}/rcvirtxend
|
ln -s %{_sbindir}/service %{buildroot}/%{_sbindir}/rcvirtxend
|
||||||
%endif
|
%endif
|
||||||
%if %{with_vbox}
|
%if %{with_vbox}
|
||||||
rm -f %{buildroot}/%{_sysconfdir}/sysconfig/virtvboxd
|
|
||||||
ln -s %{_sbindir}/service %{buildroot}/%{_sbindir}/rcvirtvboxd
|
ln -s %{_sbindir}/service %{buildroot}/%{_sbindir}/rcvirtvboxd
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
@ -1136,6 +1132,7 @@ mv %{buildroot}/%{_datadir}/systemtap/tapset/libvirt_qemu_probes.stp \
|
|||||||
VIR_TEST_DEBUG=1 %meson_test -t 5 --no-suite syntax-check
|
VIR_TEST_DEBUG=1 %meson_test -t 5 --no-suite syntax-check
|
||||||
|
|
||||||
%pre daemon
|
%pre daemon
|
||||||
|
%libvirt_sysconfig_pre libvirtd virtproxyd virtlogd virtlockd libvirt-guests
|
||||||
%service_add_pre libvirtd.service libvirtd.socket libvirtd-ro.socket libvirt-guests.service libvirtd-admin.socket libvirtd-tcp.socket libvirtd-tls.socket virtlockd.service virtlockd.socket virtlogd.service virtlogd.socket virtlockd-admin.socket virtlogd-admin.socket virtproxyd.service virtproxyd.socket virtproxyd-ro.socket virtproxyd-admin.socket virtproxyd-tcp.socket virtproxyd-tls.socket
|
%service_add_pre libvirtd.service libvirtd.socket libvirtd-ro.socket libvirt-guests.service libvirtd-admin.socket libvirtd-tcp.socket libvirtd-tls.socket virtlockd.service virtlockd.socket virtlogd.service virtlogd.socket virtlockd-admin.socket virtlogd-admin.socket virtproxyd.service virtproxyd.socket virtproxyd-ro.socket virtproxyd-admin.socket virtproxyd-tcp.socket virtproxyd-tls.socket
|
||||||
|
|
||||||
%post daemon
|
%post daemon
|
||||||
@ -1157,64 +1154,20 @@ fi
|
|||||||
%service_del_postun_without_restart libvirtd.service libvirtd.socket libvirtd-ro.socket libvirt-guests.service libvirtd-admin.socket libvirtd-tcp.socket libvirtd-tls.socket virtlockd.service virtlockd.socket virtlogd.service virtlogd.socket virtlockd-admin.socket virtlogd-admin.socket virtproxyd.service virtproxyd.socket virtproxyd-ro.socket virtproxyd-admin.socket virtproxyd-tcp.socket virtproxyd-tls.socket
|
%service_del_postun_without_restart libvirtd.service libvirtd.socket libvirtd-ro.socket libvirt-guests.service libvirtd-admin.socket libvirtd-tcp.socket libvirtd-tls.socket virtlockd.service virtlockd.socket virtlogd.service virtlogd.socket virtlockd-admin.socket virtlogd-admin.socket virtproxyd.service virtproxyd.socket virtproxyd-ro.socket virtproxyd-admin.socket virtproxyd-tcp.socket virtproxyd-tls.socket
|
||||||
|
|
||||||
%posttrans daemon
|
%posttrans daemon
|
||||||
|
%libvirt_sysconfig_posttrans libvirtd virtproxyd virtlogd virtlockd libvirt-guests
|
||||||
# virtlockd and virtlogd must not be restarted, particularly virtlockd since the
|
# virtlockd and virtlogd must not be restarted, particularly virtlockd since the
|
||||||
# locks it uses to protect VM resources would be lost. Both are safe to re-exec.
|
# locks it uses to protect VM resources would be lost. Both are safe to re-exec.
|
||||||
%{_bindir}/systemctl reload-or-try-restart virtlockd.service >/dev/null 2>&1 || :
|
%{_bindir}/systemctl reload-or-try-restart virtlockd.service >/dev/null 2>&1 || :
|
||||||
%{_bindir}/systemctl reload-or-try-restart virtlogd.service >/dev/null 2>&1 || :
|
%{_bindir}/systemctl reload-or-try-restart virtlogd.service >/dev/null 2>&1 || :
|
||||||
# The '--listen' option is incompatible with socket activation.
|
|
||||||
# Check if the existing install uses --listen
|
|
||||||
listen_mode=no
|
|
||||||
if test -f %{_sysconfdir}/sysconfig/libvirtd; then
|
|
||||||
if grep -q -E '^LIBVIRTD_ARGS=.*--listen' %{_sysconfdir}/sysconfig/libvirtd; then
|
|
||||||
listen_mode=yes
|
|
||||||
fi
|
|
||||||
# A benefit of socket activation is libvirtd doesn't need to be running
|
|
||||||
# when unused. If sockets are enabled, set a timeout value if it doesn't
|
|
||||||
# already exist
|
|
||||||
if test "$listen_mode" = no && \
|
|
||||||
%{_bindir}/systemctl -q is-enabled libvirtd.socket; then
|
|
||||||
awk -i inplace "
|
|
||||||
/^LIBVIRTD_ARGS=/ {
|
|
||||||
gsub(\"^LIBVIRTD_ARGS=\", \"\")
|
|
||||||
gsub(\"^['\\\"]\", \"\")
|
|
||||||
gsub(\"['\\\"]$\", \"\")
|
|
||||||
printf \"LIBVIRTD_ARGS='\"
|
|
||||||
num = split(\$0, values)
|
|
||||||
got_timeout = 0
|
|
||||||
for ( i = 1; i <= num ; i++) {
|
|
||||||
if (values[i] ~ /^--timeout=/)
|
|
||||||
got_timeout = 1
|
|
||||||
if (values[i] ~ /^--timeout$/) {
|
|
||||||
if (i < num) {
|
|
||||||
got_timeout = 1
|
|
||||||
printf \"%%s \",values[i]
|
|
||||||
i++
|
|
||||||
} else {
|
|
||||||
continue
|
|
||||||
}
|
|
||||||
}
|
|
||||||
printf \"%%s\",values[i]
|
|
||||||
if (i >= 1 && i < num)
|
|
||||||
printf \" \"
|
|
||||||
}
|
|
||||||
if (got_timeout == 0)
|
|
||||||
if (num == 0)
|
|
||||||
printf \"--timeout 120\"
|
|
||||||
else
|
|
||||||
printf \" --timeout 120\"
|
|
||||||
printf \"'\n\"
|
|
||||||
next
|
|
||||||
}
|
|
||||||
{ print } " "%{_sysconfdir}/sysconfig/libvirtd" || :
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
# All connection drivers should be installed post transaction.
|
# All connection drivers should be installed post transaction.
|
||||||
# Time to restart the daemon
|
# Time to restart the daemon
|
||||||
test -f %{_sysconfdir}/sysconfig/services -a \
|
test -f %{_sysconfdir}/sysconfig/services -a \
|
||||||
-z "$DISABLE_RESTART_ON_UPDATE" && . %{_sysconfdir}/sysconfig/services
|
-z "$DISABLE_RESTART_ON_UPDATE" && . %{_sysconfdir}/sysconfig/services
|
||||||
if test "$DISABLE_RESTART_ON_UPDATE" != yes -a \
|
if test "$DISABLE_RESTART_ON_UPDATE" != yes -a \
|
||||||
"$DISABLE_RESTART_ON_UPDATE" != 1; then
|
"$DISABLE_RESTART_ON_UPDATE" != 1; then
|
||||||
if test "$listen_mode" = yes; then
|
# See if user has previously modified their install to
|
||||||
|
# tell libvirtd to use --listen
|
||||||
|
if grep -q -E '^LIBVIRTD_ARGS=.*--listen' %{_sysconfdir}/sysconfig/libvirtd; then
|
||||||
# Keep honouring --listen and *not* use systemd socket activation.
|
# Keep honouring --listen and *not* use systemd socket activation.
|
||||||
# Switching things might confuse management tools that expect the old
|
# Switching things might confuse management tools that expect the old
|
||||||
# style libvirtd
|
# style libvirtd
|
||||||
@ -1450,6 +1403,8 @@ fi
|
|||||||
%attr(0755, root, root) %{_bindir}/virt-ssh-helper
|
%attr(0755, root, root) %{_bindir}/virt-ssh-helper
|
||||||
%doc %{_mandir}/man1/virt-admin.1*
|
%doc %{_mandir}/man1/virt-admin.1*
|
||||||
%doc %{_mandir}/man1/virt-host-validate.1*
|
%doc %{_mandir}/man1/virt-host-validate.1*
|
||||||
|
%doc %{_mandir}/man8/virt-ssh-helper.8*
|
||||||
|
%doc %{_mandir}/man8/libvirt-guests.8*
|
||||||
%doc %{_mandir}/man8/libvirtd.8*
|
%doc %{_mandir}/man8/libvirtd.8*
|
||||||
%doc %{_mandir}/man8/virtlogd.8*
|
%doc %{_mandir}/man8/virtlogd.8*
|
||||||
%doc %{_mandir}/man8/virtlockd.8*
|
%doc %{_mandir}/man8/virtlockd.8*
|
||||||
@ -1630,6 +1585,7 @@ fi
|
|||||||
%files daemon-driver-qemu
|
%files daemon-driver-qemu
|
||||||
%config(noreplace) %{_sysconfdir}/%{name}/virtqemud.conf
|
%config(noreplace) %{_sysconfdir}/%{name}/virtqemud.conf
|
||||||
%config(noreplace) %{_sysconfdir}/apparmor.d/usr.sbin.virtqemud
|
%config(noreplace) %{_sysconfdir}/apparmor.d/usr.sbin.virtqemud
|
||||||
|
%config(noreplace) %{_prefix}/lib/sysctl.d/60-qemu-postcopy-migration.conf
|
||||||
%{_datadir}/augeas/lenses/virtqemud.aug
|
%{_datadir}/augeas/lenses/virtqemud.aug
|
||||||
%{_datadir}/augeas/lenses/tests/test_virtqemud.aug
|
%{_datadir}/augeas/lenses/tests/test_virtqemud.aug
|
||||||
%{_unitdir}/virtqemud.service
|
%{_unitdir}/virtqemud.service
|
||||||
@ -1747,6 +1703,7 @@ fi
|
|||||||
%files client
|
%files client
|
||||||
%doc %{_mandir}/man1/virsh.1*
|
%doc %{_mandir}/man1/virsh.1*
|
||||||
%doc %{_mandir}/man1/virt-xml-validate.1*
|
%doc %{_mandir}/man1/virt-xml-validate.1*
|
||||||
|
%doc %{_mandir}/man1/virt-pki-query-dn.1*
|
||||||
%doc %{_mandir}/man1/virt-pki-validate.1*
|
%doc %{_mandir}/man1/virt-pki-validate.1*
|
||||||
%{_bindir}/virsh
|
%{_bindir}/virsh
|
||||||
%{_bindir}/virt-xml-validate
|
%{_bindir}/virt-xml-validate
|
||||||
|
@ -8,11 +8,11 @@ Date: Mon Jun 23 15:51:20 2014 -0600
|
|||||||
option, but domainReset can be implemented in the libxl driver by
|
option, but domainReset can be implemented in the libxl driver by
|
||||||
forcibly destroying the domain and starting it again.
|
forcibly destroying the domain and starting it again.
|
||||||
|
|
||||||
Index: libvirt-7.10.0/src/libxl/libxl_driver.c
|
Index: libvirt-8.0.0/src/libxl/libxl_driver.c
|
||||||
===================================================================
|
===================================================================
|
||||||
--- libvirt-7.10.0.orig/src/libxl/libxl_driver.c
|
--- libvirt-8.0.0.orig/src/libxl/libxl_driver.c
|
||||||
+++ libvirt-7.10.0/src/libxl/libxl_driver.c
|
+++ libvirt-8.0.0/src/libxl/libxl_driver.c
|
||||||
@@ -1340,6 +1340,63 @@ libxlDomainReboot(virDomainPtr dom, unsi
|
@@ -1338,6 +1338,63 @@ libxlDomainReboot(virDomainPtr dom, unsi
|
||||||
}
|
}
|
||||||
|
|
||||||
static int
|
static int
|
||||||
@ -76,7 +76,7 @@ Index: libvirt-7.10.0/src/libxl/libxl_driver.c
|
|||||||
libxlDomainDestroyFlags(virDomainPtr dom,
|
libxlDomainDestroyFlags(virDomainPtr dom,
|
||||||
unsigned int flags)
|
unsigned int flags)
|
||||||
{
|
{
|
||||||
@@ -6453,6 +6510,7 @@ static virHypervisorDriver libxlHypervis
|
@@ -6432,6 +6489,7 @@ static virHypervisorDriver libxlHypervis
|
||||||
.domainShutdown = libxlDomainShutdown, /* 0.9.0 */
|
.domainShutdown = libxlDomainShutdown, /* 0.9.0 */
|
||||||
.domainShutdownFlags = libxlDomainShutdownFlags, /* 0.9.10 */
|
.domainShutdownFlags = libxlDomainShutdownFlags, /* 0.9.10 */
|
||||||
.domainReboot = libxlDomainReboot, /* 0.9.0 */
|
.domainReboot = libxlDomainReboot, /* 0.9.0 */
|
||||||
|
@ -3,10 +3,10 @@ https://bugzilla.novell.com/show_bug.cgi?id=879425
|
|||||||
src/libxl/libxl_conf.c | 25 +++++++++++++++++++++++++
|
src/libxl/libxl_conf.c | 25 +++++++++++++++++++++++++
|
||||||
1 file changed, 25 insertions(+)
|
1 file changed, 25 insertions(+)
|
||||||
|
|
||||||
Index: libvirt-7.10.0/src/libxl/libxl_conf.c
|
Index: libvirt-8.0.0/src/libxl/libxl_conf.c
|
||||||
===================================================================
|
===================================================================
|
||||||
--- libvirt-7.10.0.orig/src/libxl/libxl_conf.c
|
--- libvirt-8.0.0.orig/src/libxl/libxl_conf.c
|
||||||
+++ libvirt-7.10.0/src/libxl/libxl_conf.c
|
+++ libvirt-8.0.0/src/libxl/libxl_conf.c
|
||||||
@@ -941,6 +941,28 @@ libxlDiskSetDiscard(libxl_device_disk *x
|
@@ -941,6 +941,28 @@ libxlDiskSetDiscard(libxl_device_disk *x
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -16,21 +16,19 @@ Signed-off-by: Jim Fehlig <jfehlig@suse.com>
|
|||||||
tools/virsh.pod | 8 ++++++++
|
tools/virsh.pod | 8 ++++++++
|
||||||
6 files changed, 125 insertions(+), 6 deletions(-)
|
6 files changed, 125 insertions(+), 6 deletions(-)
|
||||||
|
|
||||||
Index: libvirt-7.10.0/docs/manpages/virsh.rst
|
Index: libvirt-8.0.0/docs/manpages/virsh.rst
|
||||||
===================================================================
|
===================================================================
|
||||||
--- libvirt-7.10.0.orig/docs/manpages/virsh.rst
|
--- libvirt-8.0.0.orig/docs/manpages/virsh.rst
|
||||||
+++ libvirt-7.10.0/docs/manpages/virsh.rst
|
+++ libvirt-8.0.0/docs/manpages/virsh.rst
|
||||||
@@ -3175,7 +3175,8 @@ migrate
|
@@ -3237,6 +3237,7 @@ migrate
|
||||||
[--postcopy-bandwidth bandwidth]
|
|
||||||
[--parallel [--parallel-connections connections]]
|
[--parallel [--parallel-connections connections]]
|
||||||
[--bandwidth bandwidth] [--tls-destination hostname]
|
[--bandwidth bandwidth] [--tls-destination hostname]
|
||||||
- [--disks-uri URI]
|
[--disks-uri URI] [--copy-storage-synchronous-writes]
|
||||||
+ [--disks-uri URI] [--max_iters num]
|
+ [--max_iters num] [--min_remaining num] [--abort_if_busy]
|
||||||
+ [--min_remaining num] [--abort_if_busy]
|
|
||||||
|
|
||||||
Migrate domain to another host. Add *--live* for live migration; <--p2p>
|
Migrate domain to another host. Add *--live* for live migration; <--p2p>
|
||||||
for peer-2-peer migration; *--direct* for direct migration; or *--tunnelled*
|
for peer-2-peer migration; *--direct* for direct migration; or *--tunnelled*
|
||||||
@@ -3281,6 +3282,12 @@ parallel connections. The number of such
|
@@ -3354,6 +3355,12 @@ parallel connections. The number of such
|
||||||
network link between the source and the target and thus speeding up the
|
network link between the source and the target and thus speeding up the
|
||||||
migration.
|
migration.
|
||||||
|
|
||||||
@ -43,11 +41,11 @@ Index: libvirt-7.10.0/docs/manpages/virsh.rst
|
|||||||
Running migration can be canceled by interrupting virsh (usually using
|
Running migration can be canceled by interrupting virsh (usually using
|
||||||
``Ctrl-C``) or by ``domjobabort`` command sent from another virsh instance.
|
``Ctrl-C``) or by ``domjobabort`` command sent from another virsh instance.
|
||||||
|
|
||||||
Index: libvirt-7.10.0/include/libvirt/libvirt-domain.h
|
Index: libvirt-8.0.0/include/libvirt/libvirt-domain.h
|
||||||
===================================================================
|
===================================================================
|
||||||
--- libvirt-7.10.0.orig/include/libvirt/libvirt-domain.h
|
--- libvirt-8.0.0.orig/include/libvirt/libvirt-domain.h
|
||||||
+++ libvirt-7.10.0/include/libvirt/libvirt-domain.h
|
+++ libvirt-8.0.0/include/libvirt/libvirt-domain.h
|
||||||
@@ -1079,6 +1079,25 @@ typedef enum {
|
@@ -1089,6 +1089,25 @@ typedef enum {
|
||||||
*/
|
*/
|
||||||
# define VIR_MIGRATE_PARAM_TLS_DESTINATION "tls.destination"
|
# define VIR_MIGRATE_PARAM_TLS_DESTINATION "tls.destination"
|
||||||
|
|
||||||
@ -73,11 +71,11 @@ Index: libvirt-7.10.0/include/libvirt/libvirt-domain.h
|
|||||||
/* Domain migration. */
|
/* Domain migration. */
|
||||||
virDomainPtr virDomainMigrate (virDomainPtr domain, virConnectPtr dconn,
|
virDomainPtr virDomainMigrate (virDomainPtr domain, virConnectPtr dconn,
|
||||||
unsigned long flags, const char *dname,
|
unsigned long flags, const char *dname,
|
||||||
Index: libvirt-7.10.0/src/libxl/libxl_driver.c
|
Index: libvirt-8.0.0/src/libxl/libxl_driver.c
|
||||||
===================================================================
|
===================================================================
|
||||||
--- libvirt-7.10.0.orig/src/libxl/libxl_driver.c
|
--- libvirt-8.0.0.orig/src/libxl/libxl_driver.c
|
||||||
+++ libvirt-7.10.0/src/libxl/libxl_driver.c
|
+++ libvirt-8.0.0/src/libxl/libxl_driver.c
|
||||||
@@ -5994,6 +5994,9 @@ libxlDomainMigratePerform3Params(virDoma
|
@@ -5973,6 +5973,9 @@ libxlDomainMigratePerform3Params(virDoma
|
||||||
const char *dname = NULL;
|
const char *dname = NULL;
|
||||||
const char *uri = NULL;
|
const char *uri = NULL;
|
||||||
int ret = -1;
|
int ret = -1;
|
||||||
@ -87,7 +85,7 @@ Index: libvirt-7.10.0/src/libxl/libxl_driver.c
|
|||||||
|
|
||||||
#ifdef LIBXL_HAVE_NO_SUSPEND_RESUME
|
#ifdef LIBXL_HAVE_NO_SUSPEND_RESUME
|
||||||
virReportUnsupportedError();
|
virReportUnsupportedError();
|
||||||
@@ -6010,6 +6013,15 @@ libxlDomainMigratePerform3Params(virDoma
|
@@ -5989,6 +5992,15 @@ libxlDomainMigratePerform3Params(virDoma
|
||||||
virTypedParamsGetString(params, nparams,
|
virTypedParamsGetString(params, nparams,
|
||||||
VIR_MIGRATE_PARAM_DEST_NAME,
|
VIR_MIGRATE_PARAM_DEST_NAME,
|
||||||
&dname) < 0 ||
|
&dname) < 0 ||
|
||||||
@ -103,7 +101,7 @@ Index: libvirt-7.10.0/src/libxl/libxl_driver.c
|
|||||||
virTypedParamsGetString(params, nparams,
|
virTypedParamsGetString(params, nparams,
|
||||||
VIR_MIGRATE_PARAM_URI,
|
VIR_MIGRATE_PARAM_URI,
|
||||||
&uri) < 0)
|
&uri) < 0)
|
||||||
@@ -6024,11 +6036,11 @@ libxlDomainMigratePerform3Params(virDoma
|
@@ -6003,11 +6015,11 @@ libxlDomainMigratePerform3Params(virDoma
|
||||||
|
|
||||||
if ((flags & (VIR_MIGRATE_TUNNELLED | VIR_MIGRATE_PEER2PEER))) {
|
if ((flags & (VIR_MIGRATE_TUNNELLED | VIR_MIGRATE_PEER2PEER))) {
|
||||||
if (libxlDomainMigrationSrcPerformP2P(driver, vm, dom->conn, dom_xml,
|
if (libxlDomainMigrationSrcPerformP2P(driver, vm, dom->conn, dom_xml,
|
||||||
@ -117,10 +115,10 @@ Index: libvirt-7.10.0/src/libxl/libxl_driver.c
|
|||||||
goto cleanup;
|
goto cleanup;
|
||||||
}
|
}
|
||||||
|
|
||||||
Index: libvirt-7.10.0/src/libxl/libxl_migration.c
|
Index: libvirt-8.0.0/src/libxl/libxl_migration.c
|
||||||
===================================================================
|
===================================================================
|
||||||
--- libvirt-7.10.0.orig/src/libxl/libxl_migration.c
|
--- libvirt-8.0.0.orig/src/libxl/libxl_migration.c
|
||||||
+++ libvirt-7.10.0/src/libxl/libxl_migration.c
|
+++ libvirt-8.0.0/src/libxl/libxl_migration.c
|
||||||
@@ -334,18 +334,38 @@ libxlMigrateDstReceive(virNetSocket *soc
|
@@ -334,18 +334,38 @@ libxlMigrateDstReceive(virNetSocket *soc
|
||||||
static int
|
static int
|
||||||
libxlDoMigrateSrcSend(libxlDriverPrivate *driver,
|
libxlDoMigrateSrcSend(libxlDriverPrivate *driver,
|
||||||
@ -162,7 +160,7 @@ Index: libvirt-7.10.0/src/libxl/libxl_migration.c
|
|||||||
if (ret != 0) {
|
if (ret != 0) {
|
||||||
virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
|
virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
|
||||||
_("Failed to send migration data to destination host"));
|
_("Failed to send migration data to destination host"));
|
||||||
@@ -885,7 +905,7 @@ struct libxlTunnelControl {
|
@@ -884,7 +904,7 @@ struct libxlTunnelControl {
|
||||||
static int
|
static int
|
||||||
libxlMigrationSrcStartTunnel(libxlDriverPrivate *driver,
|
libxlMigrationSrcStartTunnel(libxlDriverPrivate *driver,
|
||||||
virDomainObj *vm,
|
virDomainObj *vm,
|
||||||
@ -171,7 +169,7 @@ Index: libvirt-7.10.0/src/libxl/libxl_migration.c
|
|||||||
virStreamPtr st,
|
virStreamPtr st,
|
||||||
struct libxlTunnelControl **tnl)
|
struct libxlTunnelControl **tnl)
|
||||||
{
|
{
|
||||||
@@ -918,7 +938,7 @@ libxlMigrationSrcStartTunnel(libxlDriver
|
@@ -917,7 +937,7 @@ libxlMigrationSrcStartTunnel(libxlDriver
|
||||||
|
|
||||||
virObjectUnlock(vm);
|
virObjectUnlock(vm);
|
||||||
/* Send data to pipe */
|
/* Send data to pipe */
|
||||||
@ -180,7 +178,7 @@ Index: libvirt-7.10.0/src/libxl/libxl_migration.c
|
|||||||
virObjectLock(vm);
|
virObjectLock(vm);
|
||||||
|
|
||||||
/* libxlMigrationSrcStopTunnel will be called in libxlDoMigrateSrcP2P
|
/* libxlMigrationSrcStopTunnel will be called in libxlDoMigrateSrcP2P
|
||||||
@@ -953,7 +973,7 @@ libxlDoMigrateSrcP2P(libxlDriverPrivate
|
@@ -952,7 +972,7 @@ libxlDoMigrateSrcP2P(libxlDriverPrivate
|
||||||
const char *dconnuri G_GNUC_UNUSED,
|
const char *dconnuri G_GNUC_UNUSED,
|
||||||
const char *dname,
|
const char *dname,
|
||||||
const char *uri,
|
const char *uri,
|
||||||
@ -189,7 +187,7 @@ Index: libvirt-7.10.0/src/libxl/libxl_migration.c
|
|||||||
{
|
{
|
||||||
virDomainPtr ddomain = NULL;
|
virDomainPtr ddomain = NULL;
|
||||||
virTypedParameterPtr params = NULL;
|
virTypedParameterPtr params = NULL;
|
||||||
@@ -998,11 +1018,11 @@ libxlDoMigrateSrcP2P(libxlDriverPrivate
|
@@ -997,11 +1017,11 @@ libxlDoMigrateSrcP2P(libxlDriverPrivate
|
||||||
/* We don't require the destination to have P2P support
|
/* We don't require the destination to have P2P support
|
||||||
* as it looks to be normal migration from the receiver perspective.
|
* as it looks to be normal migration from the receiver perspective.
|
||||||
*/
|
*/
|
||||||
@ -203,7 +201,7 @@ Index: libvirt-7.10.0/src/libxl/libxl_migration.c
|
|||||||
if (!(st = virStreamNew(dconn, 0)))
|
if (!(st = virStreamNew(dconn, 0)))
|
||||||
goto confirm;
|
goto confirm;
|
||||||
ret = dconn->driver->domainMigratePrepareTunnel3Params
|
ret = dconn->driver->domainMigratePrepareTunnel3Params
|
||||||
@@ -1016,7 +1036,7 @@ libxlDoMigrateSrcP2P(libxlDriverPrivate
|
@@ -1015,7 +1035,7 @@ libxlDoMigrateSrcP2P(libxlDriverPrivate
|
||||||
if (ret == -1)
|
if (ret == -1)
|
||||||
goto confirm;
|
goto confirm;
|
||||||
|
|
||||||
@ -212,7 +210,7 @@ Index: libvirt-7.10.0/src/libxl/libxl_migration.c
|
|||||||
if (uri_out) {
|
if (uri_out) {
|
||||||
if (virTypedParamsReplaceString(¶ms, &nparams,
|
if (virTypedParamsReplaceString(¶ms, &nparams,
|
||||||
VIR_MIGRATE_PARAM_URI, uri_out) < 0) {
|
VIR_MIGRATE_PARAM_URI, uri_out) < 0) {
|
||||||
@@ -1031,11 +1051,11 @@ libxlDoMigrateSrcP2P(libxlDriverPrivate
|
@@ -1030,11 +1050,11 @@ libxlDoMigrateSrcP2P(libxlDriverPrivate
|
||||||
}
|
}
|
||||||
|
|
||||||
VIR_DEBUG("Perform3 uri=%s", NULLSTR(uri_out));
|
VIR_DEBUG("Perform3 uri=%s", NULLSTR(uri_out));
|
||||||
@ -227,7 +225,7 @@ Index: libvirt-7.10.0/src/libxl/libxl_migration.c
|
|||||||
if (ret < 0) {
|
if (ret < 0) {
|
||||||
notify_source = false;
|
notify_source = false;
|
||||||
virErrorPreserveLast(&orig_err);
|
virErrorPreserveLast(&orig_err);
|
||||||
@@ -1070,7 +1090,7 @@ libxlDoMigrateSrcP2P(libxlDriverPrivate
|
@@ -1069,7 +1089,7 @@ libxlDoMigrateSrcP2P(libxlDriverPrivate
|
||||||
confirm:
|
confirm:
|
||||||
if (notify_source) {
|
if (notify_source) {
|
||||||
VIR_DEBUG("Confirm3 cancelled=%d vm=%p", cancelled, vm);
|
VIR_DEBUG("Confirm3 cancelled=%d vm=%p", cancelled, vm);
|
||||||
@ -236,7 +234,7 @@ Index: libvirt-7.10.0/src/libxl/libxl_migration.c
|
|||||||
|
|
||||||
if (ret < 0)
|
if (ret < 0)
|
||||||
VIR_WARN("Guest %s probably left in 'paused' state on source",
|
VIR_WARN("Guest %s probably left in 'paused' state on source",
|
||||||
@@ -1078,7 +1098,7 @@ libxlDoMigrateSrcP2P(libxlDriverPrivate
|
@@ -1077,7 +1097,7 @@ libxlDoMigrateSrcP2P(libxlDriverPrivate
|
||||||
}
|
}
|
||||||
|
|
||||||
cleanup:
|
cleanup:
|
||||||
@ -245,7 +243,7 @@ Index: libvirt-7.10.0/src/libxl/libxl_migration.c
|
|||||||
libxlMigrationSrcStopTunnel(tc);
|
libxlMigrationSrcStopTunnel(tc);
|
||||||
virObjectUnref(st);
|
virObjectUnref(st);
|
||||||
}
|
}
|
||||||
@@ -1122,7 +1142,7 @@ libxlDomainMigrationSrcPerformP2P(libxlD
|
@@ -1121,7 +1141,7 @@ libxlDomainMigrationSrcPerformP2P(libxlD
|
||||||
const char *dconnuri,
|
const char *dconnuri,
|
||||||
const char *uri_str G_GNUC_UNUSED,
|
const char *uri_str G_GNUC_UNUSED,
|
||||||
const char *dname,
|
const char *dname,
|
||||||
@ -254,7 +252,7 @@ Index: libvirt-7.10.0/src/libxl/libxl_migration.c
|
|||||||
{
|
{
|
||||||
int ret = -1;
|
int ret = -1;
|
||||||
int useParams;
|
int useParams;
|
||||||
@@ -1159,7 +1179,7 @@ libxlDomainMigrationSrcPerformP2P(libxlD
|
@@ -1155,7 +1175,7 @@ libxlDomainMigrationSrcPerformP2P(libxlD
|
||||||
}
|
}
|
||||||
|
|
||||||
ret = libxlDoMigrateSrcP2P(driver, vm, sconn, xmlin, dconn, dconnuri,
|
ret = libxlDoMigrateSrcP2P(driver, vm, sconn, xmlin, dconn, dconnuri,
|
||||||
@ -263,7 +261,7 @@ Index: libvirt-7.10.0/src/libxl/libxl_migration.c
|
|||||||
|
|
||||||
if (ret < 0) {
|
if (ret < 0) {
|
||||||
/*
|
/*
|
||||||
@@ -1186,7 +1206,7 @@ libxlDomainMigrationSrcPerform(libxlDriv
|
@@ -1182,7 +1202,7 @@ libxlDomainMigrationSrcPerform(libxlDriv
|
||||||
const char *dconnuri G_GNUC_UNUSED,
|
const char *dconnuri G_GNUC_UNUSED,
|
||||||
const char *uri_str,
|
const char *uri_str,
|
||||||
const char *dname G_GNUC_UNUSED,
|
const char *dname G_GNUC_UNUSED,
|
||||||
@ -272,7 +270,7 @@ Index: libvirt-7.10.0/src/libxl/libxl_migration.c
|
|||||||
{
|
{
|
||||||
libxlDomainObjPrivate *priv = vm->privateData;
|
libxlDomainObjPrivate *priv = vm->privateData;
|
||||||
char *hostname = NULL;
|
char *hostname = NULL;
|
||||||
@@ -1222,7 +1242,7 @@ libxlDomainMigrationSrcPerform(libxlDriv
|
@@ -1218,7 +1238,7 @@ libxlDomainMigrationSrcPerform(libxlDriv
|
||||||
|
|
||||||
/* suspend vm and send saved data to dst through socket fd */
|
/* suspend vm and send saved data to dst through socket fd */
|
||||||
virObjectUnlock(vm);
|
virObjectUnlock(vm);
|
||||||
@ -281,10 +279,10 @@ Index: libvirt-7.10.0/src/libxl/libxl_migration.c
|
|||||||
virObjectLock(vm);
|
virObjectLock(vm);
|
||||||
|
|
||||||
if (ret == 0) {
|
if (ret == 0) {
|
||||||
Index: libvirt-7.10.0/src/libxl/libxl_migration.h
|
Index: libvirt-8.0.0/src/libxl/libxl_migration.h
|
||||||
===================================================================
|
===================================================================
|
||||||
--- libvirt-7.10.0.orig/src/libxl/libxl_migration.h
|
--- libvirt-8.0.0.orig/src/libxl/libxl_migration.h
|
||||||
+++ libvirt-7.10.0/src/libxl/libxl_migration.h
|
+++ libvirt-8.0.0/src/libxl/libxl_migration.h
|
||||||
@@ -35,6 +35,9 @@
|
@@ -35,6 +35,9 @@
|
||||||
VIR_MIGRATE_PARAM_URI, VIR_TYPED_PARAM_STRING, \
|
VIR_MIGRATE_PARAM_URI, VIR_TYPED_PARAM_STRING, \
|
||||||
VIR_MIGRATE_PARAM_DEST_NAME, VIR_TYPED_PARAM_STRING, \
|
VIR_MIGRATE_PARAM_DEST_NAME, VIR_TYPED_PARAM_STRING, \
|
||||||
@ -327,11 +325,11 @@ Index: libvirt-7.10.0/src/libxl/libxl_migration.h
|
|||||||
|
|
||||||
virDomainPtr
|
virDomainPtr
|
||||||
libxlDomainMigrationDstFinish(virConnectPtr dconn,
|
libxlDomainMigrationDstFinish(virConnectPtr dconn,
|
||||||
Index: libvirt-7.10.0/tools/virsh-domain.c
|
Index: libvirt-8.0.0/tools/virsh-domain.c
|
||||||
===================================================================
|
===================================================================
|
||||||
--- libvirt-7.10.0.orig/tools/virsh-domain.c
|
--- libvirt-8.0.0.orig/tools/virsh-domain.c
|
||||||
+++ libvirt-7.10.0/tools/virsh-domain.c
|
+++ libvirt-8.0.0/tools/virsh-domain.c
|
||||||
@@ -10683,6 +10683,18 @@ static const vshCmdOptDef opts_migrate[]
|
@@ -10841,6 +10841,18 @@ static const vshCmdOptDef opts_migrate[]
|
||||||
.completer = virshCompleteEmpty,
|
.completer = virshCompleteEmpty,
|
||||||
.help = N_("override the destination host name used for TLS verification")
|
.help = N_("override the destination host name used for TLS verification")
|
||||||
},
|
},
|
||||||
@ -350,7 +348,7 @@ Index: libvirt-7.10.0/tools/virsh-domain.c
|
|||||||
{.name = NULL}
|
{.name = NULL}
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -10703,6 +10715,7 @@ doMigrate(void *opaque)
|
@@ -10861,6 +10873,7 @@ doMigrate(void *opaque)
|
||||||
unsigned long long ullOpt = 0;
|
unsigned long long ullOpt = 0;
|
||||||
int rv;
|
int rv;
|
||||||
virConnectPtr dconn = data->dconn;
|
virConnectPtr dconn = data->dconn;
|
||||||
@ -358,7 +356,7 @@ Index: libvirt-7.10.0/tools/virsh-domain.c
|
|||||||
#ifndef WIN32
|
#ifndef WIN32
|
||||||
sigset_t sigmask, oldsigmask;
|
sigset_t sigmask, oldsigmask;
|
||||||
|
|
||||||
@@ -10833,6 +10846,22 @@ doMigrate(void *opaque)
|
@@ -10991,6 +11004,22 @@ doMigrate(void *opaque)
|
||||||
goto save_error;
|
goto save_error;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -7,10 +7,10 @@ and npiv.
|
|||||||
|
|
||||||
For more details, see bsc#954872 and FATE#319810
|
For more details, see bsc#954872 and FATE#319810
|
||||||
|
|
||||||
Index: libvirt-7.10.0/src/libxl/libxl_conf.c
|
Index: libvirt-8.0.0/src/libxl/libxl_conf.c
|
||||||
===================================================================
|
===================================================================
|
||||||
--- libvirt-7.10.0.orig/src/libxl/libxl_conf.c
|
--- libvirt-8.0.0.orig/src/libxl/libxl_conf.c
|
||||||
+++ libvirt-7.10.0/src/libxl/libxl_conf.c
|
+++ libvirt-8.0.0/src/libxl/libxl_conf.c
|
||||||
@@ -942,6 +942,20 @@ libxlDiskSetDiscard(libxl_device_disk *x
|
@@ -942,6 +942,20 @@ libxlDiskSetDiscard(libxl_device_disk *x
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -13,11 +13,11 @@ device with the same name that is being created.
|
|||||||
src/lxc/lxc_process.c | 1 +
|
src/lxc/lxc_process.c | 1 +
|
||||||
3 files changed, 4 insertions(+)
|
3 files changed, 4 insertions(+)
|
||||||
|
|
||||||
Index: libvirt-7.10.0/src/lxc/lxc_controller.c
|
Index: libvirt-8.0.0/src/lxc/lxc_controller.c
|
||||||
===================================================================
|
===================================================================
|
||||||
--- libvirt-7.10.0.orig/src/lxc/lxc_controller.c
|
--- libvirt-8.0.0.orig/src/lxc/lxc_controller.c
|
||||||
+++ libvirt-7.10.0/src/lxc/lxc_controller.c
|
+++ libvirt-8.0.0/src/lxc/lxc_controller.c
|
||||||
@@ -2012,6 +2012,7 @@ static int virLXCControllerDeleteInterfa
|
@@ -2006,6 +2006,7 @@ static int virLXCControllerDeleteInterfa
|
||||||
if (virNetDevVethDelete(ctrl->veths[i]) < 0)
|
if (virNetDevVethDelete(ctrl->veths[i]) < 0)
|
||||||
ret = -1;
|
ret = -1;
|
||||||
}
|
}
|
||||||
@ -25,10 +25,10 @@ Index: libvirt-7.10.0/src/lxc/lxc_controller.c
|
|||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
Index: libvirt-7.10.0/src/lxc/lxc_driver.c
|
Index: libvirt-8.0.0/src/lxc/lxc_driver.c
|
||||||
===================================================================
|
===================================================================
|
||||||
--- libvirt-7.10.0.orig/src/lxc/lxc_driver.c
|
--- libvirt-8.0.0.orig/src/lxc/lxc_driver.c
|
||||||
+++ libvirt-7.10.0/src/lxc/lxc_driver.c
|
+++ libvirt-8.0.0/src/lxc/lxc_driver.c
|
||||||
@@ -67,6 +67,7 @@
|
@@ -67,6 +67,7 @@
|
||||||
#include "virtime.h"
|
#include "virtime.h"
|
||||||
#include "virtypedparam.h"
|
#include "virtypedparam.h"
|
||||||
@ -37,7 +37,7 @@ Index: libvirt-7.10.0/src/lxc/lxc_driver.c
|
|||||||
#include "virstring.h"
|
#include "virstring.h"
|
||||||
#include "viraccessapicheck.h"
|
#include "viraccessapicheck.h"
|
||||||
#include "viraccessapichecklxc.h"
|
#include "viraccessapichecklxc.h"
|
||||||
@@ -3539,6 +3540,7 @@ lxcDomainAttachDeviceNetLive(virLXCDrive
|
@@ -3508,6 +3509,7 @@ lxcDomainAttachDeviceNetLive(virLXCDrive
|
||||||
case VIR_DOMAIN_NET_TYPE_NETWORK:
|
case VIR_DOMAIN_NET_TYPE_NETWORK:
|
||||||
case VIR_DOMAIN_NET_TYPE_ETHERNET:
|
case VIR_DOMAIN_NET_TYPE_ETHERNET:
|
||||||
ignore_value(virNetDevVethDelete(veth));
|
ignore_value(virNetDevVethDelete(veth));
|
||||||
@ -45,7 +45,7 @@ Index: libvirt-7.10.0/src/lxc/lxc_driver.c
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
case VIR_DOMAIN_NET_TYPE_DIRECT:
|
case VIR_DOMAIN_NET_TYPE_DIRECT:
|
||||||
@@ -3978,6 +3980,7 @@ lxcDomainDetachDeviceNetLive(virDomainOb
|
@@ -3947,6 +3949,7 @@ lxcDomainDetachDeviceNetLive(virDomainOb
|
||||||
virDomainAuditNet(vm, detach, NULL, "detach", false);
|
virDomainAuditNet(vm, detach, NULL, "detach", false);
|
||||||
goto cleanup;
|
goto cleanup;
|
||||||
}
|
}
|
||||||
@ -53,10 +53,10 @@ Index: libvirt-7.10.0/src/lxc/lxc_driver.c
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
/* It'd be nice to support this, but with macvlan
|
/* It'd be nice to support this, but with macvlan
|
||||||
Index: libvirt-7.10.0/src/lxc/lxc_process.c
|
Index: libvirt-8.0.0/src/lxc/lxc_process.c
|
||||||
===================================================================
|
===================================================================
|
||||||
--- libvirt-7.10.0.orig/src/lxc/lxc_process.c
|
--- libvirt-8.0.0.orig/src/lxc/lxc_process.c
|
||||||
+++ libvirt-7.10.0/src/lxc/lxc_process.c
|
+++ libvirt-8.0.0/src/lxc/lxc_process.c
|
||||||
@@ -51,6 +51,7 @@
|
@@ -51,6 +51,7 @@
|
||||||
#include "virstring.h"
|
#include "virstring.h"
|
||||||
#include "virprocess.h"
|
#include "virprocess.h"
|
||||||
|
@ -17,11 +17,11 @@ Signed-off-by: Martin Wilck <mwilck@suse.com>
|
|||||||
tests/networkxml2confdata/dhcp6host-routed-network.conf | 1 -
|
tests/networkxml2confdata/dhcp6host-routed-network.conf | 1 -
|
||||||
2 files changed, 8 insertions(+), 2 deletions(-)
|
2 files changed, 8 insertions(+), 2 deletions(-)
|
||||||
|
|
||||||
Index: libvirt-7.10.0/src/network/bridge_driver.c
|
Index: libvirt-8.0.0/src/network/bridge_driver.c
|
||||||
===================================================================
|
===================================================================
|
||||||
--- libvirt-7.10.0.orig/src/network/bridge_driver.c
|
--- libvirt-8.0.0.orig/src/network/bridge_driver.c
|
||||||
+++ libvirt-7.10.0/src/network/bridge_driver.c
|
+++ libvirt-8.0.0/src/network/bridge_driver.c
|
||||||
@@ -1449,7 +1449,14 @@ networkDnsmasqConfContents(virNetworkObj
|
@@ -1347,7 +1347,14 @@ networkDnsmasqConfContents(virNetworkObj
|
||||||
if (VIR_SOCKET_ADDR_IS_FAMILY(&ipdef->address, AF_INET)) {
|
if (VIR_SOCKET_ADDR_IS_FAMILY(&ipdef->address, AF_INET)) {
|
||||||
if (ipdef->nranges || ipdef->nhosts) {
|
if (ipdef->nranges || ipdef->nhosts) {
|
||||||
virBufferAddLit(&configbuf, "dhcp-no-override\n");
|
virBufferAddLit(&configbuf, "dhcp-no-override\n");
|
||||||
@ -37,10 +37,10 @@ Index: libvirt-7.10.0/src/network/bridge_driver.c
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (ipdef->tftproot) {
|
if (ipdef->tftproot) {
|
||||||
Index: libvirt-7.10.0/tests/networkxml2confdata/dhcp6host-routed-network.conf
|
Index: libvirt-8.0.0/tests/networkxml2confdata/dhcp6host-routed-network.conf
|
||||||
===================================================================
|
===================================================================
|
||||||
--- libvirt-7.10.0.orig/tests/networkxml2confdata/dhcp6host-routed-network.conf
|
--- libvirt-8.0.0.orig/tests/networkxml2confdata/dhcp6host-routed-network.conf
|
||||||
+++ libvirt-7.10.0/tests/networkxml2confdata/dhcp6host-routed-network.conf
|
+++ libvirt-8.0.0/tests/networkxml2confdata/dhcp6host-routed-network.conf
|
||||||
@@ -10,7 +10,6 @@ bind-dynamic
|
@@ -10,7 +10,6 @@ bind-dynamic
|
||||||
interface=virbr1
|
interface=virbr1
|
||||||
dhcp-range=192.168.122.1,static
|
dhcp-range=192.168.122.1,static
|
||||||
|
@ -2,10 +2,10 @@ Canonicalize hostarch name ppc64le to ppc64
|
|||||||
|
|
||||||
See bnc#894956
|
See bnc#894956
|
||||||
|
|
||||||
Index: libvirt-7.10.0/src/util/virarch.c
|
Index: libvirt-8.0.0/src/util/virarch.c
|
||||||
===================================================================
|
===================================================================
|
||||||
--- libvirt-7.10.0.orig/src/util/virarch.c
|
--- libvirt-8.0.0.orig/src/util/virarch.c
|
||||||
+++ libvirt-7.10.0/src/util/virarch.c
|
+++ libvirt-8.0.0/src/util/virarch.c
|
||||||
@@ -222,6 +222,8 @@ virArch virArchFromHost(void)
|
@@ -222,6 +222,8 @@ virArch virArchFromHost(void)
|
||||||
arch = VIR_ARCH_X86_64;
|
arch = VIR_ARCH_X86_64;
|
||||||
} else if (STREQ(ut.machine, "arm64")) {
|
} else if (STREQ(ut.machine, "arm64")) {
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
Index: libvirt-7.10.0/src/security/apparmor/libvirt-qemu
|
Index: libvirt-8.0.0/src/security/apparmor/libvirt-qemu
|
||||||
===================================================================
|
===================================================================
|
||||||
--- libvirt-7.10.0.orig/src/security/apparmor/libvirt-qemu
|
--- libvirt-8.0.0.orig/src/security/apparmor/libvirt-qemu
|
||||||
+++ libvirt-7.10.0/src/security/apparmor/libvirt-qemu
|
+++ libvirt-8.0.0/src/security/apparmor/libvirt-qemu
|
||||||
@@ -248,3 +248,6 @@
|
@@ -248,3 +248,6 @@
|
||||||
# /sys/bus/nd/devices
|
# /sys/bus/nd/devices
|
||||||
/ r, # harmless on any lsb compliant system
|
/ r, # harmless on any lsb compliant system
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
Adjust libvirt-guests service to conform to SUSE standards
|
Adjust libvirt-guests service to conform to SUSE standards
|
||||||
|
|
||||||
Index: libvirt-7.10.0/tools/libvirt-guests.sh.in
|
Index: libvirt-8.0.0/tools/libvirt-guests.sh.in
|
||||||
===================================================================
|
===================================================================
|
||||||
--- libvirt-7.10.0.orig/tools/libvirt-guests.sh.in
|
--- libvirt-8.0.0.orig/tools/libvirt-guests.sh.in
|
||||||
+++ libvirt-7.10.0/tools/libvirt-guests.sh.in
|
+++ libvirt-8.0.0/tools/libvirt-guests.sh.in
|
||||||
@@ -20,10 +20,6 @@ sysconfdir="@sysconfdir@"
|
@@ -20,10 +20,6 @@ sysconfdir="@sysconfdir@"
|
||||||
localstatedir="@localstatedir@"
|
localstatedir="@localstatedir@"
|
||||||
libvirtd="@sbindir@"/libvirtd
|
libvirtd="@sbindir@"/libvirtd
|
||||||
|
@ -3,10 +3,10 @@ Disable TLS by default
|
|||||||
On SUSE distros, the default is for libvirtd to listen only on the
|
On SUSE distros, the default is for libvirtd to listen only on the
|
||||||
Unix Domain Socket. The libvirt client still provides remote access
|
Unix Domain Socket. The libvirt client still provides remote access
|
||||||
via a SSH tunnel.
|
via a SSH tunnel.
|
||||||
Index: libvirt-7.10.0/src/remote/remote_daemon_config.c
|
Index: libvirt-8.0.0/src/remote/remote_daemon_config.c
|
||||||
===================================================================
|
===================================================================
|
||||||
--- libvirt-7.10.0.orig/src/remote/remote_daemon_config.c
|
--- libvirt-8.0.0.orig/src/remote/remote_daemon_config.c
|
||||||
+++ libvirt-7.10.0/src/remote/remote_daemon_config.c
|
+++ libvirt-8.0.0/src/remote/remote_daemon_config.c
|
||||||
@@ -98,7 +98,7 @@ daemonConfigNew(bool privileged G_GNUC_U
|
@@ -98,7 +98,7 @@ daemonConfigNew(bool privileged G_GNUC_U
|
||||||
|
|
||||||
#ifdef WITH_IP
|
#ifdef WITH_IP
|
||||||
@ -16,10 +16,10 @@ Index: libvirt-7.10.0/src/remote/remote_daemon_config.c
|
|||||||
# else /* ! LIBVIRTD */
|
# else /* ! LIBVIRTD */
|
||||||
data->listen_tls = false; /* Always honoured, --listen doesn't exist. */
|
data->listen_tls = false; /* Always honoured, --listen doesn't exist. */
|
||||||
# endif /* ! LIBVIRTD */
|
# endif /* ! LIBVIRTD */
|
||||||
Index: libvirt-7.10.0/src/remote/libvirtd.conf.in
|
Index: libvirt-8.0.0/src/remote/libvirtd.conf.in
|
||||||
===================================================================
|
===================================================================
|
||||||
--- libvirt-7.10.0.orig/src/remote/libvirtd.conf.in
|
--- libvirt-8.0.0.orig/src/remote/libvirtd.conf.in
|
||||||
+++ libvirt-7.10.0/src/remote/libvirtd.conf.in
|
+++ libvirt-8.0.0/src/remote/libvirtd.conf.in
|
||||||
@@ -17,8 +17,8 @@
|
@@ -17,8 +17,8 @@
|
||||||
# It is necessary to setup a CA and issue server certificates before
|
# It is necessary to setup a CA and issue server certificates before
|
||||||
# using this capability.
|
# using this capability.
|
||||||
@ -31,10 +31,10 @@ Index: libvirt-7.10.0/src/remote/libvirtd.conf.in
|
|||||||
|
|
||||||
# Listen for unencrypted TCP connections on the public TCP/IP port.
|
# Listen for unencrypted TCP connections on the public TCP/IP port.
|
||||||
# NB, must pass the --listen flag to the @DAEMON_NAME@ process for this to
|
# NB, must pass the --listen flag to the @DAEMON_NAME@ process for this to
|
||||||
Index: libvirt-7.10.0/src/remote/test_libvirtd.aug.in
|
Index: libvirt-8.0.0/src/remote/test_libvirtd.aug.in
|
||||||
===================================================================
|
===================================================================
|
||||||
--- libvirt-7.10.0.orig/src/remote/test_libvirtd.aug.in
|
--- libvirt-8.0.0.orig/src/remote/test_libvirtd.aug.in
|
||||||
+++ libvirt-7.10.0/src/remote/test_libvirtd.aug.in
|
+++ libvirt-8.0.0/src/remote/test_libvirtd.aug.in
|
||||||
@@ -3,7 +3,7 @@ module Test_@DAEMON_NAME@ =
|
@@ -3,7 +3,7 @@ module Test_@DAEMON_NAME@ =
|
||||||
|
|
||||||
test @DAEMON_NAME_UC@.lns get conf =
|
test @DAEMON_NAME_UC@.lns get conf =
|
||||||
|
@ -6,10 +6,10 @@ autoballooning. This patch changes libvirt to also disable autoballooning
|
|||||||
by default. It can only be enabled with the 'autoballoon' setting in
|
by default. It can only be enabled with the 'autoballoon' setting in
|
||||||
libxl.conf. See jsc#SLE-3059 for more details.
|
libxl.conf. See jsc#SLE-3059 for more details.
|
||||||
|
|
||||||
Index: libvirt-7.10.0/src/libxl/libxl.conf
|
Index: libvirt-8.0.0/src/libxl/libxl.conf
|
||||||
===================================================================
|
===================================================================
|
||||||
--- libvirt-7.10.0.orig/src/libxl/libxl.conf
|
--- libvirt-8.0.0.orig/src/libxl/libxl.conf
|
||||||
+++ libvirt-7.10.0/src/libxl/libxl.conf
|
+++ libvirt-8.0.0/src/libxl/libxl.conf
|
||||||
@@ -4,12 +4,11 @@
|
@@ -4,12 +4,11 @@
|
||||||
|
|
||||||
# Enable autoballooning of domain0
|
# Enable autoballooning of domain0
|
||||||
@ -27,10 +27,10 @@ Index: libvirt-7.10.0/src/libxl/libxl.conf
|
|||||||
|
|
||||||
|
|
||||||
# In order to prevent accidentally starting two domains that
|
# In order to prevent accidentally starting two domains that
|
||||||
Index: libvirt-7.10.0/src/libxl/libxl_conf.c
|
Index: libvirt-8.0.0/src/libxl/libxl_conf.c
|
||||||
===================================================================
|
===================================================================
|
||||||
--- libvirt-7.10.0.orig/src/libxl/libxl_conf.c
|
--- libvirt-8.0.0.orig/src/libxl/libxl_conf.c
|
||||||
+++ libvirt-7.10.0/src/libxl/libxl_conf.c
|
+++ libvirt-8.0.0/src/libxl/libxl_conf.c
|
||||||
@@ -1746,15 +1746,12 @@ libxlMakeBuildInfoVfb(virPortAllocatorRa
|
@@ -1746,15 +1746,12 @@ libxlMakeBuildInfoVfb(virPortAllocatorRa
|
||||||
/*
|
/*
|
||||||
* Get domain0 autoballoon configuration. Honor user-specified
|
* Get domain0 autoballoon configuration. Honor user-specified
|
||||||
@ -66,10 +66,10 @@ Index: libvirt-7.10.0/src/libxl/libxl_conf.c
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
Index: libvirt-7.10.0/src/libxl/test_libvirtd_libxl.aug.in
|
Index: libvirt-8.0.0/src/libxl/test_libvirtd_libxl.aug.in
|
||||||
===================================================================
|
===================================================================
|
||||||
--- libvirt-7.10.0.orig/src/libxl/test_libvirtd_libxl.aug.in
|
--- libvirt-8.0.0.orig/src/libxl/test_libvirtd_libxl.aug.in
|
||||||
+++ libvirt-7.10.0/src/libxl/test_libvirtd_libxl.aug.in
|
+++ libvirt-8.0.0/src/libxl/test_libvirtd_libxl.aug.in
|
||||||
@@ -2,7 +2,7 @@ module Test_libvirtd_libxl =
|
@@ -2,7 +2,7 @@ module Test_libvirtd_libxl =
|
||||||
@CONFIG@
|
@CONFIG@
|
||||||
|
|
||||||
|
@ -7,10 +7,10 @@ suse-qemu-conf-secdriver.patch, suse-qemu-conf-lockmgr.patch,
|
|||||||
etc.), but for now they are all lumped together in this
|
etc.), but for now they are all lumped together in this
|
||||||
single patch.
|
single patch.
|
||||||
|
|
||||||
Index: libvirt-7.10.0/src/qemu/qemu.conf
|
Index: libvirt-8.0.0/src/qemu/qemu.conf
|
||||||
===================================================================
|
===================================================================
|
||||||
--- libvirt-7.10.0.orig/src/qemu/qemu.conf
|
--- libvirt-8.0.0.orig/src/qemu/qemu.conf
|
||||||
+++ libvirt-7.10.0/src/qemu/qemu.conf
|
+++ libvirt-8.0.0/src/qemu/qemu.conf
|
||||||
@@ -491,10 +491,19 @@
|
@@ -491,10 +491,19 @@
|
||||||
# isolation, but it cannot appear in a list of drivers.
|
# isolation, but it cannot appear in a list of drivers.
|
||||||
#
|
#
|
||||||
@ -60,10 +60,10 @@ Index: libvirt-7.10.0/src/qemu/qemu.conf
|
|||||||
#
|
#
|
||||||
#lock_manager = "lockd"
|
#lock_manager = "lockd"
|
||||||
|
|
||||||
Index: libvirt-7.10.0/src/qemu/qemu_conf.c
|
Index: libvirt-8.0.0/src/qemu/qemu_conf.c
|
||||||
===================================================================
|
===================================================================
|
||||||
--- libvirt-7.10.0.orig/src/qemu/qemu_conf.c
|
--- libvirt-8.0.0.orig/src/qemu/qemu_conf.c
|
||||||
+++ libvirt-7.10.0/src/qemu/qemu_conf.c
|
+++ libvirt-8.0.0/src/qemu/qemu_conf.c
|
||||||
@@ -272,7 +272,7 @@ virQEMUDriverConfig *virQEMUDriverConfig
|
@@ -272,7 +272,7 @@ virQEMUDriverConfig *virQEMUDriverConfig
|
||||||
cfg->slirpHelperName = g_strdup(QEMU_SLIRP_HELPER);
|
cfg->slirpHelperName = g_strdup(QEMU_SLIRP_HELPER);
|
||||||
cfg->dbusDaemonName = g_strdup(QEMU_DBUS_DAEMON);
|
cfg->dbusDaemonName = g_strdup(QEMU_DBUS_DAEMON);
|
||||||
@ -73,10 +73,10 @@ Index: libvirt-7.10.0/src/qemu/qemu_conf.c
|
|||||||
cfg->securityRequireConfined = false;
|
cfg->securityRequireConfined = false;
|
||||||
|
|
||||||
cfg->keepAliveInterval = 5;
|
cfg->keepAliveInterval = 5;
|
||||||
Index: libvirt-7.10.0/src/qemu/test_libvirtd_qemu.aug.in
|
Index: libvirt-8.0.0/src/qemu/test_libvirtd_qemu.aug.in
|
||||||
===================================================================
|
===================================================================
|
||||||
--- libvirt-7.10.0.orig/src/qemu/test_libvirtd_qemu.aug.in
|
--- libvirt-8.0.0.orig/src/qemu/test_libvirtd_qemu.aug.in
|
||||||
+++ libvirt-7.10.0/src/qemu/test_libvirtd_qemu.aug.in
|
+++ libvirt-8.0.0/src/qemu/test_libvirtd_qemu.aug.in
|
||||||
@@ -45,6 +45,7 @@ module Test_libvirtd_qemu =
|
@@ -45,6 +45,7 @@ module Test_libvirtd_qemu =
|
||||||
{ "remote_websocket_port_min" = "5700" }
|
{ "remote_websocket_port_min" = "5700" }
|
||||||
{ "remote_websocket_port_max" = "65535" }
|
{ "remote_websocket_port_max" = "65535" }
|
||||||
|
@ -5,10 +5,10 @@ advertised and used by libvirt are automatically detected. Until upstream
|
|||||||
removes the old DEFAULT_LOADER_NVRAM approach and associated code, this
|
removes the old DEFAULT_LOADER_NVRAM approach and associated code, this
|
||||||
patch will stay.
|
patch will stay.
|
||||||
|
|
||||||
Index: libvirt-7.10.0/src/qemu/qemu.conf
|
Index: libvirt-8.0.0/src/qemu/qemu.conf
|
||||||
===================================================================
|
===================================================================
|
||||||
--- libvirt-7.10.0.orig/src/qemu/qemu.conf
|
--- libvirt-8.0.0.orig/src/qemu/qemu.conf
|
||||||
+++ libvirt-7.10.0/src/qemu/qemu.conf
|
+++ libvirt-8.0.0/src/qemu/qemu.conf
|
||||||
@@ -857,10 +857,9 @@
|
@@ -857,10 +857,9 @@
|
||||||
# for x86_64 and i686, but it's AAVMF for aarch64. The libvirt default
|
# for x86_64 and i686, but it's AAVMF for aarch64. The libvirt default
|
||||||
# follows this scheme.
|
# follows this scheme.
|
||||||
@ -23,10 +23,10 @@ Index: libvirt-7.10.0/src/qemu/qemu.conf
|
|||||||
#]
|
#]
|
||||||
|
|
||||||
# The backend to use for handling stdout/stderr output from
|
# The backend to use for handling stdout/stderr output from
|
||||||
Index: libvirt-7.10.0/src/qemu/qemu_conf.c
|
Index: libvirt-8.0.0/src/qemu/qemu_conf.c
|
||||||
===================================================================
|
===================================================================
|
||||||
--- libvirt-7.10.0.orig/src/qemu/qemu_conf.c
|
--- libvirt-8.0.0.orig/src/qemu/qemu_conf.c
|
||||||
+++ libvirt-7.10.0/src/qemu/qemu_conf.c
|
+++ libvirt-8.0.0/src/qemu/qemu_conf.c
|
||||||
@@ -98,10 +98,9 @@ qemuDriverUnlock(virQEMUDriver *driver)
|
@@ -98,10 +98,9 @@ qemuDriverUnlock(virQEMUDriver *driver)
|
||||||
|
|
||||||
#ifndef DEFAULT_LOADER_NVRAM
|
#ifndef DEFAULT_LOADER_NVRAM
|
||||||
@ -41,10 +41,10 @@ Index: libvirt-7.10.0/src/qemu/qemu_conf.c
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
Index: libvirt-7.10.0/src/security/virt-aa-helper.c
|
Index: libvirt-8.0.0/src/security/virt-aa-helper.c
|
||||||
===================================================================
|
===================================================================
|
||||||
--- libvirt-7.10.0.orig/src/security/virt-aa-helper.c
|
--- libvirt-8.0.0.orig/src/security/virt-aa-helper.c
|
||||||
+++ libvirt-7.10.0/src/security/virt-aa-helper.c
|
+++ libvirt-8.0.0/src/security/virt-aa-helper.c
|
||||||
@@ -480,7 +480,8 @@ valid_path(const char *path, const bool
|
@@ -480,7 +480,8 @@ valid_path(const char *path, const bool
|
||||||
"/usr/share/ovmf/", /* for OVMF images */
|
"/usr/share/ovmf/", /* for OVMF images */
|
||||||
"/usr/share/AAVMF/", /* for AAVMF images */
|
"/usr/share/AAVMF/", /* for AAVMF images */
|
||||||
@ -55,10 +55,10 @@ Index: libvirt-7.10.0/src/security/virt-aa-helper.c
|
|||||||
};
|
};
|
||||||
/* override the above with these */
|
/* override the above with these */
|
||||||
const char * const override[] = {
|
const char * const override[] = {
|
||||||
Index: libvirt-7.10.0/src/qemu/test_libvirtd_qemu.aug.in
|
Index: libvirt-8.0.0/src/qemu/test_libvirtd_qemu.aug.in
|
||||||
===================================================================
|
===================================================================
|
||||||
--- libvirt-7.10.0.orig/src/qemu/test_libvirtd_qemu.aug.in
|
--- libvirt-8.0.0.orig/src/qemu/test_libvirtd_qemu.aug.in
|
||||||
+++ libvirt-7.10.0/src/qemu/test_libvirtd_qemu.aug.in
|
+++ libvirt-8.0.0/src/qemu/test_libvirtd_qemu.aug.in
|
||||||
@@ -96,10 +96,9 @@ module Test_libvirtd_qemu =
|
@@ -96,10 +96,9 @@ module Test_libvirtd_qemu =
|
||||||
{ "migration_port_max" = "49215" }
|
{ "migration_port_max" = "49215" }
|
||||||
{ "log_timestamp" = "0" }
|
{ "log_timestamp" = "0" }
|
||||||
|
@ -5,10 +5,10 @@ June 2021 ovmf only supports one firmware for Xen. This patch adjusts
|
|||||||
the firmware path to match the one provided by the ovmf package.
|
the firmware path to match the one provided by the ovmf package.
|
||||||
|
|
||||||
|
|
||||||
Index: libvirt-7.10.0/src/libxl/libxl_conf.c
|
Index: libvirt-8.0.0/src/libxl/libxl_conf.c
|
||||||
===================================================================
|
===================================================================
|
||||||
--- libvirt-7.10.0.orig/src/libxl/libxl_conf.c
|
--- libvirt-8.0.0.orig/src/libxl/libxl_conf.c
|
||||||
+++ libvirt-7.10.0/src/libxl/libxl_conf.c
|
+++ libvirt-8.0.0/src/libxl/libxl_conf.c
|
||||||
@@ -1797,7 +1797,7 @@ libxlDriverConfigNew(void)
|
@@ -1797,7 +1797,7 @@ libxlDriverConfigNew(void)
|
||||||
cfg->firmwares = g_new0(virFirmware *, 1);
|
cfg->firmwares = g_new0(virFirmware *, 1);
|
||||||
cfg->nfirmwares = 1;
|
cfg->nfirmwares = 1;
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
Index: libvirt-7.10.0/tools/virt-create-rootfs
|
Index: libvirt-8.0.0/tools/virt-create-rootfs
|
||||||
===================================================================
|
===================================================================
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ libvirt-7.10.0/tools/virt-create-rootfs
|
+++ libvirt-8.0.0/tools/virt-create-rootfs
|
||||||
@@ -0,0 +1,236 @@
|
@@ -0,0 +1,236 @@
|
||||||
+#!/bin/sh
|
+#!/bin/sh
|
||||||
+set -e
|
+set -e
|
||||||
@ -239,10 +239,10 @@ Index: libvirt-7.10.0/tools/virt-create-rootfs
|
|||||||
+ echo "pts/0" >> "$ROOT/etc/securetty"
|
+ echo "pts/0" >> "$ROOT/etc/securetty"
|
||||||
+ chroot "$ROOT" /usr/bin/passwd
|
+ chroot "$ROOT" /usr/bin/passwd
|
||||||
+fi
|
+fi
|
||||||
Index: libvirt-7.10.0/docs/manpages/virt-create-rootfs.rst
|
Index: libvirt-8.0.0/docs/manpages/virt-create-rootfs.rst
|
||||||
===================================================================
|
===================================================================
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ libvirt-7.10.0/docs/manpages/virt-create-rootfs.rst
|
+++ libvirt-8.0.0/docs/manpages/virt-create-rootfs.rst
|
||||||
@@ -0,0 +1,88 @@
|
@@ -0,0 +1,88 @@
|
||||||
+==================
|
+==================
|
||||||
+virt-create-rootfs
|
+virt-create-rootfs
|
||||||
@ -332,22 +332,22 @@ Index: libvirt-7.10.0/docs/manpages/virt-create-rootfs.rst
|
|||||||
+========
|
+========
|
||||||
+
|
+
|
||||||
+virsh(1), `https://libvirt.org/ <https://libvirt.org/>`_
|
+virsh(1), `https://libvirt.org/ <https://libvirt.org/>`_
|
||||||
Index: libvirt-7.10.0/docs/manpages/meson.build
|
Index: libvirt-8.0.0/docs/manpages/meson.build
|
||||||
===================================================================
|
===================================================================
|
||||||
--- libvirt-7.10.0.orig/docs/manpages/meson.build
|
--- libvirt-8.0.0.orig/docs/manpages/meson.build
|
||||||
+++ libvirt-7.10.0/docs/manpages/meson.build
|
+++ libvirt-8.0.0/docs/manpages/meson.build
|
||||||
@@ -19,6 +19,7 @@ docs_man_files = [
|
@@ -20,6 +20,7 @@ docs_man_files = [
|
||||||
{ 'name': 'virt-pki-validate', 'section': '1', 'install': true },
|
{ 'name': 'virt-pki-validate', 'section': '1', 'install': true },
|
||||||
{ 'name': 'virt-qemu-run', 'section': '1', 'install': conf.has('WITH_QEMU') },
|
{ 'name': 'virt-qemu-run', 'section': '1', 'install': conf.has('WITH_QEMU') },
|
||||||
{ 'name': 'virt-xml-validate', 'section': '1', 'install': true },
|
{ 'name': 'virt-xml-validate', 'section': '1', 'install': true },
|
||||||
+ { 'name': 'virt-create-rootfs', 'section': '1', 'install': true },
|
+ { 'name': 'virt-create-rootfs', 'section': '1', 'install': true },
|
||||||
|
|
||||||
|
{ 'name': 'libvirt-guests', 'section': '8', 'install': conf.has('WITH_LIBVIRTD') },
|
||||||
{ 'name': 'libvirtd', 'section': '8', 'install': conf.has('WITH_LIBVIRTD') },
|
{ 'name': 'libvirtd', 'section': '8', 'install': conf.has('WITH_LIBVIRTD') },
|
||||||
{ 'name': 'virt-sanlock-cleanup', 'section': '8', 'install': conf.has('WITH_SANLOCK') },
|
Index: libvirt-8.0.0/tools/meson.build
|
||||||
Index: libvirt-7.10.0/tools/meson.build
|
|
||||||
===================================================================
|
===================================================================
|
||||||
--- libvirt-7.10.0.orig/tools/meson.build
|
--- libvirt-8.0.0.orig/tools/meson.build
|
||||||
+++ libvirt-7.10.0/tools/meson.build
|
+++ libvirt-8.0.0/tools/meson.build
|
||||||
@@ -154,6 +154,8 @@ else
|
@@ -154,6 +154,8 @@ else
|
||||||
virsh_icon_res = []
|
virsh_icon_res = []
|
||||||
endif
|
endif
|
||||||
|
Loading…
Reference in New Issue
Block a user