# Configure script for Ganeti
m4_define([gnt_version_major], [2])
-m4_define([gnt_version_minor], [7])
+m4_define([gnt_version_minor], [10])
m4_define([gnt_version_revision], [0])
-m4_define([gnt_version_suffix], [~beta1])
+m4_define([gnt_version_suffix], [~alpha1])
m4_define([gnt_version_full],
m4_format([%d.%d.%d%s],
gnt_version_major, gnt_version_minor,
AC_SUBST([VERSION_SUFFIX], gnt_version_suffix)
AC_SUBST([VERSION_FULL], gnt_version_full)
+# --enable-versionfull
+AC_ARG_ENABLE([versionfull],
+ [AS_HELP_STRING([--enable-versionfull],
+ m4_normalize([use the full version string rather
+ than major.minor for version directories]))],
+ [[if test "$enableval" != yes; then
+ USE_VERSION_FULL=yes
+ else
+ USER_VERSION_FULL=no
+ fi
+ ]],
+ [USE_VERSION_FULL=no
+ ])
+AC_SUBST(USE_VERSION_FULL, $USE_VERSION_FULL)
+AM_CONDITIONAL([USE_VERSION_FULL], [test "$USE_VERSION_FULL" = yes])
+
+# --enable-symlinks
+AC_ARG_ENABLE([symlinks],
+ [AS_HELP_STRING([--enable-symlinks],
+ m4_normalize([also install symlinks under $PREFIX pointing
+ into the Ganeti package directory (default: enabled)]))],
+ [[if test "$enableval" != no; then
+ INSTALL_SYMLINKS=yes
+ else
+ INSTALL_SYMLINKS=no
+ fi
+ ]],
+ [INSTALL_SYMLINKS=yes
+ ])
+AC_SUBST(INSTALL_SYMLINKS, $INSTALL_SYMLINKS)
+AM_CONDITIONAL([INSTALL_SYMLINKS], [test "$INSTALL_SYMLINKS" = yes])
+
# --with-ssh-initscript=...
AC_ARG_WITH([ssh-initscript],
[AS_HELP_STRING([--with-ssh-initscript=SCRIPT],
[xen_initrd="/boot/initrd-3-xenU"])
AC_SUBST(XEN_INITRD, $xen_initrd)
-# --with-xen-cmd=...
-AC_ARG_WITH([xen-cmd],
- [AS_HELP_STRING([--with-xen-cmd=CMD],
- [Sets the xen cli interface command (default is xm)]
- )],
- [xen_cmd="$withval"],
- [xen_cmd=xm])
-AC_SUBST(XEN_CMD, $xen_cmd)
-
-if ! test "$XEN_CMD" = xl -o "$XEN_CMD" = xm; then
- AC_MSG_ERROR([Unsupported xen command specified])
-fi
-
# --with-kvm-kernel=...
AC_ARG_WITH([kvm-kernel],
[AS_HELP_STRING([--with-kvm-kernel=PATH],
[kvm_kernel="/boot/vmlinuz-3-kvmU"])
AC_SUBST(KVM_KERNEL, $kvm_kernel)
-# --with-file-storage-dir=...
-AC_ARG_WITH([file-storage-dir],
- [AS_HELP_STRING([--with-file-storage-dir=PATH],
- [directory to store files for file-based backend]
- [ (default is /srv/ganeti/file-storage)]
- )],
- [[file_storage_dir="$withval";
- if test "$withval" != no; then
- enable_file_storage=True
- else
- enable_file_storage=False
- fi
- ]],
- [[file_storage_dir="/srv/ganeti/file-storage";
- enable_file_storage=True]])
-AC_SUBST(FILE_STORAGE_DIR, $file_storage_dir)
-AC_SUBST(ENABLE_FILE_STORAGE, $enable_file_storage)
-
# --with-shared-file-storage-dir=...
AC_ARG_WITH([shared-file-storage-dir],
[AS_HELP_STRING([--with-shared-file-storage-dir=PATH],
[directory to store files for shared file-based backend]
[ (default is /srv/ganeti/shared-file-storage)]
)],
- [[shared_file_storage_dir="$withval";
- if test "$withval" != no; then
- enable_shared_file_storage=True
- else
- enable_shared_file_storage=False
- fi
- ]],
- [[shared_file_storage_dir="/srv/ganeti/shared-file-storage";
- enable_shared_file_storage=True]])
+ [[shared_file_storage_dir="/srv/ganeti/shared-file-storage"]])
AC_SUBST(SHARED_FILE_STORAGE_DIR, $shared_file_storage_dir)
-AC_SUBST(ENABLE_SHARED_FILE_STORAGE, $enable_shared_file_storage)
# --with-kvm-path=...
AC_ARG_WITH([kvm-path],
[user_masterd="${withval}masterd";
user_rapi="${withval}rapi";
user_confd="${withval}confd";
+ user_luxid="${withval}luxid";
user_noded="$user_default";
- user_mond="${withval}mond"],
+ user_mond="$user_default"],
[user_masterd="$user_default";
user_rapi="$user_default";
user_confd="$user_default";
+ user_luxid="$user_default";
user_noded="$user_default";
user_mond="$user_default"])
AC_SUBST(MASTERD_USER, $user_masterd)
AC_SUBST(RAPI_USER, $user_rapi)
AC_SUBST(CONFD_USER, $user_confd)
+AC_SUBST(LUXID_USER, $user_luxid)
AC_SUBST(NODED_USER, $user_noded)
AC_SUBST(MOND_USER, $user_mond)
[group_rapi="${withval}rapi";
group_admin="${withval}admin";
group_confd="${withval}confd";
+ group_luxid="${withval}luxid";
group_masterd="${withval}masterd";
group_noded="$group_default";
group_daemons="${withval}daemons";
- group_mond="${withval}mond"],
+ group_mond="$group_default"],
[group_rapi="$group_default";
group_admin="$group_default";
group_confd="$group_default";
+ group_luxid="$group_default";
group_masterd="$group_default";
group_noded="$group_default";
group_daemons="$group_default";
AC_SUBST(RAPI_GROUP, $group_rapi)
AC_SUBST(ADMIN_GROUP, $group_admin)
AC_SUBST(CONFD_GROUP, $group_confd)
+AC_SUBST(LUXID_GROUP, $group_luxid)
AC_SUBST(MASTERD_GROUP, $group_masterd)
AC_SUBST(NODED_GROUP, $group_noded)
AC_SUBST(DAEMONS_GROUP, $group_daemons)
AC_MSG_NOTICE([Running ganeti-masterd as $group_masterd:$group_masterd])
AC_MSG_NOTICE([Running ganeti-rapi as $user_rapi:$group_rapi])
AC_MSG_NOTICE([Running ganeti-confd as $user_confd:$group_confd])
+AC_MSG_NOTICE([Running ganeti-luxid as $user_luxid:$group_luxid])
AC_MSG_NOTICE([Group for daemons is $group_daemons])
AC_MSG_NOTICE([Group for clients is $group_admin])
AC_MSG_ERROR([Sphinx 1.0 or higher is required])
fi
fi
+AM_CONDITIONAL([HAS_SPHINX], [test -n "$SPHINX"])
AC_ARG_ENABLE([manpages-in-doc],
[AS_HELP_STRING([--enable-manpages-in-doc],
[MONITORING_PKG="$MONITORING_PKG attoparsec"])
AC_GHC_PKG_CHECK([snap-server], [],
[MONITORING_PKG="$MONITORING_PKG snap-server"])
+ AC_GHC_PKG_CHECK([process], [],
+ [MONITORING_PKG="$MONITORING_PKG process"])
+ MONITORING_DEP=
+ if test "$has_confd" = False; then
+ MONITORING_DEP="$MONITORING_DEP confd"
+ fi
+ has_monitoring_pkg=False
if test -z "$MONITORING_PKG"; then
- has_monitoring=True
+ has_monitoring_pkg=True
elif test "$enable_monitoring" = check; then
AC_MSG_WARN(m4_normalize([The required extra libraries for the monitoring
daemon were not found ($MONITORING_PKG),
required libraries were not found:
$MONITORING_PKG]))
fi
+ has_monitoring_dep=False
+ if test -z "$MONITORING_DEP"; then
+ has_monitoring_dep=True
+ elif test "$enable_monitoring" = check; then
+ AC_MSG_WARN(m4_normalize([The optional Ganeti components required for the
+ monitoring agent were not enabled
+ ($MONITORING_DEP), monitoring disabled]))
+ else
+ AC_MSG_FAILURE(m4_normalize([The monitoring functionality was requested, but
+ required optional Ganeti components were not
+ found: $MONITORING_DEP]))
+ fi
+
fi
-if test "$has_monitoring" = True; then
- AC_MSG_NOTICE([Enabling the monitoring daemon usage])
+if test "$has_monitoring_pkg" = True -a "$has_monitoring_dep" = True; then
+ has_monitoring=True
+ AC_MSG_NOTICE([Enabling the monitoring agent usage])
fi
AC_SUBST(ENABLE_MOND, $has_monitoring)
AM_CONDITIONAL([ENABLE_MOND], [test "$has_monitoring" = True])
# of the checks.
AC_GHC_PKG_CHECK([attoparsec], [], [HS_NODEV=1])
AC_GHC_PKG_CHECK([vector], [], [HS_NODEV=1])
+AC_GHC_PKG_CHECK([process], [],
+ [MONITORING_PKG="$MONITORING_PKG process"])
if test -n "$HS_NODEV"; then
AC_MSG_WARN(m4_normalize([Required development modules were not found,
you won't be able to run Haskell unittests]))
AC_PYTHON_MODULE(pycurl, t)
AC_PYTHON_MODULE(bitarray, t)
AC_PYTHON_MODULE(ipaddr, t)
-AC_PYTHON_MODULE(yaml, t)
+AC_PYTHON_MODULE(mock)
AC_PYTHON_MODULE(affinity)
AC_PYTHON_MODULE(paramiko)
+# Development-only Python modules
+PY_NODEV=
+AC_PYTHON_MODULE(yaml)
+if test $HAVE_PYMOD_YAML == "no"; then
+ PY_NODEV="$PY_NODEV yaml"
+fi
+
+if test -n "$PY_NODEV"; then
+ AC_MSG_WARN(m4_normalize([Required development modules ($PY_NODEV) were not
+ found, you won't be able to run Python unittests]))
+else
+ AC_MSG_NOTICE([Python development modules found, unittests enabled])
+fi
+AC_SUBST(PY_NODEV)
+AM_CONDITIONAL([PY_UNIT], [test -n $PY_NODEV])
+
AC_CONFIG_FILES([ Makefile ])
AC_OUTPUT