# major/minor/release must be numbers
m4_define([libguestfs_major], [1])
-m4_define([libguestfs_minor], [7])
-m4_define([libguestfs_release], [12])
+m4_define([libguestfs_minor], [8])
+m4_define([libguestfs_release], [1])
# extra can be any string
m4_define([libguestfs_extra], [])
***])
])
-dnl Die if the user tries to configure as root, see:
-dnl https://www.redhat.com/archives/libguestfs/2010-April/msg00098.html
-AC_MSG_CHECKING([if you are trying to configure as root])
-AS_IF([test "`id -u`" = 0 ],[
- AC_MSG_RESULT([yes])
- AC_MSG_FAILURE([Don't run './configure' or 'make' as root.])
- ],[
- AC_MSG_RESULT([no])
- ])
-
dnl Early gnulib initialization.
gl_EARLY
gl_INIT
nw="$nw -Wpacked" # Allow attribute((packed)) on structs
nw="$nw -Wlong-long" # Allow long long since it's required
# by Python, Ruby and xstrtoll.
+ nw="$nw -Wstack-protector" # Don't warn about stack-protector
+ # failures (seen on Ubuntu).
gl_MANYWARN_ALL_GCC([ws])
gl_MANYWARN_COMPLEMENT([ws], [$ws], [$nw])
AM_CONDITIONAL([ENABLE_APPLIANCE],[test "x$enable_appliance" = "xyes"])
AC_MSG_RESULT([$enable_appliance])
+if test "x$enable_appliance" = "xyes"; then
+ dnl Check for febootstrap >= 3.0
+ AC_CHECK_PROG([FEBOOTSTRAP],
+ [febootstrap],[febootstrap],[no])
+ 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 ||
+ AC_MSG_ERROR([febootstrap >= 3.0 must be installed, your version is too old])
+
+ dnl Pass a febootstrap --yum-config option.
+ AC_MSG_CHECKING([if user requested febootstrap --yum-config option])
+ AC_ARG_WITH([febootstrap-yum-config],
+ [AS_HELP_STRING([--with-febootstrap-yum-config=FILE],
+ [pass febootstrap --yum-config option @<:@default=no@:>@])],
+ [FEBOOTSTRAP_YUM_CONFIG="$withval"],
+ [FEBOOTSTRAP_YUM_CONFIG=no])
+ AC_MSG_RESULT([$FEBOOTSTRAP_YUM_CONFIG])
+ AC_SUBST([FEBOOTSTRAP_YUM_CONFIG])
+
+ dnl Which distro?
+ 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
+ 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
+ DISTRO=UBUNTU
+ fi
+ fi
+ if test -f /etc/arch-release; then
+ DISTRO=ARCHLINUX
+ fi
+ AC_MSG_RESULT([$DISTRO])
+ AC_SUBST([DISTRO])
+fi
+
dnl Check for rpcgen and XDR library. rpcgen is optional.
AC_CHECK_PROG([RPCGEN],[rpcgen],[rpcgen],[no])
AM_CONDITIONAL([HAVE_RPCGEN],[test "x$RPCGEN" != "xno"])
AM_CONDITIONAL([HAVE_PO4A], [test "x$PO4A" != "xno"])
dnl Check for db_dump, db_load (optional).
-AC_CHECK_PROGS([DB_DUMP],[db_dump db4_dump db4.8_dump],[no])
-AC_CHECK_PROGS([DB_LOAD],[db_load db4_load db4.8_load],[no])
+AC_CHECK_PROGS([DB_DUMP],
+ [db_dump db4_dump db4.8_dump db4.7_dump db4.6_dump],[no])
+AC_CHECK_PROGS([DB_LOAD],
+ [db_load db4_load db4.8_load db4.7_load db4.6_load],[no])
if test "x$DB_DUMP" != "xno"; then
AC_DEFINE_UNQUOTED([DB_DUMP],["$DB_DUMP"],[Name of db_dump program.])
fi
[with_net_if=virtio-net-pci])
AC_DEFINE_UNQUOTED([NET_IF],["$with_net_if"],[Default network interface.])
-dnl Check for febootstrap etc.
-if test "x$enable_appliance" = "xyes"; then
- AC_CHECK_PROG([FEBOOTSTRAP],
- [febootstrap],[febootstrap],[no])
- if test "x$FEBOOTSTRAP" != "xno"; then
- AC_CHECK_PROG([FEBOOTSTRAP_RUN],
- [febootstrap-run],[febootstrap-run],[no])
- test "x$FEBOOTSTRAP_RUN" = "xno" && \
- AC_MSG_ERROR([febootstrap-run must be installed])
- AC_CHECK_PROG([FEBOOTSTRAP_INSTALL],
- [febootstrap-install],[febootstrap-install],[no])
- test "x$FEBOOTSTRAP_INSTALL" = "xno" && \
- AC_MSG_ERROR([febootstrap-install must be installed])
- AC_CHECK_PROG([FEBOOTSTRAP_MINIMIZE],
- [febootstrap-minimize],[febootstrap-minimize],[no])
- test "x$FEBOOTSTRAP_MINIMIZE" = "xno" && \
- AC_MSG_ERROR([febootstrap-minimize must be installed])
- AC_CHECK_PROG([FEBOOTSTRAP_TO_INITRAMFS],
- [febootstrap-to-initramfs],[febootstrap-to-initramfs],[no])
- test "x$FEBOOTSTRAP_TO_INITRAMFS" = "xno" && \
- AC_MSG_ERROR([febootstrap-to-initramfs must be installed])
- AC_CHECK_PROG([FEBOOTSTRAP_TO_SUPERMIN],
- [febootstrap-to-supermin],[febootstrap-to-supermin],[no])
- test "x$FEBOOTSTRAP_TO_SUPERMIN" = "xno" && \
- AC_MSG_ERROR([febootstrap-to-supermin must be installed])
-
- dnl Check we have fakechroot >= 2.9 (it's an indirect requirement
- dnl of febootstrap, but old versions will fail with yum).
- AC_CHECK_PROG([FAKECHROOT],
- [fakechroot],[fakechroot],[no])
- test "x$FAKECHROOT" = "xno" && \
- AC_MSG_ERROR([fakechroot must be installed])
-
- AC_MSG_CHECKING([fakechroot version])
- fakechroot_version=`$FAKECHROOT --version | awk '{print $3}'`
- if test -z "$fakechroot_version"; then
- AC_MSG_RESULT([failed])
- 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}'`
- if test "$fakechroot_major" -lt 2 || \
- ( test "$fakechroot_major" -eq 2 && test "$fakechroot_minor" -lt 9 ); then
- AC_MSG_ERROR([fakechroot version must be >= 2.9])
- fi
- fi
- DIST="REDHAT"
- else
- # check for debootstrap and debirf
- AC_CHECK_PROG([DEBOOTSTRAP],
- [debootstrap],[debootstrap],[no])
- test "x$DEBOOTSTRAP" = "xno" && \
- AC_MSG_ERROR([Either febootstrap or debootstrap must be installed])
- AC_CHECK_PROG([DEBIRF],[debirf],[debirf],[no])
- test "x$DEBIRF" = "xno" &&
- AC_MSG_ERROR([debirf must be installed])
- DIST="DEBIAN"
- case "$host_cpu" in
- *86)
- DEBIAN_KERNEL_ARCH=486
- ;;
- x86_64)
- DEBIAN_KERNEL_ARCH=amd64
- ;;
- *)
- DEBIAN_KERNEL_ARCH=$host_cpu
- ;;
- esac
- AC_SUBST(DEBIAN_KERNEL_ARCH)
- fi
- AC_SUBST(DIST)
-
- dnl --with-updates to specify a Fedora updates repository.
- AC_ARG_WITH([updates],
- [AS_HELP_STRING([--with-updates],
- [set name of Fedora updates repository @<:@default=updates-released-f12@:>@])],
- [],
- [with_updates=updates-released-f12])
- UPDATES="$with_updates"
- AC_SUBST(UPDATES)
-
- dnl --with-mirror to specify a local Fedora mirror.
- AC_ARG_WITH([mirror],
- [AS_HELP_STRING([--with-mirror],
- [set URI of a local Fedora mirror])],
- [],
- [with_mirror=])
- MIRROR="$with_mirror"
- AC_SUBST(MIRROR)
-fi
-
-dnl --with-repo to specify a repository.
-AC_ARG_WITH([repo],
- [AS_HELP_STRING([--with-repo],
- [set name of Fedora repository @<:@default=fedora-13@:>@])],
- [],
- [with_repo=fedora-13])
-REPO="$with_repo"
-AC_SUBST(REPO)
-AC_DEFINE_UNQUOTED([REPO],["$REPO"],[Name of software repository.])
-
-dnl Build the supermin appliance? Please see README file before
-dnl enabling this option.
-AC_ARG_ENABLE([supermin],
- [AS_HELP_STRING([--enable-supermin],
- [enable supermin appliance (see README) @<:@default=no@:>@])],
- [AC_DEFINE([ENABLE_SUPERMIN],[1],[Supermin appliance enabled.])],
- [enable_supermin=no])
-AM_CONDITIONAL([SUPERMIN],[test "x$enable_supermin" = "xyes"])
-
dnl Enable packet dumps when in verbose mode. This generates lots
dnl of debug info, only useful for people debugging the RPC mechanism.
AC_ARG_ENABLE([packet-dump],
dnl For i18n.
AM_GNU_GETTEXT([external])
-AM_GNU_GETTEXT_VERSION([0.17])
dnl libmagic (highly recommended)
AC_CHECK_LIB([magic],[magic_file],
PYTHON_PREFIX=
PYTHON_VERSION=
PYTHON_INCLUDEDIR=
-PYTHON_SITE_PACKAGES=
+PYTHON_INSTALLDIR=
AC_ARG_ENABLE([python],
AS_HELP_STRING([--disable-python], [Disable Python language bindings]),
AC_CHECK_PROG([PYTHON],[python],[python],[no])
if test "x$PYTHON" != "xno"; then
+ AC_MSG_CHECKING([Python prefix])
PYTHON_PREFIX=`$PYTHON -c "import sys; print sys.prefix"`
+ AC_MSG_RESULT([$PYTHON_PREFIX])
+
+ AC_MSG_CHECKING([Python version])
PYTHON_VERSION=`$PYTHON -c "import sys; print sys.version[[0:3]]"`
+ AC_MSG_RESULT([$PYTHON_VERSION])
+
for d in \
$PYTHON_PREFIX/include/python$PYTHON_VERSION \
/usr/include/python$PYTHON_VERSION \
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"
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],
MAX_PROC_NR=`cat $srcdir/src/MAX_PROC_NR`
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'
+AC_SUBST([LIBTOOL])
+
dnl Run in subdirs.
if test "x$enable_daemon" = "xyes"; then
AC_CONFIG_SUBDIRS([daemon])
dnl Produce output files.
AC_CONFIG_HEADERS([config.h])
dnl http://www.mail-archive.com/automake@gnu.org/msg10204.html
-AC_CONFIG_FILES([appliance/update.sh],
- [chmod +x appliance/update.sh])
AC_CONFIG_FILES([podwrapper.sh],
[chmod +x podwrapper.sh])
AC_CONFIG_FILES([Makefile
generator/Makefile
src/Makefile fish/Makefile po/Makefile.in examples/Makefile
appliance/Makefile
- appliance/debian/debirf.conf
images/Makefile
capitests/Makefile
regressions/Makefile
php/Makefile
csharp/Makefile
cat/Makefile
+ df/Makefile
+ rescue/Makefile
+ debian/changelog
ocaml/META perl/Makefile.PL])
AC_OUTPUT
if test "x$HAVE_PHP_TRUE" = "x"; then echo "yes"; else echo "no"; fi
echo -n "virt-* tools ........................ "
if test "x$HAVE_TOOLS_TRUE" = "x"; then echo "yes"; else echo "no"; fi
-echo "supermin appliance .................. $enable_supermin"
echo "FUSE filesystem ..................... $enable_fuse"
echo
echo "If any optional component is configured 'no' when you expected 'yes'"