Add 'realpath' command.
[libguestfs.git] / configure.ac
index 59eeb9d..ece7da7 100644 (file)
@@ -18,7 +18,7 @@
 # major/minor/release must be numbers
 m4_define([libguestfs_major],   [1])
 m4_define([libguestfs_minor],   [0])
-m4_define([libguestfs_release], [61])
+m4_define([libguestfs_release], [65])
 # extra can be any string
 m4_define([libguestfs_extra],   [])
 
@@ -83,19 +83,26 @@ AC_ARG_WITH([qemu],
        [],
        [with_qemu="$default_qemu"])
 AC_PATH_PROGS([QEMU],[$with_qemu],[no],
-       [$PATH$PATH_SEPARATOR/usr/sbin$PATH_SEPARATOR/sbin])
+       [$PATH$PATH_SEPARATOR/usr/sbin$PATH_SEPARATOR/sbin$PATH_SEPARATOR/usr/libexec])
 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
 if test "x$vmchannel_test" != "xno"; then
-    AC_MSG_CHECKING([for vmchannel 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_CHECKING([for "guestfwd" support in $QEMU])
+    if $QEMU --help | grep -sq guestfwd; then
+        AC_MSG_RESULT([yes])
+    else
         AC_MSG_RESULT([no])
-       AC_MSG_FAILURE(
+        AC_MSG_CHECKING([for "-net channel" 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])
+       else
+           AC_MSG_RESULT([no])
+           AC_MSG_FAILURE(
 [I did not find vmchannel support in $QEMU.
 
 vmchannel support is vital for libguestfs to operate.  You need a version
@@ -111,8 +118,8 @@ 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
-    AC_MSG_RESULT([yes])
 fi
 
 dnl Set drive interface used by the guestfs_add_drive{,_ro} calls
@@ -162,8 +169,8 @@ if test "x$FEBOOTSTRAP" != "xno"; then
     AC_MSG_WARN([fakechroot --version command failed, proceeding anyway])
   else
     AC_MSG_RESULT([$fakechroot_version])
-    fakechroot_major=`echo $fakechroot_version | awk -F. '{print $1}'`
-    fakechroot_minor=`echo $fakechroot_version | awk -F. '{print $2}'`
+    fakechroot_major=`echo "$fakechroot_version" | awk -F. '{print $1}'`
+    fakechroot_minor=`echo "$fakechroot_version" | awk -F. '{print $2}'`
     if test "$fakechroot_major" -lt 2 -o \
             \( "$fakechroot_major" -eq 2 -a "$fakechroot_minor" -lt 9 \); then
         AC_MSG_ERROR([fakechroot version must be >= 2.9])
@@ -180,7 +187,7 @@ else
   test "x$DEBIRF" = "xno" &&
         AC_MSG_ERROR([debirf must be installed])
   DIST="DEBIAN"
-  case $host_cpu in
+  case "$host_cpu" in
       *86)
           DEBIAN_KERNEL_ARCH=486
           ;;
@@ -242,7 +249,7 @@ if test "x$enable_supermin" = "xyes"; then
     AC_MSG_CHECKING([for --files support in $FEBOOTSTRAP_TO_INITRAMFS])
     out=`$FEBOOTSTRAP_TO_INITRAMFS 2>&1 ||:`
     echo "febootstrap_to_initramfs test command output: $out" >&AS_MESSAGE_LOG_FD
-    if ! echo $out | grep -sq -- "--files" ; then
+    if ! echo "$out" | grep -sq -e --files ; then
         AC_MSG_RESULT([no])
        AC_MSG_FAILURE(
 [febootstrap-to-initramfs does not support the --files option.
@@ -258,7 +265,7 @@ version of febootstrap.
     AC_MSG_CHECKING([for --nocompress support in $FEBOOTSTRAP_TO_INITRAMFS])
     out=`$FEBOOTSTRAP_TO_INITRAMFS 2>&1 ||:`
     echo "febootstrap_to_initramfs test command output: $out" >&AS_MESSAGE_LOG_FD
-    if ! echo $out | grep -sq -- "--nocompress" ; then
+    if ! echo "$out" | grep -sq -e --nocompress ; then
         AC_MSG_RESULT([no])
        AC_MSG_FAILURE(
 [febootstrap-to-initramfs does not support the --nocompress option.
@@ -388,6 +395,13 @@ AC_ARG_WITH(java_home,
 if test "x$with_java_home" != "xno"; then
     if test "x$with_java_home" != "xyes" -a "x$with_java_home" != "xcheck"
     then
+       # Reject unsafe characters in $JAVA_HOME
+       jh_lf='
+'
+       case $JAVA_HOME in
+         *[\\\"\#\$\&\'\`$jh_lf\ \     ]*)
+            AC_MSG_FAILURE([unsafe \$JAVA_HOME directory (use --with-java-home=no to disable Java support)]);;
+       esac
         if test -d "$with_java_home"; then
            JAVA_HOME="$with_java_home"
        else
@@ -412,7 +426,7 @@ if test "x$with_java_home" != "xno"; then
         AC_MSG_CHECKING(for JDK in $JAVA_HOME)
        if test ! -x "$JAVA_HOME/bin/java"; then
             AC_MSG_ERROR([missing $JAVA_HOME/bin/java binary (use --with-java-home=no to disable Java support)])
-       else
+       else
            JAVA="$JAVA_HOME/bin/java"
        fi
        if test ! -x "$JAVA_HOME/bin/javac"; then
@@ -445,7 +459,7 @@ if test "x$with_java_home" != "xno"; then
         else
             if test "`find $JAVA_HOME -name jni.h`" != ""; then
                 head=`find $JAVA_HOME -name jni.h | tail -1`
-               dir=`dirname $head`
+               dir=`dirname "$head"`
                JNI_CFLAGS="-I$dir"
             else
                AC_MSG_FAILURE([missing jni.h header file])
@@ -466,7 +480,7 @@ if test "x$with_java_home" != "xno"; then
         else
             if test "`find $JAVA_HOME -name jni_md.h`" != ""; then
                 head=`find $JAVA_HOME -name jni_md.h | tail -1`
-               dir=`dirname $head`
+                dir=`dirname "$head"`
                 JNI_CFLAGS="$JNI_CFLAGS -I$dir"
             else
                 AC_MSG_FAILURE([missing jni_md.h header file])
@@ -490,10 +504,10 @@ if test "x$with_java_home" != "xno"; then
         JNI_INSTALL_DIR=\${libdir}
 
         dnl JNI version.
-        jni_major_version=`echo $VERSION | awk -F. '{print $1}'`
-        jni_minor_version=`echo $VERSION | awk -F. '{print $2}'`
-        jni_micro_version=`echo $VERSION | awk -F. '{print $3}'`
-        JNI_VERSION_INFO=`expr $jni_major_version + $jni_minor_version`:$jni_micro_version:$jni_minor_version
+        jni_major_version=`echo "$VERSION" | awk -F. '{print $1}'`
+        jni_minor_version=`echo "$VERSION" | awk -F. '{print $2}'`
+        jni_micro_version=`echo "$VERSION" | awk -F. '{print $3}'`
+        JNI_VERSION_INFO=`expr "$jni_major_version" + "$jni_minor_version"`":$jni_micro_version:$jni_minor_version"
     fi
 fi
 
@@ -568,6 +582,7 @@ AC_CONFIG_FILES([Makefile
                 images/Makefile
                 capitests/Makefile
                 regressions/Makefile
+                test-tool/Makefile
                 ocaml/Makefile ocaml/examples/Makefile
                 perl/Makefile
                 python/Makefile