X-Git-Url: http://git.annexia.org/?a=blobdiff_plain;f=configure.ac;h=0a2f8330817e5d6d74f58fd7097ab889afdc0a50;hb=refs%2Ftags%2F1.8.16;hp=168da83bec8045b9decce4a3924384140bf6985a;hpb=8ea322aba3041e67cf32b43101a3299f89c9b0dc;p=libguestfs.git diff --git a/configure.ac b/configure.ac index 168da83..0a2f833 100644 --- a/configure.ac +++ b/configure.ac @@ -1,5 +1,5 @@ # libguestfs -# Copyright (C) 2009-2010 Red Hat Inc. +# Copyright (C) 2009-2011 Red Hat Inc. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -17,8 +17,8 @@ # major/minor/release must be numbers m4_define([libguestfs_major], [1]) -m4_define([libguestfs_minor], [7]) -m4_define([libguestfs_release], [20]) +m4_define([libguestfs_minor], [8]) +m4_define([libguestfs_release], [16]) # extra can be any string m4_define([libguestfs_extra], []) @@ -158,7 +158,7 @@ dnl Headers. AC_CHECK_HEADERS([errno.h sys/types.h sys/un.h sys/wait.h sys/socket.h endian.h byteswap.h]) dnl Functions. -AC_CHECK_FUNCS([posix_fallocate]) +AC_CHECK_FUNCS([futimens posix_fallocate]) dnl Build the daemon? AC_MSG_CHECKING([if we should build the daemon]) @@ -187,7 +187,7 @@ if test "x$enable_appliance" = "xyes"; then test "x$FEBOOTSTRAP" = "xno" && AC_MSG_ERROR([febootstrap must be installed]) dnl febootstrap 2.x did not support the --version parameter - $FEBOOTSTRAP --version >/dev/null 2>&1 || + $FEBOOTSTRAP --version >&AS_MESSAGE_LOG_FD 2>&1 || AC_MSG_ERROR([febootstrap >= 3.0 must be installed, your version is too old]) dnl Pass a febootstrap --yum-config option. @@ -204,15 +204,19 @@ if test "x$enable_appliance" = "xyes"; then dnl dnl This used to be Very Important but is now just used to select dnl which packages to install in the appliance, since the package - dnl names vary slightly across distros. (See appliance/packagelist.in) + dnl names vary slightly across distros. (See + dnl appliance/packagelist.in and appliance/excludelist.in) AC_MSG_CHECKING([which Linux distro for package names]) DISTRO=REDHAT if test -f /etc/debian_version; then DISTRO=DEBIAN - if grep -q 'DISTRIB_ID=Ubuntu' /etc/lsb-release 2>/dev/null; then + if grep -q 'DISTRIB_ID=Ubuntu' /etc/lsb-release 2>&AS_MESSAGE_LOG_FD; then DISTRO=UBUNTU fi fi + if test -f /etc/arch-release; then + DISTRO=ARCHLINUX + fi AC_MSG_RESULT([$DISTRO]) AC_SUBST([DISTRO]) fi @@ -245,6 +249,27 @@ AC_CHECK_PROG([POD2HTML],[pod2html],[pod2html],[no]) test "x$POD2HTML" = "xno" && AC_MSG_ERROR([pod2html must be installed]) +dnl Check if pod2man, pod2text take --stderr and -u options (not in RHEL 5). +AC_MSG_CHECKING([if pod2man takes --stderr option]) +if "$POD2MAN" --stderr >&AS_MESSAGE_LOG_FD 2>&1; then + AC_MSG_RESULT([yes]) + POD2_STDERR_OPTION="--stderr" +else + AC_MSG_RESULT([no]) + POD2_STDERR_OPTION="" +fi +AC_SUBST([POD2_STDERR_OPTION]) + +AC_MSG_CHECKING([if pod2man takes -u option]) +if "$POD2MAN" -u >&AS_MESSAGE_LOG_FD 2>&1; then + AC_MSG_RESULT([yes]) + POD2_UTF8_OPTION="-u" +else + AC_MSG_RESULT([no]) + POD2_UTF8_OPTION="" +fi +AC_SUBST([POD2_UTF8_OPTION]) + dnl Check for mkisofs. AC_PATH_PROGS([MKISOFS],[mkisofs],[no], [$PATH$PATH_SEPARATOR/usr/sbin$PATH_SEPARATOR/sbin]) @@ -285,10 +310,67 @@ AC_DEFINE_UNQUOTED([QEMU],["$QEMU"],[Location of qemu binary.]) dnl Check that the chosen qemu has virtio-serial support. if test "x$vmchannel_test" != "xno"; then + AC_MSG_CHECKING([that $QEMU -help works]) + if $QEMU -help >&AS_MESSAGE_LOG_FD 2>&1; then + AC_MSG_RESULT([yes]) + else + AC_MSG_RESULT([no]) + AC_MSG_FAILURE( +[$QEMU -help: command failed. + +This could be a very old version of qemu, or qemu might not be +working. +]) + fi + + dnl qemu 0.15 was released with broken support for '-machine', + dnl requiring you to add the machine type: '-machine pc,[...]'. + dnl The problem is that 'pc' is only applicable for PC-like + dnl hardware, so we cannot do this as a general solution. Since + dnl qemu 0.15, this problem has been fixed so now the default + dnl machine type is chosen (qemu commit 2645c6dcaf6ea2a51a). + dnl + dnl We need to work out if this qemu is the broken version, so we + dnl can add 'pc' just for this broken version. + dnl + dnl Note that old qemu didn't support the '-machine' option at all. + dnl + dnl We use the -kernel option for testing this, because this option + dnl is processed very late, after qemu has set up the machine. + AC_MSG_CHECKING([for broken '-machine accel=tcg' option in $QEMU]) + LC_ALL=C $QEMU -nographic -machine accel=tcg -kernel /NO_SUCH_FILE \ + > config1.tmp 2>&1 + LC_ALL=C $QEMU -nographic -machine pc,accel=tcg -kernel /NO_SUCH_FILE \ + > config2.tmp 2>&1 + if cmp -s config1.tmp config2.tmp; then + AC_MSG_RESULT([no]) + else + AC_MSG_RESULT([yes]) + AC_DEFINE([QEMU_MACHINE_TYPE_IS_BROKEN],[1],[qemu -machine accel=tcg option is broken (in qemu 0.15 only)]) + fi + rm config1.tmp config2.tmp + + dnl See if the '-machine [pc,]accel=tcg' option is required in + dnl order to run the virtio-serial test below. This happens when + dnl we run qemu-kvm inside a VM without forcing TCG: + dnl + dnl Could not access KVM kernel module: No such file or directory + dnl failed to initialize KVM: No such file or directory + dnl No accelerator found! + AC_MSG_CHECKING([if -machine @<:@pc,@:>@accel=tcg option is required to test virtio-serial feature]) + if $QEMU -nographic -device \? >/dev/null 2>&1; then + : + elif $QEMU -machine accel=tcg -nographic -device \? >/dev/null 2>&1; then + QEMU_EXTRA_OPTIONS_FOR_TEST="-machine accel=tcg" + elif $QEMU -machine pc,accel=tcg -nographic -device \? >/dev/null 2>&1; then + QEMU_EXTRA_OPTIONS_FOR_TEST="-machine pc,accel=tcg" + # else nothing ... it'll fail below. + fi + AC_MSG_RESULT([$QEMU_EXTRA_OPTIONS_FOR_TEST]) + AC_MSG_CHECKING([for virtio-serial support in $QEMU]) - if $QEMU -nographic -device \? 2>&1 | grep -sq virtio-serial; then + if $QEMU $QEMU_EXTRA_OPTIONS_FOR_TEST -nographic -device \? 2>&1 | grep -sq virtio-serial; then AC_MSG_RESULT([yes]) - vmchannel_guestfwd=guestfwd else AC_MSG_RESULT([no]) AC_MSG_FAILURE( @@ -462,7 +544,7 @@ AS_IF([test "x$enable_perl" != "xno"], missing_perl_modules=no for pm in Test::More ExtUtils::MakeMaker; do AC_MSG_CHECKING([for $pm]) - if ! perl -M$pm -e1 >/dev/null 2>&1; then + if ! perl -M$pm -e1 >&AS_MESSAGE_LOG_FD 2>&1; then AC_MSG_RESULT([no]) missing_perl_modules=yes else @@ -480,7 +562,7 @@ dnl Check for Python (optional, for Python bindings). PYTHON_PREFIX= PYTHON_VERSION= PYTHON_INCLUDEDIR= -PYTHON_SITE_PACKAGES= +PYTHON_INSTALLDIR= AC_ARG_ENABLE([python], AS_HELP_STRING([--disable-python], [Disable Python language bindings]), @@ -516,23 +598,33 @@ AS_IF([test "x$enable_python" != "xno"], AC_MSG_WARN([Python include directory not found]) fi - for d in \ - $PYTHON_PREFIX/lib64/python$PYTHON_VERSION/site-packages \ - $PYTHON_PREFIX/lib/python$PYTHON_VERSION/site-packages \ - /usr/lib64/python$PYTHON_VERSION/site-packages \ - /usr/lib/python$PYTHON_VERSION/site-packages \ - /usr/local/lib/python$PYTHON_VERSION/site-packages - do - AC_MSG_CHECKING([for $d]) - if test -d "$d"; then - AC_MSG_RESULT([found]) - PYTHON_SITE_PACKAGES=$d - break + AC_ARG_WITH([python-installdir], + [AS_HELP_STRING([--with-python-installdir], + [directory to install python modules @<:@default=check@:>@])], + [PYTHON_INSTALLDIR="$withval" + AC_MSG_NOTICE([Python install dir $PYTHON_INSTALLDIR])], + [PYTHON_INSTALLDIR=check]) + + if test "x$PYTHON_INSTALLDIR" = "xcheck"; then + PYTHON_INSTALLDIR= + for d in \ + $PYTHON_PREFIX/lib64/python$PYTHON_VERSION/site-packages \ + $PYTHON_PREFIX/lib/python$PYTHON_VERSION/site-packages \ + /usr/lib64/python$PYTHON_VERSION/site-packages \ + /usr/lib/python$PYTHON_VERSION/site-packages \ + /usr/local/lib/python$PYTHON_VERSION/site-packages + do + AC_MSG_CHECKING([for $d]) + if test -d "$d"; then + AC_MSG_RESULT([found]) + PYTHON_INSTALLDIR=$d + break + fi + AC_MSG_RESULT([not found]) + done + if test "x$PYTHON_INSTALLDIR" = "x"; then + AC_MSG_WARN([Python site-packages directory not found]) fi - AC_MSG_RESULT([not found]) - done - if test "x$PYTHON_SITE_PACKAGES" = "x"; then - AC_MSG_WARN([Python site-packages directory not found]) fi old_LIBS="$LIBS" @@ -544,10 +636,10 @@ AS_IF([test "x$enable_python" != "xno"], AC_SUBST(PYTHON_PREFIX) AC_SUBST(PYTHON_VERSION) AC_SUBST(PYTHON_INCLUDEDIR) - AC_SUBST(PYTHON_SITE_PACKAGES) + AC_SUBST(PYTHON_INSTALLDIR) ]) AM_CONDITIONAL([HAVE_PYTHON], - [test "x$PYTHON_INCLUDEDIR" != "x" && test "x$PYTHON_SITE_PACKAGES" != "x"]) + [test "x$PYTHON" != "xno" && test "x$PYTHON_INCLUDEDIR" != "x" && test "x$PYTHON_INSTALLDIR" != "x"]) dnl Check for Ruby and rake (optional, for Ruby bindings). AC_ARG_ENABLE([ruby], @@ -736,7 +828,7 @@ AS_IF([test "x$PERL" != "xno"], missing_perl_modules=no for pm in Pod::Usage Getopt::Long Sys::Virt Data::Dumper Locale::TextDomain Win::Hivex Win::Hivex::Regedit String::ShellQuote; do AC_MSG_CHECKING([for $pm]) - if ! $PERL -M$pm -e1 >/dev/null 2>&1; then + if ! $PERL -M$pm -e1 >&AS_MESSAGE_LOG_FD 2>&1; then AC_MSG_RESULT([no]) missing_perl_modules=yes else @@ -757,7 +849,7 @@ AC_SUBST(MAX_PROC_NR) dnl Replace libtool with a wrapper that clobbers dependency_libs in *.la files dnl http://lists.fedoraproject.org/pipermail/devel/2010-November/146343.html -LIBTOOL='$(SHELL) $(top_srcdir)/libtool-kill-dependency_libs.sh $(top_builddir)/libtool' +LIBTOOL='bash $(top_srcdir)/libtool-kill-dependency_libs.sh $(top_builddir)/libtool' AC_SUBST([LIBTOOL]) dnl Run in subdirs. @@ -776,6 +868,7 @@ AC_CONFIG_FILES([Makefile appliance/Makefile images/Makefile capitests/Makefile + caution/Makefile regressions/Makefile test-tool/Makefile ocaml/Makefile ocaml/examples/Makefile @@ -797,6 +890,7 @@ AC_CONFIG_FILES([Makefile cat/Makefile df/Makefile rescue/Makefile + debian/changelog ocaml/META perl/Makefile.PL]) AC_OUTPUT