]> git.proxmox.com Git - mirror_lxc.git/blobdiff - configure.ac
Release LXC 3.0.0
[mirror_lxc.git] / configure.ac
index e4312185cd23a58ed8374892727863062b35b16f..50c99836b2805bd2ddf1f374a45d3042f69b9a7c 100644 (file)
@@ -1,20 +1,22 @@
 #                                               -*- Autoconf -*-
 # Process this file with autoconf to produce a configure script.
 
-m4_define([lxc_devel], 1)
-m4_define([lxc_version_major], 2)
-m4_define([lxc_version_minor], 1)
+m4_define([lxc_devel], 0)
+m4_define([lxc_version_major], 3)
+m4_define([lxc_version_minor], 0)
 m4_define([lxc_version_micro], 0)
 m4_define([lxc_version_beta], [])
 
 m4_define([lxc_abi_major], 1)
-m4_define([lxc_abi_minor], 3)
+m4_define([lxc_abi_minor], 4)
 m4_define([lxc_abi_micro], 0)
 m4_define([lxc_abi], [lxc_abi_major.lxc_abi_minor.lxc_abi_micro])
 
 m4_define([lxc_version_base], [lxc_version_major.lxc_version_minor.lxc_version_micro])
 m4_define([lxc_version],
-         [ifelse(lxc_version_beta, [], [lxc_version_base], [lxc_version_base.lxc_version_beta])])
+         [ifelse(lxc_devel, 1,
+        ifelse(lxc_version_beta, [], [lxc_version_base], [lxc_version_base.lxc_version_beta])-devel,
+        ifelse(lxc_version_beta, [], [lxc_version_base], [lxc_version_base.lxc_version_beta]))])
 
 AC_INIT([lxc], [lxc_version])
 
@@ -50,7 +52,7 @@ AC_SUBST([LIBTOOL_DEPS])
 # Detect the distribution. This is used for the default configuration and
 # for some distro-specific build options.
 AC_MSG_CHECKING([host distribution])
-AC_ARG_WITH(distro, AS_HELP_STRING([--with-distro=DISTRO], [Specify the Linux distribution to target: One of redhat, oracle, centos, fedora, suse, gentoo, debian, arch, slackware, plamo, paldo, openmandriva, pardus, sparclinux, altlinux.]))
+AC_ARG_WITH(distro, AS_HELP_STRING([--with-distro=DISTRO], [Specify the Linux distribution to target: One of redhat, redhatenterpriseserver, oracle, centos, fedora, suse, gentoo, debian, arch, slackware, plamo, paldo, openmandriva, pardus, sparclinux, altlinux.]))
 if type lsb_release >/dev/null 2>&1 && test "z$with_distro" = "z"; then
        with_distro=`lsb_release -is`
 fi
@@ -87,7 +89,7 @@ case $with_distro in
                distroconf=default.conf.lxcbr
                distrosysconf="$sysconfdir/default"
                ;;
-       redhat|centos|fedora|oracle|oracleserver|sparclinux|altlinux|suse|opensuse*|plamo|pld)
+       redhat|redhatenterpriseserver|centos|fedora|oracle|oracleserver|sparclinux|altlinux|suse|opensuse*|plamo|pld)
                distroconf=default.conf.lxcbr
                distrosysconf="$sysconfdir/sysconfig"
                ;;
@@ -114,7 +116,7 @@ case "$with_init_script" in
                        fedora|altlinux|opensuse*)
                                init_script=systemd
                                ;;
-                       redhat|oracle|oracleserver|sparclinux|plamo)
+                       redhat|redhatenterpriseserver|oracle|oracleserver|sparclinux|plamo)
                                init_script=sysvinit
                                ;;
                        centos)
@@ -171,13 +173,6 @@ AC_ARG_ENABLE([werror],
        [do not treat warnings as errors])],
        [], [enable_werror=yes])
 
