diff --git a/detach-disk.patch b/detach-disk.patch index c62b2e5..834deec 100644 --- a/detach-disk.patch +++ b/detach-disk.patch @@ -1,8 +1,8 @@ -Index: libvirt-0.7.1/src/xen/xend_internal.c +Index: libvirt-0.7.2/src/xen/xend_internal.c =================================================================== ---- libvirt-0.7.1.orig/src/xen/xend_internal.c -+++ libvirt-0.7.1/src/xen/xend_internal.c -@@ -5877,7 +5877,7 @@ virDomainXMLDevID(virDomainPtr domain, +--- libvirt-0.7.2.orig/src/xen/xend_internal.c ++++ libvirt-0.7.2/src/xen/xend_internal.c +@@ -5896,7 +5896,7 @@ virDomainXMLDevID(virDomainPtr domain, return -1; xenUnifiedLock(priv); xref = xenStoreDomainGetDiskID(domain->conn, domain->id, @@ -11,11 +11,11 @@ Index: libvirt-0.7.1/src/xen/xend_internal.c xenUnifiedUnlock(priv); if (xref == NULL) return -1; -Index: libvirt-0.7.1/src/xen/xs_internal.c +Index: libvirt-0.7.2/src/xen/xs_internal.c =================================================================== ---- libvirt-0.7.1.orig/src/xen/xs_internal.c -+++ libvirt-0.7.1/src/xen/xs_internal.c -@@ -966,7 +966,8 @@ xenStoreDomainGetNetworkID(virConnectPtr +--- libvirt-0.7.2.orig/src/xen/xs_internal.c ++++ libvirt-0.7.2/src/xen/xs_internal.c +@@ -968,7 +968,8 @@ xenStoreDomainGetNetworkID(virConnectPtr * freed by the caller. */ char * @@ -25,7 +25,7 @@ Index: libvirt-0.7.1/src/xen/xs_internal.c char dir[80], path[128], **list = NULL, *val = NULL; unsigned int devlen, len, i, num; char *ret = NULL; -@@ -984,7 +985,7 @@ xenStoreDomainGetDiskID(virConnectPtr co +@@ -986,7 +987,7 @@ xenStoreDomainGetDiskID(virConnectPtr co if (devlen <= 0) return (NULL); @@ -34,10 +34,10 @@ Index: libvirt-0.7.1/src/xen/xs_internal.c list = xs_directory(priv->xshandle, 0, dir, &num); if (list != NULL) { for (i = 0; i < num; i++) { -Index: libvirt-0.7.1/src/xen/xs_internal.h +Index: libvirt-0.7.2/src/xen/xs_internal.h =================================================================== ---- libvirt-0.7.1.orig/src/xen/xs_internal.h -+++ libvirt-0.7.1/src/xen/xs_internal.h +--- libvirt-0.7.2.orig/src/xen/xs_internal.h ++++ libvirt-0.7.2/src/xen/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 index 6956081..78d9b22 100644 --- a/devmap-no-pkgconfig.patch +++ b/devmap-no-pkgconfig.patch @@ -1,8 +1,8 @@ -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 +Index: libvirt-0.7.2/configure.in +=================================================================== +--- libvirt-0.7.2.orig/configure.in ++++ libvirt-0.7.2/configure.in +@@ -1304,11 +1304,22 @@ if test "$with_storage_mpath" = "yes"; t DEVMAPPER_REQUIRED=0.0 DEVMAPPER_CFLAGS= DEVMAPPER_LIBS= diff --git a/fs-ocfs2.patch b/fs-ocfs2.patch index 36ec839..95e84c7 100644 --- a/fs-ocfs2.patch +++ b/fs-ocfs2.patch @@ -1,8 +1,8 @@ -Index: libvirt-0.7.1/src/conf/storage_conf.c +Index: libvirt-0.7.2/src/conf/storage_conf.c =================================================================== ---- libvirt-0.7.1.orig/src/conf/storage_conf.c -+++ libvirt-0.7.1/src/conf/storage_conf.c -@@ -59,7 +59,7 @@ VIR_ENUM_IMPL(virStoragePoolFormatFileSy +--- libvirt-0.7.2.orig/src/conf/storage_conf.c ++++ libvirt-0.7.2/src/conf/storage_conf.c +@@ -60,7 +60,7 @@ VIR_ENUM_IMPL(virStoragePoolFormatFileSy VIR_STORAGE_POOL_FS_LAST, "auto", "ext2", "ext3", "ext4", "ufs", "iso9660", "udf", @@ -11,10 +11,10 @@ Index: libvirt-0.7.1/src/conf/storage_conf.c VIR_ENUM_IMPL(virStoragePoolFormatFileSystemNet, VIR_STORAGE_POOL_NETFS_LAST, -Index: libvirt-0.7.1/src/conf/storage_conf.h +Index: libvirt-0.7.2/src/conf/storage_conf.h =================================================================== ---- libvirt-0.7.1.orig/src/conf/storage_conf.h -+++ libvirt-0.7.1/src/conf/storage_conf.h +--- libvirt-0.7.2.orig/src/conf/storage_conf.h ++++ libvirt-0.7.2/src/conf/storage_conf.h @@ -395,6 +395,7 @@ enum virStoragePoolFormatFileSystem { VIR_STORAGE_POOL_FS_VFAT, VIR_STORAGE_POOL_FS_HFSPLUS, diff --git a/libvirt.changes b/libvirt.changes index b4c5d4f..a920175 100644 --- a/libvirt.changes +++ b/libvirt.changes @@ -1,3 +1,14 @@ +------------------------------------------------------------------- +Thu Oct 15 22:26:35 MDT 2009 - jfehlig@novell.com + +- Updated to version 0.7.2 + - sVirt AppArmor security driver + - Add public API definition for data stream handling + - ESX add esxDomainDefineXML() + - LXC: suspend/resume support + - Big code tree cleanup + - Lots of bug fixes and improvements + ------------------------------------------------------------------- Tue Oct 13 16:28:03 MDT 2009 - jfehlig@novell.com diff --git a/libvirt.spec b/libvirt.spec index b5c4960..7de06ff 100644 --- a/libvirt.spec +++ b/libvirt.spec @@ -1,5 +1,5 @@ # -# spec file for package libvirt (Version 0.7.1) +# spec file for package libvirt (Version 0.7.2) # # Copyright (c) 2009 SUSE LINUX Products GmbH, Nuernberg, Germany. # @@ -102,7 +102,7 @@ Patch104: detach-disk.patch # Our patches Patch200: libvirtd-defaults.patch Patch201: suse-network.patch -#BFRPatch202: snapshots.patch +Patch202: snapshots.patch BuildRoot: %{_tmppath}/%{name}-%{version}-build %description @@ -203,7 +203,7 @@ Authors: %patch104 -p1 %patch200 -p1 %patch201 -p1 -#BFR%patch202 -p1 +%patch202 -p1 %build %if ! %{with_xen} diff --git a/libvirtd-defaults.patch b/libvirtd-defaults.patch index 8a16dfa..ac89e2a 100644 --- a/libvirtd-defaults.patch +++ b/libvirtd-defaults.patch @@ -1,7 +1,7 @@ -Index: libvirt-0.7.1/daemon/libvirtd.conf +Index: libvirt-0.7.2/daemon/libvirtd.conf =================================================================== ---- libvirt-0.7.1.orig/daemon/libvirtd.conf -+++ libvirt-0.7.1/daemon/libvirtd.conf +--- libvirt-0.7.2.orig/daemon/libvirtd.conf ++++ libvirt-0.7.2/daemon/libvirtd.conf @@ -18,8 +18,8 @@ # It is necessary to setup a CA and issue server certificates before # using this capability. @@ -28,11 +28,11 @@ Index: libvirt-0.7.1/daemon/libvirtd.conf # Override the default mDNS advertizement name. This must be # unique on the immediate broadcast network. -Index: libvirt-0.7.1/daemon/libvirtd.c +Index: libvirt-0.7.2/daemon/libvirtd.c =================================================================== ---- libvirt-0.7.1.orig/daemon/libvirtd.c -+++ libvirt-0.7.1/daemon/libvirtd.c -@@ -134,7 +134,7 @@ static int sigwrite = -1; /* Signa +--- libvirt-0.7.2.orig/daemon/libvirtd.c ++++ libvirt-0.7.2/daemon/libvirtd.c +@@ -135,7 +135,7 @@ static int sigwrite = -1; /* Signa static int ipsock = 0; /* -l Listen for TCP/IP */ /* Defaults for configuration file elements */ @@ -41,7 +41,7 @@ Index: libvirt-0.7.1/daemon/libvirtd.c static int listen_tcp = 0; static char *listen_addr = (char *) LIBVIRTD_LISTEN_ADDR; static char *tls_port = (char *) LIBVIRTD_TLS_PORT; -@@ -156,7 +156,7 @@ static int auth_tcp = REMOTE_AUTH_NONE; +@@ -157,7 +157,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 7a800d2..fbcf3d9 100644 --- a/migrate-params.patch +++ b/migrate-params.patch @@ -1,8 +1,8 @@ -Index: libvirt-0.6.5/src/xen/xend_internal.c +Index: libvirt-0.7.2/src/xen/xend_internal.c =================================================================== ---- libvirt-0.6.5.orig/src/xen/xend_internal.c -+++ libvirt-0.6.5/src/xen/xend_internal.c -@@ -4480,6 +4480,8 @@ xenDaemonDomainMigratePerform (virDomain +--- libvirt-0.7.2.orig/src/xen/xend_internal.c ++++ libvirt-0.7.2/src/xen/xend_internal.c +@@ -4491,6 +4491,8 @@ xenDaemonDomainMigratePerform (virDomain "node", "-1", "ssl", "0", "resource", "0", /* required, xend ignores it */ diff --git a/snapshots.patch b/snapshots.patch index d4a32f6..a2a32dc 100644 --- a/snapshots.patch +++ b/snapshots.patch @@ -1,8 +1,8 @@ -Index: libvirt-0.7.1/include/libvirt/libvirt.h.in +Index: libvirt-0.7.2/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 +--- libvirt-0.7.2.orig/include/libvirt/libvirt.h.in ++++ libvirt-0.7.2/include/libvirt/libvirt.h.in +@@ -561,6 +561,21 @@ int virDomainRestore const char *from); /* @@ -24,16 +24,14 @@ Index: libvirt-0.7.1/include/libvirt/libvirt.h.in * Domain core dump */ int virDomainCoreDump (virDomainPtr domain, -Index: libvirt-0.7.1/src/libvirt.c +Index: libvirt-0.7.2/src/libvirt.c =================================================================== ---- libvirt-0.7.1.orig/src/libvirt.c -+++ libvirt-0.7.1/src/libvirt.c -@@ -2245,6 +2245,168 @@ error: - return -1; +--- libvirt-0.7.2.orig/src/libvirt.c ++++ libvirt-0.7.2/src/libvirt.c +@@ -2234,6 +2234,166 @@ error: } -+ -+/** + /** + * virDomainSnapshotCreate: + * @domain: a domain object + * @name: name for the new snapshot @@ -193,15 +191,15 @@ Index: libvirt-0.7.1/src/libvirt.c + return -1; +} + -+ - /** ++/** * virDomainCoreDump: * @domain: a domain object -Index: libvirt-0.7.1/src/driver.h + * @to: path for the core file +Index: libvirt-0.7.2/src/driver.h =================================================================== ---- libvirt-0.7.1.orig/src/driver.h -+++ libvirt-0.7.1/src/driver.h -@@ -152,6 +152,21 @@ typedef int +--- libvirt-0.7.2.orig/src/driver.h ++++ libvirt-0.7.2/src/driver.h +@@ -133,6 +133,21 @@ typedef int (*virDrvDomainRestore) (virConnectPtr conn, const char *from); typedef int @@ -223,10 +221,10 @@ Index: libvirt-0.7.1/src/driver.h (*virDrvDomainCoreDump) (virDomainPtr domain, const char *to, int flags); -@@ -427,6 +442,11 @@ struct _virDriver { - virDrvNodeDeviceDettach nodeDeviceDettach; +@@ -418,6 +433,11 @@ struct _virDriver { virDrvNodeDeviceReAttach nodeDeviceReAttach; virDrvNodeDeviceReset nodeDeviceReset; + virDrvDomainMigratePrepareTunnel domainMigratePrepareTunnel; + virDrvDomainSnapshotCreate domainSnapshotCreate; + virDrvDomainSnapshotApply domainSnapshotApply; + virDrvDomainSnapshotDelete domainSnapshotDelete; @@ -235,11 +233,11 @@ Index: libvirt-0.7.1/src/driver.h }; typedef int -Index: libvirt-0.7.1/src/xen_unified.c +Index: libvirt-0.7.2/src/xen/xen_driver.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 +--- libvirt-0.7.2.orig/src/xen/xen_driver.c ++++ libvirt-0.7.2/src/xen/xen_driver.c +@@ -955,6 +955,81 @@ xenUnifiedDomainRestore (virConnectPtr c } static int @@ -321,10 +319,10 @@ Index: libvirt-0.7.1/src/xen_unified.c xenUnifiedDomainCoreDump (virDomainPtr dom, const char *to, int flags) { GET_PRIVATE(dom->conn); -@@ -1722,6 +1797,11 @@ static virDriver xenUnifiedDriver = { - xenUnifiedNodeDeviceDettach, /* nodeDeviceDettach */ +@@ -1726,6 +1801,11 @@ static virDriver xenUnifiedDriver = { xenUnifiedNodeDeviceReAttach, /* nodeDeviceReAttach */ xenUnifiedNodeDeviceReset, /* nodeDeviceReset */ + NULL, /* domainMigratePrepareTunnel */ + xenUnifiedDomainSnapshotCreate, + xenUnifiedDomainSnapshotApply, + xenUnifiedDomainSnapshotDelete, @@ -333,10 +331,10 @@ Index: libvirt-0.7.1/src/xen_unified.c }; /** -Index: libvirt-0.7.1/src/xen_unified.h +Index: libvirt-0.7.2/src/xen/xen_driver.h =================================================================== ---- libvirt-0.7.1.orig/src/xen_unified.h -+++ libvirt-0.7.1/src/xen_unified.h +--- libvirt-0.7.2.orig/src/xen/xen_driver.h ++++ libvirt-0.7.2/src/xen/xen_driver.h @@ -98,6 +98,11 @@ struct xenUnifiedDriver { virDrvDomainGetSchedulerType domainGetSchedulerType; virDrvDomainGetSchedulerParameters domainGetSchedulerParameters; @@ -349,10 +347,10 @@ Index: libvirt-0.7.1/src/xen_unified.h }; typedef struct xenXMConfCache *xenXMConfCachePtr; -Index: libvirt-0.7.1/src/xend_internal.c +Index: libvirt-0.7.2/src/xen/xend_internal.c =================================================================== ---- libvirt-0.7.1.orig/src/xend_internal.c -+++ libvirt-0.7.1/src/xend_internal.c +--- libvirt-0.7.2.orig/src/xen/xend_internal.c ++++ libvirt-0.7.2/src/xen/xend_internal.c @@ -53,6 +53,12 @@ #ifndef PROXY @@ -366,7 +364,7 @@ Index: libvirt-0.7.1/src/xend_internal.c /* * The number of Xen scheduler parameters */ -@@ -3248,6 +3254,87 @@ xenDaemonDomainRestore(virConnectPtr con +@@ -3257,6 +3263,87 @@ xenDaemonDomainRestore(virConnectPtr con } return xend_op(conn, "", "op", "restore", "file", filename, NULL); } @@ -454,7 +452,7 @@ Index: libvirt-0.7.1/src/xend_internal.c #endif /* !PROXY */ /** -@@ -5064,6 +5151,11 @@ struct xenUnifiedDriver xenDaemonDriver +@@ -5082,6 +5169,11 @@ struct xenUnifiedDriver xenDaemonDriver xenDaemonGetSchedulerType, /* domainGetSchedulerType */ xenDaemonGetSchedulerParameters, /* domainGetSchedulerParameters */ xenDaemonSetSchedulerParameters, /* domainSetSchedulerParameters */ @@ -466,10 +464,10 @@ Index: libvirt-0.7.1/src/xend_internal.c }; /************************************************************************ -Index: libvirt-0.7.1/src/proxy_internal.c +Index: libvirt-0.7.2/src/xen/proxy_internal.c =================================================================== ---- libvirt-0.7.1.orig/src/proxy_internal.c -+++ libvirt-0.7.1/src/proxy_internal.c +--- libvirt-0.7.2.orig/src/xen/proxy_internal.c ++++ libvirt-0.7.2/src/xen/proxy_internal.c @@ -84,6 +84,11 @@ struct xenUnifiedDriver xenProxyDriver = NULL, /* domainGetSchedulerType */ NULL, /* domainGetSchedulerParameters */ @@ -482,11 +480,11 @@ Index: libvirt-0.7.1/src/proxy_internal.c }; -Index: libvirt-0.7.1/src/xen_internal.c +Index: libvirt-0.7.2/src/xen/xen_hypervisor.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 +--- libvirt-0.7.2.orig/src/xen/xen_hypervisor.c ++++ libvirt-0.7.2/src/xen/xen_hypervisor.c +@@ -742,6 +742,11 @@ struct xenUnifiedDriver xenHypervisorDri xenHypervisorGetSchedulerType, /* domainGetSchedulerType */ xenHypervisorGetSchedulerParameters, /* domainGetSchedulerParameters */ xenHypervisorSetSchedulerParameters, /* domainSetSchedulerParameters */ @@ -498,10 +496,10 @@ Index: libvirt-0.7.1/src/xen_internal.c }; #endif /* !PROXY */ -Index: libvirt-0.7.1/src/xm_internal.c +Index: libvirt-0.7.2/src/xen/xm_internal.c =================================================================== ---- libvirt-0.7.1.orig/src/xm_internal.c -+++ libvirt-0.7.1/src/xm_internal.c +--- libvirt-0.7.2.orig/src/xen/xm_internal.c ++++ libvirt-0.7.2/src/xen/xm_internal.c @@ -116,6 +116,11 @@ struct xenUnifiedDriver xenXMDriver = { NULL, /* domainGetSchedulerType */ NULL, /* domainGetSchedulerParameters */ @@ -514,10 +512,10 @@ Index: libvirt-0.7.1/src/xm_internal.c }; #define xenXMError(conn, code, fmt...) \ -Index: libvirt-0.7.1/src/xs_internal.c +Index: libvirt-0.7.2/src/xen/xs_internal.c =================================================================== ---- libvirt-0.7.1.orig/src/xs_internal.c -+++ libvirt-0.7.1/src/xs_internal.c +--- libvirt-0.7.2.orig/src/xen/xs_internal.c ++++ libvirt-0.7.2/src/xen/xs_internal.c @@ -83,6 +83,11 @@ struct xenUnifiedDriver xenStoreDriver = NULL, /* domainGetSchedulerType */ NULL, /* domainGetSchedulerParameters */ @@ -530,16 +528,14 @@ Index: libvirt-0.7.1/src/xs_internal.c }; #endif /* ! PROXY */ -Index: libvirt-0.7.1/src/virsh.c +Index: libvirt-0.7.2/tools/virsh.c =================================================================== ---- libvirt-0.7.1.orig/src/virsh.c -+++ libvirt-0.7.1/src/virsh.c -@@ -1167,6 +1167,189 @@ cmdSave(vshControl *ctl, const vshCmd *c - return ret; +--- libvirt-0.7.2.orig/tools/virsh.c ++++ libvirt-0.7.2/tools/virsh.c +@@ -1168,6 +1168,188 @@ cmdSave(vshControl *ctl, const vshCmd *c } -+ -+/* + /* + * "snapshot-create" command + */ +static vshCmdInfo info_snapshot_create[] = { @@ -721,10 +717,11 @@ Index: libvirt-0.7.1/src/virsh.c + return ret; +} + - /* ++/* * "schedinfo" command */ -@@ -7252,6 +7435,12 @@ static const vshCmdDef commands[] = { + static const vshCmdInfo info_schedinfo[] = { +@@ -7273,6 +7455,12 @@ static const vshCmdDef commands[] = { {"undefine", cmdUndefine, opts_undefine, info_undefine}, {"uri", cmdURI, NULL, info_uri}, @@ -737,14 +734,14 @@ Index: libvirt-0.7.1/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.1/src/lxc_driver.c +Index: libvirt-0.7.2/src/lxc/lxc_driver.c =================================================================== ---- 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 */ +--- libvirt-0.7.2.orig/src/lxc/lxc_driver.c ++++ libvirt-0.7.2/src/lxc/lxc_driver.c +@@ -2324,6 +2324,11 @@ static virDriver lxcDriver = { NULL, /* nodeDeviceReAttach */ NULL, /* nodeDeviceReset */ + NULL, /* domainMigratePrepareTunnel */ + NULL, /* domainSnapshotCreate */ + NULL, /* domainSnapshotApply */ + NULL, /* domainSnapshotDelete */ @@ -753,14 +750,14 @@ Index: libvirt-0.7.1/src/lxc_driver.c }; static virStateDriver lxcStateDriver = { -Index: libvirt-0.7.1/src/openvz_driver.c +Index: libvirt-0.7.2/src/openvz/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 */ +--- libvirt-0.7.2.orig/src/openvz/openvz_driver.c ++++ libvirt-0.7.2/src/openvz/openvz_driver.c +@@ -1433,6 +1433,11 @@ static virDriver openvzDriver = { NULL, /* nodeDeviceReAttach */ NULL, /* nodeDeviceReset */ + NULL, /* domainMigratePrepareTunnel */ + NULL, /* domainSnapshotCreate */ + NULL, /* domainSnapshotApply */ + NULL, /* domainSnapshotDelete */ @@ -769,14 +766,14 @@ Index: libvirt-0.7.1/src/openvz_driver.c }; int openvzRegister(void) { -Index: libvirt-0.7.1/src/qemu_driver.c +Index: libvirt-0.7.2/src/qemu/qemu_driver.c =================================================================== ---- 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 */ +--- libvirt-0.7.2.orig/src/qemu/qemu_driver.c ++++ libvirt-0.7.2/src/qemu/qemu_driver.c +@@ -7136,6 +7136,11 @@ static virDriver qemuDriver = { qemudNodeDeviceReAttach, /* nodeDeviceReAttach */ qemudNodeDeviceReset, /* nodeDeviceReset */ + qemudDomainMigratePrepareTunnel, /* domainMigratePrepareTunnel */ + NULL, /* domainSnapshotCreate */ + NULL, /* domainSnapshotApply */ + NULL, /* domainSnapshotDelete */ @@ -785,14 +782,30 @@ Index: libvirt-0.7.1/src/qemu_driver.c }; -Index: libvirt-0.7.1/src/test.c +Index: libvirt-0.7.2/src/esx/esx_driver.c =================================================================== ---- libvirt-0.7.1.orig/src/test.c -+++ libvirt-0.7.1/src/test.c -@@ -4257,6 +4257,11 @@ static virDriver testDriver = { - NULL, /* nodeDeviceDettach */ +--- libvirt-0.7.2.orig/src/esx/esx_driver.c ++++ libvirt-0.7.2/src/esx/esx_driver.c +@@ -3275,6 +3275,11 @@ static virDriver esxDriver = { + NULL, /* nodeDeviceReAttach */ + NULL, /* nodeDeviceReset */ + NULL, /* domainMigratePrepareTunnel */ ++ NULL, /* domainSnapshotCreate */ ++ NULL, /* domainSnapshotApply */ ++ NULL, /* domainSnapshotDelete */ ++ NULL, /* domainNumOfSnapshots */ ++ NULL, /* domainListSnapshots */ + }; + + +Index: libvirt-0.7.2/src/test/test_driver.c +=================================================================== +--- libvirt-0.7.2.orig/src/test/test_driver.c ++++ libvirt-0.7.2/src/test/test_driver.c +@@ -4558,6 +4558,11 @@ static virDriver testDriver = { NULL, /* nodeDeviceReAttach */ NULL, /* nodeDeviceReset */ + NULL, /* domainMigratePrepareTunnel */ + NULL, /* domainSnapshotCreate */ + NULL, /* domainSnapshotApply */ + NULL, /* domainSnapshotDelete */ @@ -801,23 +814,103 @@ Index: libvirt-0.7.1/src/test.c }; static virNetworkDriver testNetworkDriver = { -Index: libvirt-0.7.1/docs/libvirt-api.xml +Index: libvirt-0.7.2/src/uml/uml_driver.c =================================================================== ---- libvirt-0.7.1.orig/docs/libvirt-api.xml -+++ libvirt-0.7.1/docs/libvirt-api.xml -@@ -208,6 +208,11 @@ - - +--- libvirt-0.7.2.orig/src/uml/uml_driver.c ++++ libvirt-0.7.2/src/uml/uml_driver.c +@@ -1862,6 +1862,11 @@ static virDriver umlDriver = { + NULL, /* nodeDeviceReAttach */ + NULL, /* nodeDeviceReset */ + NULL, /* domainMigratePrepareTunnel */ ++ NULL, /* domainSnapshotCreate */ ++ NULL, /* domainSnapshotApply */ ++ NULL, /* domainSnapshotDelete */ ++ NULL, /* domainNumOfSnapshots */ ++ NULL, /* domainListSnapshots */ + }; + + +Index: libvirt-0.7.2/src/vbox/vbox_tmpl.c +=================================================================== +--- libvirt-0.7.2.orig/src/vbox/vbox_tmpl.c ++++ libvirt-0.7.2/src/vbox/vbox_tmpl.c +@@ -6468,6 +6468,11 @@ virDriver NAME(Driver) = { + NULL, /* nodeDeviceReAttach */ + NULL, /* nodeDeviceReset */ + NULL, /* domainMigratePrepareTunnel */ ++ NULL, /* domainSnapshotCreate */ ++ NULL, /* domainSnapshotApply */ ++ NULL, /* domainSnapshotDelete */ ++ NULL, /* domainNumOfSnapshots */ ++ NULL, /* domainListSnapshots */ + }; + + virNetworkDriver NAME(NetworkDriver) = { +Index: libvirt-0.7.2/src/opennebula/one_driver.c +=================================================================== +--- libvirt-0.7.2.orig/src/opennebula/one_driver.c ++++ libvirt-0.7.2/src/opennebula/one_driver.c +@@ -788,6 +788,11 @@ static virDriver oneDriver = { + NULL, /* nodeDeviceReAttach; */ + NULL, /* nodeDeviceReset; */ + NULL, /* domainMigratePrepareTunnel */ ++ NULL, /* domainSnapshotCreate */ ++ NULL, /* domainSnapshotApply */ ++ NULL, /* domainSnapshotDelete */ ++ NULL, /* domainNumOfSnapshots */ ++ NULL, /* domainListSnapshots */ + }; + + static virStateDriver oneStateDriver = { +Index: libvirt-0.7.2/src/phyp/phyp_driver.c +=================================================================== +--- libvirt-0.7.2.orig/src/phyp/phyp_driver.c ++++ libvirt-0.7.2/src/phyp/phyp_driver.c +@@ -1378,6 +1378,11 @@ virDriver phypDriver = { + NULL, /* nodeDeviceReAttach */ + NULL, /* nodeDeviceReset */ + NULL, /* domainMigratePrepareTunnel */ ++ NULL, /* domainSnapshotCreate */ ++ NULL, /* domainSnapshotApply */ ++ NULL, /* domainSnapshotDelete */ ++ NULL, /* domainNumOfSnapshots */ ++ NULL, /* domainListSnapshots */ + }; + + int +Index: libvirt-0.7.2/src/remote/remote_driver.c +=================================================================== +--- libvirt-0.7.2.orig/src/remote/remote_driver.c ++++ libvirt-0.7.2/src/remote/remote_driver.c +@@ -8466,6 +8466,11 @@ static virDriver remote_driver = { + remoteNodeDeviceReAttach, /* nodeDeviceReAttach */ + remoteNodeDeviceReset, /* nodeDeviceReset */ + remoteDomainMigratePrepareTunnel, /* domainMigratePrepareTunnel */ ++ NULL, /* domainSnapshotCreate */ ++ NULL, /* domainSnapshotApply */ ++ NULL, /* domainSnapshotDelete */ ++ NULL, /* domainNumOfSnapshots */ ++ NULL, /* domainListSnapshots */ + }; + + static virNetworkDriver network_driver = { +Index: libvirt-0.7.2/docs/libvirt-api.xml +=================================================================== +--- libvirt-0.7.2.orig/docs/libvirt-api.xml ++++ libvirt-0.7.2/docs/libvirt-api.xml +@@ -262,6 +262,11 @@ + + + + + + + - - - -@@ -1432,6 +1437,36 @@ see note above'/> + + + +@@ -1817,6 +1822,36 @@ This function may requires privileged ac @@ -852,187 +945,41 @@ Index: libvirt-0.7.1/docs/libvirt-api.xml + + - Undefine a domain but does not stop it if it is running + -Index: libvirt-0.7.1/python/libvirt-py.c +Index: libvirt-0.7.2/src/libvirt_public.syms =================================================================== ---- 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; - } +--- libvirt-0.7.2.orig/src/libvirt_public.syms ++++ libvirt-0.7.2/src/libvirt_public.syms +@@ -215,6 +215,11 @@ LIBVIRT_0.4.2 { + LIBVIRT_0.4.5 { + global: + virConnectFindStoragePoolSources; ++ virDomainSnapshotCreate; ++ virDomainSnapshotApply; ++ virDomainSnapshotDelete; ++ virDomainNumOfSnapshots; ++ virDomainListSnapshots; + } LIBVIRT_0.4.2; - PyObject * -+libvirt_virDomainSnapshotDelete(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { -+ PyObject *py_retval; -+ int c_retval; -+ virDomainPtr domain; -+ PyObject *pyobj_domain; -+ char * name; -+ -+ if (!PyArg_ParseTuple(args, (char *)"Oz:virDomainSnapshotDelete", &pyobj_domain, &name)) -+ return(NULL); -+ domain = (virDomainPtr) PyvirDomain_Get(pyobj_domain); -+LIBVIRT_BEGIN_ALLOW_THREADS; -+ -+ c_retval = virDomainSnapshotDelete(domain, name); -+LIBVIRT_END_ALLOW_THREADS; -+ py_retval = libvirt_intWrap((int) c_retval); -+ return(py_retval); -+} -+ -+PyObject * - libvirt_virStorageVolGetKey(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - const char * c_retval; -@@ -1151,6 +1170,25 @@ LIBVIRT_END_ALLOW_THREADS; - } - - PyObject * -+libvirt_virDomainSnapshotCreate(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { -+ PyObject *py_retval; -+ int c_retval; -+ virDomainPtr domain; -+ PyObject *pyobj_domain; -+ char * name; -+ -+ if (!PyArg_ParseTuple(args, (char *)"Oz:virDomainSnapshotCreate", &pyobj_domain, &name)) -+ return(NULL); -+ domain = (virDomainPtr) PyvirDomain_Get(pyobj_domain); -+LIBVIRT_BEGIN_ALLOW_THREADS; -+ -+ c_retval = virDomainSnapshotCreate(domain, name); -+LIBVIRT_END_ALLOW_THREADS; -+ py_retval = libvirt_intWrap((int) c_retval); -+ return(py_retval); -+} -+ -+PyObject * - libvirt_virNetworkDefineXML(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - virNetworkPtr c_retval; -@@ -1186,6 +1224,24 @@ LIBVIRT_END_ALLOW_THREADS; - } - - PyObject * -+libvirt_virDomainNumOfSnapshots(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { -+ PyObject *py_retval; -+ int c_retval; -+ virDomainPtr domain; -+ PyObject *pyobj_domain; -+ -+ if (!PyArg_ParseTuple(args, (char *)"O:virDomainNumOfSnapshots", &pyobj_domain)) -+ return(NULL); -+ domain = (virDomainPtr) PyvirDomain_Get(pyobj_domain); -+LIBVIRT_BEGIN_ALLOW_THREADS; -+ -+ c_retval = virDomainNumOfSnapshots(domain); -+LIBVIRT_END_ALLOW_THREADS; -+ py_retval = libvirt_intWrap((int) c_retval); -+ return(py_retval); -+} -+ -+PyObject * - libvirt_virDomainResume(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; -@@ -1201,6 +1257,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; -+ virDomainPtr domain; -+ PyObject *pyobj_domain; -+ char * name; -+ -+ if (!PyArg_ParseTuple(args, (char *)"Oz:virDomainSnapshotApply", &pyobj_domain, &name)) -+ return(NULL); -+ domain = (virDomainPtr) PyvirDomain_Get(pyobj_domain); -+LIBVIRT_BEGIN_ALLOW_THREADS; -+ -+ c_retval = virDomainSnapshotApply(domain, name); -+LIBVIRT_END_ALLOW_THREADS; -+ py_retval = libvirt_intWrap((int) c_retval); -+ return(py_retval); - } - - PyObject * -Index: libvirt-0.7.1/python/libvirt-py.h + LIBVIRT_0.5.0 { +Index: libvirt-0.7.2/python/generator.py =================================================================== ---- 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_virDomainUndefine(PyObject *self, PyObject *args); - PyObject * libvirt_virDomainDefineXML(PyObject *self, PyObject *args); -Index: libvirt-0.7.1/python/libvirt.py +--- libvirt-0.7.2.orig/python/generator.py ++++ libvirt-0.7.2/python/generator.py +@@ -286,6 +286,7 @@ skip_impl = ( + 'virDomainSetSchedulerParameters', + 'virDomainGetVcpus', + 'virDomainPinVcpu', ++ 'virDomainListSnapshots', + 'virSecretGetValue', + 'virSecretSetValue', + 'virSecretGetUUID', +Index: libvirt-0.7.2/python/libvirt-override.c =================================================================== ---- 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 - -+ def numOfSnapshots(self): -+ """Returns the number of snapshot a given domain has """ -+ ret = libvirtmod.virDomainNumOfSnapshots(self._o) -+ if ret == -1: raise libvirtError ('virDomainNumOfSnapshots() failed', dom=self) -+ return ret -+ - 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. -@@ -478,6 +484,24 @@ class virDomain: - if ret == -1: raise libvirtError ('virDomainShutdown() failed', dom=self) - return ret - -+ def snapshotApply(self, name): -+ """Start a shut off domain based on a previously taken snapshot """ -+ ret = libvirtmod.virDomainSnapshotApply(self._o, name) -+ if ret == -1: raise libvirtError ('virDomainSnapshotApply() failed', dom=self) -+ return ret -+ -+ def snapshotCreate(self, name): -+ """Create a snapshot from a running domain """ -+ ret = libvirtmod.virDomainSnapshotCreate(self._o, name) -+ if ret == -1: raise libvirtError ('virDomainSnapshotCreate() failed', dom=self) -+ return ret -+ -+ def snapshotDelete(self, name): -+ """Delete a snapshot from a domain """ -+ ret = libvirtmod.virDomainSnapshotDelete(self._o, name) -+ if ret == -1: raise libvirtError ('virDomainSnapshotDelete() failed', dom=self) -+ return ret -+ - def suspend(self): - """Suspends an active domain, the process is frozen without - further access to CPU resources and I/O but the memory used -@@ -536,6 +560,12 @@ class virDomain: - if ret is None: raise libvirtError ('virDomainInterfaceStats() failed', dom=self) - return ret - -+ def listSnapshots(self): -+ """Returns the names of the snapshots of a domain """ -+ ret = libvirtmod.virDomainListSnapshots(self._o) -+ if ret is None: raise libvirtError ('virDomainListSnapshots() failed', dom=self) -+ return ret -+ - 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.1/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 * +--- libvirt-0.7.2.orig/python/libvirt-override.c ++++ libvirt-0.7.2/python/libvirt-override.c +@@ -1375,6 +1375,34 @@ libvirt_virStoragePoolGetInfo(PyObject * return(py_retval); } @@ -1064,22 +1011,13 @@ Index: libvirt-0.7.1/python/libvir.c + + return(py_retval); +} -+ static PyObject * libvirt_virStorageVolGetInfo(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { -@@ -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}, -+ {(char *) "virDomainListSnapshots", libvirt_virDomainListSnapshots, METH_VARARGS, NULL}, - {(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.1/python/libvirt-python-api.xml +Index: libvirt-0.7.2/python/libvirt-override-api.xml =================================================================== ---- libvirt-0.7.1.orig/python/libvirt-python-api.xml -+++ libvirt-0.7.1/python/libvirt-python-api.xml +--- libvirt-0.7.2.orig/python/libvirt-override-api.xml ++++ libvirt-0.7.2/python/libvirt-override-api.xml @@ -135,6 +135,11 @@ @@ -1092,31 +1030,3 @@ Index: libvirt-0.7.1/python/libvirt-python-api.xml list the storage pools, stores the pointers to the names in @names -Index: libvirt-0.7.1/python/generator.py -=================================================================== ---- 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', - 'virSecretGetValue', - 'virSecretSetValue', - 'virSecretGetUUID', -Index: libvirt-0.7.1/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: - virConnectFindStoragePoolSources; -+ virDomainSnapshotCreate; -+ virDomainSnapshotApply; -+ virDomainSnapshotDelete; -+ virDomainNumOfSnapshots; -+ virDomainListSnapshots; - } LIBVIRT_0.4.2; - - LIBVIRT_0.5.0 { diff --git a/socat.patch b/socat.patch index 9238072..de709b7 100644 --- a/socat.patch +++ b/socat.patch @@ -1,8 +1,8 @@ -Index: libvirt-0.7.1/src/remote/remote_driver.c +Index: libvirt-0.7.2/src/remote/remote_driver.c =================================================================== ---- libvirt-0.7.1.orig/src/remote/remote_driver.c -+++ libvirt-0.7.1/src/remote/remote_driver.c -@@ -728,12 +728,29 @@ doRemoteOpen (virConnectPtr conn, +--- libvirt-0.7.2.orig/src/remote/remote_driver.c ++++ libvirt-0.7.2/src/remote/remote_driver.c +@@ -760,12 +760,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 340adc8..9e9767f 100644 --- a/suse-network.patch +++ b/suse-network.patch @@ -1,8 +1,8 @@ -Index: libvirt-0.7.1/src/conf/network_conf.c +Index: libvirt-0.7.2/src/conf/network_conf.c =================================================================== ---- libvirt-0.7.1.orig/src/conf/network_conf.c -+++ libvirt-0.7.1/src/conf/network_conf.c -@@ -770,6 +770,137 @@ error: +--- libvirt-0.7.2.orig/src/conf/network_conf.c ++++ libvirt-0.7.2/src/conf/network_conf.c +@@ -824,6 +824,137 @@ error: return NULL; } @@ -140,7 +140,7 @@ Index: libvirt-0.7.1/src/conf/network_conf.c int virNetworkLoadAllConfigs(virConnectPtr conn, virNetworkObjListPtr nets, const char *configDir, -@@ -809,6 +940,7 @@ int virNetworkLoadAllConfigs(virConnectP +@@ -863,6 +994,7 @@ int virNetworkLoadAllConfigs(virConnectP closedir(dir); @@ -148,11 +148,11 @@ Index: libvirt-0.7.1/src/conf/network_conf.c return 0; } -Index: libvirt-0.7.1/src/conf/network_conf.h +Index: libvirt-0.7.2/src/conf/network_conf.h =================================================================== ---- libvirt-0.7.1.orig/src/conf/network_conf.h -+++ libvirt-0.7.1/src/conf/network_conf.h -@@ -89,6 +89,7 @@ struct _virNetworkObj { +--- libvirt-0.7.2.orig/src/conf/network_conf.h ++++ libvirt-0.7.2/src/conf/network_conf.h +@@ -92,6 +92,7 @@ struct _virNetworkObj { unsigned int active : 1; unsigned int autostart : 1; unsigned int persistent : 1; @@ -160,11 +160,11 @@ Index: libvirt-0.7.1/src/conf/network_conf.h virNetworkDefPtr def; /* The current definition */ virNetworkDefPtr newDef; /* New definition to activate at shutdown */ -Index: libvirt-0.7.1/src/network/bridge_driver.c +Index: libvirt-0.7.2/src/network/bridge_driver.c =================================================================== ---- libvirt-0.7.1.orig/src/network/bridge_driver.c -+++ libvirt-0.7.1/src/network/bridge_driver.c -@@ -963,6 +963,11 @@ static int networkShutdownNetworkDaemon( +--- libvirt-0.7.2.orig/src/network/bridge_driver.c ++++ libvirt-0.7.2/src/network/bridge_driver.c +@@ -977,6 +977,11 @@ static int networkShutdownNetworkDaemon( unlink(stateFile); VIR_FREE(stateFile); @@ -176,7 +176,7 @@ Index: libvirt-0.7.1/src/network/bridge_driver.c if (network->dnsmasqPid > 0) kill(network->dnsmasqPid, SIGTERM); -@@ -1419,6 +1424,12 @@ static int networkSetAutostart(virNetwor +@@ -1433,6 +1438,12 @@ static int networkSetAutostart(virNetwor goto cleanup; } diff --git a/xen-pv-cdrom.patch b/xen-pv-cdrom.patch index ab37e00..3188ac7 100644 --- a/xen-pv-cdrom.patch +++ b/xen-pv-cdrom.patch @@ -1,8 +1,8 @@ -Index: libvirt-0.7.1/src/xen/xend_internal.c +Index: libvirt-0.7.2/src/xen/xend_internal.c =================================================================== ---- libvirt-0.7.1.orig/src/xen/xend_internal.c -+++ libvirt-0.7.1/src/xen/xend_internal.c -@@ -5306,7 +5306,10 @@ xenDaemonFormatSxprDisk(virConnectPtr co +--- libvirt-0.7.2.orig/src/xen/xend_internal.c ++++ libvirt-0.7.2/src/xen/xend_internal.c +@@ -5324,7 +5324,10 @@ xenDaemonFormatSxprDisk(virConnectPtr co } else if (def->device == VIR_DOMAIN_DISK_DEVICE_CDROM) { virBufferVSprintf(buf, "(dev '%s:cdrom')", def->dst); } else {