mirror of https://gitee.com/openkylin/libvirt.git
build: hoist qemu dependence on yajl to configure
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.
This commit is contained in:
parent
2cd29c3107
commit
350583c859
18
configure.ac
18
configure.ac
|
@ -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
|
||||
|
|
|
@ -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) {
|
||||
|
|
Loading…
Reference in New Issue