SHA256
1
0
forked from pool/libvirt

Updating link to change in openSUSE:Factory/libvirt revision 47.0

OBS-URL: https://build.opensuse.org/package/show/Virtualization/libvirt?expand=0&rev=9730892990ebb1adac0309ca98451aa5
This commit is contained in:
OBS User buildservice-autocommit 2010-01-08 00:37:05 +00:00 committed by Git OBS Bridge
parent 6f0cda5d80
commit f6a13ec8dd
14 changed files with 714 additions and 321 deletions

View File

@ -1,8 +1,8 @@
Index: libvirt-0.7.4/src/xen/xend_internal.c Index: libvirt-0.7.5/src/xen/xend_internal.c
=================================================================== ===================================================================
--- libvirt-0.7.4.orig/src/xen/xend_internal.c --- libvirt-0.7.5.orig/src/xen/xend_internal.c
+++ libvirt-0.7.4/src/xen/xend_internal.c +++ libvirt-0.7.5/src/xen/xend_internal.c
@@ -4109,13 +4109,12 @@ xenDaemonAttachDevice(virDomainPtr domai @@ -4123,13 +4123,12 @@ xenDaemonAttachDevice(virDomainPtr domai
priv = (xenUnifiedPrivatePtr) domain->conn->privateData; priv = (xenUnifiedPrivatePtr) domain->conn->privateData;
@ -21,7 +21,7 @@ Index: libvirt-0.7.4/src/xen/xend_internal.c
if (!(def = xenDaemonDomainFetch(domain->conn, if (!(def = xenDaemonDomainFetch(domain->conn,
domain->id, domain->id,
domain->name, domain->name,
@@ -4213,12 +4212,11 @@ xenDaemonDetachDevice(virDomainPtr domai @@ -4229,12 +4228,11 @@ xenDaemonDetachDevice(virDomainPtr domai
priv = (xenUnifiedPrivatePtr) domain->conn->privateData; priv = (xenUnifiedPrivatePtr) domain->conn->privateData;
@ -38,11 +38,11 @@ Index: libvirt-0.7.4/src/xen/xend_internal.c
if (!(def = xenDaemonDomainFetch(domain->conn, if (!(def = xenDaemonDomainFetch(domain->conn,
domain->id, domain->id,
Index: libvirt-0.7.4/src/libvirt.c Index: libvirt-0.7.5/src/libvirt.c
=================================================================== ===================================================================
--- libvirt-0.7.4.orig/src/libvirt.c --- libvirt-0.7.5.orig/src/libvirt.c
+++ libvirt-0.7.4/src/libvirt.c +++ libvirt-0.7.5/src/libvirt.c
@@ -4919,7 +4919,8 @@ error: @@ -5066,7 +5066,8 @@ error:
* @domain: pointer to domain object * @domain: pointer to domain object
* @xml: pointer to XML description of one device * @xml: pointer to XML description of one device
* *
@ -52,7 +52,7 @@ Index: libvirt-0.7.4/src/libvirt.c
* *
* Returns 0 in case of success, -1 in case of failure. * Returns 0 in case of success, -1 in case of failure.
*/ */
@@ -4962,7 +4963,8 @@ error: @@ -5109,7 +5110,8 @@ error:
* @domain: pointer to domain object * @domain: pointer to domain object
* @xml: pointer to XML description of one device * @xml: pointer to XML description of one device
* *

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:6316a53b4cfaf184e795c7be69a371c5dc90a8a6dd6cd05c4208a1314aac10d4
size 5692288

3
libvirt-0.7.5.tar.bz2 Normal file
View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:0763b11fc054a82d47cce8566173e589e08f34cd7adab46c9c3de80b6eacc4c7
size 5997827

View File

@ -1,3 +1,31 @@
-------------------------------------------------------------------
Wed Jan 6 18:02:00 MST 2010 - jfehlig@novell.com
- Fix freeing of uninitialized pointer when using HAL in
node device driver
node-dev-free.patch
-------------------------------------------------------------------
Mon Jan 4 14:14:41 MST 2010 - jfehlig@novell.com
- Require virt-utils package for common tools such as qemu-img
-------------------------------------------------------------------
Tue Dec 29 10:26:55 MST 2009 - jfehlig@novell.com
- Updated to version 0.7.5
- Add new API virDomainMemoryStats to header and drivers
- Public API and domain extension for CPU flags
- expose SR IOV physical/virtual function relationships
- Support for JSON mode monitor [deactivated]
- Support for interface model='netfront'
- vbox: Add support for version 3.1
- Support QEMU's virtual FAT block device driver
- lots of improvements and bug fixes
- Fix libvirt xen hypervisor driver to work with domctl interface
version 6
xen-shr-pages.patch
------------------------------------------------------------------- -------------------------------------------------------------------
Mon Dec 7 14:51:36 MST 2009 - jfehlig@novell.com Mon Dec 7 14:51:36 MST 2009 - jfehlig@novell.com

View File

@ -1,7 +1,7 @@
# #
# spec file for package libvirt (Version 0.7.4) # spec file for package libvirt (Version 0.7.5)
# #
# Copyright (c) 2009 SUSE LINUX Products GmbH, Nuernberg, Germany. # Copyright (c) 2010 SUSE LINUX Products GmbH, Nuernberg, Germany.
# #
# 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
@ -18,24 +18,71 @@
# norootforbuild # norootforbuild
%define with_xen 1 %define with_xen 1
%define with_lxc 0 %define with_qemu 1
%define with_selinux 0 %define with_lxc 1
%define with_openvz 1
%define with_vbox 1
%define with_uml 0
%define with_one 0
# hypervisor drivers that use a native remote protocol
%define with_phyp 0 %define with_phyp 0
%define with_esx 0
# host drivers
%define with_network 1
%define with_storage_fs 1
%define with_storage_lvm 1
%define with_storage_iscsi 1
%define with_storage_disk 1
%define with_storage_mpath 1
%define with_numactl 1
%define with_selinux 1
%define with_apparmor 0
# options
%define with_capng 0
%define with_netcf 0
%define with_udev 0
%define with_hal 0
%define with_yajl 0
# Xen is available only on i386 x86_64 # Xen is available only on i386 x86_64
%ifnarch %ix86 x86_64 %ifnarch %ix86 x86_64
%define with_xen 0 %define with_xen 0
%endif %endif
%if 0%{?suse_version} > 1100 # LXC and selinux are not available on anything < openSUSE 11.1
%define with_lxc 1 %if 0%{?suse_version} < 1110
%define with_selinux 1 %define with_lxc 0
%define with_selinux 0
%endif %endif
# Build phyp backend for IBM Power systems # Enable phyp driver for IBM Power systems
%ifarch ppc64 %ifarch ppc64
%define with_phyp 1 %define with_phyp 1
%endif %endif
# numactl only on x86_64 and ia64
%ifnarch x86_64 ia64
%define with_numactl 0
%endif
# SLES doesn't contain OpenVZ, VBox, UML, OpenNebula, or ESX
%if 0%{?sles_version}
%define with_openvz 0
%define with_vbox 0
%define with_uml 0
%define with_one 0
%define with_esx 0
%endif
%if 0%{?suse_version} > 1110
%define with_udev 1
%else
%define with_hal 1
%endif
Name: libvirt Name: libvirt
BuildRequires: bridge-utils cyrus-sasl-devel device-mapper-devel fdupes gettext gnutls-devel hal-devel iptables-devel libxml2-devel lvm2 ncurses-devel parted-devel pkg-config python-devel python-xml readline-devel util-linux xhtml-dtd BuildRequires: bridge-utils cyrus-sasl-devel device-mapper-devel fdupes gettext gnutls-devel iptables-devel libxml2-devel lvm2 ncurses-devel parted-devel pkg-config python-devel python-xml readline-devel util-linux xhtml-dtd
%if %{with_hal}
BuildRequires: hal-devel
%endif
%if %{with_udev}
BuildRequires: libudev-devel >= 145
BuildRequires: libpciaccess0-devel >= 0.10.9
%endif
%if %{with_xen} %if %{with_xen}
BuildRequires: xen-devel BuildRequires: xen-devel
%endif %endif
@ -47,7 +94,7 @@ BuildRequires: avahi-devel
%if %{with_selinux} %if %{with_selinux}
BuildRequires: libselinux-devel BuildRequires: libselinux-devel
%endif %endif
%ifarch x86_64 ia64 %if %{with_numactl}
BuildRequires: libnuma-devel BuildRequires: libnuma-devel
%endif %endif
%if 0%{?suse_version} > 1110 %if 0%{?suse_version} > 1110
@ -64,25 +111,24 @@ Url: http://libvirt.org/
License: LGPLv2.1+ License: LGPLv2.1+
Group: Development/Libraries/C and C++ Group: Development/Libraries/C and C++
AutoReqProv: yes AutoReqProv: yes
Version: 0.7.4 Version: 0.7.5
Release: 1 Release: 1
Summary: A C toolkit to interract with the virtualization capabilities of Linux Summary: A C toolkit to interract with the virtualization capabilities of Linux
Requires: readline # The client side, i.e. shared libs and virsh are in a subpackage
Requires: ncurses Requires: libvirt-client = %{version}-%{release}
Requires: bridge-utils Requires: bridge-utils
Requires: iptables Requires: iptables
Requires: cyrus-sasl
Requires: lvm2 Requires: lvm2
Requires: parted Requires: parted
#Requires: /usr/bin/qemu-img Requires: virt-utils
Recommends: cyrus-sasl-digestmd5
Recommends: logrotate Recommends: logrotate
Requires: dnsmasq Requires: dnsmasq
Requires: PolicyKit >= 0.6 Requires: PolicyKit >= 0.6
Requires: socat
Requires: open-iscsi Requires: open-iscsi
Requires: nfs-client Requires: nfs-client
%if %{with_hal}
Requires: hal Requires: hal
%endif
%if 0%{?suse_version} > 1110 %if 0%{?suse_version} > 1110
Requires: polkit >= 0.9 Requires: polkit >= 0.9
%else %else
@ -91,9 +137,9 @@ Requires: PolicyKit >= 0.6
Source0: %{name}-%{version}.tar.bz2 Source0: %{name}-%{version}.tar.bz2
Source1: libvirtd.init Source1: libvirtd.init
# Upstream patches # Upstream patches
Patch0: xen-list-defined.patch Patch0: detach-disk.patch
Patch1: detach-disk.patch Patch1: xen-shr-pages.patch
Patch2: xend-description-tag.patch Patch2: node-dev-free.patch
# Need to go upstream # Need to go upstream
Patch100: socat.patch Patch100: socat.patch
Patch101: clone.patch Patch101: clone.patch
@ -106,13 +152,37 @@ Patch202: snapshots.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-build BuildRoot: %{_tmppath}/%{name}-%{version}-build
%description %description
Libvirt is a C toolkit to interract with the virtualization Libvirt is a C toolkit to interact with the virtualization
capabilities Linux. Virtualization of the Linux Operating System means capabilities of Linux. Virtualization of the Linux Operating System means
the ability to run multiple instances of Operating Systems concurently the ability to run multiple instances of Operating Systems concurrently
on a single hardware system where the basic resources are driven by a on a single hardware system where the basic resources are driven by a
Linux instance. The library aims to provide long term stable C API Linux instance. The library aims to provide long term stable C API
initially for the Xen paravirtualization but should be able to to interact with Linux virtualization technologies.
integrate other virtualization mechanisms if needed.
Authors:
--------
Daniel Veillard <veillard@redhat.com>
Karel Zak <kzak@redhat.com>
%package client
License: LGPLv2.1+
Summary: Client side library and utilities of the libvirt library
Group: Development/Libraries/C and C++
Requires: readline
Requires: ncurses
# So remote clients can access libvirt over SSH tunnel
# (client invokes 'socat' against the UNIX socket on the server)
Requires: socat
Requires: cyrus-sasl
Recommends: cyrus-sasl-digestmd5
%description client
Libvirt is a C toolkit to interract with the virtualization
capabilities of Linux. The libvirt-client package contains shared
libraries and client binaries needed to access the virtualization
capabilities of recent versions of Linux (and other OSes).
@ -128,17 +198,13 @@ Group: Development/Libraries/C and C++
Requires: %{name} = %{version} libxml2-devel Requires: %{name} = %{version} libxml2-devel
%if %{with_xen} %if %{with_xen}
Requires: xen-devel Requires: xen-devel
Requires: pkg-config
%endif %endif
Requires: pkg-config
%description devel %description devel
Libvirt is a C toolkit to interract with the virtualization Libvirt is a C toolkit to interract with the virtualization
capabilities Linux. Virtualization of the Linux Operating System means capabilities of Linux. The libvirt-devel package contains headers
the ability to run multiple instances of Operating Systems concurently and libraries needed for developing libvirt applications.
on a single hardware system where the basic resources are driven by a
Linux instance. The library aims to provide long term stable C API
initially for the Xen paravirtualization but should be able to
integrate other virtualization mechanisms if needed.
@ -155,12 +221,8 @@ Requires: %{name} = %{version}
%description doc %description doc
Libvirt is a C toolkit to interract with the virtualization Libvirt is a C toolkit to interract with the virtualization
capabilities Linux. Virtualization of the Linux Operating System means capabilities of Linux. The libvirt-doc packages contains documentation
the ability to run multiple instances of Operating Systems concurently for the libvirt API and tools.
on a single hardware system where the basic resources are driven by a
Linux instance. The library aims to provide long term stable C API
initially for the Xen paravirtualization but should be able to
integrate other virtualization mechanisms if needed.
@ -178,12 +240,8 @@ Requires: %{name} = %{version}
%description python %description python
Libvirt is a C toolkit to interract with the virtualization Libvirt is a C toolkit to interract with the virtualization
capabilities Linux. Virtualization of the Linux Operating System means capabilities of Linux. The libvirt-python package provides python
the ability to run multiple instances of Operating Systems concurently bindings for the libvirt C API.
on a single hardware system where the basic resources are driven by a
Linux instance. The library aims to provide long term stable C API
initially for the Xen paravirtualization but should be able to
integrate other virtualization mechanisms if needed.
@ -209,24 +267,80 @@ Authors:
%if ! %{with_xen} %if ! %{with_xen}
%define _without_xen --without-xen %define _without_xen --without-xen
%endif %endif
%if ! %{with_qemu}
%define _without_qemu --without-qemu
%endif
%if ! %{with_lxc} %if ! %{with_lxc}
%define _without_lxc --without-lxc %define _without_lxc --without-lxc
%endif %endif
%if %{with_selinux} %if ! %{with_openvz}
%define _with_selinux --with-selinux %define _without_openvz --without-openvz
%endif
%if ! %{with_vbox}
%define _without_vbox --without-vbox
%endif
%if ! %{with_uml}
%define _without_uml --without-uml
%endif
%if ! %{with_one}
%define _without_one --without-one
%endif
%if ! %{with_phyp}
%define _without_phyp --without-phyp
%endif
%if ! %{with_esx}
%define _without_esx --without-esx
%endif
%if ! %{with_numactl}
%define _without_numactl --without-numactl
%endif
%if ! %{with_selinux}
%define _without_selinux --without-selinux
%endif
%if ! %{with_apparmor}
%define _without_apparmor --without-apparmor
%endif
%if ! %{with_capng}
%define _without_capng --without-capng
%endif
%if ! %{with_netcf}
%define _without_netcf --without-netcf
%endif
%if ! %{with_hal}
%define _without_hal --without-hal
%endif
%if ! %{with_udev}
%define _without_udev --without-udev
%endif
%if ! %{with_yajl}
%define _without_yajl --without-yajl
%endif %endif
autoreconf -f -i autoreconf -f -i
export CFLAGS="$RPM_OPT_FLAGS" export CFLAGS="$RPM_OPT_FLAGS"
%configure --disable-static --with-pic \ %configure --disable-static --with-pic \
%{?_without_xen} \ %{?_without_xen} \
%{?_without_qemu} \
%{?_without_lxc} \ %{?_without_lxc} \
%{?_without_openvz} \
%{?_without_vbox} \
%{?_without_uml} \
%{?_without_one} \
%{?_without_phyp} \
%{?_without_esx} \
%{?_without_numactl} \
%{?_with_selinux} \ %{?_with_selinux} \
%{?_without_capng} \
%{?_without_netcf} \
%{?_without_selinux} \
%{?_without_apparmor} \
%{?_without_hal} \
%{?_without_udev} \
%{?_without_yajl} \
--without-xen-proxy \
--libexecdir=%{_libdir}/%{name} \ --libexecdir=%{_libdir}/%{name} \
--with-init-script=none \ --with-init-script=none \
--with-remote-pid-file=%{_localstatedir}/run/libvirtd.pid \ --with-remote-pid-file=%{_localstatedir}/run/libvirtd.pid \
--with-xen-proxy=no \
ac_cv_path_DNSMASQ=/usr/sbin/dnsmasq \ ac_cv_path_DNSMASQ=/usr/sbin/dnsmasq \
ac_cv_path_QEMU_IMG=/usr/bin/qemu-img-xen \
ac_cv_path_ISCSIADM=/sbin/iscsiadm \ ac_cv_path_ISCSIADM=/sbin/iscsiadm \
ac_cv_path_MODPROBE=/sbin/modprobe \ ac_cv_path_MODPROBE=/sbin/modprobe \
ac_cv_path_UDEVADM=/sbin/udevadm \ ac_cv_path_UDEVADM=/sbin/udevadm \
@ -244,6 +358,14 @@ rm -f $RPM_BUILD_ROOT%{_sysconfdir}/libvirt/qemu/networks/autostart/default.xml
mkdir -p $RPM_BUILD_ROOT/%{_localstatedir}/run/libvirt mkdir -p $RPM_BUILD_ROOT/%{_localstatedir}/run/libvirt
mkdir -p $RPM_BUILD_ROOT/%{_localstatedir}/lib/libvirt mkdir -p $RPM_BUILD_ROOT/%{_localstatedir}/lib/libvirt
rm $RPM_BUILD_ROOT%{_libdir}/*.*a $RPM_BUILD_ROOT%{py_sitedir}/*.*a rm $RPM_BUILD_ROOT%{_libdir}/*.*a $RPM_BUILD_ROOT%{py_sitedir}/*.*a
%if ! %{with_lxc}
rm -rf $RPM_BUILD_ROOT%{_sysconfdir}/libvirt/lxc.conf
rm -f $RPM_BUILD_ROOT%{_datadir}/augeas/lenses/libvirtd_lxc.aug
%endif
%if ! %{with_qemu}
rm -rf $RPM_BUILD_ROOT%{_sysconfdir}/libvirt/qemu.conf
rm -f $RPM_BUILD_ROOT%{_datadir}/augeas/lenses/libvirtd_qemu.aug
%endif
ln_dupes() ln_dupes()
{ {
target="" target=""
@ -269,7 +391,11 @@ ln -s /etc/init.d/libvirtd $RPM_BUILD_ROOT/usr/sbin/rclibvirtd
%clean %clean
rm -rf $RPM_BUILD_ROOT rm -rf $RPM_BUILD_ROOT
%post -p /sbin/ldconfig %post
/sbin/ldconfig
%if 0%{?sles_version}
%{fillup_and_insserv -f -y libvirtd}
%endif
%preun %preun
%stop_on_removal libvirtd %stop_on_removal libvirtd
@ -279,49 +405,84 @@ rm -rf $RPM_BUILD_ROOT
%restart_on_update libvirtd %restart_on_update libvirtd
%insserv_cleanup %insserv_cleanup
%files -f %{name}.lang %post client -p /sbin/ldconfig
%postun client -p /sbin/ldconfig
%files
%defattr(-, root, root) %defattr(-, root, root)
%{_bindir}/virsh
%{_bindir}/virt-xml-validate
%{_bindir}/virt-pki-validate
%{_sbindir}/libvirtd %{_sbindir}/libvirtd
%dir %{_libdir}/%{name}
%dir %attr(0700, root, root) %{_sysconfdir}/libvirt/
%dir %attr(0700, root, root) %{_sysconfdir}/libvirt/qemu/
%dir %attr(0700, root, root) %{_sysconfdir}/libvirt/qemu/networks/
%dir %attr(0700, root, root) %{_sysconfdir}/libvirt/qemu/networks/autostart
%config /etc/init.d/libvirtd
%{_sbindir}/rclibvirtd
%config %{_sysconfdir}/libvirt/libvirtd.conf
%config %{_sysconfdir}/logrotate.d/libvirtd
%config %{_sysconfdir}/libvirt/qemu/networks/default.xml
%dir %attr(0700, root, root) %{_localstatedir}/lib/libvirt/network/
%dir %{_localstatedir}/run/libvirt/
%dir %{_localstatedir}/lib/libvirt/
%dir %attr(0700, root, root) %{_localstatedir}/lib/libvirt/images/
%dir %attr(0700, root, root) %{_localstatedir}/lib/libvirt/boot/
%dir %attr(0700, root, root) %{_localstatedir}/cache/libvirt/
%dir %attr(0700, root, root) %{_localstatedir}/log/libvirt/
%if 0%{?suse_version} > 1110
%{_datadir}/polkit-1/actions/org.libvirt.unix.policy
%else
%{_datadir}/PolicyKit/policy/org.libvirt.unix.policy
%endif
%{_datadir}/augeas
%if %{with_qemu}
%config %{_sysconfdir}/libvirt/qemu.conf
%dir %attr(0700, root, root) %{_localstatedir}/run/libvirt/qemu/
%dir %attr(0700, root, root) %{_localstatedir}/lib/libvirt/qemu/
%dir %attr(0700, root, root) %{_localstatedir}/cache/libvirt/qemu/
%dir %attr(0700, root, root) %{_localstatedir}/log/libvirt/qemu/
%endif
%if %{with_lxc}
%config %{_sysconfdir}/libvirt/lxc.conf
%dir %attr(0700, root, root) %{_localstatedir}/run/libvirt/lxc/
%dir %attr(0700, root, root) %{_localstatedir}/lib/libvirt/lxc/
%dir %attr(0700, root, root) %{_localstatedir}/log/libvirt/lxc/
%attr(0755, root, root) %{_libdir}/%{name}/libvirt_lxc
%endif
%if %{with_uml}
%dir %attr(0700, root, root) %{_localstatedir}/run/libvirt/uml/
%dir %attr(0700, root, root) %{_localstatedir}/lib/libvirt/uml/
%dir %attr(0700, root, root) %{_localstatedir}/log/libvirt/uml/
%endif
%if 0%{with_storage_disk}
%{_libdir}/%{name}/libvirt_parthelper
%endif
%files client -f %{name}.lang
%defattr(-, root, root)
%doc %dir %{_docdir}/%{name} %doc %dir %{_docdir}/%{name}
%doc %{_docdir}/%{name}/[CNRT]* %doc %{_docdir}/%{name}/[CNRT]*
%doc %{_docdir}/%{name}/AUTHORS %doc %{_docdir}/%{name}/AUTHORS
%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-validate.1* %doc %{_mandir}/man1/virt-pki-validate.1*
%{_libdir}/*.so.* %{_bindir}/virsh
%dir %{_libdir}/%{name} %{_bindir}/virt-xml-validate
%if 0%{?suse_version} > 1030 %{_bindir}/virt-pki-validate
%{_libdir}/%{name}/libvirt_parthelper %{_libdir}/lib*.so.*
%endif %dir %{_datadir}/libvirt/
%if %{with_lxc} %dir %{_datadir}/libvirt/schemas/
%attr(0755, root, root) %{_libdir}/%{name}/libvirt_lxc %{_datadir}/libvirt/schemas/domain.rng
%endif %{_datadir}/libvirt/schemas/network.rng
%dir %attr(0700, root, root) %{_sysconfdir}/libvirt/ %{_datadir}/libvirt/schemas/storagepool.rng
%dir %attr(0700, root, root) %{_sysconfdir}/libvirt/qemu/ %{_datadir}/libvirt/schemas/storagevol.rng
%dir %attr(0700, root, root) %{_sysconfdir}/libvirt/qemu/networks/ %{_datadir}/libvirt/schemas/nodedev.rng
%dir %attr(0700, root, root) %{_sysconfdir}/libvirt/qemu/networks/autostart %{_datadir}/libvirt/schemas/capability.rng
%if %{with_lxc} %{_datadir}/libvirt/schemas/interface.rng
%config %{_sysconfdir}/libvirt/lxc.conf %{_datadir}/libvirt/schemas/secret.rng
%endif %{_datadir}/libvirt/schemas/storageencryption.rng
%config %{_sysconfdir}/libvirt/qemu/networks/default.xml %{_datadir}/libvirt/cpu_map.xml
%config %{_sysconfdir}/logrotate.d/libvirtd
%dir /%{_localstatedir}/run/libvirt/
%dir /%{_localstatedir}/lib/libvirt/
%config /etc/init.d/libvirtd
%{_sbindir}/rclibvirtd
%config %{_sysconfdir}/libvirt/libvirtd.conf
%config %{_sysconfdir}/libvirt/qemu.conf
%config %{_sysconfdir}/sasl2/libvirt.conf %config %{_sysconfdir}/sasl2/libvirt.conf
%if 0%{?suse_version} > 1110
%{_datadir}/polkit-1/actions/org.libvirt.unix.policy
%else
%{_datadir}/PolicyKit/policy/org.libvirt.unix.policy
%endif
%{_datadir}/libvirt
%{_datadir}/augeas
%files devel %files devel
%defattr(-, root, root) %defattr(-, root, root)
@ -341,6 +502,5 @@ rm -rf $RPM_BUILD_ROOT
%doc %{_docdir}/%{name}-python %doc %{_docdir}/%{name}-python
%{py_sitedir}/libvirt.py* %{py_sitedir}/libvirt.py*
%{py_sitedir}/libvirtmod* %{py_sitedir}/libvirtmod*
#%attr(0755, root, root) %{_libdir}/%{name}/virt-aa-helper
%changelog %changelog

View File

@ -1,7 +1,7 @@
Index: libvirt-0.7.2/daemon/libvirtd.conf Index: libvirt-0.7.5/daemon/libvirtd.conf
=================================================================== ===================================================================
--- libvirt-0.7.2.orig/daemon/libvirtd.conf --- libvirt-0.7.5.orig/daemon/libvirtd.conf
+++ libvirt-0.7.2/daemon/libvirtd.conf +++ libvirt-0.7.5/daemon/libvirtd.conf
@@ -18,8 +18,8 @@ @@ -18,8 +18,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.
@ -28,11 +28,11 @@ Index: libvirt-0.7.2/daemon/libvirtd.conf
# Override the default mDNS advertizement name. This must be # Override the default mDNS advertizement name. This must be
# unique on the immediate broadcast network. # unique on the immediate broadcast network.
Index: libvirt-0.7.2/daemon/libvirtd.c Index: libvirt-0.7.5/daemon/libvirtd.c
=================================================================== ===================================================================
--- libvirt-0.7.2.orig/daemon/libvirtd.c --- libvirt-0.7.5.orig/daemon/libvirtd.c
+++ libvirt-0.7.2/daemon/libvirtd.c +++ libvirt-0.7.5/daemon/libvirtd.c
@@ -135,7 +135,7 @@ static int sigwrite = -1; /* Signa @@ -137,7 +137,7 @@ static int sigwrite = -1; /* Signa
static int ipsock = 0; /* -l Listen for TCP/IP */ static int ipsock = 0; /* -l Listen for TCP/IP */
/* Defaults for configuration file elements */ /* Defaults for configuration file elements */
@ -41,7 +41,7 @@ Index: libvirt-0.7.2/daemon/libvirtd.c
static int listen_tcp = 0; static int listen_tcp = 0;
static char *listen_addr = (char *) LIBVIRTD_LISTEN_ADDR; static char *listen_addr = (char *) LIBVIRTD_LISTEN_ADDR;
static char *tls_port = (char *) LIBVIRTD_TLS_PORT; static char *tls_port = (char *) LIBVIRTD_TLS_PORT;
@@ -157,7 +157,7 @@ static int auth_tcp = REMOTE_AUTH_NONE; @@ -159,7 +159,7 @@ static int auth_tcp = REMOTE_AUTH_NONE;
#endif #endif
static int auth_tls = REMOTE_AUTH_NONE; static int auth_tls = REMOTE_AUTH_NONE;

View File

@ -1,8 +1,8 @@
Index: libvirt-0.7.4/src/xen/xend_internal.c Index: libvirt-0.7.5/src/xen/xend_internal.c
=================================================================== ===================================================================
--- libvirt-0.7.4.orig/src/xen/xend_internal.c --- libvirt-0.7.5.orig/src/xen/xend_internal.c
+++ libvirt-0.7.4/src/xen/xend_internal.c +++ libvirt-0.7.5/src/xen/xend_internal.c
@@ -4517,6 +4517,8 @@ xenDaemonDomainMigratePerform (virDomain @@ -4559,6 +4559,8 @@ xenDaemonDomainMigratePerform (virDomain
"node", "-1", "node", "-1",
"ssl", "0", "ssl", "0",
"resource", "0", /* required, xend ignores it */ "resource", "0", /* required, xend ignores it */

29
node-dev-free.patch Normal file
View File

@ -0,0 +1,29 @@
This invalid free results in heap corruption. Some symptoms I saw
because of this were libvirtd crashing and virt-manager hanging
while trying to enumerate devices.
---
src/node_device/node_device_driver.c | 4 ++--
1 files changed, 2 insertions(+), 2 deletions(-)
Index: libvirt-0.7.5/src/node_device/node_device_driver.c
===================================================================
--- libvirt-0.7.5.orig/src/node_device/node_device_driver.c
+++ libvirt-0.7.5/src/node_device/node_device_driver.c
@@ -78,7 +78,7 @@ static int update_driver_name(virConnect
virNodeDeviceObjPtr dev)
{
char *driver_link = NULL;
- char *devpath;
+ char *devpath = NULL;
char *p;
int ret = -1;
@@ -114,7 +114,7 @@ static int update_driver_name(virConnect
cleanup:
VIR_FREE(driver_link);
- free(devpath);
+ VIR_FREE(devpath);
return ret;
}
#else

View File

@ -1,8 +1,8 @@
Index: libvirt-0.7.4/include/libvirt/libvirt.h.in Index: libvirt-0.7.5/include/libvirt/libvirt.h.in
=================================================================== ===================================================================
--- libvirt-0.7.4.orig/include/libvirt/libvirt.h.in --- libvirt-0.7.5.orig/include/libvirt/libvirt.h.in
+++ libvirt-0.7.4/include/libvirt/libvirt.h.in +++ libvirt-0.7.5/include/libvirt/libvirt.h.in
@@ -565,6 +565,21 @@ int virDomainRestore @@ -621,6 +621,21 @@ int virDomainRestore
const char *from); const char *from);
/* /*
@ -24,11 +24,11 @@ Index: libvirt-0.7.4/include/libvirt/libvirt.h.in
* Domain core dump * Domain core dump
*/ */
int virDomainCoreDump (virDomainPtr domain, int virDomainCoreDump (virDomainPtr domain,
Index: libvirt-0.7.4/src/libvirt.c Index: libvirt-0.7.5/src/libvirt.c
=================================================================== ===================================================================
--- libvirt-0.7.4.orig/src/libvirt.c --- libvirt-0.7.5.orig/src/libvirt.c
+++ libvirt-0.7.4/src/libvirt.c +++ libvirt-0.7.5/src/libvirt.c
@@ -2281,6 +2281,166 @@ error: @@ -2339,6 +2339,166 @@ error:
} }
/** /**
@ -195,10 +195,10 @@ Index: libvirt-0.7.4/src/libvirt.c
* virDomainCoreDump: * virDomainCoreDump:
* @domain: a domain object * @domain: a domain object
* @to: path for the core file * @to: path for the core file
Index: libvirt-0.7.4/src/driver.h Index: libvirt-0.7.5/src/driver.h
=================================================================== ===================================================================
--- libvirt-0.7.4.orig/src/driver.h --- libvirt-0.7.5.orig/src/driver.h
+++ libvirt-0.7.4/src/driver.h +++ libvirt-0.7.5/src/driver.h
@@ -136,6 +136,21 @@ typedef int @@ -136,6 +136,21 @@ typedef int
(*virDrvDomainRestore) (virConnectPtr conn, (*virDrvDomainRestore) (virConnectPtr conn,
const char *from); const char *from);
@ -221,10 +221,10 @@ Index: libvirt-0.7.4/src/driver.h
(*virDrvDomainCoreDump) (virDomainPtr domain, (*virDrvDomainCoreDump) (virDomainPtr domain,
const char *to, const char *to,
int flags); int flags);
@@ -435,6 +450,11 @@ struct _virDriver { @@ -448,6 +463,11 @@ struct _virDriver {
virDrvConnectIsSecure isSecure;
virDrvDomainIsActive domainIsActive; virDrvDomainIsActive domainIsActive;
virDrvDomainIsPersistent domainIsPersistent; virDrvDomainIsPersistent domainIsPersistent;
virDrvCPUCompare cpuCompare;
+ virDrvDomainSnapshotCreate domainSnapshotCreate; + virDrvDomainSnapshotCreate domainSnapshotCreate;
+ virDrvDomainSnapshotApply domainSnapshotApply; + virDrvDomainSnapshotApply domainSnapshotApply;
+ virDrvDomainSnapshotDelete domainSnapshotDelete; + virDrvDomainSnapshotDelete domainSnapshotDelete;
@ -233,10 +233,10 @@ Index: libvirt-0.7.4/src/driver.h
}; };
typedef int typedef int
Index: libvirt-0.7.4/src/xen/xen_driver.c Index: libvirt-0.7.5/src/xen/xen_driver.c
=================================================================== ===================================================================
--- libvirt-0.7.4.orig/src/xen/xen_driver.c --- libvirt-0.7.5.orig/src/xen/xen_driver.c
+++ libvirt-0.7.4/src/xen/xen_driver.c +++ libvirt-0.7.5/src/xen/xen_driver.c
@@ -1052,6 +1052,81 @@ xenUnifiedDomainRestore (virConnectPtr c @@ -1052,6 +1052,81 @@ xenUnifiedDomainRestore (virConnectPtr c
} }
@ -319,22 +319,22 @@ Index: libvirt-0.7.4/src/xen/xen_driver.c
xenUnifiedDomainCoreDump (virDomainPtr dom, const char *to, int flags) xenUnifiedDomainCoreDump (virDomainPtr dom, const char *to, int flags)
{ {
GET_PRIVATE(dom->conn); GET_PRIVATE(dom->conn);
@@ -1860,6 +1935,11 @@ static virDriver xenUnifiedDriver = { @@ -1862,6 +1937,11 @@ static virDriver xenUnifiedDriver = {
xenUnifiedIsSecure,
xenUnifiedDomainIsActive, xenUnifiedDomainIsActive,
xenUnifiedDomainisPersistent, xenUnifiedDomainisPersistent,
+ xenUnifiedDomainSnapshotCreate, NULL, /* cpuCompare */
+ xenUnifiedDomainSnapshotApply, + xenUnifiedDomainSnapshotCreate, /* domainSnapshotCreate */
+ xenUnifiedDomainSnapshotDelete, + xenUnifiedDomainSnapshotApply, /* domainSnapshotApply */
+ xenUnifiedDomainNumOfSnapshots, + xenUnifiedDomainSnapshotDelete, /* domainSnapshotDelete */
+ xenUnifiedDomainListSnapshots, + xenUnifiedDomainNumOfSnapshots, /* domainNumOfSnapshots */
+ xenUnifiedDomainListSnapshots, /* domainListSnapshots */
}; };
/** /**
Index: libvirt-0.7.4/src/xen/xen_driver.h Index: libvirt-0.7.5/src/xen/xen_driver.h
=================================================================== ===================================================================
--- libvirt-0.7.4.orig/src/xen/xen_driver.h --- libvirt-0.7.5.orig/src/xen/xen_driver.h
+++ libvirt-0.7.4/src/xen/xen_driver.h +++ libvirt-0.7.5/src/xen/xen_driver.h
@@ -100,6 +100,11 @@ struct xenUnifiedDriver { @@ -100,6 +100,11 @@ struct xenUnifiedDriver {
virDrvDomainGetSchedulerType domainGetSchedulerType; virDrvDomainGetSchedulerType domainGetSchedulerType;
virDrvDomainGetSchedulerParameters domainGetSchedulerParameters; virDrvDomainGetSchedulerParameters domainGetSchedulerParameters;
@ -347,10 +347,10 @@ Index: libvirt-0.7.4/src/xen/xen_driver.h
}; };
typedef struct xenXMConfCache *xenXMConfCachePtr; typedef struct xenXMConfCache *xenXMConfCachePtr;
Index: libvirt-0.7.4/src/xen/xend_internal.c Index: libvirt-0.7.5/src/xen/xend_internal.c
=================================================================== ===================================================================
--- libvirt-0.7.4.orig/src/xen/xend_internal.c --- libvirt-0.7.5.orig/src/xen/xend_internal.c
+++ libvirt-0.7.4/src/xen/xend_internal.c +++ libvirt-0.7.5/src/xen/xend_internal.c
@@ -53,6 +53,12 @@ @@ -53,6 +53,12 @@
#ifndef PROXY #ifndef PROXY
@ -364,7 +364,7 @@ Index: libvirt-0.7.4/src/xen/xend_internal.c
/* /*
* The number of Xen scheduler parameters * The number of Xen scheduler parameters
*/ */
@@ -3271,6 +3277,87 @@ xenDaemonDomainRestore(virConnectPtr con @@ -3282,6 +3288,87 @@ xenDaemonDomainRestore(virConnectPtr con
} }
return xend_op(conn, "", "op", "restore", "file", filename, NULL); return xend_op(conn, "", "op", "restore", "file", filename, NULL);
} }
@ -452,7 +452,7 @@ Index: libvirt-0.7.4/src/xen/xend_internal.c
#endif /* !PROXY */ #endif /* !PROXY */
/** /**
@@ -5123,6 +5210,11 @@ struct xenUnifiedDriver xenDaemonDriver @@ -5165,6 +5252,11 @@ struct xenUnifiedDriver xenDaemonDriver
xenDaemonGetSchedulerType, /* domainGetSchedulerType */ xenDaemonGetSchedulerType, /* domainGetSchedulerType */
xenDaemonGetSchedulerParameters, /* domainGetSchedulerParameters */ xenDaemonGetSchedulerParameters, /* domainGetSchedulerParameters */
xenDaemonSetSchedulerParameters, /* domainSetSchedulerParameters */ xenDaemonSetSchedulerParameters, /* domainSetSchedulerParameters */
@ -464,10 +464,10 @@ Index: libvirt-0.7.4/src/xen/xend_internal.c
}; };
/************************************************************************ /************************************************************************
Index: libvirt-0.7.4/src/xen/proxy_internal.c Index: libvirt-0.7.5/src/xen/proxy_internal.c
=================================================================== ===================================================================
--- libvirt-0.7.4.orig/src/xen/proxy_internal.c --- libvirt-0.7.5.orig/src/xen/proxy_internal.c
+++ libvirt-0.7.4/src/xen/proxy_internal.c +++ libvirt-0.7.5/src/xen/proxy_internal.c
@@ -83,6 +83,11 @@ struct xenUnifiedDriver xenProxyDriver = @@ -83,6 +83,11 @@ struct xenUnifiedDriver xenProxyDriver =
NULL, /* domainGetSchedulerType */ NULL, /* domainGetSchedulerType */
NULL, /* domainGetSchedulerParameters */ NULL, /* domainGetSchedulerParameters */
@ -480,11 +480,11 @@ Index: libvirt-0.7.4/src/xen/proxy_internal.c
}; };
Index: libvirt-0.7.4/src/xen/xen_hypervisor.c Index: libvirt-0.7.5/src/xen/xen_hypervisor.c
=================================================================== ===================================================================
--- libvirt-0.7.4.orig/src/xen/xen_hypervisor.c --- libvirt-0.7.5.orig/src/xen/xen_hypervisor.c
+++ libvirt-0.7.4/src/xen/xen_hypervisor.c +++ libvirt-0.7.5/src/xen/xen_hypervisor.c
@@ -750,6 +750,11 @@ struct xenUnifiedDriver xenHypervisorDri @@ -800,6 +800,11 @@ struct xenUnifiedDriver xenHypervisorDri
xenHypervisorGetSchedulerType, /* domainGetSchedulerType */ xenHypervisorGetSchedulerType, /* domainGetSchedulerType */
xenHypervisorGetSchedulerParameters, /* domainGetSchedulerParameters */ xenHypervisorGetSchedulerParameters, /* domainGetSchedulerParameters */
xenHypervisorSetSchedulerParameters, /* domainSetSchedulerParameters */ xenHypervisorSetSchedulerParameters, /* domainSetSchedulerParameters */
@ -496,10 +496,10 @@ Index: libvirt-0.7.4/src/xen/xen_hypervisor.c
}; };
#endif /* !PROXY */ #endif /* !PROXY */
Index: libvirt-0.7.4/src/xen/xm_internal.c Index: libvirt-0.7.5/src/xen/xm_internal.c
=================================================================== ===================================================================
--- libvirt-0.7.4.orig/src/xen/xm_internal.c --- libvirt-0.7.5.orig/src/xen/xm_internal.c
+++ libvirt-0.7.4/src/xen/xm_internal.c +++ libvirt-0.7.5/src/xen/xm_internal.c
@@ -116,6 +116,11 @@ struct xenUnifiedDriver xenXMDriver = { @@ -116,6 +116,11 @@ struct xenUnifiedDriver xenXMDriver = {
NULL, /* domainGetSchedulerType */ NULL, /* domainGetSchedulerType */
NULL, /* domainGetSchedulerParameters */ NULL, /* domainGetSchedulerParameters */
@ -512,10 +512,10 @@ Index: libvirt-0.7.4/src/xen/xm_internal.c
}; };
#define xenXMError(conn, code, fmt...) \ #define xenXMError(conn, code, fmt...) \
Index: libvirt-0.7.4/src/xen/xs_internal.c Index: libvirt-0.7.5/src/xen/xs_internal.c
=================================================================== ===================================================================
--- libvirt-0.7.4.orig/src/xen/xs_internal.c --- libvirt-0.7.5.orig/src/xen/xs_internal.c
+++ libvirt-0.7.4/src/xen/xs_internal.c +++ libvirt-0.7.5/src/xen/xs_internal.c
@@ -83,6 +83,11 @@ struct xenUnifiedDriver xenStoreDriver = @@ -83,6 +83,11 @@ struct xenUnifiedDriver xenStoreDriver =
NULL, /* domainGetSchedulerType */ NULL, /* domainGetSchedulerType */
NULL, /* domainGetSchedulerParameters */ NULL, /* domainGetSchedulerParameters */
@ -528,11 +528,11 @@ Index: libvirt-0.7.4/src/xen/xs_internal.c
}; };
#endif /* ! PROXY */ #endif /* ! PROXY */
Index: libvirt-0.7.4/tools/virsh.c Index: libvirt-0.7.5/tools/virsh.c
=================================================================== ===================================================================
--- libvirt-0.7.4.orig/tools/virsh.c --- libvirt-0.7.5.orig/tools/virsh.c
+++ libvirt-0.7.4/tools/virsh.c +++ libvirt-0.7.5/tools/virsh.c
@@ -1179,6 +1179,188 @@ cmdSave(vshControl *ctl, const vshCmd *c @@ -1233,6 +1233,188 @@ cmdSave(vshControl *ctl, const vshCmd *c
} }
/* /*
@ -721,7 +721,7 @@ Index: libvirt-0.7.4/tools/virsh.c
* "schedinfo" command * "schedinfo" command
*/ */
static const vshCmdInfo info_schedinfo[] = { static const vshCmdInfo info_schedinfo[] = {
@@ -7298,6 +7480,12 @@ static const vshCmdDef commands[] = { @@ -7431,6 +7613,12 @@ static const vshCmdDef commands[] = {
{"undefine", cmdUndefine, opts_undefine, info_undefine}, {"undefine", cmdUndefine, opts_undefine, info_undefine},
{"uri", cmdURI, NULL, info_uri}, {"uri", cmdURI, NULL, info_uri},
@ -734,14 +734,14 @@ Index: libvirt-0.7.4/tools/virsh.c
{"vol-create", cmdVolCreate, opts_vol_create, info_vol_create}, {"vol-create", cmdVolCreate, opts_vol_create, info_vol_create},
{"vol-create-from", cmdVolCreateFrom, opts_vol_create_from, info_vol_create_from}, {"vol-create-from", cmdVolCreateFrom, opts_vol_create_from, info_vol_create_from},
{"vol-create-as", cmdVolCreateAs, opts_vol_create_as, info_vol_create_as}, {"vol-create-as", cmdVolCreateAs, opts_vol_create_as, info_vol_create_as},
Index: libvirt-0.7.4/src/lxc/lxc_driver.c Index: libvirt-0.7.5/src/lxc/lxc_driver.c
=================================================================== ===================================================================
--- libvirt-0.7.4.orig/src/lxc/lxc_driver.c --- libvirt-0.7.5.orig/src/lxc/lxc_driver.c
+++ libvirt-0.7.4/src/lxc/lxc_driver.c +++ libvirt-0.7.5/src/lxc/lxc_driver.c
@@ -2404,6 +2404,11 @@ static virDriver lxcDriver = { @@ -2456,6 +2456,11 @@ static virDriver lxcDriver = {
lxcIsSecure,
lxcDomainIsActive, lxcDomainIsActive,
lxcDomainIsPersistent, lxcDomainIsPersistent,
NULL, /* cpuCompare */
+ NULL, /* domainSnapshotCreate */ + NULL, /* domainSnapshotCreate */
+ NULL, /* domainSnapshotApply */ + NULL, /* domainSnapshotApply */
+ NULL, /* domainSnapshotDelete */ + NULL, /* domainSnapshotDelete */
@ -750,14 +750,14 @@ Index: libvirt-0.7.4/src/lxc/lxc_driver.c
}; };
static virStateDriver lxcStateDriver = { static virStateDriver lxcStateDriver = {
Index: libvirt-0.7.4/src/openvz/openvz_driver.c Index: libvirt-0.7.5/src/openvz/openvz_driver.c
=================================================================== ===================================================================
--- libvirt-0.7.4.orig/src/openvz/openvz_driver.c --- libvirt-0.7.5.orig/src/openvz/openvz_driver.c
+++ libvirt-0.7.4/src/openvz/openvz_driver.c +++ libvirt-0.7.5/src/openvz/openvz_driver.c
@@ -1534,6 +1534,11 @@ static virDriver openvzDriver = { @@ -1535,6 +1535,11 @@ static virDriver openvzDriver = {
openvzIsSecure,
openvzDomainIsActive, openvzDomainIsActive,
openvzDomainIsPersistent, openvzDomainIsPersistent,
NULL, /* cpuCompare */
+ NULL, /* domainSnapshotCreate */ + NULL, /* domainSnapshotCreate */
+ NULL, /* domainSnapshotApply */ + NULL, /* domainSnapshotApply */
+ NULL, /* domainSnapshotDelete */ + NULL, /* domainSnapshotDelete */
@ -766,14 +766,14 @@ Index: libvirt-0.7.4/src/openvz/openvz_driver.c
}; };
int openvzRegister(void) { int openvzRegister(void) {
Index: libvirt-0.7.4/src/qemu/qemu_driver.c Index: libvirt-0.7.5/src/qemu/qemu_driver.c
=================================================================== ===================================================================
--- libvirt-0.7.4.orig/src/qemu/qemu_driver.c --- libvirt-0.7.5.orig/src/qemu/qemu_driver.c
+++ libvirt-0.7.4/src/qemu/qemu_driver.c +++ libvirt-0.7.5/src/qemu/qemu_driver.c
@@ -7559,6 +7559,11 @@ static virDriver qemuDriver = { @@ -7990,6 +7990,11 @@ static virDriver qemuDriver = {
qemuIsSecure,
qemuDomainIsActive, qemuDomainIsActive,
qemuDomainIsPersistent, qemuDomainIsPersistent,
qemuCPUCompare, /* cpuCompare */
+ NULL, /* domainSnapshotCreate */ + NULL, /* domainSnapshotCreate */
+ NULL, /* domainSnapshotApply */ + NULL, /* domainSnapshotApply */
+ NULL, /* domainSnapshotDelete */ + NULL, /* domainSnapshotDelete */
@ -782,14 +782,14 @@ Index: libvirt-0.7.4/src/qemu/qemu_driver.c
}; };
Index: libvirt-0.7.4/src/esx/esx_driver.c Index: libvirt-0.7.5/src/esx/esx_driver.c
=================================================================== ===================================================================
--- libvirt-0.7.4.orig/src/esx/esx_driver.c --- libvirt-0.7.5.orig/src/esx/esx_driver.c
+++ libvirt-0.7.4/src/esx/esx_driver.c +++ libvirt-0.7.5/src/esx/esx_driver.c
@@ -3425,6 +3425,11 @@ static virDriver esxDriver = { @@ -3455,6 +3455,11 @@ static virDriver esxDriver = {
esxIsSecure, /* isSecure */
esxDomainIsActive, /* domainIsActive */ esxDomainIsActive, /* domainIsActive */
esxDomainIsPersistent, /* domainIsPersistent */ esxDomainIsPersistent, /* domainIsPersistent */
NULL, /* cpuCompare */
+ NULL, /* domainSnapshotCreate */ + NULL, /* domainSnapshotCreate */
+ NULL, /* domainSnapshotApply */ + NULL, /* domainSnapshotApply */
+ NULL, /* domainSnapshotDelete */ + NULL, /* domainSnapshotDelete */
@ -798,14 +798,14 @@ Index: libvirt-0.7.4/src/esx/esx_driver.c
}; };
Index: libvirt-0.7.4/src/test/test_driver.c Index: libvirt-0.7.5/src/test/test_driver.c
=================================================================== ===================================================================
--- libvirt-0.7.4.orig/src/test/test_driver.c --- libvirt-0.7.5.orig/src/test/test_driver.c
+++ libvirt-0.7.4/src/test/test_driver.c +++ libvirt-0.7.5/src/test/test_driver.c
@@ -5233,6 +5233,11 @@ static virDriver testDriver = { @@ -5238,6 +5238,11 @@ static virDriver testDriver = {
testIsSecure, /* isEncrypted */
testDomainIsActive, /* domainIsActive */ testDomainIsActive, /* domainIsActive */
testDomainIsPersistent, /* domainIsPersistent */ testDomainIsPersistent, /* domainIsPersistent */
NULL, /* cpuCompare */
+ NULL, /* domainSnapshotCreate */ + NULL, /* domainSnapshotCreate */
+ NULL, /* domainSnapshotApply */ + NULL, /* domainSnapshotApply */
+ NULL, /* domainSnapshotDelete */ + NULL, /* domainSnapshotDelete */
@ -814,14 +814,14 @@ Index: libvirt-0.7.4/src/test/test_driver.c
}; };
static virNetworkDriver testNetworkDriver = { static virNetworkDriver testNetworkDriver = {
Index: libvirt-0.7.4/src/uml/uml_driver.c Index: libvirt-0.7.5/src/uml/uml_driver.c
=================================================================== ===================================================================
--- libvirt-0.7.4.orig/src/uml/uml_driver.c --- libvirt-0.7.5.orig/src/uml/uml_driver.c
+++ libvirt-0.7.4/src/uml/uml_driver.c +++ libvirt-0.7.5/src/uml/uml_driver.c
@@ -1888,6 +1888,11 @@ static virDriver umlDriver = { @@ -1924,6 +1924,11 @@ static virDriver umlDriver = {
umlIsSecure,
umlDomainIsActive, umlDomainIsActive,
umlDomainIsPersistent, umlDomainIsPersistent,
NULL, /* cpuCompare */
+ NULL, /* domainSnapshotCreate */ + NULL, /* domainSnapshotCreate */
+ NULL, /* domainSnapshotApply */ + NULL, /* domainSnapshotApply */
+ NULL, /* domainSnapshotDelete */ + NULL, /* domainSnapshotDelete */
@ -830,14 +830,14 @@ Index: libvirt-0.7.4/src/uml/uml_driver.c
}; };
Index: libvirt-0.7.4/src/vbox/vbox_tmpl.c Index: libvirt-0.7.5/src/vbox/vbox_tmpl.c
=================================================================== ===================================================================
--- libvirt-0.7.4.orig/src/vbox/vbox_tmpl.c --- libvirt-0.7.5.orig/src/vbox/vbox_tmpl.c
+++ libvirt-0.7.4/src/vbox/vbox_tmpl.c +++ libvirt-0.7.5/src/vbox/vbox_tmpl.c
@@ -6571,6 +6571,11 @@ virDriver NAME(Driver) = { @@ -7051,6 +7051,11 @@ virDriver NAME(Driver) = {
vboxIsSecure,
vboxDomainIsActive, vboxDomainIsActive,
vboxDomainIsPersistent, vboxDomainIsPersistent,
NULL, /* cpuCompare */
+ NULL, /* domainSnapshotCreate */ + NULL, /* domainSnapshotCreate */
+ NULL, /* domainSnapshotApply */ + NULL, /* domainSnapshotApply */
+ NULL, /* domainSnapshotDelete */ + NULL, /* domainSnapshotDelete */
@ -846,14 +846,14 @@ Index: libvirt-0.7.4/src/vbox/vbox_tmpl.c
}; };
virNetworkDriver NAME(NetworkDriver) = { virNetworkDriver NAME(NetworkDriver) = {
Index: libvirt-0.7.4/src/opennebula/one_driver.c Index: libvirt-0.7.5/src/opennebula/one_driver.c
=================================================================== ===================================================================
--- libvirt-0.7.4.orig/src/opennebula/one_driver.c --- libvirt-0.7.5.orig/src/opennebula/one_driver.c
+++ libvirt-0.7.4/src/opennebula/one_driver.c +++ libvirt-0.7.5/src/opennebula/one_driver.c
@@ -781,6 +781,11 @@ static virDriver oneDriver = { @@ -783,6 +783,11 @@ static virDriver oneDriver = {
oneIsSecure,
NULL, /* domainIsActive */ NULL, /* domainIsActive */
NULL, /* domainIsPersistent */ NULL, /* domainIsPersistent */
NULL, /* cpuCompare */
+ NULL, /* domainSnapshotCreate */ + NULL, /* domainSnapshotCreate */
+ NULL, /* domainSnapshotApply */ + NULL, /* domainSnapshotApply */
+ NULL, /* domainSnapshotDelete */ + NULL, /* domainSnapshotDelete */
@ -862,14 +862,14 @@ Index: libvirt-0.7.4/src/opennebula/one_driver.c
}; };
static virStateDriver oneStateDriver = { static virStateDriver oneStateDriver = {
Index: libvirt-0.7.4/src/phyp/phyp_driver.c Index: libvirt-0.7.5/src/phyp/phyp_driver.c
=================================================================== ===================================================================
--- libvirt-0.7.4.orig/src/phyp/phyp_driver.c --- libvirt-0.7.5.orig/src/phyp/phyp_driver.c
+++ libvirt-0.7.4/src/phyp/phyp_driver.c +++ libvirt-0.7.5/src/phyp/phyp_driver.c
@@ -1650,6 +1650,11 @@ virDriver phypDriver = { @@ -1651,6 +1651,11 @@ virDriver phypDriver = {
phypIsSecure,
NULL, /* domainIsActive */ NULL, /* domainIsActive */
NULL, /* domainIsPersistent */ NULL, /* domainIsPersistent */
NULL, /* cpuCompare */
+ NULL, /* domainSnapshotCreate */ + NULL, /* domainSnapshotCreate */
+ NULL, /* domainSnapshotApply */ + NULL, /* domainSnapshotApply */
+ NULL, /* domainSnapshotDelete */ + NULL, /* domainSnapshotDelete */
@ -878,14 +878,14 @@ Index: libvirt-0.7.4/src/phyp/phyp_driver.c
}; };
int int
Index: libvirt-0.7.4/src/remote/remote_driver.c Index: libvirt-0.7.5/src/remote/remote_driver.c
=================================================================== ===================================================================
--- libvirt-0.7.4.orig/src/remote/remote_driver.c --- libvirt-0.7.5.orig/src/remote/remote_driver.c
+++ libvirt-0.7.4/src/remote/remote_driver.c +++ libvirt-0.7.5/src/remote/remote_driver.c
@@ -8847,6 +8847,11 @@ static virDriver remote_driver = { @@ -8940,6 +8940,11 @@ static virDriver remote_driver = {
remoteIsSecure, /* isSecure */
remoteDomainIsActive, /* domainIsActive */ remoteDomainIsActive, /* domainIsActive */
remoteDomainIsPersistent, /* domainIsPersistent */ remoteDomainIsPersistent, /* domainIsPersistent */
remoteCPUCompare, /* cpuCompare */
+ NULL, /* domainSnapshotCreate */ + NULL, /* domainSnapshotCreate */
+ NULL, /* domainSnapshotApply */ + NULL, /* domainSnapshotApply */
+ NULL, /* domainSnapshotDelete */ + NULL, /* domainSnapshotDelete */
@ -894,11 +894,11 @@ Index: libvirt-0.7.4/src/remote/remote_driver.c
}; };
static virNetworkDriver network_driver = { static virNetworkDriver network_driver = {
Index: libvirt-0.7.4/docs/libvirt-api.xml Index: libvirt-0.7.5/docs/libvirt-api.xml
=================================================================== ===================================================================
--- libvirt-0.7.4.orig/docs/libvirt-api.xml --- libvirt-0.7.5.orig/docs/libvirt-api.xml
+++ libvirt-0.7.4/docs/libvirt-api.xml +++ libvirt-0.7.5/docs/libvirt-api.xml
@@ -271,6 +271,11 @@ @@ -293,6 +293,11 @@
<exports symbol='virDomainSetVcpus' type='function'/> <exports symbol='virDomainSetVcpus' type='function'/>
<exports symbol='virDomainShutdown' type='function'/> <exports symbol='virDomainShutdown' type='function'/>
<exports symbol='virDomainSuspend' type='function'/> <exports symbol='virDomainSuspend' type='function'/>
@ -910,7 +910,7 @@ Index: libvirt-0.7.4/docs/libvirt-api.xml
<exports symbol='virDomainUndefine' type='function'/> <exports symbol='virDomainUndefine' type='function'/>
<exports symbol='virEventAddHandleFunc' type='function'/> <exports symbol='virEventAddHandleFunc' type='function'/>
<exports symbol='virEventAddTimeoutFunc' type='function'/> <exports symbol='virEventAddTimeoutFunc' type='function'/>
@@ -1878,6 +1883,36 @@ This function may requires privileged ac @@ -1972,6 +1977,36 @@ This function may requires privileged ac
<return type='int' info='0 in case of success and -1 in case of failure.'/> <return type='int' info='0 in case of success and -1 in case of failure.'/>
<arg name='domain' type='virDomainPtr' info='a domain object'/> <arg name='domain' type='virDomainPtr' info='a domain object'/>
</function> </function>
@ -947,10 +947,10 @@ Index: libvirt-0.7.4/docs/libvirt-api.xml
<function name='virDomainUndefine' file='libvirt' module='libvirt'> <function name='virDomainUndefine' file='libvirt' module='libvirt'>
<info><![CDATA[Undefine a domain but does not stop it if it is running]]></info> <info><![CDATA[Undefine a domain but does not stop it if it is running]]></info>
<return type='int' info='0 in case of success, -1 in case of error'/> <return type='int' info='0 in case of success, -1 in case of error'/>
Index: libvirt-0.7.4/src/libvirt_public.syms Index: libvirt-0.7.5/src/libvirt_public.syms
=================================================================== ===================================================================
--- libvirt-0.7.4.orig/src/libvirt_public.syms --- libvirt-0.7.5.orig/src/libvirt_public.syms
+++ libvirt-0.7.4/src/libvirt_public.syms +++ libvirt-0.7.5/src/libvirt_public.syms
@@ -215,6 +215,11 @@ LIBVIRT_0.4.2 { @@ -215,6 +215,11 @@ LIBVIRT_0.4.2 {
LIBVIRT_0.4.5 { LIBVIRT_0.4.5 {
global: global:
@ -963,11 +963,11 @@ Index: libvirt-0.7.4/src/libvirt_public.syms
} LIBVIRT_0.4.2; } LIBVIRT_0.4.2;
LIBVIRT_0.5.0 { LIBVIRT_0.5.0 {
Index: libvirt-0.7.4/python/generator.py Index: libvirt-0.7.5/python/generator.py
=================================================================== ===================================================================
--- libvirt-0.7.4.orig/python/generator.py --- libvirt-0.7.5.orig/python/generator.py
+++ libvirt-0.7.4/python/generator.py +++ libvirt-0.7.5/python/generator.py
@@ -287,6 +287,7 @@ skip_impl = ( @@ -288,6 +288,7 @@ skip_impl = (
'virDomainSetSchedulerParameters', 'virDomainSetSchedulerParameters',
'virDomainGetVcpus', 'virDomainGetVcpus',
'virDomainPinVcpu', 'virDomainPinVcpu',
@ -975,11 +975,11 @@ Index: libvirt-0.7.4/python/generator.py
'virSecretGetValue', 'virSecretGetValue',
'virSecretSetValue', 'virSecretSetValue',
'virSecretGetUUID', 'virSecretGetUUID',
Index: libvirt-0.7.4/python/libvirt-override.c Index: libvirt-0.7.5/python/libvirt-override.c
=================================================================== ===================================================================
--- libvirt-0.7.4.orig/python/libvirt-override.c --- libvirt-0.7.5.orig/python/libvirt-override.c
+++ libvirt-0.7.4/python/libvirt-override.c +++ libvirt-0.7.5/python/libvirt-override.c
@@ -1400,6 +1400,34 @@ libvirt_virStoragePoolGetInfo(PyObject * @@ -1516,6 +1516,34 @@ libvirt_virStoragePoolGetInfo(PyObject *
return(py_retval); return(py_retval);
} }
@ -1014,7 +1014,7 @@ Index: libvirt-0.7.4/python/libvirt-override.c
static PyObject * static PyObject *
libvirt_virStorageVolGetInfo(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { libvirt_virStorageVolGetInfo(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) {
@@ -2557,6 +2585,7 @@ static PyMethodDef libvirtMethods[] = { @@ -2690,6 +2718,7 @@ static PyMethodDef libvirtMethods[] = {
{(char *) "virStoragePoolGetAutostart", libvirt_virStoragePoolGetAutostart, METH_VARARGS, NULL}, {(char *) "virStoragePoolGetAutostart", libvirt_virStoragePoolGetAutostart, METH_VARARGS, NULL},
{(char *) "virStoragePoolListVolumes", libvirt_virStoragePoolListVolumes, METH_VARARGS, NULL}, {(char *) "virStoragePoolListVolumes", libvirt_virStoragePoolListVolumes, METH_VARARGS, NULL},
{(char *) "virStoragePoolGetInfo", libvirt_virStoragePoolGetInfo, METH_VARARGS, NULL}, {(char *) "virStoragePoolGetInfo", libvirt_virStoragePoolGetInfo, METH_VARARGS, NULL},
@ -1022,11 +1022,11 @@ Index: libvirt-0.7.4/python/libvirt-override.c
{(char *) "virStorageVolGetInfo", libvirt_virStorageVolGetInfo, METH_VARARGS, NULL}, {(char *) "virStorageVolGetInfo", libvirt_virStorageVolGetInfo, METH_VARARGS, NULL},
{(char *) "virStoragePoolGetUUID", libvirt_virStoragePoolGetUUID, METH_VARARGS, NULL}, {(char *) "virStoragePoolGetUUID", libvirt_virStoragePoolGetUUID, METH_VARARGS, NULL},
{(char *) "virStoragePoolGetUUIDString", libvirt_virStoragePoolGetUUIDString, METH_VARARGS, NULL}, {(char *) "virStoragePoolGetUUIDString", libvirt_virStoragePoolGetUUIDString, METH_VARARGS, NULL},
Index: libvirt-0.7.4/python/libvirt-override-api.xml Index: libvirt-0.7.5/python/libvirt-override-api.xml
=================================================================== ===================================================================
--- libvirt-0.7.4.orig/python/libvirt-override-api.xml --- libvirt-0.7.5.orig/python/libvirt-override-api.xml
+++ libvirt-0.7.4/python/libvirt-override-api.xml +++ libvirt-0.7.5/python/libvirt-override-api.xml
@@ -140,6 +140,11 @@ @@ -145,6 +145,11 @@
<arg name='domain' type='virDomainPtr' info='pointer to domain object'/> <arg name='domain' type='virDomainPtr' info='pointer to domain object'/>
<arg name='params' type='virSchedParameterPtr' info='pointer to scheduler parameter objects'/> <arg name='params' type='virSchedParameterPtr' info='pointer to scheduler parameter objects'/>
</function> </function>
@ -1038,10 +1038,10 @@ Index: libvirt-0.7.4/python/libvirt-override-api.xml
<function name='virConnectListStoragePools' file='python'> <function name='virConnectListStoragePools' file='python'>
<info>list the storage pools, stores the pointers to the names in @names</info> <info>list the storage pools, stores the pointers to the names in @names</info>
<arg name='conn' type='virConnectPtr' info='pointer to the hypervisor connection'/> <arg name='conn' type='virConnectPtr' info='pointer to the hypervisor connection'/>
Index: libvirt-0.7.4/src/xen/xen_inotify.c Index: libvirt-0.7.5/src/xen/xen_inotify.c
=================================================================== ===================================================================
--- libvirt-0.7.4.orig/src/xen/xen_inotify.c --- libvirt-0.7.5.orig/src/xen/xen_inotify.c
+++ libvirt-0.7.4/src/xen/xen_inotify.c +++ libvirt-0.7.5/src/xen/xen_inotify.c
@@ -86,6 +86,11 @@ struct xenUnifiedDriver xenInotifyDriver @@ -86,6 +86,11 @@ struct xenUnifiedDriver xenInotifyDriver
NULL, /* domainGetSchedulerType */ NULL, /* domainGetSchedulerType */
NULL, /* domainGetSchedulerParameters */ NULL, /* domainGetSchedulerParameters */

View File

@ -1,8 +1,8 @@
Index: libvirt-0.7.4/src/conf/network_conf.c Index: libvirt-0.7.5/src/conf/network_conf.c
=================================================================== ===================================================================
--- libvirt-0.7.4.orig/src/conf/network_conf.c --- libvirt-0.7.5.orig/src/conf/network_conf.c
+++ libvirt-0.7.4/src/conf/network_conf.c +++ libvirt-0.7.5/src/conf/network_conf.c
@@ -865,6 +865,137 @@ error: @@ -863,6 +863,137 @@ error:
return NULL; return NULL;
} }
@ -140,7 +140,7 @@ Index: libvirt-0.7.4/src/conf/network_conf.c
int virNetworkLoadAllConfigs(virConnectPtr conn, int virNetworkLoadAllConfigs(virConnectPtr conn,
virNetworkObjListPtr nets, virNetworkObjListPtr nets,
const char *configDir, const char *configDir,
@@ -904,6 +1035,7 @@ int virNetworkLoadAllConfigs(virConnectP @@ -902,6 +1033,7 @@ int virNetworkLoadAllConfigs(virConnectP
closedir(dir); closedir(dir);
@ -148,10 +148,10 @@ Index: libvirt-0.7.4/src/conf/network_conf.c
return 0; return 0;
} }
Index: libvirt-0.7.4/src/conf/network_conf.h Index: libvirt-0.7.5/src/conf/network_conf.h
=================================================================== ===================================================================
--- libvirt-0.7.4.orig/src/conf/network_conf.h --- libvirt-0.7.5.orig/src/conf/network_conf.h
+++ libvirt-0.7.4/src/conf/network_conf.h +++ libvirt-0.7.5/src/conf/network_conf.h
@@ -94,6 +94,7 @@ struct _virNetworkObj { @@ -94,6 +94,7 @@ struct _virNetworkObj {
unsigned int active : 1; unsigned int active : 1;
unsigned int autostart : 1; unsigned int autostart : 1;
@ -160,11 +160,11 @@ Index: libvirt-0.7.4/src/conf/network_conf.h
virNetworkDefPtr def; /* The current definition */ virNetworkDefPtr def; /* The current definition */
virNetworkDefPtr newDef; /* New definition to activate at shutdown */ virNetworkDefPtr newDef; /* New definition to activate at shutdown */
Index: libvirt-0.7.4/src/network/bridge_driver.c Index: libvirt-0.7.5/src/network/bridge_driver.c
=================================================================== ===================================================================
--- libvirt-0.7.4.orig/src/network/bridge_driver.c --- libvirt-0.7.5.orig/src/network/bridge_driver.c
+++ libvirt-0.7.4/src/network/bridge_driver.c +++ libvirt-0.7.5/src/network/bridge_driver.c
@@ -994,6 +994,11 @@ static int networkShutdownNetworkDaemon( @@ -1010,6 +1010,11 @@ static int networkShutdownNetworkDaemon(
unlink(stateFile); unlink(stateFile);
VIR_FREE(stateFile); VIR_FREE(stateFile);
@ -176,7 +176,7 @@ Index: libvirt-0.7.4/src/network/bridge_driver.c
if (network->dnsmasqPid > 0) if (network->dnsmasqPid > 0)
kill(network->dnsmasqPid, SIGTERM); kill(network->dnsmasqPid, SIGTERM);
@@ -1494,6 +1499,12 @@ static int networkSetAutostart(virNetwor @@ -1510,6 +1515,12 @@ static int networkSetAutostart(virNetwor
goto cleanup; goto cleanup;
} }

View File

@ -1,36 +0,0 @@
commit 7cfbb17978c467625afab866b7a22119789abee0
Author: Matthias Bolte <matthias.bolte@googlemail.com>
Date: Thu Nov 26 00:09:40 2009 +0100
xen: Fix unconditional freeing in xenDaemonListDefinedDomains()
Commit 790f0b3057787bb64da8c46c111ff8d3eff7b2af causes the contents of
the names array to be freed even on success, resulting in no listing of
defined but inactive Xen domains.
Spotted by Jim Fehlig
diff --git a/src/xen/xend_internal.c b/src/xen/xend_internal.c
index e370eb8..4d9dcd1 100644
--- a/src/xen/xend_internal.c
+++ b/src/xen/xend_internal.c
@@ -4696,12 +4696,17 @@ xenDaemonListDefinedDomains(virConnectPtr conn, char **const names, int maxnames
break;
}
+cleanup:
+ sexpr_free(root);
+ return(ret);
+
error:
for (i = 0; i < ret; ++i)
VIR_FREE(names[i]);
- sexpr_free(root);
- return(ret);
+ ret = -1;
+
+ goto cleanup;
}
/**

View File

@ -1,8 +1,8 @@
Index: libvirt-0.7.4/src/xen/xend_internal.c Index: libvirt-0.7.5/src/xen/xend_internal.c
=================================================================== ===================================================================
--- libvirt-0.7.4.orig/src/xen/xend_internal.c --- libvirt-0.7.5.orig/src/xen/xend_internal.c
+++ libvirt-0.7.4/src/xen/xend_internal.c +++ libvirt-0.7.5/src/xen/xend_internal.c
@@ -5365,7 +5365,10 @@ xenDaemonFormatSxprDisk(virConnectPtr co @@ -5409,7 +5409,10 @@ xenDaemonFormatSxprDisk(virConnectPtr co
} else if (def->device == VIR_DOMAIN_DISK_DEVICE_CDROM) { } else if (def->device == VIR_DOMAIN_DISK_DEVICE_CDROM) {
virBufferVSprintf(buf, "(dev '%s:cdrom')", def->dst); virBufferVSprintf(buf, "(dev '%s:cdrom')", def->dst);
} else { } else {

248
xen-shr-pages.patch Normal file
View File

@ -0,0 +1,248 @@
Index: libvirt-0.7.5/src/xen/xen_hypervisor.c
===================================================================
--- libvirt-0.7.5.orig/src/xen/xen_hypervisor.c
+++ libvirt-0.7.5/src/xen/xen_hypervisor.c
@@ -215,10 +215,26 @@ struct xen_v2d5_getdomaininfo {
};
typedef struct xen_v2d5_getdomaininfo xen_v2d5_getdomaininfo;
+struct xen_v2d6_getdomaininfo {
+ domid_t domain; /* the domain number */
+ uint32_t flags; /* flags, see before */
+ uint64_t tot_pages ALIGN_64; /* total number of pages used */
+ uint64_t max_pages ALIGN_64; /* maximum number of pages allowed */
+ uint64_t shr_pages ALIGN_64; /* number of shared pages */
+ uint64_t shared_info_frame ALIGN_64; /* MFN of shared_info struct */
+ uint64_t cpu_time ALIGN_64; /* CPU time used */
+ uint32_t nr_online_vcpus; /* Number of VCPUs currently online. */
+ uint32_t max_vcpu_id; /* Maximum VCPUID in use by this domain. */
+ uint32_t ssidref;
+ xen_domain_handle_t handle;
+};
+typedef struct xen_v2d6_getdomaininfo xen_v2d6_getdomaininfo;
+
union xen_getdomaininfo {
struct xen_v0_getdomaininfo v0;
struct xen_v2_getdomaininfo v2;
struct xen_v2d5_getdomaininfo v2d5;
+ struct xen_v2d6_getdomaininfo v2d6;
};
typedef union xen_getdomaininfo xen_getdomaininfo;
@@ -226,6 +242,7 @@ union xen_getdomaininfolist {
struct xen_v0_getdomaininfo *v0;
struct xen_v2_getdomaininfo *v2;
struct xen_v2d5_getdomaininfo *v2d5;
+ struct xen_v2d6_getdomaininfo *v2d6;
};
typedef union xen_getdomaininfolist xen_getdomaininfolist;
@@ -263,114 +280,147 @@ typedef struct xen_v2s5_availheap xen_v
#define XEN_GETDOMAININFOLIST_ALLOC(domlist, size) \
(hypervisor_version < 2 ? \
(VIR_ALLOC_N(domlist.v0, (size)) == 0) : \
- (dom_interface_version < 5 ? \
- (VIR_ALLOC_N(domlist.v2, (size)) == 0) : \
- (VIR_ALLOC_N(domlist.v2d5, (size)) == 0)))
+ (dom_interface_version >= 6 ? \
+ (VIR_ALLOC_N(domlist.v2d6, (size)) == 0) : \
+ (dom_interface_version == 5 ? \
+ (VIR_ALLOC_N(domlist.v2d5, (size)) == 0) : \
+ (VIR_ALLOC_N(domlist.v2, (size)) == 0))))
#define XEN_GETDOMAININFOLIST_FREE(domlist) \
(hypervisor_version < 2 ? \
VIR_FREE(domlist.v0) : \
- (dom_interface_version < 5 ? \
- VIR_FREE(domlist.v2) : \
- VIR_FREE(domlist.v2d5)))
+ (dom_interface_version >= 6 ? \
+ VIR_FREE(domlist.v2d6) : \
+ (dom_interface_version == 5 ? \
+ VIR_FREE(domlist.v2d5) : \
+ VIR_FREE(domlist.v2))))
#define XEN_GETDOMAININFOLIST_CLEAR(domlist, size) \
(hypervisor_version < 2 ? \
memset(domlist.v0, 0, sizeof(*domlist.v0) * size) : \
- (dom_interface_version < 5 ? \
- memset(domlist.v2, 0, sizeof(*domlist.v2) * size) : \
- memset(domlist.v2d5, 0, sizeof(*domlist.v2d5) * size)))
+ (dom_interface_version >= 6 ? \
+ memset(domlist.v2d6, 0, sizeof(*domlist.v2d6) * size) : \
+ (dom_interface_version == 5 ? \
+ memset(domlist.v2d5, 0, sizeof(*domlist.v2d5) * size) : \
+ memset(domlist.v2, 0, sizeof(*domlist.v2) * size))))
#define XEN_GETDOMAININFOLIST_DOMAIN(domlist, n) \
(hypervisor_version < 2 ? \
domlist.v0[n].domain : \
- (dom_interface_version < 5 ? \
- domlist.v2[n].domain : \
- domlist.v2d5[n].domain))
+ (dom_interface_version >= 6 ? \
+ domlist.v2d6[n].domain : \
+ (dom_interface_version == 5 ? \
+ domlist.v2d5[n].domain : \
+ domlist.v2[n].domain)))
#define XEN_GETDOMAININFOLIST_UUID(domlist, n) \
(hypervisor_version < 2 ? \
domlist.v0[n].handle : \
- (dom_interface_version < 5 ? \
- domlist.v2[n].handle : \
- domlist.v2d5[n].handle))
+ (dom_interface_version >= 6 ? \
+ domlist.v2d6[n].handle : \
+ (dom_interface_version == 5 ? \
+ domlist.v2d5[n].handle : \
+ domlist.v2[n].handle)))
#define XEN_GETDOMAININFOLIST_DATA(domlist) \
(hypervisor_version < 2 ? \
(void*)(domlist->v0) : \
- (dom_interface_version < 5 ? \
- (void*)(domlist->v2) : \
- (void*)(domlist->v2d5)))
+ (dom_interface_version >= 6 ? \
+ (void*)(domlist->v2d6) : \
+ (dom_interface_version == 5 ? \
+ (void*)(domlist->v2d5) : \
+ (void*)(domlist->v2))))
#define XEN_GETDOMAININFO_SIZE \
(hypervisor_version < 2 ? \
sizeof(xen_v0_getdomaininfo) : \
- (dom_interface_version < 5 ? \
- sizeof(xen_v2_getdomaininfo) : \
- sizeof(xen_v2d5_getdomaininfo)))
+ (dom_interface_version >= 6 ? \
+ sizeof(xen_v2d6_getdomaininfo) : \
+ (dom_interface_version == 5 ? \
+ sizeof(xen_v2d5_getdomaininfo) : \
+ sizeof(xen_v2_getdomaininfo))))
#define XEN_GETDOMAININFO_CLEAR(dominfo) \
(hypervisor_version < 2 ? \
memset(&(dominfo.v0), 0, sizeof(xen_v0_getdomaininfo)) : \
- (dom_interface_version < 5 ? \
- memset(&(dominfo.v2), 0, sizeof(xen_v2_getdomaininfo)) : \
- memset(&(dominfo.v2d5), 0, sizeof(xen_v2d5_getdomaininfo))))
+ (dom_interface_version >= 6 ? \
+ memset(&(dominfo.v2d6), 0, sizeof(xen_v2d6_getdomaininfo)) : \
+ (dom_interface_version == 5 ? \
+ memset(&(dominfo.v2d5), 0, sizeof(xen_v2d5_getdomaininfo)) : \
+ memset(&(dominfo.v2), 0, sizeof(xen_v2_getdomaininfo)))))
#define XEN_GETDOMAININFO_DOMAIN(dominfo) \
(hypervisor_version < 2 ? \
dominfo.v0.domain : \
- (dom_interface_version < 5 ? \
- dominfo.v2.domain : \
- dominfo.v2d5.domain))
+ (dom_interface_version >= 6 ? \
+ dominfo.v2d6.domain : \
+ (dom_interface_version == 5 ? \
+ dominfo.v2d5.domain : \
+ dominfo.v2.domain)))
#define XEN_GETDOMAININFO_CPUTIME(dominfo) \
(hypervisor_version < 2 ? \
dominfo.v0.cpu_time : \
- (dom_interface_version < 5 ? \
- dominfo.v2.cpu_time : \
- dominfo.v2d5.cpu_time))
+ (dom_interface_version >= 6 ? \
+ dominfo.v2d6.cpu_time : \
+ (dom_interface_version == 5 ? \
+ dominfo.v2d5.cpu_time : \
+ dominfo.v2.cpu_time)))
+
#define XEN_GETDOMAININFO_CPUCOUNT(dominfo) \
(hypervisor_version < 2 ? \
dominfo.v0.nr_online_vcpus : \
- (dom_interface_version < 5 ? \
- dominfo.v2.nr_online_vcpus : \
- dominfo.v2d5.nr_online_vcpus))
+ (dom_interface_version >= 6 ? \
+ dominfo.v2d6.nr_online_vcpus : \
+ (dom_interface_version == 5 ? \
+ dominfo.v2d5.nr_online_vcpus : \
+ dominfo.v2.nr_online_vcpus)))
#define XEN_GETDOMAININFO_MAXCPUID(dominfo) \
(hypervisor_version < 2 ? \
dominfo.v0.max_vcpu_id : \
- (dom_interface_version < 5 ? \
- dominfo.v2.max_vcpu_id : \
- dominfo.v2d5.max_vcpu_id))
+ (dom_interface_version >= 6 ? \
+ dominfo.v2d6.max_vcpu_id : \
+ (dom_interface_version == 5 ? \
+ dominfo.v2d5.max_vcpu_id : \
+ dominfo.v2.max_vcpu_id)))
#define XEN_GETDOMAININFO_FLAGS(dominfo) \
(hypervisor_version < 2 ? \
dominfo.v0.flags : \
- (dom_interface_version < 5 ? \
- dominfo.v2.flags : \
- dominfo.v2d5.flags))
+ (dom_interface_version >= 6 ? \
+ dominfo.v2d6.flags : \
+ (dom_interface_version == 5 ? \
+ dominfo.v2d5.flags : \
+ dominfo.v2.flags)))
#define XEN_GETDOMAININFO_TOT_PAGES(dominfo) \
(hypervisor_version < 2 ? \
dominfo.v0.tot_pages : \
- (dom_interface_version < 5 ? \
- dominfo.v2.tot_pages : \
- dominfo.v2d5.tot_pages))
+ (dom_interface_version >= 6 ? \
+ dominfo.v2d6.tot_pages : \
+ (dom_interface_version == 5 ? \
+ dominfo.v2d5.tot_pages : \
+ dominfo.v2.tot_pages)))
#define XEN_GETDOMAININFO_MAX_PAGES(dominfo) \
(hypervisor_version < 2 ? \
dominfo.v0.max_pages : \
- (dom_interface_version < 5 ? \
- dominfo.v2.max_pages : \
- dominfo.v2d5.max_pages))
+ (dom_interface_version >= 6 ? \
+ dominfo.v2d6.max_pages : \
+ (dom_interface_version == 5 ? \
+ dominfo.v2d5.max_pages : \
+ dominfo.v2.max_pages)))
#define XEN_GETDOMAININFO_UUID(dominfo) \
(hypervisor_version < 2 ? \
dominfo.v0.handle : \
- (dom_interface_version < 5 ? \
- dominfo.v2.handle : \
- dominfo.v2d5.handle))
+ (dom_interface_version >= 6 ? \
+ dominfo.v2d6.handle : \
+ (dom_interface_version == 5 ? \
+ dominfo.v2d5.handle : \
+ dominfo.v2.handle)))
static int
@@ -2050,6 +2100,12 @@ xenHypervisorInit(void)
DEBUG0("Using hypervisor call v2, sys ver6 dom ver5\n");
goto done;
}
+ /* Xen 4.0 */
+ dom_interface_version = 6; /* XEN_DOMCTL_INTERFACE_VERSION */
+ if (virXen_getvcpusinfo(fd, 0, 0, ipt, NULL, 0) == 0){
+ DEBUG0("Using hypervisor call v2, sys ver6 dom ver6\n");
+ goto done;
+ }
}
hypervisor_version = 1;

View File

@ -1,36 +0,0 @@
From acba9b620128c4dcdbb95a1ea06604f3013a0518 Mon Sep 17 00:00:00 2001
From: Jim Fehlig <jfehlig@novell.com>
Date: Mon, 7 Dec 2009 14:24:21 -0700
Subject: [PATCH] Plumb domain description tag in xend backend
xen-unstable changesets 20321 and 20521 added support for
description in xend domain config. This patch extends that
support in xend backend.
---
src/xen/xend_internal.c | 6 ++++++
1 files changed, 6 insertions(+), 0 deletions(-)
Index: libvirt-0.7.4/src/xen/xend_internal.c
===================================================================
--- libvirt-0.7.4.orig/src/xen/xend_internal.c
+++ libvirt-0.7.4/src/xen/xend_internal.c
@@ -2360,6 +2360,9 @@ xenDaemonParseSxpr(virConnectPtr conn,
}
virUUIDParse(tmp, def->uuid);
+ if (sexpr_node_copy(root, "domain/description", &def->description) < 0)
+ goto no_memory;
+
hvm = sexpr_lookup(root, "domain/image/hvm") ? 1 : 0;
if (!hvm) {
if (sexpr_node_copy(root, "domain/bootloader",
@@ -5676,6 +5679,9 @@ xenDaemonFormatSxpr(virConnectPtr conn,
virUUIDFormat(def->uuid, uuidstr);
virBufferVSprintf(&buf, "(uuid '%s')", uuidstr);
+ if (def->description)
+ virBufferVSprintf(&buf, "(description '%s')", def->description);
+
if (def->os.bootloader) {
if (def->os.bootloader[0])
virBufferVSprintf(&buf, "(bootloader '%s')", def->os.bootloader);