diff --git a/0001-libxl-add-support-for-BlockResize-API.patch b/0001-libxl-add-support-for-BlockResize-API.patch index 12b4079..5882b5d 100644 --- a/0001-libxl-add-support-for-BlockResize-API.patch +++ b/0001-libxl-add-support-for-BlockResize-API.patch @@ -119,7 +119,7 @@ Index: libvirt-7.10.0/src/libxl/libxl_driver.c static int libxlDomainGetJobInfo(virDomainPtr dom, virDomainJobInfoPtr info) -@@ -6552,6 +6641,7 @@ static virHypervisorDriver libxlHypervis +@@ -6575,6 +6664,7 @@ static virHypervisorDriver libxlHypervis .domainGetNumaParameters = libxlDomainGetNumaParameters, /* 1.1.1 */ .nodeGetFreeMemory = libxlNodeGetFreeMemory, /* 0.9.0 */ .nodeGetCellsFreeMemory = libxlNodeGetCellsFreeMemory, /* 1.1.1 */ diff --git a/0001-util-Don-t-spawn-pkttyagent-when-stdin-is-not-a-tty.patch b/0001-util-Don-t-spawn-pkttyagent-when-stdin-is-not-a-tty.patch new file mode 100644 index 0000000..49a3845 --- /dev/null +++ b/0001-util-Don-t-spawn-pkttyagent-when-stdin-is-not-a-tty.patch @@ -0,0 +1,34 @@ +From 306f15c98fb5626f35f876b1f3fa39dee37e5810 Mon Sep 17 00:00:00 2001 +From: Martin Kletzander +Date: Sat, 11 Dec 2021 14:23:11 +0100 +Subject: [PATCH] util: Don't spawn pkttyagent when stdin is not a tty + +My idea was that running pkttyagent unconditionally, modulo checks that +pkttyagent itself does to make sure it does not fail, is not going to be an +issue turned out to be wrong. Adding back the original check for stdin being a +tty helps in some testing scenarios as reported by Jim Fehlig and does not +really cause any issues. I originally wanted it in because it also made +pkttyagent auth work with redirected input into virsh (with a connection that +requires polkit authentication and without a session-wide polkit tty agent, +basically making pkttyagent necessary to succeed). But anyone running virsh +like that is asking for problems already anyway =) + +Signed-off-by: Martin Kletzander +--- + src/util/virpolkit.c | 3 +++ + 1 file changed, 3 insertions(+) + +Index: libvirt-7.10.0/src/util/virpolkit.c +=================================================================== +--- libvirt-7.10.0.orig/src/util/virpolkit.c ++++ libvirt-7.10.0/src/util/virpolkit.c +@@ -237,6 +237,9 @@ virPolkitAgentAvailable(void) + const char *termid = ctermid(NULL); + VIR_AUTOCLOSE fd = -1; + ++ if (!isatty(STDIN_FILENO)) ++ return false; ++ + if (!virFileIsExecutable(PKTTYAGENT)) + return false; + diff --git a/cbae4eaa-libxl-add-domainGetMessages.patch b/cbae4eaa-libxl-add-domainGetMessages.patch new file mode 100644 index 0000000..4cf1133 --- /dev/null +++ b/cbae4eaa-libxl-add-domainGetMessages.patch @@ -0,0 +1,62 @@ +commit cbae4eaa19dd97da8b4330af80cf1e1f7cb21931 +Author: Jim Fehlig +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 + Reviewed-by: Michal Privoznik + +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 */ + + }; + diff --git a/libvirt.changes b/libvirt.changes index 2f6b35a..6dedcdd 100644 --- a/libvirt.changes +++ b/libvirt.changes @@ -1,3 +1,17 @@ +------------------------------------------------------------------- +Tue Dec 14 16:36:15 UTC 2021 - James Fehlig + +- libxl: Implement domainGetMessages API + cbae4eaa-libxl-add-domainGetMessages.patch + bsc##1193623 + +------------------------------------------------------------------- +Mon Dec 13 15:15:35 UTC 2021 - James Fehlig + +- Don't spawn pkttyagent when stdin is not a tty + 0001-util-Don-t-spawn-pkttyagent-when-stdin-is-not-a-tty.patch + bsc#1193574 + ------------------------------------------------------------------- Thu Dec 2 22:36:06 UTC 2021 - James Fehlig diff --git a/libvirt.spec b/libvirt.spec index 11e24fe..fad51ae 100644 --- a/libvirt.spec +++ b/libvirt.spec @@ -292,9 +292,11 @@ Patch2: e4f7589a-libxl-shutdown-thread-name.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 Patch100: libxl-dom-reset.patch Patch101: network-don-t-use-dhcp-authoritative-on-static-netwo.patch +Patch102: 0001-util-Don-t-spawn-pkttyagent-when-stdin-is-not-a-tty.patch # Need to go upstream Patch150: libvirt-power8-models.patch Patch151: ppc64le-canonical-name.patch diff --git a/libxl-dom-reset.patch b/libxl-dom-reset.patch index 3b95ef0..2751ff7 100644 --- a/libxl-dom-reset.patch +++ b/libxl-dom-reset.patch @@ -76,7 +76,7 @@ Index: libvirt-7.10.0/src/libxl/libxl_driver.c libxlDomainDestroyFlags(virDomainPtr dom, unsigned int flags) { -@@ -6430,6 +6487,7 @@ static virHypervisorDriver libxlHypervis +@@ -6453,6 +6510,7 @@ static virHypervisorDriver libxlHypervis .domainShutdown = libxlDomainShutdown, /* 0.9.0 */ .domainShutdownFlags = libxlDomainShutdownFlags, /* 0.9.10 */ .domainReboot = libxlDomainReboot, /* 0.9.0 */