-# Allow enabling deprecated executables
-AC_ARG_ENABLE([deprecated],
-       [AC_HELP_STRING([--enable-deprecated],
-       [enable deprecated executables [default=no]])],
-       [], [enable_deprecated=false])
-AM_CONDITIONAL([ENABLE_DEPRECATED], [test "x$enable_deprecated" = "xyes"])
-
 # Allow disabling rpath
 AC_ARG_ENABLE([rpath],
        [AC_HELP_STRING([--enable-rpath], [set rpath in executables [default=no]])],
@@ -256,11 +251,6 @@ if test "$enable_apparmor" = "auto" ; then
 fi
 AM_CONDITIONAL([ENABLE_APPARMOR], [test "x$enable_apparmor" = "xyes"])
 
-AM_COND_IF([ENABLE_APPARMOR],
-       [AC_CHECK_HEADER([sys/apparmor.h],[],[AC_MSG_ERROR([You must install the AppArmor development package in order to compile lxc])])
-       AC_CHECK_LIB([apparmor], [aa_change_profile],[],[AC_MSG_ERROR([You must install the AppArmor development package in order to compile lxc])])
-       AC_SUBST([APPARMOR_LIBS], [-lapparmor])])
-
 # GnuTLS
 AC_ARG_ENABLE([gnutls],
        [AC_HELP_STRING([--enable-gnutls], [enable GnuTLS support [default=auto]])],
@@ -308,45 +298,6 @@ AM_COND_IF([ENABLE_SECCOMP],
                ])
        ])
 
-# cgmanager
-AC_ARG_ENABLE([cgmanager],
-       [AC_HELP_STRING([--enable-cgmanager], [enable cgmanager support [default=auto]])],
-       [], [enable_cgmanager=auto])
-
-if test "x$enable_cgmanager" = "xauto" ; then
-       AC_CHECK_LIB([cgmanager],[cgmanager_create],[enable_cgmanager=yes],[enable_cgmanager=no],[-lnih -lnih-dbus -ldbus-1])
-fi
-AM_CONDITIONAL([ENABLE_CGMANAGER], [test "x$enable_cgmanager" = "xyes"])
-
-AM_COND_IF([ENABLE_CGMANAGER],
-       [PKG_CHECK_MODULES([CGMANAGER], [libcgmanager])
-       PKG_CHECK_MODULES([NIH], [libnih >= 1.0.2])
-       PKG_CHECK_MODULES([NIH_DBUS], [libnih-dbus >= 1.0.0])
-       PKG_CHECK_MODULES([DBUS], [dbus-1 >= 1.2.16])
-       ])
-
-AC_MSG_CHECKING(for get_pid_cgroup_abs_sync)
-save_LIBS=$LIBS
-AC_SEARCH_LIBS([cgmanager_get_pid_cgroup_abs_sync], [cgmanager], [have_abs_cgroups=yes], [have_abs_cgroups=no], [-lnih -lnih-dbus -ldbus-1])
-LIBS=$save_LIBS
-if test "x$have_abs_cgroups" = "xyes"; then
-       AC_DEFINE([HAVE_CGMANAGER_GET_PID_CGROUP_ABS_SYNC], 1, [Have cgmanager_get_pid_cgroup_abs_sync])
-       AC_MSG_RESULT([yes])
-else
-       AC_MSG_RESULT([no])
-fi
-
-AC_MSG_CHECKING(for cgmanager_list_controllers)
-save_LIBS=$LIBS
-AC_SEARCH_LIBS([cgmanager_list_controllers_sync], [cgmanager], [have_list_controllers=yes], [have_list_controllers=no], [-lnih -lnih-dbus -ldbus-1])
-LIBS=$save_LIBS
-if test "x$have_list_controllers" = "xyes"; then
-       AC_DEFINE([HAVE_CGMANAGER_LIST_CONTROLLERS], 1, [Have cgmanager_list_controllers])
-       AC_MSG_RESULT([yes])
-else
-       AC_MSG_RESULT([no])
-fi
-
 AC_MSG_CHECKING(for static libcap)
 # Check for static libcap, make sure the function checked for differs from the
 # the one checked below so the cache doesn't give a wrong answer
