summaryrefslogtreecommitdiffstats
path: root/configure.ac
diff options
context:
space:
mode:
authorRichard Jones <rjones@trick.home.annexia.org>2009-09-22 13:34:50 +0100
committerRichard Jones <rjones@trick.home.annexia.org>2009-09-23 11:18:41 +0100
commit0d9325bd101e4e96d7d0a6c9640874cbb1e15ed1 (patch)
treecfd954a860c2ab14510041d34d3adfb32be220bb /configure.ac
parentb9da0fe3f74e02b355aa2be961e8df3ab8b16b88 (diff)
downloadlibguestfs-0d9325bd101e4e96d7d0a6c9640874cbb1e15ed1.tar.gz
libguestfs-0d9325bd101e4e96d7d0a6c9640874cbb1e15ed1.tar.xz
libguestfs-0d9325bd101e4e96d7d0a6c9640874cbb1e15ed1.zip
Rejig configure.ac tests for qemu vmchannel support.
vmchannel is no longer required, so we shouldn't test for it. However we should test instead for user mode networking support. Also fix up the documentation / error messages. Always test for vmchannel and user mode networking support in qemu. This gives us more troubleshooting information if people report bugs.
Diffstat (limited to 'configure.ac')
-rw-r--r--configure.ac43
1 files changed, 32 insertions, 11 deletions
diff --git a/configure.ac b/configure.ac
index 719ece7c..beef03f4 100644
--- a/configure.ac
+++ b/configure.ac
@@ -157,38 +157,59 @@ AC_PATH_PROGS([QEMU],[$with_qemu],[no],
test "x$QEMU" = "xno" && AC_MSG_ERROR([qemu must be installed])
AC_DEFINE_UNQUOTED([QEMU],["$QEMU"],[Location of qemu binary.])
-dnl Check that the chosen qemu has vmchannel support.
-dnl http://lists.gnu.org/archive/html/qemu-devel/2009-02/msg01042.html
+dnl Check that the chosen qemu has vmchannel support or we can
+dnl fallback to null vmchannel (still using SLIRP). See the
+dnl discussion in the README file.
if test "x$vmchannel_test" != "xno"; then
- AC_MSG_CHECKING([for "guestfwd" support in $QEMU])
+ AC_MSG_CHECKING([for guestfwd support in $QEMU])
if $QEMU --help | grep -sq guestfwd; then
AC_MSG_RESULT([yes])
+ vmchannel_guestfwd=guestfwd
else
AC_MSG_RESULT([no])
- AC_MSG_CHECKING([for "-net channel" support in $QEMU])
+ # Note that this test must be conditional on the previous
+ # test failing. This is because recent qemu will throw
+ # up an SDL window and hang if we try to run this test.
+ AC_MSG_CHECKING([for "-net channel" (old guestfwd) support in $QEMU])
vmchannelout=`$QEMU -net channel /dev/zero 2>&1 ||:`
echo "vmchannel test command output: $vmchannelout" >&AS_MESSAGE_LOG_FD
if echo "$vmchannelout" | grep -sq "vmchannel wrong port number" ; then
AC_MSG_RESULT([yes])
+ vmchannel_guestfwd=net_channel
else
AC_MSG_RESULT([no])
- AC_MSG_FAILURE(
-[I did not find vmchannel support in $QEMU.
+ vmchannel_guestfwd=no
+ fi
+ fi
+
+ AC_MSG_CHECKING([for "-net user" (user mode network) support in $QEMU])
+ if $QEMU --help | grep -sq -- "-net user"; then
+ AC_MSG_RESULT([yes])
+ vmchannel_net_user=yes
+ else
+ AC_MSG_RESULT([no])
+ vmchannel_net_user=no
+ fi
-vmchannel support is vital for libguestfs to operate. You need a version
-of qemu >= 0.10, or the following patch backported to earlier versions:
+ if test "x$vmchannel_net_user" = "xno" -a "x$vmchannel_guestfwd" = "xno"; then
+ AC_MSG_FAILURE(
+[I did not find user mode network or vmchannel support in
+$QEMU.
-http://lists.gnu.org/archive/html/qemu-devel/2009-02/msg01042.html
+Either user mode networking or vmchannel support is vital for
+libguestfs to operate.
+
+Please read the relevant section in the README file for more
+information about this.
You can override this test by setting the environment variable
-vmchannel_test=no However if you don't have vmchannel support
+vmchannel_test=no However if you don't have the right support
in your qemu, then this just delays the pain.
If I am using the wrong qemu or you want to compile qemu from source
and install it in another location, then you should configure with
the --with-qemu option.
])
- fi
fi
fi