]> xenbits.xensource.com Git - libvirt.git/commitdiff
build: hoist qemu dependence on yajl to configure
authorEric Blake <eblake@redhat.com>
Wed, 13 Jun 2012 16:09:39 +0000 (10:09 -0600)
committerEric Blake <eblake@redhat.com>
Sat, 16 Jun 2012 01:49:00 +0000 (19:49 -0600)
Commit 6e769eba made it a runtime error if libvirt was compiled
without yajl support but targets a new enough qemu.  But enough
users are hitting this on self-compiled libvirt that it is worth
erroring out at compilation time, rather than an obscure failure
when trying to use the built executable.

* configure.ac: If qemu is requested and -version works, require
yajl when qemu version is new enough.
* src/qemu/qemu_capabilities.c (qemuCapsComputeCmdFlags): Add
comment.

configure.ac
src/qemu/qemu_capabilities.c

index dda764d3f0a4f6d2fe59c9c84a82e7f2af66b528..3da1aa2eabd46bc004787f96b03f3e218404689c 100644 (file)
@@ -991,6 +991,24 @@ AC_ARG_WITH([yajl],
   [],
   [with_yajl=check])
 
+if test "$with_qemu:$with_yajl" = yes:check; then
+  dnl Some versions of qemu require the use of yajl; try to detect them
+  dnl here, although we do not require qemu to exist in order to compile.
+  dnl This check mirrors src/qemu/qemu_capabilities.c
+  AC_PATH_PROGS([QEMU], [qemu-kvm qemu kvm qemu-system-x86_64],
+                [], [$PATH:/usr/bin:/usr/libexec])
+  if test -x "$QEMU"; then
+    if `$QEMU -help | grep libvirt` >/dev/null; then
+      with_yajl=yes
+    else
+      [qemu_version_sed='s/.*ersion \([0-9.,]*\).*/\1/']
+      qemu_version=`$QEMU -version | sed "$qemu_version_sed"`
+      AS_VERSION_COMPARE([$qemu_version], [0.15],
+                         [], [with_yajl=yes], [with_yajl=yes])
+    fi
+  fi
+fi
+
 YAJL_CFLAGS=
 YAJL_LIBS=
 with_yajl2=no
index 9b41469b398f329ed5119553b9aa595c9f097647..43088331702af45978c0e96f27b46b5a50764a85 100644 (file)
@@ -1207,7 +1207,8 @@ qemuCapsComputeCmdFlags(const char *help,
      * forgot to include YAJL libraries when building their own
      * libvirt but is targetting a newer qemu, we are better off
      * telling them to recompile (the spec file includes the
-     * dependency, so distros won't hit this).  */
+     * dependency, so distros won't hit this).  This check is
+     * also in configure.ac (see $with_yajl).  */
     if (version >= 15000 ||
         (version >= 12000 && strstr(help, "libvirt"))) {
         if (check_yajl) {