[libvirt] [libvirt-designer][PATCH] virtxml: Adapt to latest libvirt-glib

Michal Privoznik mprivozn at redhat.com
Tue Jan 28 16:49:29 UTC 2014


With libvirt-glib update, I've noticed a deprecation warning:

libvirt-designer-domain.c: In function 'gvir_designer_domain_add_disk_full':
libvirt-designer-domain.c:1610:9: error: 'gvir_config_domain_disk_set_driver_type' is deprecated (declared at /usr/include/libvirt-gconfig-1.0/libvirt-gconfig/libvirt-gconfig-domain-disk.h:145): Use 'gvir_config_domain_disk_set_driver_format' instead [-Werror=deprecated-declarations]
         gvir_config_domain_disk_set_driver_type(disk, format);
         ^
cc1: all warnings being treated as errors

Signed-off-by: Michal Privoznik <mprivozn at redhat.com>
---
 configure.ac                                 |  4 +++
 libvirt-designer/libvirt-designer-domain.c   | 41 ++++++++++++++++++++++++++--
 libvirt-designer/libvirt-designer-internal.h | 18 ++++++++++++
 3 files changed, 61 insertions(+), 2 deletions(-)

diff --git a/configure.ac b/configure.ac
index bad199b..f74e3f1 100644
--- a/configure.ac
+++ b/configure.ac
@@ -75,6 +75,10 @@ AC_PROG_CC
 AM_PROG_CC_C_O
 AC_CHECK_FUNCS([strchr])
 AC_CHECK_FUNCS([strrchr])
+AC_CHECK_FUNCS([strcmp])
+AC_CHECK_FUNCS([strcasecmp])
+AC_CHECK_FUNCS([strncmp])
+AC_CHECK_FUNCS([strncasecmp])
 AC_CHECK_FUNCS([uname])
 AC_PROG_CXX
 AC_TYPE_SIZE_T
diff --git a/libvirt-designer/libvirt-designer-domain.c b/libvirt-designer/libvirt-designer-domain.c
index 848dfea..8a11894 100644
--- a/libvirt-designer/libvirt-designer-domain.c
+++ b/libvirt-designer/libvirt-designer-domain.c
@@ -1606,8 +1606,45 @@ gvir_designer_domain_add_disk_full(GVirDesignerDomain *design,
     gvir_config_domain_disk_set_type(disk, type);
     gvir_config_domain_disk_set_source(disk, path);
     gvir_config_domain_disk_set_driver_name(disk, driver_name);
-    if (format)
-        gvir_config_domain_disk_set_driver_type(disk, format);
+    if (format) {
+        GVirConfigDomainDiskFormat fmt;
+
+        if (STRCASEEQ(format, "raw"))
+            fmt = GVIR_CONFIG_DOMAIN_DISK_FORMAT_RAW;
+        else if (STRCASEEQ(format, "dir"))
+            fmt = GVIR_CONFIG_DOMAIN_DISK_FORMAT_DIR;
+        else if (STRCASEEQ(format, "bochs"))
+            fmt = GVIR_CONFIG_DOMAIN_DISK_FORMAT_BOCHS;
+        else if (STRCASEEQ(format, "cloop"))
+            fmt = GVIR_CONFIG_DOMAIN_DISK_FORMAT_CLOOP;
+        else if (STRCASEEQ(format, "cow"))
+            fmt = GVIR_CONFIG_DOMAIN_DISK_FORMAT_COW;
+        else if (STRCASEEQ(format, "dmg"))
+            fmt = GVIR_CONFIG_DOMAIN_DISK_FORMAT_DMG;
+        else if (STRCASEEQ(format, "iso"))
+            fmt = GVIR_CONFIG_DOMAIN_DISK_FORMAT_ISO;
+        else if (STRCASEEQ(format, "qcow"))
+            fmt = GVIR_CONFIG_DOMAIN_DISK_FORMAT_QCOW;
+        else if (STRCASEEQ(format, "qcow2"))
+            fmt = GVIR_CONFIG_DOMAIN_DISK_FORMAT_QCOW2;
+        else if (STRCASEEQ(format, "qed"))
+            fmt = GVIR_CONFIG_DOMAIN_DISK_FORMAT_QED;
+        else if (STRCASEEQ(format, "vmdk"))
+            fmt = GVIR_CONFIG_DOMAIN_DISK_FORMAT_VMDK;
+        else if (STRCASEEQ(format, "vpc"))
+            fmt = GVIR_CONFIG_DOMAIN_DISK_FORMAT_VPC;
+        else if (STRCASEEQ(format, "fat"))
+            fmt = GVIR_CONFIG_DOMAIN_DISK_FORMAT_FAT;
+        else if (STRCASEEQ(format, "vhd"))
+            fmt = GVIR_CONFIG_DOMAIN_DISK_FORMAT_VHD;
+        else {
+            g_set_error(error, GVIR_DESIGNER_DOMAIN_ERROR, 0,
+                        "unknown disk format %s", format);
+            goto error;
+        }
+
+        gvir_config_domain_disk_set_driver_format(disk, fmt);
+    }
 
     controller = gvir_designer_domain_get_preferred_disk_controller(design, NULL);
     if (controller == NULL)
diff --git a/libvirt-designer/libvirt-designer-internal.h b/libvirt-designer/libvirt-designer-internal.h
index e95edfc..05dcf1d 100644
--- a/libvirt-designer/libvirt-designer-internal.h
+++ b/libvirt-designer/libvirt-designer-internal.h
@@ -24,4 +24,22 @@
 #ifndef __LIBVIRT_DESIGNER_INTERNAL_H__
 #define __LIBVIRT_DESIGNER_INTERNAL_H__
 
+# include <strings.h>
+
+# define STREQ(a,b) (strcmp(a,b) == 0)
+# define STRCASEEQ(a,b) (strcasecmp(a,b) == 0)
+# define STRNEQ(a,b) (strcmp(a,b) != 0)
+# define STRCASENEQ(a,b) (strcasecmp(a,b) != 0)
+# define STREQLEN(a,b,n) (strncmp(a,b,n) == 0)
+# define STRCASEEQLEN(a,b,n) (strncasecmp(a,b,n) == 0)
+# define STRNEQLEN(a,b,n) (strncmp(a,b,n) != 0)
+# define STRCASENEQLEN(a,b,n) (strncasecmp(a,b,n) != 0)
+# define STRPREFIX(a,b) (strncmp(a,b,strlen(b)) == 0)
+# define STRSKIP(a,b) (STRPREFIX(a,b) ? (a) + strlen(b) : NULL)
+
+# define STREQ_NULLABLE(a, b)                           \
+    ((a) ? (b) && STREQ((a) ? (a) : "", (b) ? (b) : "") : !(b))
+# define STRNEQ_NULLABLE(a, b)                          \
+    ((a) ? !(b) || STRNEQ((a) ? (a) : "", (b) ? (b) : "") : !!(b))
+
 #endif /* __LIBVIRT_DESIGNER_INTERNAL_H__ */
-- 
1.8.5.2




More information about the libvir-list mailing list