@@ -405,29 +356,6 @@ AC_ARG_ENABLE([examples],
        [], [enable_examples=yes])
 AM_CONDITIONAL([ENABLE_EXAMPLES], [test "x$enable_examples" = "xyes"])
 
-# Python3 module and scripts
-AC_ARG_ENABLE([python],
-       [AC_HELP_STRING([--enable-python], [enable python binding [default=auto]])],
-       [], [enable_python=auto])
-
-if test "x$enable_python" = "xauto"; then
-       PKG_CHECK_MODULES([PYTHONDEV], [python3 >= 3.2],[enable_python=yes],[enable_python=no])
-       if test "$CC" = "clang"; then
-               enable_python=no
-       fi
-fi
-
-if test "x$enable_python" = "xyes" && test "$CC" = "clang"; then
-       AC_MSG_ERROR([Python3 is incompatible with the clang compiler])
-fi
-
-AM_CONDITIONAL([ENABLE_PYTHON], [test "x$enable_python" = "xyes"])
-
-AM_COND_IF([ENABLE_PYTHON],
-       [AM_PATH_PYTHON([3.2], [], [AC_MSG_ERROR([You must install python3])])
-       PKG_CHECK_MODULES([PYTHONDEV], [python3 >= 3.2],[],[AC_MSG_ERROR([You must install python3-dev])])
-       AC_DEFINE_UNQUOTED([ENABLE_PYTHON], 1, [Python3 is available])])
-
 # Enable dumping stack traces
 AC_ARG_ENABLE([mutex-debugging],
        [AC_HELP_STRING([--enable-mutex-debugging], [Makes mutexes to report error and provide stack trace [default=no]])],
@@ -458,53 +386,6 @@ m4_ifdef([PKG_CHECK_VAR], [],
     ])# PKG_CHECK_VAR
 ])
 
-# Lua module and scripts
-AC_ARG_ENABLE([lua],
-       [AC_HELP_STRING([--enable-lua], [enable lua binding [default=auto]])],
-       [], [enable_lua=auto])
-
-AC_ARG_WITH([lua-pc],
-       [AS_HELP_STRING(
-               [--with-lua-pc=PKG],
-               [Specify pkg-config package name for lua]
-       )], [], [with_lua_pc=no])
-
-if test "x$enable_lua" = "xyes" -a "x$with_lua_pc" != "xno"; then
-       # exit with error if not found
-       PKG_CHECK_MODULES([LUA], [$with_lua_pc], [LUAPKGCONFIG=$with_lua_pc])
-fi
-
-if test "x$enable_lua" = "xauto" -a "x$with_lua_pc" != "xno"; then
-       PKG_CHECK_MODULES([LUA], [$with_lua_pc],
-               [LUAPKGCONFIG=$with_lua_pc
-               enable_lua=yes],
-               [enable_lua=no])
-fi
-
-if test "x$enable_lua" != "xno"; then
-       PKG_CHECK_MODULES([LUA], [lua], [LUAPKGCONFIG=lua],
-               [PKG_CHECK_MODULES([LUA], [lua5.2], [LUAPKGCONFIG=lua5.2],
-                       [PKG_CHECK_MODULES([LUA], [lua5.1], [LUAPKGCONFIG=lua5.1],
-                               [AS_IF([test "x$enable_lua" = "xyes"],
-                                       [AC_MSG_ERROR([Lua not found. Please use --with-lua-pc=PKG])],
-                                       [enable_lua=no])]
-                       )]
-               )])
-       AS_IF([test "x$LUAPKGCONFIG" != "x"], [enable_lua=yes])
-fi
-
-AM_CONDITIONAL([ENABLE_LUA],
-       [test "x$enable_lua" = "xyes"])
-
-AM_COND_IF([ENABLE_LUA],
-       [AC_MSG_CHECKING([Lua version])
-       PKG_CHECK_VAR([LUA_VERSION], [$LUAPKGCONFIG], [V],,
-               [PKG_CHECK_VAR([LUA_VERSION], [$LUAPKGCONFIG], [major_version])])
-       AC_MSG_RESULT([$LUA_VERSION])
-       AC_SUBST([LUA_LIBDIR], [$libdir/lua/$LUA_VERSION])
-       AC_SUBST([LUA_SHAREDIR], [$datadir/lua/$LUA_VERSION])
-       ])
-
 # Optional bash integration
 AC_ARG_ENABLE([bash],
        [AC_HELP_STRING([--enable-bash], [build bash integration [default=yes]])],
@@ -519,6 +400,18 @@ AM_COND_IF([ENABLE_BASH],
        AC_SUBST(bashcompdir)
        ])
 
