libvirt-6.8.0-1

Update to version 6.8.0
This commit is contained in:
Cole Robinson 2020-10-01 13:08:10 -04:00
parent b94fb6a393
commit 037cd36ba2
3 changed files with 10 additions and 91 deletions

View File

@ -1,79 +0,0 @@
From 8abd1ffed18394a6212c469cb2c7b6cc28a122d2 Mon Sep 17 00:00:00 2001
From: Michal Privoznik <mprivozn@redhat.com>
Date: Thu, 3 Sep 2020 18:07:43 +0200
Subject: [PATCH] qemu_namespace: Be tolerant to non-existent files when
populating /dev
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
In 6.7.0 release I've changed how domain namespace is built and
populated. Previously it used to be done from a pre-exec hook
(ran in the forked off child, just before dropping all privileges
and exec()-ing QEMU), which not only meant we had to have two
different code paths for creating a node in domain's namespace
(one for this pre-exec hook, the other for hotplug ran from the
daemon), it also proved problematic because it was leaking FDs
into QEMU process.
To mitigate this problem, we've not only ditched libdevmapper
from the NS population process, I've also dropped the pre-exec
code and let the NS be populated from the daemon (using the
hotplug code). But, I was not careful when doing so, because the
pre-exec code was tolerant to files that doesn't exist, while
this new code isn't. For instance, the very first thing that is
done when the new NS is created is it's populated with
@defaultDeviceACL which contain files like /dev/null, /dev/zero,
/dev/random and /dev/kvm (and others). While the rest will
probably exist every time, /dev/kvm might not and thus the new
code I wrote has to be tolerant to that.
Of course, users can override the @defaultDeviceACL (by setting
cgroup_device_acl in qemu.conf) and remove /dev/kvm (which is
acceptable workaround), but we definitely want libvirt to work
out of the box even on hosts without KVM.
Fixes: 9048dc4e627ddf33996084167bece7b5fb83b0bc
Reported-by: Daniel P. Berrangé <berrange@redhat.com>
Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
---
src/qemu/qemu_namespace.c | 12 +++++++++++-
1 file changed, 11 insertions(+), 1 deletion(-)
diff --git a/src/qemu/qemu_namespace.c b/src/qemu/qemu_namespace.c
index 454d6a7b4d..87f4fd8d58 100644
--- a/src/qemu/qemu_namespace.c
+++ b/src/qemu/qemu_namespace.c
@@ -1094,6 +1094,9 @@ qemuNamespaceMknodItemInit(qemuNamespaceMknodItemPtr item,
item->file = file;
if (g_lstat(file, &item->sb) < 0) {
+ if (errno == ENOENT)
+ return -2;
+
virReportSystemError(errno,
_("Unable to access %s"), file);
return -1;
@@ -1168,9 +1171,16 @@ qemuNamespacePrepareOneItem(qemuNamespaceMknodDataPtr data,
while (1) {
qemuNamespaceMknodItem item = { 0 };
+ int rc;
- if (qemuNamespaceMknodItemInit(&item, cfg, vm, next) < 0)
+ rc = qemuNamespaceMknodItemInit(&item, cfg, vm, next);
+ if (rc == -2) {
+ /* @file doesn't exist. We can break here. */
+ break;
+ } else if (rc < 0) {
+ /* Some other (critical) error. */
return -1;
+ }
if (STRPREFIX(next, QEMU_DEVPREFIX)) {
for (i = 0; i < ndevMountsPath; i++) {
--
2.26.2

View File

@ -32,7 +32,7 @@
%endif %endif
# On RHEL 7 and older macro _vpath_builddir is not defined. # On RHEL 7 and older macro _vpath_builddir is not defined.
%if 0%{?rhel} <= 7 %if 0%{?rhel} && 0%{?rhel} <= 7
%define _vpath_builddir %{_target_platform} %define _vpath_builddir %{_target_platform}
%endif %endif
@ -210,8 +210,8 @@
Summary: Library providing a simple virtualization API Summary: Library providing a simple virtualization API
Name: libvirt Name: libvirt
Version: 6.7.0 Version: 6.8.0
Release: 2%{?dist} Release: 1%{?dist}
License: LGPLv2+ License: LGPLv2+
URL: https://libvirt.org/ URL: https://libvirt.org/
@ -219,7 +219,6 @@ URL: https://libvirt.org/
%define mainturl stable_updates/ %define mainturl stable_updates/
%endif %endif
Source: https://libvirt.org/sources/%{?mainturl}libvirt-%{version}.tar.xz Source: https://libvirt.org/sources/%{?mainturl}libvirt-%{version}.tar.xz
Patch1: 0001-qemu_namespace-Be-tolerant-to-non-existent-files-whe.patch
Requires: libvirt-daemon = %{version}-%{release} Requires: libvirt-daemon = %{version}-%{release}
Requires: libvirt-daemon-config-network = %{version}-%{release} Requires: libvirt-daemon-config-network = %{version}-%{release}
@ -375,9 +374,6 @@ BuildRequires: util-linux
# For showmount in FS driver (netfs discovery) # For showmount in FS driver (netfs discovery)
BuildRequires: nfs-utils BuildRequires: nfs-utils
# Communication with the firewall and polkit daemons use DBus
BuildRequires: dbus-devel
# Fedora build root suckage # Fedora build root suckage
BuildRequires: gawk BuildRequires: gawk
@ -892,7 +888,6 @@ capabilities of VirtualBox
%package client %package client
Summary: Client side utilities of the libvirt library Summary: Client side utilities of the libvirt library
Requires: %{name}-libs = %{version}-%{release} Requires: %{name}-libs = %{version}-%{release}
Requires: readline
# Needed by /usr/libexec/libvirt-guests.sh script. # Needed by /usr/libexec/libvirt-guests.sh script.
Requires: gettext Requires: gettext
# Needed by virt-pki-validate script. # Needed by virt-pki-validate script.
@ -919,7 +914,6 @@ Shared libraries for accessing the libvirt daemon.
%package admin %package admin
Summary: Set of tools to control libvirt daemon Summary: Set of tools to control libvirt daemon
Requires: %{name}-libs = %{version}-%{release} Requires: %{name}-libs = %{version}-%{release}
Requires: readline
%if %{with_bash_completion} %if %{with_bash_completion}
Requires: %{name}-bash-completion = %{version}-%{release} Requires: %{name}-bash-completion = %{version}-%{release}
%endif %endif
@ -1169,7 +1163,6 @@ export SOURCE_DATE_EPOCH=$(stat --printf='%Y' %{_specdir}/%{name}.spec)
%{?arg_selinux_mount} \ %{?arg_selinux_mount} \
-Dapparmor=disabled \ -Dapparmor=disabled \
-Dsecdriver_apparmor=disabled \ -Dsecdriver_apparmor=disabled \
-Dhal=disabled \
-Dudev=enabled \ -Dudev=enabled \
-Dyajl=enabled \ -Dyajl=enabled \
%{?arg_sanlock} \ %{?arg_sanlock} \
@ -1486,7 +1479,7 @@ exit 0
%files %files
%files docs %files docs
%doc AUTHORS NEWS.rst README.rst %doc AUTHORS.rst NEWS.rst README.rst
%doc libvirt-docs/* %doc libvirt-docs/*
%files daemon %files daemon
@ -1560,6 +1553,8 @@ exit 0
%attr(0755, root, root) %{_libexecdir}/libvirt_iohelper %attr(0755, root, root) %{_libexecdir}/libvirt_iohelper
%attr(0755, root, root) %{_bindir}/virt-ssh-helper
%attr(0755, root, root) %{_sbindir}/libvirtd %attr(0755, root, root) %{_sbindir}/libvirtd
%attr(0755, root, root) %{_sbindir}/virtproxyd %attr(0755, root, root) %{_sbindir}/virtproxyd
%attr(0755, root, root) %{_sbindir}/virtlogd %attr(0755, root, root) %{_sbindir}/virtlogd
@ -1965,6 +1960,9 @@ exit 0
%changelog %changelog
* Thu Oct 01 2020 Cole Robinson <crobinso@redhat.com> - 6.8.0-1
- Update to version 6.8.0
* Fri Sep 4 2020 Daniel P. Berrangé <berrange@redhat.com> - 6.7.0-2 * Fri Sep 4 2020 Daniel P. Berrangé <berrange@redhat.com> - 6.7.0-2
- Fix QEMU start when KVM is not loaded (rhbz#1875327) - Fix QEMU start when KVM is not loaded (rhbz#1875327)

View File

@ -1 +1 @@
SHA512 (libvirt-6.7.0.tar.xz) = cabfb6aa65a3a1412b0111654ad3a7d0a6dfc63399a892c540ca39ab4e56f87626a067037e4480bb55418a371d2b5e9ac74862c92a3cdea69822ec3d158d769f SHA512 (libvirt-6.8.0.tar.xz) = 9b69f3dcceb5e40470a78908654faf51b643f6793e556f3115daa4bfe08743af290882dd51f15eb27c38d589eb210d495de7c44a40b363420ab4f4d3a6393cc9