[PATCH 3/5] Fix detection of required RBD version

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



If building libvirt against Ubuntu precise, the librbd.h is lacking
many functions that libvirt expects. We have no version check, so
we were enabling RBD even though it cannot compile. This configure
check uses existance of 'rbd_get_features' as an identifier for the
min required version.

Signed-off-by: Daniel P. Berrange <berrange@xxxxxxxxxx>
---
 m4/virt-storage-rbd.m4 | 16 ++++++++++++++--
 1 file changed, 14 insertions(+), 2 deletions(-)

diff --git a/m4/virt-storage-rbd.m4 b/m4/virt-storage-rbd.m4
index 48522a6..727bd71 100644
--- a/m4/virt-storage-rbd.m4
+++ b/m4/virt-storage-rbd.m4
@@ -28,12 +28,24 @@ AC_DEFUN([LIBVIRT_STORAGE_CHECK_RBD], [
     AC_CHECK_HEADER([rbd/librbd.h], [LIBRBD_FOUND=yes; break;])
 
     if test "$LIBRBD_FOUND" = "yes"; then
-      with_storage_rbd=yes
       LIBRBD_LIBS="-lrbd -lrados"
+
+      old_LIBS="$LIBS"
+      LIBS="$LIBS $LIBRBD_LIBS"
+      AC_CHECK_FUNCS([rbd_get_features],[],[LIBRBD_FOUND=no])
+      LIBS="$old_LIBS"
+    fi
+
+    if test "$LIBRDB_FOUND" = "yes"; then
+      with_storage_rbd=yes
       AC_DEFINE_UNQUOTED([WITH_STORAGE_RBD], [1],
                          [whether RBD backend for storage driver is enabled])
     else
-      with_storage_rbd=no
+      if test "$with_storage_rbd" = "yes"; then
+        AC_MSG_ERROR([You must install the librbd library & headers to compile libvirt])
+      else
+        with_storage_rbd=no
+      fi
     fi
   fi
   AM_CONDITIONAL([WITH_STORAGE_RBD], [test "$with_storage_rbd" = "yes"])
-- 
2.9.3

--
libvir-list mailing list
libvir-list@xxxxxxxxxx
https://www.redhat.com/mailman/listinfo/libvir-list



[Index of Archives]     [Virt Tools]     [Libvirt Users]     [Lib OS Info]     [Fedora Users]     [Fedora Desktop]     [Fedora SELinux]     [Big List of Linux Books]     [Yosemite News]     [KDE Users]     [Fedora Tools]
  Powered by Linux