# major/minor/release must be numbers
m4_define([libguestfs_major], [1])
-m4_define([libguestfs_minor], [0])
-m4_define([libguestfs_release], [88])
+m4_define([libguestfs_minor], [5])
+m4_define([libguestfs_release], [3])
# extra can be any string
m4_define([libguestfs_extra], [])
AC_DEFINE([PACKAGE_VERSION_RELEASE],[libguestfs_release],[Release number])
AC_DEFINE([PACKAGE_VERSION_EXTRA],["libguestfs_extra"],[Extra version string])
+dnl Stable or unstable version?
+AC_MSG_CHECKING([if this is a stable or unstable branch of libguestfs])
+AS_IF([test "$((libguestfs_minor % 2))" -eq 0 ],[
+ AC_MSG_RESULT([stable])
+ ],[
+ AC_MSG_RESULT([unstable])
+ AC_MSG_NOTICE([
+***
+This is a development version of libguestfs. Some APIs may be unstable
+until they appear in a stable release of libguestfs (at which point
+the C API and ABI is guaranteed to remain stable forever). For
+more information about stable and development branches of libguestfs
+please see the section "LIBGUESTFS VERSION NUMBERS" in guestfs(3).
+***])
+ ])
+
+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 -Wmissing-format-attribute" # daemon.h's asprintf_nowarn
nw="$nw -Winline" # daemon.h's asprintf_nowarn
nw="$nw -Wshadow" # numerous, plus we're not unanimous
- # ?? -Wstrict-overflow
nw="$nw -Wunsafe-loop-optimizations" # just a warning that an optimization
# was not possible, safe to ignore
nw="$nw -Wpacked" # Allow attribute((packed)) on structs
+ nw="$nw -Wlong-long" # Allow long long since it's required
+ # by Python, Ruby and xstrtoll.
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])
+dnl Check for PCRE.
+AC_CHECK_LIB([pcre],[pcre_compile],
+ [AC_SUBST([LIBPCRE], ["-lpcre"])],
+ [AC_MSG_FAILURE(
+ [Perl Compatible Regular Expressions library (PCRE) is required])])
+AC_CHECK_HEADER([pcre.h],[],
+ [AC_MSG_FAILURE(
+ [Perl Compatible Regular Expressions library (PCRE) header file pcre.h is required])])
+
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"])
[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).
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-f11@:>@])],
+ [set name of Fedora updates repository @<:@default=updates-released-f12@:>@])],
[],
- [with_updates=updates-released-f11])
+ [with_updates=updates-released-f12])
UPDATES="$with_updates"
AC_SUBST(UPDATES)
dnl --with-repo to specify a Fedora repository.
AC_ARG_WITH([repo],
[AS_HELP_STRING([--with-repo],
- [set name of Fedora repository @<:@default=fedora-11@:>@])],
+ [set name of Fedora repository @<:@default=fedora-12@:>@])],
[],
- [with_repo=fedora-11])
+ [with_repo=fedora-12])
REPO="$with_repo"
AC_SUBST(REPO)
AC_DEFINE_UNQUOTED([REPO],["$REPO"],[Name of Fedora repository.])
[enable_supermin=no])
AM_CONDITIONAL([SUPERMIN],[test "x$enable_supermin" = "xyes"])
-if test "x$enable_supermin" = "xyes"; then
- dnl Check febootstrap-to-initramfs accepts the --files option
- dnl (febootstrap >= 2.2).
- 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 -e --files ; then
- AC_MSG_RESULT([no])
- AC_MSG_FAILURE(
-[febootstrap-to-initramfs does not support the --files option.
-
-To build the supermin appliance, you need to upgrade to the latest
-version of febootstrap.
-])
- fi
- AC_MSG_RESULT([yes])
-
- dnl Check febootstrap-to-initramfs accepts the --nocompress option
- dnl (febootstrap >= 2.3).
- 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 -e --nocompress ; then
- AC_MSG_RESULT([no])
- AC_MSG_FAILURE(
-[febootstrap-to-initramfs does not support the --nocompress option.
-
-To build the supermin appliance, you need to upgrade to the latest
-version of febootstrap.
-])
- fi
- AC_MSG_RESULT([yes])
-fi
-
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],
AM_GNU_GETTEXT([external])
AM_GNU_GETTEXT_VERSION([0.17])
+dnl libmagic (required)
+AC_CHECK_LIB([magic],[magic_file],[
+ AC_SUBST([LIBMAGIC], ["-lmagic"])
+ ],[
+ AC_MSG_FAILURE([libmagic is required])
+ ])
+AC_CHECK_HEADER([magic.h],[],[
+ AC_MSG_FAILURE([magic.h header file is required])
+ ])
+
+dnl libvirt (required)
+PKG_CHECK_MODULES([LIBVIRT], [libvirt])
+AC_SUBST([LIBVIRT_CFLAGS])
+AC_SUBST([LIBVIRT_LIBS])
+
+dnl libxml2 (required)
+PKG_CHECK_MODULES([LIBXML2], [libxml-2.0])
+AC_SUBST([LIBXML2_CFLAGS])
+AC_SUBST([LIBXML2_LIBS])
+
dnl hivex library (highly recommended).
dnl This used to be a part of libguestfs, but was spun off into its
dnl own separate upstream project in libguestfs 1.0.85.
dnl Check for Perl modules that must be present to compile and
dnl test the Perl bindings.
missing_perl_modules=no
-for pm in Test::More Test::Pod Test::Pod::Coverage ExtUtils::MakeMaker; do
+for pm in Test::More ExtUtils::MakeMaker; do
AC_MSG_CHECKING([for $pm])
if ! perl -M$pm -e1 >/dev/null 2>&1; then
AC_MSG_RESULT([no])
fi
AC_MSG_RESULT([not found])
done
+
+ old_LIBS="$LIBS"
+ LIBS="$LIBS -lpython$PYTHON_VERSION"
+ AC_CHECK_FUNCS([PyCapsule_New])
+ LIBS="$old_LIBS"
fi
AC_SUBST(PYTHON_PREFIX)
dnl Check for Perl modules needed by virt-df, inspector, etc.
missing_perl_modules=no
-for pm in Pod::Usage Getopt::Long Sys::Virt Data::Dumper XML::Writer Locale::TextDomain; do
+for pm in Pod::Usage Getopt::Long Sys::Virt Data::Dumper XML::Writer Locale::TextDomain Win::Hivex Win::Hivex::Regedit; do
AC_MSG_CHECKING([for $pm])
if ! perl -M$pm -e1 >/dev/null 2>&1; then
AC_MSG_RESULT([no])
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([appliance/supermin-split.sh],
- [chmod +x appliance/supermin-split.sh])
-AC_CONFIG_FILES([appliance/supermin-make.sh],
- [chmod +x appliance/supermin-make.sh])
AC_CONFIG_FILES([Makefile
src/Makefile fish/Makefile po/Makefile.in examples/Makefile
appliance/Makefile