+# Build the command line tools
+AC_ARG_ENABLE([tools],
+       [AC_HELP_STRING([--enable-tools], [build the command line tools [default=yes]])],
+       [], [enable_tools=yes])
+AM_CONDITIONAL([ENABLE_TOOLS], [test "x$enable_tools" = "xyes"])
+
+# Build the liblxc commands
+AC_ARG_ENABLE([commands],
+       [AC_HELP_STRING([--enable-commands], [build the liblxc commands [default=yes]])],
+       [], [enable_commands=yes])
+AM_CONDITIONAL([ENABLE_COMMANDS], [test "x$enable_commands" = "xyes"])
+
 # Optional test binaries
 AC_ARG_ENABLE([tests],
        [AC_HELP_STRING([--enable-tests], [build test/example binaries [default=no]])],
@@ -649,6 +542,43 @@ else
 fi
 AM_CONDITIONAL([IS_BIONIC], [test "x$is_bionic" = "xyes"])
 
+# Configuration examples
+AC_ARG_ENABLE([pam],
+       [AC_HELP_STRING([--enable-pam], [enable pam module [default=no]])],
+       [], [enable_pam=no])
+AM_CONDITIONAL([ENABLE_PAM], [test "x$enable_pam" = "xyes"])
+
+AM_COND_IF([ENABLE_PAM],
+       [AC_ARG_WITH(
+               [pamdir],
+               [AS_HELP_STRING([--with-pamdir=PATH],[Specify the directory where PAM modules are stored,
+                                                       or "none" if PAM modules are not to be built])],
+               [pamdir="${withval}"],
+               [
+                       if test "${prefix}" = "/usr"; then
+                               pamdir="/lib${libdir##*/lib}/security"
+                       else
+                               pamdir="\$(libdir)/security"
+                       fi
+               ]
+       )])
+
+AM_CONDITIONAL([HAVE_PAM], [test x"$pamdir" != "xnone"])
+AM_COND_IF([ENABLE_PAM],
+       [if test "z$pamdir" != "znone"; then
+               AC_ARG_VAR([PAM_CFLAGS], [C compiler flags for pam])
+               AC_ARG_VAR([PAM_LIBS], [linker flags for pam])
+               AC_CHECK_LIB(
+                       [pam],
+                       [pam_authenticate],
+                       [PAM_LIBS="-lpam"],
+                       [AC_MSG_ERROR([*** libpam not found.])
+                       ])
+
+               AC_SUBST(PAM_LIBS)
+               AC_SUBST([pamdir])
+       fi])
+
 # Some systems lack PR_CAPBSET_DROP definition => HAVE_DECL_PR_CAPBSET_DROP
 AC_CHECK_DECLS([PR_CAPBSET_DROP], [], [], [#include <sys/prctl.h>])
 
@@ -667,7 +597,6 @@ AC_CHECK_FUNCS([setns pivot_root sethostname unshare rand_r confstr faccessat ge
 
 # Check for some functions
 AC_CHECK_LIB(pthread, main)
-AC_CHECK_FUNCS(pthread_atfork)
 AC_CHECK_FUNCS(statvfs)
 AC_CHECK_LIB(util, openpty)
 AC_CHECK_FUNCS([openpty hasmntopt setmntent endmntent utmpxname])
@@ -737,44 +666,10 @@ AC_CONFIG_FILES([
        config/init/upstart/Makefile
        config/etc/Makefile
        config/templates/Makefile
-       config/templates/alpine.common.conf
-       config/templates/alpine.userns.conf
-       config/templates/archlinux.common.conf
-       config/templates/archlinux.userns.conf
-       config/templates/centos.common.conf
-       config/templates/centos.userns.conf
        config/templates/common.conf
        config/templates/common.conf.d/Makefile
-       config/templates/debian.common.conf
-       config/templates/debian.userns.conf
-       config/templates/fedora.common.conf
-       config/templates/fedora.userns.conf
-       config/templates/gentoo.common.conf
-       config/templates/gentoo.moresecure.conf
-       config/templates/gentoo.userns.conf
        config/templates/nesting.conf
        config/templates/oci.common.conf
-       config/templates/opensuse.common.conf
-       config/templates/opensuse.userns.conf
-       config/templates/oracle.common.conf
-       config/templates/oracle.userns.conf
-       config/templates/plamo.common.conf
-       config/templates/plamo.userns.conf
-       config/templates/slackware.common.conf
-       config/templates/slackware.userns.conf
-       config/templates/ubuntu-cloud.common.conf
-       config/templates/ubuntu-cloud.lucid.conf
-       config/templates/ubuntu-cloud.userns.conf
-       config/templates/ubuntu.common.conf
-       config/templates/ubuntu.lucid.conf
-       config/templates/ubuntu.userns.conf
-       config/templates/openwrt.common.conf
-       config/templates/sparclinux.common.conf
-       config/templates/sparclinux.userns.conf
-       config/templates/voidlinux.common.conf
-       config/templates/voidlinux.userns.conf
-       config/templates/sabayon.common.conf
-       config/templates/sabayon.userns.conf
        config/templates/userns.conf
        config/yum/Makefile
        config/sysconfig/Makefile
@@ -787,7 +682,6 @@ AC_CONFIG_FILES([
        doc/lxc-cgroup.sgml
        doc/lxc-checkconfig.sgml
        doc/lxc-checkpoint.sgml
-       doc/lxc-clone.sgml
        doc/lxc-config.sgml
        doc/lxc-console.sgml
        doc/lxc-copy.sgml
@@ -800,7 +694,6 @@ AC_CONFIG_FILES([
        doc/lxc-ls.sgml
        doc/lxc-monitor.sgml
        doc/lxc-snapshot.sgml
-       doc/lxc-start-ephemeral.sgml
        doc/lxc-start.sgml
        doc/lxc-stop.sgml
        doc/lxc-top.sgml
@@ -836,7 +729,6 @@ AC_CONFIG_FILES([
        doc/ja/lxc-cgroup.sgml
        doc/ja/lxc-checkconfig.sgml
        doc/ja/lxc-checkpoint.sgml
-       doc/ja/lxc-clone.sgml
        doc/ja/lxc-config.sgml
        doc/ja/lxc-console.sgml
        doc/ja/lxc-copy.sgml
@@ -849,7 +741,6 @@ AC_CONFIG_FILES([
        doc/ja/lxc-ls.sgml
        doc/ja/lxc-monitor.sgml
        doc/ja/lxc-snapshot.sgml
-       doc/ja/lxc-start-ephemeral.sgml
        doc/ja/lxc-start.sgml
        doc/ja/lxc-stop.sgml
        doc/ja/lxc-top.sgml
@@ -874,7 +765,6 @@ AC_CONFIG_FILES([
        doc/ko/lxc-cgroup.sgml
        doc/ko/lxc-checkconfig.sgml
        doc/ko/lxc-checkpoint.sgml
-       doc/ko/lxc-clone.sgml
        doc/ko/lxc-config.sgml
        doc/ko/lxc-console.sgml
        doc/ko/lxc-copy.sgml
@@ -887,7 +777,6 @@ AC_CONFIG_FILES([
        doc/ko/lxc-ls.sgml
        doc/ko/lxc-monitor.sgml
        doc/ko/lxc-snapshot.sgml
-       doc/ko/lxc-start-ephemeral.sgml
        doc/ko/lxc-start.sgml
        doc/ko/lxc-stop.sgml
        doc/ko/lxc-top.sgml
@@ -909,41 +798,17 @@ AC_CONFIG_FILES([
        hooks/dhclient
 
        templates/Makefile
-       templates/lxc-alpine
-       templates/lxc-altlinux
-       templates/lxc-archlinux
        templates/lxc-busybox
-       templates/lxc-centos
-       templates/lxc-cirros
-       templates/lxc-debian
        templates/lxc-download
-       templates/lxc-fedora
-       templates/lxc-fedora-legacy
-       templates/lxc-gentoo
+       templates/lxc-local
        templates/lxc-oci
-       templates/lxc-openmandriva
-       templates/lxc-opensuse
-       templates/lxc-oracle
-       templates/lxc-plamo
-       templates/lxc-pld
-       templates/lxc-slackware
-       templates/lxc-sshd
-       templates/lxc-ubuntu
-       templates/lxc-ubuntu-cloud
-       templates/lxc-sparclinux
-       templates/lxc-voidlinux
-       templates/lxc-sabayon
 
        src/Makefile
        src/lxc/Makefile
        src/lxc/lxc.functions
-       src/lxc/tools/lxc-checkconfig
-       src/lxc/tools/lxc-start-ephemeral
-       src/lxc/tools/lxc-update-config
+       src/lxc/cmd/lxc-checkconfig
+       src/lxc/cmd/lxc-update-config
        src/lxc/version.h
-       src/python-lxc/Makefile
-
-       src/lua-lxc/Makefile
 
        src/tests/Makefile
        src/tests/lxc-test-usernic
@@ -955,6 +820,39 @@ AC_OUTPUT
 cat << EOF
 
 ----------------------------
+Binaries
+ - Command Line Tools:
+   - lxc-attach:     $enable_tools
+   - lxc-autostart:  $enable_tools
+   - lxc-cgroup:     $enable_tools
+   - lxc-checkpoint: $enable_tools
+   - lxc-config:     $enable_tools
+   - lxc-console:    $enable_tools
+   - lxc-copy:       $enable_tools
+   - lxc-create:     $enable_tools
+   - lxc-destroy:    $enable_tools
+   - lxc-device:     $enable_tools
+   - lxc-execute:    $enable_tools
+   - lxc-freeze:     $enable_tools
+   - lxc-info:       $enable_tools
+   - lxc-ls:         $enable_tools
+   - lxc-monitor:    $enable_tools
+   - lxc-snapshot:   $enable_tools
+   - lxc-start:      $enable_tools
+   - lxc-stop:       $enable_tools
+   - lxc-top:        $enable_tools
+   - lxc-unfreeze:   $enable_tools
+   - lxc-unshare:    $enable_tools
+   - lxc-wait:       $enable_tools
+
+ - liblxc Commands:
+   - lxc-checkconfig:   $enable_commands
+   - lxc-update-config: $enable_commands
+   - lxc-init:          $enable_commands
+   - lxc-monitord:      $enable_commands
+   - lxc-user-nic:      $enable_commands
+   - lxc-usernsexec:    $enable_commands
+
 Environment:
  - compiler: $CC
  - distribution: $with_distro
@@ -968,11 +866,10 @@ Security features:
  - Linux capabilities: $enable_capabilities
  - seccomp: $enable_seccomp
  - SELinux: $enable_selinux
- - cgmanager: $enable_cgmanager
 
-Bindings:
- - lua: $enable_lua
- - python3: $enable_python
+PAM:
+ - PAM module: $enable_pam
+ - cgroup PAM module: $pamdir
 
 Documentation:
  - examples: $enable_examples
@@ -986,13 +883,3 @@ Debugging:
 Paths:
  - Logs in configpath: $enable_configpath_log
 EOF
-
-if test "x$ac_cv_func_pthread_atfork" = "xno" ; then
-cat << EOF
-
-WARNING: Threading not supported on your platform
-
-       You are compiling LXC for bionic target which lacks certain threading related functionality used by LXC API (like pthread_atfork).
-       Please note that, because of the missing functionality, multithreaded usage of LXC API cause some problems.
-EOF
-fi