diff --git a/clone.patch b/clone.patch
index 02f55c8..77a6481 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
-@@ -791,6 +791,9 @@ int lxcContainerStart(virDomainDefPtr de
+@@ -796,6 +796,9 @@ int lxcContainerStart(virDomainDefPtr de
lxc_child_argv_t args = { def, nveths, veths, control, ttyPath };
/* allocate a stack for the container */
@@ -12,7 +12,7 @@ Index: src/lxc_container.c
if (VIR_ALLOC_N(stack, stacksize) < 0) {
virReportOOMError(NULL);
return -1;
-@@ -805,7 +808,11 @@ int lxcContainerStart(virDomainDefPtr de
+@@ -810,7 +813,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);
-@@ -831,6 +838,7 @@ int lxcContainerAvailable(int features)
+@@ -836,6 +843,7 @@ int lxcContainerAvailable(int features)
char *childStack;
char *stack;
int childStatus;
@@ -32,7 +32,7 @@ Index: src/lxc_container.c
if (features & LXC_CONTAINER_FEATURE_USER)
flags |= CLONE_NEWUSER;
-@@ -838,14 +846,21 @@ int lxcContainerAvailable(int features)
+@@ -843,14 +851,21 @@ int lxcContainerAvailable(int features)
if (features & LXC_CONTAINER_FEATURE_NET)
flags |= CLONE_NEWNET;
diff --git a/detach-disk.patch b/detach-disk.patch
index 513f8f0..d6df91f 100644
--- a/detach-disk.patch
+++ b/detach-disk.patch
@@ -1,8 +1,8 @@
-Index: libvirt-0.6.5/src/xend_internal.c
+Index: libvirt-0.7.1/src/xend_internal.c
===================================================================
---- libvirt-0.6.5.orig/src/xend_internal.c
-+++ libvirt-0.6.5/src/xend_internal.c
-@@ -5857,7 +5857,7 @@ virDomainXMLDevID(virDomainPtr domain,
+--- libvirt-0.7.1.orig/src/xend_internal.c
++++ libvirt-0.7.1/src/xend_internal.c
+@@ -5877,7 +5877,7 @@ virDomainXMLDevID(virDomainPtr domain,
return -1;
xenUnifiedLock(priv);
xref = xenStoreDomainGetDiskID(domain->conn, domain->id,
@@ -11,10 +11,10 @@ Index: libvirt-0.6.5/src/xend_internal.c
xenUnifiedUnlock(priv);
if (xref == NULL)
return -1;
-Index: libvirt-0.6.5/src/xs_internal.c
+Index: libvirt-0.7.1/src/xs_internal.c
===================================================================
---- libvirt-0.6.5.orig/src/xs_internal.c
-+++ libvirt-0.6.5/src/xs_internal.c
+--- libvirt-0.7.1.orig/src/xs_internal.c
++++ libvirt-0.7.1/src/xs_internal.c
@@ -966,7 +966,8 @@ xenStoreDomainGetNetworkID(virConnectPtr
* freed by the caller.
*/
@@ -34,10 +34,10 @@ Index: libvirt-0.6.5/src/xs_internal.c
list = xs_directory(priv->xshandle, 0, dir, &num);
if (list != NULL) {
for (i = 0; i < num; i++) {
-Index: libvirt-0.6.5/src/xs_internal.h
+Index: libvirt-0.7.1/src/xs_internal.h
===================================================================
---- libvirt-0.6.5.orig/src/xs_internal.h
-+++ libvirt-0.6.5/src/xs_internal.h
+--- libvirt-0.7.1.orig/src/xs_internal.h
++++ libvirt-0.7.1/src/xs_internal.h
@@ -49,7 +49,8 @@ char * xenStoreDomainGetNetworkID(virCo
const char *mac);
char * xenStoreDomainGetDiskID(virConnectPtr conn,
diff --git a/devmap-no-pkgconfig.patch b/devmap-no-pkgconfig.patch
new file mode 100644
index 0000000..6956081
--- /dev/null
+++ b/devmap-no-pkgconfig.patch
@@ -0,0 +1,32 @@
+diff --git a/configure.in b/configure.in
+index cb5ce55..d1711fd 100644
+--- a/configure.in
++++ b/configure.in
+@@ -1227,11 +1227,22 @@ if test "$with_storage_mpath" = "yes"; then
+ DEVMAPPER_REQUIRED=0.0
+ DEVMAPPER_CFLAGS=
+ DEVMAPPER_LIBS=
+- PKG_CHECK_MODULES(DEVMAPPER, devmapper >= $DEVMAPPER_REQUIRED,
+- [], [
+- AC_MSG_ERROR(
+- [You must install device-mapper-devel >= $DEVMAPPER_REQUIRED to compile libvirt])
+- ])
++ PKG_CHECK_MODULES([DEVMAPPER], [devmapper >= $DEVMAPPER_REQUIRED], [], [DEVMAPPER_FOUND=no])
++ if test "$DEVMAPPER_FOUND" = "no"; then
++ # devmapper is missing pkg-config files in ubuntu, suse, etc
++ save_LIBS="$LIBS"
++ save_CFLAGS="$CFLAGS"
++ DEVMAPPER_FOUND=yes
++ AC_CHECK_HEADER([libdevmapper.h],,[DEVMAPPER_FOUND=no])
++ AC_CHECK_LIB([devmapper], [dm_task_run],,[DEVMAPPER_FOUND=no])
++ DEVMAPPER_LIBS="-ldevmapper"
++ LIBS="$save_LIBS"
++ CFLAGS="$save_CFLAGS"
++ fi
++ if test "$DEVMAPPER_FOUND" = "no" ; then
++ AC_MSG_ERROR([You must install device-mapper-devel/libdevmapper >= $DEVMAPPER_REQUIRED to compile libvirt])
++ fi
++
+ fi
+ AC_SUBST([DEVMAPPER_CFLAGS])
+ AC_SUBST([DEVMAPPER_LIBS])
diff --git a/fs-storage-driver.patch b/fs-storage-driver.patch
deleted file mode 100644
index 9d25782..0000000
--- a/fs-storage-driver.patch
+++ /dev/null
@@ -1,58 +0,0 @@
-Index: libvirt-0.5.1/src/storage_backend_fs.c
-===================================================================
---- libvirt-0.5.1.orig/src/storage_backend_fs.c
-+++ libvirt-0.5.1/src/storage_backend_fs.c
-@@ -381,6 +381,8 @@ virStorageBackendFileSystemIsMounted(vir
- virStoragePoolObjPtr pool) {
- FILE *mtab;
- struct mntent *ent;
-+ char *mpoint;
-+ size_t len;
-
- if ((mtab = fopen(_PATH_MOUNTED, "r")) == NULL) {
- virStorageReportError(conn, VIR_ERR_INTERNAL_ERROR,
-@@ -389,14 +391,26 @@ virStorageBackendFileSystemIsMounted(vir
- return -1;
- }
-
-+ if ((mpoint = strdup(pool->def->target.path)) == NULL) {
-+ virStorageReportError(conn, VIR_ERR_NO_MEMORY,
-+ "%s", strerror(errno));
-+ return -1;
-+ }
-+
-+ len = strlen(mpoint);
-+ if (mpoint[len-1] == '/')
-+ mpoint[len-1] = NULL;
-+
- while ((ent = getmntent(mtab)) != NULL) {
-- if (STREQ(ent->mnt_dir, pool->def->target.path)) {
-+ if (STREQ(ent->mnt_dir, mpoint)) {
- fclose(mtab);
-+ free(mpoint);
- return 1;
- }
- }
-
- fclose(mtab);
-+ free(mpoint);
- return 0;
- }
-
-@@ -735,12 +749,16 @@ virStorageBackendFileSystemDelete(virCon
- {
- /* XXX delete all vols first ? */
-
-+ /* target.path is never created AFAIKT, so dont delete it. */
-+#if 0
-+
- if (unlink(pool->def->target.path) < 0) {
- virStorageReportError(conn, VIR_ERR_INTERNAL_ERROR,
- _("cannot unlink path '%s': %s"),
- pool->def->target.path, strerror(errno));
- return -1;
- }
-+#endif
-
- return 0;
- }
diff --git a/libvirt-0.7.0.tar.bz2 b/libvirt-0.7.0.tar.bz2
deleted file mode 100644
index eab4ee4..0000000
--- a/libvirt-0.7.0.tar.bz2
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:b25bbddc4613f000a23bd72a6a9814c4da406c16888f6cf4ff711a87e90bd18c
-size 5066192
diff --git a/libvirt-0.7.1.tar.bz2 b/libvirt-0.7.1.tar.bz2
new file mode 100644
index 0000000..701a7c6
--- /dev/null
+++ b/libvirt-0.7.1.tar.bz2
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:8edde9577fbf0e90d0b33d4b328a79c51cc821c78a4c04b101007c1d6eed1909
+size 5440029
diff --git a/libvirt.changes b/libvirt.changes
index 08c8441..9605320 100644
--- a/libvirt.changes
+++ b/libvirt.changes
@@ -1,3 +1,29 @@
+-------------------------------------------------------------------
+Fri Sep 25 11:41:23 MDT 2009 - jfehlig@novell.com
+
+- Fix abort in virsh when specifying a connection URI
+ vshdeinit-recurse.patch
+
+-------------------------------------------------------------------
+Wed Sep 23 11:10:37 MDT 2009 - jfehlig@novell.com
+
+- Workaround for missing pkgconfig file in device-mapper-devel
+ devmap-no-pkgconfig.patch
+ bnc#540942
+
+-------------------------------------------------------------------
+Mon Sep 21 10:30:02 MDT 2009 - jfehlig@novell.com
+
+- Updated to version 0.7.1
+ - Add support for encrypted (qcow) volume creation
+ - Secret manipulation public API
+ - Multipath storage support module
+ - VBox add Storage Volume support
+ - Support configuration of huge pages in guests
+ - Support new PolicyKit 1.0 API
+ - Compressed save image format for Qemu
+ - Qemu add host PCI device hotplug support
+
-------------------------------------------------------------------
Wed Aug 26 15:52:37 MDT 2009 - jfehlig@novell.com
diff --git a/libvirt.spec b/libvirt.spec
index 4547ccd..dbdf280 100644
--- a/libvirt.spec
+++ b/libvirt.spec
@@ -1,5 +1,5 @@
#
-# spec file for package libvirt (Version 0.7.0)
+# spec file for package libvirt (Version 0.7.1)
#
# Copyright (c) 2009 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
@@ -30,7 +30,7 @@
%endif
Name: libvirt
-BuildRequires: PolicyKit-devel bridge-utils cyrus-sasl-devel fdupes gettext gnutls-devel hal-devel iptables-devel libxml2-devel lvm2 ncurses-devel parted-devel pkg-config python-devel readline-devel util-linux xhtml-dtd
+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 readline-devel util-linux xhtml-dtd
%if %{with_xen}
BuildRequires: xen-devel
%endif
@@ -45,13 +45,18 @@ BuildRequires: libselinux-devel
%ifarch x86_64 ia64
BuildRequires: libnuma-devel
%endif
+%if 0%{?suse_version} > 1110
+BuildRequires: polkit >= 0.9
+%else
+BuildRequires: PolicyKit-devel >= 0.6
+%endif
# Only for directory ownership:
BuildRequires: gtk-doc
Url: http://libvirt.org/
License: LGPL v2.1 or later
Group: Development/Libraries/C and C++
AutoReqProv: yes
-Version: 0.7.0
+Version: 0.7.1
Release: 1
Summary: A C toolkit to interract with the virtualization capabilities of Linux
Requires: readline
@@ -70,19 +75,27 @@ Requires: socat
Requires: open-iscsi
Requires: nfs-client
Requires: hal
+%if 0%{?suse_version} > 1100
+Requires: polkit >= 0.9
+%else
+Requires: PolicyKit >= 0.6
+%endif
Source0: %{name}-%{version}.tar.bz2
Source1: libvirtd.init
-Patch0: socat.patch
-Patch1: libvirtd-defaults.patch
-Patch2: fs-storage-driver.patch
-Patch3: clone.patch
-Patch4: vnc-port.patch
-Patch5: xen-pv-cdrom.patch
-Patch6: detach-disk.patch
-Patch7: migrate-params.patch
-Patch8: suse-network.patch
-Patch9: snapshots.patch
-Patch10: sexpr2string.patch
+# Upstream patches
+Patch0: devmap-no-pkgconfig.patch
+# Need to go upstream
+Patch100: socat.patch
+Patch101: clone.patch
+Patch102: migrate-params.patch
+Patch103: xen-pv-cdrom.patch
+Patch104: detach-disk.patch
+Patch105: vshdeinit-recurse.patch
+Patch106: xen-refcnt.patch
+# Our patches
+Patch200: libvirtd-defaults.patch
+Patch201: suse-network.patch
+Patch202: snapshots.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-build
%description
@@ -175,16 +188,16 @@ Authors:
%prep
%setup -q
%patch0 -p1
-%patch1 -p1
-#%patch2 -p1
-%patch3
-#%patch4 -p1
-%patch5 -p1
-%patch6 -p1
-%patch7 -p1
-%patch8 -p1
-%patch9 -p1
-%patch10 -p1
+%patch100 -p1
+%patch101
+%patch102 -p1
+%patch103 -p1
+%patch104 -p1
+%patch105 -p1
+%patch106 -p1
+%patch200 -p1
+%patch201 -p1
+%patch202 -p1
%build
%if ! %{with_xen}
@@ -292,7 +305,9 @@ rm -rf $RPM_BUILD_ROOT
%config %{_sysconfdir}/libvirt/libvirtd.conf
%config %{_sysconfdir}/libvirt/qemu.conf
%config %{_sysconfdir}/sasl2/libvirt.conf
-%if 0%{?suse_version} > 1030
+%if 0%{?suse_version} > 1110
+%{_datadir}/polkit-1/actions/org.libvirt.unix.policy
+%else
%{_datadir}/PolicyKit/policy/org.libvirt.unix.policy
%endif
%{_datadir}/libvirt
diff --git a/libvirtd-defaults.patch b/libvirtd-defaults.patch
index eb47089..f0d484d 100644
--- a/libvirtd-defaults.patch
+++ b/libvirtd-defaults.patch
@@ -1,7 +1,7 @@
-Index: libvirt-0.7.0/qemud/libvirtd.conf
+Index: libvirt-0.7.1/qemud/libvirtd.conf
===================================================================
---- libvirt-0.7.0.orig/qemud/libvirtd.conf
-+++ libvirt-0.7.0/qemud/libvirtd.conf
+--- libvirt-0.7.1.orig/qemud/libvirtd.conf
++++ libvirt-0.7.1/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.7.0/qemud/libvirtd.conf
# Override the default mDNS advertizement name. This must be
# unique on the immediate broadcast network.
-Index: libvirt-0.7.0/qemud/qemud.c
+Index: libvirt-0.7.1/qemud/qemud.c
===================================================================
---- libvirt-0.7.0.orig/qemud/qemud.c
-+++ libvirt-0.7.0/qemud/qemud.c
-@@ -138,7 +138,7 @@ static char *log_filters = NULL;
- static char *log_outputs = NULL;
+--- libvirt-0.7.1.orig/qemud/qemud.c
++++ libvirt-0.7.1/qemud/qemud.c
+@@ -134,7 +134,7 @@ static int sigwrite = -1; /* Signa
+ static int ipsock = 0; /* -l Listen for TCP/IP */
/* Defaults for configuration file elements */
-static int listen_tls = 1;
@@ -41,7 +41,7 @@ Index: libvirt-0.7.0/qemud/qemud.c
static int listen_tcp = 0;
static char *listen_addr = (char *) LIBVIRTD_LISTEN_ADDR;
static char *tls_port = (char *) LIBVIRTD_TLS_PORT;
-@@ -160,7 +160,7 @@ static int auth_tcp = REMOTE_AUTH_NONE;
+@@ -156,7 +156,7 @@ static int auth_tcp = REMOTE_AUTH_NONE;
#endif
static int auth_tls = REMOTE_AUTH_NONE;
diff --git a/snapshots.patch b/snapshots.patch
index 6a9de5b..a1953ee 100644
--- a/snapshots.patch
+++ b/snapshots.patch
@@ -1,7 +1,7 @@
-Index: libvirt-0.7.0/include/libvirt/libvirt.h.in
+Index: libvirt-0.7.1/include/libvirt/libvirt.h.in
===================================================================
---- libvirt-0.7.0.orig/include/libvirt/libvirt.h.in
-+++ libvirt-0.7.0/include/libvirt/libvirt.h.in
+--- libvirt-0.7.1.orig/include/libvirt/libvirt.h.in
++++ libvirt-0.7.1/include/libvirt/libvirt.h.in
@@ -537,6 +537,21 @@ int virDomainRestore
const char *from);
@@ -24,11 +24,11 @@ Index: libvirt-0.7.0/include/libvirt/libvirt.h.in
* Domain core dump
*/
int virDomainCoreDump (virDomainPtr domain,
-Index: libvirt-0.7.0/src/libvirt.c
+Index: libvirt-0.7.1/src/libvirt.c
===================================================================
---- libvirt-0.7.0.orig/src/libvirt.c
-+++ libvirt-0.7.0/src/libvirt.c
-@@ -2198,6 +2198,168 @@ error:
+--- libvirt-0.7.1.orig/src/libvirt.c
++++ libvirt-0.7.1/src/libvirt.c
+@@ -2245,6 +2245,168 @@ error:
return -1;
}
@@ -197,11 +197,11 @@ Index: libvirt-0.7.0/src/libvirt.c
/**
* virDomainCoreDump:
* @domain: a domain object
-Index: libvirt-0.7.0/src/driver.h
+Index: libvirt-0.7.1/src/driver.h
===================================================================
---- libvirt-0.7.0.orig/src/driver.h
-+++ libvirt-0.7.0/src/driver.h
-@@ -149,6 +149,21 @@ typedef int
+--- libvirt-0.7.1.orig/src/driver.h
++++ libvirt-0.7.1/src/driver.h
+@@ -152,6 +152,21 @@ typedef int
(*virDrvDomainRestore) (virConnectPtr conn,
const char *from);
typedef int
@@ -223,7 +223,7 @@ Index: libvirt-0.7.0/src/driver.h
(*virDrvDomainCoreDump) (virDomainPtr domain,
const char *to,
int flags);
-@@ -424,6 +439,11 @@ struct _virDriver {
+@@ -427,6 +442,11 @@ struct _virDriver {
virDrvNodeDeviceDettach nodeDeviceDettach;
virDrvNodeDeviceReAttach nodeDeviceReAttach;
virDrvNodeDeviceReset nodeDeviceReset;
@@ -235,10 +235,10 @@ Index: libvirt-0.7.0/src/driver.h
};
typedef int
-Index: libvirt-0.7.0/src/xen_unified.c
+Index: libvirt-0.7.1/src/xen_unified.c
===================================================================
---- libvirt-0.7.0.orig/src/xen_unified.c
-+++ libvirt-0.7.0/src/xen_unified.c
+--- libvirt-0.7.1.orig/src/xen_unified.c
++++ libvirt-0.7.1/src/xen_unified.c
@@ -952,6 +952,81 @@ xenUnifiedDomainRestore (virConnectPtr c
}
@@ -333,10 +333,10 @@ Index: libvirt-0.7.0/src/xen_unified.c
};
/**
-Index: libvirt-0.7.0/src/xen_unified.h
+Index: libvirt-0.7.1/src/xen_unified.h
===================================================================
---- libvirt-0.7.0.orig/src/xen_unified.h
-+++ libvirt-0.7.0/src/xen_unified.h
+--- libvirt-0.7.1.orig/src/xen_unified.h
++++ libvirt-0.7.1/src/xen_unified.h
@@ -98,6 +98,11 @@ struct xenUnifiedDriver {
virDrvDomainGetSchedulerType domainGetSchedulerType;
virDrvDomainGetSchedulerParameters domainGetSchedulerParameters;
@@ -349,10 +349,10 @@ Index: libvirt-0.7.0/src/xen_unified.h
};
typedef struct xenXMConfCache *xenXMConfCachePtr;
-Index: libvirt-0.7.0/src/xend_internal.c
+Index: libvirt-0.7.1/src/xend_internal.c
===================================================================
---- libvirt-0.7.0.orig/src/xend_internal.c
-+++ libvirt-0.7.0/src/xend_internal.c
+--- libvirt-0.7.1.orig/src/xend_internal.c
++++ libvirt-0.7.1/src/xend_internal.c
@@ -53,6 +53,12 @@
#ifndef PROXY
@@ -366,7 +366,7 @@ Index: libvirt-0.7.0/src/xend_internal.c
/*
* The number of Xen scheduler parameters
*/
-@@ -3250,6 +3256,87 @@ xenDaemonDomainRestore(virConnectPtr con
+@@ -3248,6 +3254,87 @@ xenDaemonDomainRestore(virConnectPtr con
}
return xend_op(conn, "", "op", "restore", "file", filename, NULL);
}
@@ -454,7 +454,7 @@ Index: libvirt-0.7.0/src/xend_internal.c
#endif /* !PROXY */
/**
-@@ -5052,6 +5139,11 @@ struct xenUnifiedDriver xenDaemonDriver
+@@ -5064,6 +5151,11 @@ struct xenUnifiedDriver xenDaemonDriver
xenDaemonGetSchedulerType, /* domainGetSchedulerType */
xenDaemonGetSchedulerParameters, /* domainGetSchedulerParameters */
xenDaemonSetSchedulerParameters, /* domainSetSchedulerParameters */
@@ -466,10 +466,10 @@ Index: libvirt-0.7.0/src/xend_internal.c
};
/************************************************************************
-Index: libvirt-0.7.0/src/proxy_internal.c
+Index: libvirt-0.7.1/src/proxy_internal.c
===================================================================
---- libvirt-0.7.0.orig/src/proxy_internal.c
-+++ libvirt-0.7.0/src/proxy_internal.c
+--- libvirt-0.7.1.orig/src/proxy_internal.c
++++ libvirt-0.7.1/src/proxy_internal.c
@@ -84,6 +84,11 @@ struct xenUnifiedDriver xenProxyDriver =
NULL, /* domainGetSchedulerType */
NULL, /* domainGetSchedulerParameters */
@@ -482,10 +482,10 @@ Index: libvirt-0.7.0/src/proxy_internal.c
};
-Index: libvirt-0.7.0/src/xen_internal.c
+Index: libvirt-0.7.1/src/xen_internal.c
===================================================================
---- libvirt-0.7.0.orig/src/xen_internal.c
-+++ libvirt-0.7.0/src/xen_internal.c
+--- libvirt-0.7.1.orig/src/xen_internal.c
++++ libvirt-0.7.1/src/xen_internal.c
@@ -741,6 +741,11 @@ struct xenUnifiedDriver xenHypervisorDri
xenHypervisorGetSchedulerType, /* domainGetSchedulerType */
xenHypervisorGetSchedulerParameters, /* domainGetSchedulerParameters */
@@ -498,10 +498,10 @@ Index: libvirt-0.7.0/src/xen_internal.c
};
#endif /* !PROXY */
-Index: libvirt-0.7.0/src/xm_internal.c
+Index: libvirt-0.7.1/src/xm_internal.c
===================================================================
---- libvirt-0.7.0.orig/src/xm_internal.c
-+++ libvirt-0.7.0/src/xm_internal.c
+--- libvirt-0.7.1.orig/src/xm_internal.c
++++ libvirt-0.7.1/src/xm_internal.c
@@ -116,6 +116,11 @@ struct xenUnifiedDriver xenXMDriver = {
NULL, /* domainGetSchedulerType */
NULL, /* domainGetSchedulerParameters */
@@ -514,10 +514,10 @@ Index: libvirt-0.7.0/src/xm_internal.c
};
#define xenXMError(conn, code, fmt...) \
-Index: libvirt-0.7.0/src/xs_internal.c
+Index: libvirt-0.7.1/src/xs_internal.c
===================================================================
---- libvirt-0.7.0.orig/src/xs_internal.c
-+++ libvirt-0.7.0/src/xs_internal.c
+--- libvirt-0.7.1.orig/src/xs_internal.c
++++ libvirt-0.7.1/src/xs_internal.c
@@ -83,6 +83,11 @@ struct xenUnifiedDriver xenStoreDriver =
NULL, /* domainGetSchedulerType */
NULL, /* domainGetSchedulerParameters */
@@ -530,11 +530,11 @@ Index: libvirt-0.7.0/src/xs_internal.c
};
#endif /* ! PROXY */
-Index: libvirt-0.7.0/src/virsh.c
+Index: libvirt-0.7.1/src/virsh.c
===================================================================
---- libvirt-0.7.0.orig/src/virsh.c
-+++ libvirt-0.7.0/src/virsh.c
-@@ -1167,6 +1167,189 @@ cmdSave(vshControl *ctl, const vshCmd *c
+--- libvirt-0.7.1.orig/src/virsh.c
++++ libvirt-0.7.1/src/virsh.c
+@@ -1171,6 +1171,189 @@ cmdSave(vshControl *ctl, const vshCmd *c
return ret;
}
@@ -724,7 +724,7 @@ Index: libvirt-0.7.0/src/virsh.c
/*
* "schedinfo" command
*/
-@@ -6940,6 +7123,12 @@ static const vshCmdDef commands[] = {
+@@ -7265,6 +7448,12 @@ static const vshCmdDef commands[] = {
{"undefine", cmdUndefine, opts_undefine, info_undefine},
{"uri", cmdURI, NULL, info_uri},
@@ -737,11 +737,11 @@ Index: libvirt-0.7.0/src/virsh.c
{"vol-create", cmdVolCreate, opts_vol_create, info_vol_create},
{"vol-create-from", cmdVolCreateFrom, opts_vol_create_from, info_vol_create_from},
{"vol-create-as", cmdVolCreateAs, opts_vol_create_as, info_vol_create_as},
-Index: libvirt-0.7.0/src/lxc_driver.c
+Index: libvirt-0.7.1/src/lxc_driver.c
===================================================================
---- libvirt-0.7.0.orig/src/lxc_driver.c
-+++ libvirt-0.7.0/src/lxc_driver.c
-@@ -1929,6 +1929,11 @@ static virDriver lxcDriver = {
+--- libvirt-0.7.1.orig/src/lxc_driver.c
++++ libvirt-0.7.1/src/lxc_driver.c
+@@ -1931,6 +1931,11 @@ static virDriver lxcDriver = {
NULL, /* nodeDeviceDettach */
NULL, /* nodeDeviceReAttach */
NULL, /* nodeDeviceReset */
@@ -753,10 +753,10 @@ Index: libvirt-0.7.0/src/lxc_driver.c
};
static virStateDriver lxcStateDriver = {
-Index: libvirt-0.7.0/src/openvz_driver.c
+Index: libvirt-0.7.1/src/openvz_driver.c
===================================================================
---- libvirt-0.7.0.orig/src/openvz_driver.c
-+++ libvirt-0.7.0/src/openvz_driver.c
+--- libvirt-0.7.1.orig/src/openvz_driver.c
++++ libvirt-0.7.1/src/openvz_driver.c
@@ -1392,6 +1392,11 @@ static virDriver openvzDriver = {
NULL, /* nodeDeviceDettach */
NULL, /* nodeDeviceReAttach */
@@ -769,11 +769,11 @@ Index: libvirt-0.7.0/src/openvz_driver.c
};
int openvzRegister(void) {
-Index: libvirt-0.7.0/src/qemu_driver.c
+Index: libvirt-0.7.1/src/qemu_driver.c
===================================================================
---- libvirt-0.7.0.orig/src/qemu_driver.c
-+++ libvirt-0.7.0/src/qemu_driver.c
-@@ -6806,6 +6806,11 @@ static virDriver qemuDriver = {
+--- libvirt-0.7.1.orig/src/qemu_driver.c
++++ libvirt-0.7.1/src/qemu_driver.c
+@@ -7576,6 +7576,11 @@ static virDriver qemuDriver = {
qemudNodeDeviceDettach, /* nodeDeviceDettach */
qemudNodeDeviceReAttach, /* nodeDeviceReAttach */
qemudNodeDeviceReset, /* nodeDeviceReset */
@@ -785,11 +785,11 @@ Index: libvirt-0.7.0/src/qemu_driver.c
};
-Index: libvirt-0.7.0/src/test.c
+Index: libvirt-0.7.1/src/test.c
===================================================================
---- libvirt-0.7.0.orig/src/test.c
-+++ libvirt-0.7.0/src/test.c
-@@ -4242,6 +4242,11 @@ static virDriver testDriver = {
+--- libvirt-0.7.1.orig/src/test.c
++++ libvirt-0.7.1/src/test.c
+@@ -4257,6 +4257,11 @@ static virDriver testDriver = {
NULL, /* nodeDeviceDettach */
NULL, /* nodeDeviceReAttach */
NULL, /* nodeDeviceReset */
@@ -801,11 +801,11 @@ Index: libvirt-0.7.0/src/test.c
};
static virNetworkDriver testNetworkDriver = {
-Index: libvirt-0.7.0/docs/libvirt-api.xml
+Index: libvirt-0.7.1/docs/libvirt-api.xml
===================================================================
---- libvirt-0.7.0.orig/docs/libvirt-api.xml
-+++ libvirt-0.7.0/docs/libvirt-api.xml
-@@ -200,6 +200,11 @@
+--- libvirt-0.7.1.orig/docs/libvirt-api.xml
++++ libvirt-0.7.1/docs/libvirt-api.xml
+@@ -208,6 +208,11 @@
@@ -817,7 +817,7 @@ Index: libvirt-0.7.0/docs/libvirt-api.xml
-@@ -1385,6 +1390,36 @@ see note above'/>
+@@ -1432,6 +1437,36 @@ see note above'/>
@@ -854,10 +854,10 @@ Index: libvirt-0.7.0/docs/libvirt-api.xml
Undefine a domain but does not stop it if it is running
-Index: libvirt-0.7.0/python/libvirt-py.c
+Index: libvirt-0.7.1/python/libvirt-py.c
===================================================================
---- libvirt-0.7.0.orig/python/libvirt-py.c
-+++ libvirt-0.7.0/python/libvirt-py.c
+--- libvirt-0.7.1.orig/python/libvirt-py.c
++++ libvirt-0.7.1/python/libvirt-py.c
@@ -25,6 +25,25 @@ LIBVIRT_END_ALLOW_THREADS;
}
@@ -884,7 +884,7 @@ Index: libvirt-0.7.0/python/libvirt-py.c
libvirt_virStorageVolGetKey(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) {
PyObject *py_retval;
const char * c_retval;
-@@ -1058,6 +1077,25 @@ LIBVIRT_END_ALLOW_THREADS;
+@@ -1151,6 +1170,25 @@ LIBVIRT_END_ALLOW_THREADS;
}
PyObject *
@@ -910,7 +910,7 @@ Index: libvirt-0.7.0/python/libvirt-py.c
libvirt_virNetworkDefineXML(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) {
PyObject *py_retval;
virNetworkPtr c_retval;
-@@ -1093,6 +1131,24 @@ LIBVIRT_END_ALLOW_THREADS;
+@@ -1186,6 +1224,24 @@ LIBVIRT_END_ALLOW_THREADS;
}
PyObject *
@@ -935,7 +935,7 @@ Index: libvirt-0.7.0/python/libvirt-py.c
libvirt_virDomainResume(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) {
PyObject *py_retval;
int c_retval;
-@@ -1108,6 +1164,25 @@ LIBVIRT_BEGIN_ALLOW_THREADS;
+@@ -1201,6 +1257,25 @@ LIBVIRT_BEGIN_ALLOW_THREADS;
LIBVIRT_END_ALLOW_THREADS;
py_retval = libvirt_intWrap((int) c_retval);
return(py_retval);
@@ -961,22 +961,22 @@ Index: libvirt-0.7.0/python/libvirt-py.c
}
PyObject *
-Index: libvirt-0.7.0/python/libvirt-py.h
+Index: libvirt-0.7.1/python/libvirt-py.h
===================================================================
---- libvirt-0.7.0.orig/python/libvirt-py.h
-+++ libvirt-0.7.0/python/libvirt-py.h
+--- libvirt-0.7.1.orig/python/libvirt-py.h
++++ libvirt-0.7.1/python/libvirt-py.h
@@ -1,6 +1,7 @@
/* Generated */
PyObject * libvirt_virStoragePoolGetXMLDesc(PyObject *self, PyObject *args);
+PyObject * libvirt_virDomainSnapshotDelete(PyObject *self, PyObject *args);
PyObject * libvirt_virStorageVolGetKey(PyObject *self, PyObject *args);
- PyObject * libvirt_virConnectClose(PyObject *self, PyObject *args);
+ PyObject * libvirt_virDomainUndefine(PyObject *self, PyObject *args);
PyObject * libvirt_virDomainDefineXML(PyObject *self, PyObject *args);
-Index: libvirt-0.7.0/python/libvirt.py
+Index: libvirt-0.7.1/python/libvirt.py
===================================================================
---- libvirt-0.7.0.orig/python/libvirt.py
-+++ libvirt-0.7.0/python/libvirt.py
+--- libvirt-0.7.1.orig/python/libvirt.py
++++ libvirt-0.7.1/python/libvirt.py
@@ -390,6 +390,12 @@ class virDomain:
ret = libvirtmod.virDomainGetName(self._o)
return ret
@@ -1028,10 +1028,10 @@ Index: libvirt-0.7.0/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.7.0/python/libvir.c
+Index: libvirt-0.7.1/python/libvir.c
===================================================================
---- libvirt-0.7.0.orig/python/libvir.c
-+++ libvirt-0.7.0/python/libvir.c
+--- libvirt-0.7.1.orig/python/libvir.c
++++ libvirt-0.7.1/python/libvir.c
@@ -1375,6 +1375,35 @@ libvirt_virStoragePoolGetInfo(PyObject *
return(py_retval);
}
@@ -1068,7 +1068,7 @@ Index: libvirt-0.7.0/python/libvir.c
static PyObject *
libvirt_virStorageVolGetInfo(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) {
-@@ -2247,6 +2276,7 @@ static PyMethodDef libvirtMethods[] = {
+@@ -2420,6 +2449,7 @@ static PyMethodDef libvirtMethods[] = {
{(char *) "virDomainSetSchedulerParameters", libvirt_virDomainSetSchedulerParameters, METH_VARARGS, NULL},
{(char *) "virDomainGetVcpus", libvirt_virDomainGetVcpus, METH_VARARGS, NULL},
{(char *) "virDomainPinVcpu", libvirt_virDomainPinVcpu, METH_VARARGS, NULL},
@@ -1076,10 +1076,10 @@ Index: libvirt-0.7.0/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.7.0/python/libvirt-python-api.xml
+Index: libvirt-0.7.1/python/libvirt-python-api.xml
===================================================================
---- libvirt-0.7.0.orig/python/libvirt-python-api.xml
-+++ libvirt-0.7.0/python/libvirt-python-api.xml
+--- libvirt-0.7.1.orig/python/libvirt-python-api.xml
++++ libvirt-0.7.1/python/libvirt-python-api.xml
@@ -135,6 +135,11 @@
@@ -1092,22 +1092,22 @@ Index: libvirt-0.7.0/python/libvirt-python-api.xml
list the storage pools, stores the pointers to the names in @names
-Index: libvirt-0.7.0/python/generator.py
+Index: libvirt-0.7.1/python/generator.py
===================================================================
---- libvirt-0.7.0.orig/python/generator.py
-+++ libvirt-0.7.0/python/generator.py
-@@ -320,6 +320,7 @@ skip_impl = (
+--- libvirt-0.7.1.orig/python/generator.py
++++ libvirt-0.7.1/python/generator.py
+@@ -326,6 +326,7 @@ skip_impl = (
'virDomainSetSchedulerParameters',
'virDomainGetVcpus',
'virDomainPinVcpu',
+ 'virDomainListSnapshots',
- 'virStoragePoolGetUUID',
- 'virStoragePoolGetUUIDString',
- 'virStoragePoolLookupByUUID',
-Index: libvirt-0.7.0/src/libvirt_public.syms
+ 'virSecretGetValue',
+ 'virSecretSetValue',
+ 'virSecretGetUUID',
+Index: libvirt-0.7.1/src/libvirt_public.syms
===================================================================
---- libvirt-0.7.0.orig/src/libvirt_public.syms
-+++ libvirt-0.7.0/src/libvirt_public.syms
+--- libvirt-0.7.1.orig/src/libvirt_public.syms
++++ libvirt-0.7.1/src/libvirt_public.syms
@@ -215,6 +215,11 @@ LIBVIRT_0.4.2 {
LIBVIRT_0.4.5 {
global:
diff --git a/socat.patch b/socat.patch
index dda2be8..95e5213 100644
--- a/socat.patch
+++ b/socat.patch
@@ -1,8 +1,8 @@
-Index: libvirt-0.7.0/src/remote_internal.c
+Index: libvirt-0.7.1/src/remote_internal.c
===================================================================
---- libvirt-0.7.0.orig/src/remote_internal.c
-+++ libvirt-0.7.0/src/remote_internal.c
-@@ -726,12 +726,29 @@ doRemoteOpen (virConnectPtr conn,
+--- libvirt-0.7.1.orig/src/remote_internal.c
++++ libvirt-0.7.1/src/remote_internal.c
+@@ -728,12 +728,29 @@ 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 15879b9..4bea8eb 100644
--- a/suse-network.patch
+++ b/suse-network.patch
@@ -1,8 +1,8 @@
-Index: libvirt-0.7.0/src/network_conf.c
+Index: libvirt-0.7.1/src/network_conf.c
===================================================================
---- libvirt-0.7.0.orig/src/network_conf.c
-+++ libvirt-0.7.0/src/network_conf.c
-@@ -771,6 +771,137 @@ error:
+--- libvirt-0.7.1.orig/src/network_conf.c
++++ libvirt-0.7.1/src/network_conf.c
+@@ -770,6 +770,137 @@ error:
return NULL;
}
@@ -140,7 +140,7 @@ Index: libvirt-0.7.0/src/network_conf.c
int virNetworkLoadAllConfigs(virConnectPtr conn,
virNetworkObjListPtr nets,
const char *configDir,
-@@ -810,6 +941,7 @@ int virNetworkLoadAllConfigs(virConnectP
+@@ -809,6 +940,7 @@ int virNetworkLoadAllConfigs(virConnectP
closedir(dir);
@@ -148,10 +148,10 @@ Index: libvirt-0.7.0/src/network_conf.c
return 0;
}
-Index: libvirt-0.7.0/src/network_conf.h
+Index: libvirt-0.7.1/src/network_conf.h
===================================================================
---- libvirt-0.7.0.orig/src/network_conf.h
-+++ libvirt-0.7.0/src/network_conf.h
+--- libvirt-0.7.1.orig/src/network_conf.h
++++ libvirt-0.7.1/src/network_conf.h
@@ -89,6 +89,7 @@ struct _virNetworkObj {
unsigned int active : 1;
unsigned int autostart : 1;
@@ -160,11 +160,11 @@ Index: libvirt-0.7.0/src/network_conf.h
virNetworkDefPtr def; /* The current definition */
virNetworkDefPtr newDef; /* New definition to activate at shutdown */
-Index: libvirt-0.7.0/src/network_driver.c
+Index: libvirt-0.7.1/src/network_driver.c
===================================================================
---- libvirt-0.7.0.orig/src/network_driver.c
-+++ libvirt-0.7.0/src/network_driver.c
-@@ -957,6 +957,11 @@ static int networkShutdownNetworkDaemon(
+--- libvirt-0.7.1.orig/src/network_driver.c
++++ libvirt-0.7.1/src/network_driver.c
+@@ -963,6 +963,11 @@ static int networkShutdownNetworkDaemon(
unlink(stateFile);
VIR_FREE(stateFile);
@@ -176,7 +176,7 @@ Index: libvirt-0.7.0/src/network_driver.c
if (network->dnsmasqPid > 0)
kill(network->dnsmasqPid, SIGTERM);
-@@ -1413,6 +1418,12 @@ static int networkSetAutostart(virNetwor
+@@ -1419,6 +1424,12 @@ static int networkSetAutostart(virNetwor
goto cleanup;
}
diff --git a/vnc-port.patch b/vnc-port.patch
deleted file mode 100644
index c5a5cea..0000000
--- a/vnc-port.patch
+++ /dev/null
@@ -1,16 +0,0 @@
-Index: libvirt-0.5.1/src/xend_internal.c
-===================================================================
---- libvirt-0.5.1.orig/src/xend_internal.c
-+++ libvirt-0.5.1/src/xend_internal.c
-@@ -2079,10 +2079,8 @@ xenDaemonParseSxprGraphicsNew(virConnect
- const char *keymap = sexpr_node(node, "device/vfb/keymap");
- const char *unused = sexpr_node(node, "device/vfb/vncunused");
-
-- if ((unused && STREQ(unused, "1")) || port == -1) {
-+ if ((unused && STREQ(unused, "1")) || port == -1)
- graphics->data.vnc.autoport = 1;
-- port = -1;
-- }
-
- if (port >= 0 && port < 5900)
- port += 5900;
diff --git a/vshdeinit-recurse.patch b/vshdeinit-recurse.patch
new file mode 100644
index 0000000..e7a1cd7
--- /dev/null
+++ b/vshdeinit-recurse.patch
@@ -0,0 +1,13 @@
+Index: libvirt-0.7.1/src/virsh.c
+===================================================================
+--- libvirt-0.7.1.orig/src/virsh.c
++++ libvirt-0.7.1/src/virsh.c
+@@ -8201,7 +8201,7 @@ vshError(vshControl *ctl, int doexit, co
+ fputc('\n', stderr);
+
+ if (doexit) {
+- if (ctl)
++ if (ctl->conn)
+ vshDeinit(ctl);
+ exit(EXIT_FAILURE);
+ }
diff --git a/xen-pv-cdrom.patch b/xen-pv-cdrom.patch
index cf4b992..73c0874 100644
--- a/xen-pv-cdrom.patch
+++ b/xen-pv-cdrom.patch
@@ -1,8 +1,8 @@
-Index: libvirt-0.6.5/src/xend_internal.c
+Index: libvirt-0.7.1/src/xend_internal.c
===================================================================
---- libvirt-0.6.5.orig/src/xend_internal.c
-+++ libvirt-0.6.5/src/xend_internal.c
-@@ -5289,7 +5289,10 @@ xenDaemonFormatSxprDisk(virConnectPtr co
+--- libvirt-0.7.1.orig/src/xend_internal.c
++++ libvirt-0.7.1/src/xend_internal.c
+@@ -5306,7 +5306,10 @@ xenDaemonFormatSxprDisk(virConnectPtr co
} else if (def->device == VIR_DOMAIN_DISK_DEVICE_CDROM) {
virBufferVSprintf(buf, "(dev '%s:cdrom')", def->dst);
} else {
diff --git a/xen-refcnt.patch b/xen-refcnt.patch
new file mode 100644
index 0000000..1bee752
--- /dev/null
+++ b/xen-refcnt.patch
@@ -0,0 +1,33 @@
+Index: libvirt-0.7.1/src/xen_inotify.c
+===================================================================
+--- libvirt-0.7.1.orig/src/xen_inotify.c
++++ libvirt-0.7.1/src/xen_inotify.c
+@@ -463,7 +463,6 @@ xenInotifyOpen(virConnectPtr conn ATTRIB
+ DEBUG0("Failed to add inotify handle, disabling events");
+ }
+
+- virConnectRef(conn);
+ return 0;
+ }
+
+@@ -486,7 +485,6 @@ xenInotifyClose(virConnectPtr conn)
+ if (priv->inotifyWatch != -1)
+ virEventRemoveHandle(priv->inotifyWatch);
+ close(priv->inotifyFD);
+- virUnrefConnect(conn);
+
+ return 0;
+ }
+Index: libvirt-0.7.1/src/xs_internal.c
+===================================================================
+--- libvirt-0.7.1.orig/src/xs_internal.c
++++ libvirt-0.7.1/src/xs_internal.c
+@@ -1140,8 +1140,6 @@ int xenStoreAddWatch(virConnectPtr conn,
+ list->watches[n] = watch;
+ list->count++;
+
+- conn->refs++;
+-
+ return xs_watch(priv->xshandle, watch->path, watch->token);
+ }
+