From 4a6373529e93e30c375c4220c4500d30740c2f2dad1c03cca5d57c74524c024e Mon Sep 17 00:00:00 2001 From: OBS User unknown Date: Fri, 24 Apr 2009 21:15:55 +0000 Subject: [PATCH] OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/libvirt?expand=0&rev=38 --- clone.patch | 10 +- cve-2008-5086.patch | 152 ---------------- detach-disk.patch | 40 ++--- devhelp.patch | 14 -- libvirt-0.5.1.tar.bz2 | 3 - libvirt-0.6.2.tar.bz2 | 3 + libvirt.changes | 26 +++ libvirt.spec | 98 ++++++----- libvirtd-defaults.patch | 18 +- migrate-params.patch | 12 +- snapshots.patch | 377 +++++++++++++++++++--------------------- socat.patch | 8 +- suse-network.patch | 40 ++--- xen-pv-cdrom.patch | 12 +- 14 files changed, 331 insertions(+), 482 deletions(-) delete mode 100644 cve-2008-5086.patch delete mode 100644 devhelp.patch delete mode 100644 libvirt-0.5.1.tar.bz2 create mode 100644 libvirt-0.6.2.tar.bz2 diff --git a/clone.patch b/clone.patch index 1111855..f8f2ecc 100644 --- a/clone.patch +++ b/clone.patch @@ -2,7 +2,7 @@ Index: src/lxc_container.c =================================================================== --- src/lxc_container.c.orig +++ src/lxc_container.c -@@ -603,6 +603,9 @@ int lxcContainerStart(virDomainDefPtr de +@@ -617,6 +617,9 @@ int lxcContainerStart(virDomainDefPtr de lxc_child_argv_t args = { def, nveths, veths, control, ttyPath }; /* allocate a stack for the container */ @@ -10,9 +10,9 @@ Index: src/lxc_container.c + stacksize *= 2; +#endif if (VIR_ALLOC_N(stack, stacksize) < 0) { - lxcError(NULL, NULL, VIR_ERR_NO_MEMORY, NULL); + virReportOOMError(NULL); return -1; -@@ -614,7 +617,11 @@ int lxcContainerStart(virDomainDefPtr de +@@ -628,7 +631,11 @@ int lxcContainerStart(virDomainDefPtr de if (def->nets != NULL) flags |= CLONE_NEWNET; @@ -24,7 +24,7 @@ Index: src/lxc_container.c VIR_FREE(stack); DEBUG("clone() returned, %d", pid); -@@ -640,18 +647,26 @@ int lxcContainerAvailable(int features) +@@ -654,18 +661,26 @@ int lxcContainerAvailable(int features) char *childStack; char *stack; int childStatus; @@ -52,4 +52,4 @@ Index: src/lxc_container.c +#endif VIR_FREE(stack); if (cpid < 0) { - DEBUG("clone call returned %s, container support is not enabled", + char ebuf[1024]; diff --git a/cve-2008-5086.patch b/cve-2008-5086.patch deleted file mode 100644 index 76db122..0000000 --- a/cve-2008-5086.patch +++ /dev/null @@ -1,152 +0,0 @@ -diff --git a/src/libvirt.c b/src/libvirt.c ---- a/src/libvirt.c -+++ b/src/libvirt.c -@@ -2296,6 +2296,16 @@ virDomainMigrate (virDomainPtr domain, - conn = domain->conn; /* Source connection. */ - if (!VIR_IS_CONNECT (dconn)) { - virLibConnError (conn, VIR_ERR_INVALID_CONN, __FUNCTION__); -+ return NULL; -+ } -+ -+ if (domain->conn->flags & VIR_CONNECT_RO) { -+ virLibDomainError(domain, VIR_ERR_OPERATION_DENIED, __FUNCTION__); -+ return NULL; -+ } -+ if (dconn->flags & VIR_CONNECT_RO) { -+ /* NB, delibrately report error against source object, not dest here */ -+ virLibDomainError(domain, VIR_ERR_OPERATION_DENIED, __FUNCTION__); - return NULL; - } - -@@ -2426,6 +2436,11 @@ virDomainMigratePrepare (virConnectPtr d - return -1; - } - -+ if (dconn->flags & VIR_CONNECT_RO) { -+ virLibConnError(dconn, VIR_ERR_OPERATION_DENIED, __FUNCTION__); -+ return -1; -+ } -+ - if (dconn->driver->domainMigratePrepare) - return dconn->driver->domainMigratePrepare (dconn, cookie, cookielen, - uri_in, uri_out, -@@ -2457,6 +2472,11 @@ virDomainMigratePerform (virDomainPtr do - } - conn = domain->conn; - -+ if (domain->conn->flags & VIR_CONNECT_RO) { -+ virLibDomainError(domain, VIR_ERR_OPERATION_DENIED, __FUNCTION__); -+ return -1; -+ } -+ - if (conn->driver->domainMigratePerform) - return conn->driver->domainMigratePerform (domain, cookie, cookielen, - uri, -@@ -2482,6 +2502,11 @@ virDomainMigrateFinish (virConnectPtr dc - - if (!VIR_IS_CONNECT (dconn)) { - virLibConnError (NULL, VIR_ERR_INVALID_CONN, __FUNCTION__); -+ return NULL; -+ } -+ -+ if (dconn->flags & VIR_CONNECT_RO) { -+ virLibConnError(dconn, VIR_ERR_OPERATION_DENIED, __FUNCTION__); - return NULL; - } - -@@ -2517,6 +2542,11 @@ virDomainMigratePrepare2 (virConnectPtr - return -1; - } - -+ if (dconn->flags & VIR_CONNECT_RO) { -+ virLibConnError(dconn, VIR_ERR_OPERATION_DENIED, __FUNCTION__); -+ return -1; -+ } -+ - if (dconn->driver->domainMigratePrepare2) - return dconn->driver->domainMigratePrepare2 (dconn, cookie, cookielen, - uri_in, uri_out, -@@ -2547,6 +2577,11 @@ virDomainMigrateFinish2 (virConnectPtr d - return NULL; - } - -+ if (dconn->flags & VIR_CONNECT_RO) { -+ virLibConnError(dconn, VIR_ERR_OPERATION_DENIED, __FUNCTION__); -+ return NULL; -+ } -+ - if (dconn->driver->domainMigrateFinish2) - return dconn->driver->domainMigrateFinish2 (dconn, dname, - cookie, cookielen, -@@ -2905,6 +2940,11 @@ virDomainBlockPeek (virDomainPtr dom, - } - conn = dom->conn; - -+ if (dom->conn->flags & VIR_CONNECT_RO) { -+ virLibDomainError(dom, VIR_ERR_OPERATION_DENIED, __FUNCTION__); -+ return (-1); -+ } -+ - if (!path) { - virLibDomainError (dom, VIR_ERR_INVALID_ARG, - _("path is NULL")); -@@ -2980,6 +3020,11 @@ virDomainMemoryPeek (virDomainPtr dom, - } - conn = dom->conn; - -+ if (dom->conn->flags & VIR_CONNECT_RO) { -+ virLibDomainError(dom, VIR_ERR_OPERATION_DENIED, __FUNCTION__); -+ return (-1); -+ } -+ - /* Flags must be VIR_MEMORY_VIRTUAL at the moment. - * - * Note on access to physical memory: A VIR_MEMORY_PHYSICAL flag is -@@ -3246,6 +3291,11 @@ virDomainSetAutostart(virDomainPtr domai - } - - conn = domain->conn; -+ -+ if (domain->conn->flags & VIR_CONNECT_RO) { -+ virLibDomainError(domain, VIR_ERR_OPERATION_DENIED, __FUNCTION__); -+ return (-1); -+ } - - if (conn->driver->domainSetAutostart) - return conn->driver->domainSetAutostart (domain, autostart); -@@ -4197,6 +4247,11 @@ virNetworkSetAutostart(virNetworkPtr net - return (-1); - } - -+ if (network->conn->flags & VIR_CONNECT_RO) { -+ virLibNetworkError(network, VIR_ERR_OPERATION_DENIED, __FUNCTION__); -+ return (-1); -+ } -+ - conn = network->conn; - - if (conn->networkDriver && conn->networkDriver->networkSetAutostart) -@@ -4395,6 +4450,11 @@ virConnectFindStoragePoolSources(virConn - return NULL; - } - -+ if (conn->flags & VIR_CONNECT_RO) { -+ virLibConnError(conn, VIR_ERR_OPERATION_DENIED, __FUNCTION__); -+ return NULL; -+ } -+ - if (conn->storageDriver && conn->storageDriver->findPoolSources) - return conn->storageDriver->findPoolSources(conn, type, srcSpec, flags); - -@@ -5068,6 +5128,11 @@ virStoragePoolSetAutostart(virStoragePoo - return (-1); - } - -+ if (pool->conn->flags & VIR_CONNECT_RO) { -+ virLibStoragePoolError(pool, VIR_ERR_OPERATION_DENIED, __FUNCTION__); -+ return (-1); -+ } -+ - conn = pool->conn; - - if (conn->storageDriver && conn->storageDriver->poolSetAutostart) diff --git a/detach-disk.patch b/detach-disk.patch index caf1da5..2bc1b14 100644 --- a/detach-disk.patch +++ b/detach-disk.patch @@ -1,31 +1,21 @@ -Index: libvirt-0.5.1/src/xend_internal.c +Index: libvirt-0.6.2/src/xend_internal.c =================================================================== ---- libvirt-0.5.1.orig/src/xend_internal.c -+++ libvirt-0.5.1/src/xend_internal.c -@@ -5465,11 +5465,16 @@ virDomainXMLDevID(virDomainPtr domain, - char *xref; - - if (dev->type == VIR_DOMAIN_DEVICE_DISK) { -- strcpy(class, "vbd"); - if (dev->data.disk->dst == NULL) +--- libvirt-0.6.2.orig/src/xend_internal.c ++++ libvirt-0.6.2/src/xend_internal.c +@@ -5829,7 +5829,7 @@ virDomainXMLDevID(virDomainPtr domain, return -1; -+ -+ if (dev->data.disk->driverName && -+ (strcasecmp(dev->data.disk->driverName, "tap") == 0)) -+ strcpy(class, "tap"); -+ else -+ strcpy(class, "vbd"); + xenUnifiedLock(priv); xref = xenStoreDomainGetDiskID(domain->conn, domain->id, - dev->data.disk->dst); + dev->data.disk->dst, class); + xenUnifiedUnlock(priv); if (xref == NULL) return -1; - -Index: libvirt-0.5.1/src/xs_internal.c +Index: libvirt-0.6.2/src/xs_internal.c =================================================================== ---- libvirt-0.5.1.orig/src/xs_internal.c -+++ libvirt-0.5.1/src/xs_internal.c -@@ -917,7 +917,8 @@ xenStoreDomainGetNetworkID(virConnectPtr +--- libvirt-0.6.2.orig/src/xs_internal.c ++++ libvirt-0.6.2/src/xs_internal.c +@@ -966,7 +966,8 @@ xenStoreDomainGetNetworkID(virConnectPtr * freed by the caller. */ char * @@ -35,7 +25,7 @@ Index: libvirt-0.5.1/src/xs_internal.c char dir[80], path[128], **list = NULL, *val = NULL; unsigned int devlen, len, i, num; char *ret = NULL; -@@ -935,7 +936,7 @@ xenStoreDomainGetDiskID(virConnectPtr co +@@ -984,7 +985,7 @@ xenStoreDomainGetDiskID(virConnectPtr co if (devlen <= 0) return (NULL); @@ -44,11 +34,11 @@ Index: libvirt-0.5.1/src/xs_internal.c list = xs_directory(priv->xshandle, 0, dir, &num); if (list != NULL) { for (i = 0; i < num; i++) { -Index: libvirt-0.5.1/src/xs_internal.h +Index: libvirt-0.6.2/src/xs_internal.h =================================================================== ---- libvirt-0.5.1.orig/src/xs_internal.h -+++ libvirt-0.5.1/src/xs_internal.h -@@ -48,7 +48,8 @@ char * xenStoreDomainGetNetworkID(virCo +--- libvirt-0.6.2.orig/src/xs_internal.h ++++ libvirt-0.6.2/src/xs_internal.h +@@ -49,7 +49,8 @@ char * xenStoreDomainGetNetworkID(virCo const char *mac); char * xenStoreDomainGetDiskID(virConnectPtr conn, int id, diff --git a/devhelp.patch b/devhelp.patch deleted file mode 100644 index 2028ea4..0000000 --- a/devhelp.patch +++ /dev/null @@ -1,14 +0,0 @@ -Index: libvirt-0.4.6/docs/devhelp/Makefile.am -=================================================================== ---- libvirt-0.4.6.orig/docs/devhelp/Makefile.am -+++ libvirt-0.4.6/docs/devhelp/Makefile.am -@@ -1,7 +1,8 @@ - DEVHELP_DIR=$(datadir)/gtk-doc/html/libvirt - HTML_FILES=index.html general.html $(HTML_MODULES) - HTML_MODULES= \ -- libvirt-libvirt.html -+ libvirt-libvirt.html \ -+ libvirt-virterror.html - - EXTRA_FORMAT= \ - home.png \ diff --git a/libvirt-0.5.1.tar.bz2 b/libvirt-0.5.1.tar.bz2 deleted file mode 100644 index 41e0a2a..0000000 --- a/libvirt-0.5.1.tar.bz2 +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:cc6fc1909f40667bd32574a11f4052160ed94620b79f3d5db5541f25a12429ee -size 3778088 diff --git a/libvirt-0.6.2.tar.bz2 b/libvirt-0.6.2.tar.bz2 new file mode 100644 index 0000000..96657b7 --- /dev/null +++ b/libvirt-0.6.2.tar.bz2 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:15297915384d7f9cab9b21ca7fe9c301e1574a686c4927c69ffc7e65f148e7a5 +size 4144248 diff --git a/libvirt.changes b/libvirt.changes index 454de2b..7d4ec79 100644 --- a/libvirt.changes +++ b/libvirt.changes @@ -1,3 +1,29 @@ +------------------------------------------------------------------- +Fri Apr 24 14:26:39 MDT 2009 - jfehlig@novell.com + +- Removed unnecessary call to fillup_and_insserv macro in + %post scriptlet + +------------------------------------------------------------------- +Wed Apr 22 17:33:01 MDT 2009 - jfehlig@novell.com + +- Updated to version 0.6.2 + - support SASL auth for VNC server + - memory ballooning in QEMU + - SCSI HBA storage pool support + - PCI passthrough in Xen driver + - new APIs for Node device detach reattach and reset + - sVirt mandatory access control support + - thread safety of the API and event handling + - allow QEmu domains to survive daemon restart + - extended logging capabilities + - support copy-on-write storage volumes + - support of storage cache control options for QEMU/KVM +- Improvements from lnussel@suse.de + - add %jobs macro again + - package default qemu network and augeas config files again + - don't start libvirtd by default (bnc#496838) + ------------------------------------------------------------------- Mon Apr 20 17:01:38 CEST 2009 - crrodriguez@suse.de diff --git a/libvirt.spec b/libvirt.spec index 8019fc8..75bf101 100644 --- a/libvirt.spec +++ b/libvirt.spec @@ -1,5 +1,5 @@ # -# spec file for package libvirt (Version 0.5.1) +# spec file for package libvirt (Version 0.6.2) # # Copyright (c) 2009 SUSE LINUX Products GmbH, Nuernberg, Germany. # @@ -51,8 +51,8 @@ Url: http://libvirt.org/ License: LGPL v2.1 or later Group: Development/Libraries/C and C++ AutoReqProv: yes -Version: 0.5.1 -Release: 3 +Version: 0.6.2 +Release: 1 Summary: A C toolkit to interract with the virtualization capabilities of Linux Requires: readline Requires: ncurses @@ -63,6 +63,7 @@ Requires: lvm2 Requires: parted #Requires: /usr/bin/qemu-img Recommends: cyrus-sasl-digestmd5 +Recommends: logrotate Requires: dnsmasq Requires: PolicyKit >= 0.6 Requires: socat @@ -79,10 +80,8 @@ Patch4: vnc-port.patch Patch5: xen-pv-cdrom.patch Patch6: detach-disk.patch Patch7: migrate-params.patch -Patch8: cve-2008-5086.patch -Patch9: devhelp.patch -Patch10: suse-network.patch -Patch11: snapshots.patch +Patch8: suse-network.patch +Patch9: snapshots.patch BuildRoot: %{_tmppath}/%{name}-%{version}-build %description @@ -176,16 +175,14 @@ Authors: %setup -q %patch0 -p1 %patch1 -p1 -%patch2 -p1 +#%patch2 -p1 %patch3 -%patch4 -p1 +#%patch4 -p1 %patch5 -p1 %patch6 -p1 %patch7 -p1 %patch8 -p1 %patch9 -p1 -%patch10 -p1 -%patch11 -p1 %build %if ! %{with_xen} @@ -199,7 +196,8 @@ Authors: %endif autoreconf -f -i export CFLAGS="$RPM_OPT_FLAGS" -%configure --disable-static --with-pic %{?_without_xen} \ +%configure --disable-static --with-pic \ + %{?_without_xen} \ %{?_without_lxc} \ %{?_with_selinux} \ --libexecdir=%{_libdir}/%{name} \ @@ -209,8 +207,10 @@ export CFLAGS="$RPM_OPT_FLAGS" 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_MODPROBE=/sbin/modprobe \ + ac_cv_path_UDEVADM=/sbin/udevadm \ ac_cv_path_SHOWMOUNT=/usr/sbin/showmount -make DOCS_DIR=%{_docdir}/%{name}-python EXAMPLE_DIR=%{_docdir}/%{name}-python/examples HTML_DIR=%{_docdir}/%{name} +make %{?jobs:-j%jobs} DOCS_DIR=%{_docdir}/%{name}-python EXAMPLE_DIR=%{_docdir}/%{name}-python/examples HTML_DIR=%{_docdir}/%{name} %install %makeinstall DOCS_DIR=%{_docdir}/%{name}-python EXAMPLE_DIR=%{_docdir}/%{name}-python/examples HTML_DIR=%{_docdir}/%{name} @@ -218,14 +218,8 @@ cp -a AUTHORS ChangeLog COPYING NEWS README TODO $RPM_BUILD_ROOT%{_docdir}/%{nam cd docs ; cp -a *.html $RPM_BUILD_ROOT%{_docdir}/%{name} ; cp -a *.png $RPM_BUILD_ROOT%{_docdir}/%{name} ; cd .. # remove currently unsupported locale(s) rm -rf $RPM_BUILD_ROOT/usr/share/locale/sr@latin -# for now, do not install the default network definition -rm -f $RPM_BUILD_ROOT%{_sysconfdir}/libvirt/qemu/networks/default.xml +# don't autostart the default network rm -f $RPM_BUILD_ROOT%{_sysconfdir}/libvirt/qemu/networks/autostart/default.xml -# do not package augeas config files for now -rm -f $RPM_BUILD_ROOT%{_datadir}/augeas/lenses/libvirtd.aug -rm -f $RPM_BUILD_ROOT%{_datadir}/augeas/lenses/libvirtd_qemu.aug -rm -f $RPM_BUILD_ROOT%{_datadir}/augeas/lenses/tests/test_libvirtd.aug -rm -f $RPM_BUILD_ROOT%{_datadir}/augeas/lenses/tests/test_libvirtd_qemu.aug mkdir -p $RPM_BUILD_ROOT/%{_localstatedir}/run/libvirt mkdir -p $RPM_BUILD_ROOT/%{_localstatedir}/lib/libvirt rm $RPM_BUILD_ROOT%{_docdir}/%{name}/{*.c,examples.x*} @@ -255,9 +249,7 @@ ln -s /etc/init.d/libvirtd $RPM_BUILD_ROOT/usr/sbin/rclibvirtd %clean rm -rf $RPM_BUILD_ROOT -%post -/sbin/ldconfig -%{fillup_and_insserv -f -y libvirtd} +%post -p /sbin/ldconfig %preun %stop_on_removal libvirtd @@ -287,6 +279,8 @@ rm -rf $RPM_BUILD_ROOT %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 %{_sysconfdir}/libvirt/qemu/networks/default.xml +%config %{_sysconfdir}/logrotate.d/libvirtd %dir /%{_localstatedir}/run/libvirt/ %dir /%{_localstatedir}/lib/libvirt/ %config /etc/init.d/libvirtd @@ -297,6 +291,8 @@ rm -rf $RPM_BUILD_ROOT %if 0%{?suse_version} > 1030 %{_datadir}/PolicyKit/policy/org.libvirt.unix.policy %endif +%{_datadir}/libvirt +%{_datadir}/augeas %files devel %defattr(-, root, root) @@ -319,12 +315,32 @@ rm -rf $RPM_BUILD_ROOT %{py_sitedir}/libvirtmod* %changelog +* Fri Apr 24 2009 jfehlig@novell.com +- Removed unnecessary call to fillup_and_insserv macro in + %%post scriptlet +* Wed Apr 22 2009 jfehlig@novell.com +- Updated to version 0.6.2 + - support SASL auth for VNC server + - memory ballooning in QEMU + - SCSI HBA storage pool support + - PCI passthrough in Xen driver + - new APIs for Node device detach reattach and reset + - sVirt mandatory access control support + - thread safety of the API and event handling + - allow QEmu domains to survive daemon restart + - extended logging capabilities + - support copy-on-write storage volumes + - support of storage cache control options for QEMU/KVM +- Improvements from lnussel@suse.de + - add %%jobs macro again + - package default qemu network and augeas config files again + - don't start libvirtd by default (bnc#496838) * Mon Apr 20 2009 crrodriguez@suse.de - use --disable-static instead of just removing static libraries -* Sat Jan 31 2009 jfehlig@novell.com +* Fri Jan 30 2009 jfehlig@novell.com - Fix build for architectures not supporting numa - Forward port suse-network.patch and snapshots.patch -* Thu Jan 29 2009 jfehlig@novell.com +* Wed Jan 28 2009 jfehlig@novell.com - Updated to version 0.5.1 - CPU and scheduler support for LXC - SDL display configuration @@ -354,19 +370,19 @@ rm -rf $RPM_BUILD_ROOT * Mon Nov 24 2008 jfehlig@novell.com - Fix connecting/disconnecting ISO via virt-manager bnc#446773 -* Fri Nov 21 2008 jfehlig@novell.com +* Thu Nov 20 2008 jfehlig@novell.com - Fix detach of Xen tap devices bnc#410644 and bnc#411633 -* Fri Nov 07 2008 jfehlig@novell.com +* Thu Nov 06 2008 jfehlig@novell.com - Fix handling of iso/cdrom for xen pv domains. bnc#437388 -* Thu Nov 06 2008 jfehlig@novell.com +* Wed Nov 05 2008 jfehlig@novell.com - Expose networks managed outside of libvirt as read-only. bnc#441633 * Wed Nov 05 2008 jfehlig@novell.com - Fix vnc port assignement in domain XML bnc#441625 -* Fri Oct 24 2008 jfehlig@novell.com +* Thu Oct 23 2008 jfehlig@novell.com - Add upstream patches to fix ordering problem with setting up cgroup containment on LXC domains. bnc#437816 @@ -378,9 +394,9 @@ rm -rf $RPM_BUILD_ROOT * Mon Oct 06 2008 jfehlig@novell.com - Use xend vs hypercall interface to change max mem setting bnc#431766 -* Thu Oct 02 2008 jfehlig@novell.com -- Enabled libvirtd listen mode in libvirtd init script. * Wed Oct 01 2008 jfehlig@novell.com +- Enabled libvirtd listen mode in libvirtd init script. +* Tue Sep 30 2008 jfehlig@novell.com - Updated to version 0.4.6 - avoid a segfault if missing qemu emulator - reading vncdisplay from xend domain @@ -406,9 +422,9 @@ rm -rf $RPM_BUILD_ROOT * Tue Sep 02 2008 kwolf@suse.de - Added snapshot support. Implemented snapshot_create/apply/delete for Xen. -* Sat Aug 30 2008 jfehlig@novell.com -- Fixed bugs in nfs storage pool creation/deletion * Fri Aug 29 2008 jfehlig@novell.com +- Fixed bugs in nfs storage pool creation/deletion +* Thu Aug 28 2008 jfehlig@novell.com - Fixed bugs in LVM storage pool creation. logical-storage-driver.patch submitted upstream * Wed Aug 27 2008 jfehlig@novell.com @@ -423,7 +439,7 @@ rm -rf $RPM_BUILD_ROOT - Fixed spec file breakage due to SELinux enablement * Fri Aug 22 2008 prusnak@suse.cz - enabled SELinux support [Fate#303662] -* Tue Aug 12 2008 jfehlig@novell.com +* Mon Aug 11 2008 jfehlig@novell.com - Cleanup of libvirtd init script - Removed dnsmasq from BuildRequires * Sat Aug 09 2008 jfehlig@novell.com @@ -452,7 +468,7 @@ rm -rf $RPM_BUILD_ROOT * Thu Apr 10 2008 jfehlig@novell.com - Fix NULL pointer dereference in auth callback. bnc#373180, bnc#354995 -* Thu Jan 10 2008 jfehlig@novell.com +* Wed Jan 09 2008 jfehlig@novell.com - Remove Requires of nc package. netcat is the equivalent but it does not support unix domain sockets so no need to require it either. @@ -477,11 +493,11 @@ rm -rf $RPM_BUILD_ROOT to be a subtle dependency issue in one of the makefiles which is causing problems with generation of python bindings when jobs > 1. Bug #329032. -* Tue Aug 21 2007 jfehlig@novell.com +* Mon Aug 20 2007 jfehlig@novell.com - Added init script for libvirtd. libvirtd is needed to support management of qemu/kvm guests. Some Xen networking is handled through libvirt as well - bug #298021. -* Tue Jul 24 2007 jfehlig@novell.com +* Mon Jul 23 2007 jfehlig@novell.com - Update to libvirt-0.3.0 - Secure Remote support - Documentation: remote support, description of the URI connection @@ -522,14 +538,14 @@ rm -rf $RPM_BUILD_ROOT - Fixed docdir destination. - Build with CFLAGS. - Spec file cleanup. -* Wed Feb 21 2007 jfehlig@novell.com +* Tue Feb 20 2007 jfehlig@novell.com - Removed usr/lib/libvirt_proxy setuid binary from package. Fixes bug #246610. -* Sat Feb 17 2007 jfehlig@novell.com +* Fri Feb 16 2007 jfehlig@novell.com - Updated to latest release. Many of the issues seen in virt-manager have been caused by bugs / missing functionality in libvirt. This upate provides a better basis for virt-manager. -* Thu Jan 11 2007 jfehlig@novell.com +* Wed Jan 10 2007 jfehlig@novell.com - Updated to latest release, version 0.1.10. Submitting to SLES10 SP1 to provide base functionality for FATE feature 301181. - more localizations @@ -541,7 +557,7 @@ rm -rf $RPM_BUILD_ROOT - support graphic framebuffer for Xen paravirt (Daniel Berrange) - VNC listen IP range support (Daniel Berrange) - support for default Xen config files and inactive domains of 3.0.4 (Daniel Berrange) -* Sat Dec 09 2006 jfehlig@novell.com +* Fri Dec 08 2006 jfehlig@novell.com - Updated to latest release, version 0.1.9. - python bindings: release interpeter lock when calling C (Daniel Berrange) - don't raise HTTP error when looking informations for a domain diff --git a/libvirtd-defaults.patch b/libvirtd-defaults.patch index 4c3d5bd..7a64b74 100644 --- a/libvirtd-defaults.patch +++ b/libvirtd-defaults.patch @@ -1,7 +1,7 @@ -Index: libvirt-0.5.1/qemud/libvirtd.conf +Index: libvirt-0.6.2/qemud/libvirtd.conf =================================================================== ---- libvirt-0.5.1.orig/qemud/libvirtd.conf -+++ libvirt-0.5.1/qemud/libvirtd.conf +--- libvirt-0.6.2.orig/qemud/libvirtd.conf ++++ libvirt-0.6.2/qemud/libvirtd.conf @@ -18,8 +18,8 @@ # It is necessary to setup a CA and issue server certificates before # using this capability. @@ -28,12 +28,12 @@ Index: libvirt-0.5.1/qemud/libvirtd.conf # Override the default mDNS advertizement name. This must be # unique on the immediate broadcast network. -Index: libvirt-0.5.1/qemud/qemud.c +Index: libvirt-0.6.2/qemud/qemud.c =================================================================== ---- libvirt-0.5.1.orig/qemud/qemud.c -+++ libvirt-0.5.1/qemud/qemud.c -@@ -92,7 +92,7 @@ static int sigwrite = -1; /* Signa - static int ipsock = 0; /* -l Listen for TCP/IP */ +--- libvirt-0.6.2.orig/qemud/qemud.c ++++ libvirt-0.6.2/qemud/qemud.c +@@ -132,7 +132,7 @@ static char *log_filters = NULL; + static char *log_outputs = NULL; /* Defaults for configuration file elements */ -static int listen_tls = 1; @@ -41,7 +41,7 @@ Index: libvirt-0.5.1/qemud/qemud.c static int listen_tcp = 0; static char *listen_addr = (char *) LIBVIRTD_LISTEN_ADDR; static char *tls_port = (char *) LIBVIRTD_TLS_PORT; -@@ -116,7 +116,7 @@ static int auth_tcp = REMOTE_AUTH_NONE; +@@ -154,7 +154,7 @@ static int auth_tcp = REMOTE_AUTH_NONE; #endif static int auth_tls = REMOTE_AUTH_NONE; diff --git a/migrate-params.patch b/migrate-params.patch index cc6ce7d..aaa7c90 100644 --- a/migrate-params.patch +++ b/migrate-params.patch @@ -1,10 +1,10 @@ -Index: libvirt-0.5.1/src/xend_internal.c +Index: libvirt-0.6.2/src/xend_internal.c =================================================================== ---- libvirt-0.5.1.orig/src/xend_internal.c -+++ libvirt-0.5.1/src/xend_internal.c -@@ -4226,6 +4226,8 @@ xenDaemonDomainMigratePerform (virDomain - "live", live, - "port", port, +--- libvirt-0.6.2.orig/src/xend_internal.c ++++ libvirt-0.6.2/src/xend_internal.c +@@ -4453,6 +4453,8 @@ xenDaemonDomainMigratePerform (virDomain + "node", "-1", + "ssl", "0", "resource", "0", /* required, xend ignores it */ + "node", "-1", /* numa node, xen c/s 17753 */ + "ssl", "0", /* ssl migration, xen c/s 17709 */ diff --git a/snapshots.patch b/snapshots.patch index 1d84f3a..84caf79 100644 --- a/snapshots.patch +++ b/snapshots.patch @@ -1,8 +1,8 @@ -Index: libvirt-0.5.1/include/libvirt/libvirt.h.in +Index: libvirt-0.6.2/include/libvirt/libvirt.h.in =================================================================== ---- libvirt-0.5.1.orig/include/libvirt/libvirt.h.in -+++ libvirt-0.5.1/include/libvirt/libvirt.h.in -@@ -470,6 +470,21 @@ int virDomainRestore +--- libvirt-0.6.2.orig/include/libvirt/libvirt.h.in ++++ libvirt-0.6.2/include/libvirt/libvirt.h.in +@@ -537,6 +537,21 @@ int virDomainRestore const char *from); /* @@ -24,11 +24,11 @@ Index: libvirt-0.5.1/include/libvirt/libvirt.h.in * Domain core dump */ int virDomainCoreDump (virDomainPtr domain, -Index: libvirt-0.5.1/src/libvirt.c +Index: libvirt-0.6.2/src/libvirt.c =================================================================== ---- libvirt-0.5.1.orig/src/libvirt.c -+++ libvirt-0.5.1/src/libvirt.c -@@ -1777,6 +1777,168 @@ virDomainRestore(virConnectPtr conn, con +--- libvirt-0.6.2.orig/src/libvirt.c ++++ libvirt-0.6.2/src/libvirt.c +@@ -2067,6 +2067,168 @@ error: return -1; } @@ -197,10 +197,10 @@ Index: libvirt-0.5.1/src/libvirt.c /** * virDomainCoreDump: * @domain: a domain object -Index: libvirt-0.5.1/src/driver.h +Index: libvirt-0.6.2/src/driver.h =================================================================== ---- libvirt-0.5.1.orig/src/driver.h -+++ libvirt-0.5.1/src/driver.h +--- libvirt-0.6.2.orig/src/driver.h ++++ libvirt-0.6.2/src/driver.h @@ -145,6 +145,21 @@ typedef int (*virDrvDomainRestore) (virConnectPtr conn, const char *from); @@ -223,24 +223,23 @@ Index: libvirt-0.5.1/src/driver.h (*virDrvDomainCoreDump) (virDomainPtr domain, const char *to, int flags); -@@ -387,6 +402,12 @@ struct _virDriver { - virDrvDomainEventDeregister domainEventDeregister; - virDrvDomainMigratePrepare2 domainMigratePrepare2; - virDrvDomainMigrateFinish2 domainMigrateFinish2; -+ +@@ -408,6 +423,11 @@ struct _virDriver { + virDrvNodeDeviceDettach nodeDeviceDettach; + virDrvNodeDeviceReAttach nodeDeviceReAttach; + virDrvNodeDeviceReset nodeDeviceReset; + virDrvDomainSnapshotCreate domainSnapshotCreate; -+ virDrvDomainSnapshotApply domainSnapshotApply; ++ virDrvDomainSnapshotApply domainSnapshotApply; + virDrvDomainSnapshotDelete domainSnapshotDelete; + virDrvDomainNumOfSnapshots domainNumOfSnapshots; -+ virDrvDomainListSnapshots domainListSnapshots; ++ virDrvDomainListSnapshots domainListSnapshots; }; typedef int -Index: libvirt-0.5.1/src/xen_unified.c +Index: libvirt-0.6.2/src/xen_unified.c =================================================================== ---- libvirt-0.5.1.orig/src/xen_unified.c -+++ libvirt-0.5.1/src/xen_unified.c -@@ -924,6 +924,81 @@ xenUnifiedDomainRestore (virConnectPtr c +--- libvirt-0.6.2.orig/src/xen_unified.c ++++ libvirt-0.6.2/src/xen_unified.c +@@ -931,6 +931,81 @@ xenUnifiedDomainRestore (virConnectPtr c } static int @@ -322,39 +321,39 @@ Index: libvirt-0.5.1/src/xen_unified.c xenUnifiedDomainCoreDump (virDomainPtr dom, const char *to, int flags) { GET_PRIVATE(dom->conn); -@@ -1425,6 +1500,11 @@ static virDriver xenUnifiedDriver = { - .domainGetInfo = xenUnifiedDomainGetInfo, - .domainSave = xenUnifiedDomainSave, - .domainRestore = xenUnifiedDomainRestore, -+ .domainSnapshotCreate = xenUnifiedDomainSnapshotCreate, -+ .domainSnapshotApply = xenUnifiedDomainSnapshotApply, -+ .domainSnapshotDelete = xenUnifiedDomainSnapshotDelete, -+ .domainNumOfSnapshots = xenUnifiedDomainNumOfSnapshots, -+ .domainListSnapshots = xenUnifiedDomainListSnapshots, - .domainCoreDump = xenUnifiedDomainCoreDump, - .domainSetVcpus = xenUnifiedDomainSetVcpus, - .domainPinVcpu = xenUnifiedDomainPinVcpu, -Index: libvirt-0.5.1/src/xen_unified.h +@@ -1608,6 +1683,11 @@ static virDriver xenUnifiedDriver = { + xenUnifiedNodeDeviceDettach, /* nodeDeviceDettach */ + xenUnifiedNodeDeviceReAttach, /* nodeDeviceReAttach */ + xenUnifiedNodeDeviceReset, /* nodeDeviceReset */ ++ xenUnifiedDomainSnapshotCreate, ++ xenUnifiedDomainSnapshotApply, ++ xenUnifiedDomainSnapshotDelete, ++ xenUnifiedDomainNumOfSnapshots, ++ xenUnifiedDomainListSnapshots, + }; + + /** +Index: libvirt-0.6.2/src/xen_unified.h =================================================================== ---- libvirt-0.5.1.orig/src/xen_unified.h -+++ libvirt-0.5.1/src/xen_unified.h -@@ -78,6 +78,11 @@ struct xenUnifiedDriver { - virDrvDomainGetInfo domainGetInfo; - virDrvDomainSave domainSave; - virDrvDomainRestore domainRestore; +--- libvirt-0.6.2.orig/src/xen_unified.h ++++ libvirt-0.6.2/src/xen_unified.h +@@ -95,6 +95,11 @@ struct xenUnifiedDriver { + virDrvDomainGetSchedulerType domainGetSchedulerType; + virDrvDomainGetSchedulerParameters domainGetSchedulerParameters; + virDrvDomainSetSchedulerParameters domainSetSchedulerParameters; + virDrvDomainSnapshotCreate domainSnapshotCreate; + virDrvDomainSnapshotApply domainSnapshotApply; + virDrvDomainSnapshotDelete domainSnapshotDelete; + virDrvDomainNumOfSnapshots domainNumOfSnapshots; + virDrvDomainListSnapshots domainListSnapshots; - virDrvDomainCoreDump domainCoreDump; - virDrvDomainSetVcpus domainSetVcpus; - virDrvDomainPinVcpu domainPinVcpu; -Index: libvirt-0.5.1/src/xend_internal.c + }; + + typedef struct xenXMConfCache *xenXMConfCachePtr; +Index: libvirt-0.6.2/src/xend_internal.c =================================================================== ---- libvirt-0.5.1.orig/src/xend_internal.c -+++ libvirt-0.5.1/src/xend_internal.c -@@ -51,6 +51,12 @@ +--- libvirt-0.6.2.orig/src/xend_internal.c ++++ libvirt-0.6.2/src/xend_internal.c +@@ -53,6 +53,12 @@ #ifndef PROXY @@ -367,7 +366,7 @@ Index: libvirt-0.5.1/src/xend_internal.c /* * The number of Xen scheduler parameters */ -@@ -3024,6 +3030,87 @@ xenDaemonDomainRestore(virConnectPtr con +@@ -3233,6 +3239,87 @@ xenDaemonDomainRestore(virConnectPtr con } return xend_op(conn, "", "op", "restore", "file", filename, NULL); } @@ -455,87 +454,87 @@ Index: libvirt-0.5.1/src/xend_internal.c #endif /* !PROXY */ /** -@@ -4781,6 +4868,11 @@ struct xenUnifiedDriver xenDaemonDriver - xenDaemonDomainGetInfo, /* domainGetInfo */ - xenDaemonDomainSave, /* domainSave */ - xenDaemonDomainRestore, /* domainRestore */ +@@ -5025,6 +5112,11 @@ struct xenUnifiedDriver xenDaemonDriver + xenDaemonGetSchedulerType, /* domainGetSchedulerType */ + xenDaemonGetSchedulerParameters, /* domainGetSchedulerParameters */ + xenDaemonSetSchedulerParameters, /* domainSetSchedulerParameters */ + xenDaemonDomainSnapshotCreate, /* domainSnapshotCreate */ + xenDaemonDomainSnapshotApply, /* domainSnapshotApply */ + xenDaemonDomainSnapshotDelete, /* domainSnapshotDelete */ + xenDaemonDomainNumOfSnapshots, /* domainNumOfSnapshots */ + xenDaemonDomainListSnapshots, /* domainListSnapshots */ - xenDaemonDomainCoreDump, /* domainCoreDump */ - xenDaemonDomainSetVcpus, /* domainSetVcpus */ - xenDaemonDomainPinVcpu, /* domainPinVcpu */ -Index: libvirt-0.5.1/src/proxy_internal.c + }; + + /************************************************************************ +Index: libvirt-0.6.2/src/proxy_internal.c =================================================================== ---- libvirt-0.5.1.orig/src/proxy_internal.c -+++ libvirt-0.5.1/src/proxy_internal.c -@@ -68,6 +68,11 @@ struct xenUnifiedDriver xenProxyDriver = - xenProxyDomainGetInfo, /* domainGetInfo */ - NULL, /* domainSave */ - NULL, /* domainRestore */ +--- libvirt-0.6.2.orig/src/proxy_internal.c ++++ libvirt-0.6.2/src/proxy_internal.c +@@ -84,6 +84,11 @@ struct xenUnifiedDriver xenProxyDriver = + NULL, /* domainGetSchedulerType */ + NULL, /* domainGetSchedulerParameters */ + NULL, /* domainSetSchedulerParameters */ + NULL, /* domainSnapshotCreate */ + NULL, /* domainSnapshotApply */ + NULL, /* domainSnapshotDelete */ + NULL, /* domainNumOfSnapshots */ + NULL, /* domainListSnapshots */ - NULL, /* domainCoreDump */ - NULL, /* domainSetVcpus */ - NULL, /* domainPinVcpu */ -Index: libvirt-0.5.1/src/xen_internal.c + }; + + +Index: libvirt-0.6.2/src/xen_internal.c =================================================================== ---- libvirt-0.5.1.orig/src/xen_internal.c -+++ libvirt-0.5.1/src/xen_internal.c -@@ -699,6 +699,11 @@ struct xenUnifiedDriver xenHypervisorDri - xenHypervisorGetDomainInfo, /* domainGetInfo */ - NULL, /* domainSave */ - NULL, /* domainRestore */ +--- libvirt-0.6.2.orig/src/xen_internal.c ++++ libvirt-0.6.2/src/xen_internal.c +@@ -731,6 +731,11 @@ struct xenUnifiedDriver xenHypervisorDri + xenHypervisorGetSchedulerType, /* domainGetSchedulerType */ + xenHypervisorGetSchedulerParameters, /* domainGetSchedulerParameters */ + xenHypervisorSetSchedulerParameters, /* domainSetSchedulerParameters */ + NULL, /* domainSnapshotCreate */ + NULL, /* domainSnapshotApply */ + NULL, /* domainSnapshotDelete */ + NULL, /* domainNumOfSnapshots */ + NULL, /* domainListSnapshots */ - NULL, /* domainCoreDump */ - xenHypervisorSetVcpus, /* domainSetVcpus */ - xenHypervisorPinVcpu, /* domainPinVcpu */ -Index: libvirt-0.5.1/src/xm_internal.c + }; + #endif /* !PROXY */ + +Index: libvirt-0.6.2/src/xm_internal.c =================================================================== ---- libvirt-0.5.1.orig/src/xm_internal.c -+++ libvirt-0.5.1/src/xm_internal.c -@@ -100,6 +100,11 @@ struct xenUnifiedDriver xenXMDriver = { - xenXMDomainGetInfo, /* domainGetInfo */ - NULL, /* domainSave */ - NULL, /* domainRestore */ +--- libvirt-0.6.2.orig/src/xm_internal.c ++++ libvirt-0.6.2/src/xm_internal.c +@@ -116,6 +116,11 @@ struct xenUnifiedDriver xenXMDriver = { + NULL, /* domainGetSchedulerType */ + NULL, /* domainGetSchedulerParameters */ + NULL, /* domainSetSchedulerParameters */ + NULL, /* domainSnapshotCreate */ + NULL, /* domainSnapshotApply */ + NULL, /* domainSnapshotDelete */ + NULL, /* domainNumOfSnapshots */ + NULL, /* domainListSnapshots */ - NULL, /* domainCoreDump */ - xenXMDomainSetVcpus, /* domainSetVcpus */ - xenXMDomainPinVcpu, /* domainPinVcpu */ -Index: libvirt-0.5.1/src/xs_internal.c + }; + + #define xenXMError(conn, code, fmt...) \ +Index: libvirt-0.6.2/src/xs_internal.c =================================================================== ---- libvirt-0.5.1.orig/src/xs_internal.c -+++ libvirt-0.5.1/src/xs_internal.c -@@ -74,6 +74,11 @@ struct xenUnifiedDriver xenStoreDriver = - xenStoreGetDomainInfo, /* domainGetInfo */ - NULL, /* domainSave */ - NULL, /* domainRestore */ +--- libvirt-0.6.2.orig/src/xs_internal.c ++++ libvirt-0.6.2/src/xs_internal.c +@@ -83,6 +83,11 @@ struct xenUnifiedDriver xenStoreDriver = + NULL, /* domainGetSchedulerType */ + NULL, /* domainGetSchedulerParameters */ + NULL, /* domainSetSchedulerParameters */ + NULL, /* domainSnapshotCreate */ + NULL, /* domainSnapshotApply */ + NULL, /* domainSnapshotDelete */ + NULL, /* domainNumOfSnapshots */ + NULL, /* domainListSnapshots */ - NULL, /* domainCoreDump */ - NULL, /* domainSetVcpus */ - NULL, /* domainPinVcpu */ -Index: libvirt-0.5.1/src/virsh.c + }; + + #endif /* ! PROXY */ +Index: libvirt-0.6.2/src/virsh.c =================================================================== ---- libvirt-0.5.1.orig/src/virsh.c -+++ libvirt-0.5.1/src/virsh.c -@@ -1099,6 +1099,189 @@ cmdSave(vshControl *ctl, const vshCmd *c +--- libvirt-0.6.2.orig/src/virsh.c ++++ libvirt-0.6.2/src/virsh.c +@@ -1146,6 +1146,189 @@ cmdSave(vshControl *ctl, const vshCmd *c return ret; } @@ -570,7 +569,7 @@ Index: libvirt-0.5.1/src/virsh.c + if (!(name = vshCommandOptString(cmd, "name", NULL))) + return FALSE; + -+ if (!(dom = vshCommandOptDomain(ctl, cmd, "domain", &domain))) ++ if (!(dom = vshCommandOptDomain(ctl, cmd, &domain))) + return FALSE; + + if (virDomainSnapshotCreate(dom, name) == 0) { @@ -615,7 +614,7 @@ Index: libvirt-0.5.1/src/virsh.c + if (!(name = vshCommandOptString(cmd, "name", NULL))) + return FALSE; + -+ if (!(dom = vshCommandOptDomain(ctl, cmd, "domain", &domain))) ++ if (!(dom = vshCommandOptDomain(ctl, cmd, &domain))) + return FALSE; + + if (virDomainSnapshotApply(dom, name) == 0) { @@ -661,7 +660,7 @@ Index: libvirt-0.5.1/src/virsh.c + if (!(name = vshCommandOptString(cmd, "name", NULL))) + return FALSE; + -+ if (!(dom = vshCommandOptDomain(ctl, cmd, "domain", &domain))) ++ if (!(dom = vshCommandOptDomain(ctl, cmd, &domain))) + return FALSE; + + if (virDomainSnapshotDelete(dom, name) == 0) { @@ -704,7 +703,7 @@ Index: libvirt-0.5.1/src/virsh.c + if (!vshConnectionUsability(ctl, ctl->conn, TRUE)) + return FALSE; + -+ if (!(dom = vshCommandOptDomain(ctl, cmd, "domain", &domain))) ++ if (!(dom = vshCommandOptDomain(ctl, cmd, &domain))) + return FALSE; + + // TODO Display snapshot details @@ -725,7 +724,7 @@ Index: libvirt-0.5.1/src/virsh.c /* * "schedinfo" command */ -@@ -5697,6 +5880,12 @@ static const vshCmdDef commands[] = { +@@ -5929,6 +6112,12 @@ static const vshCmdDef commands[] = { {"undefine", cmdUndefine, opts_undefine, info_undefine}, {"uri", cmdURI, NULL, info_uri}, @@ -738,14 +737,14 @@ Index: libvirt-0.5.1/src/virsh.c {"vol-create", cmdVolCreate, opts_vol_create, info_vol_create}, {"vol-create-as", cmdVolCreateAs, opts_vol_create_as, info_vol_create_as}, {"vol-delete", cmdVolDelete, opts_vol_delete, info_vol_delete}, -Index: libvirt-0.5.1/src/lxc_driver.c +Index: libvirt-0.6.2/src/lxc_driver.c =================================================================== ---- libvirt-0.5.1.orig/src/lxc_driver.c -+++ libvirt-0.5.1/src/lxc_driver.c -@@ -1291,6 +1291,11 @@ static virDriver lxcDriver = { - NULL, /* domainEventDeregister */ - NULL, /* domainMigratePrepare2 */ - NULL, /* domainMigrateFinish2 */ +--- libvirt-0.6.2.orig/src/lxc_driver.c ++++ libvirt-0.6.2/src/lxc_driver.c +@@ -1471,6 +1471,11 @@ static virDriver lxcDriver = { + NULL, /* nodeDeviceDettach */ + NULL, /* nodeDeviceReAttach */ + NULL, /* nodeDeviceReset */ + NULL, /* domainSnapshotCreate */ + NULL, /* domainSnapshotApply */ + NULL, /* domainSnapshotDelete */ @@ -754,14 +753,14 @@ Index: libvirt-0.5.1/src/lxc_driver.c }; static virStateDriver lxcStateDriver = { -Index: libvirt-0.5.1/src/openvz_driver.c +Index: libvirt-0.6.2/src/openvz_driver.c =================================================================== ---- libvirt-0.5.1.orig/src/openvz_driver.c -+++ libvirt-0.5.1/src/openvz_driver.c -@@ -1146,6 +1146,11 @@ static virDriver openvzDriver = { - NULL, /* domainEventDeregister */ - NULL, /* domainMigratePrepare2 */ - NULL, /* domainMigrateFinish2 */ +--- libvirt-0.6.2.orig/src/openvz_driver.c ++++ libvirt-0.6.2/src/openvz_driver.c +@@ -1372,6 +1372,11 @@ static virDriver openvzDriver = { + NULL, /* nodeDeviceDettach */ + NULL, /* nodeDeviceReAttach */ + NULL, /* nodeDeviceReset */ + NULL, /* domainSnapshotCreate */ + NULL, /* domainSnapshotApply */ + NULL, /* domainSnapshotDelete */ @@ -770,14 +769,14 @@ Index: libvirt-0.5.1/src/openvz_driver.c }; int openvzRegister(void) { -Index: libvirt-0.5.1/src/qemu_driver.c +Index: libvirt-0.6.2/src/qemu_driver.c =================================================================== ---- libvirt-0.5.1.orig/src/qemu_driver.c -+++ libvirt-0.5.1/src/qemu_driver.c -@@ -3794,6 +3794,11 @@ static virDriver qemuDriver = { - qemudDomainEventDeregister, /* domainEventDeregister */ - qemudDomainMigratePrepare2, /* domainMigratePrepare2 */ - qemudDomainMigrateFinish2, /* domainMigrateFinish2 */ +--- libvirt-0.6.2.orig/src/qemu_driver.c ++++ libvirt-0.6.2/src/qemu_driver.c +@@ -5131,6 +5131,11 @@ static virDriver qemuDriver = { + qemudNodeDeviceDettach, /* nodeDeviceDettach */ + qemudNodeDeviceReAttach, /* nodeDeviceReAttach */ + qemudNodeDeviceReset, /* nodeDeviceReset */ + NULL, /* domainSnapshotCreate */ + NULL, /* domainSnapshotApply */ + NULL, /* domainSnapshotDelete */ @@ -786,30 +785,14 @@ Index: libvirt-0.5.1/src/qemu_driver.c }; -Index: libvirt-0.5.1/src/remote_internal.c +Index: libvirt-0.6.2/src/test.c =================================================================== ---- libvirt-0.5.1.orig/src/remote_internal.c -+++ libvirt-0.5.1/src/remote_internal.c -@@ -5391,6 +5391,11 @@ static virDriver driver = { - .domainEventDeregister = remoteDomainEventDeregister, - .domainMigratePrepare2 = remoteDomainMigratePrepare2, - .domainMigrateFinish2 = remoteDomainMigrateFinish2, -+ .domainSnapshotCreate = NULL, -+ .domainSnapshotApply = NULL, -+ .domainSnapshotDelete = NULL, -+ .domainNumOfSnapshots = NULL, -+ .domainListSnapshots = NULL, - }; - - static virNetworkDriver network_driver = { -Index: libvirt-0.5.1/src/test.c -=================================================================== ---- libvirt-0.5.1.orig/src/test.c -+++ libvirt-0.5.1/src/test.c -@@ -2255,6 +2255,11 @@ static virDriver testDriver = { - NULL, /* domainEventDeregister */ - NULL, /* domainMigratePrepare2 */ - NULL, /* domainMigrateFinish2 */ +--- libvirt-0.6.2.orig/src/test.c ++++ libvirt-0.6.2/src/test.c +@@ -3532,6 +3532,11 @@ static virDriver testDriver = { + NULL, /* nodeDeviceDettach */ + NULL, /* nodeDeviceReAttach */ + NULL, /* nodeDeviceReset */ + NULL, /* domainSnapshotCreate */ + NULL, /* domainSnapshotApply */ + NULL, /* domainSnapshotDelete */ @@ -818,11 +801,11 @@ Index: libvirt-0.5.1/src/test.c }; static virNetworkDriver testNetworkDriver = { -Index: libvirt-0.5.1/docs/libvirt-api.xml +Index: libvirt-0.6.2/docs/libvirt-api.xml =================================================================== ---- libvirt-0.5.1.orig/docs/libvirt-api.xml -+++ libvirt-0.5.1/docs/libvirt-api.xml -@@ -183,6 +183,11 @@ +--- libvirt-0.6.2.orig/docs/libvirt-api.xml ++++ libvirt-0.6.2/docs/libvirt-api.xml +@@ -194,6 +194,11 @@ @@ -831,10 +814,10 @@ Index: libvirt-0.5.1/docs/libvirt-api.xml + + + - + -@@ -1237,6 +1242,36 @@ see note above'/> +@@ -1296,6 +1301,36 @@ see note above'/> @@ -871,10 +854,10 @@ Index: libvirt-0.5.1/docs/libvirt-api.xml Undefine a domain but does not stop it if it is running -Index: libvirt-0.5.1/python/libvirt-py.c +Index: libvirt-0.6.2/python/libvirt-py.c =================================================================== ---- libvirt-0.5.1.orig/python/libvirt-py.c -+++ libvirt-0.5.1/python/libvirt-py.c +--- libvirt-0.6.2.orig/python/libvirt-py.c ++++ libvirt-0.6.2/python/libvirt-py.c @@ -25,6 +25,25 @@ LIBVIRT_END_ALLOW_THREADS; } @@ -901,7 +884,7 @@ Index: libvirt-0.5.1/python/libvirt-py.c libvirt_virStorageVolGetKey(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { PyObject *py_retval; const char * c_retval; -@@ -847,6 +866,25 @@ LIBVIRT_END_ALLOW_THREADS; +@@ -883,6 +902,25 @@ LIBVIRT_END_ALLOW_THREADS; } PyObject * @@ -927,7 +910,7 @@ Index: libvirt-0.5.1/python/libvirt-py.c libvirt_virNetworkDefineXML(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { PyObject *py_retval; virNetworkPtr c_retval; -@@ -882,6 +920,24 @@ LIBVIRT_END_ALLOW_THREADS; +@@ -918,6 +956,24 @@ LIBVIRT_END_ALLOW_THREADS; } PyObject * @@ -952,10 +935,13 @@ Index: libvirt-0.5.1/python/libvirt-py.c libvirt_virDomainResume(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { PyObject *py_retval; int c_retval; -@@ -900,6 +956,25 @@ LIBVIRT_END_ALLOW_THREADS; - } - - PyObject * +@@ -933,6 +989,25 @@ LIBVIRT_BEGIN_ALLOW_THREADS; + LIBVIRT_END_ALLOW_THREADS; + py_retval = libvirt_intWrap((int) c_retval); + return(py_retval); ++} ++ ++PyObject * +libvirt_virDomainSnapshotApply(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; @@ -972,16 +958,13 @@ Index: libvirt-0.5.1/python/libvirt-py.c +LIBVIRT_END_ALLOW_THREADS; + py_retval = libvirt_intWrap((int) c_retval); + return(py_retval); -+} -+ -+PyObject * - libvirt_virConnectGetHostname(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - char * c_retval; -Index: libvirt-0.5.1/python/libvirt-py.h + } + + PyObject * +Index: libvirt-0.6.2/python/libvirt-py.h =================================================================== ---- libvirt-0.5.1.orig/python/libvirt-py.h -+++ libvirt-0.5.1/python/libvirt-py.h +--- libvirt-0.6.2.orig/python/libvirt-py.h ++++ libvirt-0.6.2/python/libvirt-py.h @@ -1,6 +1,7 @@ /* Generated */ @@ -990,11 +973,11 @@ Index: libvirt-0.5.1/python/libvirt-py.h PyObject * libvirt_virStorageVolGetKey(PyObject *self, PyObject *args); PyObject * libvirt_virConnectClose(PyObject *self, PyObject *args); PyObject * libvirt_virDomainDefineXML(PyObject *self, PyObject *args); -Index: libvirt-0.5.1/python/libvirt.py +Index: libvirt-0.6.2/python/libvirt.py =================================================================== ---- libvirt-0.5.1.orig/python/libvirt.py -+++ libvirt-0.5.1/python/libvirt.py -@@ -382,6 +382,12 @@ class virDomain: +--- libvirt-0.6.2.orig/python/libvirt.py ++++ libvirt-0.6.2/python/libvirt.py +@@ -384,6 +384,12 @@ class virDomain: ret = libvirtmod.virDomainGetName(self._o) return ret @@ -1007,7 +990,7 @@ Index: libvirt-0.5.1/python/libvirt.py def reboot(self, flags): """Reboot a domain, the domain object is still usable there after but the domain OS is being stopped for a restart. -@@ -456,6 +462,24 @@ class virDomain: +@@ -472,6 +478,24 @@ class virDomain: if ret == -1: raise libvirtError ('virDomainShutdown() failed', dom=self) return ret @@ -1032,7 +1015,7 @@ Index: libvirt-0.5.1/python/libvirt.py def suspend(self): """Suspends an active domain, the process is frozen without further access to CPU resources and I/O but the memory used -@@ -512,6 +536,12 @@ class virDomain: +@@ -528,6 +552,12 @@ class virDomain: ret = libvirtmod.virDomainInterfaceStats(self._o, path) return ret @@ -1045,10 +1028,10 @@ Index: libvirt-0.5.1/python/libvirt.py def pinVcpu(self, vcpu, cpumap): """Dynamically change the real CPUs which can be allocated to a virtual CPU. This function requires privileged access to -Index: libvirt-0.5.1/python/libvir.c +Index: libvirt-0.6.2/python/libvir.c =================================================================== ---- libvirt-0.5.1.orig/python/libvir.c -+++ libvirt-0.5.1/python/libvir.c +--- libvirt-0.6.2.orig/python/libvir.c ++++ libvirt-0.6.2/python/libvir.c @@ -1375,6 +1375,35 @@ libvirt_virStoragePoolGetInfo(PyObject * return(py_retval); } @@ -1093,10 +1076,10 @@ Index: libvirt-0.5.1/python/libvir.c {(char *) "virConnectListStoragePools", libvirt_virConnectListStoragePools, METH_VARARGS, NULL}, {(char *) "virConnectListDefinedStoragePools", libvirt_virConnectListDefinedStoragePools, METH_VARARGS, NULL}, {(char *) "virStoragePoolGetAutostart", libvirt_virStoragePoolGetAutostart, METH_VARARGS, NULL}, -Index: libvirt-0.5.1/python/libvirt-python-api.xml +Index: libvirt-0.6.2/python/libvirt-python-api.xml =================================================================== ---- libvirt-0.5.1.orig/python/libvirt-python-api.xml -+++ libvirt-0.5.1/python/libvirt-python-api.xml +--- libvirt-0.6.2.orig/python/libvirt-python-api.xml ++++ libvirt-0.6.2/python/libvirt-python-api.xml @@ -135,6 +135,11 @@ @@ -1109,10 +1092,10 @@ Index: libvirt-0.5.1/python/libvirt-python-api.xml list the storage pools, stores the pointers to the names in @names -Index: libvirt-0.5.1/python/generator.py +Index: libvirt-0.6.2/python/generator.py =================================================================== ---- libvirt-0.5.1.orig/python/generator.py -+++ libvirt-0.5.1/python/generator.py +--- libvirt-0.6.2.orig/python/generator.py ++++ libvirt-0.6.2/python/generator.py @@ -313,6 +313,7 @@ skip_impl = ( 'virDomainSetSchedulerParameters', 'virDomainGetVcpus', @@ -1121,19 +1104,19 @@ Index: libvirt-0.5.1/python/generator.py 'virStoragePoolGetUUID', 'virStoragePoolGetUUIDString', 'virStoragePoolLookupByUUID', -Index: libvirt-0.5.1/src/libvirt_sym.version.in +Index: libvirt-0.6.2/src/libvirt_public.syms =================================================================== ---- libvirt-0.5.1.orig/src/libvirt_sym.version.in -+++ libvirt-0.5.1/src/libvirt_sym.version.in -@@ -224,6 +224,11 @@ LIBVIRT_0.4.2 { +--- libvirt-0.6.2.orig/src/libvirt_public.syms ++++ libvirt-0.6.2/src/libvirt_public.syms +@@ -215,6 +215,11 @@ LIBVIRT_0.4.2 { LIBVIRT_0.4.5 { global: virConnectFindStoragePoolSources; -+ virDomainSnapshotCreate; -+ virDomainSnapshotApply; -+ virDomainSnapshotDelete; -+ virDomainNumOfSnapshots; -+ virDomainListSnapshots; ++ virDomainSnapshotCreate; ++ virDomainSnapshotApply; ++ virDomainSnapshotDelete; ++ virDomainNumOfSnapshots; ++ virDomainListSnapshots; } LIBVIRT_0.4.2; LIBVIRT_0.5.0 { diff --git a/socat.patch b/socat.patch index 9a7a288..94ec39f 100644 --- a/socat.patch +++ b/socat.patch @@ -1,8 +1,8 @@ -Index: libvirt-0.5.1/src/remote_internal.c +Index: libvirt-0.6.2/src/remote_internal.c =================================================================== ---- libvirt-0.5.1.orig/src/remote_internal.c -+++ libvirt-0.5.1/src/remote_internal.c -@@ -674,9 +674,22 @@ doRemoteOpen (virConnectPtr conn, +--- libvirt-0.6.2.orig/src/remote_internal.c ++++ libvirt-0.6.2/src/remote_internal.c +@@ -704,9 +704,22 @@ doRemoteOpen (virConnectPtr conn, cmd_argv[j++] = strdup ("none"); } cmd_argv[j++] = strdup (priv->hostname); diff --git a/suse-network.patch b/suse-network.patch index a8fb050..d332761 100644 --- a/suse-network.patch +++ b/suse-network.patch @@ -1,8 +1,8 @@ -Index: libvirt-0.5.1/src/network_conf.c +Index: libvirt-0.6.2/src/network_conf.c =================================================================== ---- libvirt-0.5.1.orig/src/network_conf.c -+++ libvirt-0.5.1/src/network_conf.c -@@ -752,6 +752,137 @@ error: +--- libvirt-0.6.2.orig/src/network_conf.c ++++ libvirt-0.6.2/src/network_conf.c +@@ -768,6 +768,137 @@ error: return NULL; } @@ -140,7 +140,7 @@ Index: libvirt-0.5.1/src/network_conf.c int virNetworkLoadAllConfigs(virConnectPtr conn, virNetworkObjListPtr nets, const char *configDir, -@@ -787,6 +918,7 @@ int virNetworkLoadAllConfigs(virConnectP +@@ -807,6 +938,7 @@ int virNetworkLoadAllConfigs(virConnectP closedir(dir); @@ -148,25 +148,25 @@ Index: libvirt-0.5.1/src/network_conf.c return 0; } -Index: libvirt-0.5.1/src/network_conf.h +Index: libvirt-0.6.2/src/network_conf.h =================================================================== ---- libvirt-0.5.1.orig/src/network_conf.h -+++ libvirt-0.5.1/src/network_conf.h -@@ -86,6 +86,7 @@ struct _virNetworkObj { +--- libvirt-0.6.2.orig/src/network_conf.h ++++ libvirt-0.6.2/src/network_conf.h +@@ -89,6 +89,7 @@ struct _virNetworkObj { unsigned int active : 1; unsigned int autostart : 1; unsigned int persistent : 1; + unsigned int readonly : 1; - char *configFile; /* Persistent config file path */ - char *autostartLink; /* Symlink path for autostart */ -Index: libvirt-0.5.1/src/network_driver.c + virNetworkDefPtr def; /* The current definition */ + virNetworkDefPtr newDef; /* New definition to activate at shutdown */ +Index: libvirt-0.6.2/src/network_driver.c =================================================================== ---- libvirt-0.5.1.orig/src/network_driver.c -+++ libvirt-0.5.1/src/network_driver.c -@@ -763,6 +763,11 @@ static int networkShutdownNetworkDaemon( - if (!virNetworkIsActive(network)) - return 0; +--- libvirt-0.6.2.orig/src/network_driver.c ++++ libvirt-0.6.2/src/network_driver.c +@@ -914,6 +914,11 @@ static int networkShutdownNetworkDaemon( + unlink(stateFile); + VIR_FREE(stateFile); + if (network->readonly) { + networkLog(NETWORK_WARN, ": Network '%s' is readonly", network->def->name); @@ -176,8 +176,8 @@ Index: libvirt-0.5.1/src/network_driver.c if (network->dnsmasqPid > 0) kill(network->dnsmasqPid, SIGTERM); -@@ -1082,6 +1087,12 @@ static int networkSetAutostart(virNetwor - return -1; +@@ -1360,6 +1365,12 @@ static int networkSetAutostart(virNetwor + goto cleanup; } + if (network->readonly) { @@ -188,4 +188,4 @@ Index: libvirt-0.5.1/src/network_driver.c + autostart = (autostart != 0); - if (network->autostart == autostart) + if (network->autostart != autostart) { diff --git a/xen-pv-cdrom.patch b/xen-pv-cdrom.patch index fa155e6..42c6cb2 100644 --- a/xen-pv-cdrom.patch +++ b/xen-pv-cdrom.patch @@ -1,10 +1,10 @@ -Index: libvirt-0.5.1/src/xend_internal.c +Index: libvirt-0.6.2/src/xend_internal.c =================================================================== ---- libvirt-0.5.1.orig/src/xend_internal.c -+++ libvirt-0.5.1/src/xend_internal.c -@@ -5021,7 +5021,10 @@ xenDaemonFormatSxprDisk(virConnectPtr co - def->device == VIR_DOMAIN_DISK_DEVICE_CDROM ? - "cdrom" : "disk"); +--- libvirt-0.6.2.orig/src/xend_internal.c ++++ libvirt-0.6.2/src/xend_internal.c +@@ -5262,7 +5262,10 @@ xenDaemonFormatSxprDisk(virConnectPtr co + } else if (def->device == VIR_DOMAIN_DISK_DEVICE_CDROM) { + virBufferVSprintf(buf, "(dev '%s:cdrom')", def->dst); } else { - virBufferVSprintf(buf, "(dev '%s')", def->dst); + if (def->device == VIR_DOMAIN_DISK_DEVICE_CDROM)