Prepare for next stable branch: version 1.8.0.
[libguestfs.git] / configure.ac
index 7ed064d..75ad485 100644 (file)
@@ -17,8 +17,8 @@
 
 # major/minor/release must be numbers
 m4_define([libguestfs_major],   [1])
 
 # major/minor/release must be numbers
 m4_define([libguestfs_major],   [1])
-m4_define([libguestfs_minor],   [7])
-m4_define([libguestfs_release], [18])
+m4_define([libguestfs_minor],   [8])
+m4_define([libguestfs_release], [0])
 # extra can be any string
 m4_define([libguestfs_extra],   [])
 
 # extra can be any string
 m4_define([libguestfs_extra],   [])
 
@@ -53,16 +53,6 @@ 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
 dnl Early gnulib initialization.
 gl_EARLY
 gl_INIT
@@ -115,6 +105,8 @@ if test "$gl_gcc_warnings" = yes; then
   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 -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])
 
   gl_MANYWARN_ALL_GCC([ws])
   gl_MANYWARN_COMPLEMENT([ws], [$ws], [$nw])
@@ -198,29 +190,32 @@ if test "x$enable_appliance" = "xyes"; then
     $FEBOOTSTRAP --version >/dev/null 2>&1 ||
         AC_MSG_ERROR([febootstrap >= 3.0 must be installed, your version is too old])
 
     $FEBOOTSTRAP --version >/dev/null 2>&1 ||
         AC_MSG_ERROR([febootstrap >= 3.0 must be installed, your version is too old])
 
-    dnl Build from local package files, used when building with no network
-    dnl access, ie. under Koji.
-    AC_MSG_CHECKING([if we should build the appliance from local packages])
-    AC_ARG_WITH([local-package-directory],
-        [AS_HELP_STRING([--with-local-package-directory],
-          [build from local packages in dir @<:@default=no@:>@])],
-        [local_package_directory=$withval],
-        [local_package_directory=no])
-    AC_MSG_RESULT([$local_package_directory])
-    PACKAGE_DIRECTORY=
-    test "x$local_package_directory" != "xno" &&
-        PACKAGE_DIRECTORY="$local_package_directory"
-    AC_SUBST([PACKAGE_DIRECTORY])
+    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 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 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
     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
     AC_MSG_RESULT([$DISTRO])
     AC_SUBST([DISTRO])
@@ -268,8 +263,10 @@ AC_CHECK_PROG([PO4A],[po4a],[po4a],[no])
 AM_CONDITIONAL([HAVE_PO4A], [test "x$PO4A" != "xno"])
 
 dnl Check for db_dump, db_load (optional).
 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
 if test "x$DB_DUMP" != "xno"; then
     AC_DEFINE_UNQUOTED([DB_DUMP],["$DB_DUMP"],[Name of db_dump program.])
 fi
@@ -378,7 +375,6 @@ AS_IF([test "x$with_readline" != xno],
 
 dnl For i18n.
 AM_GNU_GETTEXT([external])
 
 dnl For i18n.
 AM_GNU_GETTEXT([external])
-AM_GNU_GETTEXT_VERSION([0.17])
 
 dnl libmagic (highly recommended)
 AC_CHECK_LIB([magic],[magic_file],
 
 dnl libmagic (highly recommended)
 AC_CHECK_LIB([magic],[magic_file],
@@ -488,7 +484,7 @@ dnl Check for Python (optional, for Python bindings).
 PYTHON_PREFIX=
 PYTHON_VERSION=
 PYTHON_INCLUDEDIR=
 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_ARG_ENABLE([python],
         AS_HELP_STRING([--disable-python], [Disable Python language bindings]),
@@ -499,8 +495,14 @@ AS_IF([test "x$enable_python" != "xno"],
         AC_CHECK_PROG([PYTHON],[python],[python],[no])
 
         if test "x$PYTHON" != "xno"; then
         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"`
             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]]"`
             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 \
             for d in \
                 $PYTHON_PREFIX/include/python$PYTHON_VERSION \
                 /usr/include/python$PYTHON_VERSION \
@@ -518,23 +520,33 @@ AS_IF([test "x$enable_python" != "xno"],
                 AC_MSG_WARN([Python include directory not found])
             fi
 
                 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
                 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"
             fi
 
             old_LIBS="$LIBS"
@@ -546,10 +558,10 @@ AS_IF([test "x$enable_python" != "xno"],
         AC_SUBST(PYTHON_PREFIX)
         AC_SUBST(PYTHON_VERSION)
         AC_SUBST(PYTHON_INCLUDEDIR)
         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],
         ])
 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],
 
 dnl Check for Ruby and rake (optional, for Ruby bindings).
 AC_ARG_ENABLE([ruby],
@@ -799,6 +811,7 @@ AC_CONFIG_FILES([Makefile
                  cat/Makefile
                  df/Makefile
                  rescue/Makefile
                  cat/Makefile
                  df/Makefile
                  rescue/Makefile
+                 debian/changelog
                  ocaml/META perl/Makefile.PL])
 AC_OUTPUT
 
                  ocaml/META perl/Makefile.PL])
 AC_OUTPUT