* Thu Aug 6 2009 Mark McLoughlin <markmc@redhat.com> - 0.7.0-2
- Make sure qemu can access kernel/initrd (bug #516034) - Set perms on /var/lib/libvirt/boot to 0711 (bug #516034)
This commit is contained in:
parent
11e3b51c0d
commit
743adffffe
73
libvirt-0.7.0-chown-kernel-initrd-before-spawning-qemu.patch
Normal file
73
libvirt-0.7.0-chown-kernel-initrd-before-spawning-qemu.patch
Normal file
@ -0,0 +1,73 @@
|
|||||||
|
From: Mark McLoughlin <markmc@redhat.com>
|
||||||
|
Subject: [PATCH] chown kernel/initrd before spawning qemu
|
||||||
|
|
||||||
|
If we're running qemu unprivileged, we need to chown any supplied kernel
|
||||||
|
or initrd before spawning it.
|
||||||
|
|
||||||
|
* src/qemu_driver.c: rename qemuDomainSetDiskOwnership() to
|
||||||
|
qemuDomainSetFileOwnership(), pass it a path string instead of a disk
|
||||||
|
definition and use it for chowning the kernel/initrd in
|
||||||
|
qemuDomainSetAllDeviceOwnership()
|
||||||
|
---
|
||||||
|
src/qemu_driver.c | 20 ++++++++++++--------
|
||||||
|
1 files changed, 12 insertions(+), 8 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/src/qemu_driver.c b/src/qemu_driver.c
|
||||||
|
index 412b68d..bd58435 100644
|
||||||
|
--- a/src/qemu_driver.c
|
||||||
|
+++ b/src/qemu_driver.c
|
||||||
|
@@ -1684,18 +1684,18 @@ static int qemuDomainSetHostdevOwnership(virConnectPtr conn,
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
-static int qemuDomainSetDiskOwnership(virConnectPtr conn,
|
||||||
|
- virDomainDiskDefPtr def,
|
||||||
|
+static int qemuDomainSetFileOwnership(virConnectPtr conn,
|
||||||
|
+ const char *path,
|
||||||
|
uid_t uid, gid_t gid)
|
||||||
|
{
|
||||||
|
|
||||||
|
- if (!def->src)
|
||||||
|
+ if (!path)
|
||||||
|
return 0;
|
||||||
|
|
||||||
|
- VIR_DEBUG("Setting ownership on %s to %d:%d", def->src, uid, gid);
|
||||||
|
- if (chown(def->src, uid, gid) < 0) {
|
||||||
|
+ VIR_DEBUG("Setting ownership on %s to %d:%d", path, uid, gid);
|
||||||
|
+ if (chown(path, uid, gid) < 0) {
|
||||||
|
virReportSystemError(conn, errno, _("cannot set ownership on %s"),
|
||||||
|
- def->src);
|
||||||
|
+ path);
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
@@ -1725,7 +1725,7 @@ static int qemuDomainSetDeviceOwnership(virConnectPtr conn,
|
||||||
|
(def->data.disk->readonly || def->data.disk->shared))
|
||||||
|
return 0;
|
||||||
|
|
||||||
|
- return qemuDomainSetDiskOwnership(conn, def->data.disk, uid, gid);
|
||||||
|
+ return qemuDomainSetFileOwnership(conn, def->data.disk->src, uid, gid);
|
||||||
|
|
||||||
|
case VIR_DOMAIN_DEVICE_HOSTDEV:
|
||||||
|
return qemuDomainSetHostdevOwnership(conn, def->data.hostdev, uid, gid);
|
||||||
|
@@ -1753,12 +1753,16 @@ static int qemuDomainSetAllDeviceOwnership(virConnectPtr conn,
|
||||||
|
uid = restore ? 0 : driver->user;
|
||||||
|
gid = restore ? 0 : driver->group;
|
||||||
|
|
||||||
|
+ if (qemuDomainSetFileOwnership(conn, def->os.kernel, uid, gid) < 0 ||
|
||||||
|
+ qemuDomainSetFileOwnership(conn, def->os.initrd, uid, gid) < 0)
|
||||||
|
+ return -1;
|
||||||
|
+
|
||||||
|
for (i = 0 ; i < def->ndisks ; i++) {
|
||||||
|
if (restore &&
|
||||||
|
(def->disks[i]->readonly || def->disks[i]->shared))
|
||||||
|
continue;
|
||||||
|
|
||||||
|
- if (qemuDomainSetDiskOwnership(conn, def->disks[i], uid, gid) < 0)
|
||||||
|
+ if (qemuDomainSetFileOwnership(conn, def->disks[i]->src, uid, gid) < 0)
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
--
|
||||||
|
1.6.2.5
|
||||||
|
|
15
libvirt.spec
15
libvirt.spec
@ -78,11 +78,14 @@
|
|||||||
Summary: Library providing a simple API virtualization
|
Summary: Library providing a simple API virtualization
|
||||||
Name: libvirt
|
Name: libvirt
|
||||||
Version: 0.7.0
|
Version: 0.7.0
|
||||||
Release: 1%{?dist}%{?extra_release}
|
Release: 2%{?dist}%{?extra_release}
|
||||||
License: LGPLv2+
|
License: LGPLv2+
|
||||||
Group: Development/Libraries
|
Group: Development/Libraries
|
||||||
Source: libvirt-%{version}.tar.gz
|
Source: libvirt-%{version}.tar.gz
|
||||||
|
|
||||||
|
# Make sure qemu can access kernel/initrd (bug #516034)
|
||||||
|
Patch01: libvirt-0.7.0-chown-kernel-initrd-before-spawning-qemu.patch
|
||||||
|
|
||||||
# Temporary hack till PulseAudio autostart problems are sorted
|
# Temporary hack till PulseAudio autostart problems are sorted
|
||||||
# out when SELinux enforcing (bz 486112)
|
# out when SELinux enforcing (bz 486112)
|
||||||
Patch200: libvirt-0.6.4-svirt-sound.patch
|
Patch200: libvirt-0.6.4-svirt-sound.patch
|
||||||
@ -252,6 +255,8 @@ of recent versions of Linux (and other OSes).
|
|||||||
%prep
|
%prep
|
||||||
%setup -q
|
%setup -q
|
||||||
|
|
||||||
|
%patch01 -p1
|
||||||
|
|
||||||
%patch200 -p0
|
%patch200 -p0
|
||||||
|
|
||||||
%build
|
%build
|
||||||
@ -497,7 +502,7 @@ fi
|
|||||||
|
|
||||||
%dir %{_localstatedir}/lib/libvirt/
|
%dir %{_localstatedir}/lib/libvirt/
|
||||||
%dir %attr(0711, root, root) %{_localstatedir}/lib/libvirt/images/
|
%dir %attr(0711, root, root) %{_localstatedir}/lib/libvirt/images/
|
||||||
%dir %attr(0700, root, root) %{_localstatedir}/lib/libvirt/boot/
|
%dir %attr(0711, root, root) %{_localstatedir}/lib/libvirt/boot/
|
||||||
%dir %attr(0700, root, root) %{_localstatedir}/cache/libvirt/
|
%dir %attr(0700, root, root) %{_localstatedir}/cache/libvirt/
|
||||||
|
|
||||||
%if %{with_qemu}
|
%if %{with_qemu}
|
||||||
@ -612,7 +617,11 @@ fi
|
|||||||
%endif
|
%endif
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
* Wed Aug 5 2009 Daniel Veillard <veillard@redhat.com> - 0.7.0-1.fc12
|
* Thu Aug 6 2009 Mark McLoughlin <markmc@redhat.com> - 0.7.0-2
|
||||||
|
- Make sure qemu can access kernel/initrd (bug #516034)
|
||||||
|
- Set perms on /var/lib/libvirt/boot to 0711 (bug #516034)
|
||||||
|
|
||||||
|
* Wed Aug 5 2009 Daniel Veillard <veillard@redhat.com> - 0.7.0-1
|
||||||
- Upstream release of 0.7.0
|
- Upstream release of 0.7.0
|
||||||
- ESX, VBox3, Power Hypervisor drivers
|
- ESX, VBox3, Power Hypervisor drivers
|
||||||
- new net filesystem glusterfs
|
- new net filesystem glusterfs
|
||||||
|
Loading…
Reference in New Issue
Block a user